2017-04-27 3 views
0

enter image description hereCatia V5 macro pour obtenir les coordonnées des points à l'intérieur répétition (Points et avions)

utilisant une macro Catia V5 Je veux obtenir les coordonnées des points à l'intérieur Répétition (Points et plans) .1. Cette répétition (points et plans) .1 est à l'intérieur d'un ensemble géométrique (illustré dans l'image).

J'ai utilisé selection.search pour sélectionner Répétition (Points et plans) .1. Mais je ne suis pas capable d'obtenir les coordonnées des points.

Dim objSel As Selection 

objSel.Search "'Generative Shape Design'.'Repetition (Points and Planes)',sel" 

Je veux exporter les coordonnées du point dans un fichier txt après avoir sélectionné l'ensemble géométrique (pntRep montré dans l'image).

Répondre

1

L'objet Repetition (Points and Planes) est traité comme un HybridBody, de la même manière qu'un GeometricalSet.

Donc, pour obtenir l'instance de Repetition tout ce que vous devez faire est de lui comme menace HybridBody, vous n'avez pas besoin d'utiliser la méthode Selection.Search pour l'obtenir, vous pouvez le faire comme suit:

Dim HybridBodypntRep as HybridBody 
dim HybridBodyInternal as HybridBody 
set HybridBodypntRep = objSel.item(1).value 
for i = 1 to HybridBodypntRep.HybridBodies.Count 
    set HybridBodyInternal = HybridBodypntRep.HybridBodies.Item(i) 
    for j = 1 to HybridBodyInternal.HybridShapes.Count 
     'Here you will have access to all points and planes inside the Repetition 
     dim Element as HybridShape 
     set Element = HybridBodyInternal.HybridShapes.Item(j) 
     'Element is probably your point, just check it 
next 

Le Element objet est celui qui est probablement votre point.

Notez que ce code va parcourir tous les ensembles géométriques internes à l'intérieur de celui sélectionné, au premier niveau et rechercher tous les éléments à l'intérieur.

+0

@AgustoQ Merci pour la réponse. J'ai dû supprimer HybridShapeTypeLib car j'obtenais une erreur en tant que "Type défini par l'utilisateur non défini". – harishli2020

+0

Juste modifié la réponse pour assister à votre demande. Je développe pour Catia avec VB.Net et il faut généralement des espaces de noms pour déclarer des objets, mais dans Catia VBA vous n'avez pas besoin de cela. Désolé pour ça. – AugustoQ