[-1, boty]]);
}
+module SElevationPlaced(){
+ rotate([0,-90,0]) translate([0,0,-100]) linear_extrude(height=200)
+ SElevation();
+}
+
module SHookL(){ ///toplevel
intersection(){
linear_extrude(height=topwidth) SPlan();
- rotate([0,-90,0]) translate([0,0,-100]) linear_extrude(height=200)
- SElevation();
+ SElevationPlaced();
}
}
tbend_raw = tangents_intersect_beta(tjoin0c, tjoinrad,
tjoin1c, -hookoutrad);
-echo(tbend_raw);
tbend0 = angle_map_range(tbend_raw, 0);
tbend1 = angle_map_range(tbend_raw + 180, -180);
FArcSegment(0,shookcy, hookinrad,hookoutrad,
tbend1, 270+hookcurl - tbend1);
translate(tbend0p) {
- rotate(tbend_raw) mirror([0,1]) {
- square(size=[mainthick, dist2d(tbend0p,tbend1p)]);
+ rotate(tbend_raw+180) mirror([1,0]) {
+ translate([0,-0.1]) square(size=[mainthick, dist2d(tbend0p,tbend1p)+0.2]);
}
}
}
+module THookR(){ ///toplevel
+ intersection(){
+ linear_extrude(height=topwidth) TPlan();
+ SElevationPlaced();
+ }
+}
+
// other toplevels etc.
module HookR(){ ////toplevel
mirror([1,0,0]) SHookL();
}
+module THookL(){ ////toplevel
+ mirror([1,0,0]) THookR();
+}
+
module Demo(){ ////toplevel
translate([-30,tubeheight,0]) HookL();
translate([ 0,tubeheight,0]) HookR();
translate([ 30, 0,0]) SHookL();
translate([ 60, 0,0]) SHookR();
+ translate([ 90, 0,0]) THookL();
+ translate([120, 0,0]) THookR();
}