Anda di halaman 1dari 16

Documento sin ttulo

Pgina 1 de 16

1- Introduccin
1.1 - Descripcin general de MAXScript
MAXScript es un lenguaje de alto nivel orientado a objetos y de sintaxis muy sencilla. Est
pensado para usuarios de 3D Studio MAX que no estn familiarizados con la programacin. Sus
variables son sin tipo y no hay distincin entre maysculas y minsculas.
Este lenguaje no necesita compilador. Todas las instrucciones se llevan a cabo en tiempo de
ejecucin.
Podemos utilizar MAXScript y 3D Studio MAX al mismo tiempo. Se puede crear un cubo en
MAXScript y seguidamente, modificarlo en 3D Studio.
Algunos ejemplos de utilizacin de este lenguaje pueden ser:

Creacin de escenas complejas que interactivamente seran demasiado complicadas de


llevar a cabo.
Creacin de herramientas de proceso por lotes.
Generacin de funciones nuevas para facilitar una determinada tarea.
Uso de casi todas las funciones de 3D Studio MAX.
Creacin de nuevos paneles y ventanas con utilidades para 3D Studio MAX.
1.2 - Cmo se accede a MAXScript

MAXScript se encuentra en el panel de herramientas.


En este panel hay una persiana de utilidades, y dentro de ella se puede presionar el botn
MAXScript

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 2 de 16

Una vez se haya abierto la persiana de MAXScript podremos acceder a las opciones: Abrir oyente,
guin nuevo, abrir guin, ejecutar guin y cerrar.
Abrir oyente: Abre la ventana oyente de MAXScript. Si pulsamos esta opcin y el oyente
est minimizado, o escondido detrs de otra ventana, lo restaurar. Si la cierra y la vuelve a
abrir, conserva el texto que haba antes de cerrarla.

Guin nuevo: Abre un editor en una ventana nueva, donde se puede escribir un nuevo
guin en MAXScript
Abrir guin: Al pulsar esta opcin se abre un cuadro de dilogo de apertura de archivos en
el que el usuario ha de elegir un guin en MAXScript. Una vez escogido el guin se abrir
una ventana Editor de MAXScript con el contenido del fichero.
Ejecutar guin: El usuario escoge un guin en MAXScript y ste se lee y se ejecuta. La
salida puede verse, dependiendo del tipo de guin, en los visores de 3D Studio MAX o bien
en la ventana oyente de MAXScript.

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 3 de 16

Utilidades: Muestra las utilidades de guin disponibles.


Cerrar: Cierra la utilidad MAXScript.
1.3 - Utilizacin del oyente de MAXScript
En el oyente se pueden ejecutar comandos y expresiones. Para ejecutarlos, simplemente se escribe
el comando o expresin y se pulsa la tecla ENTER.
Podemos desplazarnos por el texto del oyente como si fuese un editor normal. Tambin se puede
cortar, copiar y pegar el texto seleccionado (CTRL-X, CTRL-C, CTRL-V) y editar nuevos
comandos en medio del texto, o modificar los que ya tenamos y despus ejecutarlos.
Para ejecutar comandos en medio del texto, despus de editarlos en una lnea nueva, se ha de
pulsar la tecla ENTER del teclado numrico, o bien presionar MAYSCULAS ENTER. Los
resultados se muestran en la misma ventana, bajo el comando o los comandos ejecutados.
Es posible ejecutar bloques de cdigo seleccionndolos previamente y pulsando las teclas
MAYSCULAS ENTER o bien, presionando ENTER desde el teclado numrico.
La instruccin Include NombreFichero.Extensin replacea el contenido del fichero
NombreFichero en el oyente sin ejecutarlo.
Se puede seleccionar el texto y ejecutarlo por trozos.
Podemos trabajar con el oyente de MAXScript y con 3D Studio MAX al mismo tiempo.
1.4 - Variables en MAXScript
Las variables se utilizan para almacenar datos que varan durante la ejecucin del programa. En
MAXScript no es necesario declarar las variables antes de utilizarlas
Tenemos dos clases de variables en MAXScript:
Variables locales:
Se considerarn variables locales aquellas que se utilicen por primera vez dentro de
un bloque o funcin. En caso contrario, las variables se considerarn globales.
Slo son visibles en el bloque o funcin donde se declaran.
Su valor se mantiene mientras se est ejecutando la funcin o el bloque donde se
encuentran.
Variables globales:

