Aller au contenu

Initiation à BRL-CAD/Formes primitives

Un livre de Wikilivres.

La création d'un solide se fait par l'instruction in, pour « insérer » (insert). Il faut donner un nom à chaque solide créé afin de pouvoir y faire référence par la suite. Le nom se termine par l'extension .s.

On peut entrer toutes les caractéristiques du solide dans la même ligne, mais MGED fournit une assistance : il demande au fur et à mesure les informations manquantes.

La syntaxe générale est :

in nom.s type paramètres

Le nom « officiel » des solides élémentaires est primitive shape, « forme primitive ».

Premier exemple

[modifier | modifier le wikicode]
Cylindre en fil de fer
Cylindre en lancer de rayons

Par exemple, pour créer un cylindre (right circular cylinder, rcc) appelé « arbre » dont le centre de la base (vertex) a pour coordonnées (0 ; 0 ; 0), d'axe z, de hauteur 10 et de rayon 5, il faut taper

in arbre.s rcc 0 0 0 0 0 10 5
  • la séquence 0 0 0 sont les coordonnées du centre de la base du cylindre ;
  • la séquence 0 0 10 sont les composantes du vecteur hauteur ;
  • la séquence 5 est le rayon.

On peut aussi se laisser guider par MGED :

in arbre.s rcc
 Enter X, Y, Z of vertex: ''0 0 0''
 Enter X, Y, Z of height (H) vector: ''0 0 10''
 Enter radius: ''5''

L'objet s'affiche en fil de fer.

On peut afficher les repère avec le menu Modes | Axes de la fenêtre graphique :

  • l'option View affiche le repère de base ;
  • l'option Model affiche le repère lié au solide.

Si l'on clique sur la fenêtre graphique avec le bouton principal, on fait un rétrécissement (zoom arrière) ; si l'on clique avec le bouton secondaire[1], cela fait un agrandissement (zoom avant).

Si l'on appuie sur la touche Maj (shift) en cliquant sur l'image et en bougeant la souris, on fait bouger la vue que l'on a de l'objet, mais cela ne bouge pas l'objet par rapport au repère. Si l'on appuie sur la touche Ctrl (contrôle) en cliquant sur l'image et en bougeant la souris, on fait tourner l'image (on change de point de vue, mais l'objet ne change pas d'orientation par rapport au repère).

Si l'on veut afficher l'objet avec un effet de matière, il faut d'abord créer une « région » (region), puis lui attribuer une « matière » (mater), et enfin tracer l'objet par la méthode de lancer de rayon (ray tracing).

Par exemple, nous allons créer la région resarbre.r (pour « résultat de l'arbre ») à partir de la réunion (u, union) de l'objet arbre.s avec l'ensemble vide — c'est à dire que la région ne contient que l'objet arbre.s, et l'on utilise pour cela la commande r :

mged> r resarbre.r u arbre.s
 Defaulting item number to 1001
 Creating region id=1000, air=0, GIFTmaterial=1, los=100

Puis, on veut lui donner un aspect mat (plastic) de couleur violette, en utilisant la couleur définit par le code rouge-vert-bleu 128 0 255 :

mged> mater resarbre.r plastic 128 0 255 0

Le dernier 0 sera expliqué plus tard.

Le tracé par lancé de rayon (ray tracing, rt) pour générer un dessin de taille 512×512 pixels (size, -s) se fait par

mged> rt resarbre.r -s 512

Principales commandes

[modifier | modifier le wikicode]

La commande in permet donc de créer une forme primitive (solide élémentaire). La commande make permet de créer une forme primitive avec des paramètres par défaut, avec la syntaxe

make nom.s type

par exemple, pour créer une sphère avec des paramètres par défaut :

mged> make sphere.s sph

La commande l (« L » minuscule) permet de lister les paramètres de l'objet. Sa syntaxe est

l nom.s

par exemple

mged> l sphere.s
sphere.s:  ellipsoid (ELL)
   V (0, 0, 0)
   A (500, 0, 0) mag=500
   B (0, 500, 0) mag=500
   C (0, 0, 500) mag=500
   A direction cosines=(0, 90, 90)
   A rotation angle=0, fallback angle=0
   B direction cosines=(90, 0, 90)
   B rotation angle=90, fallback angle=0
   C direction cosines=(90, 90, 0)
   C rotation angle=0, fallback angle=90

on voit que la sphère est en fait enregistrée comme une ellipsoïde — la sphère est d'ailleurs une ellipsoïde particulière.

On peut choisir une vue particulière :

  • la commande center permet de définir le point placé au centre de la fenêtre ; il suffit d'indiquer les coordonnées de ce point séparés par un espace ;
  • la commande ae (azimuth, élévation) permet de définir les angles du point de vue ; il suffit d'indiquer les angles de cette orientation séparés par un espace.

Par exemple

mged> center 100 0 -50
mged> ae 25 95

place le point (100 ; 0 ; -50) au centre de la fenêtre, et place la caméra selon l'orientation (25 ° ; 95 °), c'est-à-dire azimuth θ = 25 ° et élévation δ = 95 °. Les vues standard sont :

  • vue de face : (0 ° ; 0 °) ;
  • vue de gauche : (90 ° ; 0 °) ;
  • vue de derrière : (180 ° ; 0 °) ;
  • vue de droite : (270 ° ; 0 °) ou (−90 ° ; 0 °) ;
  • vue de dessus : (0 ° ; 90 °) ;
  • vue de dessous : (180 ° ; 270 °) ou (180 ° ; −90 °).

Principales formes primitives

[modifier | modifier le wikicode]
Types de solides
Instruction Type Mnémotechnique Paramètres Remarques
arbn
(arb4, arb5, …)
polyèdre convexe quelconque à n face Arbitrary Convex Polyhedron n sommets (vertex) si n < 8, le solide est enregistré comme arb8
ell1 ellipsoïde de révolution centre V (vertex), vecteur demi-grand axe, rayon rayon : longueur d'un petit axe perpendiculaire au grand ; enregistré comme ell
half demi-espace Halfspace vecteur normal au plan pointant vers l'extérieur, distance à l'origine
rcc cylindre standard Right Circular Cylinder centre de la base V (vertex), vecteur hauteur H enregistré comme tgc, les vecteurs demi-axes sont de même longueur et sont perpendiculaires au vecteur hauteur
rec cylindre droit de section elliptique Right Elliptical Cylinder centre de la base V (vertex), vecteur hauteur, grand axe, petit axe enregistré comme tgc
rpp parallélépipède rectangle Rectangular Parallelepiped 8 sommets (vertex) enregistré comme arb8
sph sphère Sphere centre (vertex), rayon enregistré comme ell
tec cône tronqué elliptique Truncated Elliptical Cone centre de la base V (vertex), vecteur hauteur H, vecteurs demi-axes de l'ellipse de base A et B, facteurs d'échelle pour l'autre face c et d enregistré comme tgc
tor tore Torus centre V (vertex), vecteur d'axe, rayon du cercle moyen de l'anneau, rayon de la section droite
trc cône tronqué circulaire Truncated Right Cone centre de la base V (vertex), vecteur hauteur H, rayon de la base r, facteurs d'échelle pour l'autre face enregistré comme tgc
  1. clic droit sur les souris configurées pour droitier

Création d'un projet < > Combinaison de solides