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