chiark / gitweb /
filamentspool: FilamentGuideClipSpacerClip ready?
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 23 Jan 2016 20:01:50 +0000 (20:01 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 23 Jan 2016 20:01:50 +0000 (20:01 +0000)
filamentspool.scad

index e44b550..179505d 100644 (file)
@@ -676,39 +676,63 @@ module StorArmHoleTest(){ ////toplevel
 }
 
 
-//----- filament guide clip spacer clip -----
+//----- filament guide spacer -----
 
-guideclip_armdia = 15.0 + 0.5;
-guideclip_armwidth = 10.2 + 0.5;
-guideclip_armspacelen = 15.3 - 0.25;
+guide_armdia = 15.0 + 0.75;
+guide_armwidth = 10.2 + 0.75;
 
-guideclip_prongprotrude = 4;
-guideclip_thick = 1.6;
+guidefilclip_outerdia = 22.8;
 
-module FilamentGuideClipArmTemplate(extra=0){
+guidespacer_prongprotrude = 4;
+guidespacer_thick = 1.6;
+guidespacer_len = 15.3 - 0.25;
+
+// calculated
+
+guidespacer_wingheight = (guidefilclip_outerdia - guide_armdia)/2;
+
+module FilamentGuideArmTemplate(extra=0){
   intersection(){
-    circle(r= (guideclip_armdia/2) + extra);
-    square(center=true, [guideclip_armwidth+extra*2,
-                        guideclip_armdia + extra*2 + 10]);
+    circle(r= (guide_armdia/2) + extra);
+    square(center=true, [guide_armwidth+extra*2,
+                        guide_armdia + extra*2 + 10]);
   }
 }
 
-module FilamentGuideClipSpacerClipInnerTemplate(){
-  FilamentGuideClipArmTemplate();
-  translate([0, -guideclip_armdia/2])
-    square(center=true, [guideclip_armwidth - guideclip_prongprotrude,
-                        guideclip_armdia]);
+module FilamentGuideSpacerInnerTemplate(){
+  FilamentGuideArmTemplate();
+  translate([0, -guide_armdia/2])
+    square(center=true, [guide_armwidth - guidespacer_prongprotrude,
+                        guide_armdia]);
 }
 
-module FilamentGuideClipSpacerClip(){ ////toplevel
+module FilamentGuideSpacer(){ ////toplevel
   difference(){
     union(){
-      linear_extrude(height= guideclip_armspacelen)
-       FilamentGuideClipArmTemplate(extra= guideclip_thick);
+      linear_extrude(height= guidespacer_len)
+       FilamentGuideArmTemplate(extra= guidespacer_thick);
+      for (angle=[26, 60]) {
+       for (m=[0,1]) {
+         mirror([m,0,0]) {
+           rotate([0,0,angle]) {
+             hull(){
+               for (t=[[0, guidespacer_wingheight],
+                       [guidespacer_len, -guidespacer_wingheight]])
+                 translate([0,0, t[0] + 0.5])
+                   cube([guidespacer_thick,
+                         guide_armdia + guidespacer_thick*2
+                         + t[1]*2,
+                     1],
+                        center=true);
+             }
+           }
+         }
+       }
+      }
     }
     translate([0,0,-1])
-      linear_extrude(height= guideclip_armspacelen+2)
-      FilamentGuideClipSpacerClipInnerTemplate();
+      linear_extrude(height= guidespacer_len+5)
+      FilamentGuideSpacerInnerTemplate();
   }
 }