8 gear_l = fuse_l - 5; // 26
14 base_beam_w = spring_l + 2;
19 rear_spring_rear_l = 6;
20 rear_beam_w = rear_spring_l + 4;
22 rear_spring_front_bot_w = 15;
23 rear_spring_bot_w = 10;
26 side_spring_bot_w = 3.5;
31 hook_h = base_h + base_reinf_h/2;
33 side_hook_angle_cut = 10;
39 translate([0, -fuse_w/2, 0]) cube([fuse_l, fuse_w, base_h]);
43 translate([0, -base_w/2, 0])
44 cube([base_beam_w, base_w, base_h]);
45 translate([base_beam_w/2-base_reinf_w/2, -base_w/2, base_h-eps])
46 cube([base_reinf_w, base_w, base_reinf_h + eps]);
51 translate([base_beam_w/2, -rear_beam_w/2, 0])
52 cube([base_l - base_beam_w/2, rear_beam_w, base_h]);
53 translate([base_beam_w/2, -base_reinf_w/2, base_h-eps])
54 cube([base_l - base_beam_w/2, base_reinf_w, base_reinf_h + eps]);
57 // rear hook - front part
59 translate([gear_l-rear_spring_front_bot_w/2, -rear_spring_l/2, base_h])
60 cube([rear_spring_front_bot_w/2-rear_slot_w/2, rear_spring_l, eps]);
61 translate([gear_l-rear_spring_w/2, -rear_spring_l/2, hook_h+hook_in+hook_wall-eps])
62 cube([rear_spring_w/2-rear_slot_w, rear_spring_l, eps]);
64 // rear hook - rear part
66 translate([gear_l, -rear_spring_rear_l/2, base_h])
67 cube([rear_spring_bot_w/2, rear_spring_rear_l, eps]);
68 translate([gear_l, -rear_spring_rear_l/2, hook_h+hook_in+hook_wall-eps])
69 cube([rear_spring_w/2, rear_spring_rear_l, eps]);
73 for (y = [-1, 1]) scale([1, y, 1]) intersection() {
74 translate([0, gear_w/2, eps]) rotate([0, 0, -side_hook_angle])
75 translate([-10, 0, 0]) hull() {
76 translate([0, -side_spring_bot_w, 0])
77 cube([20, 2*side_spring_bot_w, base_h-eps]);
78 translate([0, -side_spring_w, 0])
79 cube([20, 2*side_spring_w, hook_h + hook_in + hook_wall-eps]);
82 translate([0, -base_w/2, base_h/2])
83 cube([base_beam_w, base_w, infty]);
84 // cut the front sides
86 translate([0, gear_w/2 + 1.25, eps])
87 rotate([0, 0, -side_hook_angle_cut])
98 translate([gear_l, 0, hook_h+hook_in/2])
100 translate([0, 0, -rear_beam_w/2-eps])
101 cylinder(h = rear_beam_w+2*eps, r = hook_in/2, $fn = 6);
102 // rear slot above the hole
103 // translate([gear_l-rear_slot_w/2, -rear_beam_w/2+eps, hook_h+hook_in/2])
104 // cube([rear_slot_w, rear_beam_w+2*eps, infty]);
106 for (y = [-1, 1]) scale([1, y, 1]) {
107 translate([0, gear_w/2, hook_h+hook_in/2]) {
108 rotate([0, 90, -side_hook_angle])
109 translate([0, 0, -10])
110 cylinder(r1 = hook_in, r2 = hook_in/2, h = 20, $fn = 6);
112 rotate([0, 0, -side_hook_angle])
115 translate([-10, -rear_slot_w, 0])
116 cube([eps, 2*rear_slot_w, 20]);
117 translate([10, -rear_slot_w/2, 0])
118 cube([eps, rear_slot_w, 20]);