|
@@ -35,12 +35,37 @@ module vis(diam_int = 4, diam_ext = 6, DA = 0.25, BC = 0.25, pas = 1, haut = 10,
|
|
|
//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]]);
|
|
|
+ A = [ for(i=[0 : precision : angle])
|
|
|
+ (i*pas/360 - pas) > 0 ?
|
|
|
+ (i*pas/360 - pas) > haut ?
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, haut ] : //si Za > haut
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, i*pas/360 - pas ] : //si 0 < Za < haut
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, 0 ] ]; //si Za < 0
|
|
|
+
|
|
|
+ B = [ for(i=[0 : precision : angle])
|
|
|
+ (i*pas/360 - pas + AB + BC) > 0 ?
|
|
|
+ (i*pas/360 - pas + AB) > 0 ?
|
|
|
+ (i*pas/360 - pas + AB) > haut ?
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, haut ] :
|
|
|
+ [ d2*cos(i)/2, d2*sin(i)/2, i*pas/360 - pas + AB ] :
|
|
|
+ [ d2*cos(i)/2, d2*sin(i)/2, 0 ] :
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, 0 ] ];
|
|
|
+
|
|
|
+ C = [ for(i=[0 : precision : angle]) (i*pas/360 - pas + AB + BC) > 0 ?
|
|
|
+ (i*pas/360 - pas + AB) > haut ?
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, haut] :
|
|
|
+ (i*pas/360 - pas + AB + BC) > haut ?
|
|
|
+ [ d2*cos(i)/2, d2*sin(i)/2, haut] :
|
|
|
+ [ d2*cos(i)/2, d2*sin(i)/2, i*pas/360 - pas + AB + BC] :
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, 0] ];
|
|
|
+
|
|
|
+ D = [ for(i=[0 : precision : angle]) (i*pas/360 - pas + AB + BC + AB) > 0 ?
|
|
|
+ (i*pas/360 - pas + AB + BC + AB) > haut ?
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, haut] :
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, i*pas/360 - pas + AB + BC + AB] :
|
|
|
+ [ d1*cos(i)/2, d1*sin(i)/2, 0] ];
|
|
|
+
|
|
|
+ points = concat(A, B, C, D, [[0, 0, 0]], [[0, 0, haut]]);
|
|
|
|
|
|
longueur = len(A);
|
|
|
index_A = 0;
|
|
@@ -75,15 +100,15 @@ module vis(diam_int = 4, diam_ext = 6, DA = 0.25, BC = 0.25, pas = 1, haut = 10,
|
|
|
face_fermeture_basse, face_fermeture_haute
|
|
|
);
|
|
|
|
|
|
- difference()
|
|
|
- {
|
|
|
+// difference()
|
|
|
+// {
|
|
|
polyhedron(points, faces);
|
|
|
-
|
|
|
- translate([0, 0, -pas])
|
|
|
- {cylinder(d = 2*d2, h = pas);}
|
|
|
- translate([0, 0, haut])
|
|
|
- {cylinder(d = 2*d2, h = 3*pas);}
|
|
|
- }
|
|
|
+//
|
|
|
+// translate([0, 0, -pas])
|
|
|
+// {cylinder(d = 2*d2, h = pas);}
|
|
|
+// translate([0, 0, haut])
|
|
|
+// {cylinder(d = 2*d2, h = 3*pas);}
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
module vis_metrique(d = 4, haut = 10, precision = 5, diam_buse = 0.4)
|