sphere($fn=8, r=wall/2);
}
+// AtScrewPositions([ screw, screw, ...]) ScrewItem();
+//
+// Each screw is [x,y] or [x,y, depth]
+// where x and y are the position in fixing stride
+//
+// ScrewItem should use $depth
+module AtScrewPositions(screws) {
+ for (screw = hull_group) {
+ $screw_depth = is_undef(screw[2]) ? screw_depth : screw[2];
+ translate(fixing_pitch * [screw[0], screw[1], 0])
+ children(0);
+ }
+}
+
// WellSurround(...) {
// SomethingPositive();
// }
half_height,
// gaps for picking up object, [ [ x_min, x_max ], ... ]
gaps,
- // screw locations in stride units, [ [ [screw_xu, screw_yu], ...], ... ]
+ // screw locations in stride units, [ [ screw, ...], ... ]
// in hull groups (screw receptacles are hulled within each group)
+ // screw as for AtScrewPositions
screws,
// offset=[x,y] moves the whole thing by that amount, but not the screws
offset,
children(0);
}
-
+ for (hull_group = screws) {
+ hull() {
+ AtScrewPositions(screws) {
+ }
+ }
+ }
}
// minkowski(){