+side_spring_bot_w = 3.5;
+side_spring_w = 1.5;
+
+hook_wall = 1;
+hook_in = 1.7;
+hook_h = base_h + base_reinf_h/2;
+side_hook_angle = 4;
+side_hook_angle_cut = 10;
+
+base_h = 0.6;
+
+module body() {
+ // base plate
+ translate([0, -fuse_w/2, 0]) cube([fuse_l, fuse_w, base_h]);
+
+ // wide beam
+ hull() {
+ translate([0, -base_w/2, 0])
+ cube([base_beam_w, base_w, base_h]);
+ translate([base_beam_w/2-base_reinf_w/2, -base_w/2, base_h-eps])
+ cube([base_reinf_w, base_w, base_reinf_h + eps]);
+ }
+
+ // long center beam
+ hull() {
+ translate([base_beam_w/2, -rear_beam_w/2, 0])
+ cube([base_l - base_beam_w/2, rear_beam_w, base_h]);
+ translate([base_beam_w/2, -base_reinf_w/2, base_h-eps])
+ cube([base_l - base_beam_w/2, base_reinf_w, base_reinf_h + eps]);
+ }
+
+ // rear hook - front part
+ hull() {
+ translate([gear_l-rear_spring_front_bot_w/2, -rear_spring_l/2, base_h])
+ cube([rear_spring_front_bot_w/2-rear_slot_w/2, rear_spring_l, eps]);
+ translate([gear_l-rear_spring_w/2, -rear_spring_l/2, hook_h+hook_in+hook_wall-eps])
+ cube([rear_spring_w/2-rear_slot_w, rear_spring_l, eps]);
+ }
+ // rear hook - rear part
+ hull() {
+ translate([gear_l, -rear_spring_rear_l/2, base_h])
+ cube([rear_spring_bot_w/2, rear_spring_rear_l, eps]);
+ translate([gear_l, -rear_spring_rear_l/2, hook_h+hook_in+hook_wall-eps])
+ cube([rear_spring_w/2, rear_spring_rear_l, eps]);
+ }
+
+ // side hooks
+ for (y = [-1, 1]) scale([1, y, 1]) intersection() {
+ translate([0, gear_w/2, eps]) rotate([0, 0, -side_hook_angle])
+ translate([-10, 0, 0]) hull() {
+ translate([0, -side_spring_bot_w, 0])
+ cube([20, 2*side_spring_bot_w, base_h-eps]);
+ translate([0, -side_spring_w, 0])
+ cube([20, 2*side_spring_w, hook_h + hook_in + hook_wall-eps]);