From: Ian Jackson Date: Thu, 5 Nov 2020 20:26:40 +0000 (+0000) Subject: scaffold-clamp: wip reorg again X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=commitdiff_plain;h=954ba35853a53535fa82b45eeef973377cfcca51 scaffold-clamp: wip reorg again Signed-off-by: Ian Jackson --- diff --git a/scaffold-clamp-common.scad b/scaffold-clamp-common.scad index 73a5500..36585e0 100644 --- a/scaffold-clamp-common.scad +++ b/scaffold-clamp-common.scad @@ -18,6 +18,13 @@ open_gap = 10; hinge_unit = 10; hinge_z_gap = 1; +hinge_units = 4; + +// vhook + +vhook_th = 10; + + // calculated pin_dia = th; @@ -43,6 +50,17 @@ max_z = +total_z/2; pin_flatten = pin_dia/2 * (1 - cos(45)); +// calculated - vhook + +vhook_inside = 15; + +vhook_theta = atan2( smooth_r, main_r ); + +vhook_y0 = -cos(vhook_theta) * (main_r + smooth_r); +vhook_ctr = vhook_y0 - vhook_inside/2; +vhook_outer_dia = vhook_inside + vhook_th*2; + + $fa = 3; $fs = 0.1; @@ -133,7 +151,7 @@ module HalfClampX(flatten=false){ } } -module GeneralPlanDemo(){ ////toplevel +module PlanDemo(){ ////toplevel MainPlan(); translate([0,0,-4]) color("red") Portion(1); translate([0,0,-2]) color("grey") Portion(0); @@ -142,9 +160,64 @@ module GeneralPlanDemo(){ ////toplevel MainPlanB(); MainPlanA(); } + + translate([0, -tube_dia*1.5]) { + VHookPlanDemo(); + } // translate([max_x - hinge_x + 20, 0]) color("blue") MainPlanA(); } +// ---------- vhook ---------- + +module VHookPlan() { + PlanWeldMainCircle(){ + rectfromto([ -vhook_th/2, 0 ], + [ +vhook_th/2, vhook_y0 ]); + } +} + +module VHookProfile() { + translate([0, -vhook_inside/2 - vhook_th/2]) + circle(r = vhook_th/2); +} + +module VHookHookMain(){ ////toplevel + rotate([0,90,0]) + rotate_extrude(convexity=10) + rotate([0,0,90]) + VHookProfile(); +} + +module VHookPartA(){ ////toplevel + DummyA(); + linextr(min_z, max_z) + VHookPlan(); + + translate([0, vhook_ctr, min_z + vhook_outer_dia/2]){ + linextr(-0.1, vhook_outer_dia/2) + VHookProfile(); + intersection(){ + VHookHookMain(); + translate([0,0, -vhook_outer_dia]) + cube(center=true, vhook_outer_dia*2); + } + } + + //translate([0, vhook_y0, 50]) rotate([0,0,-90]) color("black") cube(10); + // translate([0,0,-150]) rotate([0,0,180 + theta]) color("blue") cube(100); +} + +module VHookPlanDemo(){ + VHookPlan(); + translate([0, vhook_ctr, 5]) + for (m=[0,1]) { + mirror([0,m]) + color("blue") VHookProfile(); + } +} + +// ---------- misc ---------- + module GeneralB(){ ////toplevel HalfClampX(true); } diff --git a/scaffold-clamp-vhook.scad b/scaffold-clamp-vhook.scad index 86adc38..7c3cf06 100644 --- a/scaffold-clamp-vhook.scad +++ b/scaffold-clamp-vhook.scad @@ -1,73 +1,4 @@ // -*- C -*- -hinge_units = 4; - +//// toplevels-from: include - -vhook_th = 10; - -theta = atan2( smooth_r, main_r ); - -vhook_inside = 15; - -// calculated - -vhook_y0 = -cos(theta) * (main_r + smooth_r); -vhook_ctr = vhook_y0 - vhook_inside/2; -vhook_outer_dia = vhook_inside + vhook_th*2; - -//echo(theta); - -module VHookPlan() { - PlanWeldMainCircle(){ - rectfromto([ -vhook_th/2, 0 ], - [ +vhook_th/2, vhook_y0 ]); - } -} - -module VHookProfile() { - translate([0, -vhook_inside/2 - vhook_th/2]) - circle(r = vhook_th/2); -} - -module PartB(){ ////toplevel - GeneralB(); -} - -module VHookHookMain(){ ////toplevel - rotate([0,90,0]) - rotate_extrude(convexity=10) - rotate([0,0,90]) - VHookProfile(); -} - -module PartA(){ ////toplevel - DummyA(); - linextr(min_z, max_z) - VHookPlan(); - - translate([0, vhook_ctr, min_z + vhook_outer_dia/2]){ - linextr(-0.1, vhook_outer_dia/2) - VHookProfile(); - intersection(){ - VHookHookMain(); - translate([0,0, -vhook_outer_dia]) - cube(center=true, vhook_outer_dia*2); - } - } - - //translate([0, vhook_y0, 50]) rotate([0,0,-90]) color("black") cube(10); - // translate([0,0,-150]) rotate([0,0,180 + theta]) color("blue") cube(100); -} - -module PlanDemo(){ ////toplevel - GeneralPlanDemo(); - translate([0, -tube_dia*1.5]) { - VHookPlan(); - translate([0, vhook_ctr, 5]) - for (m=[0,1]) { - mirror([0,m]) - color("blue") VHookProfile(); - } - } -}