/* A copyright statement is attached to every file and product created for the project. It takes the form of the copyright statement for this document: The project provides a modern way to design and knit garments using domestic and semi-professional knitting machines. This document describes the LockController hardware. Copyright (C) 2020 Owen Mace and Odile Lambert This document is free information: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* This is the attachment module that slips into the yarn mast of an E6000 knitting machine. Other products, such as a yarn bucket holder will use this file, perhaps as an include. Use: YarnMastAttachment(); All measurements are in mm */ Tolerance = 0.2; //Attachment module ModuleLength = 15.2; //X direction ModuleWidth = 13.0; //Y direction ModuleHeight = 28.0; //Z direction //YarnMastAttachment(); module YarnMastAttachment() { CentreDia = 6.7; //Slots in the side WidthAtSlot = 9.5; SlotX = 3.6 + Tolerance * 2; SlotY = ( ModuleWidth - WidthAtSlot) / 2; SlotZ = 18; DistFromEnd = 7.7; difference() { cube([ ModuleLength, ModuleWidth, ModuleHeight]); //Remove centre slot translate([ 2.5 + CentreDia / 2, ModuleWidth / 2, -Tolerance]) cylinder( h = ModuleHeight + Tolerance * 2, d = CentreDia); translate([ 2.5 + CentreDia / 2, ModuleWidth / 2 - CentreDia / 2, -Tolerance]) cube([ ModuleLength, CentreDia, ModuleHeight + Tolerance * 2]); //Remove slots at the side which fit the mast translate([ ModuleLength - DistFromEnd - SlotX, -0.01, -Tolerance]) cube([ SlotX, SlotY, SlotZ]); translate([ ModuleLength - DistFromEnd - SlotX, ModuleWidth - SlotY + 0.01, -Tolerance]) cube([ SlotX, SlotY, SlotZ]); //Bevel the ends translate([ ModuleLength - 1, -1.4, - Tolerance]) rotate([ 0, 0, 45]) cube([ SlotX + 1, SlotY, ModuleHeight + Tolerance * 2]); translate([ ModuleLength - 2, ModuleWidth, - Tolerance]) rotate([ 0, 0, -45]) cube([ SlotX + 1, SlotY, ModuleHeight + Tolerance * 2]); } }