Bonjour,
Je découvre l'interface Python de FreeCad. J'ai fait quelques programmes en Python sur les maillages *.stl et aimerais les reprendre avec, en plus, la visualisation de FreeCad. Je commence donc par
import Mesh
vm = Mesh.Mesh ("LeFichier.stl")
Mesh.show (vm)
J'arrive (plus ou moins) à lire avec Python les coordonnées des triangles , mais...
1/ Peut-on cliquer sur un triangle particulier (ou une arrête ou un sommet) du maillage et attraper ses coordonnées dans Python?
Je suppose que FreeCad-openCascade a une table du voisinage de chaque facette (ou/et d'arête ou/et de sommet).
2/ Cette table est-elle (directement) accessible par le Python de FreeCad ou faut-il reconstruire en Python un tel dictionnaire?
Je ne la trouve pas par la complétion automatique de vm.[puis les flêches du curseur].
J'utilise FreeCad-daily 0.20
OS: Ubuntu 18.04.5 LTS (ubuntu:GNOME/ubuntu)
Word size of FreeCAD: 64-bit
Version: 0.20.
Build type: Release
Branch: unknown
Hash: e01f0d25d5f3ef9ceb66aa087212121e9f2f2e8b
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.5.1
Locale: French/France (fr_FR)
Pour les curieux, le but du programme est à terme de reconstruire et surtout simplifier les surfaces d'un maillage pour définir (avec beaucoup moins de points) un "vrai objet" en recherchant automatiquement les contours (arêtes anguleuses) fermés. En effet la majorité des fichiers *.stl trouvés sur internet ne sont pas des volumes (au sens de FreeCad), ont quelques trous, quelques triangles qui recoupent la surface, sont parfois inutilement gros, etc. Enfin, une fois les "réparations faites" et le fichier du maillage reconnu comme un solide, les quelques 100.000 triangles du solide mettent à genoux mon PC. D'où mon envie de "jouer" avec ces maillages...
Bien cordialement à tous !
F.
Attraper à la souris une facette d'un maillage.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
Re: Attraper à la souris une facette d'un maillage.
Il doit bien y avoir la réponse dans:
https://wiki.freecadweb.org/Mesh_API/fr
Mais vu le peu d'info sur les méthodes, le mieux est de demander dans la section python du forum.
Ceci dit, titiller Freecad avec 100000 triangles, j'ai peur qu'il n'aime pas trop.
Meshlab https://www.meshlab.net/ est là pour ça, à mon humble avis. (ou blender)
https://wiki.freecadweb.org/Mesh_API/fr
Mais vu le peu d'info sur les méthodes, le mieux est de demander dans la section python du forum.
Ceci dit, titiller Freecad avec 100000 triangles, j'ai peur qu'il n'aime pas trop.
Meshlab https://www.meshlab.net/ est là pour ça, à mon humble avis. (ou blender)
Re: Attraper à la souris une facette d'un maillage.
Salut,
- Il y a quelque chose de prévu puisqu'il existe la fonction getFacetSelection() mais je ne vois pas comment ça marche, quand on clique sur un maillage c'est tout l'objet qui est sélectionné et pas qu'une face comme sur les solides.
- voir
Code: Select all
vm.Facets[index].NeighbourIndices