From 39a0d379d1204c24a9a74873ad1f22e98289a8c5 Mon Sep 17 00:00:00 2001 From: TQ Hirsch Date: Tue, 22 Feb 2022 23:37:46 +0100 Subject: [PATCH] Added start at xsled --- assembly.scad | 31 ++++++++++++++++---- parts.scad | 80 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 103 insertions(+), 8 deletions(-) diff --git a/assembly.scad b/assembly.scad index f2663a3..c65e47d 100644 --- a/assembly.scad +++ b/assembly.scad @@ -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 ; @@ -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); diff --git a/parts.scad b/parts.scad index 1e0fd72..5071b92 100644 --- a/parts.scad +++ b/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(); + +}