Increased drive gear size for possibly smoother motion.

This commit is contained in:
Revar Desmera
2017-05-04 20:48:07 -07:00
parent d72b94520a
commit b3b5248a9a
14 changed files with 15293 additions and 15424 deletions

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1641,20 +1641,20 @@ solid Model
outer loop
vertex -19.975 -65 5
vertex -10 -65 5
vertex -19.975 -45 5
vertex -14.324 -45 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -10 -65 5
vertex -2.966 -64.5 5
vertex -8 -45 5
vertex -14.324 -45 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -10 -65 5
vertex -8 -45 5
vertex -19.975 -65 5
vertex -14.324 -45 5
vertex -19.975 -45 5
endloop
endfacet
@@ -1668,15 +1668,15 @@ solid Model
facet normal 0 0 1
outer loop
vertex -2.966 -64.5 5
vertex -8 45 5
vertex -8 -45 5
vertex -14.324 45 5
vertex -14.324 -45 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -2.966 -64.5 5
vertex -2.966 64.5 5
vertex -8 45 5
vertex -14.324 45 5
endloop
endfacet
facet normal 0 0 1
@@ -1689,20 +1689,20 @@ solid Model
facet normal 0 0 1
outer loop
vertex -19.975 45 5
vertex -8 45 5
vertex -10 65 5
vertex -14.324 45 5
vertex -19.975 65 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -8 45 5
vertex -14.324 45 5
vertex -2.966 64.5 5
vertex -10 65 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -19.975 45 5
vertex -14.324 45 5
vertex -10 65 5
vertex -19.975 65 5
endloop
@@ -1724,22 +1724,22 @@ solid Model
facet normal 0 -1 0
outer loop
vertex -19.975 -45 5
vertex -8 -45 5
vertex -8 -45 16.95
vertex -14.324 -45 5
vertex -14.324 -45 16.95
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -8 -45 5
vertex -8 45 5
vertex -8 -45 16.95
vertex -14.324 -45 5
vertex -14.324 45 5
vertex -14.324 -45 16.95
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -19.975 45 5
vertex -20 45 16.95
vertex -8 45 5
vertex -14.324 45 5
endloop
endfacet
facet normal 0 1 0
@@ -1794,22 +1794,22 @@ solid Model
facet normal 0 -1 0
outer loop
vertex -19.975 -45 5
vertex -8 -45 16.95
vertex -14.324 -45 16.95
vertex -20 -45 16.95
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -8 45 5
vertex -8 45 16.95
vertex -8 -45 16.95
vertex -14.324 45 5
vertex -14.324 45 16.95
vertex -14.324 -45 16.95
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -8 45 5
vertex -14.324 45 5
vertex -20 45 16.95
vertex -8 45 16.95
vertex -14.324 45 16.95
endloop
endfacet
facet normal 0 1 0
@@ -4027,14 +4027,14 @@ solid Model
facet normal 0 0 1
outer loop
vertex -20 -45 16.95
vertex -8 -45 16.95
vertex -14.324 -45 16.95
vertex -20 45 16.95
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -8 -45 16.95
vertex -8 45 16.95
vertex -14.324 -45 16.95
vertex -14.324 45 16.95
vertex -20 45 16.95
endloop
endfacet

