Preguntas de script

Ballo - 12/09/2006 10:26
Yo soy un profano en esto del script y más o menos me dedico a copiar y pegar y hacerme mis propias ventanas con accesos directos a herramientas, vamos que no creo nuevas herramientas.

Esta UI es una ventana que la abro directamente con un ajuste de teclado el problema es que no la puedo volver a cerrar de nuevo con esa tecla, un aspecto cómodo que está incorporado en otro tipo de UI como pueden ser los menús de renderizado, materiales, etc.
¿Sabéis algo de esto?
Luego me gustaría saber cómo podría representar el comando bridge Edge o bridge polygon en un botón creado por mí. Yo suelo utilizar estos parámetros.
[i]actionman, executeaction 369982487 40054 - Editable poly: extrude settings[/i].

Por ejemplo, a lo cutre y con el macro recorder y no tengo ni idea de cómo hacer el bridge.

Sé que debería de leer la ayuda del Maxscript y mira que lo he intentado, pero es que, no entiendo un pijo.
Stewie - 12/09/2006 10:36
En Mel existe una manera que viene a ser si existe la ventana, haz esto, si no existe, haz esto otro. Así, asignándole a una tecla esa orden, si no detecta la ventana la abre, y si la detecta la cierra. Échale un vistazo a la referencia de Maxscript, quizás no sea suficiente para saber por dónde buscar, pero es lo único que se me ocurre. Saludos.
Birkov - 12/09/2006 11:25
Buenas, yo tampoco tengo ni idea de Maxscript, es algo con lo que me pondré algún día, revisa los mensaje de Halfvector, en alguno de los scripts viene el código para hacer algo parecido a lo que te dice Stewie, había una función que comprobaba si existía la ventana, si la ventana existe la abre, si no la crea, se podría modificar para que si ya existe la cierre, lamento no ser más específico, pero no me acuerdo en cuál lo leí.
ikerCLoN - 12/09/2006 11:25
Ballo, pulsa f1. Posdata: por la noche, con más tranquilidad, participo.
Nessito - 12/09/2006 15:15
No sé muy bien a qué te refieres con lo de.

Hacerme mis propias ventanas con accesos directos a herramientas.

Suponiendo que te refieras a barras de herramientas y macros, existe un evento en las macros que es:
[code][font=courier new][font=verdana]on ischecked do[/font][font=courier new][font=verdana] [/font][/font][/font][/code]
Donde tiene que resolverse en true/false. En el momento de la ejecución y antes del evento execute, se evalúa esto para determinar si:
[list=1]
  • se pone una marquita al lado del item caso de estar la macro en un Quad o menú.
  • se queda el botón pulsado caso de estar la macro en un toolbar.
    [/list]la idea de replicar el funcionamiento de los botones del editor de materiales, render, etc. Debería incorporar algo de ese estilo.

    Para el bridge podrías usar algo, así como:
    [code](modpanel, getcurrentobject()), bridge ()[/code]
    Pero si quieres poder tocar los parámetros del bridge, hay que hacérselo a pedales y llevaría más tiempo.

    A ver si te sirve de algo.
  • Ballo - 12/09/2006 17:09
    Gracias a todos. Dios melscript no, que ya me da un telele. Birkov, bene, comprobare lo que me dices. Halfvector dice tantas buenas cosas que hay que leerle de nuevo.

    Iker, polilla.

    Nessito, yo creo uts, creo, creo que no es lo mismo de lo que hablamos.

    Guau, eso del bridge funciona a las mil maravillas, aunque quiero que salgan siempre los settings y no ejecutar la función. Aunque el problema que le veo es que no acepta undo ese sistema (y ahora me acaba de cascar el max).

    Eso, también lo quería preguntar algunas actions se ejecutan, pero se olvidan del undo. Gracias tío.
    HalfVector - 12/09/2006 18:18
    En realidad, creo que la mejor forma de hacer que el cuadro de diálogo se abra o se cierra es ejecutando una macro, como ha dicho Nessito.

    Ejemplo:
    [code]- Rollout de prueba.

    Rollout rotest rotest width:160 height:40.
    (Tlabel lbl1 hola pos:[8,8] width:112 height:16).

    Macroscript htest tcategory:Halfvector tools tbuttontext:test ttoltip:test.
    (T- Max llama a este event handler para saber si tiene que t- Activar o no el botón asociado a esta macro t- Si se devuelve significa que estará activado t- De lo contrario devolverá ton ischecked do (t - Se devuelve true si el ut existe y está abierto return (rotest.= undefined and rotest, open) t) t- Max llama a este event handler al ejecutar la macro ton execute do (t - Si el ut existe y está abierto, lo destruímos if rotest.= undefined and rotest, open then (t destroydialog rotest ) - De lo contrario lo creamos else createdialog rotest t).
    )[/code]

    Y ahora mira estas imágenes.

    En esta primera imagen ves que la opción test esta desmarcada. Eso es porque max llamó al event handler y recibió como resultado . Esto es porque el ut no estaba abierto.



    Ahora resulta que hacemos click en la opción test, por lo que max llama al event handler de la macro. Entonces, como el ut no estaba abierto, pues se crea y se abre (de lo contrario se cerraría). El resultado es esta segunda imagen.



    Como ves, el ut ya está abierto y la opción test del Quad menú esta marcada.

    No sé si habrá una opción más sencilla, pero esta es la que se me ocurre ahora mismo. Saludos.

    -- IMÁGENES ADJUNTAS --

    🖼️

    Estamos trabajando para mostrar las imágenes del foro

    Adjunto #36216



    🖼️

    Estamos trabajando para mostrar las imágenes del foro

    Adjunto #36217

    Nessito - 12/09/2006 18:29
    Es justo lo que yo decía. Muy bien explicado.
    HalfVector - 12/09/2006 18:37
    Se me pasaba esto.

    Guau, eso del bridge funciona a las mil maravillas, aunque quiero que salgan siempre los settings y no ejecutar la función. Aunque el problema que le veo es que no acepta undo ese sistema (y ahora me acaba de cascar el max).

    Me temo que en un Editable Poly, para que salga el cuadro de diálogo con las opciones de la herramienta bridge, no hay más remedio que reproducir por tí mismo dicho cuadro de diálogo.

    En cambio sí se puede hacer si tienes un modificador edit_poly aplicado. Sería de la siguiente forma (teniendo el modificador edit_poly seleccionado):
    [code]curobject = modpanel, getcurrentobject().

    Curobject, popupdialog #bridgepolygon[/code]

    Evidentemente habría que averiguar en que nivel de subobjeto se encuentra el modificador para escoger correctamente el cuadro de diálogo a mostrar:

    Es justo lo que yo decía. Muy bien explicado.

    Gracias you. Saludos.
    Ballo - 13/09/2006 10:11
    Vaya que cosas, gracias half, este mediodía le hecho un ojo y te cuento. Gracias maestre.