Son visibles en todo el cdigo MAXScript.


Podemos acceder a ellas desde diferentes utilidades, funciones, etc. Su valor
permanece hasta que se sale de 3D Studio MAX.
La primera vez que se utiliza una variable MAXScript la inicializa como undefined.
Para que el cdigo sea ms claro, es recomendable indicar de qu clase son las variables. Para ello,
utilizaremos los trminos local y global. Ntese que los comentarios en MAXScript van
precedidos de 2 guiones - -.

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 4 de 16

<table border="1" width="100%"> <tbody><tr> <td height="117">local x = 2, m = 3.7


local y, z, r
global texto = Hola
global i = 1, -- La declaracin contina en las lneas siguientes
j = 3,
k = sin (35)
local f=g=h=0</td> </tr> </tbody> </table>
En la declaracin de variables, podemos definir si son globales o locales, pero no indicamos de
qu tipo son. Esto es debido a que las variables son libres de tipo. Las variables pueden cambiar el
tipo de valor en las asignaciones. Por ejemplo, en una primera asignacin una variable puede ser
un entero, y en una segunda asignacin, la variable puede ser una cadena de caracteres. Esto no
quiere decir que se puedan hacer operaciones incorrectas. Si tratamos de hacerlas, MAXScript
dar un error. Para convertir un tipo de variable en otro tipo utilizaremos la instruccin as de la
siguiente forma:
Valor as nuevo_tipo.
Ntese en la imagen siguiente que las salidas de comando en el oyente siempre son de color azul,
excepto en los errores.

1.5 - Operaciones matemticas en MAXScript


Cuando introducimos una operacin matemtica en MAXScript, ste evala dicha operacin y
muestra el resultado en la ventana oyente. MAXScript dispone de las operaciones matemticas
necesarias para hacer que funcione de forma semejante a una calculadora.
Las expresiones matemticas estn compuestas por operadores (+,-,*...) y por operandos. Un
operando matemtico puede ser:
Un Nombre de variable, nmeros, etc.. Por ejemplo:
1 + 3 -- Suma ambos nmeros
Total - 5 -- Suma 5 al valor de la variable "Total"
Total + iva -- Suma el valor de la variable "Total" ms el valor de la variable "iva"
Una llamada a una funcin. Por ejemplo

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 5 de 16

(GradosARadianes grados:180) + 5 -- Llama a la funcin "GradosARadianes"


pasando como parmetro 180 grados y al resultado le suma 5.
Una expresin matemtica. Por ejemplo:
123 + (Total - iva) -- Restamos el contenido de la variable "iva" al contenido de
"Total" y le sumamos el valor 123.
En la Tabla siguiente podemos ver las expresiones matemticas que tiene MAXScript.
<table align="center" border="1" width="90%"> <caption> Operaciones matemticas
</caption> <tbody><tr> <td width="69%"><operando_matem tico=""> + <operando_matem
tico=""></operando_matem></operando_matem></td> <td width="31%">Suma</td> </tr>
<tr> <td><operando_matem tico=""> - <operando_matem
tico=""></operando_matem></operando_matem></td> <td>Resta</td> </tr> <tr>
<td><operando_matem tico=""> * <operando_matem
tico=""></operando_matem></operando_matem></td> <td>Multiplicacin</td> </tr> <tr>
<td><operando_matem tico=""> / <operando_matem
tico=""></operando_matem></operando_matem></td> <td>Divisin</td> </tr> <tr>
<td><operando_matem tico=""> ^ <operando_matem
tico=""></operando_matem></operando_matem></td> <td>Exponencial</td> </tr> <tr>
<td><operando_matem tico=""> as <factor></factor></operando_matem></td>
<td>Conversin entre tipos</td> </tr> </tbody> </table> En la figura siguiente tenemos unos
ejemplos de expresiones matemticas en el oyente de MAXScript:

Tambin se puede utilizar el formato abreviado de asignacin del lenguaje C para modificar un
valor contenido en una variable. Por ejemplo:
<table border="1" width="100%"> <caption> Formato abreviado de asignacin </caption>
<tbody><tr> <td> x + = 5 -- Incrementa en 5 el valor de x
y * = 7 -- Multiplica por 7 el valor de y
z - = 9 -- Resta 9 al valor de z
k / = 8 -- Divide k entre 8
</td> </tr> </tbody> </table>

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 6 de 16

