X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=scaffold-clamp-common.scad;h=3207b5e208a23f6a662c8da94bc658991818a3e1;hb=0bb75071782fbce522c31e6d0a384f40ac379dfb;hp=0f7ddf00b0b13732d6ebd835d83494a80b713b29;hpb=6dba99d4594590c1af949fbd0379d366a05c2ca6;p=reprap-play.git diff --git a/scaffold-clamp-common.scad b/scaffold-clamp-common.scad index 0f7ddf0..3207b5e 100644 --- a/scaffold-clamp-common.scad +++ b/scaffold-clamp-common.scad @@ -56,7 +56,7 @@ vhook_inside = 15; vhook_theta = atan2( smooth_r, main_r ); -vhook_y0 = -cos(vhook_theta) * (main_r + smooth_r); +vhook_y0 = -max(main_r, (tube_dia/2 + vhook_th)); vhook_ctr = vhook_y0 - vhook_inside/2; vhook_outer_dia = vhook_inside + vhook_th*2; @@ -169,33 +169,44 @@ module PlanDemo(){ ////toplevel // ---------- 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 +module VHookHookMain(outer=false){ ////toplevel rotate([0,90,0]) rotate_extrude(convexity=10) rotate([0,0,90]) - VHookProfile(); + hull(){ + VHookProfile(); + if (outer) { + translate([0,-vhook_outer_dia]) square(center=true, vhook_th); + } + } } module VHookPartA(){ ////toplevel DummyA(); - linextr(min_z, min(min_z + vhook_outer_dia * 1.5, max_z)) - VHookPlan(); translate([0, vhook_ctr, min_z + vhook_outer_dia/2]){ - linextr(-0.1, vhook_outer_dia/2) - VHookProfile(); + for (m=[0,1]) { + mirror([0, m, 0]) { + linextr(-0.1, vhook_outer_dia/2) + VHookProfile(); + translate([0, -vhook_inside/2 -vhook_th/2, vhook_outer_dia/2]) + sphere(r= vhook_th/2); + } + } + + intersection(){ + VHookHookMain(outer=true); + linextr_y_xz(0, vhook_outer_dia/2) hull(){ + VHookProfile(); + translate([0,-0.1]) square(center=true, [vhook_th, 0.2]); + } + } + intersection(){ VHookHookMain(); translate([0,0, -vhook_outer_dia])