4 arm_innerwidth = 9.60 - 0.50;
5 arm_innerheight = 8.90 - 0.50;
6 arm_pin_depth = 18.50 + 1.0;
7 arm_pin_dia = 1.5 + 0.7;
10 armpart_main_thick = 8;
12 hingepin_dia = 3 + 1.0;
13 hingenut_width = 6 + 1.0;
17 headpart_main_dia = 15 + 0.3;
18 headpart_main_len = 16 + 1.1;
19 headpart_stub_protrude = 2;
20 headpart_stub_width = 11.7 - 0.6;
22 headpart_flatten_angle = 45;
26 armpart_hinge_height = arm_innerheight + hingenut_width/2 + hingenut_clear;
27 armpart_main_height = armpart_hinge_height + headpart_stub_width / 2;
28 armpart_main_width = headpart_stub_width;
29 armpart_x_unit = armpart_hex_rad * tan(30);
30 headpart_flatten_z = headpart_main_dia/2 * cos(headpart_flatten_angle);
31 headpart_stub_support_x = headpart_stub_width * cos(59) / 2;
32 headpart_stub_len = headpart_stub_protrude + headpart_main_dia/2;
34 sqrt(headpart_main_dia*headpart_main_dia/4 - hingenut_width*hingenut_width/4)
37 module ArmPart(){ ////toplevel
39 translate([-arm_innerwidth/2, 1, 0])
41 cube([arm_innerwidth, arm_depth+1, arm_innerheight]);
42 translate([0, -arm_pin_depth, -50])
43 cylinder(r=arm_pin_dia/2, h=100, $fn=20);
46 translate([-armpart_main_width/2, 0, 0])
47 cube([armpart_main_width, armpart_main_thick, armpart_main_height]);
48 translate([0,50,armpart_hinge_height])
50 cylinder(r=hingepin_dia/2, h=100, $fn=20);
54 module HeadPart(){ ////toplevel
57 translate([-headpart_main_len/2, 0,0])
59 cylinder(r=headpart_main_dia/2, h=headpart_main_len, $fn=40);
61 cylinder(h = headpart_stub_len,
62 r = headpart_stub_width/2,
64 translate([-headpart_stub_support_x,
66 -headpart_main_dia/2])
67 cube([headpart_stub_support_x*2,
69 headpart_main_dia/2]);
71 translate([-100,-100,-100])
72 cube([200,200, 100 - headpart_flatten_z]);
74 translate([0,0, -100])
75 cylinder(r=hingepin_dia/2, h = 200, $fn=20);
76 translate([0,hingenut_depth_y,0])
78 cylinder(r=hingenut_width/2/cos(30), h=20, $fn=6);