XSIforum.com

Python - PPG layout Parameter Set con Expresiones.

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

photon

  • *
  • 88
  • Te veo como un Poligono
Python - PPG layout Parameter Set con Expresiones.
« en: 07 Agosto 2008, 19:29:06 »
   
Hola a todos.

tengo hecha una escena muy sencilla que contiene un null, una linea y un PPG con una barra deslizadora para mover el null a traves de la linea.

la escena contiene


- El null tiene un Constrain Curve (path).
- Custom Parameter Set con su Custom Parameter (Integer). PPGLayout
- El parámetro tiene la expresión del constrain. PathCns

Todo está funcionando correctamente como quiero.

Ahora bien quiero crear el PPGlayout igual que el anterior, pero atraves de scripting en Python y no se como o que poner para dicha expresion que puse antes manualmente.

para generar el codigo del PPG  uso el SDKWizard del PPG.

¿Como pongo dicha expresion, como y donde  y como es?

Gracias a todos.

Re: Python - PPG layout Parameter Set con Expresiones.
« Respuesta #1 en: 08 Agosto 2008, 05:41:58 »
En jscript sería algo asi, traducirlo a python no debería ser muy difícil :)

Código: [Seleccionar]
function csNullInPath(oNull, oCurve, tittle, parameter) //definimos una función
{
var CP = oNull.AddProperty("CustomProperty", false, tittle); //Creamos el Custom Property
var oParameter = CP.AddParameter3(parameter, siDouble, 0, 0, 100, 1, 0); //Creamos un Custom Parameter
pathConstraint = oNull.Kinematics.AddConstraint("Path", oCurve); //Asignamos el constraint al null
pathConstraint.perc.AddExpression(oParameter); //Asignamos una expresion en el perc del contraint para controlarla desde el custom parameter
return CP; //retornamos el custom property
}


var oRoot = ActiveProject.ActiveScene.Root; //establecemos el scene_root
var myNull = oRoot.AddNull("myNull"); //creamos un null
if (Application.Selection.Count == 1 && Application.Selection(0).type == "crvlist") //verificamos que la seleccion sea una curva
{
var myCP = csNullInPath(myNull, Application.Selection(0), "Propiedades", "%Path") //si es una carva llamamos a la funcion
InspectObj(myCP); //inspeccionamos el PPG que retorna la funcion
} else {
LogMessage("Por favor seleccione una curva", siError); //Arrojamos un error en caso de que la seleccion no sea una curva
}

Ojalá sea de ayuda!
Salu2 O0

Re: Python - PPG layout Parameter Set con Expresiones.
« Respuesta #2 en: 08 Agosto 2008, 07:58:20 »
Ok, hice mi tarea del día de hoy :D

Código: [Seleccionar]
import win32com.client
from win32com.client import constants as c

def csNullInPath (oNull, oCurve, tittle, parameter): #definimos el equivalente a una funcion en python
CP = oNull.AddProperty("CustomProperty", False, tittle) #agregamos el custom property al null
oParameter = CP.AddParameter3(parameter, c.siDouble, 0, 0, 100, 1, 0) #agregamos el parameter al CP
pathConstraint = oNull.Kinematics.AddConstraint("Path", oCurve) #asignamos el constraint al null
Application.AddExpr("%s.perc" % (pathConstraint), "%s.%s" % (CP, parameter)) #agregamos la expresión
#pathConstraint.perc.AddExpression("%s.%s" % (CP, parameter))
return CP #retornamos el custom property

oRoot = Application.ActiveProject.ActiveScene.Root #definimos el scene_root
if (Application.Selection.count == 1 and Application.Selection(0).type == "crvlist"): #comprobamos que la seleccion sea igual a 1 y que sea una curva
myNull = oRoot.AddNull("myNull") #creamos un null
myCP = csNullInPath(myNull, Application.Selection(0), "Propiedades", "AgePath") #llamamos la funcion
Application.InspectObj(myCP) #inspeccionamos el CP
else:
Application.LogMessage("Por favor seleccione una curva", c.siError) #si la seleccion no es una curva lanzamos un error

Lo único que no pude resolver (y probablemente sea algo muy simple que se me está pasando) es como asignar la expresión mediante object model, es la linea que está comentada en el código de arriba. Alguien sabe cual es el problema?

photon

  • *
  • 88
  • Te veo como un Poligono
Re: Python - PPG layout Parameter Set con Expresiones.
« Respuesta #3 en: 08 Agosto 2008, 19:19:32 »
Muchisimas Gracias Cesar.

A la noche lo miro. que estoy pilladisimo de tiempo.

Frase comun => No tengo delante el XSI.

photon

  • *
  • 88
  • Te veo como un Poligono
Re: Python - PPG layout Parameter Set con Expresiones.
« Respuesta #4 en: 09 Agosto 2008, 01:39:03 »
Hola Cesar me da este fallo con el codigo de Python.

# ERROR : Unexpected Python Error: exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 570: ordinal not in range(128)




SOlucionado fallo mio. Fallo tonto de Principiante.

Gracias, Todo Correcto.
sobre el object model ya investigaremos.