|
|
@@ -3,6 +3,7 @@ use <arm.scad> |
|
|
use <marker.scad> |
|
|
use <marker.scad> |
|
|
use <electronics.scad> |
|
|
use <electronics.scad> |
|
|
use <sg90.scad> |
|
|
use <sg90.scad> |
|
|
|
|
|
use <switch.scad> |
|
|
//module arm(holes, width, thinkness, bore){ |
|
|
//module arm(holes, width, thinkness, bore){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -16,13 +17,17 @@ arm2_sq = pow(arm2,2); |
|
|
length_sq = pow(length,2); |
|
|
length_sq = pow(length,2); |
|
|
b = acos((arm1_sq + length_sq - arm2_sq)/(2 * arm1 * length)); |
|
|
b = acos((arm1_sq + length_sq - arm2_sq)/(2 * arm1 * length)); |
|
|
c = acos((arm1_sq - length_sq + arm2_sq)/(2 * arm1 * arm2)); |
|
|
c = acos((arm1_sq - length_sq + arm2_sq)/(2 * arm1 * arm2)); |
|
|
angle1 = b + atan2(y,x) - 90; |
|
|
|
|
|
angle2 = angle1 - 90 + c; |
|
|
|
|
|
|
|
|
angle1_2_offset = 0; //[-90:0:90] |
|
|
|
|
|
angle2_offset = 0; //[-90:0:180] |
|
|
|
|
|
angle1 = angle1_2_offset + b + atan2(y,x) - 90; |
|
|
|
|
|
angle2 = angle2_offset + angle1 - 90 + c; |
|
|
stepper_spaceing = 47; |
|
|
stepper_spaceing = 47; |
|
|
stepper_offset = 55; |
|
|
stepper_offset = 55; |
|
|
|
|
|
washer_thinkness = 0.6; |
|
|
arm_thickness = 3; |
|
|
arm_thickness = 3; |
|
|
arm_width = 10; |
|
|
arm_width = 10; |
|
|
arm_offset = 15; |
|
|
arm_offset = 15; |
|
|
|
|
|
arm_spacing = arm_thickness+washer_thinkness; |
|
|
|
|
|
|
|
|
bus_diameter = 3 + arm_width; |
|
|
bus_diameter = 3 + arm_width; |
|
|
shaft_bore = 5.3; |
|
|
shaft_bore = 5.3; |
|
|
@@ -46,6 +51,21 @@ module arm3 (){ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
module arm3b(){ |
|
|
|
|
|
difference(){ |
|
|
|
|
|
union(){ |
|
|
|
|
|
arm3(); |
|
|
|
|
|
translate([6,0,arm_thickness])hull(){ |
|
|
|
|
|
cylinder(h=arm_thickness*2,d=arm_width/2,center=true); |
|
|
|
|
|
translate([12,0,0]) cylinder(h=arm_thickness*2,d=arm_width/2,center=true); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
cylinder(d=shaft_bore,h=16,center=true); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module arm0 (){ |
|
|
module arm0 (){ |
|
|
difference(){ |
|
|
difference(){ |
|
|
union(){ |
|
|
union(){ |
|
|
@@ -67,7 +87,8 @@ module arm5b(){ |
|
|
arm5a(); |
|
|
arm5a(); |
|
|
difference(){ |
|
|
difference(){ |
|
|
translate([-arm_thickness/2-2.5,35,-14]) rotate([0,0,180]) {sg90_bracket(); |
|
|
translate([-arm_thickness/2-2.5,35,-14]) rotate([0,0,180]) {sg90_bracket(); |
|
|
sg90(-90); |
|
|
|
|
|
|
|
|
sg90(); |
|
|
|
|
|
sg90_arm(21,135); |
|
|
} |
|
|
} |
|
|
translate([0,25,0]) rotate([0,90,0]) cylinder(d=7,h=10,center=true); |
|
|
translate([0,25,0]) rotate([0,90,0]) cylinder(d=7,h=10,center=true); |
|
|
} |
|
|
} |
|
|
@@ -152,13 +173,13 @@ translate([stepper_offset,0,0]) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//arm2 |
|
|
//arm2 |
|
|
translate([3,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); |
|
|
|
|
|
translate([-3,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); |
|
|
|
|
|
|
|
|
translate([arm_spacing,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); |
|
|
|
|
|
translate([-arm_spacing,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); |
|
|
|
|
|
|
|
|
//arm3 |
|
|
//arm3 |
|
|
rotate([angle2,0,0]){ |
|
|
rotate([angle2,0,0]){ |
|
|
translate([3,0,0]) rotate([-90,0,-90]) arm3(); //([0,25],arm_width,arm_thickness,5); |
|
|
|
|
|
translate([-3,0,0]) rotate([90,0,-90]) arm3(); //arm([0,25],arm_width,arm_thickness,5); |
|
|
|
|
|
|
|
|
translate([arm_spacing,0,0]) rotate([-90,0,-90]) arm3(); //([0,25],arm_width,arm_thickness,5); |
|
|
|
|
|
translate([-arm_spacing,0,0]) rotate([90,0,-90]) arm3b(); //arm([0,25],arm_width,arm_thickness,5); |
|
|
translate([0,-25,0]) rotate([angle1-angle2,0,0]) { |
|
|
translate([0,-25,0]) rotate([angle1-angle2,0,0]) { |
|
|
// arm4 |
|
|
// arm4 |
|
|
rotate([0,-90,0]) arm([0,arm1],arm_width,arm_thickness,joint_bore); |
|
|
rotate([0,-90,0]) arm([0,arm1],arm_width,arm_thickness,joint_bore); |
|
|
@@ -186,9 +207,24 @@ translate([40,0,-60]) rotate([-0,-90,0]){ |
|
|
|
|
|
|
|
|
//carriage |
|
|
//carriage |
|
|
translate([stepper_offset,0,0]){ |
|
|
translate([stepper_offset,0,0]){ |
|
|
|
|
|
difference(){ |
|
|
|
|
|
union(){ |
|
|
rotate([0,90,0]) { |
|
|
rotate([0,90,0]) { |
|
|
stepper_103H5205_bracket(); |
|
|
stepper_103H5205_bracket(); |
|
|
translate([0,stepper_spaceing,0]) stepper_103H5205_bracket(); |
|
|
translate([0,stepper_spaceing,0]) stepper_103H5205_bracket(); |
|
|
|
|
|
} |
|
|
|
|
|
translate([9,11,-16]) rotate([90,90,0]) translate([4.5,-4.38,0]) rotate([0,0,180]) cube([10.5,3,5]); |
|
|
|
|
|
} |
|
|
|
|
|
translate([9,11,-16]) rotate([90,90,0]){ |
|
|
|
|
|
translate([-4.5,0,2.85]){ |
|
|
|
|
|
rotate([90,0,0]) cylinder(d=1.5,h=10); |
|
|
|
|
|
translate([7.65,0,-1.15]) rotate([90,0,0]) cylinder(d=1.4,h=10); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
translate([-53,-25.5,-25.5])cube([40,98,4]); |
|
|
translate([-53,-25.5,-25.5])cube([40,98,4]); |
|
|
|
|
|
translate([17.5,78,-14]) rotate([90,90,0]){ |
|
|
|
|
|
switch_mount(); |
|
|
|
|
|
// switch(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |