chiark / gitweb /
filamentspool: FilamentGuideClipSpacerClip wip
[reprap-play.git] / filamentspool.scad
index 755916f2ffa721c369a69b0c6ca6e4289ca672fb..c32061ec2bcd4f5870ef71df3d35820d499beee5 100644 (file)
@@ -1,5 +1,97 @@
 // -*- C -*-
 
+// filamentspool.scad
+// 3D design for filament spools to hold coils as supplied by Faberdashery
+//
+
+//
+// Copyright 2012,2013,2016 Ian Jackson
+//
+// This work is free software: 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 work 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 work.  If not, see <http://www.gnu.org/licenses/>
+//
+
+//
+// Each spool is a hub with 3 or 4 arms.  Each arm has a cup for
+// holding the filament.  The effective diameter can be adjusted by
+// setting the cup into a different seat in the arm.  The cups are
+// held on with simple clips, so the filement coil can easily be
+// removed and replaced.
+//
+// This file (and its includes) can generate:
+//
+//   - Heavy duty 4-armed spool suitable for holding a 100m
+//     Faberdashery coil on the spool arm of a Lulzbot TAZ-5.
+//
+//     Set
+//           fdia=2.85
+//           lightduty=false
+//     And print following parts
+//            Hub
+//            ArmEnd x 4
+//            FilamentCup x 4  (or FilamentCupPair x 2)
+//            CupSecuringClip x 4
+//
+//     You will also need  4 x M4 machine screws and nuts.
+//
+//   - Light duty 3-armed spool suitable for up to around 30m
+//     of Faberdashery 2.85mm PLA.
+//
+//     Set
+//           fdia=2.85
+//           lightduty=true
+//     And print following parts
+//           Hub
+//           ArmEnd x 3
+//           FilamentCup x 3  (or FilamentCup + FilamentCupPair)
+//           CupSecuringClip x 3
+//           TowerDoveClipPin x 6
+//
+//     When assembling, insert one TowerDoveClipPin from each side,
+//     joining each ArmEnd to the Hub with two TowerDoveClipPins.
+//     Modest force with pliers is good to seat them properly.
+//
+//     (note that the light duty and heavy duty CupSecuringClips
+//      are slightly different)
+//
+// When mounting either spool on the TAZ-5 spool arm, put the `pointy'
+// end of the hub towards the printer - ie, put put the spool on
+// `backwards'.  This ensures that the spool's arms will clear the
+// printer framework.
+//
+// For the above, I generally used the Cura `Standard' PLA profile.
+//
+//   - Storage arm suitable for screwing to walls, bookshelves,
+//     etc. (requires non-countersunk M4 screws); will hold two
+//     heavy duty spools each with a 100m coil.
+//
+//     Set
+//           fdia=2.85
+//           lightduty=false
+//     And print one of these, according to taste
+//            StorageArmLeft
+//            StorageArmRight
+//
+//     NB that the `light duty' version of this is shorter and
+//     will only take two `light duty' spools.
+//
+// For the above, I used the Cura `High detail' PLA profile because
+// I wanted it pretty, but the `Standard' profile should do fine.
+//
+//   - Spool (in many parts) for handing 1.75mm filament, printable
+//     on, and with parts for mounting on, a Reprappro Huxley.
+
+
 fdia=2.85; // or 1.75
 lightduty=false; // or true
 
@@ -584,6 +676,38 @@ module StorArmHoleTest(){ ////toplevel
 }
 
 
+//----- filament guide clip spacer clip -----
+
+guideclip_armdia = 15.0 + 0.5;
+guideclip_armwidth = 10.2 + 0.5;
+
+guideclip_prongprotrude = 4;
+guideclip_thick = 1.6;
+
+module FilamentGuideClipArmTemplate(extra=0){
+  intersection(){
+    circle(r= (guideclip_armdia/2) + extra);
+    square(center=true, [guideclip_armwidth+extra*2,
+                        guideclip_armdia + extra*2 + 10]);
+  }
+}
+
+module FilamentGuideClipSpacerClipTemplate(){
+  difference(){
+    union(){
+      FilamentGuideClipArmTemplate(extra= guideclip_thick);
+    }
+    FilamentGuideClipArmTemplate();
+    translate([0, -guideclip_armdia/2])
+      square(center=true, [guideclip_armwidth - guideclip_prongprotrude,
+                          guideclip_armdia]);
+  }
+}
+
+module FilamentGuideClipSpacerClip(){ ////toplevel
+}
+
+
 module Demo(){
   translate([-hubeffrad-30,50,0]) Hub();
   ArmEnd();