24 spring_clip_w = base_w - 5;
28 translate([0, 0, -beam_w*sin(rear_angle)/2])
29 rotate([rear_angle-90, 0, 0])
30 cylinder(r = beam_w/2, h = beam_h/sin(rear_angle), $fn = 32);
34 rotate([rear_angle-90, 0, 0])
35 cylinder(r = beam_w/2, h = beam_h, $fn = 32);
39 rotate([rear_angle-90, 0, 0])
40 cylinder(r = beam_w/2, h = top_beam_h, $fn = 32);
44 rotate([rear_angle-90, 0, 0])
45 translate([0, -sqrt(pow(base_d*base_y_scale/2,2) - pow(base_w*base_y_scale/2,2)), 0])
48 scale([1, base_y_scale, 1])
49 cylinder(r = base_d/2, h = base_l);
51 for (i = [-1, 1]) scale ([i, 1, 1])
52 translate([base_w/2, -infty/2, -infty/2])
55 translate([-infty/2, -infty, -infty/2]) cube(infty);
59 for (i = [-1, 1]) scale([i, 1, 1])
60 translate([wheel_base/2 - wheel_axle_cube, wheel_h - wheel_axle_cube/2, 0])
61 cube(wheel_axle_cube);
64 for (i = [-1, 1]) scale([i,1,1])
66 translate([-(base_w/2-beam_w/2), spring_dist, 0])
68 translate([wheel_base/2-beam_w/2, wheel_h, 0])
75 translate([j*(base_w/2-beam_w/2), spring_dist, 0])
80 for (i = [-1, 1]) scale([i,1,1])
82 translate([(base_w/2+beam_w), 0, 0])
84 translate([(base_w/2-beam_w/2), spring_dist, 0])
89 for (i = [-1, 1]) scale([i,1,1])
90 for (j = [-1, 1]) hull() {
91 translate([j*(base_w/2-beam_w/2), (base_l-top_beam_h)*cos(rear_angle), (base_l-top_beam_h)*sin(rear_angle)])
93 translate([wheel_base/2-beam_w/2, wheel_h, 0])
98 translate([-spring_clip_w/2, 0, 0])
99 cube([spring_clip_w, spring_clip_l, base_wall]);
102 for (i = [-1, 1]) scale([i,1,1])
104 translate([(base_w/2-beam_w/2), 0, 0])
106 translate([(base_w/2-beam_w/2), spring_clip_l - 1.5*beam_w, 0])
114 // inner cylinder hole
115 rotate([+rear_angle-90, 0, 0])
116 translate([0, -sqrt(pow(base_d*base_y_scale/2,2) - pow(base_w*base_y_scale/2,2)), -infty/2])
117 scale([1, 1*base_y_scale, 1])
118 cylinder(r = base_d/2 - base_wall, h = infty);
120 translate([-infty/2, -infty/2, -infty]) cube(infty);
122 translate([-infty/2, wheel_h, wheel_axle_cube/2])
124 cylinder(r = axle_hole/2, h = infty);