Thomas Buck 1 kuukausi sitten
vanhempi
commit
e111314f1b
5 muutettua tiedostoa jossa 437 lisäystä ja 0 poistoa
  1. 24
    0
      clipper_mount/clipper.scad
  2. 86
    0
      coffe_grinder_adapter.scad
  3. 150
    0
      coffee_mill.scad
  4. 56
    0
      crafty_usb_c.scad
  5. 121
    0
      dabrig.scad

+ 24
- 0
clipper_mount/clipper.scad Näytä tiedosto

@@ -0,0 +1,24 @@
1
+clipper_dia = 20;
2
+clipper_height = 5;
3
+
4
+clipper_dist = 10;
5
+clipper_floor = 2;
6
+
7
+count_x = 2;
8
+count_y = 1;
9
+
10
+module clipper() {
11
+    cylinder(d = clipper_dia, h = clipper_height + 1);
12
+}
13
+
14
+difference() {
15
+    cube([count_x * (clipper_dia + clipper_dist), count_y * (clipper_dia + clipper_dist), clipper_floor + clipper_height]);
16
+
17
+    for (x = [0 : count_x - 1]) {
18
+        for (y = [0 : count_y - 1]) {
19
+            translate([x * (clipper_dia + clipper_dist), y * (clipper_dia + clipper_dist), 0])
20
+            translate([(clipper_dia + clipper_dist) / 2, (clipper_dia + clipper_dist) / 2, clipper_floor])
21
+            clipper();
22
+        }
23
+    }
24
+}

+ 86
- 0
coffe_grinder_adapter.scad Näytä tiedosto

@@ -0,0 +1,86 @@
1
+compensate_dia = 0.5;
2
+compensate_width = 0.5;
3
+
4
+teeth = 12;
5
+tooth_dia = 2.75 + compensate_dia;
6
+tooth_off = (17.3 + compensate_width - tooth_dia) / 2;
7
+gear_h = 15.0;
8
+
9
+adapter_wall = 5;
10
+adapter_dia = tooth_off * 2 + tooth_dia + adapter_wall;
11
+adapter_h = gear_h + adapter_wall;
12
+
13
+use_male_socket = false;
14
+
15
+// male socket
16
+socket_h = gear_h;
17
+socket_dia = 7.0;
18
+socket_fn = 6;
19
+socket_flare = 3.0;
20
+
21
+// female socket
22
+sock_h = 10.0;
23
+sock_w = 6.4 + 0.4;
24
+sock_imp_d = 0.6 + 0.1;
25
+sock_imp_o = 4.0;
26
+sock_imp_w = 3.0;
27
+sock_imp_d2 = 0.4;
28
+
29
+$fn = 42;
30
+
31
+module gear(h) {
32
+    cylinder(d = tooth_off * 2, h = h);
33
+    
34
+    for (r = [0 : 360 / teeth : 360])
35
+    rotate([0, 0, r])
36
+    translate([tooth_off, 0, 0])
37
+    cylinder(d = tooth_dia, h = h);
38
+}
39
+
40
+module female_socket() {
41
+    difference() {
42
+        cylinder(d = adapter_dia, h = sock_h + 0.1);
43
+        
44
+        translate([-sock_w / 2, -sock_w / 2, 0.1])
45
+        cube([sock_w, sock_w, sock_h + 1]);
46
+        
47
+        translate([sock_w / 2, 0, sock_imp_o + 0.1])
48
+        sphere(d = 2 * sock_imp_d);
49
+        
50
+        translate([sock_w / 2, 0, sock_imp_o + 0.1])
51
+        cylinder(d = 2 * sock_imp_d2, h = sock_h);
52
+    }
53
+}
54
+
55
+module adapter() {
56
+    difference() {
57
+        union() {
58
+            cylinder(d = adapter_dia, h = adapter_h);
59
+    
60
+            if (use_male_socket)
61
+            translate([0, 0, adapter_h]) {
62
+                cylinder(d = socket_dia, h = socket_h, $fn = socket_fn);
63
+                
64
+                hull() {
65
+                    cylinder(d = socket_dia, h = socket_flare, $fn = socket_fn);
66
+                    translate([0, 0, -socket_flare])
67
+                    cylinder(d = adapter_dia, h = socket_flare);
68
+                }
69
+            }
70
+        }
71
+        
72
+        translate([0, 0, -1])
73
+        gear(gear_h + 1);
74
+        
75
+        if (use_male_socket)
76
+        translate([0, 0, gear_h - 0.1])
77
+        cylinder(d1 = tooth_off * 2 + tooth_dia, d2 = 5, h = socket_flare * 2 + 0.1);
78
+    }
79
+    
80
+    if (!use_male_socket)
81
+    translate([0, 0, adapter_h])
82
+    female_socket();
83
+}
84
+
85
+//gear(gear_h);
86
+adapter();

