Ran openscad-format over everything
This commit is contained in:
115
stock_parts.scad
115
stock_parts.scad
@@ -1,5 +1,5 @@
|
||||
include <MCAD/math.scad>;
|
||||
include <lib.scad>;
|
||||
include <MCAD/math.scad>
|
||||
include <lib.scad>
|
||||
|
||||
stock_color = "#aaa4";
|
||||
|
||||
@@ -18,128 +18,111 @@ module colorize(colorname) {
|
||||
}
|
||||
|
||||
module bushing() {
|
||||
bom_item(printable=false, label="Bushing");
|
||||
bom_item(printable = false, label = "Bushing");
|
||||
colorize(stock_color) render() {
|
||||
difference() {
|
||||
cylinder(d = bushing_od, h = bushing_len);
|
||||
translate([0,0,-1])
|
||||
cylinder(d = bushing_id, h = bushing_len + 2);
|
||||
translate([ 0, 0, -1 ]) cylinder(d = bushing_id, h = bushing_len + 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// located with the shaft in +z, face on the XY plane
|
||||
// located with the shaft in +z, face on the XY plane
|
||||
module nema17(depth = 23.5) {
|
||||
bom_item(printable=false, label="NEMA-17 stepper motor");
|
||||
bom_item(printable = false, label = "NEMA-17 stepper motor");
|
||||
face = 42.3;
|
||||
screw_pitch = 31 / 2;
|
||||
color(stock_color)
|
||||
render()
|
||||
difference() {
|
||||
color(stock_color) render() difference() {
|
||||
union() {
|
||||
translate([-face/2, -face/2, -depth])
|
||||
cube([face, face, depth]);
|
||||
translate([0,0,-1]) {
|
||||
cylinder(d=22, h=2+1);
|
||||
cylinder(d=5, h=22+1);
|
||||
translate([ -face / 2, -face / 2, -depth ]) cube([ face, face, depth ]);
|
||||
translate([ 0, 0, -1 ]) {
|
||||
cylinder(d = 22, h = 2 + 1);
|
||||
cylinder(d = 5, h = 22 + 1);
|
||||
}
|
||||
}
|
||||
translate([1.25, -5, 4])
|
||||
cube([10, 10, 20]);
|
||||
translate([ 1.25, -5, 4 ]) cube([ 10, 10, 20 ]);
|
||||
|
||||
// screw holes
|
||||
for (x = [-screw_pitch, screw_pitch],
|
||||
y = [-screw_pitch, screw_pitch]) {
|
||||
translate([x,y,-10])
|
||||
cylinder(d=5,h=20);
|
||||
for (x = [ -screw_pitch, screw_pitch ], y = [ -screw_pitch, screw_pitch ]) {
|
||||
translate([ x, y, -10 ]) cylinder(d = 5, h = 20);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// belts and pulleys
|
||||
belt_pitch = 2; // 2mm tooth width for GT2 = 2mm pitch
|
||||
belt_width = 6;
|
||||
belt_thickness = 1.38;
|
||||
belt_pld = 0.254; // distance between line of fixed length and tips of gear teeth
|
||||
belt_pld =
|
||||
0.254; // distance between line of fixed length and tips of gear teeth
|
||||
belt_backing = 0.63 - belt_pld;
|
||||
tooth_height = 0.75;
|
||||
|
||||
pulley_od = 13;
|
||||
pulley_clearance_rad = pulley_od / 2 + 2.5;
|
||||
|
||||
module pulley(teeth, lrim, urim, belt_width, shaft=5, toothed=true, od = 0) {
|
||||
bom_item(printable=false, label=str(
|
||||
toothed ? "pulley(" : "idler(",
|
||||
"teeth=", teeth, ", ",
|
||||
"flange1=", min(lrim, urim), "mm, ",
|
||||
"flange2=", max(lrim, urim), "mm, ",
|
||||
"channel=", belt_width, "mm, ",
|
||||
"shaft=", shaft, "mm",
|
||||
")"
|
||||
));
|
||||
module pulley(teeth, lrim, urim, belt_width, shaft = 5, toothed = true,
|
||||
od = 0) {
|
||||
bom_item(printable = false,
|
||||
label = str(toothed ? "pulley(" : "idler(", "teeth=", teeth, ", ",
|
||||
"flange1=", min(lrim, urim), "mm, ", "flange2=",
|
||||
max(lrim, urim), "mm, ", "channel=", belt_width, "mm, ",
|
||||
"shaft=", shaft, "mm", ")"));
|
||||
nominal_rad = belt_pitch * teeth / TAU;
|
||||
inner_rad = nominal_rad - belt_pld;
|
||||
outer_rad = (od > 0) ? od / 2 : nominal_rad + belt_backing;
|
||||
outer_rad = (od > 0) ? od / 2 : nominal_rad + belt_backing;
|
||||
minor_rad = inner_rad - tooth_height;
|
||||
mid_rad = inner_rad - tooth_height / 2;
|
||||
idler_rad = nominal_rad - belt_backing;
|
||||
|
||||
dtheta = 180 / teeth;
|
||||
|
||||
tooth_points = [
|
||||
for (i = [1:1:teeth])
|
||||
let (theta = i * 360 / teeth)
|
||||
each [
|
||||
[sin(theta) * minor_rad, cos(theta) * minor_rad],
|
||||
[sin(theta) * inner_rad, cos(theta) * inner_rad],
|
||||
[sin(theta + dtheta) * inner_rad, cos(theta + dtheta) * inner_rad],
|
||||
[sin(theta + dtheta) * minor_rad, cos(theta + dtheta) * minor_rad]
|
||||
]
|
||||
];
|
||||
tooth_points = [for (i = [1:1:teeth]) let(theta = i * 360 / teeth) each
|
||||
[[sin(theta) * minor_rad, cos(theta) * minor_rad],
|
||||
[sin(theta) * inner_rad, cos(theta) * inner_rad],
|
||||
[sin(theta + dtheta) * inner_rad, cos(theta + dtheta) * inner_rad],
|
||||
[sin(theta + dtheta) * minor_rad, cos(theta + dtheta) * minor_rad]]];
|
||||
|
||||
//echo([each [0:1:teeth]]);
|
||||
// echo([each [0:1:teeth]]);
|
||||
|
||||
//echo(tooth_points);
|
||||
// echo(tooth_points);
|
||||
|
||||
colorize(stock_color)
|
||||
render()
|
||||
difference() {
|
||||
colorize(stock_color) render() difference() {
|
||||
union() {
|
||||
cylinder(r=outer_rad, h=lrim);
|
||||
translate([0,0,lrim])
|
||||
if (toothed) {
|
||||
cylinder(r = outer_rad, h = lrim);
|
||||
translate([ 0, 0, lrim ]) if (toothed) {
|
||||
linear_extrude(belt_width)
|
||||
polygon(tooth_points, convexity = teeth * 2 + 4);
|
||||
} else {
|
||||
polygon(tooth_points, convexity = teeth * 2 + 4);
|
||||
}
|
||||
else {
|
||||
cylinder(r = idler_rad, h = belt_width);
|
||||
}
|
||||
|
||||
translate([0,0,lrim + belt_width])
|
||||
cylinder(r=outer_rad, h=urim);
|
||||
translate([ 0, 0, lrim + belt_width ]) cylinder(r = outer_rad, h = urim);
|
||||
}
|
||||
|
||||
translate([0,0,-1])
|
||||
cylinder(d=shaft, h=belt_width + lrim + urim + 2);
|
||||
translate([ 0, 0, -1 ])
|
||||
cylinder(d = shaft, h = belt_width + lrim + urim + 2);
|
||||
}
|
||||
}
|
||||
|
||||
idler_zmargin = [ 6.4 / 2 + 1.05, 6.4 / 2 + 1.05 ];
|
||||
|
||||
module idler(height=0, toothed=false) {
|
||||
module idler(height = 0, toothed = false) {
|
||||
// pulley(20, 1.05, 1.05, 6.4, toothed=toothed, od=18);
|
||||
translate([0,0, height-idler_zmargin[0]])
|
||||
pulley(16, 1.05, 1.05, 6.4, shaft=3, toothed=toothed, od=13);
|
||||
translate([ 0, 0, height - idler_zmargin[0] ])
|
||||
pulley(16, 1.05, 1.05, 6.4, shaft = 3, toothed = toothed, od = 13);
|
||||
}
|
||||
|
||||
active_pulley_zmargin = [ 9.5, 4.5 ];
|
||||
|
||||
module active_pulley(height=0) {
|
||||
translate([0,0,-active_pulley_zmargin[0] + height])
|
||||
pulley(16,6,1,7, od=13);
|
||||
module active_pulley(height = 0) {
|
||||
translate([ 0, 0, -active_pulley_zmargin[0] + height ])
|
||||
pulley(16, 6, 1, 7, od = 13);
|
||||
}
|
||||
|
||||
// required distance between centers of pulley and idler for an S-bend with right angles.
|
||||
// required distance between centers of pulley and idler for an S-bend with
|
||||
// right angles.
|
||||
pulley_sbend_offset = (9.5 + 9.7) / 2 + 0.63;
|
||||
|
||||
//!pulley(12, 6, 2, toothed=false);
|
||||
//! pulley(12, 6, 2, toothed=false);
|
||||
Reference in New Issue
Block a user