Saber si es un objeto curva
3 participantes
Página 1 de 1.
Saber si es un objeto curva
Hola como están.
Alguien sabe si hay alguna manera de al momento de seleccionar un objeto, pueda identificar si es un objeto curva.
Es para no tener que hacer una comparación de que si es una linea, una curva, una polilinea, una spline y así sucesivamente la lista. Que se hace muy largo eso.
Algo así como seleccionar algo en pantalla y si es un objeto curva haga esto y si no haga lo otro.
Muchas gracias.
Alguien sabe si hay alguna manera de al momento de seleccionar un objeto, pueda identificar si es un objeto curva.
Es para no tener que hacer una comparación de que si es una linea, una curva, una polilinea, una spline y así sucesivamente la lista. Que se hace muy largo eso.
Algo así como seleccionar algo en pantalla y si es un objeto curva haga esto y si no haga lo otro.
Muchas gracias.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: Saber si es un objeto curva
Hola carlosmgilp,
Comprueba la segunda derivada del objeto en el punto de selección (vlax-curve-getsecondderiv... etc.): si sale '(0.0 0.0 0.0) es una recta o un tramo recto de polilínea; si es diferente, es algún tipo de curva.
Un saludo.
(OJO: en cualquier caso, hay que filtrar los objetos tipo texto, sombreado, bloque...)
Comprueba la segunda derivada del objeto en el punto de selección (vlax-curve-getsecondderiv... etc.): si sale '(0.0 0.0 0.0) es una recta o un tramo recto de polilínea; si es diferente, es algún tipo de curva.
Un saludo.
(OJO: en cualquier caso, hay que filtrar los objetos tipo texto, sombreado, bloque...)
kasperle- Mensajes : 28
Fecha de inscripción : 18/03/2016
Re: Saber si es un objeto curva
Hola como estas, gracias por responder.
Pero aunque no sabia eso para identificar si es un tramo curvo o recto, ya aprendí algo nuevo. Jejejeje.
Yo no supe exponer mi pregunta.
Quiero aplicar las funciones vlax-curve pero según lei acepta cualquier objeto finito de naturaleza lineal sin importar su grado de curvatura. Como lineas, arcos, polilineas. Pero excluye xline, ray, block, mallas y cosas así.
Entonces para no estar con la comparación entre tantos objetos, pensé que si selecciona el objeto y es un objeto curve haga tal cosa. No se algo así.
Y bueno eso es lo que realmente necesito saber.
Gracias.
Pero aunque no sabia eso para identificar si es un tramo curvo o recto, ya aprendí algo nuevo. Jejejeje.
Yo no supe exponer mi pregunta.
Quiero aplicar las funciones vlax-curve pero según lei acepta cualquier objeto finito de naturaleza lineal sin importar su grado de curvatura. Como lineas, arcos, polilineas. Pero excluye xline, ray, block, mallas y cosas así.
Entonces para no estar con la comparación entre tantos objetos, pensé que si selecciona el objeto y es un objeto curve haga tal cosa. No se algo así.
Y bueno eso es lo que realmente necesito saber.
Gracias.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: Saber si es un objeto curva
Dos cosas:
1º: No debe importarte que haya cientos de objetos a analizar. Lo que tú tardes un minuto en analizar, el ordenador lo analiza en una milmillonésima de segundo, por decir algo.
2º-. Explica claramente qué tipo de objetos son curvas para ti: arcos, circulos, splines, polilines adaptadas....
1º: No debe importarte que haya cientos de objetos a analizar. Lo que tú tardes un minuto en analizar, el ordenador lo analiza en una milmillonésima de segundo, por decir algo.
2º-. Explica claramente qué tipo de objetos son curvas para ti: arcos, circulos, splines, polilines adaptadas....
Re: Saber si es un objeto curva
Creo que esto bastará...
Un saludo.
- Código:
(defun C:TST (/ oa sd)
(if (vl-catch-all-error-p
(setq sd
(vl-catch-all-apply
'(lambda (x y)
(vlax-curve-getsecondderiv x
(vlax-curve-getparamatpoint x
(vlax-curve-getclosestpointto x y)
)
)
)
(setq oa (entsel))
)
)
)
(alert "No tiene segunda derivada (bloque, texto...)")
(if (equal sd '(0. 0. 0.))
(alert "Es una LÍNEA o un tramo recto de Polilínea")
(alert "Es una CURVA o un tramo curvo de Polilínea")
)
)
(princ)
)
Un saludo.
kasperle- Mensajes : 28
Fecha de inscripción : 18/03/2016
Re: Saber si es un objeto curva
Hola muchachos como están, Gracias por la ayuda.
Este el el fragmento del libro de Togores que me pasaron, pero no dice como hacer una comparación de si los objetos son curvas, cuando se habla de curvas no importa si es una linea, es solo que se le puedan aplicar las funciones vlax-curve... Pence que seria como cuando uno hace una comparación de tipo (= (type obj) 'vla-object) y tal cual seria así de fácil.
Pero viendo el ejemplo de kasperle me va tocar aplicar la función y capturar el error y si tiene error pues haga otra cosa, porque con ese ejemplo me toma las xline y ray, tal vez buscaba como la simplicidad y no hacer tanto código.
Y como siempre mil gracias por la ayuda de todos.
Este el el fragmento del libro de Togores que me pasaron, pero no dice como hacer una comparación de si los objetos son curvas, cuando se habla de curvas no importa si es una linea, es solo que se le puedan aplicar las funciones vlax-curve... Pence que seria como cuando uno hace una comparación de tipo (= (type obj) 'vla-object) y tal cual seria así de fácil.
Pero viendo el ejemplo de kasperle me va tocar aplicar la función y capturar el error y si tiene error pues haga otra cosa, porque con ese ejemplo me toma las xline y ray, tal vez buscaba como la simplicidad y no hacer tanto código.
Y como siempre mil gracias por la ayuda de todos.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Temas similares
» Saber si un objeto esta en un bloque.
» Calculo de Area de Superficie de Objeto 3D
» Seleccionar objeto por medio de un punto
» Calculo de Area de Superficie de Objeto 3D
» Seleccionar objeto por medio de un punto
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|