| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | 
							- include <../config/headphones_holder.scad>
 
- module headphones_holder_hanger_object() {
 
-     height = headphones_holder_height;
 
-     depth = headphones_holder_depth;
 
-     leg_depth = headphones_holder_leg_depth;
 
-     leg_width = headphones_holder_leg_width;
 
-     leg_thickness = headphones_holder_leg_thickness;
 
-     blocker_size = headphones_hanger_blocker_size;
 
-     module hanger() {
 
-         module main() {
 
-             size = [
 
-                 blocker_size,
 
-                 leg_depth * 1.5,
 
-                 blocker_size
 
-             ];
 
-             cube(size, center = true);
 
-         }
 
-         module headphones() {
 
-             size = [
 
-                 blocker_size,
 
-                 blocker_size * 2,
 
-                 blocker_size / 2
 
-             ];
 
-             
 
-             translate([0, 0, blocker_size / 4]) {
 
-                 cube(size, center = true);
 
-             }
 
-         }
 
-         render() {
 
-             difference() {
 
-                 main();
 
-                 headphones();
 
-             }
 
-         }
 
-     }
 
-     hanger();
 
- }
 
- module headphones_holder_leg_object() {
 
-     height = headphones_holder_height;
 
-     depth = headphones_holder_depth;
 
-     leg_depth = headphones_holder_leg_depth;
 
-     leg_width = headphones_holder_leg_width;
 
-     leg_thickness = headphones_holder_leg_thickness;
 
-     blocker_size = headphones_hanger_blocker_size;
 
-     module legs_shape() {
 
-         module single_leg(splited = false) {
 
-             module point(x, y, squared = false) {
 
-                 translate([x, y]) {
 
-                     if (squared) {
 
-                         square(leg_width, center = true);
 
-                     } else {
 
-                         circle(r = leg_width / 2);
 
-                     }
 
-                 }
 
-             }
 
-             move_x = leg_depth / 2 - leg_width / 2;
 
-             move_y = leg_depth / 2 - leg_width / 2;
 
-             
 
-             union() {
 
-                 hull() {
 
-                     point(-move_x, move_y, squared = !splited);
 
-                     point(move_x, move_y, squared = splited);
 
-                 }
 
-                 hull() {
 
-                     if (splited) {
 
-                         point(-move_x, move_y, squared = false);
 
-                         point(-move_x, -move_y, squared = false);
 
-                     } else {
 
-                         point(move_x, move_y, squared = false);
 
-                         point(move_x, -move_y, squared = false);
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         translate([-leg_depth / 2, 0]) {
 
-             single_leg(splited = true);
 
-         }
 
-         translate([leg_depth / 2, 0]) {
 
-             single_leg();
 
-         }
 
-     }
 
-     module legs_object() {
 
-         linear_extrude(height = leg_thickness, center = false) {
 
-             legs_shape();
 
-         }
 
-     }
 
-     module frame_object() {
 
-         precission = 1 / $fn;
 
-         module end_shape(x, y, z, top = false) {
 
-             translate([x, y, z - precission * (top ? 1 : -1)]) {
 
-                 width = leg_width * (top ? 1 : 2);
 
-                 depth = leg_width;
 
-                 height = precission;
 
-                 cube([width, depth, height], center = true);
 
-             }
 
-         }
 
-         move_y_bottom = leg_depth / 2 - leg_width / 2;
 
-         move_y_top = move_y_bottom + depth;
 
-         hull() {
 
-             end_shape(0, move_y_bottom, 0, top = false);
 
-             end_shape(0, move_y_top, height + depth, top = true);
 
-         }
 
-         hull() {
 
-             end_shape(0, move_y_top, height + depth, top = true);
 
-             end_shape(0, move_y_top, height + depth + blocker_size, top = true);
 
-         }
 
-     }
 
-     legs_object();
 
-     
 
-     translate([0, 0, leg_thickness]) {
 
-         frame_object();
 
-     }
 
- }
 
- module headphones_holder_object() {
 
-     height = headphones_holder_height;
 
-     depth = headphones_holder_depth;
 
-     leg_depth = headphones_holder_leg_depth;
 
-     leg_width = headphones_holder_leg_width;
 
-     leg_thickness = headphones_holder_leg_thickness;
 
-     blocker_size = headphones_hanger_blocker_size;
 
-     color("#444444") {
 
-         render() {
 
-             headphones_holder_leg_object();
 
-         }
 
-     }
 
-     hanger_z = leg_thickness + height + depth + blocker_size / 2;
 
-     color("#999999") {
 
-         render() {
 
-             translate([0, 0, hanger_z]) {
 
-                 headphones_holder_hanger_object();
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |