reartablet_y = 5;
frontcurve_side_skew = 3.5 / 72;
+frontcurve_avoid_y = 70;
+frontcurve_z_slop = 0.75;
// calculated
first_front = machine_front_profile[len(machine_front_profile)-1];
+m4_define(`POST_TCROSSSZ',
+ `2*( tile_hard_edge_hole_dist - test_edge + 1 )')
+
module Post(){
mirror([0,0,1]) {
difference(){
}
}
if (TEST) {
- tsz = tile_hard_edge_hole_dist - test_edge + 1;
translate([0,0, tile_th/2]) {
- cube([post_dia, tsz*2, tile_th], center=true);
- cube([tsz*2, post_dia, tile_th], center=true);
+ cube([post_dia, POST_TCROSSSZ, tile_th], center=true);
+ cube([POST_TCROSSSZ, post_dia, tile_th], center=true);
}
}
}
+ [0, thehd[1]]);
}
if (TEST) {
- translate( concat(botleft + [thehd[0], 0], [0]) )
- Commitid_BestCount([ size[0] - thehd[0]*2, thehd[1] ]);
+ crossoff = tile_hard_edge_hole_dist + POST_TCROSSSZ/2;
+ translate( concat(botleft + [crossoff, 0], [0]) )
+ Commitid_BestCount([ size[0] - 2*crossoff, thehd[1] ]);
difference(){
mirror([0,0,1]) {
translate(concat(botleft + [test_edge,test_edge], [test_tile_th]))
}
translate([ tile01_tr[0] - cutout_l_end_x + rearedge_len,
cutout_tile11_y,
- 0 ]){
+ frontcurve_z_slop ]){
translate([ 0, -first_front[0] , 0 ])
multmatrix([[1, -frontcurve_side_skew, 0, 0],
[0, 1, 0, 0],
tile_01_11_cnr = tile01_tr + [-cutout_tile11_x, 0];
tile_11_10_cnr = tile01_tr + [0, cutout_tile11_y];
+tile_01_00_cnr = tile01_tr - [0, cutout_tile01_y];
module Tile11(){ ////toplevel
sz = [250,250];
}
}
-tile_01_00_cnr = tile01_tr + [0, -cutout_tile01_y];
-
module Tile01(){ ////toplevel
sz = [250,170];
c0 = tile01_tr + -sz;
cty = cutout_tile11_y;
rcy = cty + rearcurve_avoid_y;
posts = [ cnr_posts[0] + [ 0, cty ],
- cnr_posts[1] + [ -sz[1] + rearedge_len - cutout_l_end_x, cty ],
+ cnr_posts[1] + [ -sz[0] + rearedge_len - cutout_l_end_x, cty ],
cnr_posts[1] + [ 0, rcy ],
cnr_posts[2],
cnr_posts[3] ];
RoundCornerAdd(rcs);
}
+module Tile00(){ ////toplevel
+ sz = [250,170];
+ c0 = tile01_tr + [0,-sz[1]];
+ c = Rectangle_corners(c0, sz);
+ cnr_posts = Rectangle_corners2posts(c);
+ cty = cutout_tile01_y;
+ rcy = cty + frontcurve_avoid_y;
+ posts = [ cnr_posts[0],
+ cnr_posts[1],
+ cnr_posts[2] + [ 0, -rcy ],
+ cnr_posts[2] + [ -sz[0] + rearedge_len - cutout_l_end_x, -cty ],
+ cnr_posts[3] + [ 0, -cty ]
+ ];
+ rcs = [R_EDGE(c,1)];
+ difference(){
+ union(){
+ Rectangle_TileBase(c);
+ Posts(posts);
+ RoundEdge(R_EDGE(c,0));
+ RoundEdge(R_EDGE(c,1));
+ InterlockEdge(tile_01_00_cnr, c[0]);
+ }
+ RoundCornerCut(rcs);
+ Machine();
+ }
+ RoundCornerAdd(rcs);
+}
+
module Demo(){ ////toplevel
translate(demo_slop*[-2,1]) color("blue") Tile12();
translate(demo_slop*[-2,0]) color("red") Tile02();
translate(demo_slop*[-2,1]) color("orange") Tile11();
translate(demo_slop*[-2,0]) color("purple") Tile01();
translate(demo_slop*[-3,1]) color("blue") Tile10();
+ translate(demo_slop*[-3,0]) color("red") Tile00();
%Machine();
}