View File

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,6 @@ use <GDMUtils.scad>
use <cable_chain.scad>
use <wiring.scad>
pi = 3.1415926535;
module cable_chain_link()
{

View File

@@ -130,6 +130,7 @@ gear_backlash = printer_slop/2;
// Commonly used derived values. Don't change these.
pi = 3.141592653589793236+0.0;
extruder_length = motor_rail_length + 2*lifter_screw_pitch;
shaft_clear = max(20.0, motor_shaft_length)-20.0;
rail_offset = shaft_clear+12.0;
@@ -144,6 +145,7 @@ lifter_tooth_depth = lifter_screw_pitch / 3.2;
z_joiner_spacing = lifter_screw_diam + 2*lifter_tooth_depth + joiner_width;
z_base_height = rail_height + groove_height + 2*platform_thick;
adjust_thread_depth = adjust_screw_pitch/3.2;
drive_gear_diam = (gear_teeth+2)*rack_tooth_size/pi;
wall_styles = ["thinwall", "corrugated", "crossbeams"];
wall_style = wall_styles[wall_styling];

View File

@@ -7,7 +7,6 @@ $fa = 2;
$fs = 2;
module drive_gear() {
pi = 3.1415926535;
shaft = motor_shaft_size + printer_slop;
rack_module = rack_tooth_size / pi;
gear_pcd = gear_teeth * rack_module;

View File

@@ -55,6 +55,9 @@
//
//////////////////////////////////////////////////////////////////////////////////////////////
pi = 3.141592653589793236;
//An involute spur gear, with reasonable defaults for all the parameters.
//Normally, you should just choose the first 4 parameters, and let the rest be default values.
//Meshing gears must match in mm_per_tooth, pressure_angle, and twist,
@@ -70,7 +73,6 @@ module gear (
clearance = 0.0, //gap between top of a tooth on one gear and bottom of valley on a meshing gear (in millimeters)
backlash = 0.0 //gap between two meshing teeth, in the direction along the circumference of the pitch circle
) {
pi = 3.141592653589793236;
p = mm_per_tooth * number_of_teeth / pi / 2; //radius of pitch circle
c = p + mm_per_tooth / pi - clearance; //radius of outer circle
b = p*cos(pressure_angle); //radius of base circle
@@ -99,7 +101,7 @@ module gear (
};
//these 4 functions are used by gear
function polar(r,theta) = r*[sin(theta), cos(theta)]; //convert polar to cartesian coordinates
function iang(r1,r2) = sqrt((r2/r1)*(r2/r1) - 1)/3.1415926*180 - acos(r1/r2); //unwind a string this many degrees to go from radius r1 to radius r2
function iang(r1,r2) = sqrt((r2/r1)*(r2/r1) - 1)/pi*180 - acos(r1/r2); //unwind a string this many degrees to go from radius r1 to radius r2
function q7(f,r,b,r2,t,s) = q6(b,s,t,(1-f)*max(b,r)+f*r2); //radius a fraction f up the curved side of the tooth
function q6(b,s,t,d) = polar(d,s*(iang(b,d)+t)); //point at radius d on the involute curve
@@ -139,13 +141,13 @@ module rack (
//A gear fits within a circle of radius outer_radius, and two gears should have
//their centers separated by the sum of their pictch_radius.
function circular_pitch (mm_per_tooth=3) = mm_per_tooth; //tooth density expressed as "circular pitch" in millimeters
function diametral_pitch (mm_per_tooth=3) = 3.141592653589793236 / mm_per_tooth; //tooth density expressed as "diametral pitch" in teeth per millimeter
function diametral_pitch (mm_per_tooth=3) = pi / mm_per_tooth; //tooth density expressed as "diametral pitch" in teeth per millimeter
function adendum (mm_per_tooth=3) = module_value(mm_per_tooth);
function dedendum (mm_per_tooth=3) = 1.25 * module_value(mm_per_tooth);
function module_value (mm_per_tooth=3) = mm_per_tooth / 3.141592653589793236; //tooth density expressed as "module" or "modulus" in millimeters
function pitch_radius (mm_per_tooth=3,number_of_teeth=11) = mm_per_tooth * number_of_teeth / 3.1415926 / 2;
function module_value (mm_per_tooth=3) = mm_per_tooth / pi; //tooth density expressed as "module" or "modulus" in millimeters
function pitch_radius (mm_per_tooth=3,number_of_teeth=11) = mm_per_tooth * number_of_teeth / pi / 2;
function outer_radius (mm_per_tooth=3,number_of_teeth=11,clearance=0.1) //The gear fits entirely within a cylinder of this radius.
= mm_per_tooth*(1+number_of_teeth/2)/3.1415926 - clearance;
= mm_per_tooth*(1+number_of_teeth/2)/pi - clearance;
//////////////////////////////////////////////////////////////////////////////////////////////
//example gear train.

View File

@@ -92,7 +92,7 @@ module rail_xy_motor_segment(explode=0, connectby="")
// Endstop clip
zrot_copies([0, 180]) {
fwd((endstop_depth+2)/2-8) {
fwd((endstop_depth+2)/2-drive_gear_diam/2) {
right((motor_width+endstop_thick+3+2*7)/2) {
up(rail_height+groove_height-2-(endstop_length+2*2)/2) {
difference() {

View File

@@ -6,7 +6,7 @@ use <joiners.scad>
module sled_endcap()
{
joiner_length = 20;
hardstop_offset=8;
hardstop_offset = drive_gear_diam/2;
color("DodgerBlue")
prerender(convexity=10)
@@ -16,8 +16,10 @@ module sled_endcap()
union() {
difference() {
// Bottom
translate([0, -joiner_length/2, -platform_thick/2]) {
cube(size=[platform_width-joiner_width*2+0.1, joiner_length-0.05, platform_thick], center=true);
fwd(joiner_length/2) {
down(platform_thick/2) {
cube(size=[platform_width-joiner_width*2+0.1, joiner_length-0.05, platform_thick], center=true);
}
}
// Clear for joiners.
@@ -29,7 +31,7 @@ module sled_endcap()
}
// Snap-tab joiners.
translate([0,0,-platform_height/2]) {
down(platform_height/2) {
difference() {
joiner_pair(spacing=platform_width-joiner_width, h=platform_height, w=joiner_width, l=joiner_length-joiner_width/2, a=joiner_angle);
down(platform_height/2) {
@@ -44,35 +46,41 @@ module sled_endcap()
}
// Clear for Side joiners
translate([0, -(joiner_length-joiner_width/2), -platform_height/2]) {
xspread(platform_width+0.1) {
zrot(-90) joiner_clear(h=platform_height, w=joiner_width, clearance=5, l=joiner_width, a=joiner_angle);
down(platform_height/2) {
fwd(joiner_length-joiner_width/2) {
xspread(platform_width+0.1) {
zrot(-90) joiner_clear(h=platform_height, w=joiner_width, clearance=5, l=joiner_width, a=joiner_angle);
}
}
}
}
// Side joiners
translate([0, -(joiner_length-joiner_width/2), -platform_height/2]) {
difference() {
yrot_copies([0,180]) {
translate([platform_width/2, 0, 0]) {
zrot(-90) joiner(h=platform_height, w=joiner_width, l=joiner_width, a=joiner_angle);
down(platform_height/2) {
fwd(joiner_length-joiner_width/2) {
difference() {
yrot_copies([0,180]) {
translate([platform_width/2, 0, 0]) {
zrot(-90) joiner(h=platform_height, w=joiner_width, l=joiner_width, a=joiner_angle);
}
}
}
down(platform_height/2) {
yspread(joiner_width) {
yrot(90) chamfer_mask(r=3, h=2*joiner_length+platform_width);
}
xspread(platform_width-2*joiner_width) {
xrot(90) chamfer_mask(r=3, h=2*joiner_length+platform_width);
down(platform_height/2) {
yspread(joiner_width) {
yrot(90) chamfer_mask(r=3, h=2*joiner_length+platform_width);
}
xspread(platform_width-2*joiner_width) {
xrot(90) chamfer_mask(r=3, h=2*joiner_length+platform_width);
}
}
}
}
}
// Rack and pinion hard stop.
translate([0, -joiner_length+(joiner_length-hardstop_offset)/2, -platform_thick-rail_offset/2+0.05]) {
cube(size=[rail_spacing-joiner_width, joiner_length-hardstop_offset, rail_offset], center=true);
down(platform_thick+rail_offset/2-0.05) {
fwd(joiner_length-(joiner_length-hardstop_offset)/2) {
cube(size=[rail_spacing-joiner_width, joiner_length-hardstop_offset, rail_offset], center=true);
}
}
}
}

2
wiki

Submodule wiki updated: f819b04e94...b663c72053

View File

@@ -4,7 +4,6 @@ use <GDMUtils.scad>
$fa=2;
$fs=1.5;
pi = 3.141592653589793236;
module wire_clip(
d = 8,

View File

@@ -3,8 +3,8 @@ use <GDMUtils.scad>
use <joiners.scad>
joiner_length=15;
hardstop_offset=8;
joiner_length = 20;
hardstop_offset = drive_gear_diam/2;
module xy_joiner()
@@ -63,11 +63,11 @@ module xy_joiner()
// braces
up(rail_height/2-platform_thick/2) {
fwd(10/2+0.1) {
fwd(joiner_length-platform_thick*2+0.01) {
xflip_copy() {
left(side_mount_spacing/2) {
right_half() {
xrot(-90) trapezoid([hoff*1.2, platform_thick], [joiner_width/3, platform_thick], h=hoff, center=false);
right_half(200) {
xrot(-90) trapezoid([hoff*1.2, platform_thick], [joiner_width/3, platform_thick], h=hoff+joiner_length-platform_thick*2-6, center=false);
}
}
}

View File

@@ -42,6 +42,9 @@ module xy_sled()
slider_count = 2;
l = platform_length - 2*printer_slop;
slider_spacing = (l-slider_len-15)/(slider_count-1);
rack_module = rack_tooth_size / pi;
rack_pcd = gear_teeth * rack_module;
addendum = rack_module;
color("MediumSlateBlue")
prerender(convexity=10)
@@ -67,8 +70,6 @@ module xy_sled()
}
// Drive rack
rack_module = rack_tooth_size / 3.1415926535;
rack_pcd = gear_teeth * rack_module;
left(rack_pcd/2) {
up(platform_thick+rack_base+shaft_clear+rack_height/2) {
difference() {
@@ -84,10 +85,9 @@ module xy_sled()
}
// rack base
addendum = rack_module;
up((platform_thick+shaft_clear+rack_base)/2) {
left(10/2-addendum) {
cube(size=[10,l,platform_thick+rack_base+shaft_clear], center=true);
cube(size=[10, l, platform_thick+rack_base+shaft_clear], center=true);
}
}
}