| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* CONFIG PART */
- desk_thickness = 8;
- moulding_size = 10;
- thickness = 5;
- rounding = 2;
- $fn = 30;
- /* END OF CONFIG PART */
- top_width = moulding_size + thickness * 2;
- bottom_width = top_width + desk_thickness * 2;
- top_depth = moulding_size + thickness;
- bottom_depth = moulding_size;
- full_depth = top_depth + bottom_depth;
- module rounded_square(width, height, rounded = true) {
- if (!rounded) {
- square([width, height], center = true);
- } else {
- hull() {
- move_x = width / 2 - rounding;
- move_y = height / 2 - rounding;
- translate([move_x, move_y]) circle(r = rounding);
- translate([-move_x, move_y]) circle(r = rounding);
- translate([move_x, -move_y]) circle(r = rounding);
- translate([-move_x, -move_y]) circle(r = rounding);
- }
- }
- }
- module base() {
- translate([0, -full_depth / 2]) hull() {
- translate([0, top_depth / 2 + bottom_depth]) {
- rounded_square(top_width, top_depth);
- }
- translate([0, bottom_depth / 2]) {
- rounded_square(bottom_width, bottom_depth);
- }
- }
- }
- module without_moulding() {
- difference() {
- base();
- translate([0, full_depth / 2 - moulding_size / 2]) {
- rounded_square(moulding_size, moulding_size, false);
- }
- }
- }
- without_moulding();
|