From: Ian Jackson Date: Thu, 5 Nov 2020 18:59:20 +0000 (+0000) Subject: scaffold-clamp: wip vhook X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=9cf37e4da7518b3101e2cd69e077f989ac42b8ee;p=reprap-play.git scaffold-clamp: wip vhook Signed-off-by: Ian Jackson --- diff --git a/scaffold-clamp.scad b/scaffold-clamp.scad index a5850a7..4aafe4d 100644 --- a/scaffold-clamp.scad +++ b/scaffold-clamp.scad @@ -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();