bonjour,
j'ai créé depuis qq jours un projet intitulé jGMSHPack, que vous trouverez ici: http://sourceforge.net/projects/jgmshpane
il s'ajit de Biblio JAVA pour des elements finis, basée sur GMSH et GetDP réalisés par Christophe Geusaine: http://www.geuz.org/gmsh/
Description:
la biblio comporte 4 classes: jGMSHPane.java, jGMSHMesh.java, jGMSHSolve.java, et jGMSHProb.java
JGMSHPane:
jGMSHPane est un element graphique basé sur jPanel. il sert d'afficheur pour des fichiers de Type IGES, STEP, GEO, MSH, et SOL.
elle est constituée de:
- un jCanvas3D dans lequel s'affichent les objets IGES, STEP, GEO, MSH, et SOL.
pour ne pas avoir à manipuler des fichiers, il vaut mieux transformer des le depart ces fichiers en tablteaux de doubles qui sont plus aisés à traiter. pour les formats GEO (pour geometry), MSH (pour mesh), et SOL (pour solution), la tache est aisée: par lecture directe du fichier GEO => Double[3][x], MSH => Double[3][x], SOL => Double[4][x]. pour Step et IGES, il faut d'habord les transformer en GEO. en fin de compte ca n'affichera que GEO, MSH, et SOL, puisque STEP et IGES seront transformés en GEO
- une jPanel comprenant 11 jLabels represnetant la graduation de l'echelle, un jLabel representant l'unité de cequi est affiché, et un jLabel presentant une graduation de couleur.
- un ToolBar comprenant 4 jButtons, un pour la selection, un pourle Zoom, un pour la rotation et un pour la translation. le curseur prens l'icone du bouton en question
actions de la souris:
si le bouton "select" est actif:
bouton gauche+deplacement=>translation
bouton droit+deplacement=>rotation
douton droit+bouton gauche+deplacement=>zoom
si le bouton "zoom" est actif:
bouton gauche+deplacement=>zoom
si le bouton "rotate" est actif:
bouton gauche+deplacement=>rotation
si le bouton "slide" est actif:
bouton gauche+deplacement=>translation
les entrée de cette classe sont: le type d'objet à afficher, l'image d'arriere plan, le max et le min de l'echelle, et l'unité de ce qui est affiché. le Panel de l'echelle n'est visible que si l'objet à afficher est un SOL.
jGMSHMesh:
l'algorithme de calcul de maillage de GMSH etant si bien abouti, ca ne sert à rien de reinventer la roue. la classe jGMSHMesh, se connecte avec JNI à Mesh_source/Box/Box.cpp et Mesh_source/Box/Main.cpp pour en utiliser l'algo de calcul. ses entrées sont un tableau de Double comportant les coordonnées de GEO, et l'ordre du maillage (1 ou 2). sa sortie est un tableau de Double comportant les coordonnées de MSH.
jGMSHProb:
initialement le createur de GMSH a fait en sorte que la definition du probleme à resoudre soit ecrite dans un fichier *.pro qu'il faut prowser pour lancer le calcul. jGMSHProb est un classe connéctée à un BD, en lecture et en ecriture. une interface (jPanel) comportant un jTextArea, permet de saisir le probleme et de l'enregister dans la BD sous forme d'une String en validant, et de lire les problemes existant dans la BD si besoin.
jGMSHSolve:
l'algo de resolution Elements-Finis est ecrit dans GetDp. la classe jGMSHSolve est connectée au fichier cpp pour en heriter cet algo.
est est aussi connectée à deux BD, celle des problemes et celle des materiaux.
ses entrées sont la String du Probleme, les Doubles de la BD de materiaux definissant les caracteristiques du materiau, et un tableau de doubles comportant les coordonnées du MSH. Sa sortie est un tableau de Doubles compportant les ccordonnées du MSH, avec en plus la valeur calculée pour chaque point, et le code couleur corresondant a la valeur calculée, sachant que les 256bits correspondent à l'etendue entre la valeur max et min.
toute les questions que j'ai posé ces derniers jours ce rapportent à ça en fait:
http://www.developpez.net/forums/sho...d.php?t=422741 : ça, ça concernait l'image en arrier plan de jGMSHPane
http://www.developpez.net/forums/sho...d.php?t=424705 : ça, c'est pour que les jButtons restent actifs apres parckaging
http://www.developpez.net/forums/sho...d.php?t=424071 : ça, c'est à propos de la BD de materiaux qui est en realité un XLS exporté en XML. pas ce qu'il y a de mieux, mais ça fonctionne.
http://www.developpez.net/forums/sho...d.php?t=421027 : ça c'etait pour l'objet echelle.
Moment de verité: quelcun voudrait-il m'aider à mener à bien ce projet? il n'y a aucun contrainte de temps. c'est juste pour le plaisir, et parceque je suis exaspéré de voir plain de bilios scientifiques en C++ et quasiment aucune en JAVA.
jGMSHPack.zip
![]()
Partager