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
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
No he entendido muy bien.
Soy un pez en crear codigo la verdad.
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