Gracias Gracias:  0
Resultados 1 al 10 de 10

Tema: Lineas entre Puntos autoUpdatada

  1. #1
    Senior Member
    Fecha de ingreso
    Feb 2005
    Ubicación
    por ahi ando
    Mensajes
    2,235

    Lineas entre Puntos AutoUpdatada

    Mirando la ayuda de maxscript he reescrito el script

    [HTML] fn Líneas P1 P2 =
    (

    ss = SplineShape Pos:P1
    addNewSpline ss
    addknot ss 1 #corner #line P1
    addKnot ss 1 #corner #line P2
    updateShape SS
    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
    reBorn Avatar de promineo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Tenerife
    Mensajes
    3,402

    Re: Lineas entre Puntos AutoUpdatada

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

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

  3. #3
    reBorn Avatar de promineo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Tenerife
    Mensajes
    3,402

    Re: Lineas entre Puntos AutoUpdatada

    a mi 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 SS

    addModifier ss (Skin ())
    mySkin = ss.modifiers[#Skin]
    max modify mode
    modPanel.setCurrentObject mySkin
    skinOps.addBone mySkin P1 1
    skinOps.addBone mySkin P2 1

    select P1
    ss
    )
    P1 Y P2 son ahora dos nodos cualquiera, dos objetos...
    PromineoStudios

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

  4. #4
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: Lineas entre Puntos AutoUpdatada

    También puedes utilizar un controlador de tipo "Point3 script":

    Código:
    fn attachShapeToPoints P1 P2 = (
    	ss = SplineShape Pos:P1.pos
    	addNewSpline ss
    	addknot ss 1 #corner #line P1.pos
    	addKnot ss 1 #corner #line P2.pos
    	updateShape ss
    
    	local ctrlSource = "target.pos * (inverse owner.transform)"
    	
    	animateVertex ss #all
    	
    	local ctrlP1 = Point3_Script()
    	ctrlP1.addNode "target" P1
    	ctrlP1.addNode "owner" ss
    	ctrlP1.script = ctrlSource
    	ctrlP1.update()
    	ss[4][8][2].controller = ctrlP1
    
    	local ctrlP2 = Point3_Script()
    	ctrlP2.addNode "target" P2
    	ctrlP2.addNode "owner" ss
    	ctrlP2.script = ctrlSource
    	ctrlP2.update()
    	ss[4][8][5].controller = ctrlP2
    
    	OK
    )
    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; 11-11-2006 a las 01:36

  5. #5
    Senior Member
    Fecha de ingreso
    Feb 2005
    Ubicación
    por ahi ando
    Mensajes
    2,235

    Re: Lineas entre Puntos AutoUpdatada

    Esta 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 situacion.Molaria algo más limpio.
    Gracias por la idea

  6. #6
    Senior Member
    Fecha de ingreso
    Feb 2005
    Ubicación
    por ahi ando
    Mensajes
    2,235

    Re: Lineas entre Puntos AutoUpdatada

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

  7. #7
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: Lineas entre Puntos AutoUpdatada

    Le he hecho unas cuantas modificaciones para que soporte un número de puntos arbitrario.

    Código:
    fn attachShapeToPoints points = (
    
    	theShape = SplineShape()
    	addNewSpline theShape
    	for i = 1 to points.count do (
    		addknot theShape 1 #corner #line points[i].pos
    	)
    
    	updateShape theShape
    
    	local ctrlSource = "target.pos * (inverse owner.transform)"
    	
    	animateVertex theShape #all
    
    	for i = 0 to (points.count - 1) do (
    		local ctrl = Point3_Script()
    		ctrl.addNode "target" points[i + 1]
    		ctrl.addNode "owner" theShape
    		ctrl.script = ctrlSource
    		ctrl.update()
    		theShape[4][8][i * 3 + 2].controller = ctrl
    	)
    
    	-- Comentar estas dos líneas si no se quiere congelar la spline
    	theShape.showFrozenInGray = false
    	freeze theShape
    	
    	OK
    )
    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.

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

  8. #8
    reBorn Avatar de promineo
    Fecha de ingreso
    Dec 2004
    Ubicación
    Tenerife
    Mensajes
    3,402

    Re: Lineas entre Puntos AutoUpdatada

    que chulo half no sabia 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
    H = E + L
    Fecha de ingreso
    Mar 2004
    Ubicación
    Entre dos vectores
    Mensajes
    870

    Re: Lineas entre Puntos AutoUpdatada

    Cita Iniciado por promineo
    que chulo half no sabia 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.pos * (inverse owner.transform)
    Lo que hace eso es pasar la posición del punto al sistema de coordenadas del shape.

    En fin, una pequeña explicación por si os preguntabais por qué 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
    Senior Member
    Fecha de ingreso
    Feb 2005
    Ubicación
    por ahi ando
    Mensajes
    2,235

    Re: 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. Blender Caliper mide la distancia entre dos puntos
    Por 3dpoder en el foro Programación y Scripts
    Respuestas: 1
    Último mensaje: 12-05-2012, 14:55
  2. script que genera linea entre dos puntos
    Por jmpinero en el foro Programación y Scripts
    Respuestas: 4
    Último mensaje: 29-12-2009, 11:07
  3. escala de lineas de puntos espacio papel
    Por rubbin en el foro Diseño Gráfico y CAD
    Respuestas: 5
    Último mensaje: 30-11-2007, 18:29
  4. calcular angulo entre 3 puntos
    Por shenmue en el foro Programación y Scripts
    Respuestas: 11
    Último mensaje: 02-11-2006, 13:30
  5. lineas de puntos espacio papel aUTOCaD
    Por rubbin en el foro Diseño Gráfico y CAD
    Respuestas: 3
    Último mensaje: 27-09-2005, 15:30

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.
  •