|
|
@@ -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();
|
|
|
+}
|