Bonjour tout le monde.
Le contexte:
Je travail actuellement sur un module Python permettant de modéliser automatiquement une structure dans un soft.
Pour faire simple, j'ai à ma disposition un logiciel d'architecture navale. Ce logiciel permet de modéliser des éléments de type ligne, bateau, bouée, etc et présente l'énorme avantage de propoposer une API Python. Cette API permet de créer/modifier/lancer/post-traiter, etc, un model numérique complexe.
J'ai besoin pour mon travail de modéliser une structure (poutres) avec ce soft. Or il n'a pas du tout été conçu pour cela. C'est, au bas mot, très fastidieux de modéliser chaque élément de ma structure à la mano directement dans le GUI. Et je suis fainéant :D
Mais,... J'ai un fichier text contenant le maillage de ma structure:
- Les noeuds (nom, X(m), Y(m), Z(m))
- Les éléments (nom, nom_du_noeud_1, nom_du_noeud_2, type)
Le type défini les caractéristiques de l'élement (profil de la poutre)
Ce que j'ai:
J'ai pas mal avancé dans mon code. J'ai créé les fonctions nécessaire à la récupération des données provenant du fichier de maillage et à la modélisation d'une poutre dans mon soft (la partie la plus hardue).
J'ai défini les classes suivantes:
- Node (name, X, Y, Z)
- Beam (name, Node1, Node2)
- Structure (model, name)
Une poutre (Beam) est définie par deux noeuds et un nom. Je peux lui affecter d'autres attributs comme son type. Ma structure a comme principaux attributs l'ajout et la suppression d'une poutre.
Et ça marche très bien pour une poutre.
Problème:
Je veux désormais généraliser cela à l'ensemble de mes éléments. Mon problème vient du nom de mes objets. J'aimerais que chacun de mes éléments porte son vrai nom (pour pouvoir ensuite aisément créer mes poutres en appelant les bons noeuds)... Soit:
Ici, le premier "name" est l'objet noeud tandis que le second est nom de cet objet (attribut)... Pour chaque noeud, j'ai une liste définie comme suit:Code:name = Node(name, X, Y, Z)
Lors de la création d'un nouveau noeud, je connais donc son nom. Mais comment créer l'objet Node associé avec le même nom? :roll: Ou de façon général comment gère t'on habituellement un grand nombre d'objets?Code:
1
2 # ième noeud: nodeList[i] = [name, X, Y, Z]
En fait je pense que mon problème est similaire à la création d'arbres où l'on retrouve on objet lié à d'autres objets (Node(name, Father, Son_Left, Son_Right)).
Merci d'avance pour toute aide!
Ju
PS: Je ne poste pas de code, car prohibé par ma boite.