XSIforum.com

Python y su falta de documentacion.

0 Usuarios y 1 Visitante están viendo este tema.

Python y su falta de documentacion.
« en: 22 Octubre 2008, 03:36:23 »
Muchachos, como andan?
Hace unos dias que intento pasarme a python de js, y para empezar no puedo encontrar la forma de traducir lo que sabia.
Estuve buscando estos comandos principalmente, el GetValue, algo tan simple como averiguar el valor por ejemplo de una esfera en el axis Y. El famoso pickObject tambien me esta costando encontrar.
Si alguien me puede dar una mano con esos dos comandos y donde encontrar buena data sobre python orientado a xsi le agradeceria muchisimo!!!!

a = 1
while a < 32749:
       a = a+1
       Application.logmessage ("gracias")

Re: Python y su falta de documentacion.
« Respuesta #1 en: 22 Octubre 2008, 06:15:42 »
Es que es lo mismo! python como jscript son sólo lenguajes para comunicarse con el software, el SDK no cambia :)

Citar
Estuve buscando estos comandos principalmente, el GetValue, algo tan simple como averiguar el valor por ejemplo de una esfera en el axis Y. El famoso pickObject tambien me esta costando encontrar.

En el código de abajo tienes como usar un pickObject para seleccionar la esfera de tu ejemplo y luego como consultar su posición local en y, yo te recomiendo que veas como funciona el OM en lugar de usar comandos pero te dejo ambas opciones, como verás las diferencias no son tantas (a este nivel) O0

Código: (python) [Seleccionar]
xsi = Application

# como se usa el pickObject, es igual que
# en JScript!
pickedObj = xsi.pickObject("Seleccione una esfera")
mySphere = pickedObj(2)

# como consultar la posición local en y
# mediante comandos (la forma lenta).
myPosY = xsi.GetValue("%s.kine.local.posy" % (mySphere.name))
xsi.logMessage(myPosY)

# como consultar la posición local en y
# mediante el object model (esta es la buena!).
myPosY = mySphere.kinematics.local.posy.value
xsi.logMessage(myPosY)
« Última modificación: 22 Octubre 2008, 06:21:46 por César Sáez »

Re: Python y su falta de documentacion.
« Respuesta #2 en: 22 Octubre 2008, 20:53:41 »
muchiiiiisimas gracias!!!!!!!, estoy medio perdido aun.
De donde conseguiste estas lineas de comand que me pasaste?

Re: Python y su falta de documentacion.
« Respuesta #3 en: 22 Mayo 2010, 19:32:09 »
¿o sea, que lo unico que hay que hacer para usar los comandos (y la documentacion de comandos que viene en el help) es colocar el prefijo "Application."?

Gracias!
« Última modificación: 22 Mayo 2010, 19:59:09 por gerardoxsi »

Re: Python y su falta de documentacion.
« Respuesta #4 en: 22 Mayo 2010, 22:47:28 »
En principio si (al menos si estás dentro de Softimage), lo otro "especial" son las constantes que deben ser importadas desde win32com.client.

Cuando ejecutas tu código en un contexto que no sea softimage (p.e. dentro de un módulo) debes hacer un dispatch para conseguir el contexto de xsi y a ese resultado consultar el application.

El encabezado típico/básico sería algo como esto:
Código: [Seleccionar]
import win32com.client
from win32com.client import constants as c
xsi = win32com.client.Dispatch("XSI.Application").Application

# opcional
log = xsi.LogMessage
sel = xsi.Selection
get = lambda name: xsi.Dictionary.GetObject(name, False)