1.6 - Objetos de 3D Studio MAX en MAXScript


MAXScript puede trabajar con objetos de 3D Studio MAX al mismo tiempo que se trabaja con
ellos de forma interactiva a travs de los botones y paneles. De hecho, los objetos pueden ser
creados, transformados, modificados y eliminados desde MAXScript al igual que se hace desde
3D Studio MAX.
Los comandos de creacin de objetos coinciden con los nombres de estos objetos. Podemos crear
una caja tan slo escribiendo en la ventana oyente el comando box ( ), o bien, si tenemos la
versin, su equivalente en espaol caja ( ). Una vez escrito, y despus de presionar la tecla
INTRO, se crea una caja con los parmetros por defecto. Es recomendable escribir los comandos
en ingls, ya que no todos los parmetros que hay se han traducido al espaol. En este tutorial
escribiremos todos los comandos y parmetros en ingls
Es indiferente si escribimos el comando en maysculas y en minsculas, ya que MAXScript no
distingue entre ellos. Tambin se recomienda asignar el objeto a una variable, para hacer ms
manejable el uso de dicho objeto. Si el objeto creado no se asigna a ninguna variable y queremos
referirnos a l utilizaremos el smbolo $ delante del nombre que tiene el objeto en la escena.
Pongamos un ejemplo de creacin de una caja de altura 20, anchura 30 y longitud 40.
Asignaremos el resultado a la variable PrimeraCaja:

Cuando utilizamos el comando box con parmetros, se eliminan los parntesis y en su lugar
ponemos los nombres de los parmetros seguidos de los dos puntos y su valor. Los parmetros que
se omiten adquieren su valor por defecto.
Cuando MAXScript ha creado la caja devuelve el nombre que tiene dicha caja en la escena (En
este caso, el nombre ser Caja01) y al mismo tiempo indica la posicin que tiene la nueva caja
en la escena (Con las coordenadas x, y, z separadas por comas y dentro de corchetes). MAXScript
dibuja la caja en la escena. Se puede trabajar con la nueva caja desde 3D Studio MAX como si se
hubiese creado de forma interactiva. Podemos transformarla, modificarla, eliminarla e incluso
deshacer la creacin de la caja con el botn deshacer.
Atencin: No es lo mismo el nombre que tiene la caja en la escena (Caja01) que el nombre de
variable en MAXScript (primeraCaja).

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 7 de 16

Utilizaremos la variable primeraCaja para acceder ms fcilmente a los parmetros de creacin y a


las propiedades generales y de transformacin:

En la imagen anterior hay varios ejemplos de modificacin de algunos parmetros de la caja.


Podemos modificar todos los parmetros del objeto (altura, radio, etc..), de nodo (nombre, color,
etc...) y de transformacin (rotacin, posicin, etc). Para modificar un valor en un objeto
utilizaremos uno de los siguientes esquemas:
$NombreObjeto.Parmetro=NuevoValor
NombreVariable.Parmetro=NuevoValor
Donde "NombreObjeto" sera equivalente a $Caja01 en el ejemplo anterior y "NombreVariable"
equivale a PrimeraCaja.
1.6.1 - ShowClass
Para saber los nombres y tipos de parmetros de un objeto se puede utilizar la funcin ShowClass
(). Si escribimos en el oyente de MAXScript slo el nombre de la funcin seguido de los dos
parntesis tendremos una lista de todos los objetos de 3DStudio MAX y sus parmetros
correspondientes. Cada parmetro ir seguido de su tipo.
Lo ms normal es que se quiera saber los parmetros de un objeto determinado, sin necesidad de
que salgan todos los objetos de 3D Studio MAX. Tenemos dos ejemplos de ello en el siguiente
recuadro.
<table border="1" width="100%"> <caption> Ejemplos de ShowClass </caption> <tbody><tr>
<td>ShowClass "box.*" -- Muestra todos los parmetros de la clase box
Box(Caja) : GeometryClass {10,0}
.height(Altura) : float
.length(Longitud) : float
.lengthsegs : integer
.width(Anchura) : float
.widthsegs : integer

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 8 de 16

