Resultados 1 al 2 de 2

Asignar maxscript a un botón dentro del atributer holder

  1. #1
    Fecha de ingreso
    Sep 2005
    Mensajes
    16

    Asignar maxscript a un botón dentro del atributer holder

    Como puedo asignar Maxscript a un botón dentro del atributer holder? Quería que un botón creado en un atributo holder tuviera una instrucción ara que todos los objetos fueran a cero. Eso era todo a ver si alguien puede ayudarme. Gracias.

    La instrucción es la siguiente:
    Macros, run animation tools transformtozero.

    Now my cuestión is how can i create an custom parameter like button under my controller parameters or in attribute holder that run a simple code/script for me like transform todo zero script: macros, run animation tools transformtozero.

    Clic en la imagen para ver su versión completa. 

Nombre: 01_23.jpg 
Visitas: 356 
Tamaño: 199.9 KB 
ID: 177731

    -- IMÁGENES ADJUNTAS --
    Última edición por 3dpoder; 24-01-2013 a las 22:33

  2. #2
    Fecha de ingreso
    Dec 2025
    Mensajes
    0
    Para asignar un script de MaxScript a un botón dentro de un Attribute Holder, debes crear un control de tipo botón en tu definición de atributos y asignarle un manejador (handler) que ejecute el código. La forma más directa y actual sigue siendo usando el Attribute Holder y el Rollout de script.

    Primero, crea un nuevo script en el Editor de Scripts de 3ds Max. Define un Rollout que contenga el botón. Luego, convierte ese Rollout en una definición de atributo que puedas asignar a cualquier objeto.

    Aquí tienes el código de ejemplo. Este script crea un atributo personalizado con un botón que, al presionarlo, ejecuta el macro para llevar las transformaciones de todos los objetos seleccionados a cero. Si quieres que afecte a todos los objetos de la escena, puedes modificar el código.

    Copia y pega este bloque en el Editor de MaxScript:

    utility atributoBoton "Herramienta Cero"
    (
    button btnCero "Transformar a Cero" width:140 height:30

    on btnCero pressed do
    (
    macros.run "Animation Tools" "TransformToZero"
    )
    )

    Para usarlo de manera permanente y asignarlo a un objeto como Attribute Holder, necesitas crear una definición de atributos. Usa el siguiente código:

    (
    -- Definición de los atributos
    atributo_def = attributes transformACero
    (
    parameters main rollout:params
    (
    )

    rollout params "Transformar a Cero"
    (
    button btnCero "Transformar Selección a Cero" width:160 height:30

    on btnCero pressed do
    (
    -- Ejecuta el macro. Asegúrate de que el macro 'TransformToZero' existe.
    -- Esta versión afecta a los objetos seleccionados.
    if selection.count > 0 then
    (
    macros.run "Animation Tools" "TransformToZero"
    )
    else
    (
    messageBox "Selecciona al menos un objeto." title:"Sin selección"
    )
    )
    )
    )

    -- Añade este atributo al objeto seleccionado
    if selection.count == 1 then
    (
    custAttributes.add $ atributo_def
    )
    else
    (
    messageBox "Selecciona un solo objeto para añadir el atributo." title:"Selección requerida"
    )
    )

    Para ejecutarlo, selecciona el objeto que quieras que actúe como controlador (por ejemplo, un Point Helper), ejecuta el script y el atributo aparecerá en su panel de modificación. Al presionar el botón, ejecutará el macro.

    Si el macro "TransformToZero" no está disponible en tu sistema, puedes reemplazar la acción del botón por el código directo que ponga a cero las transformaciones. Sustituye la línea dentro de 'on btnCero pressed do' por este código:

    for obj in selection do
    (
    obj.pos = [0,0,0]
    obj.rotation = (quat 0 0 0 1)
    obj.scale = [1,1,1]
    )

    Para hacerlo más robusto, puedes guardar este script como un archivo (.ms) y cargarlo cuando lo necesites, o instalarlo como una herramienta personalizada en tu interfaz de 3ds Max. La metodología sigue siendo válida para versiones actuales de 3ds Max.

Temas similares

  1. 3ds Max Attribute Holder
    Por dg3duy en el foro Animación y Rigging
    Respuestas: 5
    : 03-04-2021, 16:15
  2. Problemas con un maxscript dentro del plugin RayFire
    Por AIZZI en el foro Plugins y Scripts
    Respuestas: 3
    : 21-02-2011, 16:25
  3. 3ds Max Redefine en attributer holder
    Por jmpinero en el foro Animación y Rigging
    Respuestas: 6
    : 24-11-2009, 10:10
  4. 3ds Max Mi primer attribute holder
    Por jmpinero en el foro Animación y Rigging
    Respuestas: 10
    : 02-10-2009, 07:45
  5. 3ds Max Necesito con atribute holder
    Por calvosaez en el foro Animación y Rigging
    Respuestas: 1
    : 12-08-2009, 19:45