Saltar al contenido

Bienvenido a Auxcad.com

Regístrate ahora para obtener el acceso a todas nuestras secciones y características. Una vez registrado y conectado podrás crear temas, contribuir con tus respuestas a resolver discusiones existentes, puedes añadir amigos, disfrutar de mensajería privada obtener acceso a nuestro centro multimedia, descargas y muchas posibilidades más...Si ya tienes una cuenta entra aquí- si aún no la tienes crea una cuenta gratis hoy mismo !!!


Nava

Nava

Registrado: 31 ene 2013
OFFLINE Última actividad: sep 23 2015 11:59
-----

En tema: ¿Cómo elimino todas las posiciones de un array?

03 febrero 2014 - 11:47

Hola buenas!,

 

después de dale un poco al coco he conseguido sacar algo... os lo pongo por aquí, que así igual podemos mejorarlo un poco.

 

Lo que hace esta macro es que  tras seleccionar unos parts que tu desees, elimine las user properties que existan en los parts.

 

 Y eso... cualquier sugerencia, fallo o mejora que se os ocurra o encontréis... ¡ os agradecería que la compartamos!.

 

Muchas a gracias a todos porque los anteriores posts me han ayudado a comprender un poco como funciona esto de las macros.

 

Un saludo

Sub CATMain()

' Initiate the macro on the active document
'-----------------------------------------------

Dim ObjSel As Object
Set ObjSel = CATIA.ActiveDocument.Selection
ObjSel.Clear


' Initiate the selection of the parts
'-----------------------------------------------

Dim SelElm As Variant
Dim What(1)
What(0) = "Part"
What(1) = "Product"

MsgBox ("Selecciona los parts en los que eliminar las propiedades")
SelElm = ObjSel.SelectElement3(What, "Select a Part or Product", False, CATMultiSelTriggWhenUserValidatesSelection, False)
   

If SelElm = "Normal" Then
      
   Else
        MsgBox ("Selection Aborted")
   End If
   
' Initiate the loop to erase the properties
'-----------------------------------------------

Dim iCount As Integer
iCount = ObjSel.Count

Dim InputObjt(99) As Variant
Dim Params As Variant

Dim h As Integer

For i = 1 To iCount
    
        Set InputObjt(i) = ObjSel.Item2(i).Value
            
        Set Params = InputObjt(i).ReferenceProduct.UserRefProperties
        
          For h = 1 To (Params.Count)
              Params.Remove (Params.Count)
          Next


Next

ObjSel.Clear

MsgBox (" Todos las properties ELIMINADAS!!!")
End Sub


En tema: ¿Cómo elimino todas las posiciones de un array?

27 enero 2014 - 08:24

Hola buenas de nuevo!!

 

Gracias Ferdo por el aporte, me pongo a trabajar con ello.

 

Cuando de con algo lo posteare por aqui.

 

Muchas gracias!!!!!