chiark / gitweb /
filamentspool: FilamentGuideArm: Provide separate guidearm_screwplatewd and set it...
[reprap-play.git] / filamentspool.scad
index 57af02e73169f32b2a9adc36250ad347e9a8d1d7..218f1e815f8f180e44ecb9a3b9f6cb2f89d4ae5a 100644 (file)
@@ -749,7 +749,7 @@ module FilamentGuideSpacer(){ ////toplevel
 guidearm_armslop = 0.25;
 guidearm_armlenslop = 0.25;
 
-guidearm_hookprotr = 4;
+guidearm_hookprotr = 3;
 guidearm_hookprotrflat = 1;
 guidearm_hookslope = 0.3;
 
@@ -757,12 +757,14 @@ guidearm_totallen = 60;
 
 guidearm_screwplatesz = 12;
 guidearm_screwplateth = 4;
-guidearm_screwhole = 4 + 0.5;
+guidearm_screwplatewd = 15;
+guidearm_screwhole = 5 + 0.5;
 
-guidearm_bendlen = 50;
-guidearm_bendslot = 5;
+guidearm_bendlen = 40;
+guidearm_bendslot = 4.5;
 
 guidearm_stopthick = 4;
+guidearm_protrslop = 1.0;
 
 // calculated
 
@@ -774,6 +776,7 @@ guidearm_base_z0 = -(guidearm_totallen - guidearm_armcorelen);
 
 guidearm_realbendlen = min(guidearm_bendlen,
                           guidearm_totallen - guidearm_screwplateth - 0.1);
+guidearm_slopelen = guidearm_hookprotr/guidearm_hookslope;
 
 module FilamentGuideArmStop(h){
   for (ts=[-1,+1]) {
@@ -790,7 +793,7 @@ module FilamentGuideArmShaftPositive(){
   translate([0,0, guidearm_armcorelen]){
     hull(){
       FilamentGuideArmStop(guidearm_hookprotrflat);
-      translate([0,0, guidearm_hookprotr/guidearm_hookslope])
+      translate([0,0, guidearm_slopelen])
        cylinder(r=r, h=guidearm_hookprotrflat, $fn=80);
     }
   }
@@ -799,12 +802,14 @@ module FilamentGuideArmShaftPositive(){
 }
 
 module FilamentGuideArmBase(){
-  translate([0,0, guidearm_base_z0]){
+  translate([0,
+            (guidearm_screwplatewd - guidearm_armwidth)/2,
+            guidearm_base_z0]){
     difference(){
       translate([0,0, guidearm_screwplateth/2])
        cube(center=true,
             [guidearm_armdia + guidearm_screwplatesz*2,
-             guidearm_armwidth,
+             guidearm_screwplatewd,
              guidearm_screwplateth]);
       for (ts=[-1,+1]) {
        translate([ts * (guidearm_armdia/2 + guidearm_screwplatesz/2),
@@ -826,6 +831,15 @@ module FilamentGuideArm(){ ///toplevel
        cube([guidearm_bendslot,
              100,
              guidearm_realbendlen + 100]);
+      hull(){
+       for (zx=[ [ 0, guidearm_bendslot ],
+                 [ guidearm_armcorelen + guidearm_slopelen,
+                   guidearm_hookprotr*2 + guidearm_protrslop ]
+                 ]) {
+         translate([-zx[1]/2, -50, zx[0]])
+         cube([zx[1], 100, 1]);
+       }
+      }
     }
     cube(center=true,
         [guidearm_armdia*2,