X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=sewing-table.scad.m4;h=3de16d77c4feefbc300ce01d30646511a79e92b6;hb=ef8fcb4aec69c6e34ef568720126abe0fa867efa;hp=7f59091d50c25c091516362163b23588858b7c0c;hpb=ebb99e1e31e40a4439621aabf3d2e7d922afe25b;p=reprap-play.git diff --git a/sewing-table.scad.m4 b/sewing-table.scad.m4 index 7f59091..3de16d7 100644 --- a/sewing-table.scad.m4 +++ b/sewing-table.scad.m4 @@ -100,8 +100,8 @@ frontcurve_side_skew = 3.5 / 72; frontcurve_avoid_y = 70; frontcurve_z_slop = 0.75; -frontcurve_strt_len = 60; -frontcurve_dualcurve_angle = 90 - 65; +frontcurve_strt_len = 50; +frontcurve_dualcurve_angle = 30; // calculated @@ -809,71 +809,106 @@ module FitTest_general(c0,sz, dobrace=false){ } } -module FitTest_Entire(){ ////toplevel - FitTest_general([-40,-80], [275,180], dobrace=true); -} - -module FitTest_RearCurve(){ ////toplevel - FitTest_general([110,0], [170,100]); -} - -module FitTest_FrontCurve(){ ////toplevel - p0 = [110,-80]; - sz = [170,80]; - intersection() { - Tile00(); - translate([0,0,-8]) linear_extrude(height=18) { - translate(p0) square(sz); - } - } -} - module FitTest_PairLink(cut=false){ ////toplevel cy0=-55; cy1=85; cx=127; bar = [10,10]; legrad = 12; - footrad_min = 2; footrad_max = 4; footrad_depth = 3; + footrad_min = 1; footrad_max = 4; footrad_depth = 5; strap = [3,5]; + adj_neg_slop = 1.0; + bar_z_slop = 1.75; // calculated straphole_x_max = legrad/sqrt(2) + footrad_max; + dz = cut ? adj_neg_slop : 0; + + translate([cx - bar[0]/2, cy0, dz + bar_z_slop]) + cube([bar[0], cy1-cy0, bar[1] - bar_z_slop]); - translate([cx - bar[0]/2, cy0, 0]) - cube([bar[0], cy1-cy0, bar[1]]); for (endy=[cy0,cy1]) { $fn=32; - translate([cx,endy,0]){ - for (rot=[45:90:315]) { - rotate(rot){ - translate([legrad,0,0]){ - hull(){ - cylinder(r= footrad_max, h=1); - translate([0,0,-footrad_depth]) - cylinder(r= footrad_min, h=1); - } + translate([cx,endy,dz]){ + // feet + for (rot=[45:90:315]) rotate(rot) { + translate([legrad,0,0]){ + hull(){ + cylinder(r= footrad_max, h=1); + translate([0,0,-footrad_depth]) + cylinder(r= footrad_min, h=1); } } } - for (rot=[45,135]) { - rotate(rot){ - hull(){ - for (s=[-1,+1]){ - translate([s*legrad,0,0]) - cylinder(r= footrad_max, h=bar[1]); - } + // legs + for (rot=[45,135]) rotate(rot) { + hull(){ + for (s=[-1,+1]){ + translate([s*legrad,0,0]) + cylinder(r= footrad_max, h=bar[1]); } } } + // strap holes + if (cut) { + for (rot=[0,180]) rotate(rot) { + translate([ straphole_x_max - strap[0]/2, 0,0 ]) + cube(concat(strap,[20]), center=true); + } + } + } + } +} + +module FitTest_RearCurve(){ ////toplevel + difference(){ + FitTest_general([110,0], [170,100]); + FitTest_PairLink(true); + } +} + +module FitTest_FrontCurve(){ ////toplevel + p0 = [110,-80]; + sz = [170,80]; + difference(){ + intersection() { + Tile00(); + translate([0,0,-8]) linear_extrude(height=18) { + translate(p0) square(sz); + } } + FitTest_PairLink(true); } } +module FitTest_Entire(){ ////toplevel + difference(){ + FitTest_general([-40,-80], [275,180], dobrace=true); + FitTest_PairLink(true); + } +} + +module FitTest_EntireDemo(){ ////toplevel + FitTest_Entire(); + %Tile00(); +} + module FitTest_PairDemo(){ ////toplevel - translate([-120,0,0]){ + sh=[-100,-15,0]; + translate(sh){ FitTest_PairLink(); %FitTest_FrontCurve(); %FitTest_RearCurve(); } + rotate([0,0,180]){ + translate(sh){ + difference(){ + union(){ + FitTest_FrontCurve(); + FitTest_RearCurve(); + } + #FitTest_PairLink(true); + } + } + } } module RoundCornerDemo_plat(cnr){