|
|
@@ -0,0 +1,56 @@
|
|
|
+/* 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();
|