X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=sewing-table.scad.m4;h=8ca8ff17bc26b4a2f7342092f0841d15798f7d4b;hb=ee16e07412f22f0fd68ad19ce46c429466454888;hp=e2e5fcae66e926347b1cf6f0a91593ec2125d38b;hpb=1485d88001d71e86495691c15e5b35e159cafa20;p=reprap-play.git diff --git a/sewing-table.scad.m4 b/sewing-table.scad.m4 index e2e5fca..8ca8ff1 100644 --- a/sewing-table.scad.m4 +++ b/sewing-table.scad.m4 @@ -7,6 +7,8 @@ ply_th = 18; ply_hole_dia = 15; ply_edge_min = 10; +ply_hole_dia_real = 12; + tile_th = 3; post_dia = 8; @@ -80,6 +82,8 @@ teststrapslots_at = [ [ 110, 70 ], [ 110, -35 ], teststrap = [ 3, 5 ]; teststrap_peg = [7.5, 3.5]; +ply_edge_hole_dist_real = 14; + // calculated TEST = false; @@ -104,7 +108,7 @@ thehd_tl = [ -thehd_tr[0], thehd_tr[1] ]; thehd_bl = -thehd_tr; thehd_br = -thehd_tl; -tablet_z_slop = 0.25; +tablet_z_slop = 1.00; interlock_rad = interlock_dia/2; interlock_negative_rad = interlock_rad + 0.125; @@ -116,23 +120,40 @@ m4_define(`POST_TCROSSSZ', module Post(){ mirror([0,0,1]) { - difference(){ - cylinder(r= post_dia/2, h= tile_th + ply_th - post_shorter); - translate([0,0, tile_th]) { - cylinder(r= screw_big_dia/2, h= screw_big_len); - cylinder(r= screw_dia/2, h= ply_th, $fn=20); + if (!JIG) { + difference(){ + cylinder(r= post_dia/2, h= tile_th + ply_th - post_shorter); + translate([0,0, tile_th]) { + cylinder(r= screw_big_dia/2, h= screw_big_len); + cylinder(r= screw_dia/2, h= ply_th, $fn=20); + } } } - if (TEST || JIG) { + if (TEST) { translate([0,0, tile_th/2]) { cube([post_dia, POST_TCROSSSZ, tile_th], center=true); cube([POST_TCROSSSZ, post_dia, tile_th], center=true); } } + if (JIG) { + translate([0,0, tile_th/2]) { + cube([POST_TCROSSSZ, POST_TCROSSSZ, tile_th], center=true); + } + } } } module PostHole(){ + if (JIG) { + translate([0,0,-5]) + cylinder(r= post_dia/2 + jig_post_hole_slop, h=10); + translate([0,0, -jig_min_th]) + cylinder(r= ply_hole_dia_real/2, h = 5); + for (rot=[0:90:270]) rotate(rot) { + translate([ ply_edge_hole_dist_real, 0, 0 ]) + cube([ jig_pencil_rad*2, jig_pencil_slotlen, 20 ], center=true); + } + } } module Posts(posts) { @@ -171,12 +192,13 @@ module TileBase(botleft, topright){ 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); + if (TEST) + 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(size - [test_edge,test_edge]*2, [tile_th])); + cube(concat(size - [test_edge,test_edge]*2, [tile_th*2])); translate(concat(botleft_post, [-1])) cube(concat(topright_post-botleft_post, [tile_th+2])); } @@ -185,6 +207,17 @@ module TileBase(botleft, topright){ MachineEnvelope(); cube(shufflesz, center=true); } + if (JIG) { + translate([0,0,-20]) linear_extrude(height=20) { + for (diag=[[ +1, botleft ], + [ -1, [topright[0], botleft[1]] ]]) { + translate(diag[1]) + rotate(atan2(size[1], diag[0] * size[0])) + translate([0, -test_edge/2]) + square([vectorlen2d(size), test_edge]); + } + } + } } } } @@ -617,7 +650,7 @@ module TestStrapPeg_Long(){ ////toplevel module Machine(){ ////toplevel Machine_NewArm(); Machine_Curves(); - if (TEST || JIG) + if (TEST) TestStrapSlots(); } @@ -793,6 +826,7 @@ module Tile00(){ ////toplevel rcy = cty + frontcurve_avoid_y; posts = [ cnr_posts[0], cnr_posts[1], + 0.5 * (cnr_posts[0] + cnr_posts[1]), cnr_posts[2] + [ 0, -rcy ], cnr_posts[2] + [ -sz[0] + frontedge_len - cutout_l_end_x, -cty ], cnr_posts[3] + [ 0, -cty ] @@ -1005,6 +1039,12 @@ module Demo(){ ////toplevel translate(demo_slop*[-3,1]) color("blue") Tile10(); translate(demo_slop*[-3,0]) color("red") Tile00(); %Machine(); + // Can also do this, to print reference sheet: + // load this into openscad + // select Ctrl-4 view, view all, scale appropriately + // import sewing-table,Demo-flat.png + // pngtopnm t.pnm + // lpr t.pnm } //TestPiece1();