]> www.fi.muni.cz Git - things.git/commitdiff
knife-stand: first try
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 19 Aug 2015 06:48:37 +0000 (08:48 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Wed, 19 Aug 2015 06:48:37 +0000 (08:48 +0200)
knife-stand.scad [new file with mode: 0644]

diff --git a/knife-stand.scad b/knife-stand.scad
new file mode 100644 (file)
index 0000000..40673ad
--- /dev/null
@@ -0,0 +1,75 @@
+eps = 0.01;
+infty = 200;
+
+blade_w = 3.0;
+blade_h = 32;
+blade_l = 200;
+slot_l = 40;
+
+slot_angle_y = -15;
+slot_angle_z = -10;
+
+wall = 1.5;
+clip_wall = 3.0;
+clip_h = 15;
+clip_rear = 20;
+clip_in = 3.5; // inner width
+
+clip_l_top = 65;
+
+module slanted_knife() {
+       rotate([90, slot_angle_y, slot_angle_z])
+       translate([-blade_w/2, -eps, wall])
+               cube([blade_w, blade_l+2*eps, blade_h]);
+}
+
+module slanted_knife_slot() {
+       difference() {
+               translate([0, 0, -wall])
+                       rotate([90, slot_angle_y, slot_angle_z])
+                       translate([-wall-blade_w/2, 0, 0])
+                               cube([blade_w+2*wall, slot_l, blade_h + 2*wall]);
+/*
+               rotate([0, 0, slot_angle_z])
+                       translate([0, -infty/2, -infty/2])
+                               cube(infty);
+*/
+       }
+}
+
+module body() {
+       for (x = [0:20:60]) translate([-x, 30, 0])
+               slanted_knife_slot();
+
+       // main clip stem
+       translate([-75, 0, 0])
+               cube([75+clip_l_top, clip_wall, clip_h]);
+
+       // rear support
+       translate([-44+clip_wall, -15, 0])
+               cube([clip_wall, 15, clip_h]);
+
+       // horizontal clip part
+       translate([clip_l_top-clip_wall, -clip_wall-clip_in, 0])
+               cube([clip_wall, clip_in+2*clip_wall, clip_h]);
+
+       // rear clip part
+       translate([clip_l_top-clip_rear, -clip_wall-clip_in, 0])
+               cube([clip_rear, clip_wall, clip_h]);
+}
+
+module main() {
+       difference() {
+               body();
+
+               // z-negative plane
+               translate([-infty/2, -infty/2, -infty])
+                       cube(infty);
+
+               for (x = [0:20:60]) translate([-x, 30, 0])
+                       slanted_knife();
+       }
+}
+
+main();
+