chiark / gitweb /
scaffold-clamp: wip vhook
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Nov 2020 18:59:20 +0000 (18:59 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Nov 2020 18:59:20 +0000 (18:59 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
scaffold-clamp.scad

index a5850a740332951068271b25461cc53c6a3e1042..4aafe4df1e88cb0ab35364e2793b4d5696c5ebaa 100644 (file)
@@ -37,21 +37,46 @@ flats_y = open_gap/2 + th;
 stride_z = hinge_unit*2 + hinge_z_gap*2;
 total_z = hinge_units * stride_z - hinge_z_gap;
 
+min_z = -total_z/2;
+max_z = +total_z/2;
+
 pin_flatten = pin_dia/2 * (1 - cos(45));
 
 $fa = 3;
 $fs = 0.1;
 
+module SmoothPlan(){
+  offset(r=-smooth_r) offset(delta=smooth_r) children(0);
+}
+
+module TubePlan(){ circle(r = tube_dia/2); }
+module MainCirclePlan(){ circle(r = tube_dia/2 + th); }
+
+module PlanWeldMainCircle(){
+  intersection(){
+    difference(){
+      SmoothPlan(){
+       union(){
+         MainCirclePlan();
+         children(0);
+       }
+      }
+      TubePlan();
+    }
+    rotate(-135) square(100);
+  }
+}
+
 module MainPlan(flatten=false) {
   difference(){
-    offset(r=-smooth_r) offset(delta=smooth_r)
+    SmoothPlan()
       union(){
       translate([hinge_x, 0]) circle(r= hinge_o_r);
-      circle(r = tube_dia/2 + th);
+      MainCirclePlan();
       rectfromto([0,           -flats_y],
                 [max_x,       +flats_y]);
     }
-    circle(r = tube_dia/2);
+    TubePlan();
     rectfromto([0,       -open_gap/2],
               [max_x+1, +open_gap/2]);
     translate([hinge_x, 0]) {
@@ -85,9 +110,16 @@ module MainPlanB(flatten){
   }
 }
 
+module VHookPlan() {
+  PlanWeldMainCircle(){
+    rectfromto([ -5, 0 ],
+              [ +5, -60 ]);
+  }
+}
+
 module HalfClampX(flatten=false){
   difference(){
-    translate([0,0, -total_z/2]) {
+    translate([0,0, min_z]) {
       linextr(0, total_z) mirror([0,1]) MainPlanB();
       for (i=[0 : hinge_units-1]) {
        translate([0,0, stride_z*i])
@@ -116,6 +148,10 @@ module PlanDemo(){ ////toplevel
     MainPlanB();
     MainPlanA();
   }
+
+  translate([0, -tube_dia*1.5]) {
+    VHookPlan();
+  }
 //  translate([max_x - hinge_x + 20, 0]) color("blue") MainPlanA();
 }
 
@@ -127,6 +163,12 @@ module DummyA(){ ////toplevel
   HalfClampX();
 }
 
+module VHookA(){ ////toplevel
+  DummyA();
+  linextr(min_z, max_z)
+    VHookPlan();
+}
+
 module Demo(){ ////toplevel
   color("red") rotate([180,0,0]) GeneralB();
   color("blue") DummyA();