}
}
-// frontbackly version, everything prefixed with f or F
-
-fstemleny = -hookcy;
-fbend = atan((tuberad - hookinrad) / fstemleny);
-
-module FPlan(){
- ClipPlan(fbend, fstemleny);
+// straight-on version, everything prefixed with s or S
+
+shookcy = -(stemlen-hookoutrad);
+sstemleny = -shookcy;
+sbend_raw = tangents_intersect_beta([0,0],tuberad,
+ [0,shookcy],hookinrad);
+sbend = angle_map_range(360-sbend_raw, -180);
+
+module SPlan(){
+ ClipPlan(sbend, sstemleny);
+ FArcSegment(0,shookcy, hookinrad,hookoutrad,
+ 270 - hookcurl,
+ hookcurl + 90 - sbend);
}
// toplevels etc.
mirror([1,0,0]) Hook();
}
-FPlan();
-translate([60,0,0]) Plan();
+SPlan();
+translate([60,0,0]) ElevationCore();
//ElevationCore();
//RightHook();