Hola. Espero que se encuentren bien. Seré algo conciso. Adjunto 2 imágenes:
La primera imagen demuestra como están mis polilíneas inicialmante y la segunda, como quiero obtenerlas usando _BOUNDARY. Acá va otra imagen:
Todo consejo es bienvenido pero, por favor, que esté relacionado con "-BOUNDARY" y no con "TRIM"
Asimismo, dando más información a detalle y, para aquellos conocedores de rutinas autolisp como por ejemplo @calderg1000 , quisiera que me ayuden con la intepretación de esto:
(command
"_.-boundary" "_a" "_b" "_n" sel ent "" "_i" "_y" "_o" "_p" "" "_non"
(trans (mapcar '- (car box) (list (/ dis 3.0) (/ dis 3.0))) 0 1) ""
)
Adjuntaré el autolisp que quiero transformar a código de VBA en autocad para que entiendan lo que quiero hacer.
¡Resuelto! Ir a solución.
Resuelto por calderg1000. Ir a solución.
Saludos @Ray-Sync
Agradecido por la mención. Para iniciar, aquí te adjunto una idea en base al código resumido que publicaste.
Le hice algunas ediciones para mostrar un procedimiento que talvez te pueda ayudar.
;;;___
(defun c:bdr(/ s)
(setq s (ssget))
(command
"_.-boundary" "_a" "_b" "_n" s "" "_i" "_y" "_o" "_p" "" "_non" pause
""
)
(command "_.erase" s "")
(command "_.erase" (ssadd (entlast)) "")
)
Carlos Calderon G
>Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
Gracias @calderg1000 por tu ayuda. Ahora ya veo el panorama completo.
Estimado @Ray-Sync
Sobre tu consulta, acerca de la interpretación de esta linea de codigo te doy algunos alcances.
(command
"_.-boundary" "_a" "_b" "_n" sel ent "" "_i" "_y" "_o" "_p" "" "_non" (trans (mapcar '- (car box) (list (/ dis 3.0) (/ dis 3.0))) 0 1) "" )
Disculpa si soy demasiado explicito, se que programas en VBA, pero no se que nivel tienes en Autolisp y su complemento mejorado Visual lisp.
1. las letras entre comillas que siguen a el comando Boundary, son la secuencia que el comando solicita y que debes de indicar seleccionando dichas letras.
2. "non" te permite anular momentáneamente los modos de referencia a objetos, para no permitir que la selección del punto se distorsione.
3. (trans (mapcar '- (car box) (list (/ dis 3.0) (/ dis 3.0))) 0 1) , este código en realidad representa un punto. Aqui tendría que explicarte cada una de los comados encerrados dentro de los parentesis, pero solo te dare algo rapido. Porque se refieren al planteamiento previo del maestro Lee. Y no lo he revisado a detalle.
* Trans, se usa para transformar un punto En un sistema de coordenadas a otro sistema que puede ser trasladado o rotado.
* (car box) y (list (/ dis 3.0) (/ dis 3.0))), representan coordenadas de un punto
* (mapcar '- (car box) (list (/ dis 3.0) (/ dis 3.0))), se refiere a la diferencia de las coordenadas de estos dos puntos. Si revisas a detalle el código de Lee. te podrás dar cuenta porque hace esta operación.
Espero haber ayudado un poco en tu consulta.
Carlos Calderon G
>Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
Nuevamente gracias @calderg1000. Tu simplificación del código anterior, me pudo dar a entender que, si quiero crear el contorno de unas polilíneas, primero debería crear un código que seleccione los objetos en el modelspace. Tras haber hecho ello, necesito crear una región cerrada como un rectángulo o un círculo que englobe a los objetos previos para ponerle clic en su interior (obligatoriamente fuera de los objetos del cual quiero obtener sus contornos). Finalmente borrar los objetos de mi selección y el círculo o rectangulo externo.
¿No encontraste lo que buscabas? Pregúntale a la comunidad o comparte tus conocimientos.