chiark / gitweb /
sewing-table: RoundCorner rework: fix all callers (now works again!)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 3 Jun 2017 20:39:25 +0000 (21:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 3 Jun 2017 20:39:25 +0000 (21:39 +0100)
sewing-table.scad.m4

index ceea8b573836240ab90bdee447d8b845ff76ad05..8e16bbd9fa93c14d7cb831c5637c745495bcf923 100644 (file)
@@ -210,7 +210,13 @@ m4_dnl        c is from Rectangle_corners and
 m4_dnl        ix is a corner number
 m4_dnl    expands to two comma-separated corners:
 m4_dnl    that denoted by ix, and the next one anticlockwise
-m4_define(`R_EDGE',`$1[$2],$1[(($2)+1)%4]')
+m4_define(`R_EDGE',`$1[$2], $1[(($2)+1)%4]')
+
+m4_dnl   R_CNR(c,ix)
+m4_dnl        c is from Rectangle_corners and
+m4_dnl        ix is a corner number
+m4_dnl    expands to an array of corners as for RoundCorner
+m4_define(`R_CNR',`[ $1[$2], $1[(($2)+1)%4], $1[(($2)+3)%4] ]')
 
 m4_dnl  INREFFRAME(left_cnr, right_cnr, morevars) { body; }
 m4_define(`INREFFRAME',`
@@ -400,7 +406,7 @@ module TestPiece1(){ ////toplevel
            [   0, 0]
            ];
   corners = TestPiece_holes2corners(holes);
-  rcs = [corners[0], corners[1]];
+  rcs = R_CNR(corners,0);
   difference(){
     union(){
       TileBase(corners[0], corners[2]);
@@ -644,7 +650,7 @@ module Tile02(){ ////toplevel
   c0 = tile02_tr + -sz;
   c = Rectangle_corners(c0, sz);
   posts = Rectangle_corners2posts(c);
-  rcs = [R_EDGE(c,0)];
+  rcs = R_CNR(c,0);
   difference(){
     union(){
       Rectangle_TileBase(c);
@@ -664,7 +670,7 @@ module Tile12(){ ////toplevel
   c0 = tile02_tr + [-sz[0], 0];
   c = Rectangle_corners(c0, sz);
   posts = Rectangle_corners2posts(c);
-  rcs = [R_EDGE(c,3)];
+  rcs = R_CNR(c,3);
   difference(){
     union(){
       Rectangle_TileBase(c);
@@ -744,7 +750,7 @@ module Tile10(){ ////toplevel
            cnr_posts[1] + [ 0,                             rcy ],
            cnr_posts[2],
            cnr_posts[3] ];
-  rcs = [R_EDGE(c,2)];
+  rcs = R_CNR(c,2);
   difference(){
     union(){
       Rectangle_TileBase(c);
@@ -779,7 +785,7 @@ module Tile00(){ ////toplevel
            cnr_posts[2] + [ -sz[0] + rearedge_len - cutout_l_end_x, -cty ],
            cnr_posts[3] + [ 0,                             -cty ]
            ];
-  rcs = [R_EDGE(c,1)];
+  rcs = R_CNR(c,1);
   difference(){
     union(){
       difference(){