Line 1... |
Line 1... |
1 |
// Parametric Pulley with multiple belt profiles |
1 |
// Parametric Pulley with multiple belt profiles |
2 |
// by droftarts January 2012 |
2 |
// by droftarts January 2012 |
3 |
|
3 |
|
4 |
// Based on pulleys by: |
4 |
// Based on pulleys by: |
5 |
// http://www.thingiverse.com/thing:11256 by me! |
5 |
// http://www.thingiverse.com/thing:11256 by me! |
6 |
// https://github.com/prusajr/PrusaMendel by Josef Prusa |
6 |
// https://github.com/prusajr/PrusaMendel by Josef Prusa |
7 |
// http://www.thingiverse.com/thing:3104 by GilesBathgate |
7 |
// http://www.thingiverse.com/thing:3104 by GilesBathgate |
8 |
// http://www.thingiverse.com/thing:2079 by nophead |
8 |
// http://www.thingiverse.com/thing:2079 by nophead |
9 |
|
9 |
|
10 |
// dxf tooth data from http://oem.cadregister.com/asp/PPOW_Entry.asp?company=915217&elementID=07807803/METRIC/URETH/WV0025/F |
10 |
// dxf tooth data from http://oem.cadregister.com/asp/PPOW_Entry.asp?company=915217&elementID=07807803/METRIC/URETH/WV0025/F |
11 |
// pulley diameter checked and modelled from data at http://www.sdp-si.com/D265/HTML/D265T016.html |
11 |
// pulley diameter checked and modelled from data at http://www.sdp-si.com/D265/HTML/D265T016.html |
12 |
|
12 |
|
13 |
/** |
13 |
/** |
14 |
* @name Pulley |
14 |
* @name Pulley |
15 |
* @category Printed |
15 |
* @category Printed |
16 |
* @using 1 x m3 nut, normal or nyloc |
16 |
* @using 1 x m3 nut, normal or nyloc |
17 |
* @using 1 x m3x10 set screw or 1 x m3x8 grub screw |
17 |
* @using 1 x m3x10 set screw or 1 x m3x8 grub screw |
18 |
*/ |
18 |
*/ |
19 |
|
19 |
|
20 |
|
20 |
|
21 |
// tuneable constants |
21 |
// tuneable constants |
22 |
|
22 |
|
23 |
teeth = 49; // Number of teeth, standard Mendel T5 belt = 8, gives Outside Diameter of 11.88mm |
23 |
teeth = 49; // Number of teeth, standard Mendel T5 belt = 8, gives Outside Diameter of 11.88mm |
24 |
profile = 3; // 1=MXL 2=40DP 3=XL 4=H 5=T2.5 6=T5 7=T10 8=AT5 9=HTD_3mm 10=HTD_5mm 11=HTD_8mm 12=GT2_2mm 13=GT2_3mm 14=GT2_5mm |
24 |
profile = 3; // 1=MXL 2=40DP 3=XL 4=H 5=T2.5 6=T5 7=T10 8=AT5 9=HTD_3mm 10=HTD_5mm 11=HTD_8mm 12=GT2_2mm 13=GT2_3mm 14=GT2_5mm |
25 |
|
25 |
|
26 |
motor_shaft = 10; // NEMA17 motor shaft exact diameter = 5 |
26 |
motor_shaft = 12; // NEMA17 motor shaft exact diameter = 5 |
27 |
m3_dia = 3.2; // 3mm hole diameter |
27 |
m3_dia = 3.2; // 3mm hole diameter |
28 |
m3_nut_hex = 1; // 1 for hex, 0 for square nut |
28 |
m3_nut_hex = 1; // 1 for hex, 0 for square nut |
29 |
m3_nut_flats = 5.7; // normal M3 hex nut exact width = 5.5 |
29 |
m3_nut_flats = 5.7; // normal M3 hex nut exact width = 5.5 |
30 |
m3_nut_depth = 2.7; // normal M3 hex nut exact depth = 2.4, nyloc = 4 |
30 |
m3_nut_depth = 2.7; // normal M3 hex nut exact depth = 2.4, nyloc = 4 |
31 |
|
31 |
|
32 |
retainer = 1; // Belt retainer above teeth, 0 = No, 1 = Yes |
32 |
retainer = 1; // Belt retainer above teeth, 0 = No, 1 = Yes |
33 |
retainer_ht = 1.5; // height of retainer flange over pulley, standard = 1.5 |
33 |
retainer_ht = 1.5; // height of retainer flange over pulley, standard = 1.5 |
34 |
idler = 1; // Belt retainer below teeth, 0 = No, 1 = Yes |
34 |
idler = 1; // Belt retainer below teeth, 0 = No, 1 = Yes |
35 |
idler_ht = 1.5; // height of idler flange over pulley, standard = 1.5 |
35 |
idler_ht = 1.5; // height of idler flange over pulley, standard = 1.5 |
36 |
|
36 |
|
37 |
pulley_t_ht = 16; // length of toothed part of pulley, standard = 12 |
37 |
pulley_t_ht = 16; // length of toothed part of pulley, standard = 12 |
38 |
pulley_b_ht = 20; // pulley base height, standard = 8. Set to same as idler_ht if you want an idler but no pulley. |
38 |
pulley_b_ht = 20; // pulley base height, standard = 8. Set to same as idler_ht if you want an idler but no pulley. |
39 |
pulley_b_dia = 40; // pulley base diameter, standard = 20 |
39 |
pulley_b_dia = 40; // pulley base diameter, standard = 20 |
40 |
no_of_nuts = 4; // number of captive nuts required, standard = 1 |
40 |
no_of_nuts = 4; // number of captive nuts required, standard = 1 |
41 |
nut_angle = 90; // angle between nuts, standard = 90 |
41 |
nut_angle = 90; // angle between nuts, standard = 90 |
42 |
nut_shaft_distance = 3; // distance between inner face of nut and shaft, can be negative. |
42 |
nut_shaft_distance = 3; // distance between inner face of nut and shaft, can be negative. |
43 |
|
43 |
|
44 |
|
44 |
|
45 |
// ******************************** |
45 |
// ******************************** |
46 |
// ** Scaling tooth for good fit ** |
46 |
// ** Scaling tooth for good fit ** |
47 |
// ******************************** |
47 |
// ******************************** |
48 |
/* To improve fit of belt to pulley, set the following constant. Decrease or increase by 0.1mm at a time. We are modelling the *BELT* tooth here, not the tooth on the pulley. Increasing the number will *decrease* the pulley tooth size. Increasing the tooth width will also scale proportionately the tooth depth, to maintain the shape of the tooth, and increase how far into the pulley the tooth is indented. Can be negative */ |
48 |
/* To improve fit of belt to pulley, set the following constant. Decrease or increase by 0.1mm at a time. We are modelling the *BELT* tooth here, not the tooth on the pulley. Increasing the number will *decrease* the pulley tooth size. Increasing the tooth width will also scale proportionately the tooth depth, to maintain the shape of the tooth, and increase how far into the pulley the tooth is indented. Can be negative */ |
49 |
|
49 |
|
50 |
additional_tooth_width = 0.2; //mm |
50 |
additional_tooth_width = 0.2; //mm |
51 |
|
51 |
|
52 |
// If you need more tooth depth than this provides, adjust the following constant. However, this will cause the shape of the tooth to change. |
52 |
// If you need more tooth depth than this provides, adjust the following constant. However, this will cause the shape of the tooth to change. |
53 |
|
53 |
|
54 |
additional_tooth_depth = 0; //mm |
54 |
additional_tooth_depth = 0; //mm |
55 |
|
55 |
|
56 |
// calculated constants |
56 |
// calculated constants |
57 |
|
57 |
|
58 |
nut_elevation = pulley_b_ht/2; |
58 |
nut_elevation = pulley_b_ht/2; |
59 |
m3_nut_points = 2*((m3_nut_flats/2)/cos(30)); // This is needed for the nut trap |
59 |
m3_nut_points = 2*((m3_nut_flats/2)/cos(30)); // This is needed for the nut trap |
60 |
|
60 |
|
61 |
// The following set the pulley diameter for a given number of teeth |
61 |
// The following set the pulley diameter for a given number of teeth |
62 |
|
62 |
|
63 |
MXL_pulley_dia = tooth_spacing (2.032,0.254); |
63 |
MXL_pulley_dia = tooth_spacing (2.032,0.254); |
64 |
40DP_pulley_dia = tooth_spacing (2.07264,0.1778); |
64 |
40DP_pulley_dia = tooth_spacing (2.07264,0.1778); |
65 |
XL_pulley_dia = tooth_spacing (5.08,0.254); |
65 |
XL_pulley_dia = tooth_spacing (5.08,0.254); |
66 |
H_pulley_dia = tooth_spacing (9.525,0.381); |
66 |
H_pulley_dia = tooth_spacing (9.525,0.381); |
67 |
T2_5_pulley_dia = tooth_spaceing_curvefit (0.7467,0.796,1.026); |
67 |
T2_5_pulley_dia = tooth_spaceing_curvefit (0.7467,0.796,1.026); |
68 |
T5_pulley_dia = tooth_spaceing_curvefit (0.6523,1.591,1.064); |
68 |
T5_pulley_dia = tooth_spaceing_curvefit (0.6523,1.591,1.064); |
69 |
T10_pulley_dia = tooth_spacing (10,0.93); |
69 |
T10_pulley_dia = tooth_spacing (10,0.93); |
70 |
AT5_pulley_dia = tooth_spaceing_curvefit (0.6523,1.591,1.064); |
70 |
AT5_pulley_dia = tooth_spaceing_curvefit (0.6523,1.591,1.064); |
71 |
HTD_3mm_pulley_dia = tooth_spacing (3,0.381); |
71 |
HTD_3mm_pulley_dia = tooth_spacing (3,0.381); |
72 |
HTD_5mm_pulley_dia = tooth_spacing (5,0.5715); |
72 |
HTD_5mm_pulley_dia = tooth_spacing (5,0.5715); |
73 |
HTD_8mm_pulley_dia = tooth_spacing (8,0.6858); |
73 |
HTD_8mm_pulley_dia = tooth_spacing (8,0.6858); |
74 |
GT2_2mm_pulley_dia = tooth_spacing (2,0.254); |
74 |
GT2_2mm_pulley_dia = tooth_spacing (2,0.254); |
75 |
GT2_3mm_pulley_dia = tooth_spacing (3,0.381); |
75 |
GT2_3mm_pulley_dia = tooth_spacing (3,0.381); |
76 |
GT2_5mm_pulley_dia = tooth_spacing (5,0.5715); |
76 |
GT2_5mm_pulley_dia = tooth_spacing (5,0.5715); |
77 |
|
77 |
|
78 |
// The following calls the pulley creation part, and passes the pulley diameter and tooth width to that module |
78 |
// The following calls the pulley creation part, and passes the pulley diameter and tooth width to that module |
79 |
|
79 |
|
80 |
if ( profile == 1 ) { pulley ( "MXL" , MXL_pulley_dia , 0.508 , 1.321 ); } |
80 |
if ( profile == 1 ) { pulley ( "MXL" , MXL_pulley_dia , 0.508 , 1.321 ); } |
81 |
if ( profile == 2 ) { pulley ( "40 D.P." , 40DP_pulley_dia , 0.457 , 1.226 ); } |
81 |
if ( profile == 2 ) { pulley ( "40 D.P." , 40DP_pulley_dia , 0.457 , 1.226 ); } |
82 |
if ( profile == 3 ) { pulley ( "XL" , XL_pulley_dia , 1.27, 3.051 ); } |
82 |
if ( profile == 3 ) { pulley ( "XL" , XL_pulley_dia , 1.27, 3.051 ); } |
83 |
if ( profile == 4 ) { pulley ( "H" , H_pulley_dia ,1.905 , 5.359 ); } |
83 |
if ( profile == 4 ) { pulley ( "H" , H_pulley_dia ,1.905 , 5.359 ); } |
84 |
if ( profile == 5 ) { pulley ( "T2.5" , T2_5_pulley_dia , 0.7 , 1.678 ); } |
84 |
if ( profile == 5 ) { pulley ( "T2.5" , T2_5_pulley_dia , 0.7 , 1.678 ); } |
85 |
if ( profile == 6 ) { pulley ( "T5" , T5_pulley_dia , 1.19 , 3.264 ); } |
85 |
if ( profile == 6 ) { pulley ( "T5" , T5_pulley_dia , 1.19 , 3.264 ); } |
86 |
if ( profile == 7 ) { pulley ( "T10" , T10_pulley_dia , 2.5 , 6.13 ); } |
86 |
if ( profile == 7 ) { pulley ( "T10" , T10_pulley_dia , 2.5 , 6.13 ); } |
87 |
if ( profile == 8 ) { pulley ( "AT5" , AT5_pulley_dia , 1.19 , 4.268 ); } |
87 |
if ( profile == 8 ) { pulley ( "AT5" , AT5_pulley_dia , 1.19 , 4.268 ); } |
88 |
if ( profile == 9 ) { pulley ( "HTD 3mm" , HTD_3mm_pulley_dia , 1.289 , 2.27 ); } |
88 |
if ( profile == 9 ) { pulley ( "HTD 3mm" , HTD_3mm_pulley_dia , 1.289 , 2.27 ); } |
89 |
if ( profile == 10 ) { pulley ( "HTD 5mm" , HTD_5mm_pulley_dia , 2.199 , 3.781 ); } |
89 |
if ( profile == 10 ) { pulley ( "HTD 5mm" , HTD_5mm_pulley_dia , 2.199 , 3.781 ); } |
90 |
if ( profile == 11 ) { pulley ( "HTD 8mm" , HTD_8mm_pulley_dia , 3.607 , 6.603 ); } |
90 |
if ( profile == 11 ) { pulley ( "HTD 8mm" , HTD_8mm_pulley_dia , 3.607 , 6.603 ); } |
91 |
if ( profile == 12 ) { pulley ( "GT2 2mm" , GT2_2mm_pulley_dia , 0.764 , 1.494 ); } |
91 |
if ( profile == 12 ) { pulley ( "GT2 2mm" , GT2_2mm_pulley_dia , 0.764 , 1.494 ); } |
92 |
if ( profile == 13 ) { pulley ( "GT2 3mm" , GT2_3mm_pulley_dia , 1.169 , 2.31 ); } |
92 |
if ( profile == 13 ) { pulley ( "GT2 3mm" , GT2_3mm_pulley_dia , 1.169 , 2.31 ); } |
93 |
if ( profile == 14 ) { pulley ( "GT2 5mm" , GT2_5mm_pulley_dia , 1.969 , 3.952 ); } |
93 |
if ( profile == 14 ) { pulley ( "GT2 5mm" , GT2_5mm_pulley_dia , 1.969 , 3.952 ); } |
94 |
|
94 |
|
95 |
// Functions |
95 |
// Functions |
96 |
|
96 |
|
97 |
function tooth_spaceing_curvefit (b,c,d) |
97 |
function tooth_spaceing_curvefit (b,c,d) |
98 |
= ((c * pow(teeth,d)) / (b + pow(teeth,d))) * teeth ; |
98 |
= ((c * pow(teeth,d)) / (b + pow(teeth,d))) * teeth ; |
99 |
|
99 |
|
100 |
function tooth_spacing(tooth_pitch,pitch_line_offset) |
100 |
function tooth_spacing(tooth_pitch,pitch_line_offset) |
101 |
= (2*((teeth*tooth_pitch)/(3.14159265*2)-pitch_line_offset)) ; |
101 |
= (2*((teeth*tooth_pitch)/(3.14159265*2)-pitch_line_offset)) ; |
102 |
|
102 |
|
103 |
// Main Module |
103 |
// Main Module |
104 |
|
104 |
|
105 |
module pulley( belt_type , pulley_OD , tooth_depth , tooth_width ) |
105 |
module pulley( belt_type , pulley_OD , tooth_depth , tooth_width ) |
106 |
{ |
106 |
{ |
107 |
echo (str("Belt type = ",belt_type,"; Number of teeth = ",teeth,"; Pulley Outside Diameter = ",pulley_OD,"mm ")); |
107 |
echo (str("Belt type = ",belt_type,"; Number of teeth = ",teeth,"; Pulley Outside Diameter = ",pulley_OD,"mm ")); |
108 |
tooth_distance_from_centre = sqrt( pow(pulley_OD/2,2) - pow((tooth_width+additional_tooth_width)/2,2)); |
108 |
tooth_distance_from_centre = sqrt( pow(pulley_OD/2,2) - pow((tooth_width+additional_tooth_width)/2,2)); |
109 |
tooth_width_scale = (tooth_width + additional_tooth_width ) / tooth_width; |
109 |
tooth_width_scale = (tooth_width + additional_tooth_width ) / tooth_width; |
110 |
tooth_depth_scale = ((tooth_depth + additional_tooth_depth ) / tooth_depth) ; |
110 |
tooth_depth_scale = ((tooth_depth + additional_tooth_depth ) / tooth_depth) ; |
111 |
|
111 |
|
112 |
|
112 |
|
113 |
// ************************************************************************ |
113 |
// ************************************************************************ |
114 |
// *** uncomment the following line if pulley is wider than puller base *** |
114 |
// *** uncomment the following line if pulley is wider than puller base *** |
115 |
// ************************************************************************ |
115 |
// ************************************************************************ |
116 |
|
116 |
|
117 |
translate ([0,0, pulley_b_ht + pulley_t_ht + retainer_ht ]) rotate ([0,180,0]) |
117 |
translate ([0,0, pulley_b_ht + pulley_t_ht + retainer_ht ]) rotate ([0,180,0]) |
118 |
|
118 |
|
119 |
difference() |
119 |
difference() |
120 |
{ |
120 |
{ |
121 |
union() |
121 |
union() |
122 |
{ |
122 |
{ |
123 |
//base |
123 |
//base |
124 |
|
124 |
|
125 |
if ( pulley_b_ht < 2 ) { echo ("CAN'T DRAW PULLEY BASE, HEIGHT LESS THAN 2!!!"); } else { |
125 |
if ( pulley_b_ht < 2 ) { echo ("CAN'T DRAW PULLEY BASE, HEIGHT LESS THAN 2!!!"); } else { |
126 |
rotate_extrude($fn=pulley_b_dia*2) |
126 |
rotate_extrude($fn=pulley_b_dia*2) |
127 |
{ |
127 |
{ |
128 |
square([pulley_b_dia/2-1,pulley_b_ht]); |
128 |
square([pulley_b_dia/2-1,pulley_b_ht]); |
129 |
square([pulley_b_dia/2,pulley_b_ht-1]); |
129 |
square([pulley_b_dia/2,pulley_b_ht-1]); |
130 |
translate([pulley_b_dia/2-1,pulley_b_ht-1]) circle(1); |
130 |
translate([pulley_b_dia/2-1,pulley_b_ht-1]) circle(1); |
131 |
} |
131 |
} |
132 |
} |
132 |
} |
133 |
|
133 |
|
134 |
difference() |
134 |
difference() |
135 |
{ |
135 |
{ |
136 |
//shaft - diameter is outside diameter of pulley |
136 |
//shaft - diameter is outside diameter of pulley |
137 |
|
137 |
|
138 |
translate([0,0,pulley_b_ht]) |
138 |
translate([0,0,pulley_b_ht]) |
139 |
rotate ([0,0,360/(teeth*4)]) |
139 |
rotate ([0,0,360/(teeth*4)]) |
140 |
cylinder(r=pulley_OD/2,h=pulley_t_ht, $fn=teeth*4); |
140 |
cylinder(r=pulley_OD/2,h=pulley_t_ht, $fn=teeth*4); |
141 |
|
141 |
|
142 |
//teeth - cut out of shaft |
142 |
//teeth - cut out of shaft |
143 |
|
143 |
|
144 |
for(i=[1:teeth]) |
144 |
for(i=[1:teeth]) |
145 |
rotate([0,0,i*(360/teeth)]) |
145 |
rotate([0,0,i*(360/teeth)]) |
146 |
translate([0,-tooth_distance_from_centre,pulley_b_ht -1]) |
146 |
translate([0,-tooth_distance_from_centre,pulley_b_ht -1]) |
147 |
scale ([ tooth_width_scale , tooth_depth_scale , 1 ]) |
147 |
scale ([ tooth_width_scale , tooth_depth_scale , 1 ]) |
148 |
{ |
148 |
{ |
149 |
if ( profile == 1 ) { MXL();} |
149 |
if ( profile == 1 ) { MXL();} |
150 |
if ( profile == 2 ) { 40DP();} |
150 |
if ( profile == 2 ) { 40DP();} |
151 |
if ( profile == 3 ) { XL();} |
151 |
if ( profile == 3 ) { XL();} |
152 |
if ( profile == 4 ) { H();} |
152 |
if ( profile == 4 ) { H();} |
153 |
if ( profile == 5 ) { T2_5();} |
153 |
if ( profile == 5 ) { T2_5();} |
154 |
if ( profile == 6 ) { T5();} |
154 |
if ( profile == 6 ) { T5();} |
155 |
if ( profile == 7 ) { T10();} |
155 |
if ( profile == 7 ) { T10();} |
156 |
if ( profile == 8 ) { AT5();} |
156 |
if ( profile == 8 ) { AT5();} |
157 |
if ( profile == 9 ) { HTD_3mm();} |
157 |
if ( profile == 9 ) { HTD_3mm();} |
158 |
if ( profile == 10 ) { HTD_5mm();} |
158 |
if ( profile == 10 ) { HTD_5mm();} |
159 |
if ( profile == 11 ) { HTD_8mm();} |
159 |
if ( profile == 11 ) { HTD_8mm();} |
160 |
if ( profile == 12 ) { GT2_2mm();} |
160 |
if ( profile == 12 ) { GT2_2mm();} |
161 |
if ( profile == 13 ) { GT2_3mm();} |
161 |
if ( profile == 13 ) { GT2_3mm();} |
162 |
if ( profile == 14 ) { GT2_5mm();} |
162 |
if ( profile == 14 ) { GT2_5mm();} |
163 |
} |
163 |
} |
164 |
|
164 |
|
165 |
} |
165 |
} |
166 |
|
166 |
|
167 |
//belt retainer / idler |
167 |
//belt retainer / idler |
168 |
if ( retainer > 0 ) {translate ([0,0, pulley_b_ht + pulley_t_ht ]) |
168 |
if ( retainer > 0 ) {translate ([0,0, pulley_b_ht + pulley_t_ht ]) |
169 |
rotate_extrude($fn=teeth*4) |
169 |
rotate_extrude($fn=teeth*4) |
170 |
polygon([[0,0],[pulley_OD/2,0],[pulley_OD/2 + retainer_ht , retainer_ht],[0 , retainer_ht],[0,0]]);} |
170 |
polygon([[0,0],[pulley_OD/2,0],[pulley_OD/2 + retainer_ht , retainer_ht],[0 , retainer_ht],[0,0]]);} |
171 |
|
171 |
|
172 |
if ( idler > 0 ) {translate ([0,0, pulley_b_ht - idler_ht ]) |
172 |
if ( idler > 0 ) {translate ([0,0, pulley_b_ht - idler_ht ]) |
173 |
rotate_extrude($fn=teeth*4) |
173 |
rotate_extrude($fn=teeth*4) |
174 |
polygon([[0,0],[pulley_OD/2 + idler_ht,0],[pulley_OD/2 , idler_ht],[0 , idler_ht],[0,0]]);} |
174 |
polygon([[0,0],[pulley_OD/2 + idler_ht,0],[pulley_OD/2 , idler_ht],[0 , idler_ht],[0,0]]);} |
175 |
|
175 |
|
176 |
} |
176 |
} |
177 |
|
177 |
|
178 |
//hole for motor shaft |
178 |
//hole for motor shaft |
179 |
translate([0,0,-1])cylinder(r=motor_shaft/2,h=pulley_b_ht + pulley_t_ht + retainer_ht + 2,$fn=motor_shaft*4); |
179 |
translate([0,0,-1])cylinder(r=motor_shaft/2,h=pulley_b_ht + pulley_t_ht + retainer_ht + 2,$fn=motor_shaft*4); |
180 |
|
180 |
|
181 |
//captive nut and grub screw holes |
181 |
//captive nut and grub screw holes |
182 |
|
182 |
|
183 |
if ( pulley_b_ht < m3_nut_flats ) { echo ("CAN'T DRAW CAPTIVE NUTS, HEIGHT LESS THAN NUT DIAMETER!!!"); } else { |
183 |
if ( pulley_b_ht < m3_nut_flats ) { echo ("CAN'T DRAW CAPTIVE NUTS, HEIGHT LESS THAN NUT DIAMETER!!!"); } else { |
184 |
if ( (pulley_b_dia - motor_shaft)/2 < m3_nut_depth + 3 ) { echo ("CAN'T DRAW CAPTIVE NUTS, DIAMETER TOO SMALL FOR NUT DEPTH!!!"); } else { |
184 |
if ( (pulley_b_dia - motor_shaft)/2 < m3_nut_depth + 3 ) { echo ("CAN'T DRAW CAPTIVE NUTS, DIAMETER TOO SMALL FOR NUT DEPTH!!!"); } else { |
185 |
|
185 |
|
186 |
for(j=[1:no_of_nuts]) rotate([0,0,j*nut_angle]) |
186 |
for(j=[1:no_of_nuts]) rotate([0,0,j*nut_angle]) |
187 |
translate([0,0,nut_elevation])rotate([90,0,0]) |
187 |
translate([0,0,nut_elevation])rotate([90,0,0]) |
188 |
|
188 |
|
189 |
union() |
189 |
union() |
190 |
{ |
190 |
{ |
191 |
//entrance |
191 |
//entrance |
192 |
translate([0,-pulley_b_ht/4-0.5,motor_shaft/2+m3_nut_depth/2+nut_shaft_distance]) cube([m3_nut_flats,pulley_b_ht/2+1,m3_nut_depth],center=true); |
192 |
translate([0,-pulley_b_ht/4-0.5,motor_shaft/2+m3_nut_depth/2+nut_shaft_distance]) cube([m3_nut_flats,pulley_b_ht/2+1,m3_nut_depth],center=true); |
193 |
|
193 |
|
194 |
//nut |
194 |
//nut |
195 |
if ( m3_nut_hex > 0 ) |
195 |
if ( m3_nut_hex > 0 ) |
196 |
{ |
196 |
{ |
197 |
// hex nut |
197 |
// hex nut |
198 |
translate([0,0.25,motor_shaft/2+m3_nut_depth/2+nut_shaft_distance]) rotate([0,0,30]) cylinder(r=m3_nut_points/2,h=m3_nut_depth,center=true,$fn=6); |
198 |
translate([0,0.25,motor_shaft/2+m3_nut_depth/2+nut_shaft_distance]) rotate([0,0,30]) cylinder(r=m3_nut_points/2,h=m3_nut_depth,center=true,$fn=6); |
199 |
} else { |
199 |
} else { |
200 |
// square nut |
200 |
// square nut |
201 |
translate([0,0.25,motor_shaft/2+m3_nut_depth/2+nut_shaft_distance]) cube([m3_nut_flats,m3_nut_flats,m3_nut_depth],center=true); |
201 |
translate([0,0.25,motor_shaft/2+m3_nut_depth/2+nut_shaft_distance]) cube([m3_nut_flats,m3_nut_flats,m3_nut_depth],center=true); |
202 |
} |
202 |
} |
203 |
|
203 |
|
204 |
//grub screw hole |
204 |
//grub screw hole |
205 |
rotate([0,0,22.5])cylinder(r=m3_dia/2,h=pulley_b_dia/2+1,$fn=8); |
205 |
rotate([0,0,22.5])cylinder(r=m3_dia/2,h=pulley_b_dia/2+1,$fn=8); |
206 |
} |
206 |
} |
207 |
}} |
207 |
}} |
208 |
} |
208 |
} |
209 |
|
209 |
|
210 |
} |
210 |
} |
211 |
|
211 |
|
212 |
|
212 |
|
213 |
// Tooth profile modules |
213 |
// Tooth profile modules |
214 |
|
214 |
|
215 |
module MXL() |
215 |
module MXL() |
216 |
{ |
216 |
{ |
217 |
linear_extrude(height=pulley_t_ht+2) polygon([[-0.660421,-0.5],[-0.660421,0],[-0.621898,0.006033],[-0.587714,0.023037],[-0.560056,0.049424],[-0.541182,0.083609],[-0.417357,0.424392],[-0.398413,0.458752],[-0.370649,0.48514],[-0.336324,0.502074],[-0.297744,0.508035],[0.297744,0.508035],[0.336268,0.502074],[0.370452,0.48514],[0.39811,0.458752],[0.416983,0.424392],[0.540808,0.083609],[0.559752,0.049424],[0.587516,0.023037],[0.621841,0.006033],[0.660421,0],[0.660421,-0.5]]); |
217 |
linear_extrude(height=pulley_t_ht+2) polygon([[-0.660421,-0.5],[-0.660421,0],[-0.621898,0.006033],[-0.587714,0.023037],[-0.560056,0.049424],[-0.541182,0.083609],[-0.417357,0.424392],[-0.398413,0.458752],[-0.370649,0.48514],[-0.336324,0.502074],[-0.297744,0.508035],[0.297744,0.508035],[0.336268,0.502074],[0.370452,0.48514],[0.39811,0.458752],[0.416983,0.424392],[0.540808,0.083609],[0.559752,0.049424],[0.587516,0.023037],[0.621841,0.006033],[0.660421,0],[0.660421,-0.5]]); |
218 |
} |
218 |
} |
219 |
|
219 |
|
220 |
module 40DP() |
220 |
module 40DP() |
221 |
{ |
221 |
{ |
222 |
linear_extrude(height=pulley_t_ht+2) polygon([[-0.612775,-0.5],[-0.612775,0],[-0.574719,0.010187],[-0.546453,0.0381],[-0.355953,0.3683],[-0.327604,0.405408],[-0.291086,0.433388],[-0.248548,0.451049],[-0.202142,0.4572],[0.202494,0.4572],[0.248653,0.451049],[0.291042,0.433388],[0.327609,0.405408],[0.356306,0.3683],[0.546806,0.0381],[0.574499,0.010187],[0.612775,0],[0.612775,-0.5]]); |
222 |
linear_extrude(height=pulley_t_ht+2) polygon([[-0.612775,-0.5],[-0.612775,0],[-0.574719,0.010187],[-0.546453,0.0381],[-0.355953,0.3683],[-0.327604,0.405408],[-0.291086,0.433388],[-0.248548,0.451049],[-0.202142,0.4572],[0.202494,0.4572],[0.248653,0.451049],[0.291042,0.433388],[0.327609,0.405408],[0.356306,0.3683],[0.546806,0.0381],[0.574499,0.010187],[0.612775,0],[0.612775,-0.5]]); |
223 |
} |
223 |
} |
224 |
|
224 |
|
225 |
module XL() |
225 |
module XL() |
226 |
{ |
226 |
{ |
227 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.525411,-1],[-1.525411,0],[-1.41777,0.015495],[-1.320712,0.059664],[-1.239661,0.129034],[-1.180042,0.220133],[-0.793044,1.050219],[-0.733574,1.141021],[-0.652507,1.210425],[-0.555366,1.254759],[-0.447675,1.270353],[0.447675,1.270353],[0.555366,1.254759],[0.652507,1.210425],[0.733574,1.141021],[0.793044,1.050219],[1.180042,0.220133],[1.239711,0.129034],[1.320844,0.059664],[1.417919,0.015495],[1.525411,0],[1.525411,-1]]); |
227 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.525411,-1],[-1.525411,0],[-1.41777,0.015495],[-1.320712,0.059664],[-1.239661,0.129034],[-1.180042,0.220133],[-0.793044,1.050219],[-0.733574,1.141021],[-0.652507,1.210425],[-0.555366,1.254759],[-0.447675,1.270353],[0.447675,1.270353],[0.555366,1.254759],[0.652507,1.210425],[0.733574,1.141021],[0.793044,1.050219],[1.180042,0.220133],[1.239711,0.129034],[1.320844,0.059664],[1.417919,0.015495],[1.525411,0],[1.525411,-1]]); |
228 |
} |
228 |
} |
229 |
|
229 |
|
230 |
module H() |
230 |
module H() |
231 |
{ |
231 |
{ |
232 |
linear_extrude(height=pulley_t_ht+2) polygon([[-2.6797,-1],[-2.6797,0],[-2.600907,0.006138],[-2.525342,0.024024],[-2.45412,0.052881],[-2.388351,0.091909],[-2.329145,0.140328],[-2.277614,0.197358],[-2.234875,0.262205],[-2.202032,0.334091],[-1.75224,1.57093],[-1.719538,1.642815],[-1.676883,1.707663],[-1.62542,1.764693],[-1.566256,1.813112],[-1.500512,1.85214],[-1.4293,1.880997],[-1.353742,1.898883],[-1.274949,1.905021],[1.275281,1.905021],[1.354056,1.898883],[1.429576,1.880997],[1.500731,1.85214],[1.566411,1.813112],[1.625508,1.764693],[1.676919,1.707663],[1.719531,1.642815],[1.752233,1.57093],[2.20273,0.334091],[2.235433,0.262205],[2.278045,0.197358],[2.329455,0.140328],[2.388553,0.091909],[2.454233,0.052881],[2.525384,0.024024],[2.600904,0.006138],[2.6797,0],[2.6797,-1]]); |
232 |
linear_extrude(height=pulley_t_ht+2) polygon([[-2.6797,-1],[-2.6797,0],[-2.600907,0.006138],[-2.525342,0.024024],[-2.45412,0.052881],[-2.388351,0.091909],[-2.329145,0.140328],[-2.277614,0.197358],[-2.234875,0.262205],[-2.202032,0.334091],[-1.75224,1.57093],[-1.719538,1.642815],[-1.676883,1.707663],[-1.62542,1.764693],[-1.566256,1.813112],[-1.500512,1.85214],[-1.4293,1.880997],[-1.353742,1.898883],[-1.274949,1.905021],[1.275281,1.905021],[1.354056,1.898883],[1.429576,1.880997],[1.500731,1.85214],[1.566411,1.813112],[1.625508,1.764693],[1.676919,1.707663],[1.719531,1.642815],[1.752233,1.57093],[2.20273,0.334091],[2.235433,0.262205],[2.278045,0.197358],[2.329455,0.140328],[2.388553,0.091909],[2.454233,0.052881],[2.525384,0.024024],[2.600904,0.006138],[2.6797,0],[2.6797,-1]]); |
233 |
} |
233 |
} |
234 |
|
234 |
|
235 |
module T2_5() |
235 |
module T2_5() |
236 |
{ |
236 |
{ |
237 |
linear_extrude(height=pulley_t_ht+2) polygon([[-0.839258,-0.5],[-0.839258,0],[-0.770246,0.021652],[-0.726369,0.079022],[-0.529167,0.620889],[-0.485025,0.67826],[-0.416278,0.699911],[0.416278,0.699911],[0.484849,0.67826],[0.528814,0.620889],[0.726369,0.079022],[0.770114,0.021652],[0.839258,0],[0.839258,-0.5]]); |
237 |
linear_extrude(height=pulley_t_ht+2) polygon([[-0.839258,-0.5],[-0.839258,0],[-0.770246,0.021652],[-0.726369,0.079022],[-0.529167,0.620889],[-0.485025,0.67826],[-0.416278,0.699911],[0.416278,0.699911],[0.484849,0.67826],[0.528814,0.620889],[0.726369,0.079022],[0.770114,0.021652],[0.839258,0],[0.839258,-0.5]]); |
238 |
} |
238 |
} |
239 |
|
239 |
|
240 |
module T5() |
240 |
module T5() |
241 |
{ |
241 |
{ |
242 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.632126,-0.5],[-1.632126,0],[-1.568549,0.004939],[-1.507539,0.019367],[-1.450023,0.042686],[-1.396912,0.074224],[-1.349125,0.113379],[-1.307581,0.159508],[-1.273186,0.211991],[-1.246868,0.270192],[-1.009802,0.920362],[-0.983414,0.978433],[-0.949018,1.030788],[-0.907524,1.076798],[-0.859829,1.115847],[-0.80682,1.147314],[-0.749402,1.170562],[-0.688471,1.184956],[-0.624921,1.189895],[0.624971,1.189895],[0.688622,1.184956],[0.749607,1.170562],[0.807043,1.147314],[0.860055,1.115847],[0.907754,1.076798],[0.949269,1.030788],[0.9837,0.978433],[1.010193,0.920362],[1.246907,0.270192],[1.273295,0.211991],[1.307726,0.159508],[1.349276,0.113379],[1.397039,0.074224],[1.450111,0.042686],[1.507589,0.019367],[1.568563,0.004939],[1.632126,0],[1.632126,-0.5]]); |
242 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.632126,-0.5],[-1.632126,0],[-1.568549,0.004939],[-1.507539,0.019367],[-1.450023,0.042686],[-1.396912,0.074224],[-1.349125,0.113379],[-1.307581,0.159508],[-1.273186,0.211991],[-1.246868,0.270192],[-1.009802,0.920362],[-0.983414,0.978433],[-0.949018,1.030788],[-0.907524,1.076798],[-0.859829,1.115847],[-0.80682,1.147314],[-0.749402,1.170562],[-0.688471,1.184956],[-0.624921,1.189895],[0.624971,1.189895],[0.688622,1.184956],[0.749607,1.170562],[0.807043,1.147314],[0.860055,1.115847],[0.907754,1.076798],[0.949269,1.030788],[0.9837,0.978433],[1.010193,0.920362],[1.246907,0.270192],[1.273295,0.211991],[1.307726,0.159508],[1.349276,0.113379],[1.397039,0.074224],[1.450111,0.042686],[1.507589,0.019367],[1.568563,0.004939],[1.632126,0],[1.632126,-0.5]]); |
243 |
} |
243 |
} |
244 |
|
244 |
|
245 |
module T10() |
245 |
module T10() |
246 |
{ |
246 |
{ |
247 |
linear_extrude(height=pulley_t_ht+2) polygon([[-3.06511,-1],[-3.06511,0],[-2.971998,0.007239],[-2.882718,0.028344],[-2.79859,0.062396],[-2.720931,0.108479],[-2.651061,0.165675],[-2.590298,0.233065],[-2.539962,0.309732],[-2.501371,0.394759],[-1.879071,2.105025],[-1.840363,2.190052],[-1.789939,2.266719],[-1.729114,2.334109],[-1.659202,2.391304],[-1.581518,2.437387],[-1.497376,2.47144],[-1.408092,2.492545],[-1.314979,2.499784],[1.314979,2.499784],[1.408091,2.492545],[1.497371,2.47144],[1.581499,2.437387],[1.659158,2.391304],[1.729028,2.334109],[1.789791,2.266719],[1.840127,2.190052],[1.878718,2.105025],[2.501018,0.394759],[2.539726,0.309732],[2.59015,0.233065],[2.650975,0.165675],[2.720887,0.108479],[2.798571,0.062396],[2.882713,0.028344],[2.971997,0.007239],[3.06511,0],[3.06511,-1]]); |
247 |
linear_extrude(height=pulley_t_ht+2) polygon([[-3.06511,-1],[-3.06511,0],[-2.971998,0.007239],[-2.882718,0.028344],[-2.79859,0.062396],[-2.720931,0.108479],[-2.651061,0.165675],[-2.590298,0.233065],[-2.539962,0.309732],[-2.501371,0.394759],[-1.879071,2.105025],[-1.840363,2.190052],[-1.789939,2.266719],[-1.729114,2.334109],[-1.659202,2.391304],[-1.581518,2.437387],[-1.497376,2.47144],[-1.408092,2.492545],[-1.314979,2.499784],[1.314979,2.499784],[1.408091,2.492545],[1.497371,2.47144],[1.581499,2.437387],[1.659158,2.391304],[1.729028,2.334109],[1.789791,2.266719],[1.840127,2.190052],[1.878718,2.105025],[2.501018,0.394759],[2.539726,0.309732],[2.59015,0.233065],[2.650975,0.165675],[2.720887,0.108479],[2.798571,0.062396],[2.882713,0.028344],[2.971997,0.007239],[3.06511,0],[3.06511,-1]]); |
248 |
} |
248 |
} |
249 |
|
249 |
|
250 |
module AT5() |
250 |
module AT5() |
251 |
{ |
251 |
{ |
252 |
linear_extrude(height=pulley_t_ht+2) polygon([[-2.134129,-0.75],[-2.134129,0],[-2.058023,0.005488],[-1.984595,0.021547],[-1.914806,0.047569],[-1.849614,0.082947],[-1.789978,0.127073],[-1.736857,0.179338],[-1.691211,0.239136],[-1.653999,0.305859],[-1.349199,0.959203],[-1.286933,1.054635],[-1.201914,1.127346],[-1.099961,1.173664],[-0.986896,1.18992],[0.986543,1.18992],[1.099614,1.173664],[1.201605,1.127346],[1.286729,1.054635],[1.349199,0.959203],[1.653646,0.305859],[1.690859,0.239136],[1.73651,0.179338],[1.789644,0.127073],[1.849305,0.082947],[1.914539,0.047569],[1.984392,0.021547],[2.057906,0.005488],[2.134129,0],[2.134129,-0.75]]); |
252 |
linear_extrude(height=pulley_t_ht+2) polygon([[-2.134129,-0.75],[-2.134129,0],[-2.058023,0.005488],[-1.984595,0.021547],[-1.914806,0.047569],[-1.849614,0.082947],[-1.789978,0.127073],[-1.736857,0.179338],[-1.691211,0.239136],[-1.653999,0.305859],[-1.349199,0.959203],[-1.286933,1.054635],[-1.201914,1.127346],[-1.099961,1.173664],[-0.986896,1.18992],[0.986543,1.18992],[1.099614,1.173664],[1.201605,1.127346],[1.286729,1.054635],[1.349199,0.959203],[1.653646,0.305859],[1.690859,0.239136],[1.73651,0.179338],[1.789644,0.127073],[1.849305,0.082947],[1.914539,0.047569],[1.984392,0.021547],[2.057906,0.005488],[2.134129,0],[2.134129,-0.75]]); |
253 |
} |
253 |
} |
254 |
|
254 |
|
255 |
module HTD_3mm() |
255 |
module HTD_3mm() |
256 |
{ |
256 |
{ |
257 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.135062,-0.5],[-1.135062,0],[-1.048323,0.015484],[-0.974284,0.058517],[-0.919162,0.123974],[-0.889176,0.206728],[-0.81721,0.579614],[-0.800806,0.653232],[-0.778384,0.72416],[-0.750244,0.792137],[-0.716685,0.856903],[-0.678005,0.918199],[-0.634505,0.975764],[-0.586483,1.029338],[-0.534238,1.078662],[-0.47807,1.123476],[-0.418278,1.16352],[-0.355162,1.198533],[-0.289019,1.228257],[-0.22015,1.25243],[-0.148854,1.270793],[-0.07543,1.283087],[-0.000176,1.28905],[0.075081,1.283145],[0.148515,1.270895],[0.219827,1.252561],[0.288716,1.228406],[0.354879,1.19869],[0.418018,1.163675],[0.477831,1.123623],[0.534017,1.078795],[0.586276,1.029452],[0.634307,0.975857],[0.677809,0.91827],[0.716481,0.856953],[0.750022,0.792167],[0.778133,0.724174],[0.800511,0.653236],[0.816857,0.579614],[0.888471,0.206728],[0.919014,0.123974],[0.974328,0.058517],[1.048362,0.015484],[1.135062,0],[1.135062,-0.5]]); |
257 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.135062,-0.5],[-1.135062,0],[-1.048323,0.015484],[-0.974284,0.058517],[-0.919162,0.123974],[-0.889176,0.206728],[-0.81721,0.579614],[-0.800806,0.653232],[-0.778384,0.72416],[-0.750244,0.792137],[-0.716685,0.856903],[-0.678005,0.918199],[-0.634505,0.975764],[-0.586483,1.029338],[-0.534238,1.078662],[-0.47807,1.123476],[-0.418278,1.16352],[-0.355162,1.198533],[-0.289019,1.228257],[-0.22015,1.25243],[-0.148854,1.270793],[-0.07543,1.283087],[-0.000176,1.28905],[0.075081,1.283145],[0.148515,1.270895],[0.219827,1.252561],[0.288716,1.228406],[0.354879,1.19869],[0.418018,1.163675],[0.477831,1.123623],[0.534017,1.078795],[0.586276,1.029452],[0.634307,0.975857],[0.677809,0.91827],[0.716481,0.856953],[0.750022,0.792167],[0.778133,0.724174],[0.800511,0.653236],[0.816857,0.579614],[0.888471,0.206728],[0.919014,0.123974],[0.974328,0.058517],[1.048362,0.015484],[1.135062,0],[1.135062,-0.5]]); |
258 |
} |
258 |
} |
259 |
|
259 |
|
260 |
module HTD_5mm() |
260 |
module HTD_5mm() |
261 |
{ |
261 |
{ |
262 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.89036,-0.75],[-1.89036,0],[-1.741168,0.02669],[-1.61387,0.100806],[-1.518984,0.21342],[-1.467026,0.3556],[-1.427162,0.960967],[-1.398568,1.089602],[-1.359437,1.213531],[-1.310296,1.332296],[-1.251672,1.445441],[-1.184092,1.552509],[-1.108081,1.653042],[-1.024167,1.746585],[-0.932877,1.832681],[-0.834736,1.910872],[-0.730271,1.980701],[-0.62001,2.041713],[-0.504478,2.09345],[-0.384202,2.135455],[-0.259708,2.167271],[-0.131524,2.188443],[-0.000176,2.198511],[0.131296,2.188504],[0.259588,2.167387],[0.384174,2.135616],[0.504527,2.093648],[0.620123,2.04194],[0.730433,1.980949],[0.834934,1.911132],[0.933097,1.832945],[1.024398,1.746846],[1.108311,1.653291],[1.184308,1.552736],[1.251865,1.445639],[1.310455,1.332457],[1.359552,1.213647],[1.39863,1.089664],[1.427162,0.960967],[1.467026,0.3556],[1.518984,0.21342],[1.61387,0.100806],[1.741168,0.02669],[1.89036,0],[1.89036,-0.75]]); |
262 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.89036,-0.75],[-1.89036,0],[-1.741168,0.02669],[-1.61387,0.100806],[-1.518984,0.21342],[-1.467026,0.3556],[-1.427162,0.960967],[-1.398568,1.089602],[-1.359437,1.213531],[-1.310296,1.332296],[-1.251672,1.445441],[-1.184092,1.552509],[-1.108081,1.653042],[-1.024167,1.746585],[-0.932877,1.832681],[-0.834736,1.910872],[-0.730271,1.980701],[-0.62001,2.041713],[-0.504478,2.09345],[-0.384202,2.135455],[-0.259708,2.167271],[-0.131524,2.188443],[-0.000176,2.198511],[0.131296,2.188504],[0.259588,2.167387],[0.384174,2.135616],[0.504527,2.093648],[0.620123,2.04194],[0.730433,1.980949],[0.834934,1.911132],[0.933097,1.832945],[1.024398,1.746846],[1.108311,1.653291],[1.184308,1.552736],[1.251865,1.445639],[1.310455,1.332457],[1.359552,1.213647],[1.39863,1.089664],[1.427162,0.960967],[1.467026,0.3556],[1.518984,0.21342],[1.61387,0.100806],[1.741168,0.02669],[1.89036,0],[1.89036,-0.75]]); |
263 |
} |
263 |
} |
264 |
|
264 |
|
265 |
module HTD_8mm() |
265 |
module HTD_8mm() |
266 |
{ |
266 |
{ |
267 |
linear_extrude(height=pulley_t_ht+2) polygon([[-3.301471,-1],[-3.301471,0],[-3.16611,0.012093],[-3.038062,0.047068],[-2.919646,0.10297],[-2.813182,0.177844],[-2.720989,0.269734],[-2.645387,0.376684],[-2.588694,0.496739],[-2.553229,0.627944],[-2.460801,1.470025],[-2.411413,1.691917],[-2.343887,1.905691],[-2.259126,2.110563],[-2.158035,2.30575],[-2.041518,2.490467],[-1.910478,2.66393],[-1.76582,2.825356],[-1.608446,2.973961],[-1.439261,3.10896],[-1.259169,3.22957],[-1.069074,3.335006],[-0.869878,3.424485],[-0.662487,3.497224],[-0.447804,3.552437],[-0.226732,3.589341],[-0.000176,3.607153],[0.226511,3.589461],[0.447712,3.552654],[0.66252,3.497516],[0.870027,3.424833],[1.069329,3.33539],[1.259517,3.229973],[1.439687,3.109367],[1.608931,2.974358],[1.766344,2.825731],[1.911018,2.664271],[2.042047,2.490765],[2.158526,2.305998],[2.259547,2.110755],[2.344204,1.905821],[2.411591,1.691983],[2.460801,1.470025],[2.553229,0.627944],[2.588592,0.496739],[2.645238,0.376684],[2.720834,0.269734],[2.81305,0.177844],[2.919553,0.10297],[3.038012,0.047068],[3.166095,0.012093],[3.301471,0],[3.301471,-1]]); |
267 |
linear_extrude(height=pulley_t_ht+2) polygon([[-3.301471,-1],[-3.301471,0],[-3.16611,0.012093],[-3.038062,0.047068],[-2.919646,0.10297],[-2.813182,0.177844],[-2.720989,0.269734],[-2.645387,0.376684],[-2.588694,0.496739],[-2.553229,0.627944],[-2.460801,1.470025],[-2.411413,1.691917],[-2.343887,1.905691],[-2.259126,2.110563],[-2.158035,2.30575],[-2.041518,2.490467],[-1.910478,2.66393],[-1.76582,2.825356],[-1.608446,2.973961],[-1.439261,3.10896],[-1.259169,3.22957],[-1.069074,3.335006],[-0.869878,3.424485],[-0.662487,3.497224],[-0.447804,3.552437],[-0.226732,3.589341],[-0.000176,3.607153],[0.226511,3.589461],[0.447712,3.552654],[0.66252,3.497516],[0.870027,3.424833],[1.069329,3.33539],[1.259517,3.229973],[1.439687,3.109367],[1.608931,2.974358],[1.766344,2.825731],[1.911018,2.664271],[2.042047,2.490765],[2.158526,2.305998],[2.259547,2.110755],[2.344204,1.905821],[2.411591,1.691983],[2.460801,1.470025],[2.553229,0.627944],[2.588592,0.496739],[2.645238,0.376684],[2.720834,0.269734],[2.81305,0.177844],[2.919553,0.10297],[3.038012,0.047068],[3.166095,0.012093],[3.301471,0],[3.301471,-1]]); |
268 |
} |
268 |
} |
269 |
|
269 |
|
270 |
module GT2_2mm() |
270 |
module GT2_2mm() |
271 |
{ |
271 |
{ |
272 |
linear_extrude(height=pulley_t_ht+2) polygon([[0.747183,-0.5],[0.747183,0],[0.647876,0.037218],[0.598311,0.130528],[0.578556,0.238423],[0.547158,0.343077],[0.504649,0.443762],[0.451556,0.53975],[0.358229,0.636924],[0.2484,0.707276],[0.127259,0.750044],[0,0.76447],[-0.127259,0.750044],[-0.2484,0.707276],[-0.358229,0.636924],[-0.451556,0.53975],[-0.504797,0.443762],[-0.547291,0.343077],[-0.578605,0.238423],[-0.598311,0.130528],[-0.648009,0.037218],[-0.747183,0],[-0.747183,-0.5]]); |
272 |
linear_extrude(height=pulley_t_ht+2) polygon([[0.747183,-0.5],[0.747183,0],[0.647876,0.037218],[0.598311,0.130528],[0.578556,0.238423],[0.547158,0.343077],[0.504649,0.443762],[0.451556,0.53975],[0.358229,0.636924],[0.2484,0.707276],[0.127259,0.750044],[0,0.76447],[-0.127259,0.750044],[-0.2484,0.707276],[-0.358229,0.636924],[-0.451556,0.53975],[-0.504797,0.443762],[-0.547291,0.343077],[-0.578605,0.238423],[-0.598311,0.130528],[-0.648009,0.037218],[-0.747183,0],[-0.747183,-0.5]]); |
273 |
} |
273 |
} |
274 |
|
274 |
|
275 |
module GT2_3mm() |
275 |
module GT2_3mm() |
276 |
{ |
276 |
{ |
277 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.155171,-0.5],[-1.155171,0],[-1.065317,0.016448],[-0.989057,0.062001],[-0.93297,0.130969],[-0.90364,0.217664],[-0.863705,0.408181],[-0.800056,0.591388],[-0.713587,0.765004],[-0.60519,0.926747],[-0.469751,1.032548],[-0.320719,1.108119],[-0.162625,1.153462],[0,1.168577],[0.162625,1.153462],[0.320719,1.108119],[0.469751,1.032548],[0.60519,0.926747],[0.713587,0.765004],[0.800056,0.591388],[0.863705,0.408181],[0.90364,0.217664],[0.932921,0.130969],[0.988924,0.062001],[1.065168,0.016448],[1.155171,0],[1.155171,-0.5]]); |
277 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.155171,-0.5],[-1.155171,0],[-1.065317,0.016448],[-0.989057,0.062001],[-0.93297,0.130969],[-0.90364,0.217664],[-0.863705,0.408181],[-0.800056,0.591388],[-0.713587,0.765004],[-0.60519,0.926747],[-0.469751,1.032548],[-0.320719,1.108119],[-0.162625,1.153462],[0,1.168577],[0.162625,1.153462],[0.320719,1.108119],[0.469751,1.032548],[0.60519,0.926747],[0.713587,0.765004],[0.800056,0.591388],[0.863705,0.408181],[0.90364,0.217664],[0.932921,0.130969],[0.988924,0.062001],[1.065168,0.016448],[1.155171,0],[1.155171,-0.5]]); |
278 |
} |
278 |
} |
279 |
|
279 |
|
280 |
module GT2_5mm() |
280 |
module GT2_5mm() |
281 |
{ |
281 |
{ |
282 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.975908,-0.75],[-1.975908,0],[-1.797959,0.03212],[-1.646634,0.121224],[-1.534534,0.256431],[-1.474258,0.426861],[-1.446911,0.570808],[-1.411774,0.712722],[-1.368964,0.852287],[-1.318597,0.989189],[-1.260788,1.123115],[-1.195654,1.25375],[-1.12331,1.380781],[-1.043869,1.503892],[-0.935264,1.612278],[-0.817959,1.706414],[-0.693181,1.786237],[-0.562151,1.851687],[-0.426095,1.9027],[-0.286235,1.939214],[-0.143795,1.961168],[0,1.9685],[0.143796,1.961168],[0.286235,1.939214],[0.426095,1.9027],[0.562151,1.851687],[0.693181,1.786237],[0.817959,1.706414],[0.935263,1.612278],[1.043869,1.503892],[1.123207,1.380781],[1.195509,1.25375],[1.26065,1.123115],[1.318507,0.989189],[1.368956,0.852287],[1.411872,0.712722],[1.447132,0.570808],[1.474611,0.426861],[1.534583,0.256431],[1.646678,0.121223],[1.798064,0.03212],[1.975908,0],[1.975908,-0.75]]); |
282 |
linear_extrude(height=pulley_t_ht+2) polygon([[-1.975908,-0.75],[-1.975908,0],[-1.797959,0.03212],[-1.646634,0.121224],[-1.534534,0.256431],[-1.474258,0.426861],[-1.446911,0.570808],[-1.411774,0.712722],[-1.368964,0.852287],[-1.318597,0.989189],[-1.260788,1.123115],[-1.195654,1.25375],[-1.12331,1.380781],[-1.043869,1.503892],[-0.935264,1.612278],[-0.817959,1.706414],[-0.693181,1.786237],[-0.562151,1.851687],[-0.426095,1.9027],[-0.286235,1.939214],[-0.143795,1.961168],[0,1.9685],[0.143796,1.961168],[0.286235,1.939214],[0.426095,1.9027],[0.562151,1.851687],[0.693181,1.786237],[0.817959,1.706414],[0.935263,1.612278],[1.043869,1.503892],[1.123207,1.380781],[1.195509,1.25375],[1.26065,1.123115],[1.318507,0.989189],[1.368956,0.852287],[1.411872,0.712722],[1.447132,0.570808],[1.474611,0.426861],[1.534583,0.256431],[1.646678,0.121223],[1.798064,0.03212],[1.975908,0],[1.975908,-0.75]]); |
283 |
} |
283 |
} |
284 |
|
284 |
|