Gracias Gracias:  1
Resultados 1 al 1 de 1

Tema: MaXScript

  1. #1
    Administrador y fundador. Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    15,455

    3dsmax MAXScript


    1- Introducción

    1.1 - Descripción general de MAXScript

    MAXScript es un lenguaje de alto nivel orientado a objetos y de sintaxis muy sencilla. Esta pensado para usuarios de 3D Studio MAX que no estén familiarizados con la programación. Sus variables son sin tipo y no hay distinción entre mayúsculas y minúsculas.

    Este lenguaje no necesita compilador. Todas las instrucciones se llevan a cabo en tiempo de ejecución.
    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 utilización de este lenguaje pueden ser:





    • Creación de escenas complejas que interactivamente serían demasiado complicadas de llevar a cabo.
    • Creación de herramientas de proceso por lotes.
    • Generación de funciones nuevas para facilitar una determinada tarea.
    • Uso de casi todas las funciones de 3D Studio MAX.
    • Creación de nuevos paneles y ventanas con utilidades para 3D Studio MAX.
    1.2 - Cómo 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 botón MAXScript







    Una vez se haya abierto la persiana de MAXScript podremos acceder a las opciones: Abrir oyente, guión nuevo, abrir guión, ejecutar guión y cerrar.


    • Abrir oyente: Abre la ventana oyente de MAXScript. Si pulsamos esta opción y el oyente esta minimizado, o escondido detrás de otra ventana, lo restaurara. Si la cierra y la vuelve a abrir, conserva el texto que había antes de cerrarla.



    • Guión nuevo: Abre un editor en una ventana nueva, donde se puede escribir un nuevo guión en MAXScript
    • Abrir guión: Al pulsar esta opción se abre un cuadro de diálogo de apertura de archivos en el que el usuario ha de elegir un guión en MAXScript. Una vez escogido el guión se abrira una ventana Editor de MAXScript con el contenido del fichero.
    • Ejecutar guión: El usuario escoge un guión en MAXScript y éste se lee y se ejecuta. La salida puede verse, dependiendo del tipo de guión, en los visores de 3D Studio MAX o bien en la ventana oyente de MAXScript.
    • Utilidades: Muestra las utilidades de guión disponibles.
    • Cerrar: Cierra la utilidad MAXScript.
    1.3 - Utilización del oyente de MAXScript

    En el oyente se pueden ejecutar comandos y expresiones. Para ejecutarlos, simplemente se escribe el comando o expresión y se pulsa la tecla ENTER.

    Podemos desplazarnos por el texto del oyente como si fuese un editor normal. También 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 teníamos y después ejecutarlos.

    Para ejecutar comandos en medio del texto, después de editarlos en una línea nueva, se ha de pulsar la tecla ENTER del teclado numérico, o bien presionar MAYÚSCULAS – ENTER. Los resultados se muestran en la misma ventana, bajo el comando o los comandos ejecutados.


    Es posible ejecutar bloques de código seleccionandolos previamente y pulsando las teclas MAYÚSCULAS – ENTER o bien, presionando ENTER desde el teclado numérico.

    La instrucción Include “NombreFichero.Extensión” 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 varían durante la ejecución del programa. En MAXScript no es necesario declarar las variables antes de utilizarlas

    Tenemos dos clases de variables en MAXScript:

    • Variables locales:
      • Se consideraran variables locales aquellas que se utilicen por primera vez dentro de un bloque o función. En caso contrario, las variables se consideraran globales.
      • Sólo son visibles en el bloque o función donde se declaran.
      • Su valor se mantiene mientras se esta ejecutando la función o el bloque donde se encuentran.
    • Variables globales:
      • Son visibles en todo el código 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 código sea más claro, es recomendable indicar de qué clase son las variables. Para ello, utilizaremos los términos “local” y “global”. Nótese que los comentarios en MAXScript van precedidos de 2 guiones “- -“.




    <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 declaración continúa en las líneas siguientes
    j = 3,
    que = sin (35)
    local f=g=h=0
    </td> </tr> </tbody> </table>


    En la declaración 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 asignación una variable puede ser un entero, y en una segunda asignación, 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 instrucción “as” de la siguiente forma:

    Valor as nuevo_tipo.
    Nótese en la imagen siguiente que las salidas de comando en el oyente siempre son de color azul, excepto en los errores.




    1.5 - Operaciones matemáticas en MAXScript

    Cuando introducimos una operación matematica en MAXScript, éste evalúa dicha operación y muestra el resultado en la ventana oyente. MAXScript dispone de las operaciones matemáticas necesarias para hacer que funcione de forma semejante a una calculadora.

    Las expresiones matemáticas están compuestas por operadores (+,-,*...) y por operandos. Un operando matemático puede ser:


    • Un Nombre de variable, números, etc.. Por ejemplo:
      • 1 + 3 -- Suma ambos números
      • Total - 5 -- Suma 5 al valor de la variable "Total"
      • Total + iva -- Suma el valor de la variable "Total" más el valor de la variable "iva"
    • Una llamada a una función. Por ejemplo
      • (GradosARadianes grados:180) + 5 -- Llama a la función "GradosARadianes" pasando como parámetro 180 grados y al resultado le suma 5.
    • Una expresión matematica. 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 matemáticas que tiene MAXScript.


    <table align="center" border="1" width="90%"> <caption> Operaciones matemáticas </caption> <tbody><tr> <td width="69%"><operando_matem atico=""> + <operando_matem atico=""></operando_matem></operando_matem></td> <td width="31%">Suma</td> </tr> <tr> <td><operando_matem atico=""> - <operando_matem atico=""></operando_matem></operando_matem></td> <td>Resta</td> </tr> <tr> <td><operando_matem atico=""> * <operando_matem atico=""></operando_matem></operando_matem></td> <td>Multiplicación</td> </tr> <tr> <td><operando_matem atico=""> / <operando_matem atico=""></operando_matem></operando_matem></td> <td>División</td> </tr> <tr> <td><operando_matem atico=""> ^ <operando_matem atico=""></operando_matem></operando_matem></td> <td>Exponencial</td> </tr> <tr> <td><operando_matem atico=""> as <factor></factor></operando_matem></td> <td>Conversión entre tipos</td> </tr> </tbody> </table> En la figura siguiente tenemos unos ejemplos de expresiones matemáticas en el oyente de MAXScript:




    También se puede utilizar el formato abreviado de asignación del lenguaje C para modificar un valor contenido en una variable. Por ejemplo:

    <table border="1" width="100%"> <caption> Formato abreviado de asignación </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
    que / = 8 -- Divide que entre 8


    </td> </tr> </tbody> </table>

    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 través 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 creación de objetos coinciden con los nombres de estos objetos. Podemos crear una caja tan sólo escribiendo en la ventana oyente el comando box ( ), o bien, si tenemos la versión, su equivalente en español caja ( ). Una vez escrito, y después de presionar la tecla INTRO, se crea una caja con los parámetros por defecto. Es recomendable escribir los comandos en inglés, ya que no todos los parámetros que hay se han traducido al español. En este tutorial escribiremos todos los comandos y parámetros en inglés

    Es indiferente si escribimos el comando en mayúsculas y en minúsculas, ya que MAXScript no distingue entre ellos. También se recomienda asignar el objeto a una variable, para hacer más manejable el uso de dicho objeto. Si el objeto creado no se asigna a ninguna variable y queremos referirnos a él utilizaremos el símbolo “$” delante del nombre que tiene el objeto en la escena.

    Pongamos un ejemplo de creación de una caja de altura 20, anchura 30 y longitud 40. Asignaremos el resultado a la variable PrimeraCaja:




    Cuando utilizamos el comando box con parámetros, se eliminan los paréntesis y en su lugar ponemos los nombres de los parámetros seguidos de los dos puntos y su valor. Los parámetros 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 posición 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 creación de la caja con el botón “deshacer”.

    Atención: No es lo mismo el nombre que tiene la caja en la escena (Caja01) que el nombre de variable en MAXScript (primeraCaja).


    Utilizaremos la variable primeraCaja para acceder más fácilmente a los parámetros de creación y a las propiedades generales y de transformación:





    En la imagen anterior hay varios ejemplos de modificación de algunos parámetros de la caja. Podemos modificar todos los parámetros del objeto (altura, radio, etc..), de nodo (nombre, color, etc...) y de transformación (rotación, posición, etc). Para modificar un valor en un objeto utilizaremos uno de los siguientes es quemas:

    • $NombreObjeto.Parámetro=NuevoValor
    • NombreVariable.Parámetro=NuevoValor
    Donde "NombreObjeto" sería equivalente a $Caja01 en el ejemplo anterior y "NombreVariable" equivale a PrimeraCaja.

    1.6.1 - ShowClass

    Para saber los nombres y tipos de parámetros de un objeto se puede utilizar la función ShowClass(). Si escribimos en el oyente de MAXScript sólo el nombre de la función seguido de los dos paréntesis tendremos una lista de todos los objetos de 3DStudio MAX y sus parámetros correspondientes. Cada parámetro ira seguido de su tipo.

    Lo más normal es que se quiera saber los parámetros 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 parámetros de la clase box
    Box(Caja) : GeometryClass {10,0}
    .height(Altura) : float
    .length(Longitud) : float
    .lengthsegs : integer
    .width(Anchura) : float
    .widthsegs : integer
    .mapCoords : boolean
    .heightsegs(SegmsAltura) : integer
    OK



    ShowClass "Box.height" -- Muestra todos los datos del parámetro 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 parámetros del objeto Box. Utilizamos el asterisco como un comodín. Si quisiésemos saber todos los parámetros de los objetos que comenzasen por “B” sólo tendríamos que poner ShowClass “B*.*” y obtendríamos una lista con ellos. Si por el contrario ya sabemos el parámetro pero no estamos seguros del tipo que tiene, nos bastara con poner ShowClass“Box.NombreParametro”.

    En el segundo ejemplo de ShowClass hemos comprobado que el parámetro "Height" de la clase "Box" es del tipo "Float".



    2.1 - Edición y ejecución de guiones en ficheros

    Como se ha comentado en el capítulo 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 guión nuevo mediante el botón "Abrir Guión" y escribiremos en el editor de guiones nuestro programa en MAXScript.






    Si por el contrario ya tenemos un guión escrito y lo queremos modificar podemos presionar el botón “Abrir Guión” o bien mediante la instrucción Edit “NombreFich.ms” desde el oyente de MAXScript. Por convención, los ficheros escritos en MAXScript tienen la extensión “.ms”.

    2.1.1 - Teclas abreviadas

    En este apartado explicaremos todas las teclas de función que se utilizan en MAXScript. No es necesario aprenderselas de memoria, ni mucho menos, pero puede ser útil saber algunas de ellas para ir más rápido y evitar tener que irnos al menú y buscar la función. Se ha de decir que todos los métodos abreviados tienen su equivalente en los menús 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. También hay abreviaciones específicas para el oyente, y abreviaciones sólo 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 diálogo 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 abrira un cuadro de diálogo para que el usuario introduzca el nombre que desee.</td> </tr> <tr> <td valign="top">CTRL + R</td> <td valign="top">Ejecutar guión. Se abre un cuadro de diálogo para que el usuario seleccione un fichero de MAXScript. Una vez seleccionado, se procedera a su ejecución.</td> <td valign="top">Sitúa el cursor en el lugar donde se había situado anteriormente con un clik del botón izquierdo, o en una operación de búsqueda. 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 situara en la anterior, que es la que desea.

    Otro ejemplo sería cuando un usuario hace clik en una posición y luego se va a otro sitio. Podra recuperar la posición 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 continuación 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. Evalúa todo el código 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 + Clik derecho del ratón</td> <td valign="top">Se muestra un menú con todos los elementos (Botones, persianas, etiquetas, funciones, etc..). De esta forma es más rápido ir de un sitio a otro. Simplemente se ha de pulsar la tecla CTRL y hacer un clik con el botón derecho del ratón y seleccionar el elemento en el que te quieras posicionar con un clik del botón izquierdo. El cursor se posicionara en el lugar que has seleccionado.</td> </tr> </tbody> </table> Para que os hagáis una idea del menú que sale pulsando las teclas CTRL + Clik derecho del ratón aquí tenéis un ejemplo:






    La parte izquierda es la que se muestra al pulsar CTRL + Clik derecho del ratón. 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 diálogo para que el usuario pueda seleccionar unl documento existente. Una vez seleccionado, se abrira el documento MAXScript.</td> </tr> <tr> <td valign="top">CTRL + Z</td> <td valign="top">Deshacer. Deshace la última modificación que se ha hecho. Sólo tiene memoria para una modificación, 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 selección 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 copiara en el portapapeles. Para copiar de nuevo el texto, se habrá de situar en la posición 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 posición 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 diálogo para buscar un texto. </td> </tr> <tr> <td valign="top">CTRL + G</td> <td valign="top">Buscar siguiente. Repite la última búsqueda 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 diálogo de reemplazar.</td> </tr> <tr> <td valign="top">CTRL + B</td> <td valign="top">Selecciona el texto entre paréntesis, corchetes y claves. Es útil para saber si has cerrado todos los paréntesis en trozos grandes de código. El usuario tendrá que situar el cursor en cualquier posición que desee y pulsar CTRL + B.

    Por ejemplo: (25 + 4 (345 / 7) -.

    Si ponemos el cursor en "/" y pulsamos CTRL + B se seleccionara (345 / 7). En cambio, si ponemos el cursor en "8" se seleccionara toda la expresión.

    </td> </tr> <tr> <td valign="top">SHIFT + ENTER</td> <td valign="top">Se evalúa 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">Sangría. Pone una sangría 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, podéis ir al apartado siguiente!!!



    2- Programación en MAXScript

    2.2 Nombres

    Los nombres en MAXScript se utilizan para definir variables, funciones, parámetros, etc. Un nombre necesariamente ha de empezar por un carácter alfabético o bien, por el carácter “_”. Después del primer carácter, puede haber cualquier número de caracteres alfanuméricos o el carácter “_”.

    A continuación 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 algún motivo necesitamos definir un nombre con caracteres ilegales, como un espacio en blanco, una coma, etc, pondremos el nombre entrecomillado. Aquí tenéis un par de ejemplos.

    • ‘Nombre Variable’ = ”Pepe”
    • objeto.‘punto, posición’ = [2,5,10]
    3D Studio MAX tiene un gran número de nombres que contienen espacios. Podremos utilizar el carácter underscore "_" en lugar del espacio. De esta forma nos ahorramos poner un montón de comillas. Las dos instrucciones que se muestran a continuación serán equivalentes:

    • $CajaMesa01.modifiers[#'FFD 4x4x4']
    • $CajaMesa01.modifiers[#'FFD_4x4x4']
    Además, se ha de comentar que los nombres en MAXScript no distinguen entre mayúsculas o minúsculas. Los siguientes nombres serían equivalentes:

    • NombreVariable
    • nombreVariable
    • NOMBREVariable
    • NombreVARIABLE
    2.3 Cadenas (Strings) y comentarios

    Las cadenas en MAXScript empiezan y terminan con el símbolo de doble comilla. Estos serían algunos ejemplos de cadenas:

    • “Hola”
    • “Esto es una cadena”
    Anteriormente se ha comentado que 3D Studio MAX no distingue entre mayúsculas y minúsculas. Esto es cierto salvo en una excepción. La comparación entre dos cadenas sí que hace esta distinción. Como podemos observar en la siguiente figura, no será lo mismo una palabra escrita en minúsculas que la misma palabra en mayúsculas:





    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, también podemos observar que el símbolo 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 símbolo de comillas dobles. Si se necesita escribir, se habrá de introducir detrás del carácter de escape ‘\’. Por ejemplo, para escribir la frase: Antonio me dijo “Hola” el otro día, se tendría que poner de la siguiente forma:

    • “Antonio me dijo \”Hola\” el otro día”
    Los símbolos que van precedidos del carácter de escape ‘\’ son los siguientes:

    • \” : Comillas.
    • \\ : Carácter ‘\’.
    • \n: Nueva línea.
    • \r: Retorno de carro.
    • \t: Tabulación.
    Algunas veces necesitaremos introducir comentarios en el código que implementemos. Los comentarios se especificaran mediante dos guiones seguidos. A partir de estos dos guiones ´--‘, todo lo que se escriba hasta el final de la línea será considerado como un comentario. Por lo tanto, no podremos introducir ninguna línea de código en la parte derecha de los dos guiones. Ejemplos:

    • -- Esto es una línea de comentario
    • x = x + 1 -- A partir de los dos guiones no se replacea código
    2.4 Números

    MAXScript utiliza dos tipos de número:

    • Enteros con signo de 32 bits y con complemento de 2 (Integer)
    • De coma flotante de precisión sencilla. (Float).
    Para separar los decimales de los números se utiliza un punto. En los paneles de la versión interactiva de 3D Studio MAX en español 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 botón "Esfera", nos salen algunos parámetros que podemos definir utilizando decimales. Por ejemplo, el radio.








    En la imagen anterior podemos ver, que en la versión interactiva en español los decimales van precedidos por una coma. En cambio, en la misma versión española, si usamos MAXScript, en lugar de la coma tendremos que introducir un punto.

    En la versión inglesa, los decimales en la versión interactiva y en MAXScript van precedidos de un punto. Esto puede generar un poco de confusión y se ha de tener en cuenta.


    Ejemplos de números en MAXScript:

    • 10.7
    • 45
    • 7.34
    • 7e-4
    • 45e5
    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 utilizara 45e5.
    Se ha de indicar que los floats en MAXScript sólo permiten tener 6 números decimales. A partir del sexto, se redondean. El usuario también ha de saber que si se sobrepasa el rango en los números se produciran errores de desbordamiento imprevisibles.


    2.5 Expresiones de comparación

    Estas expresiones sirven para comparar diferentes valores de un mismo tipo. Este tipo ha de permitir hacer una comparación. 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">Instrucción</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 sólo sirven para los tipos que aceptan comparaciones.

    Por ejemplo:

    <table align="center" border="1" width="80%"> <tbody><tr bgcolor="#00ccff"> <td align="center">Instrucción</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 matematicas
    • Otros operandos (nombres de variables, números, cadenas... etc)
    • Una llamada a una función.
    La prioridad de las expresiones de comparación es inferior que la de las expresiones matemáticas. Esto quiere decir que en una expresión donde hayan operaciones matemáticas y de comparación, se ejecutaran primero las operaciones matemáticas y por último las operaciones booleanas.


    2.6 Expresiones lógicas

    Las expresiones lógicas, al igual que las de comparación dan como resultado los valores TRUE o FALSE. Se utilizan en expresiones condicionales y combinan en sus operandos expresiones matemáticas y de comparación. Las expresiones lógicas en MAXScript son las siguientes (ordenadas de mayor prioridad a menor prioridad):

    <table align="center" border="1" width="80%"> <caption> Expresiones lógicas </caption> <tbody><tr bgcolor="#00ccff"> <td align="center">Instrucción</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>
    • Negación del Operando 1
    • Operando1 y Operando2
    • Operando1 o Operando2
    </td> </tr> </tbody> </table> Los operandos de las expresiones lógicas han de ser siempre booleanos (devuelven true o false) y pueden ser de los siguientes tipos:

    • Operandos (Nombres de variables, etc).
    • Expresiones de comparación.
    • Otras expresiones lógicas.
    • Llamadas a funciones.
    Como se ha dicho antes, los diferentes operandos de la expresión han de dar como resultado siempre TRUE o FALSE, ya que de lo contrario, no se podrá evaluar dicha expresión. Los resultados de las operaciones con expresiones lógicas son los siguientes:

    <table align="center" border="1" width="40%"> <tbody><tr bgcolor="#00ccff"> <td align="center">Instrucción</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 expresión lógica "OR" devuelve True siempre que uno de los operandos sea true. Únicamente en el caso de que todos los operandos sean False, devolvera el valor False.

    En el caso de la expresión lógica "AND", sólo devolvera el valor True en el caso de que todos los operandos sean True. Si por lo menos uno de ellos es False, devolvera el valor False

    <table align="center" border="1" width="40%"> <tbody><tr bgcolor="#00ccff"> <td align="center">Instrucción</td> <td align="center">Valor devuelto</td> </tr> </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 expresión lógica "Not" negara el operando que se encuentre detrás de él. De tal forma que una expresión cierta pasa a ser falsa y al revés.

    <table align="center" border="1" width="40%"> <caption> NOT </caption> <tbody><tr bgcolor="#00ccff"> <td align="center">Instrucción</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 lógicas es inferior a las de comparación y matemáticas. Siempre se ejecutaran en último lugar.





    Última edición por 3dpoder; 25-12-2006 a las 05:40

Temas similares

  1. maxscript y SWF
    Por jmpinero en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 18-12-2011, 21:17
  2. Maxscript
    Por Marc3d en el foro Videojuegos
    Respuestas: 3
    Último mensaje: 11-08-2010, 13:14
  3. [MaXScript]
    Por ricardo_arango en el foro Programación y Scripts
    Respuestas: 1
    Último mensaje: 15-06-2007, 16:29
  4. maxscript
    Por juako en el foro Peticiones y Búsquedas
    Respuestas: 5
    Último mensaje: 08-12-2006, 02:17
  5. Maxscript
    Por grio en el foro Animación y Rigging
    Respuestas: 3
    Último mensaje: 16-03-2006, 00:28

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •