chiark / gitweb /
filamentspool: ArmEnd nondove commitid
[reprap-play.git] / filamentspool.scad
index a53c11a65ef2be428b5fafce6605d54ed827244d..d1c6d30c0d9ea2ce44395791286eb0995832097e 100644 (file)
@@ -46,6 +46,8 @@
 //
 //     You will also need  4 x M4 machine screws and nuts.
 //
+//     This is the default.
+//
 // ===== Light duty 3-armed spool for 3mm x <=30m coil =====
 //
 // A light duty 3-armed spool suitable for up to around 30m
@@ -54,6 +56,8 @@
 //     Set
 //           fdia=2.85
 //           lightduty=true
+//     (or look in filamentspool-lt.scad).
+//
 //     And print following parts
 //           Hub
 //           ArmEnd x 3
 //     Set
 //           fdia=2.85
 //           lightduty=false
+//     (or look in filamentspool-sm.scad).
+//
 //     And print one of these, according to taste
 //            StorageArmLeft
 //            StorageArmRight
@@ -242,14 +248,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>
+include <commitid.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;
@@ -274,23 +284,28 @@ module ArmEnd(length=armend_length){ ////toplevel
                 -armendwallthick + totalwidth/2,
                 -armendbasethick -1])
        cylinder(r= nondove_armhole_hole/2, h=totalheight+2, $fn=10);
+      translate([-nondove_armbase, -armendwallthick, -armendbasethick])
+        rotate([90,0,0])
+       Commitid_BestCount([nondove_armbase, totalwidth]);
     }
   }
 
-  for (otherside=[0]) { // [0,1]
+  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) {
-       echo(circum, rad, xlen);
-       if (xlen >= numbers_tick_width/2 &&
-           xlen <= length - numbers_height_allow)
+       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])
-           color("blue"){
+         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]);
-           //  echo(fn);
            translate([numbers_tick_width/2 + numbers_tick_linespc,
                       1,
                       numbers_tick_len])
@@ -470,8 +485,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]);
@@ -507,6 +521,16 @@ module Hub(){ ////toplevel
        }
     }
     translate([0,0,-1]) cylinder($fn=60, h=hubaxlelen+2, r=axlerad);
+
+    rotate([0,0, selsz(0,0,45)])
+      translate([axlerad+hublwidth,
+                -hublwidth/2,
+                0])
+      rotate([90,0,0])
+      Commitid_BestCount([(hubbigrad-hublwidth) - (axlerad+hublwidth),
+                         hublthick +
+                         hublwidth/2 * hubaxlelen/(hubbigrad-axlerad),
+                         ]);
   }
 }
 
@@ -940,6 +964,10 @@ module Demo(){ ////toplevel
   translate([-real_exteffrad,-20,0]) Hub();
   ArmEnd();
   translate([ratchettooth*2, 30, 0]) FilamentCup();
+  if (selsz(true,false,false)) {
+    translate([-exteffrad + hubeffrad - hub_clip_baseextend, -10, 0])
+      ArmExtender();
+  }
 }
 
 //ArmEnd();