topwall_width = 1.5;
+mount_dist = 20;
+mount_width = 10;
+mount_height = 5;
+mount_hole_dia = 4.5;
+mount_head_dia = 7.5;
+mount_hole_th = 2.5;
+
// calculated
main_width = spike_top_width + topwall_width*2;
}
}
+module MultiplyForMount(){
+ for (r=[0:90:270])
+ rotate([0,0,r])
+ children(0);
+}
+
+module Mount(){
+ translate([ -1,
+ -mount_width/2,
+ 0 ])
+ cube([ mount_dist + mount_width/2 + 1,
+ mount_width,
+ mount_height ]);
+}
+
+module MountHole(){
+ translate([ mount_dist, 0,0 ]) {
+ translate([0,0, -1])
+ cylinder(r= mount_hole_dia/2, h= 20, $fn=20);
+ translate([0,0, mount_hole_th])
+ cylinder(r = mount_head_dia/2, h=20, $fn=20);
+ }
+}
+
module Main(){
difference(){
union(){
MultiplySolidifyPlan(spike_web_thick + topwall_width*2) PositivePlan();
+ MultiplyForMount() Mount();
}
MultiplySolidifyPlan(spike_web_thick) NegativePlan();
+ MultiplyForMount() MountHole();
}
}