]> www.fi.muni.cz Git - things.git/blob - knife-stand.scad
switch holder.scad
[things.git] / knife-stand.scad
1 eps = 0.01;
2 infty = 200;
3
4 blade_w = 3.0;
5 blade_h = 32;
6 blade_l = 200;
7 slot_l = 40;
8
9 slot_angle_y = -15;
10 slot_angle_z = -10;
11
12 wall = 1.5;
13 clip_wall = 3.0;
14 clip_h = 15;
15 clip_rear = 20;
16 clip_in = 3.5; // inner width
17
18 clip_l_top = 65;
19
20 module slanted_knife() {
21         rotate([90, slot_angle_y, slot_angle_z])
22         translate([-blade_w/2, -eps, wall])
23                 cube([blade_w, blade_l+2*eps, blade_h]);
24 }
25
26 module slanted_knife_slot() {
27         difference() {
28                 translate([0, 0, -wall])
29                         rotate([90, slot_angle_y, slot_angle_z])
30                         translate([-wall-blade_w/2, 0, 0])
31                                 cube([blade_w+2*wall, slot_l, blade_h + 2*wall]);
32 /*
33                 rotate([0, 0, slot_angle_z])
34                         translate([0, -infty/2, -infty/2])
35                                 cube(infty);
36 */
37         }
38 }
39
40 module body() {
41         for (x = [0:20:60]) translate([-x, 30, 0])
42                 slanted_knife_slot();
43
44         // main clip stem
45         translate([-75, 0, 0])
46                 cube([75+clip_l_top, clip_wall, clip_h]);
47
48         // rear support
49         translate([-44+clip_wall, -15, 0])
50                 cube([clip_wall, 15, clip_h]);
51
52         // horizontal clip part
53         translate([clip_l_top-clip_wall, -clip_wall-clip_in, 0])
54                 cube([clip_wall, clip_in+2*clip_wall, clip_h]);
55
56         // rear clip part
57         translate([clip_l_top-clip_rear, -clip_wall-clip_in, 0])
58                 cube([clip_rear, clip_wall, clip_h]);
59 }
60
61 module main() {
62         difference() {
63                 body();
64
65                 // z-negative plane
66                 translate([-infty/2, -infty/2, -infty])
67                         cube(infty);
68
69                 for (x = [0:20:60]) translate([-x, 30, 0])
70                         slanted_knife();
71         }
72 }
73
74 main();
75