Conception3D
Ph.Leroy
2015-04-02
Sisal n'est pas un logiciel de CAO, mais sa capacité de modélisation lui permet de manipuler des objets 3D, de les assembler, de les faire bouger, etc.
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...