$fn=180; boom_length = 600; boom_width = 19.5; boom_height = 20; boom_thickness = 1.5; clamp_length = 15; clamp_width = 60; clamp_height = 10; clamp_connector_dia = 6; clamp_wire_dia = 3; clamp_screw_dia = 3.2; clamp_nut_dia = 6.5; nose_height = boom_height/2; nose_width = boom_width/4; module boom() { color("lightgray") { translate([0, -boom_thickness/2, boom_length/2]) cube([boom_width, boom_thickness, boom_length], center=true); translate([boom_width/2 - boom_thickness/2, boom_height/2 - boom_thickness, boom_length/2]) cube([boom_thickness, boom_height, boom_length], center=true); translate([-boom_width/2 + boom_thickness/2, boom_height/2 - boom_thickness, boom_length/2]) cube([boom_thickness, boom_height, boom_length], center=true); } } module element_clamp() { color("orange") { difference() { union() { for(x = [nose_width/2 - boom_width/2 + boom_thickness, -nose_width/2 + boom_width/2 - boom_thickness]) translate([x, nose_height/2+boom_height/2 - boom_thickness,0]) cube([nose_width, nose_height,clamp_length], center=true); translate([0, nose_width/2 + boom_height - boom_thickness, 0]) cube([clamp_width, nose_width, clamp_length], center=true); for(x = [-nose_width/2 + clamp_width/2, nose_width/2 - clamp_width/2]) translate([x, clamp_height/2 + boom_height - boom_thickness + nose_width, 0]) cube([nose_width, clamp_height,clamp_length], center=true); for(x = [nose_width/2 - boom_width/2 + boom_thickness, -nose_width/2 + boom_width/2 - boom_thickness]) translate([x, clamp_height/2 + boom_height - boom_thickness + nose_width, 0]) cube([nose_width, clamp_height,clamp_length], center=true); } translate([0, boom_height + nose_width/2 + clamp_height/2, 0]) rotate([0,90,0]) { cylinder(d=clamp_connector_dia, h=boom_width, center=true); cylinder(d=clamp_wire_dia, h=clamp_width + 0.1, center=true); } translate([0, boom_height - nose_height/2 - boom_thickness, 0]) rotate([0,90,0]) { cylinder(d=clamp_nut_dia, h=boom_width - nose_width - 2*boom_thickness, $fn=6, center=true); cylinder(d=clamp_screw_dia, h=clamp_width, center=true); } } } } module element_wire(wire_length) { color("lightblue") { translate([0, boom_height + nose_width/2 + clamp_height/2, 0]) rotate([0,90,0]) { cylinder(d=clamp_connector_dia - 0.1, h=boom_width, center=true); cylinder(d=clamp_wire_dia - 0.1, h=wire_length, center=true); } } } /* translate([0,0,100 - clamp_length/2]) { element_wire(1022); element_clamp(); } translate([0,0,230 + 100 - clamp_length/2]) { element_wire(320); element_clamp(); } translate([0,0,370 + 100 - clamp_length/2]) { element_wire(939); element_clamp(); } translate([0,0,399 + 100 - clamp_length/2]) { element_wire(323); element_clamp(); } translate([0,0,500 + 100 - clamp_length/2]) { element_wire(297); element_clamp(); } boom(); */ element_clamp();