XSIforum.com
Foros 3D => Autodesk Softimage => Rigging y Scripting => Mensaje iniciado por: gerardoxsi en 14 Agosto 2010, 20:21:34
-
Hola a todos
estoy empezando a darle al python, y ya tengo mis primeross problemas! XD
xsi = Application
asr = Application.ActiveSceneRoot
xsi.GetPrim("Null", "", "", "")
myT = asr.FindChildren ("null*")
xsi.LogMessage ( myT )
yo esperaba que me diera de resultado la lista de nulls de la escena, pero no ha sido, obtengo un none!
¿que he hecho mal?
-
Vienes de MEL, no? MEL te da listas como strings ya que no tiene object model.
Esto si funciona:
xsi = Application
asr = xsi.ActiveSceneRoot
myT = asr.FindChildren("*", "null")
for null in myT:
xsi.LogMessage(null)
-
vaale, lo que obtengo es una lista.
tengo que itinerarla y mostrar cada miembro para ello.
-
Y tu otro problema del codigo era que usabas .FindChildren("null*") que significa que no busca nulls necesariamente sino objetos cuyo nombre empieze por "null".
Lo que hize yo filtra los hijos por su .Type y solo te da nulls ya que el .Type de un null es "null".
Si miras el manual, pone: X3DObject.FindChildren( [Name], [Type], [Family], [Recursive] )
-
si si.. eso lo habia visto en la ayuda.
lo que no entendia era que me devolvia una lista, y que las listas no se muestran como strings
gracias alan!
estoy haciendo un curso acelerado de python para ver si resuelvo unos problemillas de rigs
-
Si lees mas a fondo la pagina sobre FindChildren y miras abajo, pone:
Return Value
X3DObjectCollection
con un link. Si le das te da los methods y properties de ese tipo de "collection". Hay mas de un tipo. Lo que te da es un collection, no una lista.
En Python un "list" es otra cosa completamente diferente de un collection de XSI.
-
vale, me devuelve una coleccion de objetos, no la lista de sus nombres.. no?
-
vale, me devuelve una coleccion de objetos, no la lista de sus nombres.. no?
Correcto. :) Si sus nombres cambiasen, la lista continuaria teniendo los objetos correctos.
Pero como dije, hay mas de un tipo de collection. Lo que te da FindChildren() es un X3DObjectCollection, que por ejemplo tiene algunos metodos diferentes del tipo XSICollection.
-
En lugar de usar FindChildren()/FindChild() es mejor usar un FindChildren2()/FindChild2() que ya no incluyen al objeto padre y son el reemplazo a los antigüos métodos, dentro de algunas versiones los van a deprecar y es mejor ir usando desde ya los nuevos métodos ;)
-
si, ya notaba yo raro que me salieran los objetos padres en la coleccion
me imagino que eliminar estos antiguos metodos, los nuevos funcionaran por estos
es decir, FindChildren será FindChildren2.... no?
-
Si, era un bug que se ha reparado de esa forma para evitar que se rompan los desarrollos anteriores O0
-
¿Gerardo si no te importa como estás empezando? Porque yo llevo tiempo queriéndome poner pero no hago más que ir de un lado para otro sin sacar nada claro macho xD
-
hola... ¿como que como estoy empezando?
con python?... pues nada, con un par de manuales online "python para todos" y este que me lo he bajado pero ni lo he mirado: http://es.diveintopython.org/ (http://es.diveintopython.org/)
-
¿'Phyton para todos' es el de Raúl González? Creo que lo tengo por ahí (so es uno que hay gratuito), pero no lo llegué a ver
Es que yo llevo muchísimo tiempo queriendo empezar a tocar algo de scrpting, me da igual java, phyton en maya o en xsi, el caso es que no encuentro nada decente, no se donde buscar o no es lo mío, pero el caso es que cada vez que me pongo a leer algo termino igual que empecé, así que algo debo no estar haciendo bien xD
Supongo que tu eres autodidacta y empezastes con MEL ¿no?
-
si, ya notaba yo raro que me salieran los objetos padres en la coleccion
me imagino que eliminar estos antiguos metodos, los nuevos funcionaran por estos
es decir, FindChildren será FindChildren2.... no?
No, porque podria romper compatibilidad con FindChildren() en scripts antiguos. FindChildren2() continuara existiendo por separado. (No es el unico comando asi.)
-
¿'Phyton para todos' es el de Raúl González? Creo que lo tengo por ahí (so es uno que hay gratuito), pero no lo llegué a ver
Es que yo llevo muchísimo tiempo queriendo empezar a tocar algo de scrpting, me da igual java, phyton en maya o en xsi, el caso es que no encuentro nada decente, no se donde buscar o no es lo mío, pero el caso es que cada vez que me pongo a leer algo termino igual que empecé, así que algo debo no estar haciendo bien xD
Supongo que tu eres autodidacta y empezastes con MEL ¿no?
bueno, yo es que programación estudie desde niño, toque Basic, Pascal, Cobol... pero bueno, sé de muchos que ha aprendido scripting en 3D desde cero.
en Digital Tutors hay tutoriales de python para Maya y Softi (creo que el único que hay de python para xsi), de Mel hay muchisimos en internet y en 3Dquakers hay scripting para XSI que van desde conceptos basicos.
-
bueno, yo es que programación estudie desde niño, toque Basic, Pascal, Cobol... pero bueno, sé de muchos que ha aprendido scripting en 3D desde cero.
en Digital Tutors hay tutoriales de python para Maya y Softi (creo que el único que hay de python para xsi), de Mel hay muchisimos en internet y en 3Dquakers hay scripting para XSI que van desde conceptos basicos.
Le echaré un vistazo a esos, sobre a todo a los de quakers, que me molan, no sabía que tuvieran scripting... a ver tal
Muchas gracias gerardo! :P