.mapCoords : boolean
.heightsegs(SegmsAltura) : integer
OK
ShowClass "Box.height" -- Muestra todos los datos del parmetro height
Box(Caja) : GeometryClass {10,0}
.height(Altura) : float
OK
</td> </tr> </tbody> </table>
En el primer ejemplo indicamos con un asterisco que queremos saber todos los parmetros del
objeto Box. Utilizamos el asterisco como un comodn. Si quisisemos saber todos los parmetros
de los objetos que comenzasen por B slo tendramos que poner ShowClass B*.* y
obtendramos una lista con ellos. Si por el contrario ya sabemos el parmetro pero no estamos
seguros del tipo que tiene, nos bastar con poner ShowClassBox.NombreParmetro.
En el segundo ejemplo de ShowClass hemos comprobado que el parmetro "Height" de la clase
"Box" es del tipo "Float".

2.1 - Edicin y ejecucin de guiones en ficheros


Como se ha comentado en el captulo 1, en MAXScript se pueden generar nuevas utilidades y
funciones para 3D Studio MAX. Si queremos conservar los guiones de estas utilidades y
funciones tendremos que guardarlos en ficheros, ya que el contenido de la ventana Oyente se
pierde una vez se cierra el programa. Para ello, en lugar de utilizar el oyente de MAXScript,
abriremos un guin nuevo mediante el botn "Abrir Guin" y escribiremos en el editor de
guiones nuestro programa en MAXScript.

Si por el contrario ya tenemos un guin escrito y lo queremos modificar podemos presionar el


botn Abrir Guin o bien mediante la instruccin Edit NombreFich.ms desde el oyente de
MAXScript. Por convencin, los ficheros escritos en MAXScript tienen la extensin .ms.
2.1.1 - Teclas abreviadas

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 9 de 16

En este apartado explicaremos todas las teclas de funcin que se utilizan en MAXScript. No es
necesario aprenderselas de memoria, ni mucho menos, pero puede ser til saber algunas de ellas
para ir ms rpido y evitar tener que irnos al men y buscar la funcin. Se ha de decir que todos
los mtodos abreviados tienen su equivalente en los mens del oyente y del editor de MAXScript,
o sea, que si no te interesa el tema, puedes pasar al siguiente apartado directamente (Confieso que
este es un rollo!!!).
Podemos utilizar teclas abreviadas tanto en el oyente de MAXScript como en el editor de guiones,
pero ojo! Hay un par que tienen significado diferente si las aplicas en un sitio o en otro. Tambin
hay abreviaciones especficas para el oyente, y abreviaciones slo para el editor.
Comencemos primero por las que tienen significado diferente
<table border="1" width="100%"> <caption> Teclas abreviadas con significado diferente
</caption> <tbody><tr bgcolor="#00ccff"> <td bgcolor="#00ccff" width="10%">
Nombre
</td> <td width="40%">
Significado en Oyente
</td> <td width="40%">
Significado en Editor
</td> </tr> <tr> <td valign="top">CTRL + S</td> <td valign="top">Guardar como. Abre un
cuadro de dilogo para que el usuario introduzca el nombre del fichero en el que se va a guardar
todo el texto activo del oyente.</td> <td valign="top">Guardar. Guarda el contenido del editor en
el fichero actual. Si el fichero no tiene nombre se abrir un cuadro de dilogo para que el usuario
introduzca el nombre que desee.</td> </tr> <tr> <td valign="top">CTRL + R</td> <td
valign="top">Ejecutar guin. Se abre un cuadro de dilogo para que el usuario seleccione un
fichero de MAXScript. Una vez seleccionado, se proceder a su ejecucin.</td> <td
valign="top">Sita el cursor en el lugar donde se haba situado anteriormente con un click del
botn izquierdo, o en una operacin de bsqueda. Esto es un poco complicado de entender.
Pongamos un ejemplo. Un usuario ha buscado en su editor la palabra "Esfera", y ya va por la
tercera ocurrencia, pero se da cuenta que la que le interesa es la segunda. Pulsando "CTRL + R" se
situar en la anterior, que es la que desea.
Otro ejemplo sera cuando un usuario hace click en una posicin y luego se va a otro sitio. Podr
recuperar la posicin en la que estaba anteriormente el cursor pulsando "CTRL + R"
</td> </tr> </tbody> </table> He de comentar que las teclas CTRL + R en el editor de guiones
particularmente no me han funcionado nunca. No se si es cosa de mi 3D Studio MAX o es uno de
los muchos errores que tiene nuestro querido MAXScript.
A continuacin os muestro otra tabla con funciones exclusivas del editor de guiones:
<table border="1" width="100%"> <caption> Teclas abreviadas exclusivas del editor de
guiones </caption> <tbody><tr bgcolor="#00ccff"> <td width="29%">
Nombre
</td> <td bgcolor="#00ccff" width="71%">
Significado en Editor
</td> </tr> <tr> <td valign="top">CTRL + E</td> <td valign="top">Evaluar todo. Evala todo el
cdigo que hay en el editor de guiones. Es lo mismo que seleccionar todo el texto y pulsar las
teclas SHIFT + ENTER. La ventaja es que no se tiene que seleccionar todo el texto.</td> </tr>
<tr> <td valign="top">CTRL + Click derecho del ratn</td> <td valign="top">Se muestra un
men con todos los elementos (Botones, persianas, etiquetas, funciones, etc..). De esta forma es
ms rpido ir de un sitio a otro. Simplemente se ha de pulsar la tecla CTRL y hacer un click con el
botn derecho del ratn y seleccionar el elemento en el que te quieras posicionar con un click del
botn izquierdo. El cursor se posicionar en el lugar que has seleccionado.</td> </tr> </tbody>

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 10 de 16

