- translate([-arm_innerwidth/2, 1, 0])
- mirror([0,-1,0])
- cube([arm_innerwidth, arm_depth+1, arm_innerheight]);
- rotate([90,0,180])
- linear_extrude(height=armpart_hex_thick)
- for (mir=[0,1])
- mirror([mir,0,0])
- difference(){
- polygon([[-1, 0],
- [armpart_x_unit, 0],
- [armpart_x_unit*2, armpart_hex_rad],
- [armpart_x_unit, armpart_hex_rad*2],
- [-1, armpart_hex_rad*2]]);
- translate([0,armpart_hex_rad])
- circle(hingepin_dia/2, $fn=20);
- }
+ difference(){
+ translate([-arm_innerwidth/2, 1, 0])
+ mirror([0,-1,0])
+ cube([arm_innerwidth, arm_depth+1, arm_innerheight]);
+ translate([0, -arm_pin_depth, -50])
+ cylinder(r=arm_pin_dia/2, h=100, $fn=20);
+ }
+ difference(){
+ translate([-armpart_main_width/2, 0, 0])
+ cube([armpart_main_width, armpart_main_thick, armpart_main_height]);
+ translate([0,50,armpart_hinge_height])
+ rotate([90,0,0])
+ cylinder(r=hingepin_dia/2, h=100, $fn=20);
+ }
+}
+
+module HeadPart(){ ////toplevel
+ difference(){
+ union(){
+ translate([-headpart_main_len/2, 0,0])
+ rotate([0,90,0])
+ cylinder(r=headpart_main_dia/2, h=headpart_main_len, $fn=40);
+ rotate([90,0,0])
+ cylinder(h = headpart_stub_len,
+ r = headpart_stub_width/2,
+ $fn = 6);
+ translate([-headpart_stub_support_x,
+ -headpart_stub_len,
+ -headpart_main_dia/2])
+ cube([headpart_stub_support_x*2,
+ headpart_stub_len,
+ headpart_main_dia/2]);
+ }
+ translate([-100,-100,-100])
+ cube([200,200, 100 - headpart_flatten_z]);
+ rotate([90,0,0])
+ translate([0,0, -100])
+ cylinder(r=hingepin_dia/2, h = 200, $fn=20);
+ translate([0,hingenut_depth_y,0])
+ rotate([90,0,180])
+ cylinder(r=hingenut_width/2/cos(30), h=20, $fn=6);
+ }