chiark / gitweb /
filamentspool: Calculate correct real_exteffrad for 1.75mm version
[reprap-play.git] / filamentspool.scad
index 68c2b4d2476624b874f8bc31ac11f53e4a22cb62..548312032c19c312641b676b8a8ecfe424bd187f 100644 (file)
@@ -242,15 +242,18 @@ nondove_armbase = nondove_armhole_x + nondove_armhole_hole/2 +
   nondove_armhole_support;
 echo(nondove_armbase);
 
-real_exteffrad = selsz(exteffrad,
-                      hubeffrad + nondove_armbase,
-                      hubeffrad + nondove_armbase);
-
 include <doveclip.scad>
 include <cliphook.scad>
 include <filamentteeth.scad>
 include <axlepin.scad>
 
+hub_clip_baseextend = (hubeffrad - DoveClip_depth()
+                      - hubbigrad + hublwidth);
+
+real_exteffrad = selsz(exteffrad + hub_clip_baseextend,
+                      hubeffrad + DoveClip_depth(),
+                      hubeffrad + nondove_armbase);
+
 channelwidth = prongthick + channelslop;
 channeldepth = prongwidth + ratchettoothheight;
 totalwidth = armendwallthick*2 + channelwidth;
@@ -277,27 +280,31 @@ module ArmEnd(length=armend_length){ ////toplevel
     }
   }
 
-  for (circum = [300:100:1500]) {
-    assign(rad = circum / tau)
-      assign(fn = str("filamentspool-number-n",circum,".dxf"))
-      assign(xlen = rad - real_exteffrad) {
-      echo(circum, rad, xlen);
-      if (xlen >= numbers_tick_width/2 &&
-         xlen <= length - numbers_height_allow)
-      translate([xlen, -armendwallthick,
-                -armendbasethick + (totalheight - numbers_tick_len)/2])
-       color("blue"){
-       translate([-numbers_tick_width/2, -1, 0])
-         cube([numbers_tick_width, numbers_relief+1, numbers_tick_len]);
-       //  echo(fn);
-       translate([numbers_tick_width/2 + numbers_tick_linespc,
-                  1,
-                  numbers_tick_len])
-         rotate([90,0,0])
-         rotate([0,0,-90])
-         linear_extrude(height= numbers_relief+1)
-         //    scale(templatescale)
-         import(file=fn, convexity=100);
+  for (otherside=[0,1]) {
+    for (circum = [300:100:1500]) {
+      assign(rad = circum / tau)
+       assign(fn = str("filamentspool-number-n",circum,".dxf"))
+       assign(rotateoffset = [0, totalwidth/2, 0])
+       assign(xlen = rad - real_exteffrad) {
+       if (xlen >= numbers_tick_width/2
+           + (otherside ? numbers_height_allow : 0) &&
+           xlen <= length - (otherside ? 0 : numbers_height_allow))
+         translate([xlen, -armendwallthick,
+                    -armendbasethick + (totalheight - numbers_tick_len)/2])
+         translate(rotateoffset)
+         rotate([0,0, otherside*180])
+         translate(-rotateoffset){
+           translate([-numbers_tick_width/2, -1, 0])
+             cube([numbers_tick_width, numbers_relief+1, numbers_tick_len]);
+           translate([numbers_tick_width/2 + numbers_tick_linespc,
+                      1,
+                      numbers_tick_len])
+             rotate([90,0,0])
+             rotate([0,0,-90])
+             linear_extrude(height= numbers_relief+1)
+             //    scale(templatescale)
+             import(file=fn, convexity=100);
+         }
       }
     }
   }
@@ -468,8 +475,7 @@ module Hub(){ ////toplevel
            difference() {
              translate([hubeffrad,0,0])
                DoveClipPairSane(h=doveclipheight,
-                                baseextend = (hubeffrad - DoveClip_depth()
-                                              - hubbigrad + hublwidth));
+                                baseextend = hub_clip_baseextend);
              if (hole>hublwidth && holewidth > 2) {
                translate([hubbigrad + hublwidth, -holewidth/2, -1])
                  cube([hole, holewidth, hublthick+2]);