chiark / gitweb /
poster-tube-lid: Add actual knob
[reprap-play.git] / poster-tube-lid.scad
index 9fc41ff059d6df2027492208e5aba8f32add4df3..4aea76df25ea8c48bd3930a5cd4fcee7ed84cb82 100644 (file)
@@ -81,6 +81,7 @@ catch_stem_th = 3;
 
 catch_knob_dia = 6;
 catch_knob_above_gap = 8;
+catch_knob_height = 6;
 catch_pin_height = 7;
 
 catch_stem_below_gap = 1.0;
@@ -145,7 +146,7 @@ catch_cr = catch_knob_dia/2 + catch_stem_beside_gap;
 catch_strap_width = sm_main_width;
 catch_strap_thick = sm_main_thick;
 catch_stem_end_h = catch_stem_h;
-catch_pin_width = (rivet_entry_width * bayo_real_rad / bayo_nom_rad)
+catch_pin_width = (rivet_entry_width * sm_inner_rad / bayo_nom_rad)
                   - catch_pin_gap;
 
 echo("R ", sm_inner_rad, bayo_real_rad, bayo_nom_rad);
@@ -578,11 +579,21 @@ module CatchCoreProfile(){ ////toplevel
   }
 }
 
+module CatchCore(){ /////toplevel
+  linear_extrude(height=catch_strap_thick, convexity=10)
+    CatchCoreProfile();
+
+  translate(concat(cppB,[0])) hull(){
+    translate([0,0, catch_knob_height - catch_knob_dia/2])
+      sphere(r = catch_knob_dia/2);
+    cylinder(r = catch_knob_dia/2, h = 0.1);
+  }
+}
+
 module CatchPreDistort(){ /////toplevel
   scale(100 / sm_inner_rad)
     rotate([90,0,0])
-    linear_extrude(height=catch_strap_thick, convexity=10)
-    CatchCoreProfile();
+    CatchCore();
 }
 
 module CatchAssembly(){ /////toplevel
@@ -590,7 +601,7 @@ module CatchAssembly(){ /////toplevel
     translate([0,0, catch_strap_width])
     scale(sm_inner_rad / 100)
     import(str("poster-tube-lid,CatchPostDistort-fa",
-              (coarse ? 20 : 1),
+              (coarse ? 20 : 3),
               ".stl"),
           convexity=20);