Foros CATIA

1 envío / 0 nuevos
Inicie sesión o regístrese para comentar
felimanue
Desconectado/a
Visto por última vez: Hace 8 años 4 días
se unió: 09/24/2012 - 21:18
Macro que pase por todos los geometrical sets

Buenas, 

Necesito una macro que pase por todos los geometrical sets de mi modelo, independientemente de cuantos haya.

He probado a hacer un bucle for para cada nivel, pero esto me limita. Por ejemplo si tengo un gset y dentro de este 3 más, con dos bucles for sería suficiente. Pero si dentro de uno de estos 3, del segundo nivel, tengo otro gset, entonces necesitaría otro bucle for... total... que tendría que saber de antemano cuando niveles de gsets tengo, uno dentro de otro y a su vez otro dentro de otro.

Lo que necesito es que pase por todos, independientemente de si hay 2 o 7000, y uno dentro de otro..

Alguien sabe cómo? ya le he dado varias vueltas y nada... la estoy liando mas.

Muchas gracias.

 

Saludos.


Desconectado/a

Visto por última vez: Hace 8 años 4 días

se unió: 09/24/2012 - 21:18

Posts:

Muchas gracias, me ha servido de mucha ayuda.

 

Lo he adaptado para un part, os pongo el codigo, lo iré probando a ver si va bien.

Si encontrais algun fallo agradeceria que lo comunicarais en este hilo.

 

Gracias.

 

Public A As String

 

Sub CATMain()

A = ""

    Set oPartDoc = CATIA.ActiveDocument

    Dim oRootPart As Part

    Set oRootPart = oPartDoc.Part

    Dim oGeo As HybridBody

    For Each oGeo In oRootPart.HybridBodies

    A = oGeo.Name

    Call WalkDownTree(oGeo)

    Next

       MsgBox "FIN DE PROCESO"

End Sub

Sub WalkDownTree(oInPart As HybridBody)

   Set oHybridBodies = oInPart.HybridBodies

    For I = 1 To oHybridBodies.Count

        Dim oGS As HybridBody

        Set oGS = oHybridBodies.Item(I)

''''''''''''''''''''''''''''''''''''

'INSTRUCCIONES

A = oGS.Name

''''''''''''''''''''''''''''''''''''

        Call WalkDownTree(oGS)

     Next

 

End Sub