Moved all the mechanical stuff into a subdirectory
This commit is contained in:
88
mechanical/assembly.scad
Normal file
88
mechanical/assembly.scad
Normal file
@@ -0,0 +1,88 @@
|
||||
include <constants.scad>
|
||||
include <parts.scad>
|
||||
|
||||
module frame() {
|
||||
translate([ corner_offset, 0, 0 ]) rotate([ 0, 90, 0 ])
|
||||
tslot(xsize - 2 * corner_offset);
|
||||
|
||||
translate([ 0, corner_offset, 0 ]) rotate([ -90, 0, 0 ])
|
||||
tslot(ysize - 2 * corner_offset - rail_holder_width + wall_thickness);
|
||||
|
||||
translate([ frame_size/2 + rail_holder_width, ysize, 0 ]) rotate([ 0, 90, 0 ])
|
||||
tslot(xsize - frame_size - rail_holder_width * 2);
|
||||
|
||||
translate([ xsize, corner_offset, 0 ]) rotate([ -90, 0, 0 ])
|
||||
tslot(ysize - 2 * corner_offset - rail_holder_width + wall_thickness);
|
||||
}
|
||||
module corners() {
|
||||
translate([ 0, 0 ]) flcorner();
|
||||
translate([ xsize, 0, 0 ]) frcorner();
|
||||
translate([ xsize, ysize, 0 ]) brcorner();
|
||||
translate([ 0, ysize, 0 ]) blcorner();
|
||||
}
|
||||
|
||||
module rails() {
|
||||
frame_offset = yrail_offset;
|
||||
colorize(stock_color) {
|
||||
for (xpos = [ frame_offset, xsize - frame_offset ]) {
|
||||
rail_len = ysize - corner_offset * 2;
|
||||
bom_item(printable = false,
|
||||
label = str("steel_bar(d=8mm, len=", rail_len, "mm)"));
|
||||
translate([ xpos, frame_size / 2 + wall_thickness ]) rotate([ -90, 0, 0 ])
|
||||
cylinder(d = rail_diam, h = ysize - corner_offset * 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module ysled_rails() {
|
||||
yoff = ysled_rail_spacing / 2;
|
||||
rail_len = xsize - frame_size - yrail_offset * 2;
|
||||
colorize(stock_color) for (ypos = [ -yoff, yoff ]) {
|
||||
bom_item(printable = false,
|
||||
label = str("steel_bar(d=8mm, len=", rail_len, "mm)"));
|
||||
translate([ frame_size / 2, ypos, 0 ]) rotate([ 0, 90, 0 ])
|
||||
cylinder(d = rail_diam, h = rail_len);
|
||||
}
|
||||
}
|
||||
|
||||
module xsled() {
|
||||
xdiff = sled_xsize / 2 + frame_size / 2;
|
||||
|
||||
translate([ 0, 0, frame_size ]) xsled_frame();
|
||||
}
|
||||
|
||||
module moving_parts(xpos = cur_xpos, ypos = cur_ypos) {
|
||||
translate([ yrail_offset, cur_ypos, 0 ]) ysled_slider();
|
||||
|
||||
translate([ xsize - yrail_offset, cur_ypos, 0 ]) rotate([ 180, 180, 0 ])
|
||||
ysled_slider(is_left = false);
|
||||
|
||||
translate([ yrail_offset, cur_ypos, 0 ]) if ($preview) ysled_rails();
|
||||
|
||||
translate([ cur_xpos, cur_ypos, 0 ]) {
|
||||
// xsled();
|
||||
xsled2();
|
||||
}
|
||||
}
|
||||
|
||||
union() {
|
||||
if ($preview)
|
||||
frame();
|
||||
if ($preview)
|
||||
rails();
|
||||
corners();
|
||||
moving_parts();
|
||||
}
|
||||
|
||||
*union() {
|
||||
rails();
|
||||
frame();
|
||||
intersection() {
|
||||
union() {
|
||||
corners();
|
||||
}
|
||||
translate([-1000, - 1000, -1000])
|
||||
cube([2000, 2000, 1000]);
|
||||
}
|
||||
}
|
||||
*xsled2();
|
||||
Reference in New Issue
Block a user