mirror of
https://github.com/revarbat/snappy-reprap.git
synced 2025-11-02 23:56:45 -08:00
Added extruder platform. Color coded parts for rendering.
This commit is contained in:
@@ -585,7 +585,42 @@ module thinning_wall(h=50, l=100, thick=5, ang=30, strut=5, wall=3, bracing=true
|
||||
cube(size=[wall, l-0.1, h-0.1], center=true);
|
||||
}
|
||||
}
|
||||
//!thinning_wall(, bracing=false);
|
||||
//!thinning_wall(bracing=false);
|
||||
|
||||
|
||||
|
||||
// Makes a triangular wall which thins to a smaller width in the center,
|
||||
// with angled supports to prevent critical overhangs.
|
||||
// Example:
|
||||
// thinning_triangle(h=50, l=100, thick=4, ang=30, strut=5, wall=2);
|
||||
module thinning_triangle(h=50, l=100, thick=5, ang=30, strut=5, wall=3)
|
||||
{
|
||||
dang = atan((h-strut)/(l-strut));
|
||||
dlen = (h-strut)/sin(dang);
|
||||
difference() {
|
||||
union() {
|
||||
translate([0, 0, -h/2])
|
||||
narrowing_strut(w=thick, l=l, wall=strut, ang=ang);
|
||||
translate([0, -l/2, 0])
|
||||
xrot(-90) narrowing_strut(w=thick, l=h-0.1, wall=strut, ang=ang);
|
||||
intersection() {
|
||||
cube(size=[thick, l, h], center=true);
|
||||
translate([0, 0, 0]) {
|
||||
xrot(-dang) yrot(180) {
|
||||
narrowing_strut(w=thick, l=dlen, wall=strut, ang=ang);
|
||||
}
|
||||
}
|
||||
}
|
||||
cube(size=[wall, l-0.1, h-0.1], center=true);
|
||||
}
|
||||
xrot(-dang) {
|
||||
translate([0, 0, h/2]) {
|
||||
cube(size=[thick+0.1, l*2, h], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//!thinning_triangle(bracing=false);
|
||||
|
||||
|
||||
|
||||
|
||||
6
Makefile
6
Makefile
@@ -20,3 +20,9 @@ include $(wildcard *.deps)
|
||||
clean:
|
||||
rm -f ${TARGETS} *.deps
|
||||
|
||||
rendering:
|
||||
${OPENSCAD} -o wiki/snappy_full.png --imgsize=3200,3200 --projection=p --csglimit=100000 --camera=0,-225,200,63,0,307,3500 full_assembly.scad
|
||||
cp wiki/snappy_full.png wiki/snappy_small.png
|
||||
sips -Z 800 wiki/snappy_full.png
|
||||
sips -Z 200 wiki/snappy_small.png
|
||||
|
||||
|
||||
1
TODO.md
1
TODO.md
@@ -4,7 +4,6 @@ TODO:
|
||||
* Z-axis cable chain.
|
||||
* X-axis endstop.
|
||||
* Z threaded rod shaft coupler.
|
||||
* Extruder mount.
|
||||
* Extruder base for J-head.
|
||||
* Minimalist Mk7-esque Extruder Parts.
|
||||
* Electronics container.
|
||||
|
||||
@@ -5,7 +5,7 @@ use <GDMUtils.scad>
|
||||
|
||||
module cap(r=roller_axle/2-3, h=10, wall=3, cap=2, lip=1.5)
|
||||
{
|
||||
difference() {
|
||||
color("Pink") difference() {
|
||||
union() {
|
||||
translate([0,0,-cap/2])
|
||||
cylinder(r=r+lip+wall, h=cap, center=true, $fn=32);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
snappy_version = 0.90;
|
||||
|
||||
|
||||
platform_length = 110; // mm
|
||||
platform_length = 110; // mm. Must be a multiple of rack_tooth_size.
|
||||
platform_width = 150; // mm
|
||||
platform_height = 40; // mm
|
||||
platform_thick = 7; // mm
|
||||
|
||||
@@ -6,7 +6,7 @@ use <publicDomainGearV1.1.scad>
|
||||
module drive_gear() {
|
||||
h = 10;
|
||||
shaft = 5.4;
|
||||
render(convexity=10) union() {
|
||||
color("Salmon") render(convexity=10) union() {
|
||||
difference() {
|
||||
// Herringbone gear
|
||||
mirror_copy([0, 0, 1]) {
|
||||
|
||||
86
extruder_mount_part.scad
Normal file
86
extruder_mount_part.scad
Normal file
@@ -0,0 +1,86 @@
|
||||
include <config.scad>
|
||||
use <GDMUtils.scad>
|
||||
use <joiners.scad>
|
||||
|
||||
|
||||
module extruder_mount()
|
||||
{
|
||||
color("LightSteelBlue") difference() {
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
// Bottom.
|
||||
translate([0,0,rail_thick/2])
|
||||
cube(size=[rail_width, rail_length, rail_thick], center=true);
|
||||
|
||||
// Walls.
|
||||
grid_of(
|
||||
xa=[-(rail_spacing/2+joiner_width/2), (rail_spacing/2+joiner_width/2)],
|
||||
za=[(rail_height+roller_thick)/2]
|
||||
) {
|
||||
thinning_triangle(h=rail_height+roller_thick, l=rail_length-2*12, thick=joiner_width, strut=rail_thick);
|
||||
}
|
||||
}
|
||||
|
||||
// Blunt off end of platform.
|
||||
translate([0, rail_length/2+rail_thick*2, 0])
|
||||
cube(size=[rail_width+1, rail_length/2, rail_height*3], center=true);
|
||||
|
||||
// Clear space out near clips.
|
||||
grid_of(
|
||||
xa=[-(rail_spacing+joiner_width)/2, (rail_spacing+joiner_width)/2],
|
||||
ya=[-rail_length/2],
|
||||
za=[(rail_height)/4, (rail_height)*3/4]
|
||||
) {
|
||||
scale([1, tan(joiner_angle), 1]) xrot(45)
|
||||
cube(size=rail_height/2/sqrt(2), center=true);
|
||||
}
|
||||
|
||||
// Extruder mount holes.
|
||||
circle_of(r=25, n=4) {
|
||||
cylinder(r=4.5/2, h=20, center=true);
|
||||
}
|
||||
|
||||
// Extruder hole.
|
||||
cylinder(r=16, h=20, center=true);
|
||||
|
||||
// Wiring Access hole.
|
||||
grid_of(xa=[-30, 30], ya=[-40])
|
||||
cylinder(r=10, h=20, center=true);
|
||||
}
|
||||
|
||||
// Rail backing.
|
||||
grid_of([-(rail_spacing+joiner_width)/2, (rail_spacing+joiner_width)/2])
|
||||
translate([0,-(rail_length-12)/2,rail_height+roller_thick/2])
|
||||
cube(size=[joiner_width, 12, roller_thick], center=true);
|
||||
|
||||
|
||||
// Joiner clips.
|
||||
translate([0,0,rail_height/2]) {
|
||||
zrot_copies([180]) {
|
||||
yrot_copies([0,180]) {
|
||||
translate([rail_spacing/2+joiner_width/2, rail_length/2, 0]) {
|
||||
joiner(h=rail_height, w=joiner_width, l=12, a=joiner_angle);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//!rail_structure();
|
||||
|
||||
|
||||
|
||||
module extruder_mount_part() { // make me
|
||||
extruder_mount();
|
||||
}
|
||||
|
||||
|
||||
|
||||
extruder_mount_part();
|
||||
|
||||
|
||||
|
||||
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|
||||
|
||||
@@ -16,6 +16,7 @@ use <xy_joiner_parts.scad>
|
||||
use <xy_sled_part.scad>
|
||||
use <z_platform_joint_part.scad>
|
||||
use <z_sled_part.scad>
|
||||
use <extruder_mount_part.scad>
|
||||
|
||||
|
||||
|
||||
@@ -30,16 +31,8 @@ module full_assembly()
|
||||
joiner_length=15;
|
||||
platform_vert_off = rail_height+roller_base+roller_thick/2+5;
|
||||
|
||||
x_rail_color = [1.0, 0.6, 0.6];
|
||||
x_sled_color = [1.0, 0.4, 0.4];
|
||||
y_rail_color = [0.6, 1.0, 0.6];
|
||||
y_sled_color = [0.4, 0.8, 0.4];
|
||||
z_rail_color = [0.6, 0.6, 1.0];
|
||||
z_sled_color = [0.4, 0.4, 1.0];
|
||||
e_color = [0.8, 0.6, 0.9];
|
||||
|
||||
// Y-axis to Z-axis corner joiner.
|
||||
color((y_rail_color+z_rail_color)/2) rails_90deg_joint();
|
||||
rails_90deg_joint();
|
||||
|
||||
// Z-Axis Stepper Motor
|
||||
translate([0, rail_height+roller_thick/2-1, 0]) {
|
||||
@@ -47,9 +40,10 @@ module full_assembly()
|
||||
zrot(90) motor_mount_plate();
|
||||
translate([0, 0, 5.9+rail_thick]) {
|
||||
nema17_stepper(h=34, shaft_len=20.05);
|
||||
translate([0, 0, lifter_rod_length/2+40])
|
||||
translate([0, 0, lifter_rod_length/2+40]) {
|
||||
color("silver")
|
||||
cylinder(h=lifter_rod_length, r=lifter_rod_diam/2, center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -66,15 +60,13 @@ module full_assembly()
|
||||
translate([0, platform_length, 0]) {
|
||||
// Y-axis rails.
|
||||
translate([0, rail_length/2, 0]) {
|
||||
color(y_rail_color) rail_structure();
|
||||
rail_structure();
|
||||
translate([0, rail_length/2+motor_rail_length/2, 0]) {
|
||||
color(y_rail_color) {
|
||||
rail_with_motor_mount();
|
||||
translate([0, motor_rail_length/2+rail_length/2, 0]) {
|
||||
rail_structure();
|
||||
translate([0, rail_length/2, 0]) {
|
||||
zrot(180) rails_end();
|
||||
}
|
||||
rail_with_motor_mount();
|
||||
translate([0, motor_rail_length/2+rail_length/2, 0]) {
|
||||
rail_structure();
|
||||
translate([0, rail_length/2, 0]) {
|
||||
zrot(180) rails_end();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,9 +85,12 @@ module full_assembly()
|
||||
|
||||
translate([0, rail_length+motor_rail_length/2, 0]) {
|
||||
// Y-axis slider platform.
|
||||
color(y_sled_color) translate([0, 0, platform_vert_off]) {
|
||||
translate([0, 0, platform_vert_off]) {
|
||||
grid_of(ya=[-platform_length/2, platform_length/2]) {
|
||||
yrot(180) xy_sled(show_rollers=true);
|
||||
yrot(180) {
|
||||
xy_sled();
|
||||
xy_sled_rollers();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,16 +104,14 @@ module full_assembly()
|
||||
}
|
||||
|
||||
zrot(90) translate([0, 0, platform_vert_off]) {
|
||||
color(x_rail_color) {
|
||||
// Horizontal X-axis rails.
|
||||
grid_of(ya=[-(rail_length+motor_rail_length)/2, (rail_length+motor_rail_length)/2]) {
|
||||
rail_structure();
|
||||
}
|
||||
rail_with_motor_mount();
|
||||
zrot_copies([0, 180]) {
|
||||
translate([0, rail_length+motor_rail_length/2, 0]) {
|
||||
zrot(180) rails_end();
|
||||
}
|
||||
// Horizontal X-axis rails.
|
||||
grid_of(ya=[-(rail_length+motor_rail_length)/2, (rail_length+motor_rail_length)/2]) {
|
||||
rail_structure();
|
||||
}
|
||||
rail_with_motor_mount();
|
||||
zrot_copies([0, 180]) {
|
||||
translate([0, rail_length+motor_rail_length/2, 0]) {
|
||||
zrot(180) rails_end();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,9 +126,12 @@ module full_assembly()
|
||||
}
|
||||
|
||||
// X-axis slider platform.
|
||||
color(x_sled_color) translate([0, 0, platform_vert_off]) {
|
||||
translate([0, 0, platform_vert_off]) {
|
||||
grid_of(ya=[-platform_length/2, platform_length/2]) {
|
||||
yrot(180) xy_sled(show_rollers=true);
|
||||
yrot(180) {
|
||||
xy_sled();
|
||||
xy_sled_rollers();
|
||||
}
|
||||
}
|
||||
zrot_copies([0, 180]) {
|
||||
translate([0, -platform_length, 0]) {
|
||||
@@ -148,21 +144,20 @@ module full_assembly()
|
||||
}
|
||||
|
||||
translate([0, 0, platform_length]) {
|
||||
color(z_rail_color) {
|
||||
// Vertical Z-axis slider rails.
|
||||
for(i = [0:1]) {
|
||||
translate([0, 0, (i+0.5)*rail_length])
|
||||
xrot(-90) rail_structure();
|
||||
}
|
||||
translate([0, 0, 2*rail_length]) {
|
||||
xrot(-90) rails_end();
|
||||
}
|
||||
// Vertical Z-axis slider rails.
|
||||
for(i = [0:1]) {
|
||||
translate([0, 0, (i+0.5)*rail_length])
|
||||
xrot(-90) rail_structure();
|
||||
}
|
||||
translate([0, 0, 2*rail_length]) {
|
||||
xrot(-90) rails_end();
|
||||
}
|
||||
|
||||
translate([0, platform_vert_off, rail_length]) {
|
||||
color(z_sled_color) {
|
||||
// Vertical Z-axis platform.
|
||||
xrot(-90) yrot(180) z_sled(show_rollers=true);
|
||||
// Vertical Z-axis platform.
|
||||
xrot(-90) yrot(180) {
|
||||
z_sled();
|
||||
z_sled_rollers();
|
||||
}
|
||||
|
||||
translate([0, 0, platform_length/2]) {
|
||||
@@ -172,10 +167,10 @@ module full_assembly()
|
||||
// Extruder cantilever.
|
||||
translate([0, joiner_length, -rail_height]) {
|
||||
translate([0, 0.5*rail_length, 0]) {
|
||||
color(e_color) rail_structure();
|
||||
rail_structure();
|
||||
}
|
||||
translate([0, 1.5*rail_length, 0]) {
|
||||
color(e_color) rail_structure();
|
||||
extruder_mount();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ use <joiners.scad>
|
||||
|
||||
module motor_mount_plate(thick=4, l=15)
|
||||
{
|
||||
union() {
|
||||
color("Teal") union() {
|
||||
translate([0, 0, l-thick/2]) {
|
||||
difference() {
|
||||
cube(size=[43+joiner_width+10, rail_height, 4], center=true);
|
||||
|
||||
@@ -8,7 +8,7 @@ module rail_with_motor_mount()
|
||||
{
|
||||
joiner_length = 10;
|
||||
|
||||
difference() {
|
||||
color("SpringGreen") difference() {
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
|
||||
@@ -10,7 +10,7 @@ module rails_90deg_joint()
|
||||
base_height = rail_height+roller_thick;
|
||||
endstop_delta = platform_length - base_height;
|
||||
|
||||
difference() {
|
||||
color("Turquoise") difference() {
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
|
||||
@@ -7,7 +7,7 @@ module rails_end()
|
||||
{
|
||||
joiner_length=15;
|
||||
base_height = rail_height+roller_thick;
|
||||
difference() {
|
||||
color("YellowGreen") difference() {
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
|
||||
@@ -5,7 +5,7 @@ use <joiners.scad>
|
||||
|
||||
module rail_structure()
|
||||
{
|
||||
difference() {
|
||||
color("Lavender") difference() {
|
||||
union() {
|
||||
difference() {
|
||||
union() {
|
||||
|
||||
@@ -5,7 +5,7 @@ use <joiners.scad>
|
||||
|
||||
module roller()
|
||||
{
|
||||
render(convexity=2) difference() {
|
||||
color("Tan") render(convexity=2) difference() {
|
||||
union() {
|
||||
translate([0,0,-roller_thick/4])
|
||||
cylinder(h=roller_thick/2, r1=roller_diam/2, r2=roller_diam/2+(roller_thick/2)*tan(roller_angle), center=true, $fn=32);
|
||||
|
||||
@@ -6,7 +6,7 @@ use <joiners.scad>
|
||||
module sled_end()
|
||||
{
|
||||
snap_width = 15;
|
||||
union() {
|
||||
color("DodgerBlue") union() {
|
||||
difference() {
|
||||
union() {
|
||||
// Base.
|
||||
|
||||
100
slider_sled.scad
100
slider_sled.scad
@@ -1,41 +1,13 @@
|
||||
include <config.scad>
|
||||
use <GDMUtils.scad>
|
||||
use <publicDomainGearV1.1.scad>
|
||||
use <joiners.scad>
|
||||
use <roller_parts.scad>
|
||||
use <cap_parts.scad>
|
||||
|
||||
|
||||
|
||||
module herringbone_rack(l=100, h=10, w=10, tooth_size=5, CA=30)
|
||||
module slider_sled(show_rollers=false)
|
||||
{
|
||||
render(convexity=10) translate([-(rack_tooth_size/2), 0, 0]) {
|
||||
mirror_copy([0,0,1]) {
|
||||
skew_along_z(xang=CA) {
|
||||
intersection() {
|
||||
translate([-(l/2-rack_tooth_size/2), 0, h/4]) {
|
||||
rack(
|
||||
mm_per_tooth=rack_tooth_size,
|
||||
number_of_teeth=floor(l/rack_tooth_size),
|
||||
thickness=h/2,
|
||||
height=w,
|
||||
pressure_angle=20,
|
||||
backlash=0
|
||||
);
|
||||
}
|
||||
cube(size=[l, h*3, h*3], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//!herringbone_rack(l=100, h=10, tooth_size=5, CA=30);
|
||||
|
||||
|
||||
|
||||
module slider_sled(show_rollers=false, with_rack=false, nut_size=undef, nut_thick=undef)
|
||||
{
|
||||
platform_length=with_rack? ceil(platform_length/rack_tooth_size)*rack_tooth_size : platform_length; // quantize to rack tooth size, if needed.
|
||||
axle_rad = (roller_axle/2) - 0.5;
|
||||
axle_len = roller_thick;
|
||||
|
||||
@@ -83,54 +55,6 @@ module slider_sled(show_rollers=false, with_rack=false, nut_size=undef, nut_thic
|
||||
// Roller axles
|
||||
translate([0,0,axle_len/2+roller_base]) {
|
||||
tube(h=axle_len+0.05, r=axle_rad, wall=2.5, center=true, $fn=32);
|
||||
if (show_rollers) {
|
||||
roller();
|
||||
translate([0,0,axle_len/2]) xrot(180)
|
||||
cap(r=roller_axle/2-3, h=10, lip=2, wall=3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
translate([0,0,platform_thick/2]) {
|
||||
// Length-wise bracing.
|
||||
if (with_rack == true) {
|
||||
translate([-10, 0, 1])
|
||||
cube(size=[14,platform_length,platform_thick+2], center=true);
|
||||
} else {
|
||||
cube(size=[14,platform_length,platform_thick], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
// Drive rack
|
||||
if (with_rack == true) {
|
||||
translate([-8, 0, platform_thick+2+5]) {
|
||||
zrot(-90) herringbone_rack(l=platform_length, h=10, tooth_size=rack_tooth_size, CA=30);
|
||||
}
|
||||
}
|
||||
|
||||
// Drive nut.
|
||||
if (nut_size != undef) {
|
||||
grid_of(ya=[-roller_spacing/2, roller_spacing/2]) {
|
||||
difference() {
|
||||
translate([0, 0, (nut_size+roller_base)/2])
|
||||
cube(size=[nut_size+10, nut_thick+10, nut_size+roller_base], center=true);
|
||||
translate([0, 0, roller_base+roller_thick/2]) {
|
||||
hull() {
|
||||
grid_of(za=[0, 20]) {
|
||||
scale([1.05, 1.05, 1.00]) zrot(90) yrot(90)
|
||||
cylinder(h=nut_thick, r=(nut_size/2)/cos(30), center=true, $fn=6);
|
||||
}
|
||||
}
|
||||
}
|
||||
translate([0, 0, roller_base+roller_thick/2]) {
|
||||
hull() {
|
||||
grid_of(za=[0, 20]) {
|
||||
scale([0.65, 3, 0.65]) zrot(90) yrot(90)
|
||||
cylinder(h=nut_thick, r=nut_size/2, center=true, $fn=24);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,8 +62,28 @@ module slider_sled(show_rollers=false, with_rack=false, nut_size=undef, nut_thic
|
||||
}
|
||||
|
||||
|
||||
module slider_rollers()
|
||||
{
|
||||
axle_len = roller_thick;
|
||||
|
||||
slider_sled(show_rollers=true, nut_size=17.5, nut_thick=9.2);
|
||||
grid_of(xa=[-roller_spacing/2,roller_spacing/2]) {
|
||||
grid_of(ya=[-(platform_length/2)/2, (platform_length/2)/2]) {
|
||||
translate([0,0,axle_len/2+roller_base]) {
|
||||
// Rollers
|
||||
roller();
|
||||
|
||||
// Caps
|
||||
translate([0,0,axle_len/2]) xrot(180)
|
||||
cap(r=roller_axle/2-3, h=10, lip=2, wall=3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
slider_sled(show_rollers=true);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ use <tslot.scad>
|
||||
module support_leg(h=30, l=100, wall=3)
|
||||
{
|
||||
ang = atan((h-10)/l);
|
||||
union() {
|
||||
color("SandyBrown") union() {
|
||||
translate([0, 5/2, h/2])
|
||||
cube(size=[platform_length/2+6*wall, 5, h], center=true);
|
||||
grid_of(xa=[-platform_length/4, platform_length/4]) {
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
include <config.scad>
|
||||
use <GDMUtils.scad>
|
||||
use <tslot.scad>
|
||||
|
||||
|
||||
module testslot(h=30, l=100, wall=3)
|
||||
{
|
||||
ang = atan((h-10)/l);
|
||||
union() {
|
||||
translate([0, -1, h/2])
|
||||
cube(size=[platform_length/2+6*wall, 5, h], center=true);
|
||||
grid_of(xa=[-platform_length/4, platform_length/4]) {
|
||||
lock_slot(h=h, wall=wall);
|
||||
}
|
||||
}
|
||||
}
|
||||
//!testslot();
|
||||
|
||||
|
||||
|
||||
module testslot_part() { // make me
|
||||
testslot();
|
||||
}
|
||||
|
||||
|
||||
|
||||
testslot_part();
|
||||
|
||||
|
||||
|
||||
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|
||||
|
||||
2
wiki
2
wiki
Submodule wiki updated: f37f67622d...df3d15f966
@@ -8,7 +8,7 @@ module xy_joiner()
|
||||
{
|
||||
joiner_length=10;
|
||||
hoff = (platform_length*2-rail_width)/2-3*3+1;
|
||||
union() {
|
||||
color("Sienna") union() {
|
||||
// Joiners
|
||||
translate([0, 0, -platform_height/2]) {
|
||||
yrot_copies([0, 180]) {
|
||||
|
||||
@@ -1,11 +1,59 @@
|
||||
include <config.scad>
|
||||
use <GDMUtils.scad>
|
||||
use <publicDomainGearV1.1.scad>
|
||||
use <slider_sled.scad>
|
||||
|
||||
|
||||
module xy_sled(show_rollers=false)
|
||||
module herringbone_rack(l=100, h=10, w=10, tooth_size=5, CA=30)
|
||||
{
|
||||
slider_sled(show_rollers=show_rollers, with_rack=true);
|
||||
render(convexity=10) translate([-(rack_tooth_size/2), 0, 0]) {
|
||||
mirror_copy([0,0,1]) {
|
||||
skew_along_z(xang=CA) {
|
||||
intersection() {
|
||||
translate([-(l/2-rack_tooth_size/2), 0, h/4]) {
|
||||
rack(
|
||||
mm_per_tooth=rack_tooth_size,
|
||||
number_of_teeth=floor(l/rack_tooth_size),
|
||||
thickness=h/2,
|
||||
height=w,
|
||||
pressure_angle=20,
|
||||
backlash=0
|
||||
);
|
||||
}
|
||||
cube(size=[l, h*3, h*3], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//!herringbone_rack(l=100, h=10, tooth_size=5, CA=30);
|
||||
|
||||
|
||||
|
||||
module xy_sled()
|
||||
{
|
||||
color("MediumSlateBlue") union() {
|
||||
// Base slider sled.
|
||||
slider_sled();
|
||||
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module xy_sled_rollers()
|
||||
{
|
||||
slider_rollers();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ use <joiners.scad>
|
||||
module z_platform_joint()
|
||||
{
|
||||
joiner_length=15;
|
||||
xrot(-90) union() {
|
||||
color("Chocolate") xrot(-90) union() {
|
||||
translate([0, 0, platform_height/2]) {
|
||||
yrot_copies([0, 180]) {
|
||||
translate([-(platform_width-joiner_width)/2, 0, 0]) {
|
||||
|
||||
@@ -4,9 +4,51 @@ use <slider_sled.scad>
|
||||
|
||||
|
||||
|
||||
module z_sled(show_rollers=false)
|
||||
module z_sled()
|
||||
{
|
||||
slider_sled(show_rollers=show_rollers, with_rack=false, nut_size=lifter_nut_size, nut_thick=lifter_nut_thick);
|
||||
nut_size=lifter_nut_size;
|
||||
nut_thick=lifter_nut_thick;
|
||||
|
||||
color("DeepSkyBlue") union() {
|
||||
// Base slider sled.
|
||||
slider_sled(with_rack=false);
|
||||
|
||||
// Length-wise bracing.
|
||||
translate([0,0,platform_thick/2]) {
|
||||
cube(size=[14,platform_length,platform_thick], center=true);
|
||||
}
|
||||
|
||||
// Drive nut capture.
|
||||
grid_of(ya=[-roller_spacing/2, roller_spacing/2]) {
|
||||
difference() {
|
||||
translate([0, 0, (nut_size+roller_base)/2])
|
||||
cube(size=[nut_size+10, nut_thick+10, nut_size+roller_base], center=true);
|
||||
translate([0, 0, roller_base+roller_thick/2]) {
|
||||
hull() {
|
||||
grid_of(za=[0, 20]) {
|
||||
scale([1.05, 1.05, 1.00]) zrot(90) yrot(90)
|
||||
cylinder(h=nut_thick, r=(nut_size/2)/cos(30), center=true, $fn=6);
|
||||
}
|
||||
}
|
||||
}
|
||||
translate([0, 0, roller_base+roller_thick/2]) {
|
||||
hull() {
|
||||
grid_of(za=[0, 20]) {
|
||||
scale([0.65, 3, 0.65]) zrot(90) yrot(90)
|
||||
cylinder(h=nut_thick, r=nut_size/2, center=true, $fn=24);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module z_sled_rollers()
|
||||
{
|
||||
slider_rollers();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user