</table> Para que os hagis una idea del men que sale pulsando las teclas CTRL + Click derecho
del ratn aqu tenis un ejemplo:

La parte izquierda es la que se muestra al pulsar CTRL + Click derecho del ratn. Una vez se ha
seleccionado el elemento "Checkbutton" , se muestra la lista de todos los checkbutton que hay en
el documento.
La siguiente tabla muestra las teclas abreviadas que tienen el mismo significado tanto en el oyente
de MAXScript como en el editor de guiones:
<table border="1" width="100%"> <caption> Teclas abreviadas comunes </caption>
<tbody><tr bgcolor="#00ccff"> <td width="17%">
Nombre
</td> <td width="83%">
Significado
</td> </tr> <tr> <td valign="top">CTRL + N</td> <td valign="top">Nuevo script. Abre una
nueva ventana de editor de guiones para que el usuario pueda escribir un nuevo documento de
MAXScript.</td> </tr> <tr> <td valign="top">CTRL + O</td> <td valign="top">Abrir script. Se
muestra un cuadro de dilogo para que el usuario pueda seleccionar unl documento existente. Una
vez seleccionado, se abrir el documento MAXScript.</td> </tr> <tr> <td valign="top">CTRL +
Z</td> <td valign="top">Deshacer. Deshace la ltima modificacin que se ha hecho. Slo tiene
memoria para una modificacin, o sea, que tened cuidado!!</td> </tr> <tr> <td
valign="top">CTRL + X</td> <td valign="top">Cortar. El usuario ha de seleccionar una parte del
documento y pulsar CTRL + X. La seleccin desaparecer (se copia en el portapapeles), pero el
usuario podr recuperarla situando el cursor a donde quiera que vuelva a aparecer y pulsando
CTRL + V. </td> </tr> <tr> <td valign="top">CTRL + C</td> <td valign="top">Copiar. El
usuario ha de seleccionar un texto y pulsar CTRl + C. El texto seleccionado se copiar en el
portapapeles. Para copiar de nuevo el texto, se habr de situar en la posicin donde desee y pulsar
CTRL + V. La diferencia con "Cortar" es que en este caso el texto seleccionado no
desaparece.</td> </tr> <tr> <td valign="top">CTRL + V</td> <td valign="top">Pegar. Pega el
contenido del portapapeles en la posicin donde se encuentre el cursor.</td> </tr> <tr> <td
valign="top">CTRL + A</td> <td valign="top">Seleccionar todo. Selecciona todo el texto del
oyente de MAXScript o del editor de guiones activo en ese momento (donde se encuentre el
cursor actualmente).</td> </tr> <tr> <td valign="top">CTRL + F</td> <td valign="top">Buscar.
Se abre el cuadro de dilogo para buscar un texto. </td> </tr> <tr> <td valign="top">CTRL +

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 11 de 16

G</td> <td valign="top">Buscar siguiente. Repite la ltima bsqueda y selecciona la siguiente


