Finished designing new xsled
This commit is contained in:
@@ -1,22 +1,4 @@
|
|||||||
use_colors = true;
|
include <constants.scad>;
|
||||||
|
|
||||||
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 <parts.scad>;
|
include <parts.scad>;
|
||||||
|
|
||||||
csize = 15;
|
csize = 15;
|
||||||
|
|||||||
18
constants.scad
Normal file
18
constants.scad
Normal 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;
|
||||||
93
parts.scad
93
parts.scad
@@ -1,4 +1,5 @@
|
|||||||
include <units.inc>;
|
include <units.inc>;
|
||||||
|
include <constants.scad>;
|
||||||
include <stock_parts.scad>;
|
include <stock_parts.scad>;
|
||||||
|
|
||||||
frame_size = 20;
|
frame_size = 20;
|
||||||
@@ -269,6 +270,29 @@ module xsled_frame() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module xsled2() {
|
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],
|
for (xsign = [1,-1],
|
||||||
ysign = [1,-1]) {
|
ysign = [1,-1]) {
|
||||||
translate([sled_xsize / 2 * xsign,
|
translate([sled_xsize / 2 * xsign,
|
||||||
@@ -276,11 +300,72 @@ module xsled2() {
|
|||||||
0])
|
0])
|
||||||
rotate([0, -90 * xsign, 0]) {
|
rotate([0, -90 * xsign, 0]) {
|
||||||
difference() {
|
difference() {
|
||||||
cylinder(d = bushing_od + wall_thickness, h = bushing_len + wall_thickness);
|
union() {
|
||||||
cylinder(d = rail_diam + 1 , h = (bushing_len + wall_thickness + 1) * 2,
|
cylinder(d = tab_thickness, h = tab_len);
|
||||||
center = true);
|
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();
|
||||||
|
|||||||
Reference in New Issue
Block a user