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
Ordenar el arbol alfabeticamente
Iniciado por Leo75, jul 24 2009 08:42
#1
Publicado el 24 julio 2009 - 08:42

Saludos, Leo75.
(Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).
(Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).
#2
Publicado el 26 julio 2009 - 04:17

#3
Publicado el 26 julio 2009 - 05:42

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.
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.
Saludos, Leo75.
(Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).
(Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).
#4
Publicado el 21 agosto 2009 - 11:50

Despues de varios tropiezos he conseguido el 90% del trabajo
, 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


¿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?

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
Saludos, Leo75.
(Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).
(Me lo contaron y lo olvidé. Lo ví y lo entendí. Lo hice y lo aprendí).
#5
Publicado el 01 junio 2012 - 09:17

buenas,...
Hace tiempo que no corria por aqui,..
grandes aportaciones veo por aqui,. y esta me interesa especialmente,...
estare al loro,...
un saludo.
Hace tiempo que no corria por aqui,..
grandes aportaciones veo por aqui,. y esta me interesa especialmente,...
estare al loro,...
un saludo.
-Xvr-
#6
Publicado el 29 junio 2012 - 03:41

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...

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...
0 Usuario(s) están leyendo este Tema
0 miembro(s), 0 invitado(s), 0 usuario(s) anónimo(s)