X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=sewing-table.scad.m4;h=eacbc3d5484ebfddb9a3c95d8d9d36d1f6bdf015;hp=ed0cc5ef763bca7446e1cbabd5590d38d824c23d;hb=3583e096f798c5be22a237895e24f2f2dea5b401;hpb=644885f93b439f4ef0a542a052745ea5f0a4a3f6 diff --git a/sewing-table.scad.m4 b/sewing-table.scad.m4 index ed0cc5e..eacbc3d 100644 --- a/sewing-table.scad.m4 +++ b/sewing-table.scad.m4 @@ -30,6 +30,26 @@ interlock_fine_lenslop = 1.0; demo_slop = 0.1; +leg_height = 62; + +leg_hole_dia = 5 + 0.75; +leg_big_dia = 37; +leg_bot_dia = 15; +leg_top_flat_z = 5; +leg_top_thick = 10; + +leg_midspc_dia = 20; +leg_bot_thick = 10; + +leg_fin_top_w = 5; +leg_fin_bot_w = 5; +leg_fin_bot_rad = 30; +leg_fin_bot_flat_z = 5; + +leg_n_fins = 4; +leg_n_tubules = 4; +leg_tubule_dia = 4; + // cutout machine_rear_to_front = 84 + 0.25 - 1.4; @@ -108,13 +128,18 @@ 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; interlock_sq_adj = 0.2; // arbitrary +leg_fin_top_rad = sqrt( pow(leg_big_dia/2,2) - + pow(leg_fin_top_w/2,2) ); + +leg_tubule_pos_rad = leg_big_dia/2 * 0.6; + m4_define(`POST_TCROSSSZ', `2*( tile_hard_edge_hole_dist - test_edge + 1 )') @@ -207,6 +232,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]); + } + } + } } } } @@ -656,6 +692,42 @@ module MachineEnvelope(){ } } +module Leg(){ ////toplevel + difference(){ + union(){ + hull(){ + mirror([0,0,1]) + cylinder(r= leg_big_dia/2, height=leg_top_flat_z, $fn=100); + translate([0,0, -leg_top_thick]) + cylinder(r= leg_bot_dia/2, height=1, $fn=100); + } + for (rot=[0: 360/leg_n_fins : 359]) rotate(rot) { + hull(){ + mirror([0,0,1]) translate([0, -leg_fin_top_w/2, 0]) + cube([ leg_fin_top_rad - 0.1, + leg_fin_top_w, + 1 ]) + ; + translate([0, -leg_fin_bot_w/2, -leg_height]) + cube([ leg_fin_bot_rad, + leg_fin_bot_w, + leg_fin_bot_flat_z ]); + } + } + } + mirror([0,0,1]) translate([0,0,-1]) + cylinder(r= leg_hole_dia/2, h=leg_height+2, $fn=30); + mirror([0,0,1]) translate([0,0,leg_top_thick - 0.1]) + cylinder(r= leg_midspc_dia/2, + h=leg_height - leg_top_thick - leg_bot_thick, + $fn=30); + for (rot=[45: 360/leg_n_tubules : 359]) rotate(rot) { + mirror([0,0,1]) translate([ leg_tubule_pos_rad, 0, -1]) + cylinder(r= leg_tubule_dia/2, h=leg_height+2, $fn=20); + } + } +} + 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 @@ -1028,6 +1100,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();