ocurrencia del texto que se ha indicado buscar.</td> </tr> <tr> <td valign="top">CTRL + H</td>
<td valign="top">Reemplazar. Abre el cuadro de dilogo de reemplazar.</td> </tr> <tr> <td
valign="top">CTRL + B</td> <td valign="top">Selecciona el texto entre parntesis, corchetes y
claves. Es til para saber si has cerrado todos los parntesis en trozos grandes de cdigo. El
usuario tendr que situar el cursor en cualquier posicin que desee y pulsar CTRL + B.
Por ejemplo: (25 + 4 (345 / 7) - .
Si ponemos el cursor en "/" y pulsamos CTRL + B se seleccionar (345 / 7). En cambio, si
ponemos el cursor en "8" se seleccionar toda la expresin.
</td> </tr> <tr> <td valign="top">SHIFT + ENTER</td> <td valign="top">Se evala todo lo que
se ha seleccionado.</td> </tr> <tr> <td valign="top">CTRL + Y</td> <td valign="top">Rehacer.
Vuelve a rehacer lo que se ha deshecho con CTRL + Z</td> </tr> <tr> <td height="23"
valign="top">CTRL + I</td> <td valign="top">Sangra. Pone una sangra en el texto.
(Equivalente a usar el tabulador).</td> </tr> </tbody> </table> Y esto es todo en cuanto a teclas
abreviadas. Ahora que ya os he dado la paliza, podis ir al apartado siguiente!!!

2- Programacin en MAXScript
2.2 Nombres
Los nombres en MAXScript se utilizan para definir variables, funciones, parmetros, etc. Un
nombre necesariamente ha de empezar por un carcter alfabtico o bien, por el carcter _.
Despus del primer carcter, puede haber cualquier nmero de caracteres alfanumricos o el
carcter _.
A continuacin os muestro algunos ejemplos de nombres que son correctos e incorrectos:
<table align="center" border="1" width="40%"> <tbody><tr bgcolor="#00ccff"> <td>
Correctos
</td> <td>
Incorrectos
</td> </tr> <tr> <td valign="top" width="20%">

NomCilindro_1
_Pos_04
a
Var2Vertices

</td> <td valign="top" width="20%">

1NomCilindro
?Pos_04?
a(7)
!Var2Vertices?

</td> </tr> </tbody> </table> Si por algn motivo necesitamos definir un nombre con caracteres
ilegales, como un espacio en blanco, una coma, etc, pondremos el nombre entrecomillado. Aqu
tenis un par de ejemplos.
Nombre Variable = Pepe

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 12 de 16

objeto.punto, posicin = [2,5,10]


3D Studio MAX tiene un gran nmero de nombres que contienen espacios. Podremos utilizar el
carcter underscore "_" en lugar del espacio. De esta forma nos ahorramos poner un montn de
comillas. Las dos instrucciones que se muestran a continuacin sern equivalentes:
$CajaMesa01.modifiers[#'FFD 4x4x4']
$CajaMesa01.modifiers[#'FFD_4x4x4']
Adems, se ha de comentar que los nombres en MAXScript no distinguen entre maysculas o
minsculas. Los siguientes nombres seran equivalentes:

NombreVariable
nombreVariable
NOMBREVariable
NombreVARIABLE

2.3 Cadenas (Strings) y comentarios


Las cadenas en MAXScript empiezan y terminan con el smbolo de doble comilla. Estos seran
algunos ejemplos de cadenas:
Hola
Esto es una cadena
Anteriormente se ha comentado que 3D Studio MAX no distingue entre maysculas y minsculas.
Esto es cierto salvo en una excepcin. La comparacin entre dos cadenas s que hace esta
distincin. Como podemos observar en la siguiente figura, no ser lo mismo una palabra escrita en
minsculas que la misma palabra en maysculas:

En el ejemplo anterior, el oyente de MAXScript compara el string "hola" con "HOLA". Podemos
ver que el resultado es false. Esto quiere decir que los dos strings son diferentes. (Ya que estamos,
tambin podemos observar que el smbolo para hacer comparaciones es "=="). En el segundo
caso, como los dos strings son iguales, el oyente devuelve True
Entre las comillas se puede escribir cualquier tipo de caracteres excepto el propio smbolo de
comillas dobles. Si se necesita escribir, se habr de introducir detrs del carcter de escape \. Por
ejemplo, para escribir la frase: Antonio me dijo Hola el otro da, se tendra que poner de la
siguiente forma:
Antonio me dijo \Hola\ el otro da

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 13 de 16

Los smbolos que van precedidos del carcter de escape \ son los siguientes:

\ : Comillas.
\\ : Carcter \.
\n: Nueva lnea.
\r: Retorno de carro.
\t: Tabulacin.

Algunas veces necesitaremos introducir comentarios en el cdigo que implementemos. Los


comentarios se especificarn mediante dos guiones seguidos. A partir de estos dos guiones --,
todo lo que se escriba hasta el final de la lnea ser considerado como un comentario. Por lo tanto,
no podremos introducir ninguna lnea de cdigo en la parte derecha de los dos guiones. Ejemplos:
-- Esto es una lnea de comentario
x = x + 1 -- A partir de los dos guiones no se replacea cdigo
2.4 Nmeros
MAXScript utiliza dos tipos de nmero:
Enteros con signo de 32 bits y con complemento de 2 (Integer)
De coma flotante de precisin sencilla. (Float).
Para separar los decimales de los nmeros se utiliza un punto. En los paneles de la versin
interactiva de 3D Studio MAX en espaol los decimales van precedidos por una coma en lugar de
un punto.
Por ejemplo: Cuando creamos una esfera en el panel "Crear" y pulsamos el botn "Esfera", nos
salen algunos parmetros que podemos definir utilizando decimales. Por ejemplo, el radio.

En la imagen anterior podemos ver, que en la versin interactiva en espaol los decimales van
precedidos por una coma. En cambio, en la misma versin espaola, si usamos MAXScript, en
lugar de la coma tendremos que introducir un punto.
En la versin inglesa, los decimales en la versin interactiva y en MAXScript van precedidos de
un punto. Esto puede generar un poco de confusin y se ha de tener en cuenta.
Ejemplos de nmeros en MAXScript:

10.7
45
7.34
7e-4
45e5

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 14 de 16

En los dos ltimos ejemplos anteriores podemos ver que las potencias de 10 se simbolizan con una
e. Para poner 7 * 10^-4 (7 por 10 elevado a -4) utilizaremos 7e-4, y para poner 45 * 10^5 se
utilizar 45e5.
Se ha de indicar que los floats en MAXScript slo permiten tener 6 nmeros decimales. A partir
del sexto, se redondean. El usuario tambin ha de saber que si se sobrepasa el rango en los
nmeros se producirn errores de desbordamiento imprevisibles.
2.5 Expresiones de comparacin
Estas expresiones sirven para comparar diferentes valores de un mismo tipo. Este tipo ha de
permitir hacer una comparacin. Devuelven como resultado TRUE si se cumplen las condiciones
especificadas o FALSE en caso contrario. MAXScript tiene las siguientes expresiones booleanas:
<table align="center" border="1" width="100%"> <caption> Expresiones booleanas </caption>
<tbody><tr bgcolor="#00ccff"> <td align="center">Instruccin</td> <td
align="center">Significado</td> </tr> <tr> <td>

<operando1></operando1> == <operando2></operando2>
<operando1></operando1> != <operando2></operando2>
<operando1> > <operando2></operando2></operando1>
<operando1> < <operando2></operando2></operando1>
<operando1> > = <operando2></operando2></operando1>
<operando1> < = <operando2></operando2></operando1>

</td> <td>

Operando1 igual a Operando2


Operando1 diferente que Operando2
Operando1 mayor que Operando2
Operando1 menor que Operando2
Operando1 mayor o igual que Operando2
Operando1 menor o igual que Operando2

</td> </tr> </tbody> </table> Las expresiones = = y != sirven para todos los tipos de
MAXScript. Las restantes slo sirven para los tipos que aceptan comparaciones.
Por ejemplo:
<table align="center" border="1" width="80%"> <tbody><tr bgcolor="#00ccff"> <td
align="center">Instruccin</td> <td align="center">Devuelve</td> </tr> </tbody><caption>
Ejemplos
</caption> <tbody><tr> <td>25 = 33</td> <td>False, ya que 25 es diferente de 23</td> </tr>
<tr> <td>true=true</td> <td>True, ya que cierto es igual a cierto</td> </tr> <tr>
<td>true=false</td> <td>False, ya que cierto no es igual a falso</td> </tr> <tr> <td>25 != 33
</td> <td>True, ya que 25 no es igual a 33</td> </tr> <tr> <td>true != true</td> <td>False, ya
que cierto es igual a cierto, no diferente</td> </tr> <tr> <td>true != false</td> <td>True, ya que
cierto es distinto a falso</td> </tr> <tr> <td>25 > 33</td> <td>False, ya que 25 no es mayor que
33</td> </tr> <tr> <td>25 < 33</td> <td>True, ya que 25 es inferior a 33</td> </tr> <tr> <td>25
>= 25</td> <td>True, ya que 25 es igual a 25</td> </tr> <tr> <td>25 >= 15</td> <td>True, ya
que 25 es mayor que 15</td> </tr> <tr> <td>33 <= 25</td> <td>False, ya que 33 no es menor o
igual que 25</td> </tr> </tbody> </table>
Los operandos pueden ser :
Expresiones matemticas

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 15 de 16

Otros operandos (nombres de variables, nmeros, cadenas... etc)


Una llamada a una funcin.
La prioridad de las expresiones de comparacin es inferior que la de las expresiones matemticas.
Esto quiere decir que en una expresin donde hayan operaciones matemticas y de comparacin,
se ejecutarn primero las operaciones matemticas y por ltimo las operaciones booleanas.
2.6 Expresiones lgicas
Las expresiones lgicas, al igual que las de comparacin dan como resultado los valores TRUE o
FALSE. Se utilizan en expresiones condicionales y combinan en sus operandos expresiones
matemticas y de comparacin. Las expresiones lgicas en MAXScript son las siguientes
(ordenadas de mayor prioridad a menor prioridad):
<table align="center" border="1" width="80%"> <caption> Expresiones lgicas </caption>
<tbody><tr bgcolor="#00ccff"> <td align="center">Instruccin</td> <td
align="center">Significado</td> </tr> <tr> <td>
NOT <operando1></operando1>
<operando1> AND <operando2></operando2></operando1>
<operando1> OR <operando2> O</operando2></operando1>
</td> <td>
Negacin del Operando 1
Operando1 y Operando2
Operando1 o Operando2
</td> </tr> </tbody> </table> Los operandos de las expresiones lgicas han de ser siempre
booleanos (devuelven true o false) y pueden ser de los siguientes tipos:

Operandos (Nombres de variables, etc).


Expresiones de comparacin.
Otras expresiones lgicas.
Llamadas a funciones.

Como se ha dicho antes, los diferentes operandos de la expresin han de dar como resultado
siempre TRUE o FALSE, ya que de lo contrario, no se podr evaluar dicha expresin. Los
resultados de las operaciones con expresiones lgicas son los siguientes:
<table align="center" border="1" width="40%"> <tbody><tr bgcolor="#00ccff"> <td
align="center">Instruccin</td> <td align="center">Valor devuelto</td> </tr>
</tbody><caption> OR
</caption> <tbody><tr> <td>False OR False</td> <td>False</td> </tr> <tr> <td>False OR
True</td> <td>True</td> </tr> <tr> <td>True OR False</td> <td>True</td> </tr> <tr> <td>True
OR True</td> <td>True</td> </tr> </tbody> </table> Como se puede observar, la expresin
lgica "OR" devuelve True siempre que uno de los operandos sea true. nicamente en el caso de
que todos los operandos sean False, devolver el valor False.
En el caso de la expresin lgica "AND", slo devolver el valor True en el caso de que todos los
operandos sean True. Si por lo menos uno de ellos es False, devolver el valor False
<table align="center" border="1" width="40%"> <tbody><tr bgcolor="#00ccff"> <td
align="center">Instruccin</td> <td align="center">Valor devuelto</td> </tr>

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Documento sin ttulo

Pgina 16 de 16

</tbody><caption> AND
</caption> <tbody><tr> <td>False AND False</td> <td>False</td> </tr> <tr> <td>False AND
True</td> <td>False</td> </tr> <tr> <td>True AND False</td> <td>False</td> </tr> <tr>
<td>True AND True</td> <td>True</td> </tr> </tbody> </table>
La expresin lgica "Not" negar el operando que se encuentre detrs de l. De tal forma que una
expresin cierta pasa a ser falsa y al revs.
<table align="center" border="1" width="40%"> <caption> NOT </caption> <tbody><tr
bgcolor="#00ccff"> <td align="center">Instruccin</td> <td align="center">Valor
devuelto</td> </tr> <tr> <td>NOT False</td> <td>True</td> </tr> <tr> <td>NOT True</td>
<td>False</td> </tr> </tbody> </table> La prioridad de las expresiones lgicas es inferior a las de
comparacin y matemticas. Siempre se ejecutarn en ltimo lugar.

file://C:\Documents and Settings\Ruth\Datos de programa\Macromedia\Dreamweaver... 31/03/2011

Anda mungkin juga menyukai