Tweaks to improve slider travel.

This commit is contained in:
Revar Desmera
2015-09-18 15:01:04 -07:00
parent 283d34a49a
commit e981a77c9e
7 changed files with 5502 additions and 4299 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

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,6 @@ module rail_motor_segment(explode=0, connectby="")
{
joiner_length = 8;
side_joiner_len = 10;
fillet = 1.0;
motor_width = nema_motor_width(17);
up(
@@ -66,7 +65,7 @@ module rail_motor_segment(explode=0, connectby="")
// Rails.
xspread(rail_spacing+joiner_width) {
up(rail_height+groove_height/2-0.05) {
rail(l=motor_rail_length, w=joiner_width, h=groove_height, fillet=fillet);
rail(l=motor_rail_length, w=joiner_width, h=groove_height);
}
}

View File

@@ -7,7 +7,6 @@ use <joiners.scad>
// connectby valid options: "", "fwd", "back"
module rail_segment(explode=0, connectby="")
{
fillet = 1.0;
side_joiner_len = 2;
up(
@@ -45,7 +44,7 @@ module rail_segment(explode=0, connectby="")
// Rails.
xspread(rail_spacing+joiner_width) {
up(rail_height+groove_height/2-0.05) {
rail(l=rail_length, w=joiner_width, h=groove_height, fillet=fillet);
rail(l=rail_length, w=joiner_width, h=groove_height);
}
}

View File

@@ -94,7 +94,7 @@ module sled()
// sliders
xspread(rail_spacing+joiner_width) {
yspread(slider_spacing, n=slider_count) {
slider(l=slider_len, base=rail_offset, slop=printer_slop+0.1);
slider(l=slider_len, base=rail_offset, slop=2*printer_slop);
}
}
}

View File

@@ -64,7 +64,7 @@ module slider(l=30, w=joiner_width, h=groove_height, base=10, wall=5, ang=groove
module rail(l=30, w=joiner_width, h=groove_height, fillet=1.5, ang=groove_angle)
module rail(l=30, w=joiner_width, h=groove_height, fillet=1.0, ang=groove_angle)
{
difference() {
// Rail backing.
@@ -89,41 +89,56 @@ module rail(l=30, w=joiner_width, h=groove_height, fillet=1.5, ang=groove_angle)
}
// fillets
endfacets = 3;
facelen = h/2/cos(ang);
inset = h/2*tan(ang);
yflip_copy() {
fwd(l/2) {
// top end fillets
up(h/2) {
difference() {
cube([w*2, fillet*2, fillet*2], center=true);
back(fillet) down(fillet) {
yrot(90) cylinder(r=fillet, h=w*3, center=true, $fn=12);
scale([1, 2, 1]) {
up(h/2) {
// top end fillets
difference() {
cube([w*2, fillet*2, fillet*2], center=true);
back(fillet) down(fillet) {
yrot(90) cylinder(r=fillet, h=w*3, center=true, $fn=endfacets*4);
}
}
}
}
// groove fillets
left(inset) {
difference() {
zflip_copy() {
left(fillet/cos(ang)) {
yrot(-ang) {
right(fillet) {
down(facelen*1.5/2) {
cube([fillet*2, fillet*2, facelen*1.5], center=true);
}
// top corner end fillets
down(fillet/sin(ang)) {
yrot(45+ang/2) {
difference() {
cube([w*2, fillet*2, fillet*2], center=true);
back(fillet) down(fillet) {
yrot(90) cylinder(r=fillet, h=w*3, center=true, $fn=endfacets*4);
}
}
}
}
zflip_copy() {
left(fillet/cos(ang)) {
yrot(-ang) {
right(fillet) {
down(facelen) {
back(fillet) left(fillet) {
cylinder(r=fillet, h=facelen*3, center=true, $fn=12);
}
// groove fillets
left(inset) {
difference() {
zflip_copy() {
left(fillet/cos(ang)) {
yrot(-ang) {
right(fillet) {
down(facelen*1.5/2) {
cube([fillet*2, fillet*2, facelen*1.5], center=true);
}
}
}
}
}
zflip_copy() {
left(fillet/cos(ang)) {
yrot(-ang) {
right(fillet) {
down(facelen) {
back(fillet) left(fillet) {
cylinder(r=fillet, h=facelen*3, center=true, $fn=endfacets*4);
}
}
}
}
@@ -138,7 +153,7 @@ module rail(l=30, w=joiner_width, h=groove_height, fillet=1.5, ang=groove_angle)
}
}
}
rail(l=30, fillet=1.5);
rail(l=30);
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap