Explorar el Código

Create hanger for walls

cixo hace 1 año
padre
commit
6cb9a52728
Se han modificado 3 ficheros con 76 adiciones y 0 borrados
  1. 69 0
      assets/wall_hanger.scad
  2. 2 0
      config/wall_hanger.scad
  3. 5 0
      renders/wall_hanger.scad

+ 69 - 0
assets/wall_hanger.scad

@@ -0,0 +1,69 @@
+include <../config/wall_hanger.scad>
+include <../config/wall.scad>
+
+function wall_hanger_size() = 
+    wall_mounting_screws * 2;
+
+module wall_hanger_object() {
+    module base_shape() {
+        size = wall_hanger_size();
+        rounding = wall_hanger_rounding;
+        move = size / 2 - rounding;
+        small_move = move + rounding / 2;
+
+        hull() {
+            translate([move, -move]) {
+                square(rounding * 2, center = true);
+            }
+
+            translate([move, move]) {
+                circle(r = rounding);
+            }
+
+            translate([small_move, small_move]) {
+                square(rounding, center = true);
+            }
+
+            translate([-move, -move]) {
+                circle(r = rounding);
+            }
+
+            translate([-small_move, -small_move]) {
+                square(rounding, center = true);
+            }
+        }
+    }   
+
+    module base_object() {
+        size = wall_hanger_size();
+
+        module base() {
+            rotate([270, 180, 0]) {
+                linear_extrude(height = size, center = true) {
+                    base_shape();
+                }
+            }
+        }
+
+        thickness = wall_thickness / 3;
+        
+        module insertion() {
+            radius = wall_mounting_screws / 2;
+            move_z = wall_hanger_size() / 2 - wall_hanger_size() / 2;
+            move_x = -wall_hanger_size() / 2 - thickness / 2;
+    
+            translate([move_x, 0, move_z]) {
+                rotate([90, 0, 90]) {
+                    cylinder(r = radius, h = thickness, center = true);
+                }
+            }
+        }
+        
+        translate([thickness / 2, 0, 0]) {
+            base();
+            insertion();
+        }
+    }
+
+    base_object();
+}

+ 2 - 0
config/wall_hanger.scad

@@ -0,0 +1,2 @@
+wall_hanger_depth = 80;
+wall_hanger_rounding = 3;

+ 5 - 0
renders/wall_hanger.scad

@@ -0,0 +1,5 @@
+include <../assets/wall_hanger.scad>
+
+$fn = 100;
+
+wall_hanger_object();