5 spike_web_thick = 2.52 + 0.5;
7 spike_top_width = 21.04;
9 spike_botpos_height = 9.5;
10 spike_botpos_width = 11.68;
23 main_width = spike_top_width + topwall_width*2;
25 module NegativePlan(){
27 (spike_top_width - spike_botpos_width) /
28 (main_height - spike_botpos_height);
30 x0 = (spike_botpos_width - x4z * spike_botpos_height)/2;
31 x1 = spike_top_width/2;
44 module PositivePlan(){
46 translate([ -w/2, 0 ])
47 square([ w, main_height ]);
50 module MultiplySolidifyPlan(th){
54 translate([0,0,-th/2])
55 linear_extrude(height=th)
60 module MultiplyForMount(){
70 cube([ mount_dist + mount_width/2 + 1,
76 translate([ mount_dist, 0,0 ]) {
78 cylinder(r= mount_hole_dia/2, h= 20, $fn=20);
79 translate([0,0, mount_hole_th])
80 cylinder(r = mount_head_dia/2, h=20, $fn=20);
87 MultiplySolidifyPlan(spike_web_thick + topwall_width*2) PositivePlan();
88 MultiplyForMount() Mount();
90 MultiplySolidifyPlan(spike_web_thick) NegativePlan();
91 MultiplyForMount() MountHole();
96 linear_extrude(height=2.0){
102 circle(r = spike_botpos_width/2 + 5);
103 circle(r = spike_botpos_width/2);
104 translate([-50, 0]) square([100,50]);
107 linear_extrude(height=4.0){
109 translate([ -main_width/2, 0 ]) square([ main_width, 2 ]);
115 module MainFitTest(){
117 translate([0,0, -main_height + 0.5])
119 translate([-50,-50,0])