Inventor : Obtenir une face d'un composant avec python

Inventor : Obtenir une face d'un composant avec python

oscar_dls
Enthusiast Enthusiast
640 Visites
2 Réponses
Message 1 sur 3

Inventor : Obtenir une face d'un composant avec python

oscar_dls
Enthusiast
Enthusiast

Bonjour à tous,

 

Je suis en train de réaliser un code python pour automatiser un assemblage mécanique sur inventor et je rencontre un problème pour récupérer la face d'un composant dans mon code.

Pour obtenir les plans dont j'ai besoin, j'utilise cette méthode : 

 

# définition plans et faces du composant
masAPi_wp_YZ = comp.Definition.WorkPlanes.Item(1)
masAPi_Face_impl = comp.SurfaceBodies.Item(1).Faces.Item(2) # Problème ici
masAPi_wp_XY = comp.Definition.WorkPlanes.Item(3)

# proxys pour exploiter les entités du composant
masAPiYZ = comp.CreateGeometryProxy(masAPi_wp_YZ)
masAPiImpl = comp.CreateGeometryProxy(masAPi_Face_impl)
masAPiXY = comp.CreateGeometryProxy(masAPi_wp_XY)

 

Cette méthode fonctione bien avec les plans de travail mais le problème est que j'obtiens la face dont j'ai besoin avec le numéro de l'entité (2) et non son nom ("Face_impl").

Je n'ai pas trouvé de solution, j'ai essayé de l'écrire comme ceci : "comp.SurfaceBodies.Item(1).Faces.Item("Face_impl")", mais il ne trouve pas la face.

 

J'ai également essayé de créer un plan de construction mais ça ne fonctionne pas non plus.

 

odelouis_0-1704448982211.png

 

Si vous avez des idées n'hésitez pas à me répondre.

Merci d'avance ! 🙂 


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
Obtenir une face d'un composant avec python

0 J'aime
Solutions acceptées (1)
641 Visites
2 Réponses
Replies (2)
Message 2 sur 3

ThomasB44
Mentor
Mentor
Solution acceptée

Salut @oscar_dls 

Je ne connais pas Python, mais en VB.NET pour accéder à une face nommée comme tu l'indiques, il faut passer par cette commande iLogic :

Named Entities

Ce qui peut donner ceci par exemple :

Dim partDoc As PartDocument = ThisDoc.Document
Dim namedEntities = iLogicVb.Automation.GetNamedEntities(partDoc)
Dim face0 As Face = namedEntities.FindEntity("Face0")
face0.Appearance = partDoc.AppearanceAssets(2)

 


Thomas
Mechanical Designer / Inventor Professional 2025
Inventor Professional EESignature

0 J'aime
Message 3 sur 3

patrick.emin
Alumni
Alumni

Bonjour @oscar_dls 

Parmi les réponses qui vous ont été données, si une (ou plusieurs) d'entre elles apporte une solution à votre problème ou vous a permis de mieux l'analyser et le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton  APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
0 J'aime