2017-04-19 4 views
1

enter image description hereCatia V5 macro pour accéder au système d'axe à l'intérieur d'un ensemble géométrique

En utilisant une macro Catia V5 Je veux sauver le système d'axes et d'autres éléments géométriques à l'intérieur d'un ensemble geometic dans un fichier txt. Je suis capable d'accéder aux éléments géométriques comme les points et les lignes mais pas le système d'axes (Illustré dans l'image).

« Procédure pour accéder aux éléments geometic à l'intérieur d'un ensemble géométrique

Dim prtDoc As Part 
Dim hbds As HybridBodies 
Dim hbs As HybridShapes 
Set hbs = hbds.GetItem(objSel.Item2(1).Value.Name).HybridShapes 

Pour accéder à l'élément géométrique et obtenir son type

MsgBox TypeName(hbs.Item(i)) 

Mais comment accéder au système d'axes?

+0

Je ne pense pas que vous suposed d'avoir un système axe à l'intérieur d'un ensemble géométrique. Aussi, quel est l'élément sélectionné dans votre sélection? – AugustoQ

+0

L'élément sélectionné est un ensemble géométrique. Je veux exporter toutes les données requises dans un fichier texte. Ensemble géométrique (CSYS) contient toutes les données que je veux comme indiqué dans la figure. – harishli2020

+0

Mon ensemble géométrique contient des lignes, des cercles et des arcs. Je suis capable d'importer tout sauf le système d'axe local. – harishli2020

Répondre

1

Le système Axis ne peut pas être trouvé à l'intérieur d'un ensemble géométrique passant par des points à l'intérieur via API. A hybridBody (Geometrical Set) ne laissent passer que nous vérifions qu'il est HybridShapes, HybridBodies et Sketches, et un système Axis est aucun d'entre eux

Vous Beeing en mesure d'obtenir Lines, Points, et les autres itens parce qu'ils sont tous Pour autant que je sache, le seul moyen d'obtenir l'objet Axis System à l'intérieur d'un ensemble géométrique est la méthode Selection.Search.

En supposant que vous avez le SYSC Set dans votre Géométrique sélection, vous pouvez effectuer les opérations suivantes:

Dim Selecion as INFITF.Selection 
Dim AxisSystem as INFITF.AxisSystem 
'Initialize Selection and other code here 
Selection.Search("'Part Design'.'Axis System';sel") 
for i = 1 to Selection.Count2 
    set AxisSystem = Selection.Item2(i).Value 
    '... 
Next 
+0

Merci AugustoQ. Maintenant, je suis capable d'exporter les données du système d'axes en utilisant la recherche et la sélection. – harishli2020