Added start at xsled
This commit is contained in:
@@ -2,9 +2,10 @@ use_colors = true;
|
|||||||
|
|
||||||
xsize = 500;
|
xsize = 500;
|
||||||
ysize = 400;
|
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;
|
cur_ypos = 200;
|
||||||
|
|
||||||
include <parts.scad>;
|
include <parts.scad>;
|
||||||
@@ -53,7 +54,7 @@ module rails() {
|
|||||||
|
|
||||||
module ysled_rails() {
|
module ysled_rails() {
|
||||||
frame_offset = frame_size + corner_size / 2;
|
frame_offset = frame_size + corner_size / 2;
|
||||||
yoff = (sled_size + ysled_extralen * 2 - frame_size) / 2;
|
yoff = ysled_rail_spacing / 2;
|
||||||
colorize(stock_color)
|
colorize(stock_color)
|
||||||
for (ypos = [-yoff, yoff])
|
for (ypos = [-yoff, yoff])
|
||||||
translate([frame_size / 2, ypos, 0])
|
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() {
|
union() {
|
||||||
frame();
|
frame();
|
||||||
@@ -70,13 +84,18 @@ union() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
translate([frame_size / 2 + corner_size / 2, cur_ypos, 0]) {
|
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])
|
translate([xsize - frame_size - corner_size, 0, 0])
|
||||||
rotate([0, 180, 0])
|
rotate([0, 180, 0])
|
||||||
ysled(associated_parts = true);
|
ysled_slider(spread = sled_ysize, associated_parts = true);
|
||||||
ysled_rails();
|
ysled_rails();
|
||||||
|
|
||||||
|
translate([cur_xpos, 0, 0])
|
||||||
|
xsled();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//translate([0, 0, -1000]) cube(2000, center=true);
|
//translate([0, 0, -1000]) cube(2000, center=true);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
80
parts.scad
80
parts.scad
@@ -13,6 +13,11 @@ rail_diam = 8;
|
|||||||
|
|
||||||
ysled_extralen = frame_size; // on each end
|
ysled_extralen = frame_size; // on each end
|
||||||
|
|
||||||
|
// calculated
|
||||||
|
|
||||||
|
ysled_rail_spacing = (sled_ysize);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Generates bar of length $l, centered on origin extending in +Z
|
// Generates bar of length $l, centered on origin extending in +Z
|
||||||
@@ -70,8 +75,8 @@ module rail_holder(in_x) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// centered on
|
// centered on
|
||||||
module ysled(spread = 6*inch, associated_parts = false) {
|
module ysled_slider(spread, associated_parts = false) {
|
||||||
sled_len = spread + ysled_extralen * 2;
|
sled_len = spread + frame_size;
|
||||||
sled_height = frame_size;
|
sled_height = frame_size;
|
||||||
|
|
||||||
colorize("green")
|
colorize("green")
|
||||||
@@ -137,3 +142,74 @@ module brcorner() {
|
|||||||
rail_holder(false);
|
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();
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user