}
}
+module PostHole(){
+}
+
module Posts(posts) {
for (p= posts) {
translate(concat(p, [0]))
Post();
}
}
+module PostHoles(posts) {
+ for (p= posts) {
+ translate(concat(p, [0]))
+ PostHole();
+ }
+}
module TileBase(botleft, topright){
size = topright - botleft;
}
InterlockEdge(corners[1], corners[2], 1, nlobes=1);
RoundCornerCut(rcs);
+ PostHoles(holes);
}
RoundCornerAdd(rcs);
}
[ 50, 0]
];
corners = TestPiece_holes2corners(holes);
- TileBase(corners[0], corners[2]);
- Posts(holes);
- RoundEdge(corners[0], corners[1]);
- InterlockEdge(corners[3], corners[0], 0, nlobes=1);
+ difference(){
+ union(){
+ TileBase(corners[0], corners[2]);
+ Posts(holes);
+ RoundEdge(corners[0], corners[1]);
+ InterlockEdge(corners[3], corners[0], 0, nlobes=1);
+ }
+ PostHoles(holes);
+ }
}
module TestDemo(){ ////toplevel
}
InterlockEdge(R_EDGE(c,1), 1);
RoundCornerCut(rcs);
+ PostHoles(posts);
}
RoundCornerAdd(rcs);
}
InterlockEdge(R_EDGE(c,0), 1);
InterlockEdge(R_EDGE(c,1), 1);
RoundCornerCut(rcs);
+ PostHoles(posts);
}
RoundCornerAdd(rcs);
}
}
InterlockEdge(c[0], tile_01_11_cnr, 1);
InterlockEdge(tile_11_10_cnr, c[2], 1);
+ PostHoles(posts);
Machine();
}
}
InterlockEdge(tile_01_11_cnr, c[3]);
InterlockEdge(R_EDGE(c,3));
}
+ PostHoles(posts);
InterlockEdge(c[1], tile_01_00_cnr, 1);
Machine();
}
RoundEdge(R_EDGE(c,2));
InterlockEdge(c[3], tile_11_10_cnr);
}
+ PostHoles(posts);
RoundCornerCut(rcs);
Machine();
}
RoundEdge(c1bis, c2bis);
}
Machine();
+ PostHoles(posts);
RoundCornerCut(rc2);
}
RoundCornerAdd(rcs);