Finished designing new xsled

This commit is contained in:
2022-02-23 22:17:35 +01:00
parent 5d4c478ee4
commit 64d38acfb1
3 changed files with 108 additions and 23 deletions

View File

@@ -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 <constants.scad>;
include <parts.scad>;
csize = 15;

18
constants.scad Normal file
View File

@@ -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;

View File

@@ -1,4 +1,5 @@
include <units.inc>;
include <constants.scad>;
include <stock_parts.scad>;
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();