Compare commits
2 Commits
c575db1154
...
73bc07de0e
Author | SHA1 | Date | |
---|---|---|---|
73bc07de0e | |||
fc0644f995 |
@ -58,23 +58,24 @@ 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,
|
||||
FRAME_MAJOR_STRUT_WIDTH + (MODULE_RAIL_BASE_WIDTH / 2),
|
||||
MODULE_RAIL_MARGIN_SCREW,
|
||||
MAIN_HEIGHT - MODULE_SCREW_LENGTH
|
||||
]) {
|
||||
translate(xy) { screw_hole(); }
|
||||
//translate(xy) { screw_hole(); }
|
||||
}
|
||||
}
|
||||
|
||||
// rack module placeholder
|
||||
translate([
|
||||
200,
|
||||
FRAME_MAJOR_STRUT_WIDTH + (MODULE_RAIL_BASE_WIDTH / 2),
|
||||
MODULE_RAIL_MARGIN_SCREW,
|
||||
MAIN_HEIGHT - TOP_THICKNESS
|
||||
_BELOW_FRAME
|
||||
]) {
|
||||
|
||||
rack_width_gridunits = grid_units_length(550);
|
||||
rack_depth_gridunits = grid_units_length(650);
|
||||
//rack_depth_gridunits = grid_units_length(650);
|
||||
rack_depth_gridunits = grid_units_length(600);
|
||||
module_base(rack_width_gridunits, rack_depth_gridunits, 600, 3);
|
||||
module_rail_set(rack_width_gridunits, rack_depth_gridunits, 3);
|
||||
}
|
||||
|
41
config.scad
41
config.scad
@ -19,16 +19,22 @@ COLOR_SEMANTIC_LOAD_BEARING = [1, 0.5, 0];
|
||||
|
||||
// All measurements in mm
|
||||
// Outer measurements
|
||||
MAIN_WIDTH = 1800;
|
||||
MAIN_HEIGHT = 700;
|
||||
MAIN_WIDTH = 1400;
|
||||
MAIN_HEIGHT = 800;
|
||||
MAIN_DEPTH = 900;
|
||||
|
||||
TOP_THICKNESS = 25;
|
||||
|
||||
BACKPLATE_THICKNESS = 15;
|
||||
|
||||
STAND_THICKNESS = 60;
|
||||
STAND_HEIGHT = 500;
|
||||
STAND_DEPTH = 150;
|
||||
STAND_THICKNESS = 20;
|
||||
STAND_DEPTH = 200;
|
||||
|
||||
FRAME_THICKNESS = STAND_THICKNESS; // safe to change independently of STAND_THICKNESS
|
||||
//FRAME_MAJOR_STRUT_WIDTH = STAND_DEPTH; // safe to change independently of STAND_DEPTH, but MUST fit legs! TODO: Sanity check!
|
||||
FRAME_MAJOR_STRUT_WIDTH = 80; // safe to change independently of STAND_DEPTH, but MUST fit legs! TODO: Sanity check!
|
||||
FRAME_MINOR_STRUT_WIDTH = 20;
|
||||
|
||||
CABLE_TRAY_HEIGHT = 150;
|
||||
CABLE_TRAY_LIP = 50; // backplate -> |_. <- lip
|
||||
@ -55,11 +61,9 @@ LEG_DIAMETER = 50;
|
||||
LEG_BASE_DIAMETER = 100;
|
||||
LEG_BASE_THICKNESS = 10;
|
||||
// offset of the legs' *center* not how far their bases are from edges!
|
||||
LEG_OFFSET_X = 100;
|
||||
LEG_OFFSET_Y = LEG_OFFSET_X;
|
||||
|
||||
SIDETABLE_DEPTH = MAIN_DEPTH;
|
||||
SIDETABLE_WIDTH = MAIN_DEPTH * 2;
|
||||
SIDETABLE_DEPTH = MAIN_DEPTH; // safe to change independently of MAIN_DEPTH but can lead to module incompatibilities
|
||||
SIDETABLE_WIDTH = MAIN_DEPTH * 2; // safe to change independently of MAIN_DEPTH
|
||||
|
||||
// Stuff from subs/base.scad
|
||||
GRID_SIZE = 50;
|
||||
@ -75,7 +79,6 @@ MODULE_RAIL_BASE_WIDTH = 50;
|
||||
MODULE_RAIL_MARGIN_SIDE = 5;
|
||||
MODULE_RAIL_MARGIN_TOP = 10; // MODULE_THICKNESS;
|
||||
MODULE_RAIL_MARGIN_SCREW = GRID_SIZE;
|
||||
_MODULE_RAIL_OFFSET = MODULE_RAIL_BASE_WIDTH / 2 + MODULE_RAIL_MARGIN_SIDE; // offset on x axis for modules cause by size of rail
|
||||
|
||||
MODULE_SCREW_LENGTH = 120; // length WITHOUT the screw head
|
||||
SCREW_DIAMETER = 8;
|
||||
@ -87,15 +90,27 @@ BARREL_NUT_DIAMETER = 15;
|
||||
/* Calculated values
|
||||
* These are considered "private" variables and MUST NOT be modified!
|
||||
*/
|
||||
|
||||
_BACKPLATE_HEIGHT = STAND_HEIGHT - STAND_THICKNESS;
|
||||
|
||||
// helper vars for vertical dimensions
|
||||
_BELOW_TOP = MAIN_HEIGHT - TOP_THICKNESS;
|
||||
_BELOW_FRAME = _BELOW_TOP - FRAME_THICKNESS;
|
||||
_BELOW_STAND = _BELOW_FRAME - STAND_HEIGHT;
|
||||
|
||||
// calculated element dimensions
|
||||
_BACKPLATE_HEIGHT = FRAME_THICKNESS + STAND_HEIGHT - STAND_THICKNESS;
|
||||
|
||||
_CABLE_TRAY_WIDTH = MAIN_WIDTH - 2 * STAND_THICKNESS;
|
||||
_CABLE_TRAY_DEPTH = STAND_DEPTH - CABLE_TRAY_THICKNESS;
|
||||
_CABLE_TRAY_OFFSET_Y = MAIN_HEIGHT - TOP_THICKNESS - CABLE_TRAY_HEIGHT;
|
||||
|
||||
_LEG_OFFSET = FRAME_MAJOR_STRUT_WIDTH / 2;
|
||||
|
||||
_LEG_HEIGHT = MAIN_HEIGHT - TOP_THICKNESS;
|
||||
_FOOT_HEIGHT = MAIN_HEIGHT - TOP_THICKNESS - STAND_HEIGHT;
|
||||
LEG_OFFSET_X = _LEG_OFFSET;
|
||||
LEG_OFFSET_Y = _LEG_OFFSET;
|
||||
|
||||
_LEG_HEIGHT = _BELOW_FRAME;
|
||||
_FOOT_HEIGHT = _BELOW_STAND;
|
||||
_FOOT_OFFSET_Y = MAIN_DEPTH - ((STAND_DEPTH + BACKPLATE_THICKNESS) / 2);
|
||||
_LEG_TO_FOOT = _FOOT_OFFSET_Y - LEG_OFFSET_Y;
|
||||
|
||||
_MODULE_RAIL_OFFSET = MODULE_RAIL_BASE_WIDTH / 2 + MODULE_RAIL_MARGIN_SIDE; // offset on x axis for modules cause by size of rail
|
||||
|
219
fiddling.scad
Normal file
219
fiddling.scad
Normal file
@ -0,0 +1,219 @@
|
||||
$vpf = 65;
|
||||
|
||||
// all measurements in mm
|
||||
LAYER_SPACE = 0; // space between sandwich layers in rendering
|
||||
LAYER_COUNT = 4; // used for misc calculations, updated by hands if you add/remove layers from the sandwich
|
||||
GRID_SIZE = 50;
|
||||
RACKUNIT = 45;
|
||||
BOARD_THICKNESS = 16;
|
||||
SANDWICH_HEIGHT = LAYER_COUNT * BOARD_THICKNESS;
|
||||
|
||||
DESK_WIDTH = 1400;
|
||||
DESK_DEPTH = 800;
|
||||
DESK_TOP_OFFSET = 10; // offset between top desk plate and stand, so cables can be fit under fully mounted STAND_TOP_RACKUNITS
|
||||
|
||||
FRAME = 80;
|
||||
STRUT_DEPTH = 40;
|
||||
STRUT_INTERVAL = 100; // must be multiple of 50 (i.e. grid size) to align with grid
|
||||
STRUT_OFFSET = 50 + (STRUT_DEPTH / 2);
|
||||
|
||||
MAIN_SUPPORT_DEPTH = 600;
|
||||
|
||||
STAND_DEPTH_INNER = 200;
|
||||
STAND_DEPTH_OUTER = STAND_DEPTH_INNER + BOARD_THICKNESS;
|
||||
STAND_WIDTH = DESK_WIDTH + ( 2 * BOARD_THICKNESS );
|
||||
STAND_TOP_RACKUNITS = 2;
|
||||
STAND_BOTTOM_RACKUNITS = 4;
|
||||
STAND_BELOW_SANDWICH = 550; // measurements 61.5-62cm leg-to-bottom-pipe, 7cm foot-to-bottom-pipe
|
||||
STAND_ABOVE_SANDWICH = RACKUNIT * STAND_TOP_RACKUNITS; // INNER height above the sandwich, i.e. how big a thing you can screw into the opening
|
||||
STAND_HEIGHT_INNER = STAND_BELOW_SANDWICH - BOARD_THICKNESS + SANDWICH_HEIGHT + STAND_ABOVE_SANDWICH;
|
||||
// ↑ bottom board, important to fit STAND_BELOW_SANDWICH *with* the bottom board
|
||||
STAND_HEIGHT_OUTER = STAND_HEIGHT_INNER + ( 2 * BOARD_THICKNESS );
|
||||
|
||||
|
||||
function layer_y ( layer ) = layer * (BOARD_THICKNESS + LAYER_SPACE);
|
||||
|
||||
module board(width, length) {
|
||||
/*echo("----------------------------------------");
|
||||
echo("Board:");
|
||||
echo(width=width, length=length);
|
||||
echo("----------------------------------------");*/
|
||||
echo(width, " x ", length);
|
||||
cube([width, length, BOARD_THICKNESS]);
|
||||
}
|
||||
|
||||
module board_side(depth, height) {
|
||||
/*echo("----------------------------------------");
|
||||
echo("Board (side):");
|
||||
echo(depth=depth, height=height);
|
||||
echo("----------------------------------------");*/
|
||||
echo(depth, " x ", height);
|
||||
cube([BOARD_THICKNESS, depth, height]);
|
||||
}
|
||||
|
||||
module board_back(width, height) {
|
||||
/*echo("----------------------------------------");
|
||||
echo("Board (back):");
|
||||
echo(width=width, height=height);
|
||||
echo("----------------------------------------");*/
|
||||
echo(width, " x ", height);
|
||||
cube([width, BOARD_THICKNESS, height]);
|
||||
}
|
||||
|
||||
// layer 0
|
||||
board(FRAME, DESK_DEPTH);
|
||||
translate([DESK_WIDTH - FRAME, 0, 0]){
|
||||
board(FRAME, DESK_DEPTH);
|
||||
}
|
||||
|
||||
// layer 1
|
||||
translate([0, 0, layer_y(1)]){
|
||||
|
||||
// bottom board with grid
|
||||
board(DESK_WIDTH, DESK_DEPTH - STAND_DEPTH_INNER);
|
||||
|
||||
// small left/right frame pieces to make sandwhich sides seamless (i.e. no holes in vertical space)
|
||||
translate([0, DESK_DEPTH - STAND_DEPTH_INNER]){
|
||||
color("orange"){
|
||||
board(FRAME, STAND_DEPTH_INNER);
|
||||
translate([DESK_WIDTH - FRAME, 0, 0]){
|
||||
board(FRAME, STAND_DEPTH_INNER);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// layer 2
|
||||
translate([0, 0, layer_y(2)]){
|
||||
|
||||
// main left/right frame pieces
|
||||
board(FRAME, DESK_DEPTH);
|
||||
translate([DESK_WIDTH - FRAME, 0, 0]){
|
||||
board(FRAME, DESK_DEPTH);
|
||||
}
|
||||
|
||||
// struts
|
||||
translate([FRAME / 2, STRUT_OFFSET]) {
|
||||
color("orange"){
|
||||
for (offset=[0:STRUT_INTERVAL:DESK_DEPTH - STAND_DEPTH_INNER - STRUT_OFFSET - STRUT_DEPTH]) {
|
||||
translate([0, offset]){
|
||||
board(DESK_WIDTH - FRAME, STRUT_DEPTH);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// layer 3
|
||||
translate([0, 0, layer_y(3)]){
|
||||
|
||||
// the actually usable deskTOP
|
||||
board(DESK_WIDTH, DESK_DEPTH - STAND_DEPTH_INNER - DESK_TOP_OFFSET);
|
||||
|
||||
// small left/right frame pieces to make sandwhich sides seamless (i.e. no holes in vertical space)
|
||||
translate([0, DESK_DEPTH - STAND_DEPTH_INNER - DESK_TOP_OFFSET]){
|
||||
color("orange"){
|
||||
board(FRAME, STAND_DEPTH_INNER + DESK_TOP_OFFSET);
|
||||
translate([DESK_WIDTH - FRAME, 0]){
|
||||
board(FRAME, STAND_DEPTH_INNER + DESK_TOP_OFFSET);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// stand, only if LAYER_SPACE is 0
|
||||
if (LAYER_SPACE == 0) {
|
||||
|
||||
translate([0, DESK_DEPTH - STAND_DEPTH_INNER]){
|
||||
|
||||
// stand top piece
|
||||
translate([-BOARD_THICKNESS, 0, SANDWICH_HEIGHT + STAND_ABOVE_SANDWICH]){
|
||||
board(STAND_WIDTH, STAND_DEPTH_OUTER);
|
||||
}
|
||||
|
||||
// tray top supports
|
||||
translate([0, 0, SANDWICH_HEIGHT]){
|
||||
color("orange"){
|
||||
|
||||
translate([FRAME - BOARD_THICKNESS, 0]){
|
||||
board_side(STAND_DEPTH_INNER, STAND_ABOVE_SANDWICH);
|
||||
}
|
||||
|
||||
translate([DESK_WIDTH - FRAME, 0]){
|
||||
board_side(STAND_DEPTH_INNER, STAND_ABOVE_SANDWICH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// stand backplate
|
||||
translate([-BOARD_THICKNESS, STAND_DEPTH_INNER, -STAND_BELOW_SANDWICH + BOARD_THICKNESS]){
|
||||
board_back(STAND_WIDTH, STAND_HEIGHT_INNER);
|
||||
}
|
||||
|
||||
// alignment for bottom of stand
|
||||
translate([0, 0, -STAND_BELOW_SANDWICH]){
|
||||
|
||||
// stand bottom piece
|
||||
translate([-BOARD_THICKNESS, 0]){
|
||||
board(STAND_WIDTH, STAND_DEPTH_OUTER);
|
||||
}
|
||||
|
||||
translate([0, 0, BOARD_THICKNESS]){
|
||||
// stand sidepieces
|
||||
translate([-BOARD_THICKNESS, 0]){
|
||||
board_side(STAND_DEPTH_INNER, STAND_HEIGHT_INNER);
|
||||
}
|
||||
|
||||
translate([DESK_WIDTH, 0]){
|
||||
board_side(STAND_DEPTH_INNER, STAND_HEIGHT_INNER);
|
||||
}
|
||||
|
||||
// main support, triangular
|
||||
color("red"){
|
||||
translate([DESK_WIDTH / 2, STAND_DEPTH_INNER - MAIN_SUPPORT_DEPTH]){
|
||||
|
||||
// left
|
||||
translate([-BOARD_THICKNESS, 0]){
|
||||
board_side(MAIN_SUPPORT_DEPTH, STAND_BELOW_SANDWICH);
|
||||
}
|
||||
|
||||
board_side(MAIN_SUPPORT_DEPTH, STAND_BELOW_SANDWICH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// aligned to surface of tray
|
||||
translate([0, 0, - ( STAND_BOTTOM_RACKUNITS * RACKUNIT )]){
|
||||
|
||||
// tray bottom
|
||||
translate([0, 0, -BOARD_THICKNESS]){
|
||||
board(DESK_WIDTH, STAND_DEPTH_INNER);
|
||||
}
|
||||
|
||||
// tray bottom supports (vertical stress transfer for backside of frame
|
||||
color("orange"){
|
||||
|
||||
translate([FRAME - BOARD_THICKNESS, 0]){
|
||||
board_side(STAND_DEPTH_INNER, (STAND_BOTTOM_RACKUNITS * RACKUNIT));
|
||||
}
|
||||
|
||||
translate([DESK_WIDTH - FRAME, 0]){
|
||||
board_side(STAND_DEPTH_INNER, (STAND_BOTTOM_RACKUNITS * RACKUNIT));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// tray 10" montage piece left
|
||||
translate([FRAME + 254, 0]){
|
||||
board_side(STAND_DEPTH_INNER, (STAND_TOP_RACKUNITS * RACKUNIT) + SANDWICH_HEIGHT + (STAND_BOTTOM_RACKUNITS * RACKUNIT));
|
||||
}
|
||||
|
||||
// tray 10" montage piece right
|
||||
translate([DESK_WIDTH - BOARD_THICKNESS - FRAME - 254, 0]){
|
||||
board_side(STAND_DEPTH_INNER, (STAND_TOP_RACKUNITS * RACKUNIT) + SANDWICH_HEIGHT + (STAND_BOTTOM_RACKUNITS * RACKUNIT));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
111
modules.scad
111
modules.scad
@ -14,6 +14,43 @@ module leg(height) {
|
||||
}
|
||||
}
|
||||
|
||||
module backplate(width) {
|
||||
difference() {
|
||||
// main plate
|
||||
color(COLORSCHEME == "semantic" ? COLOR_SEMANTIC_LOAD_BEARING : COLOR_WOOD) {
|
||||
cube([width, _BACKPLATE_HEIGHT, BACKPLATE_THICKNESS]);
|
||||
}
|
||||
|
||||
translate([
|
||||
-CUTOUT_OVERCOMMIT,
|
||||
_BACKPLATE_HEIGHT - FRAME_THICKNESS,
|
||||
-CUTOUT_OVERCOMMIT
|
||||
]){
|
||||
color(COLOR_CUTOUT) {
|
||||
cube([
|
||||
FRAME_MAJOR_STRUT_WIDTH + CUTOUT_OVERCOMMIT,
|
||||
FRAME_THICKNESS,
|
||||
CUTOUT_OVERCOMMIT + BACKPLATE_THICKNESS + CUTOUT_OVERCOMMIT]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
translate([
|
||||
MAIN_WIDTH - FRAME_MAJOR_STRUT_WIDTH,
|
||||
_BACKPLATE_HEIGHT - FRAME_THICKNESS,
|
||||
-CUTOUT_OVERCOMMIT
|
||||
]){
|
||||
color(COLOR_CUTOUT) {
|
||||
cube([
|
||||
FRAME_MAJOR_STRUT_WIDTH + CUTOUT_OVERCOMMIT,
|
||||
FRAME_THICKNESS,
|
||||
CUTOUT_OVERCOMMIT + BACKPLATE_THICKNESS + CUTOUT_OVERCOMMIT]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module stand_side() {
|
||||
|
||||
difference() {
|
||||
@ -78,6 +115,80 @@ module spacer(length) {
|
||||
}
|
||||
}
|
||||
|
||||
module frame(width, depth) {
|
||||
|
||||
// frame left side
|
||||
frame_side(depth);
|
||||
|
||||
// frame right side
|
||||
translate([
|
||||
width - FRAME_MAJOR_STRUT_WIDTH,
|
||||
0
|
||||
]) {
|
||||
frame_side(depth);
|
||||
}
|
||||
|
||||
frame_front(width);
|
||||
}
|
||||
|
||||
module frame_side(depth) {
|
||||
|
||||
color(COLOR_STEEL) {
|
||||
difference () {
|
||||
cube([FRAME_MAJOR_STRUT_WIDTH, depth, FRAME_THICKNESS]);
|
||||
|
||||
translate([
|
||||
-CUTOUT_OVERCOMMIT,
|
||||
-CUTOUT_OVERCOMMIT,
|
||||
FRAME_THICKNESS / 2
|
||||
]) {
|
||||
cube([
|
||||
CUTOUT_OVERCOMMIT + FRAME_MAJOR_STRUT_WIDTH + CUTOUT_OVERCOMMIT,
|
||||
FRAME_MAJOR_STRUT_WIDTH + CUTOUT_OVERCOMMIT,
|
||||
FRAME_THICKNESS / 2 + CUTOUT_OVERCOMMIT
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module frame_front(width) {
|
||||
|
||||
color(COLOR_WOOD){
|
||||
difference () {
|
||||
cube([width, FRAME_MAJOR_STRUT_WIDTH, FRAME_THICKNESS]);
|
||||
|
||||
// left cutout
|
||||
translate ([
|
||||
-CUTOUT_OVERCOMMIT,
|
||||
-CUTOUT_OVERCOMMIT,
|
||||
-CUTOUT_OVERCOMMIT
|
||||
|
||||
]) {
|
||||
cube([
|
||||
CUTOUT_OVERCOMMIT + FRAME_MAJOR_STRUT_WIDTH,
|
||||
CUTOUT_OVERCOMMIT + FRAME_MAJOR_STRUT_WIDTH + CUTOUT_OVERCOMMIT,
|
||||
CUTOUT_OVERCOMMIT + FRAME_THICKNESS / 2
|
||||
]);
|
||||
}
|
||||
|
||||
// right cutout
|
||||
translate ([
|
||||
width - FRAME_MAJOR_STRUT_WIDTH,
|
||||
-CUTOUT_OVERCOMMIT,
|
||||
-CUTOUT_OVERCOMMIT
|
||||
|
||||
]) {
|
||||
cube([
|
||||
CUTOUT_OVERCOMMIT + FRAME_MAJOR_STRUT_WIDTH,
|
||||
CUTOUT_OVERCOMMIT + FRAME_MAJOR_STRUT_WIDTH + CUTOUT_OVERCOMMIT,
|
||||
CUTOUT_OVERCOMMIT + FRAME_THICKNESS / 2
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Stuff that's used for subs:
|
||||
|
||||
module screw() {
|
||||
|
@ -3,10 +3,11 @@ include <../modules.scad>
|
||||
|
||||
module top_main() {
|
||||
|
||||
// top plate
|
||||
translate([
|
||||
0,
|
||||
0,
|
||||
MAIN_HEIGHT - TOP_THICKNESS
|
||||
MAIN_HEIGHT - TOP_THICKNESS + 1000
|
||||
]){
|
||||
difference() {
|
||||
|
||||
@ -32,17 +33,14 @@ module top_main() {
|
||||
}
|
||||
}
|
||||
|
||||
// Backplate
|
||||
_BACKPLATE_HEIGHT = STAND_HEIGHT - STAND_THICKNESS;
|
||||
// backplate
|
||||
translate([
|
||||
0,
|
||||
MAIN_DEPTH,
|
||||
MAIN_HEIGHT - TOP_THICKNESS - _BACKPLATE_HEIGHT
|
||||
_BELOW_TOP - _BACKPLATE_HEIGHT
|
||||
]){
|
||||
rotate([90, 0, 0]){
|
||||
color(COLORSCHEME == "semantic" ? COLOR_SEMANTIC_LOAD_BEARING : COLOR_WOOD) {
|
||||
cube([MAIN_WIDTH, _BACKPLATE_HEIGHT, BACKPLATE_THICKNESS]);
|
||||
}
|
||||
backplate(MAIN_WIDTH);
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,7 +48,7 @@ module top_main() {
|
||||
translate([
|
||||
0,
|
||||
MAIN_DEPTH - BACKPLATE_THICKNESS - STAND_DEPTH,
|
||||
MAIN_HEIGHT - TOP_THICKNESS - STAND_HEIGHT
|
||||
_BELOW_STAND
|
||||
]){
|
||||
color(COLORSCHEME == "semantic" ? COLOR_SEMANTIC_LOAD_BEARING : COLOR_WOOD) {
|
||||
cube([MAIN_WIDTH, STAND_DEPTH + BACKPLATE_THICKNESS, STAND_THICKNESS]);
|
||||
@ -61,7 +59,7 @@ module top_main() {
|
||||
translate([
|
||||
0,
|
||||
MAIN_DEPTH - BACKPLATE_THICKNESS - STAND_DEPTH,
|
||||
MAIN_HEIGHT - TOP_THICKNESS - STAND_HEIGHT + STAND_THICKNESS
|
||||
_BELOW_STAND + STAND_THICKNESS
|
||||
]){
|
||||
rotate([90, 0, 90]){
|
||||
stand_side();
|
||||
@ -72,13 +70,22 @@ module top_main() {
|
||||
translate([
|
||||
MAIN_WIDTH - STAND_THICKNESS,
|
||||
MAIN_DEPTH - BACKPLATE_THICKNESS - STAND_DEPTH,
|
||||
MAIN_HEIGHT - TOP_THICKNESS - STAND_HEIGHT + STAND_THICKNESS
|
||||
_BELOW_STAND + STAND_THICKNESS
|
||||
]){
|
||||
rotate([90, 0, 90]){
|
||||
stand_side();
|
||||
}
|
||||
}
|
||||
|
||||
// frame (load bearing construction under table top)
|
||||
translate([
|
||||
0,
|
||||
0,
|
||||
_BELOW_TOP - FRAME_THICKNESS
|
||||
]) {
|
||||
frame(MAIN_WIDTH, MAIN_DEPTH);
|
||||
}
|
||||
|
||||
// cable tray
|
||||
|
||||
// tray bottom
|
||||
|
Loading…
Reference in New Issue
Block a user