$fn=180; boom_length = 600; boom_width = 19.5; boom_height = 20; boom_thickness = 1.6; 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); } } } module clamp() { color("orange") { clamp_height = boom_height + nose_width; clamp_width = boom_width + nose_width; translate([0,boom_height/2 - boom_thickness,0]) difference() { cube([clamp_width,clamp_height,nose_width], center=true); translate([0, -nose_width/2, 0]) cube([boom_width,boom_height + nose_width/2,nose_width + 0.01], center=true); } for(x = [-boom_width/2, boom_width/2]) translate([x, -nose_width/2 - boom_thickness, 0]) difference() { cylinder(r=nose_width/2, h=nose_width, center=true); translate([0, -nose_width/4, 0]) cube([nose_width, nose_width/2 + 0.01, nose_width + 0.01], 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(); //} clamp(); //boom();