mirror of
https://github.com/revarbat/snappy-reprap.git
synced 2025-11-02 23:56:45 -08:00
Merged slider_sled.scad and sled_parts.scad. Added chamfers to rail ends.
This commit is contained in:
2
Makefile
2
Makefile
@@ -11,7 +11,7 @@ STLs/%.stl: %.scad config.scad GDMUtils.scad
|
||||
${OPENSCAD} -m make -o $@ $<
|
||||
|
||||
clean:
|
||||
rm -f tmp_*.png snappy_rot*.png render_*_parts.scad
|
||||
rm -f tmp_*.png wiki/snappy_rot*.png render_*_parts.scad
|
||||
|
||||
cleaner: clean
|
||||
rm -f ${TARGETS}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
25136
STLs/sled_parts.stl
25136
STLs/sled_parts.stl
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,7 @@ module rail_motor_segment()
|
||||
// Rail backing.
|
||||
grid_of(count=2, spacing=rail_spacing+joiner_width)
|
||||
translate([0,0,rail_height+groove_height/2])
|
||||
chamfer(size=[joiner_width, motor_rail_length, groove_height], chamfer=1.5, edges=[[1,1,0,0], [1,1,0,0], [0,0,0,0]])
|
||||
chamfer(size=[joiner_width, motor_rail_length, groove_height], chamfer=1, edges=[[1,1,0,0], [1,1,0,0], [0,0,0,0]])
|
||||
cube(size=[joiner_width, motor_rail_length, groove_height], center=true);
|
||||
|
||||
// Side Supports
|
||||
@@ -66,14 +66,27 @@ module rail_motor_segment()
|
||||
// Rail grooves.
|
||||
translate([0,0,rail_height+groove_height/2]) {
|
||||
mirror_copy([1,0,0]) {
|
||||
translate([-(rail_spacing/2), 0, 0]) {
|
||||
scale([tan(groove_angle),1,1]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2,motor_rail_length+1,groove_height*sqrt(2)/2], center=true);
|
||||
}
|
||||
}
|
||||
translate([-(rail_width/2), 0, 0]) {
|
||||
scale([tan(groove_angle),1,1]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2,motor_rail_length+1,groove_height*sqrt(2)/2], center=true);
|
||||
translate([-(rail_width/2-joiner_width/2), 0, 0]) {
|
||||
mirror_copy([1,0,0]) {
|
||||
translate([(joiner_width/2), 0, 0]) {
|
||||
// main groove
|
||||
scale([tan(groove_angle),1,1]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2,motor_rail_length+1,groove_height*sqrt(2)/2], center=true);
|
||||
}
|
||||
|
||||
// chamfers
|
||||
mirror_copy([0,1,0]) {
|
||||
translate([0, motor_rail_length/2, 0]) {
|
||||
hull() {
|
||||
grid_of(count=[1,2], spacing=2) {
|
||||
zrot(45) scale([tan(groove_angle)*sin(45),1,1]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2,10,groove_height*sqrt(2)/2], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ module rail_segment()
|
||||
// Rail backing.
|
||||
grid_of(count=2, spacing=rail_spacing+joiner_width)
|
||||
translate([0,0,rail_height+groove_height/2])
|
||||
chamfer(size=[joiner_width, rail_length, groove_height], chamfer=1.5, edges=[[1,1,0,0], [1,1,0,0], [0,0,0,0]])
|
||||
chamfer(size=[joiner_width, rail_length, groove_height], chamfer=1, edges=[[1,1,0,0], [1,1,0,0], [0,0,0,0]])
|
||||
cube(size=[joiner_width, rail_length, groove_height], center=true);
|
||||
|
||||
// Side Supports
|
||||
@@ -53,14 +53,27 @@ module rail_segment()
|
||||
// Rail grooves.
|
||||
translate([0,0,rail_height+groove_height/2]) {
|
||||
mirror_copy([1,0,0]) {
|
||||
translate([-(rail_spacing/2), 0, 0]) {
|
||||
scale([tan(groove_angle),1,1]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2,rail_length+1,groove_height*sqrt(2)/2], center=true);
|
||||
}
|
||||
}
|
||||
translate([-(rail_width/2), 0, 0]) {
|
||||
scale([tan(groove_angle),1,1]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2,rail_length+1,groove_height*sqrt(2)/2], center=true);
|
||||
translate([-(rail_width/2-joiner_width/2), 0, 0]) {
|
||||
mirror_copy([1,0,0]) {
|
||||
translate([(joiner_width/2), 0, 0]) {
|
||||
// main groove
|
||||
scale([tan(groove_angle),1,1]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2,rail_length+1,groove_height*sqrt(2)/2], center=true);
|
||||
}
|
||||
|
||||
// chamfers
|
||||
mirror_copy([0,1,0]) {
|
||||
translate([0, rail_length/2, 0]) {
|
||||
hull() {
|
||||
grid_of(count=[1,2], spacing=2) {
|
||||
zrot(45) scale([tan(groove_angle)*sin(45),1.01,1.01]) yrot(45) {
|
||||
cube(size=[groove_height*sqrt(2)/2, 10, groove_height*sqrt(2)/2], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
222
sled_parts.scad
222
sled_parts.scad
@@ -4,106 +4,6 @@ use <joiners.scad>
|
||||
use <publicDomainGearV1.1.scad>
|
||||
|
||||
|
||||
module slider_sled()
|
||||
{
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
// Bottom
|
||||
translate([0,0,platform_thick/2])
|
||||
yrot(90) sparse_strut(h=platform_width, l=platform_length, thick=platform_thick, maxang=45, strut=12, max_bridge=999);
|
||||
|
||||
// Walls.
|
||||
zrot_copies([0, 180]) {
|
||||
translate([(platform_width-joiner_width)/2, 0, platform_height/2]) {
|
||||
if (wall_style == "crossbeams")
|
||||
sparse_strut(h=platform_height, l=platform_length-10, thick=joiner_width, strut=5);
|
||||
if (wall_style == "thinwall")
|
||||
thinning_wall(h=platform_height, l=platform_length-10, thick=joiner_width, strut=platform_thick, wall=3, bracing=false);
|
||||
if (wall_style == "corrugated")
|
||||
corrugated_wall(h=platform_height, l=platform_length-10, thick=joiner_width, strut=platform_thick, wall=3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Clear space for joiners.
|
||||
translate([0,0,platform_height/2]) {
|
||||
joiner_quad_clear(xspacing=platform_width-joiner_width, yspacing=platform_length, h=platform_height, w=joiner_width, clearance=5, a=joiner_angle);
|
||||
}
|
||||
}
|
||||
|
||||
// Snap-tab joiners.
|
||||
translate([0,0,platform_height/2]) {
|
||||
joiner_quad(xspacing=platform_width-joiner_width, yspacing=platform_length, h=platform_height, w=joiner_width, l=5, a=joiner_angle);
|
||||
}
|
||||
|
||||
// sliders
|
||||
mirror_copy([1,0,0]) {
|
||||
translate([-(rail_spacing)/2, 0, 0]) {
|
||||
// bottom strut
|
||||
translate([6/2,0,rail_offset/2]) {
|
||||
difference() {
|
||||
cube(size=[6, platform_length, rail_offset], center=true);
|
||||
grid_of(
|
||||
ya=[-(platform_length/2), (platform_length/2)],
|
||||
za=[groove_height/2]
|
||||
) {
|
||||
xrot(45) cube(size=[11, 2*sqrt(2), 2*sqrt(2)], center=true);
|
||||
}
|
||||
grid_of(
|
||||
ya=[-(platform_length/2), (platform_length/2)],
|
||||
xa=[-6/2]
|
||||
) {
|
||||
zrot(45) cube(size=[2*sqrt(2), 2*sqrt(2), rail_offset+1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grid_of(
|
||||
ya=[-platform_length*6/16, 0, platform_length*6/16],
|
||||
za=[rail_offset+groove_height/2]
|
||||
) {
|
||||
// Slider base
|
||||
translate([10/2-4, 0, -groove_height]) {
|
||||
difference() {
|
||||
cube(size=[10, platform_length/8, groove_height], center=true);
|
||||
grid_of(
|
||||
ya=[-(platform_length/8/2), (platform_length/8/2)],
|
||||
za=[groove_height/2]
|
||||
) {
|
||||
xrot(45) cube(size=[11, 2*sqrt(2), 2*sqrt(2)], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Slider backing
|
||||
translate([6/2, 0, 0]) {
|
||||
difference() {
|
||||
cube(size=[6, platform_length/8, groove_height], center=true);
|
||||
grid_of(
|
||||
ya=[-(platform_length/8/2), (platform_length/8/2)],
|
||||
za=[groove_height/2]
|
||||
) {
|
||||
xrot(45) cube(size=[11, 2*sqrt(2), 2*sqrt(2)], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Slider ridge
|
||||
scale([tan(groove_angle),1,1]) {
|
||||
yrot(45) {
|
||||
chamfcube(size=[groove_height/sqrt(2), platform_length/8, groove_height/sqrt(2)], chamfer=2, chamfaxes=[1,0,1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//!slider_sled();
|
||||
|
||||
|
||||
|
||||
module herringbone_rack(l=100, h=10, w=10, tooth_size=5, CA=30)
|
||||
{
|
||||
translate([-(rack_tooth_size/2), 0, 0]) {
|
||||
@@ -135,21 +35,125 @@ module sled()
|
||||
color("MediumSlateBlue")
|
||||
prerender(convexity=10)
|
||||
union() {
|
||||
// Base slider sled.
|
||||
slider_sled();
|
||||
difference() {
|
||||
union() {
|
||||
// Bottom
|
||||
translate([0,0,platform_thick/2])
|
||||
yrot(90) sparse_strut(h=platform_width, l=platform_length, thick=platform_thick, maxang=45, strut=12, max_bridge=999);
|
||||
|
||||
// Length-wise bracing.
|
||||
translate([0,0,platform_thick/2]) {
|
||||
translate([-10, 0, 1])
|
||||
cube(size=[14,platform_length,platform_thick+2], center=true);
|
||||
// Walls.
|
||||
zrot_copies([0, 180]) {
|
||||
translate([(platform_width-joiner_width)/2, 0, platform_height/2]) {
|
||||
if (wall_style == "crossbeams")
|
||||
sparse_strut(h=platform_height, l=platform_length-10, thick=joiner_width, strut=5);
|
||||
if (wall_style == "thinwall")
|
||||
thinning_wall(h=platform_height, l=platform_length-10, thick=joiner_width, strut=platform_thick, wall=3, bracing=false);
|
||||
if (wall_style == "corrugated")
|
||||
corrugated_wall(h=platform_height, l=platform_length-10, thick=joiner_width, strut=platform_thick, wall=3);
|
||||
}
|
||||
}
|
||||
|
||||
// Length-wise bracing.
|
||||
translate([0,0,platform_thick/2]) {
|
||||
translate([-10, 0, 1])
|
||||
cube(size=[14,platform_length,platform_thick+2], center=true);
|
||||
}
|
||||
|
||||
// Drive rack
|
||||
translate([-8, 0, platform_thick+2+5]) {
|
||||
zrot(-90) herringbone_rack(l=platform_length, h=10, tooth_size=rack_tooth_size, CA=30);
|
||||
}
|
||||
|
||||
// sliders
|
||||
mirror_copy([1,0,0]) {
|
||||
translate([-(rail_spacing)/2, 0, 0]) {
|
||||
// bottom strut
|
||||
translate([6/2+printer_slop,0,rail_offset/2]) {
|
||||
difference() {
|
||||
cube(size=[6, platform_length, rail_offset], center=true);
|
||||
grid_of(
|
||||
ya=[-(platform_length/2), (platform_length/2)],
|
||||
za=[groove_height/2]
|
||||
) {
|
||||
xrot(45) cube(size=[11, 2*sqrt(2), 2*sqrt(2)], center=true);
|
||||
}
|
||||
grid_of(
|
||||
ya=[-(platform_length/2), (platform_length/2)],
|
||||
xa=[-6/2]
|
||||
) {
|
||||
zrot(45) cube(size=[2*sqrt(2), 2*sqrt(2), rail_offset+1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grid_of(
|
||||
ya=[-platform_length*6/16, 0, platform_length*6/16],
|
||||
za=[rail_offset+groove_height/2]
|
||||
) {
|
||||
translate([-joiner_width/2, 0, 0]) {
|
||||
circle_of(n=2, r=joiner_width/2+printer_slop, rot=true) {
|
||||
// Slider base
|
||||
translate([15/2-9, 0, -groove_height]) {
|
||||
difference() {
|
||||
cube(size=[15, platform_length/8, groove_height], center=true);
|
||||
grid_of(
|
||||
ya=[-(platform_length/8/2), (platform_length/8/2)],
|
||||
za=[groove_height/2]
|
||||
) {
|
||||
xrot(45) cube(size=[16, 2*sqrt(2), 2*sqrt(2)], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Slider backing
|
||||
translate([6/2, 0, -4/2]) {
|
||||
difference() {
|
||||
cube(size=[6, platform_length/8, groove_height+4], center=true);
|
||||
grid_of(
|
||||
ya=[-(platform_length/8/2), (platform_length/8/2)],
|
||||
za=[(groove_height+4)/2]
|
||||
) {
|
||||
xrot(45) cube(size=[11, 2*sqrt(2), 2*sqrt(2)], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Slider ridge
|
||||
scale([tan(groove_angle),1,1]) {
|
||||
yrot(45) {
|
||||
chamfcube(size=[groove_height/sqrt(2), platform_length/8, groove_height/sqrt(2)], chamfer=2, chamfaxes=[1,0,1], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Clear space for joiners.
|
||||
translate([0,0,platform_height/2]) {
|
||||
joiner_quad_clear(xspacing=platform_width-joiner_width, yspacing=platform_length, h=platform_height, w=joiner_width, clearance=5, a=joiner_angle);
|
||||
}
|
||||
|
||||
// Shrinkage stress relief
|
||||
translate([0, 0, platform_thick/2]) {
|
||||
grid_of(count=[1, 3], spacing=[0, 32]) {
|
||||
cube(size=[platform_width+1, 1, platform_thick-2], center=true);
|
||||
}
|
||||
grid_of(count=[5, 2], spacing=[30, platform_length-10]) {
|
||||
cube(size=[1, 20, platform_thick-2], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Drive rack
|
||||
translate([-8, 0, platform_thick+2+5]) {
|
||||
zrot(-90) herringbone_rack(l=platform_length, h=10, tooth_size=rack_tooth_size, CA=30);
|
||||
// Snap-tab joiners.
|
||||
translate([0,0,platform_height/2]) {
|
||||
joiner_quad(xspacing=platform_width-joiner_width, yspacing=platform_length, h=platform_height, w=joiner_width, l=5, a=joiner_angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
//!sled();
|
||||
|
||||
|
||||
|
||||
|
||||
2
wiki
2
wiki
Submodule wiki updated: 6af65c728e...b1c89693cd
Reference in New Issue
Block a user