bolado escribió:Hola,
Tengo una duda con Autocad ( v 2004) a ver si alguien me puede ayudar.
Existe algún comando en autocad que al seleccionar varias polilíneas te diga la longitud total del conjunto de polilíneas seleccionado?
No me refiero al LIST, que te da la longitud de cada una de las líneas, sino a algún comando que te dé la suma de todas las seleccionadas.
Posiblemente sea una chorrada, (aunque no se si se puede hacer) Alomejor estoy pidiendo peras al olmo
pero me solucionaría un montón de trabajo.
Gracias de antemano.
Yo me programé mi propio rutina para calcular suma de polilíneas. Abre el editor de Visual Lisp, lo copias, lo guardas como archivo Lisp, y lo ejecutas cuando quieras. Al ejecutar el programa te pedirá la capa donde están las polilíneas.
(defun c:longitud_lineas (/ capa_polilineas seleccion distancia2 distancia nombre1 nombre a pto1 pto2 long)
(setq seleccion nil a 0)
(setq distancia2 0)
(setq capa_polilineas (getstring "Introduzca el nombre de la capa donde se encuentran dibujadas todas las polilíneas
que desea contar: "))
(if
(setq seleccion (ssget "_X" (list (cons 8 capa_polilineas) '(0 . "LWPOLYLINE"))));selecciona todo lo que existe en la capa Prueba
(progn
(setq long (while (setq nombre1 (ssname seleccion a))
(setq nombre (entget nombre1))
(setq a (+ a 1))
(setq distancia 0)
(while (/= (setq pto1 (assoc 10 nombre)) nil);cálcula la longitud de una polilínea
(setq nombre (subst (cons 2 "solo") pto1 nombre))
(if (setq pto2 (assoc 10 nombre))
(setq distancia
(+ distancia (distance (cdr pto1) (cdr pto2)))
)
)
)
(setq distancia2 (+ distancia2 distancia))
)
)
(alert (strcat "Las polilíneas incluidas en la capa " capa_polilineas " del dibujo activo tienen una longitud total de " (rtos long) " unidades."))
)
(alert (strcat "No existe ninguna polilínea en la capa " capa_polilineas " del dibujo activo o no existe dicha capa.")))
)
Suerte.