+ 150
- 0
coffee_mill.scad Näytä tiedosto

@@ -0,0 +1,150 @@
1
+mill_h = 136;
2
+mill_do = 54.9;
3
+mill_di = 48.7;
4
+mill_ih = 13.4;
5
+
6
+hat_do_bot = mill_di - 1;
7
+hat_h_bot = mill_ih - 1;
8
+hat_do_top = mill_do;
9
+hat_h_top = 5;
10
+hat_wall = 3;
11
+hat_di_bot = hat_do_bot - 2 * hat_wall;
12
+
13
+boot_wall = 3;
14
+boot_h = 20;
15
+boot_support = 5;
16
+boot_di_min = mill_do + 1;
17
+boot_di_max = boot_di_min + 20;
18
+boot_do_min = boot_di_min + 2 * boot_wall;
19
+boot_do_max = boot_di_max + 2 * boot_wall;
20
+
21
+rubber_ridge_w = 3;
22
+rubber_ridge_h = 2;
23
+
24
+mode = "print"; // [ "hat", "boot", "assembly", "assembly_cut", "print" ]
25
+prev_mode = "inverted"; // [ "normal", "inverted" ]
26
+
27
+$fn = $preview ? 42 : 100;
28
+
29
+module mill() {
30
+    difference() {
31
+        cylinder(d = mill_do, h = mill_h);
32
+
33
+        translate([0, 0, mill_h - mill_ih])
34
+        cylinder(d = mill_di, h = mill_ih + 0.1);
35
+
36
+        translate([0, 0, 5])
37
+        cylinder(d = mill_di, h = mill_h - mill_ih - 10);
38
+    }
39
+}
40
+
41
+module hat() {
42
+    difference() {
43
+        cylinder(d = hat_do_bot, h = hat_h_bot + 0.1);
44
+
45
+        translate([0, 0, -0.1])
46
+        cylinder(d = hat_di_bot, h = hat_h_bot + 0.2);
47
+    }
48
+
49
+    translate([0, 0, hat_h_bot])
50
+    difference() {
51
+        cylinder(d = hat_do_top, h = hat_h_top);
52
+        
53
+        translate([0, 0, hat_h_top - rubber_ridge_h / 2])
54
+        for (r = [0, 90])
55
+        rotate([0, 0, r])
56
+        cube([rubber_ridge_w, hat_do_top + 0.2, rubber_ridge_h + 0.1], center = true);
57
+    }
58
+}
59
+
60
+module boot() {
61
+    difference() {
62
+        union() {
63
+            cylinder(d = boot_do_min, h = boot_wall);
64
+
65
+            translate([0, 0, boot_wall])
66
+            cylinder(d1 = boot_do_min, d2 = boot_do_max, h = boot_h);
67
+        }
68
+
69
+        translate([0, 0, boot_wall - 0.1])
70
+        cylinder(d1 = boot_di_min, d2 = boot_di_max, h = boot_h + 0.2);
71
+        
72
+        translate([0, 0, -0.1])
73
+        cylinder(d = boot_di_min, h = boot_wall + 0.2);
74
+    }
75
+
76
+    translate([0, 0, boot_wall / 2])
77
+    for (r = [0, 90])
78
+    rotate([0, 0, r])
79
+    cube([boot_di_min, boot_support, boot_wall], center = true);
80
+
81
+    translate([0, 0, -boot_wall])
82
+    difference() {
83
+        cylinder(d = hat_do_bot, h = boot_wall);
84
+        translate([0, 0, -0.1])
85
+        cylinder(d = hat_do_bot - 2 * boot_wall, h = boot_wall + 0.2);
86
+    }
87
+
88
+    translate([0, 0, -boot_wall])
89
+    difference() {
90
+        cylinder(d = boot_do_min, h = boot_wall);
91
+        translate([0, 0, -0.1])
92
+        cylinder(d = boot_di_min, h = boot_wall + 0.2);
93
+
94
+        translate([0, 0, rubber_ridge_h / 2])
95
+        for (r = [0, 90])
96
+        rotate([0, 0, r])
97
+        cube([rubber_ridge_w, boot_do_min + 0.2, rubber_ridge_h + 0.1], center = true);
98
+    }
99
+
100
+    translate([0, 0, -boot_wall + boot_wall / 2])
101
+    for (r = [0, 90])
102
+    rotate([0, 0, r])
103
+    cube([hat_do_bot - 2 * boot_wall, boot_support, boot_wall], center = true);
104
+}
105
+
106
+module assembly() {
107
+    color("blue")
108
+    if ($preview)
109
+    translate([0, 0, boot_wall])
110
+    mill();
111
+
112
+    if (prev_mode == "normal") {
113
+        color("red")
114
+        translate([0, 0, mill_h - hat_h_bot + boot_wall + 0.2])
115
+        hat();
116
+        
117
+        color("green")
118
+        boot();
119
+    } else if (prev_mode == "inverted") {
120
+        color("green")
121
+        translate([0, 0, mill_h + boot_wall])
122
+        boot();
123
+    }
124
+}
125
+
126
+module print() {
127
+    translate([0, 0, hat_h_bot + hat_h_top])
128
+    rotate([180, 0, 0])
129
+    hat();
130
+
131
+    translate([hat_do_top / 2 + boot_do_max / 2 + 5, 0, boot_wall])
132
+    boot();
133
+}
134
+
135
+if (mode == "hat") {
136
+    hat();
137
+} else if (mode == "boot") {
138
+    boot();
139
+} else if (mode == "print") {
140
+    print();
141
+} else if (mode == "assembly") {
142
+    assembly();
143
+} else if (mode == "assembly_cut") {
144
+    difference() {
145
+        assembly();
146
+
147
+        translate([-100, 0, -10])
148
+        cube([200, 100, 200]);
149
+    }
150
+}

