26/11/2008

Control absoluto del 3DSMax desde Delphi

Aquí describo los pocos pasos necesarios, y muy sencillos para obtener el control absoluto del 3DSMax desde una aplicación en Delphi, con el uso de OLE Automation y MAXScript.

1-) Registrar 3DSMax.

Primero debemos registrar al 3DSMax en Windows para activarlo como OLE Automation. Para esto vamos a la carpeta: C:\3dsmax9\Samples\Scripts\Examples y editamos el archivo maxscript.reg. Al final de la última línea debes asegurar de que donde dice “\LocalServer32 = C:\3dsmax\3dsmax.exe” apunte realmente al camino del ejecutable del 3DSMax en tu PC, y guardas los cambios.
Luego le das doble click a maxscript.reg para introducir esta información al registro. Esto hay que hacerlo solo una vez.

2-) 4 líneas de código en MAXScript

MAXScript permite exportar un arreglo de funciones previamente definidas e implementadas para que sean accesibles externamente mediante el objeto OLE.
Por otra parte MAXScript permite con la función Execute, ejecutar su propio código pasandole un string en tiempo de ejecución, aprovechando esto logramos que con una sola función se pueda tener el control absoluto del Max externamente.
Creamos un nuevo script (3DSMAX: Menú principal –> MAXScript –> New Script…) que contenga el siguiente código:




function DelphiExecute s =
(
res = Execute s
return (res as string)
)
registerOLEInterface #(DelphiExecute)


El MAXScript es un lenguaje muy sencillo, es evidente lo que hace la función. Ejecutamos este escript y luego dejamos el MAX abierto y nos damos un saltico al Delphi.

3-) 4 líneas de código en Delphi

Ahora creamos desde Delphi el objeto OLE y le mandamos al MAX a ejecutar strings de código MAXScript a nuestro antojo.




Var
V :Variant;
S :string;

...

V := CreateOleObject('MAX.Application')

...

s := v.DelphiExecute('b = Box()');
s := v.DelphiExecute('b.height = 20');



El ejemplo anterior crea una caja y luego le pone en 20 la altura.
Listo, lo único que queda es estudiar MAXScript!! : )
Lo infinidad de cosas que se puede hacer con esto es inimaginable, eso lo dejo a su creatividad y sus necesidades.



2 comentarios:

  1. Denys tienes un tutorial de MAX Script para principiantes?

    ResponderSuprimir
  2. Aquí hay uno:
    http://www.foro3d.com/f112/tutorial-maxscript-introduccion-66264.html

    Pero te recomiendo la propia ayuda del MAXScript que está muy completa, por ahí aprendí.
    Topics: Learning MAXScript, How To - Practical Examples

    ResponderSuprimir