Saber si es un objeto curva

Ver el tema anterior Ver el tema siguiente Ir abajo

Saber si es un objeto curva

Mensaje por carlosmgilp el Lun Jun 05, 2017 8:09 am

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.

carlosmgilp

Mensajes : 96
Fecha de inscripción : 17/03/2016
Edad : 35
Localización : Venezuela

Ver perfil de usuario

Volver arriba Ir abajo

Re: Saber si es un objeto curva

Mensaje por kasperle el Lun Jun 05, 2017 4:37 pm

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

kasperle

Mensajes : 4
Fecha de inscripción : 18/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Saber si es un objeto curva

Mensaje por carlosmgilp el Lun Jun 05, 2017 6:41 pm

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.

carlosmgilp

Mensajes : 96
Fecha de inscripción : 17/03/2016
Edad : 35
Localización : Venezuela

Ver perfil de usuario

Volver arriba Ir abajo

Re: Saber si es un objeto curva

Mensaje por robierzo el Mar Jun 06, 2017 10:07 am

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....
avatar
robierzo

Mensajes : 41
Fecha de inscripción : 17/03/2016
Localización : La Coruña

Ver perfil de usuario http://www.selmotopografia.es

Volver arriba Ir abajo

Re: Saber si es un objeto curva

Mensaje por kasperle el Mar Jun 06, 2017 1:29 pm

Creo que esto bastará...

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 : 4
Fecha de inscripción : 18/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Saber si es un objeto curva

Mensaje por carlosmgilp el Jue Jun 08, 2017 4:55 pm

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.

carlosmgilp

Mensajes : 96
Fecha de inscripción : 17/03/2016
Edad : 35
Localización : Venezuela

Ver perfil de usuario

Volver arriba Ir abajo

Re: Saber si es un objeto curva

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.