chiark / gitweb /
ksafe-base: introduce BaseProfile
[reprap-play.git] / splitpin.scad
index fc2fe62..9631c95 100644 (file)
@@ -6,9 +6,9 @@ tau = 6.28318530718;
 function deg2rad(deg) = deg/360 * tau;
 function rad2deg(rad) = rad/tau * 360;
 
-module SplitPin(w=1.5, holeminrad=3.00, thick=3, deviationrad=1.5,
+module SplitPin(w=1.5, holeminrad=2.50, thick=3, deviationrad=1.5,
                mainlen=15, handlerad=20, handlelen=12) {
-  spare = holeminrad - deviationrad - w;
+  spare = holeminrad*2 - deviationrad - w*2;
   echo("splitpin spare",spare);
   %translate([0,mainlen+handlelen,0]) cylinder(r=spare, h=thick);
   %translate([0,mainlen,thick/2]) rotate([90,0,0])
@@ -31,27 +31,30 @@ module SplitPin(w=1.5, holeminrad=3.00, thick=3, deviationrad=1.5,
 //    translate([unbent_dx, 5, 10]) %cube([10,10,10]);
 //  }
 
-  for (xmir=[0,1]) mirror([xmir,0,0]) {
-    linear_extrude(height=thick) {
+  linear_extrude(height=thick) {
+    for (xmir=[0,1]) mirror([xmir,0,0])
       FlatArc(0,0, w*0.5, w*1.5, 270-1,360);
-      translate([w*1.5, 0, 0]) {
-       FlatArc($fa=1, main_cx,0, unbent_rad, unbent_rad+w,
-               180-unbent_subang, 180);
-       translate([corner_x, corner_y])
-         rotate([0,0,-unbent_subang]) {
+    translate([w*1.5, 0, 0]) {
+      FlatArc($fa=1, main_cx,0, unbent_rad, unbent_rad+w,
+             180-unbent_subang, 180);
+      translate([corner_x, corner_y]) rotate([0,0,-unbent_subang]) {
+       rotate([0,0,10])
+         translate([w*0.2,0,0])
          translate([-(w + deviationrad), -0.1])
-           square(size=[w + deviationrad, w+0.1]);
-         FlatArc(-deviationrad + handlerad, w,
-                 handlerad, handlerad+w,
-                 180-rad2deg(handlelen/handlerad), 180,
-                 $fa=0.25, $fn=60);
-       }
+         square(size=[w + deviationrad, w+0.1]);
+       FlatArc(-deviationrad + handlerad, w,
+               handlerad, handlerad+w,
+               180-rad2deg(handlelen/handlerad), 180+rad2deg(w/handlerad),
+               $fa=0.25, $fn=60);
       }
     }
+    mirror([1,0,0]) translate([w*1.5, 0, 0])
+      FlatArc($fa=1, main_cx,0, unbent_rad, unbent_rad+w,
+             180-(unbent_subang + rad2deg((handlelen+w)/unbent_rad)), 180);
   }
 }
 
-module SplitPinCavity(w=1.5, holeminrad=3.00, thick=3, deviationrad=1.5,
+module SplitPinCavity(w=1.5, holeminrad=2.50, thick=3, deviationrad=1.5,
                      mainlen=15, slop=0.5, insertby = 5) {
   smallgap2 = holeminrad;
   biggap2 = smallgap2 + deviationrad + slop;
@@ -73,5 +76,6 @@ module SplitPinCavity(w=1.5, holeminrad=3.00, thick=3, deviationrad=1.5,
 }
 
 SplitPin();
-//translate([0,30,0])
-//  SplitPinCavity();
+translate([0,15+5,-10])
+  rotate([-90,0,0])
+  SplitPinCavity();