Skip to content

Instantly share code, notes, and snippets.

@jasta
Created December 6, 2022 04:17
Show Gist options
  • Save jasta/5d767395efd7df76b885b40b632011e1 to your computer and use it in GitHub Desktop.
Save jasta/5d767395efd7df76b885b40b632011e1 to your computer and use it in GitHub Desktop.
include <BOSL2/std.scad>
include <BOSL2/gears.scad>
$fn = 128;
eps = 0.01;
inches = 25.4;
outer_diameter = 56.5+1;
inner_diameter = 48.5;
num_teeth = 67;
//pitch = pitch_value(outer_diameter/num_teeth);
pitch = PI * outer_diameter / 2 / (num_teeth / 2 + 1);
thickness = 11.7;
helical_horizontal = 1.3;
helical_measured = atan(helical_horizontal / thickness);
helical = 10.5;
nut_diameter = 10+0.6;
nut_support_diameter = 14;
inner_support_diameter = 23.5;
inner_top_inner_z = 2;
inner_top_outer_z_measured = 3.7;
inner_top_outer_z = 2; // ignore measured, let's make the part stronger
inner_bottom_inner_z = 5.4;
inner_bottom_outer_z_measured = 4.7;
inner_bottom_outer_z = 0;
nut_support_top_clearance = 12.7 - thickness;
nut_thickness = 7.3;
total_part_z = thickness + nut_support_top_clearance;
total_part_z_alt = nut_thickness + inner_bottom_inner_z;
echo("total_part_z=", total_part_z);
echo("total_part_z_alt=", total_part_z_alt);
assert(total_part_z == total_part_z_alt);
gearbox_main_gear();
module gearbox_main_gear() {
difference() {
shaft_max_height = thickness + nut_support_top_clearance;
union() {
difference() {
outer_r = outer_radius(pitch=pitch, teeth=num_teeth);
pitch_r = pitch_radius(pitch=pitch, teeth=num_teeth);
echo("outer_d=", outer_r*2);
echo("pitch_d=", pitch_r*2);
spur_gear(pitch=pitch, teeth=num_teeth, thickness=thickness, helical=helical, slices=8, pressure_angle=25, anchor=BOTTOM);
up(thickness+eps) {
cylinder(h=inner_top_outer_z+eps*2, d=inner_diameter, anchor=TOP);
}
}
cylinder(h=shaft_max_height, d=nut_support_diameter, anchor=BOTTOM);
}
down(eps) {
cylinder(h=shaft_max_height+eps*2, d=nut_diameter, $fn=6, anchor=BOTTOM);
cylinder(h=inner_bottom_outer_z+eps*2, d=inner_diameter, anchor=BOTTOM);
up(inner_bottom_outer_z) {
cylinder(h=inner_bottom_inner_z - inner_bottom_outer_z, d1=inner_diameter, d2=inner_support_diameter);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment