XSIforum.com
Foros 3D => Autodesk Softimage => Rigging y Scripting => Mensaje iniciado por: pacow en 21 Marzo 2006, 16:16:57
-
Hola, tengo un pequeño script que me permite poner en un archivo los siguientes datos:
Posición global en X, posición global en Y, posición global en Z, número de cuadro para keyframe.
Mi problema es que he utilizado:
x= GetValue ("cube.kine.global.posx")
y= GetValue ("cube.kine.global.posy")
z= GetValue ("cube.kine.global.posz")
lo que funciona bien si mi objeto se llama "cube".
Estoy atorado porque lo que ahora quiero hacer es que me diga la posición, pero de un objeto que seleccione desde la interfaz (y que tenga cualquier nombre y sea de cualquier tipo (cámara, null, polígono...)
Creo que tiene que ver con Application.Selection, pero de ahí no tengo idea de como especificar el nombre del objeto seleccionado para sacar los valores con GetValue. ¿Puede alguien poner las líneas de código que lo hagan?
Gracias.
-
Hola!!! Esta es una solucion rapida para lo que quieres, pero debes asegurarte de que tienes selecionado un solo objeto.
set objeto = selection(0)
logmessage objeto
x= GetValue (objeto &".kine.global.posx")
y= GetValue (objeto &".kine.global.posy")
z= GetValue (objeto &".kine.global.posz")
Ya que te has puesto, si puedes indicarme como abrir archivos para utilizarlos en xsi, pues me harias un favor, porque aun no llego a eso; a ver si puedes mandarme el codigo necesario.
thankyou
-
Hola, muchas gracias, funciona bien para un sólo objeto, nada más que le agarre la onda a los arrays veré como expandirlo.
Para escribir archivos, según tengo entendido usas un comando de vbscript, ahí te va código de ejemplo:
'////////////////////////////////////////
set fso=createobject ("scripting.filesystemobject")
set ts=fso.createtextfile("c:\temp\pacow.txt", true)
cuadro = GetValue("playcontrol.current")
salida ="un pequeño ejemplo"& vbnewline
salida = salida & "cuadro actual: "& cuadro & vbnewline
ts.write salida
ts.close
'////////////////////////////////////////
obvio editas la ruta de salida, y pues ese lo graba en c:\temp\pacow.txt.
Un saludo.
ps: para leer me imagino que hay un comando similar a write (presumiblemente read), busqué en el xsibase y había un script, el heatwave que estaba escrito en vbscript, lo malo es que al parecer cambio la ruta cuando modificaron la pg. de softimage.
-
Aquí tienes todo lo que puedes hacer con ficheros y carpetas:
http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vbcn7/html/vbconintroductiontofilesystemobjectmodel.asp
Saludos
-
gracias por la ayuda tios O0