}
}
-module FullPlate() { ////toplevel
+module AtFixings() {
n_x = ceil(box_x / fixing_pitch / 2) + 1;
n_y = ceil(box_y / fixing_pitch / 2) + 1;
+ for (xi=[ for (xi = [-n_x : n_x])
+ if (xi != 0)
+ xi ])
+ for (yi=[-n_y : n_y + 1])
+ translate(fixing_pitch * [xi, yi - 0.5, 0])
+ children(0);
+}
+
+module FullPlate() { ////toplevel
render() difference(){
render() intersection(){
BoxCavityModel();
}
intersection(){
- for (xi=[ for (xi = [-n_x : n_x ])
- if (xi != 0)
- xi ])
- for (yi=[-n_y : n_y + 1])
- translate(fixing_pitch * [xi, yi - 0.5, 0]) {
- linextr(-20, -below_plane_z + fixing_head_th)
- circle(r = fixing_head_d/2);
- linextr(-20, 20)
+ union(){
+ AtFixings() {
+ linextr(-20, -below_plane_z + fixing_head_th)
+ circle(r = fixing_head_d/2);
+ linextr(-20, 20)
circle(r = fixing_nom_d/2);
- }
+ }
+ }
- linextr(-100, 100)
- offset(r = -plate_unholed_edge_w)
- BoxCavityModelMainPlan();
+// linextr(-100, 100)
+// offset(r = -plate_unholed_edge_w)
+// BoxCavityModelMainPlan();
}
}
}