delta = 0.1; xo = 10; height = 10; bar_thickness = 2; nail = 0; d_inner_nail = 1.8; d_outer_nail = 6; d_inner_hole = 2.2; d_outer_hole = 6; d_inner = nail ? d_inner_nail : d_inner_hole; d_outer = nail ? d_outer_nail : d_outer_hole; d_centre = 7; d_joint = 4.55; w_joint = 0.7; difference() { union() { translate([-xo, -d_outer/2, 0]) cube([xo*2, d_outer, bar_thickness]); cylinder(h=bar_thickness, d=d_centre, $fn=36); translate([-xo, 0, 0]) nail_outer(); translate([xo, 0, 0]) nail_outer(); } translate([-xo, 0, 0]) nail_hole(d_inner); translate([xo, 0, 0]) nail_hole(d_inner); nail_hole(d_joint); } joint_bar(); module nail_outer() { cylinder(h=height, d=d_outer, $fn=36); } module nail_hole(diameter) { translate([0, 0, -delta]) cylinder(h=height+2*delta, d=diameter, $fn=36); } module joint_bar() { translate([-d_joint, -w_joint/2, 0]) cube([d_joint*2, w_joint, bar_thickness]); }