XSIforum.com

Conceptos básicos

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

Conceptos básicos
« en: 25 Febrero 2009, 10:09:12 »
 Me quiero disculpar de antemano si esto que voy a preguntar ya ha salido en la lista, reconozco que hoy ando muuuuy pillado de tiempo y no me lo he mirado. A lo que nos atañe!! ¿Porqué XSI hace tooodas sus primitivas en el punto (0,0,0) y no donde a mi me dé la gana (como en Max) Yo prefiero lo que hace XSI, recuerdo q en Max en ciertos casos se anidaban las transformadas y era un lio de mil pares de cojones y algo me dice que es mucho mas estable hacerlo a la manera XSI, pero si tuviera q polemizar al respecto me gustaría disponer de argumentos mas solidos. Gracias lista!!

Re: Conceptos básicos
« Respuesta #1 en: 25 Febrero 2009, 15:13:32 »
3dsmax hace 1 paso extra en la creación de sus primitivas calculando la matriz de transformación en el momento de la creación, las 2 formas son válidas y útiles según cada caso, no sé si la decisión de no incluir esa opción por defecto se deba a que una forma sea mejor que la otra, este tipo de cosas pasa más por gustos personales que otra cosa.

De todas formas implementar la creación de primitivas "dibujando" en el viewport es algo relativamente simple de hacer via scripting (dentro de lo que permite el SDK).

Por ejemplo:
Código: (Python) [Seleccionar]
import win32com
xsi = win32com.client.Dispatch("XSI.Application").Application

def createSphere(name="TheSphere"):
    pickPos = xsi.PickPosition( "Position", "")
    pickRadius = xsi.PickPosition( "Radius", "")
    radius = XSIMath.createVector3()
    radius.Set(pickRadius[1]-pickPos[1], pickRadius[2]-pickPos[2], pickRadius[3]-pickPos[3])
    radius = radius.Length()
    sph = xsi.ActiveSceneRoot.AddGeometry("Sphere", "MeshSurface", name)
    sph.Kinematics.Local.PosX.value = pickPos[1]
    sph.Kinematics.Local.PosY.value = pickPos[2]
    sph.Kinematics.Local.PosZ.value = pickPos[3]
    sph.Radius.Value = radius

createSphere("El_nombre")

Re: Conceptos básicos
« Respuesta #2 en: 25 Febrero 2009, 15:52:09 »
 Gracias Cesar
  O0