TOPdesk/assembly.scad

81 lines
1.7 KiB
OpenSCAD

// Variables
include <config.scad>
// Reusables
use <modules.scad>
// Major components (i.e. tops and subs)
use <tops/main.scad>
use <tops/side.scad>
use <subs/base.scad>
// Assembly
top_main();
/* --- */
// sidetable
translate([MAIN_WIDTH, MAIN_DEPTH, 0]){
rotate([0, 0, -90]){
// ↑ transforms for the entire sidetable
top_side();
}
}
/* --- */
// spacers connecting main desk and sidetable
main_to_side = LEG_OFFSET_X + LEG_OFFSET_Y;
translate([
MAIN_WIDTH - LEG_OFFSET_X,
LEG_OFFSET_Y,
_FOOT_HEIGHT - LEG_BASE_THICKNESS - SPACER_CUFF_HEIGHT * 2
]) {
rotate([0, 0, -90]){
spacer(main_to_side);
}
}
translate([
MAIN_WIDTH - LEG_OFFSET_X,
_FOOT_OFFSET_Y,
_FOOT_HEIGHT - LEG_BASE_THICKNESS - SPACER_CUFF_HEIGHT * 2
]) {
rotate([0, 0, -90]){
spacer(main_to_side);
}
}
// main plate grid calculation
grid_size_x_mm = MAIN_WIDTH - LEG_OFFSET_X * 2 - LEG_BASE_DIAMETER;
grid_size_y_mm = MAIN_DEPTH - _CABLE_TRAY_DEPTH - MODULE_RAIL_MARGIN_SCREW;
grid_size_x_gridunits = grid_elements(grid_size_x_mm, 1);
grid_size_y_gridunits = grid_elements(grid_size_y_mm, 1);
for(xy = grid(grid_size_x_gridunits, grid_size_y_gridunits, 1, 1)){
translate([
LEG_OFFSET_X + LEG_BASE_DIAMETER,
MODULE_RAIL_MARGIN_SCREW,
MAIN_HEIGHT - MODULE_SCREW_LENGTH
]) {
translate(xy) { screw_hole(); }
}
}
// rack module placeholder
translate([
200,
MODULE_RAIL_MARGIN_SCREW,
MAIN_HEIGHT - TOP_THICKNESS
]) {
rack_width_gridunits = grid_units_length(550);
rack_depth_gridunits = grid_units_length(650);
module_base(rack_width_gridunits, rack_depth_gridunits, 600, 3);
module_rail_set(rack_width_gridunits, rack_depth_gridunits, 3);
}