@@ -27,6 +27,9 @@ rim_thickness = 1.7; //[.3:.01:5]
27
27
// Total height of the outer rim.
28
28
rim_height = 3 ; // [0:.1:50]
29
29
30
+ // Taper of the tube, circle only, relative to it's height
31
+ taper= 1 ; // [1::3]
32
+
30
33
// If yes, the wires will be placed in different layers, which leads to a quicker and possibly better print, especially when using thin strands.
31
34
offset_strands = "yes" ; // [yes,no]
32
35
@@ -40,10 +43,10 @@ $fn = 72; //[3:1:256]
40
43
/* [Hidden] */
41
44
42
45
// A hollow tube (or only its inside volume if inside != 0)
43
- module tube(r_x, r_y, thick, height, inside=0) {
46
+ module tube(r_x, r_y, thick, height, taper, inside=0) {
44
47
if (shape == "round" ) {
45
48
stretchx = r_x / r_y;
46
- linear_extrude(height= height, convexity= 4 ) {
49
+ linear_extrude(height= height, convexity= 4 , scale = taper ) {
47
50
if (inside == 0 ) {
48
51
difference () {
49
52
scale (1 /stretchx) scale ([stretchx,1 ]) circle(r= r_x);
@@ -103,27 +106,27 @@ module grid(width, length, strand_width, strand_thick, gap, do_offset) {
103
106
// rim_height = height of outer rim
104
107
// do_offset = offset the strands ("yes" or "no")
105
108
//
106
- module sieve(od_x, od_y, strand_width, strand_thick, gap, rim_thick, rim_height, do_offset) {
109
+ module sieve(od_x, od_y, strand_width, strand_thick, gap, rim_thick, rim_height, taper, do_offset) {
107
110
or_x = od_x/2 ;
108
111
or_y = od_y/2 ;
109
112
110
113
// Add .01 margin to ensure good overlap, avoid non-manifold
111
114
if (lift_strands > 0 ) {
112
- tube(or_x, or_y, rim_thick, lift_strands+ .01 );
115
+ tube(or_x, or_y, rim_thick, lift_strands+ .01 , 1 );
113
116
}
114
117
translate ([0 , 0 , lift_strands]) {
115
118
// Trim the grid to the outer shape, minus some margin
116
119
intersection () {
117
120
grid(od_y, od_x, strand_width, strand_thick, gap, do_offset);
118
- translate ([0 ,0 ,- 1 ]) tube(or_x, or_y, .1 , rim_height+ 2 * strand_thick+ lift_strands+ 2 , 1 );
121
+ translate ([0 ,0 ,- 1 ]) tube(or_x, or_y, .1 , rim_height+ 2 * strand_thick+ lift_strands+ 2 , taper, 1 );
119
122
}
120
123
if (do_offset == "yes" ) {
121
- translate ([0 , 0 , 2 * strand_thick- .01 ]) tube(or_x, or_y, rim_thick, rim_height- 2 * strand_thick- lift_strands+ .01 );
124
+ translate ([0 , 0 , 2 * strand_thick- .01 ]) tube(or_x, or_y, rim_thick, rim_height- 2 * strand_thick- lift_strands+ .01 , taper );
122
125
} else {
123
- translate ([0 , 0 , strand_thick- .01 ]) tube(or_x, or_y, rim_thick, rim_height- strand_thick- lift_strands+ .01 );
126
+ translate ([0 , 0 , strand_thick- .01 ]) tube(or_x, or_y, rim_thick, rim_height- strand_thick- lift_strands+ .01 , taper );
124
127
}
125
128
}
126
- tube(or_x, or_y, rim_thick- .4 , rim_height);
129
+ tube(or_x, or_y, rim_thick- .4 , rim_height, taper );
127
130
}
128
131
129
- sieve(outer_diameter+ stretch, outer_diameter, strand_width, strand_thickness, gap_size, rim_thickness, rim_height, offset_strands);
132
+ sieve(outer_diameter+ stretch, outer_diameter, strand_width, strand_thickness, gap_size, rim_thickness, rim_height, taper, offset_strands);
0 commit comments