Conception3D

Ph.Leroy

2015-04-02

Sisal n'est pas un logiciel de CAO, c'est par contre un environnement de conception qui permet de manipuler des concepts divers et variés, mais avec toujours le même objectif s'abstraire de la gangue des implémentations et ne garder que l'essentiel.

Les ordinateurs d'aujourd'hui y compris nos téléphones intègrent tous des processeurs graphiques (GPU) capable d'afficher et d'animer des vues en 3D très complexes.

Une librairie d’interfaçage à ces processeurs spécialisés offre l'avantage d'être portable et très largement étendue, il s'agit OpenGL.

L'implémentation suivante n'est qu'une implémentation possible d'OpenGL, elle n'est pas complète, mais elle couvre déjà des besoins importants comme l'animation d'équipements industriels. Par exemple cela m'a permis de simuler le fonctionnement d'un magasin automatique complexe et de valider les algorithmes d'activation des différents moteurs.

La vue

La première chose à faire est de déclarer une vue OpenGL.

Object
glc GLCanvas, "",  0,  80, 300, 200;

Les objets

Dans cette vue on va pouvoir placer des objets 3d en utilisant des primitives, par exemple créons un avion:

   avion = glc.Create(  "spherex.dxf", 0.0, 0.0, 0.0);
   glc.Scale( avion, 0.1, 0.1, 1.0);
   aile = glc.Add( avion, "spherex.dxf");
   glc.scale( aile, 1.0, 0.05, 0.2);
   empennage = glc.Add( avion, "spherex.dxf", 0, 0, 0.45);
   glc.scale( empennage, 0.20, 0.01, 0.05);
   derive = glc.Add( avion, "cylinderx.dxf", 0, 0.05, 0.45);
   glc.scale( derive, 0.005, 0.025, 0.05);
   glc.rotate( derive, 90, 0, 0);

et on obtient une vue de l'avion.

La prochaine fois on va voler avec.

Quelques explications

En attendant quelques explications s'imposent.

Création

Sous Sisal un objet 3d d'un GLCanvas va être identifié par un identifiant que l'on va ranger dans une variable, ici c'est avion.

Cet identifiant est obtenu en demandant au canvas de le créer glc.create() avec comme premier paramètre le nom d'un fichier 3d au format dxf spherex.dxf et trois autres paramètres qui sont les coordonnées x, y et z de l'objet dans l'espace.

Sisal propose un certain nombre de figures géométriques élémentaires (cube, sphère, cylindre) qui par combinaison suffisent généralement à décrire tout objet quelconque dans l'environnement sisal; mais vous pouvez bien entendu créer votre propre modèle d'objet, par exemple donut.dxf si vous êtes un fabricant de beignets.

Position et orientation

Dans un espace à trois dimensions la position d'un objet est connu par ses trois coordonnées x, y et z. Dans un mode de mise au point Sisal visualise les axes 0x en rouge, 0y en vert et 0z en bleu. Dans cette vue on constate que l'axe des x part vers la droite, l'axe des y vers le haut et l'axe des z vers la caméra. Évidemment si on déplace la caméra ce sera différent.

Redimensionnement

Cet objet primaire peut être redimensionné glc.scale( avion, 0.1, 0.1, 1.0). Sisal ne gère pas les dimensions, 10.0 peut signifier 10 m comme 10 cm; mais on doit avoir le cochonnet beaucoup plus petit que les boules donc généralement on redimensionne.

à compléter...