+ 56
- 0
crafty_usb_c.scad Näytä tiedosto

@@ -0,0 +1,56 @@
1
+w = 13.0;
2
+d = 12.0;
3
+h = 21.0;
4
+
5
+cut = 4.0;
6
+hole = 2.25;
7
+off = 13.0;
8
+
9
+usb_dia = 5.8;
10
+usb_w = 11.0;
11
+usb_off = 1.5;
12
+
13
+$fn = 42;
14
+
15
+usb_bottom_h = 4.5 + 1.5;
16
+usb_w_bottom = 7.7;
17
+
18
+module usb_internal(h, w) {
19
+    translate([(usb_dia - w) / 2, 0, 0]) {
20
+        cylinder(d = usb_dia, h = h);
21
+        
22
+        translate([w - usb_dia, 0, 0])
23
+        cylinder(d = usb_dia, h = h);
24
+        
25
+        translate([0, -usb_dia / 2, 0])
26
+        cube([w - usb_dia, usb_dia, h]);
27
+    }
28
+}
29
+
30
+module usb(h) {
31
+    hull() {
32
+        translate([0, 0, usb_bottom_h])
33
+        usb_internal(h - usb_bottom_h, usb_w);
34
+        
35
+        usb_internal(usb_bottom_h, usb_w_bottom);
36
+    }
37
+}
38
+
39
+module holder() {
40
+    difference() {
41
+        cube([w, d, h]);
42
+        
43
+        translate([w / 2, -1, off])
44
+        rotate([-90, 0, 0])
45
+        cylinder(d = hole, h = d + 2);
46
+        
47
+        translate([(w - cut) / 2, -1, -1])
48
+        cube([cut, 5, h + 2]);
49
+        
50
+        translate([w / 2, usb_dia / 2 + usb_off, -1])
51
+        usb(h + 2);
52
+    }
53
+}
54
+
55
+//usb(20);
56
+holder();

+ 121
- 0
dabrig.scad Näytä tiedosto

