X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=sewing-table.scad.m4;h=27fb69ccacfe6f147f4cb483cc898c8582d51fee;hb=a74531273748849560c97d4d3ac1690fa0e07525;hp=e7ff1e9634820fc6b68c104a02048424b66d94a5;hpb=8ae0a3b9612ff68edd54017628e30c88c91d5306;p=reprap-play.git diff --git a/sewing-table.scad.m4 b/sewing-table.scad.m4 index e7ff1e9..27fb69c 100644 --- a/sewing-table.scad.m4 +++ b/sewing-table.scad.m4 @@ -238,10 +238,11 @@ module RoundEdge(left_cnr, right_cnr) { } module RoundCornerCut(ci) { - // ci should be [this_cnr, right_cnr] + // ci should be [this_cnr, right_cnr, left_cnr] // where right_cnr is to the right (ie, anticlockwise) this_cnr = ci[0]; right_cnr = ci[1]; + left_cnr = ci[2]; offr= round_cnr_rad - round_edge_rad; INREFFRAME(this_cnr, right_cnr) INREFFRAME_EDGE { difference(){ @@ -255,6 +256,7 @@ module RoundCornerCut(ci) { module RoundCornerAdd(ci) { this_cnr = ci[0]; right_cnr = ci[1]; + left_cnr = ci[2]; bigr = round_cnr_rad - round_edge_rad; INREFFRAME(this_cnr, right_cnr) INREFFRAME_EDGE { intersection(){ @@ -601,10 +603,6 @@ module FitTest_RearCurve(){ ////toplevel FitTest_general([110,0], [170,100]); } -module FitTest_FrontCurve(){ ////toplevel - FitTest_general([110,-80], [170,80]); -} - module Tile02(){ ////toplevel sz = [100,170]; c0 = tile02_tr + -sz; @@ -748,19 +746,52 @@ module Tile00(){ ////toplevel 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]); + difference(){ + union(){ + Rectangle_TileBase(c); + Posts(posts); + RoundEdge(R_EDGE(c,0)); + RoundEdge(c[1], c1bis); + InterlockEdge(tile_01_00_cnr, c[0]); + } + RoundCornerCut(rcs); + translate([0,0,-20]) linear_extrude(height=40) { + polygon([ c1bis, c1bis + [50,0], c2bis + [50,0], c2bis ]); + } + } + RoundEdge(c1bis, c2bis); } - RoundCornerCut(rcs); Machine(); - translate([0,0,-20]) linear_extrude(height=40) { - polygon([ c1bis, c1bis + [50,0], c2bis + [50,0], c2bis ]); - } } RoundCornerAdd(rcs); + RoundCornerAdd([c1bis,c2bis,c[1]]); +} + +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 RoundCornerDemo_plat(cnr){ + mirror([0,0,1]) linear_extrude(height=1) polygon(cnr); +} + +module RoundCornerDemo(){ ////toplevel + cnr = [ [0,0], [15,0], [-10,10] ]; + translate([0,25,0]) RoundCornerDemo_plat(cnr); + translate([25,0,0]) RoundCornerAdd(cnr); + translate([-25,0,0]) RoundCornerCut(cnr); + difference(){ + RoundCornerDemo_plat(cnr); + RoundCornerCut(cnr); + } + RoundCornerAdd(cnr); } module Demo(){ ////toplevel