Hola @sergio_gonza
Aquí hay una explicación de cómo funciona:
La rutina comienza creando una selección de objetos (ss) usando el comando ssget para obtener todas las polilíneas en la selección actual.
A continuación, abre un archivo .csv para escribir polilíneas.csv con la función with-open.
Dentro del with-open, lo primero que sucede es la escritura de la línea de encabezado del archivo .csv, que será "X, Y, Longitud".
Luego itera sobre todos los nombres de objetos en la selección ss con la función foreach.
Para cada objeto, utiliza la función entget para obtener la entidad de polilínea.
Luego itera sobre la entidad de polilínea para extraer las coordenadas X e Y usando el código 10.
También extrae la longitud de la polilínea utilizando el código 40.
Finalmente, escribe las coordenadas X e Y y la longitud de la polilínea en el archivo .csv usando la función princ.
Cuando finaliza la rutina, muestra el mensaje "Datos de polilínea exportados a polilíneas.csv".
Puede agregar esta rutina a su archivo de secuencia de comandos de AutoCAD y ejecutarla desde el comando (exportar polilíneas a csv).
(defun c:export-polylines-to-csv (/ ss i j pline coords length)
(setq ss (ssget "X" '((0 . "LWPOLYLINE"))))
(with-open (f "polylines.csv" "w")
(princ "X,Y,Length" f)
(foreach i (ssname ss)
(setq pline (entget i))
(setq coords nil)
(foreach j pline
(if (eq (car j) 10)
(setq coords (cons (cdr j) coords))))
(setq length (rtos (cdr (assoc 40 pline))))
(foreach j coords
(princ (strcat (rtos (car j)) "," (rtos (cdr j)) "," length) f)
(princ "\n" f))))
(princ "Polyline data exported to polylines.csv"))
espero que funcione !
Saludos
At.t
João Rafael A. Dias
[pt] Esse post foi de ajuda para você? Mostre seu Apoio dando uma curtida! Sua pergunta obteve uma resposta que resolveu a duvida? Então clique no botão 'Aceitar Solução '
[en] Did this post help you? Show your support by liking it! Did your question receive an answer that solved your doubts? Then click on the "Accept Solution" button.
[es] ¿Te ayudó esta publicación? Demuestra tu apoyo dándole un me gust. ¿Tu pregunta recibió una respuesta que resolvió tus dudas? Entonces haz clic en el botón "Aceptar solución"
Siga-me // Folow me
LinkedIN