« Presentation openscad : Etape 4 » : différence entre les versions

De Wiki du ThiLab
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 56 : Ligne 56 :


[[Fichier:Oscc etape4d.png|200x200px|vignette|centre]]
[[Fichier:Oscc etape4d.png|200x200px|vignette|centre]]
En effet, le triangle [1,0,2] n'est pas oriente dans le bon sens. Pour le voir, il suffit de presser F12 pour changer le mode de visualisation en "thrown together". On voit alors les faces mal orientees en violet :
[[Fichier:Oscc etape4e.png|200x200px|vignette|centre]]
Dans ce mode de visalisation , les operation booleennes sur les volumes ne sont pas prises en compte. Presser F9 pour revenir au mode de visualisation standard "OpenCSG".


== Resultat de l'etape 4 ==
== Resultat de l'etape 4 ==

Version du 22 août 2014 à 20:55

Retour a la presentation

Etape 4 : les polyedres

Pour cette etape, nous allons ajouter l'element suivant aux elements deja crees :

Nous allons realiser cet element grace a l'utilisation d'un polyedre.

On definit un polyedre grace a un ensemble de points et de triangles reliant ces points qui formeront la surface du polyedre :

La syntaxe de la fonction polyedre est la suivante :

polyhedron(points=[...], triangles=[...]);

Les points vont etre definit par des triplets [x,y,z] ou x,y et z sont les coordonnees des points et les triangles par des triplets [l,m,n] ou l,m et n sont les numero des points correspondant aux sommets des triangles. L'ordre d'apparition des points est donc important.

Chaque triangle est oriente de telle maniere a ce que les 3 points le definissant semblent tourner dans le sens des aiguilles d'une montre quand on regarde vers l'interieur de l'objet. Si un triangle est mal oriente, openscad m'incluera pas le polyedre dans le compilation de l'objet (F6) ce qui peut donner des resultats inattendus, malgres que la previsualisation de l'objet (F5) affiche l'objet correctement.

Par example, le code suivant :

$fn=60;

union()
{
		intersection()
		{
			translate([-10,-10,-10]) cube([20,20,20]);
			sphere(r=12);
		}

		cylinder(r=7.5, h=20);

		minkowski()
		{
			translate([-10,-10,-25]) cube([20,20,20]);
			cylinder(r=2,h=1);
		}
	
		translate([-15,-15,-45]) 	polyhedron(points=[[0,0,20],[0,30,20],[30,30,20],[30,0,20], [-10,-10,0],[-10,40,0],[40,40,0],[40,-10,0]], triangles=[[1,0,2],[2,3,0], [1,0,4], [4,5,1], [5,6,1],[1,6,2],[2,6,7],[2,7,3],[3,7,4], [4,0,3], [4,6,5],[6,4,7]]);
}

sera correctement previsualise :

mais ne sera pas correctement compile :

En effet, le triangle [1,0,2] n'est pas oriente dans le bon sens. Pour le voir, il suffit de presser F12 pour changer le mode de visualisation en "thrown together". On voit alors les faces mal orientees en violet :

Dans ce mode de visalisation , les operation booleennes sur les volumes ne sont pas prises en compte. Presser F9 pour revenir au mode de visualisation standard "OpenCSG".

Resultat de l'etape 4

Le code apres l'etape 4 est donc le suivant :

use <openscad_course_tower.scad>

$fn=60;

union()
{
		intersection()
		{
			translate([-10,-10,-10]) cube([20,20,20]);
			sphere(r=12);
		}

		cylinder(r=7.5, h=20);

		minkowski()
		{
			translate([-10,-10,-25]) cube([20,20,20]);
			cylinder(r=2,h=1);
		}

		translate([-15,-15,-45]) tower_base();
}

Ce qui nous donne cet objet :

Retour a la presentation