X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=sewing-table.scad.m4;h=7c95db9682b16029b972a150ad1a2e3e69b6f219;hb=62ab81705a1d49b4b39ed7c5a565e4fd1b9fb787;hp=950f69c731d1aba9ca97461d1665a7af67659265;hpb=9c3bb91f9adde083a93efe6268885255aa440dad;p=reprap-play.git diff --git a/sewing-table.scad.m4 b/sewing-table.scad.m4 index 950f69c..7c95db9 100644 --- a/sewing-table.scad.m4 +++ b/sewing-table.scad.m4 @@ -622,35 +622,6 @@ module Rectangle_TileBase(c) { TileBase(c[0], c[2]); } function Posts_interpolate_one(c0,c1) = [c0, (c0+c1)/2, c1]; -module FitTest_general(c0,sz, dobrace=false){ - c = Rectangle_corners(c0, sz); - brace = [7,7,9]; - difference(){ - union(){ - Rectangle_TileBase(c); - if (dobrace) { - translate(concat(c0, [-brace[2] + 0.1])){ - difference(){ - cube(concat(sz,[brace[2]]) - [5,0,0]); - translate(brace + [0,0, -25]) - cube(concat(sz, [50]) - brace*2 + [10,0,0]); - } - } - } - RoundEdge(R_EDGE(c,1)); - } - Machine(); - } -} - -module FitTest_Entire(){ ////toplevel - FitTest_general([-40,-80], [275,180], dobrace=true); -} - -module FitTest_RearCurve(){ ////toplevel - FitTest_general([110,0], [170,100]); -} - module Tile02(){ ////toplevel sz = [100,170]; c0 = tile02_tr + -sz; @@ -817,6 +788,35 @@ module Tile00(){ ////toplevel RoundCornerAdd(rc2); } +module FitTest_general(c0,sz, dobrace=false){ + c = Rectangle_corners(c0, sz); + brace = [7,7,9]; + difference(){ + union(){ + Rectangle_TileBase(c); + if (dobrace) { + translate(concat(c0, [-brace[2] + 0.1])){ + difference(){ + cube(concat(sz,[brace[2]]) - [5,0,0]); + translate(brace + [0,0, -25]) + cube(concat(sz, [50]) - brace*2 + [10,0,0]); + } + } + } + RoundEdge(R_EDGE(c,1)); + } + Machine(); + } +} + +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]; @@ -828,6 +828,48 @@ module FitTest_FrontCurve(){ ////toplevel } } +module FitTest_PairLink(cut=false){ ////toplevel + cy0=-55; cy1=85; cx=127; + bar = [10,10]; + legrad = 12; + footrad_min = 4; footrad_max = 6; footrad_depth = 3; + + 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,135]) { + rotate(rot){ + hull(){ + for (s=[-1,+1]){ + translate([s*legrad,0,0]) + cylinder(r= footrad_max, h=bar[1]); + } + } + } + } + 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); + } + } + } + } + } + } +} + +module FitTest_PairDemo(){ ////toplevel + FitTest_PairLink(); + %FitTest_FrontCurve(); + %FitTest_RearCurve(); +} + module RoundCornerDemo_plat(cnr){ mirror([0,0,1]) linear_extrude(height=1) polygon(cnr); }