Resultados 1 al 10 de 10

Tema: Lineas entre puntos autoupdatada

  1. #1
    Fecha de ingreso
    Feb 2005
    Mensajes
    2,231

    Lineas entre puntos autoupdatada

    Mirando la ayuda de Maxscript he rescrito el script.
    [html] Fn líneas p1 p2 = (t ss = splineshape pos:p1 addnewspline ss addknot ss 1 #corner #line p1 addknot ss 1 #corner #line p2 updateshape s ss )[/html].

    Lo que no me sale es conseguir que al mover los puntos, la líneas siga sus posiciones en el visor. He probado con el DependsOn, pero no me sale.

  2. #2
    Fecha de ingreso
    Dec 2004
    Mensajes
    3,387

    Lineas entre puntos autoupdatada

    Duplicado.
    Última edición por promineo; 10-11-2006 a las 23:15
    PromineoStudios

    Sin riesgos en la lucha, no hay gloria en la victoria

  3. #3
    Fecha de ingreso
    Dec 2004
    Mensajes
    3,387

    Lineas entre puntos autoupdatada

    A mí se me ha ocurrido esto.
    Fn líneas p1 p2 =
    (Ss = splineshape pos:p1.pos addnewspline ss addknot ss 1 #corner #line p1.pos addknot ss 1 #corner #line p2.pos updateshape s t add modifier ss (skin ()) myskin = ss, modifiers[#skin] max modify mode modpanel, setcurrentobject myskin skinaddbone myskin p1 1 skinaddbone myskin p2 1 t select p1 ss t).
    P1 y p2 son ahora dos nodos cualquiera, dos objetos.
    PromineoStudios

    Sin riesgos en la lucha, no hay gloria en la victoria

  4. #4
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Lineas entre puntos autoupdatada

    También puedes utilizar un controlador de tipo point3 script:
    Código:
    Fn attachshapetopoints p1 p2 = (tss = splineshape pos:p1.pos taddnewspline ss taddknot ss 1 #corner #line p1.pos taddknot ss 1 #corner #line p2.pos tupdateshape ss tlocal ctrlsource = target, pues * (inverse Owner, transform) tanimatevertex ss #all tlocal ctrlp1 = point3_script() tctrlp1.addnode target p1 tctrlp1.addnode Owner ss tctrlp1.script = ctrlsource tctrlp1.update () tss[4][8][2].controller = ctrlp1 tlocal ctrlp2 = point3_script() tctrlp2.addnode target p2 tctrlp2.addnode Owner ss tctrlp2.script = ctrlsource tctrlp2.update () tss[4][8][5].controller = ctrlp2 tok.
    )
    Ahora en lugar de pasar a la función dos posiciones, le pasas los dos helpers que sirven como puntos de referencia. La función ya se encarga de crear el script controller. Saludos.
    Última edición por HalfVector; 10-11-2006 a las 23:36

  5. #5
    Fecha de ingreso
    Feb 2005
    Mensajes
    2,231

    Lineas entre puntos autoupdatada

    Está muy bien Promineo, pero igual tener que skinear la línea es un poco engorroso, no¿lo skinear Splines lo he hecho, pero para otras situación. Molaría algo más limpio. Gracias por la idea.

  6. #6
    Fecha de ingreso
    Feb 2005
    Mensajes
    2,231

    Lineas entre puntos autoupdatada

    Ok. Gracias half. Voy a probarlo dentro de un rato, que ando algo saturado a estas horas.

  7. #7
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Lineas entre puntos autoupdatada

    Le he hecho unas cuantas modificaciones para que soporte un número de puntos arbitrario.
    Código:
    Fn attachshapetopoints points = (ttheshape = splineshape () taddnewspline theshape tfor i = 1 todo points, count do (t addknot theshape 1 #corner #line points[i].pos t) tupdateshape theshape tlocal ctrlsource = target, pues * (inverse Owner, transform) tanimatevertex theshape #all tfor i = 0 todo (points, count - 1) do (t local Control = point3_script() Control, addnode target points[i + 1] Control, addnode Owner theshape Control, script = ctrlsource Control, update () theshape[4][8][i * 3 + 2].controller = Control t) t- Comentar estas dos líneas si no se quiere congelar la Spline ttheshape, showfrozeningray = false tfreze theshape tok.
    )
    Por ejemplo, puedes hacer que se cree una Spline con todos los helpers de tipo point que tengas en la escena:
    Código:
    attachshapetopoints $point*
    Saludos.

    Posdata: he hecho que la Spline se congele para que la manipulación de los puntos sea más sencilla.
    Última edición por HalfVector; 10-11-2006 a las 23:49

  8. #8
    Fecha de ingreso
    Dec 2004
    Mensajes
    3,387

    Lineas entre puntos autoupdatada

    Que chulo half no sabía sobre el point3_script con esto se pueden hacer un montón de cosas.
    PromineoStudios

    Sin riesgos en la lucha, no hay gloria en la victoria

  9. #9
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Lineas entre puntos autoupdatada

    Que chulo half no sabía sobre el point3_script con esto se pueden hacer un montón de cosas.
    Sí, lo que pasa es que, al principio me he rayado un poco porque al script controller le ponía:
    Código:
    target, pos
    Y el vértice de la Spline no seguía de forma correcta al point helper. Entonces me he acordado que el controller espera la posición en object space, es decir, el espacio relativo al sistema de coordenadas definido por la matriz de transformación del shape. De ahí que al final haga:
    Código:
    target, pues * (inverse Owner, transform)
    Lo que hace eso es pasar la posición del punto al sistema de coordenadas del shape.

    En fin, una explicación por si os preguntabais por que transformaba el punto por la inversa de la matriz de transformación del shape.

    Por cierto, he modificado el script del anterior mensaje para que congele la Spline. Así la manipulación de los puntos de control es más sencilla. Saludos.

  10. #10
    Fecha de ingreso
    Feb 2005
    Mensajes
    2,231

    Lineas entre puntos autoupdatada

    Si es que, si es que, quieras que no, half como que tiene algo de idea de script.

Temas similares

  1. Respuestas: 0
    : 16-10-2017, 20:37
  2. Script que genera linea entre dos puntos
    Por jmpinero en el foro Programación y Scripts
    Respuestas: 4
    : 29-12-2009, 09:07
  3. Escala de lineas de puntos espacio papel
    Por rubbin en el foro Programas de Diseño 3D y CAD
    Respuestas: 5
    : 30-11-2007, 16:29
  4. Calcular ángulo entre 3 puntos
    Por shenmue en el foro Programación y Scripts
    Respuestas: 11
    : 02-11-2006, 11:30
  5. Lineas de puntos espacio papel AutoCAD
    Por rubbin en el foro Programas de Diseño 3D y CAD
    Respuestas: 3
    : 27-09-2005, 14:30