@@ -0,0 +1,121 @@
1
+ba_l = 17;
2
+ba_d = 8.5;
3
+
4
+gap = 1.5;
5
+
6
+m_di = 52 + gap;
7
+m_wall = 6;
8
+m_do = m_di + m_wall;
9
+m_h = 42;
10
+ma_d = ba_d + gap;
11
+ma_ha = gap;
12
+
13
+t_dl = 5.5;
14
+t_ds = 3.6;
15
+t_h = 42;
16
+
17
+th_dl = t_dl + 1;
18
+th_ds = t_ds + 0.5;
19
+th_do = th_dl + 5;
20
+th_h = 20;
21
+th_ox = 5;
22
+
23
+v_d = 33;
24
+v_h = 19;
25
+
26
+tr_di = v_d + 1;
27
+tr_wall = m_wall;
28
+tr_do = tr_di + tr_wall;
29
+tr_h = v_h / 2;
30
+tr_ox = 5;
31
+
32
+th_r = 45;
33
+tr1_r = -45;
34
+tr2_r = -100;
35
+tr_r = [tr1_r, tr2_r];
36
+
37
+$fn = $preview ? 50 : 200;
38
+
39
+module pipe() {
40
+    // pipe body
41
+    translate([0, 0, -m_h])
42
+    cylinder(d = m_di - 2, h = m_h * 3);
43
+    
44
+    // arm
45
+    translate([0, (m_di - 2) / 2, ba_d / 2])
46
+    rotate([-90, 0, 0])
47
+    cylinder(d = ba_d, h = ba_l);
48
+    
49
+    // tool
50
+    rotate([0, 0, th_r])
51
+    translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 - t_h / 4])
52
+    cylinder(d1 = t_ds, d2 = t_dl, h = t_h);
53
+    
54
+    // vat
55
+    for (r = tr_r)
56
+    rotate([0, 0, r])
57
+    translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2])
58
+    cylinder(d = v_d, h = v_h);
59
+}
60
+
61
+module ring() {
62
+    difference() {
63
+        hull() {
64
+            // main body
65
+            cylinder(d = m_do, h = m_h);
66
+            
67
+            // tool holder
68
+            rotate([0, 0, th_r])
69
+            translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2])
70
+            cylinder(d = th_do, h = th_h);
71
+            
72
+            // tray
73
+            for (r = tr_r)
74
+            rotate([0, 0, r])
75
+            translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2 - tr_wall])
76
+            cylinder(d = tr_do, h = tr_wall + tr_h);
77
+            
78
+        }
79
+        
80
+        // vat body
81
+        for (r = tr_r)
82
+        rotate([0, 0, r])
83
+        translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2])
84
+        cylinder(d = tr_di, h = v_h + 20);
85
+        
86
+        // vat easing
87
+        for (r = tr_r)
88
+        rotate([0, 0, r])
89
+        translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2 + tr_h - 2])
90
+        cylinder(d1 = tr_di, d2 = tr_di + 30, h = 30);
91
+        
92
+        // pipe body
93
+        translate([0, 0, -20])
94
+        cylinder(d = m_di, h = m_h + 40);
95
+        
96
+        // tool holder - bottom
97
+        rotate([0, 0, th_r])
98
+        translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 - 20])
99
+        cylinder(d = th_ds, h = 20);
100
+        
101
+        // tool holder - top
102
+        rotate([0, 0, th_r])
103
+        translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 + th_h])
104
+        cylinder(d = th_dl, h = 20);
105
+        
106
+        // tool holder - middle
107
+        rotate([0, 0, th_r])
108
+        translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 - ($preview ? 0.1 : 0)])
109
+        cylinder(d1 = th_ds, d2 = th_dl, h = th_h + ($preview ? 0.2 : 0));
110
+        
111
+        // arm cutout
112
+        for (z = [-ma_d / 2 : ma_ha])
113
+        translate([0, (m_di - m_wall) / 2, ma_d / 2 + z])
114
+        rotate([-90, 0, 0])
115
+        cylinder(d = ma_d, h = m_wall * 2);
116
+        
117
+    }
118
+}
119
+
120
+%pipe();
121
+ring();

Loading…
Peruuta
Tallenna