Added start at xsled
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
|
||||
80
parts.scad
80
parts.scad
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user