|
@@ -27,21 +27,21 @@ module vis(diam_int = 4, diam_ext = 6, DA = 0.25, BC = 0.25, pas = 1, haut = 10,
|
|
|
*/
|
|
|
d1 = diam_int - diam_buse;
|
|
|
d2 = diam_ext - diam_buse;
|
|
|
-
|
|
|
+
|
|
|
//ajout de 2 tour pour avoir une coupe propre lors de la création de la vis
|
|
|
nbr_tours = ceil(haut/pas) + 2;
|
|
|
angle = nbr_tours * 360;
|
|
|
|
|
|
//par symétrie AB = CD
|
|
|
AB = pas/2 - BC/2 - DA/2;
|
|
|
-
|
|
|
+
|
|
|
A = [ for(i=[0 : precision : angle]) [ d1*cos(i)/2, d1*sin(i)/2, i*pas/360 - pas ] ] ;
|
|
|
B = [ for(i=[0 : precision : angle]) [ d2*cos(i)/2, d2*sin(i)/2, i*pas/360 - pas + AB ] ];
|
|
|
C = [ for(i=[0 : precision : angle]) [ d2*cos(i)/2, d2*sin(i)/2, i*pas/360 - pas + AB + BC] ];
|
|
|
D = [ for(i=[0 : precision : angle]) [ d1*cos(i)/2, d1*sin(i)/2, i*pas/360 - pas + AB + BC + AB] ];
|
|
|
|
|
|
points = concat(A, B, C, D, [[0, 0, 0]], [[0, 0, nbr_tours * pas]]);
|
|
|
-
|
|
|
+
|
|
|
longueur = len(A);
|
|
|
index_A = 0;
|
|
|
index_B = longueur;
|
|
@@ -49,7 +49,7 @@ module vis(diam_int = 4, diam_ext = 6, DA = 0.25, BC = 0.25, pas = 1, haut = 10,
|
|
|
index_D = index_C + longueur;
|
|
|
index_O = index_D + longueur;
|
|
|
index_Oh = index_O + 1;
|
|
|
-
|
|
|
+
|
|
|
faces_inferieurs1 = [ for(i=[0:longueur - 2]) [ index_A + i, index_B + i, index_A + 1 + i ] ];
|
|
|
faces_inferieurs2 = [ for(i=[0:longueur - 2]) [ index_B + i, index_B + 1 + i, index_A + 1 + i ] ];
|
|
|
faces_exterieurs1 = [ for(i=[0:longueur - 2]) [ index_B + 1+ i, index_B + i, index_C + i ] ];
|
|
@@ -78,7 +78,7 @@ module vis(diam_int = 4, diam_ext = 6, DA = 0.25, BC = 0.25, pas = 1, haut = 10,
|
|
|
difference()
|
|
|
{
|
|
|
polyhedron(points, faces);
|
|
|
-
|
|
|
+
|
|
|
translate([0, 0, -pas])
|
|
|
{cylinder(d = 2*d2, h = pas);}
|
|
|
translate([0, 0, haut])
|
|
@@ -90,9 +90,9 @@ module vis_metrique(d = 4, haut = 10, precision = 5, diam_buse = 0.4)
|
|
|
{
|
|
|
// 0 1 2 3 4 5 6 7 8 9
|
|
|
pas_metrique = [ -1.0, 0.25, 0.40, 0.50, 0.70, 0.80, 1.00, -1.0, 1.25, -1.0,
|
|
|
- 1.50, -1.0, 1.75, -1.0, 2.00, -1.0, 2.00, -1.0, 2.50, -1.0,
|
|
|
- 2.50];
|
|
|
-
|
|
|
+ 1.50, -1.0, 1.75, -1.0, 2.00, -1.0, 2.00, -1.0, 2.50, -1.0,
|
|
|
+ 2.50];
|
|
|
+
|
|
|
H = 0.866*pas_metrique[d];
|
|
|
d1 = d - 1.0825*pas_metrique[d];
|
|
|
if(pas_metrique[d] != -1)
|
|
@@ -113,9 +113,9 @@ module vis_sans_fin(m = 1, alpha = 20, diam = 15, haut = 10, precision = 5, diam
|
|
|
h = hf + ha;
|
|
|
|
|
|
p = m*PI;
|
|
|
-
|
|
|
+
|
|
|
largeur_base = 2*hf*tan(alpha) + p/2;
|
|
|
largeur_crete = largeur_base - 2*h*tan(alpha);
|
|
|
-
|
|
|
+
|
|
|
vis(diam_int = diam, diam_ext = diam + 2*h, DA = p - largeur_base, BC = largeur_crete, pas = p, haut = haut, precision = precision, diam_buse = diam_buse);
|
|
|
-}
|
|
|
+}
|