Added start at xsled

This commit is contained in:
2022-02-22 23:37:46 +01:00
parent 860d81bf85
commit 39a0d379d1
2 changed files with 103 additions and 8 deletions

View File

@@ -2,9 +2,10 @@ use_colors = true;
xsize = 500;
ysize = 400;
sled_size = 6 * 25.4;
sled_ysize = 5 * 25.4;
sled_xsize = 6 * 25.4;
cur_xpos = 100;
cur_xpos = 250;
cur_ypos = 200;
include <parts.scad>;
@@ -53,7 +54,7 @@ module rails() {
module ysled_rails() {
frame_offset = frame_size + corner_size / 2;
yoff = (sled_size + ysled_extralen * 2 - frame_size) / 2;
yoff = ysled_rail_spacing / 2;
colorize(stock_color)
for (ypos = [-yoff, yoff])
translate([frame_size / 2, ypos, 0])
@@ -62,6 +63,19 @@ module ysled_rails() {
}
module xsled() {
xdiff = sled_xsize / 2 + frame_size / 2;
*for(ypos = [-ysled_rail_spacing/2, ysled_rail_spacing/2]) {
translate([-xdiff, ypos, 0])
xsled_slider();
translate([xdiff, ypos, 0])
rotate([0,0,180])
xsled_slider();
}
translate([0, 0, frame_size])
xsled_frame();
}
union() {
frame();
@@ -70,13 +84,18 @@ union() {
}
translate([frame_size / 2 + corner_size / 2, cur_ypos, 0]) {
ysled(associated_parts = true);
ysled_slider(spread = sled_ysize, associated_parts = true);
translate([xsize - frame_size - corner_size, 0, 0])
rotate([0, 180, 0])
ysled(associated_parts = true);
ysled_slider(spread = sled_ysize, associated_parts = true);
ysled_rails();
translate([cur_xpos, 0, 0])
xsled();
}
//translate([0, 0, -1000]) cube(2000, center=true);
//translate([0, 0, -1000]) cube(2000, center=true);

View File

@@ -13,6 +13,11 @@ rail_diam = 8;
ysled_extralen = frame_size; // on each end
// calculated
ysled_rail_spacing = (sled_ysize);
// Generates bar of length $l, centered on origin extending in +Z
@@ -70,8 +75,8 @@ module rail_holder(in_x) {
}
// centered on
module ysled(spread = 6*inch, associated_parts = false) {
sled_len = spread + ysled_extralen * 2;
module ysled_slider(spread, associated_parts = false) {
sled_len = spread + frame_size;
sled_height = frame_size;
colorize("green")
@@ -137,3 +142,74 @@ module brcorner() {
rail_holder(false);
}
}
module xsled_slider() {
slider_len = bushing_len + 10;
screw_tab_len = 20;
screw_tab_thickness = 10;
render()
//translate([screw_tab_len, 0, 0])
difference() {
union() {
rotate([0, 90, 0]) {
cylinder(d = frame_size, h = slider_len);
}
translate([0, -frame_size/2, 0])
cube([slider_len, frame_size, frame_size / 2]);
*translate([-screw_tab_len, -frame_size/2, frame_size/2])
cube([screw_tab_len * 2 + slider_len, frame_size, screw_tab_thickness]);
}
rotate([0, 90, 0]) {
cylinder(d = bushing_od, h = bushing_len);
cylinder(d = rail_diam * 1.1, slider_len * 2);
}
}
rotate([0, 90, 0])
*bushing();
}
module sled_cornera() {
corner_base();
translate([-frame_size/2 - wall_thickness, 0, -frame_size])
xsled_slider();
}
module sled_cornerb() {
corner_base();
rotate([0,0,90])
translate([-frame_size/2 - wall_thickness, 0, -frame_size])
xsled_slider();
}
module xsled_frame() {
translate([-sled_xsize / 2 + corner_offset, -ysled_rail_spacing/2, 0])
rotate([0, 90, 0])
tslot(sled_xsize - corner_offset * 2);
translate([-sled_xsize / 2 + corner_offset, ysled_rail_spacing/2, 0])
rotate([0, 90, 0])
tslot(sled_xsize - corner_offset * 2);
translate([-sled_xsize / 2, -ysled_rail_spacing/2 + corner_offset, 0])
rotate([-90, 0, 0])
tslot(sled_ysize - corner_offset * 2);
translate([sled_xsize / 2, -ysled_rail_spacing/2 + corner_offset, 0])
rotate([-90, 0, 0])
tslot(sled_ysize - corner_offset * 2);
translate([-sled_xsize / 2, -sled_ysize / 2, 0])
sled_cornera();
translate([sled_xsize / 2, sled_ysize / 2, 0])
rotate([0,0,180])
sled_cornera();
translate([sled_xsize / 2, -sled_ysize / 2, 0])
rotate([0,0,90])
sled_cornerb();
translate([-sled_xsize / 2, sled_ysize / 2, 0])
rotate([0,0,270])
sled_cornerb();
}