Foros CATIA

4 envíos / 0 nuevos
Inicie sesión o regístrese para comentar
Último envío
Nek0
Desconectado/a
Visto por última vez: Hace 6 años 4 meses
se unió: 10/23/2018 - 09:58
MACRO SIN MATERIAL

Buenas a todos me presento como un toca codigo.

 

Tengo una macro que busca el parametro "Material" y en caso no encuentre deja marcado en el arbol de catia para saber que pieza es.

 

Mi problema es que no se como hacer que encuentre dos tipos de NO_MATERIAL o lo que es lo mismo muestre lo que no hay.

 

Tenemos dos Materiales que serian como no tener material, "NO MATERIAL y PENDIENTE" y quiero que en la misma busqueda marque los dos tipos pero no termino de conseguirlo, ademas quiero que cuando encuentre alguno de estos dos salga em mensaje "DEBE AGREGAR MATERIAL A LOS ELEMENTOS SELECCIONADOS" y tampoco lo consigo.

 

espero podais ayudarme, os dejo el codigo no tengo ningun problema en compartir.

Private Sub NO_MATERIAL_Click()

CATIA.StartCommand ("Collapse all")

Dim productDocument As Document

Set productDocument = CATIA.ActiveDocument

CATIA.StatusBar = "******BUSCANDO******"

Dim selection As selection

CATIA.StatusBar = "******BUSCANDO******"

Set selection = productDocument.selection

selection.Search "NameInGraph=*Material=(NO MATERIAL)(PENDIENTE)*,all"  <----------------Aqui no se como ponerlo y seleccione si encuentra cualquiera de los dos o marque los dos en caso en el arbol esten los dos tipos

CATIA.StatusBar = "******BUSQUEDA FINALIZADA******"

If selection = ? Then

   MsgBox ("DEBE AGREGAR MATERIAL A LOS ELEMENTOS SELECCIONADOS")

'End If

End Sub

 

Saludos

 

admincursos
Desconectado/a
Visto por última vez: Hace 20 horas 55 mins
se unió: 02/10/2008 - 13:19

Hola Nek

Con la selecion de objetos solo podrás localizar el nombre del parámetro

Lo tienes que hacer accediendo al valor del parámetro de la forma:

Dim productDocument As Document

Set productDocument = CATIA.ActiveDocument

Dim Product  as Product

Set Product = productDocument.Product

Dim parameters3 as Parameters

Set parameters3 = Product.Parameters

Dim ValorParámetro  as string   
ValorParámetro = parameters3.Item(Product.Name & "\Material").Value

Buscaria el parámetro Material dentro del product activo.

Si esta en una part habría que indicarselo.

Saludos
 

Eduardo Torrecilla Insagurbe

Nek0
Desconectado/a
Visto por última vez: Hace 6 años 4 meses
se unió: 10/23/2018 - 09:58

No he entendido muy bien.

 

Soy un pez en crear codigo la verdad.

admincursos
Desconectado/a
Visto por última vez: Hace 20 horas 55 mins
se unió: 02/10/2008 - 13:19

Hola Nek

Creí que ya hacias tus pinitos programando.

Me referia a que en tu ejemplo has de cambiar la forma de hacer la selección ya que con la instrucción selection.Search (que seria la equivalente ha hacer selecciones manuales con Control+F) no se puede saber el contenido.

Lo que te propongo es que cambies tu código

Set selection = productDocument.selection

selection.Search "NameInGraph=*Material=(NO MATERIAL)(PENDIENTE)*,all" 

Por este otro

Dim productDocument As Document

Set productDocument = CATIA.ActiveDocument

Dim Product  as Product

Set Product = productDocument.Product

Dim parameters3 as Parameters

Set parameters3 = Product.Parameters

Dim ValorParámetro  as string   
ValorParámetro = parameters3.Item(Product.Name & "\Material").Value

En este código lo se hace es buscar el parámetro llamado Material que haya dentro del Product activo en ese momento

Y luego temines tu condicional

If ValorParámetro = "" Then

   MsgBox ("DEBE AGREGAR MATERIAL A LOS ELEMENTOS SELECCIONADOS")

End If

Saludos

Eduardo Torrecilla Insagurbe