crossoff = tile_hard_edge_hole_dist + POST_TCROSSSZ/2;
cidsz = [ thehd[0], size[1] - 2*crossoff ];
cidszr = [ cidsz[0], min(cidsz[1], 50) ];
+ translate( concat(botleft + [0, crossoff] + (cidsz-cidszr)/2, [0]) )
+ Commitid_BestCount(cidszr);
difference(){
mirror([0,0,1]) {
translate(concat(botleft + [test_edge,test_edge], [test_tile_th]))
cube(concat(topright_post-botleft_post, [tile_th+2]));
}
shufflesz = max(test_edge, tile_hard_edge_hole_dist)*2;
- hull(){ // poor man's minkowski
- for (xs=[-1,1]) for (ys=[-1,1]) for (zs=[-1,1]) {
- translate([xs,ys,zs] * shufflesz)
- Machine();
- }
+ minkowski(){
+ MachineEnvelope();
+ cube(shufflesz, center=true);
}
}
}
machine_front_profile);
skew_angle = atan2( first_front[1] - first_rear[1],
first_front[0] - first_rear[0] );
- echo(below_point, pol, skew_angle);
+ //echo(below_point, pol, skew_angle);
hull(){
for (z=[0,-40]) {
translate([0,z]) {
sh = -[abs(posbox[0]), abs(posbox[1])];
rot = atan2(-sideline[0], sideline[1]);
sc = scaleline_mm / scaleline;
- echo("SH",sh,rot,sc);
+ //echo("SH",sh,rot,sc);
scale(sc) rotate(rot) translate(sh){
import("sewing-table-rear-profile.dxf", convexity=10); // spline, Pink3
}
module Machine_NewRearCurve(){
slant = atan2(4,210-10);
- echo("SL",slant);
+ //echo("SL",slant);
translate([0,0, rearcurve_double_inrad]) rotate([slant,0,0]){
translate([ rearcurve_double_inrad,
0,
Machine_Curves();
}
+module MachineEnvelope(){
+ // used for testing
+ p_arm_bl = [-cutout_tile11_x, -cutout_tile01_y];
+ y_arm_t = cutout_tile11_y;
+ p_crv_fl = p_arm_bl + [rearedge_len, -frontcurve_avoid_y];
+ y_crv_b = y_arm_t + rearcurve_avoid_y;
+
+ translate([0,0,-50]) linear_extrude(height= 100){
+ translate(p_arm_bl) square([400, y_arm_t] - p_arm_bl);
+ translate(p_crv_fl) square([400, y_crv_b] - p_crv_fl);
+ }
+}
+
function Rectangle_corners(c0, sz) =
// returns the corners of a rectangle from c0 to c0+sz
// if sz is positive, the corners are anticlockwise starting with c0
//Machine_Curves();
//Machine();
//FitTest();
+//MachineEnvelope();