+ }
+}
+
+module Machine_NewRearProfile(){
+ // figures copied out of xfig edit boxes
+ // best not to edit the posbox size if poss - just move it
+ posbox = 10 * ([7.2333,-14.1267] - [-16.2289,40.0289]); // box, Green
+ sideline = -10 * ([-6.2400,13.5600] - [-2.4467,28.2556]); // line, Blue
+ scaleline = 10 * dist2d([-1.1911,-20.4800], [-11.2600,4.0578]); // Green2
+ scaleline_mm = 12+5+10+5+3;
+ sh = -[abs(posbox[0]), abs(posbox[1])];
+ rot = atan2(-sideline[0], sideline[1]);
+ sc = scaleline_mm / scaleline;
+ //echo("SH",sh,rot,sc);
+ scale(sc) rotate(rot) translate(sh){
+ import("sewing-table-rear-profile.dxf", convexity=10); // spline, Pink3
+ }
+}
+
+module Machine_NewFrontProfile(){
+ // figures copied out of xfig edit boxes
+ // best not to edit the posbox size if poss - just move it
+ posbox = 10 * ([11.8022,8.0600] - [4.2044,19.1867]); // box, Green
+ refline = 10 * ([7.6778,16.7222] - [27.8689,17.6578]); // line, Blue
+ refline_mm = (11-1)*10;
+ sh = -[abs(posbox[0]), abs(posbox[1])];
+ rot = atan2(-refline[0], refline[1]);
+ sc = refline_mm / vectorlen2d(refline);
+ //echo("SH",sh,rot,sc);
+ mirror([1,0]) scale(sc) rotate(rot+90) translate(sh){
+ import("sewing-table-front-profile.dxf", convexity=10); // spline, Pink3
+ }
+}
+
+module Machine_NewRearCurve(){
+ slant = atan2(4,210-10);
+ //echo("SL",slant);
+ translate([0,0, rearcurve_double_inrad]) rotate([slant,0,0]){
+ translate([ rearcurve_double_inrad,