12 base_beam_w = spring_l + 2;
17 rear_spring_rear_l = 6;
18 rear_beam_w = rear_spring_l + 4;
20 rear_spring_bot_w = 9;
23 side_spring_bot_w = 3.5;
28 hook_h = base_h + base_reinf_h/2;
30 side_hook_angle_cut = 17;
35 translate([0, -base_w/2, 0])
36 cube([base_beam_w, base_w, base_h]);
37 translate([base_beam_w/2-base_reinf_w/2, -base_w/2, base_h-eps])
38 cube([base_reinf_w, base_w, base_reinf_h + eps]);
43 translate([base_beam_w/2, -rear_beam_w/2, 0])
44 cube([base_l - base_beam_w/2, rear_beam_w, base_h]);
45 translate([base_beam_w/2, -base_reinf_w/2, base_h-eps])
46 cube([base_l - base_beam_w/2, base_reinf_w, base_reinf_h + eps]);
49 // rear hook - front part
51 translate([gear_l-rear_spring_bot_w/2, -rear_spring_l/2, base_h])
52 cube([rear_spring_bot_w/2-rear_slot_w/2, rear_spring_l, eps]);
53 translate([gear_l-rear_spring_w/2, -rear_spring_l/2, hook_h+hook_in+hook_wall-eps])
54 cube([rear_spring_w/2-rear_slot_w/2, rear_spring_l, eps]);
56 // rear hook - rear part
58 translate([gear_l + rear_slot_w/2, -rear_spring_rear_l/2, base_h])
59 cube([rear_spring_bot_w/2-rear_slot_w/2, rear_spring_rear_l, eps]);
60 translate([gear_l + rear_slot_w/2, -rear_spring_rear_l/2, hook_h+hook_in+hook_wall-eps])
61 cube([rear_spring_w/2-rear_slot_w/2, rear_spring_rear_l, eps]);
65 for (y = [-1, 1]) scale([1, y, 1]) intersection() {
66 translate([0, gear_w/2, eps]) rotate([0, 0, -side_hook_angle])
67 translate([-10, 0, 0]) hull() {
68 cube([20, side_spring_bot_w, base_h-eps]);
69 cube([20, side_spring_w, hook_h + hook_in + hook_wall-eps]);
72 translate([0, -base_w/2, base_h/2])
73 cube([base_beam_w, base_w, infty]);
74 // cut the front sides
75 translate([0, gear_w/2 + 1.25, eps])
76 rotate([0, 0, -side_hook_angle_cut])
86 translate([gear_l, 0, hook_h+hook_in/2])
88 translate([0, 0, -rear_beam_w/2-eps])
89 cylinder(h = rear_beam_w+2*eps, r = hook_in/2, $fn = 6);
90 // rear slot above the hole
91 // translate([gear_l-rear_slot_w/2, -rear_beam_w/2+eps, hook_h+hook_in/2])
92 // cube([rear_slot_w, rear_beam_w+2*eps, infty]);
94 for (y = [-1, 1]) scale([1, y, 1]) {
95 translate([0, gear_w/2, hook_h+hook_in/2]) {
96 rotate([0, 90, -side_hook_angle])
97 translate([0, 0, -10])
98 cylinder(r = hook_in/2, h = 20, $fn = 6);