Attraper à la souris une facette d'un maillage.

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
myf
Posts: 97
Joined: Thu Mar 19, 2015 4:13 pm

Attraper à la souris une facette d'un maillage.

Post by myf »

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.
User avatar
Vincent B
Veteran
Posts: 4734
Joined: Sun Apr 05, 2015 9:02 am
Location: La Rochelle, France

Re: Attraper à la souris une facette d'un maillage.

Post by Vincent B »

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)
User avatar
flachyjoe
Veteran
Posts: 1891
Joined: Sat Mar 31, 2012 12:00 pm
Location: Limoges, France

Re: Attraper à la souris une facette d'un maillage.

Post by flachyjoe »

Salut,
  1. 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.
  2. voir

    Code: Select all

    vm.Facets[index].NeighbourIndices
- Flachy Joe -
Image
Post Reply