-
-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();
- }
- }
-}