Saltar al contenido

Comentar Imagen

Foto

Ordenar el arbol alfabeticamente


  • Please log in to reply
5 Respuesta(s) a este Tema

#1
Leo75

Leo75

    Experto en AuxCAD

  • Miembros
  • 131 Mensajes
  • Auxis: 13
    • Pais: Country Flag
    Buenos dias:
    ¿Tiene alguien el codigo para ordenar el arbol alfabeticamente? ¿o una idea de como hacerlo?
    Seria bueno incluirlo en la coleccion de Ferdo.
    Un saludo
    • 0
    Saludos, Leo75.
    (Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).

    #2
    ferdo

    ferdo

      Experto en AuxCAD

    • Miembros
    • 215 Mensajes
  • Auxis: 104
    • Pais: Country Flag
    Hola,

    Por un CATProduct.... http://www.catiav5fo...d&threadID=3313
    • 0
    Un saludo cordial
    Fernando

    sites visited in RO
    sites visited in EU

    #3
    Leo75

    Leo75

      Experto en AuxCAD

    • Miembros
    • 131 Mensajes
  • Auxis: 13
    • Pais: Country Flag
    Hola Ferdo:
    Gracias por tu link, pero la macro que alli se encuentra solo reordena los componentes en el orden que uno quiera, no alfabeticamente.
    Esto es la parte que me falta.
    Un saludo.
    • 0
    Saludos, Leo75.
    (Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).

    #4
    Leo75

    Leo75

      Experto en AuxCAD

    • Miembros
    • 131 Mensajes
  • Auxis: 13
    • Pais: Country Flag
    Despues de varios tropiezos he conseguido el 90% del trabajo  ;D, pero estoy estancado en la ultima parte.   ???
    ¿Como hago para pasar los datos de la matriz ordenada a Catia nuevamente? Debo reemplazar el codigo que esta entre (*) por el correcto.
    ¿Alguien me echa un cable?  ::) Gracias de antemano.



    Sub CATMain()

    Set partDoc = CATIA.ActiveDocument
    Set partProd = partDoc.Product

    Dim Myarray() as string
    Redim Myarray (partProd.Products.Count -1)


    For j = 1 To partProd.Products.Count 'Rellena la matriz con los datos actuales del arbol
    Set Prod = partProd.Products.Item(j).ReferenceProduct
    Myarray(j-1) = Prod.Name
    Next


    For y = 0 To partProd.Products.Count -2  'Reordena la matriz
    For X = 0 To partProd.Products.Count -2
       If Myarray(X) > Myarray(X+1) Then
           Temp = Myarray(X + 1)
           Myarray(X + 1) = Myarray(X)
           Myarray(X) = Temp
       End If
    Next
    Next


    '********************************** Muestra en mensajes de texto los nombres ya ordenados
    For l=0 to partProd.Products.Count -1
    msgbox Myarray (l)
    Next
    '********************************** En lugar de esto, tiene que devolver los nombres ordenados a Catia



    End Sub
    • 0
    Saludos, Leo75.
    (Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).

    #5
    XGFreixer

    XGFreixer

      Iniciado en AuxCAD

    • Miembros
    • 27 Mensajes
  • Auxis: 2
    • Pais: Country Flag
    buenas,...

    Hace tiempo que no corria por aqui,..

    grandes aportaciones veo por aqui,. y esta me interesa especialmente,...

    estare al loro,...

    un saludo.
    • 0
    -Xvr-

    #6
    Alpharsp

    Alpharsp

      Principiante en AuxCAD

    • Miembros
    • 6 Mensajes
  • Auxis: 1
    • Pais: Country Flag
    He estado buscando por todos lados y al parecer no es posible :(, el index de posición de un producto dentro de una colección se da en parámetros de solo lectura, no de escritura. he estado haciendo algunas pruebas y preguntado en distinto lugares pero al parecer todo converge en que esto no es posible con una macro.

    No se si han intentado ya grabar una macro cuando se usa la herramienta de reorganización del árbol para ver como lo lleva a cabo, yo ya lo he hecho y me aparece vacía, deduzco que se debe a que lo que esta llevando a cabo no podrida efectuarse por una macro.

    Aunque para serles sincero espero estar equivocado, el poder hacer esto de forma automática me parece demasiado esencial para una buena organización dentro de un proceso como para que no se pueda hacer...
    • 1




    0 Usuario(s) están leyendo este Tema

    0 miembro(s), 0 invitado(s), 0 usuario(s) anónimo(s)