Linetype Generation
2 participantes
Página 1 de 1.
Linetype Generation
Buen día foro.
Con una pregunta, que me hizo "perder mucho, mucho" tiempo.
Resulta ser que estoy escribiendo una rutina... para un fin en particular, necesitaba seleccionar polilíneas cerradas para obtener su área y luego sumatoria. Pues bien, escribí esto:
Luego de mucho batallar, me di cuenta que la diferencia entre las poilis que seleccionaba y las que yo quería es que en la opción "Linetype Generation" era que unas decían "Disabled" (deshabilitada, o eso creo) y las que no seleccionaba estaba Habilitada, les cambié el estado y funciona. Entonces la pregunta es: Que hace esta opción, para que sirve y tal vez saber como se habilitó.
Saludos y gracias.
Con una pregunta, que me hizo "perder mucho, mucho" tiempo.
Resulta ser que estoy escribiendo una rutina... para un fin en particular, necesitaba seleccionar polilíneas cerradas para obtener su área y luego sumatoria. Pues bien, escribí esto:
- Código:
(setq conj1(ssget "_X" (list
(cons 0 "*line")
(cons 8 "Rampa_peatonal")
(cons 70 1)
)))
Luego de mucho batallar, me di cuenta que la diferencia entre las poilis que seleccionaba y las que yo quería es que en la opción "Linetype Generation" era que unas decían "Disabled" (deshabilitada, o eso creo) y las que no seleccionaba estaba Habilitada, les cambié el estado y funciona. Entonces la pregunta es: Que hace esta opción, para que sirve y tal vez saber como se habilitó.
Saludos y gracias.
eliasp- Mensajes : 175
Fecha de inscripción : 17/03/2016
Re: Linetype Generation
Hola Elías
La "generación de tipo de línea" es una variable o banderita de cada polilínea que controla como se muestran los tipos de línea discontínuos en los vértices. Cuando esta opción está desactivada los trazos se calculan individualmente entre cada par de vértices y cuando se activa se calculan continuamente a lo largo de toda la polilínea sin importar si en un vértice te queda el hueco de la discontinuidad.
Lo más fácil para entenderlo: crea una polilínea común, aplícale un tipo de línea por ejemplo "hidden", activa y desactiva la generación de tipo de línea para esa poly (en la paleta de propiedades es la última opción en el apartado "Misc") y mira como se comporta en los vértices. También se puede cambiar con el comando "pedit", pero es más fácil en la paleta de propiedades.
Ahora bien, como adaptar el código para que funcione ignorando esa característica:
El código 70 de las polilíneas solo tiene 2 banderas, 1=cerrado y 128=ltype generation, entonces el valor para las cerradas es 1 o 129.
Aunque podrías anidar 1 y 129 en un "or", lo más correcto es ponerlo con un filtro de bits como este:
Ese "&" actuará como la función logand entre el 1 y el valor que tenga la polilínea, devolviendo verdadero en cualquier caso que el bit 1 esté activo, y te salvará de eventualidades como que algún programa active otras banderas de ese código 70 o que a futuro autodesk decida meter otros valores ahí. O incluso si llegas a tener splines, ya que las splines tienen un set de valores distintos para el código 70, y también su valor 1 es cerrado.
La "generación de tipo de línea" es una variable o banderita de cada polilínea que controla como se muestran los tipos de línea discontínuos en los vértices. Cuando esta opción está desactivada los trazos se calculan individualmente entre cada par de vértices y cuando se activa se calculan continuamente a lo largo de toda la polilínea sin importar si en un vértice te queda el hueco de la discontinuidad.
Lo más fácil para entenderlo: crea una polilínea común, aplícale un tipo de línea por ejemplo "hidden", activa y desactiva la generación de tipo de línea para esa poly (en la paleta de propiedades es la última opción en el apartado "Misc") y mira como se comporta en los vértices. También se puede cambiar con el comando "pedit", pero es más fácil en la paleta de propiedades.
Ahora bien, como adaptar el código para que funcione ignorando esa característica:
El código 70 de las polilíneas solo tiene 2 banderas, 1=cerrado y 128=ltype generation, entonces el valor para las cerradas es 1 o 129.
Aunque podrías anidar 1 y 129 en un "or", lo más correcto es ponerlo con un filtro de bits como este:
- Código:
(ssget "X" '((0 . "LWPOLYLINE") (8 . "Rampa_peatonal") (-4 . "&") (70 . 1)))
Ese "&" actuará como la función logand entre el 1 y el valor que tenga la polilínea, devolviendo verdadero en cualquier caso que el bit 1 esté activo, y te salvará de eventualidades como que algún programa active otras banderas de ese código 70 o que a futuro autodesk decida meter otros valores ahí. O incluso si llegas a tener splines, ya que las splines tienen un set de valores distintos para el código 70, y también su valor 1 es cerrado.
Última edición por Gerardo Calvo el Vie Mar 17, 2023 8:18 pm, editado 1 vez
Gerardo Calvo- Mensajes : 32
Fecha de inscripción : 29/10/2019
A robierzo le gusta esta publicaciòn
Re: Linetype Generation
Muchas gracias maestro Gerardo.
Como siempre, tus respuestas muy claras
Saludos
Como siempre, tus respuestas muy claras
Saludos
eliasp- Mensajes : 175
Fecha de inscripción : 17/03/2016
A Gerardo Calvo le gusta esta publicaciòn
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|