]> www.fi.muni.cz Git - things.git/commitdiff
updated printed versions
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 20 Jan 2017 11:27:00 +0000 (12:27 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 20 Jan 2017 11:27:00 +0000 (12:27 +0100)
ikea-kitchen-bar.scad
towelbar-antislide.scad

index c41af482af9616f7b59e9d9ee454813adeab5d26..d292598da0b832fabbf0727d195efa1a8348d2c1 100644 (file)
@@ -4,22 +4,24 @@ infty=200;
 eps=0.01;
 
 bar_w = 3.5 + 0.7;
-bar_h = 29.3 + 0.8;
-bar_to_wall = 24; // incl. the bar itself
+bar_h = 29.3 + 0.5;
+bar_to_wall = 27; // incl. the bar itself
 
 wall = 3.1;
 upper_overhang = 10.0 - wall;
-lower_overhang = 1.5;
+lower_overhang = 2.0;
 
 body_h = 12;
 
+clip_front = 5; // stronger than wall for this object
+
 // coordinates: front end of the bar is the xz plane, centered by the x axis,
 // +x is the upper part, -x is lower, +y is front
 
 module clip() {
        // front part
        translate([-bar_h/2-wall, 0, 0])
-               cube([bar_h + 2*wall, wall, body_h]);
+               cube([bar_h + 2*wall, clip_front, body_h]);
        // upper and lower horizontal bars
        for (x = [-1, 1]) scale([x, 1, 1])
                translate([bar_h/2, -bar_w -wall, 0])
@@ -32,7 +34,7 @@ module clip() {
                difference() {
                        cube([lower_overhang + wall, wall, body_h]);
                        translate([lower_overhang + wall, 2*wall/3, 0])
-                               rotate([0, 0, -36])
+                               rotate([0, 0, -45])
                                        translate([0, -infty/2, -infty/2])
                                        cube(infty);
                }
@@ -79,7 +81,7 @@ knifebar_rear_wall = 5;
 // top
 hull() {
        translate([-bar_h/2-wall, -bar_w -wall, 0])
-                       cube([wall, bar_w + 2*wall, body_h]);
+                       cube([wall, bar_w + wall + clip_front, body_h]);
        translate([knifebar_x_off, knifebar_y_off-knifebar_rear_wall, 0])
                cube([wall, -knifebar_y_off+wall+knifebar_rear_wall, body_h]);
        // translate([knifebar_x_off, knifebar_y_off-knifebar_rear_wall, 0])
index 538e86ac90e01b631c599881d2df9763c734bf8e..4a35d8a37724cbab0f029dfa2fedd9701f80075a 100644 (file)
@@ -2,20 +2,24 @@ infty=200;
 eps=0.01;
 
 bar_diam = 20;
-body_h = 15;
-body_l = 100;
+body_h = 7;
+body_l = 150;
 
 wall = 1.5;
 
-spike_w = 1;
-spike_l = 2;
+spike_w_bot = 1;
+spike_w_top = 6;
+spike_l = 5;
+
+spike_count = 8;
+spike_dist = body_l/(spike_count + 1);
 
 module spike() {
        hull() {
-               translate([-body_h/4, 0, -eps])
-                       cube([body_h/2, bar_diam/2+wall/2, eps]);
-               translate([-spike_w/2, 0, -body_h/2])
-                       cube([spike_w, bar_diam/2 + wall + spike_l, eps]);
+               translate([-spike_w_top/2, 0, body_h/2-eps])
+                       cube([spike_w_top, bar_diam/2+wall/2, eps]);
+               translate([-spike_w_bot/2, 0, -body_h/2])
+                       cube([spike_w_bot, bar_diam/2 + wall + spike_l, eps]);
        }
 }
 
@@ -24,10 +28,8 @@ difference() {
                translate([-body_l/2, 0, 0])
                        rotate([0, 90, 0])
                                cylinder(r = bar_diam/2 + wall, h = body_l);
-               for (x = [-37.5:15:37.5])
-                       translate([x, 0, 0]) spike();
-               for (x = [-45:15:45])
-                       translate([x, 0, 0]) scale([1, 1, -1]) spike();
+               for (i = [-spike_count/2:1:spike_count/2])
+                       translate([i*spike_dist, 0, 0]) spike();
        }
                        
        // tube hole
@@ -36,8 +38,8 @@ difference() {
                        cylinder(r = bar_diam/2, h = body_l + 2*eps);
        // cut the bottom
        translate([-infty/2, -infty/2, -infty-body_h/2]) cube(infty);
-       // cut the bottom
+       // cut the top
        translate([-infty/2, -infty/2, body_h/2]) cube(infty);
-       // cut the bottom rear half
+       // cut the rear half
        translate([-infty/2, -infty, -infty/2]) cube(infty);
 }