From 64d38acfb1b07217b104c3f750f7d4f4b6af4e0d Mon Sep 17 00:00:00 2001 From: TQ Hirsch Date: Wed, 23 Feb 2022 22:17:35 +0100 Subject: [PATCH] Finished designing new xsled --- assembly.scad | 20 +---------- constants.scad | 18 ++++++++++ parts.scad | 93 +++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 108 insertions(+), 23 deletions(-) create mode 100644 constants.scad diff --git a/assembly.scad b/assembly.scad index d2fddd1..9bb06d2 100644 --- a/assembly.scad +++ b/assembly.scad @@ -1,22 +1,4 @@ -use_colors = true; - -xsize = 450; -ysize = 400; -sled_ysize = 7 * 25.4; -sled_xsize = 8 * 25.4; - -xmin = 155; -ymin = 140; -// 130..320 -cur_xpos = 155; -// 140..260 -cur_ypos = 140; - -echo(str("Range = ", [ xsize - xmin * 2, ysize - ymin*2 ])); - -$fs = 1.5; -$include_substock = true; - +include ; include ; csize = 15; diff --git a/constants.scad b/constants.scad new file mode 100644 index 0000000..f8c5705 --- /dev/null +++ b/constants.scad @@ -0,0 +1,18 @@ +use_colors = true; + +xsize = 450; +ysize = 400; +sled_ysize = 7 * 25.4; +sled_xsize = 8 * 25.4; + +xmin = 155; +ymin = 140; +// 130..320 +cur_xpos = 155; +// 140..260 +cur_ypos = 140; + +echo(str("Range = ", [ xsize - xmin * 2, ysize - ymin*2 ])); + +$fs = 1.5; +$include_substock = true; diff --git a/parts.scad b/parts.scad index 2dc0d08..21b4c2c 100644 --- a/parts.scad +++ b/parts.scad @@ -1,4 +1,5 @@ include ; +include ; include ; frame_size = 20; @@ -269,6 +270,29 @@ module xsled_frame() { } module xsled2() { + + + tab_len = bushing_len * 2; + tab_thickness = bushing_od + wall_thickness * 2; + glass_thickness = 3; // TODO: Update when an actual size is available + + inner_ysize = sled_ysize - tab_thickness; + + lip_depth = tab_thickness - wall_thickness - glass_thickness; + lip_width = glass_thickness; + + glass_holder_points = [ + [0,0], + [lip_depth + wall_thickness, 0], + [lip_depth + wall_thickness, wall_thickness + 0.5], + [lip_depth, wall_thickness + 0.5], + [lip_depth, wall_thickness + glass_thickness], + [lip_depth - glass_thickness, wall_thickness + glass_thickness], + [lip_depth - glass_thickness, wall_thickness + glass_thickness*2], + [0, tab_thickness] + ]; + + for (xsign = [1,-1], ysign = [1,-1]) { translate([sled_xsize / 2 * xsign, @@ -276,11 +300,72 @@ module xsled2() { 0]) rotate([0, -90 * xsign, 0]) { difference() { - cylinder(d = bushing_od + wall_thickness, h = bushing_len + wall_thickness); - cylinder(d = rail_diam + 1 , h = (bushing_len + wall_thickness + 1) * 2, - center = true); + union() { + cylinder(d = tab_thickness, h = tab_len); + translate([-tab_thickness/2, + ysign > 0 ? -tab_thickness/2: 0, + 0]) + cube([tab_thickness, tab_thickness/2, tab_len]); + } + translate([0,0,-0.5]) { + cylinder(d = bushing_od, h = bushing_len+0.5); + cylinder(d = rail_diam * 1.1 , h = tab_len + 1); + } } - bushing(); + if ($preview) { + bushing(); + } + } + + //cube([sled_xsize, inner_ysize, tab_thickness/2], center=true); + difference() { + union() { + translate([-sled_xsize/2, -inner_ysize/2, -tab_thickness/2]) + rotate([0, 90, 0]) + rotate([0,0,90]) + linear_extrude(sled_xsize) + polygon(glass_holder_points); + + translate([sled_xsize/2, inner_ysize/2, -tab_thickness/2]) + rotate([0, 90, 180]) + rotate([0,0,90]) + linear_extrude(sled_xsize) + polygon(glass_holder_points); + + translate([sled_xsize/2, -inner_ysize/2, -tab_thickness/2]) + rotate([0, 90, 90]) + rotate([0,0,90]) + linear_extrude(inner_ysize) + polygon(glass_holder_points); + + translate([-sled_xsize/2, inner_ysize/2, -tab_thickness/2]) + rotate([0, 90, -90]) + rotate([0,0,90]) + linear_extrude(inner_ysize) + polygon(glass_holder_points); + } + + translate([-10, inner_ysize/2 - 1 - lip_depth + glass_thickness, -tab_thickness/2 + wall_thickness + glass_thickness]) + cube([20, glass_thickness + 1, 30]); } } + + color("#fff3") + if ($preview) { + // draw glass sheets + translate([0,0,-tab_thickness/2 + wall_thickness + glass_thickness/2]) + cube([sled_xsize - lip_depth*2, inner_ysize - lip_depth*2, glass_thickness], + center=true); + translate([0,0,-tab_thickness/2 + wall_thickness + 3*glass_thickness/2]) + cube( + [ + sled_xsize - lip_depth*2 + glass_thickness*2, + inner_ysize - lip_depth*2 + glass_thickness*2, + glass_thickness + ], + center=true); + + } } +// render() +//xsled2();