- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello everyone,
I find myself modifying a lisp, but I have not been able to move forward anymore due to lack of knowledge of lisp, I hope you can help me improve it or finish it.
I will attach the dwg so you can see what I am doing.
1- The lisp what it does is get the length of each line, which are each in its layer. (Could you improve so that the lisp allows me to select the lines?
2- the output of the data is through the texts that they see there, where the quantities are seen (they could improve the output of the data so that I wonder if I want to take them to excel or place them inside the dwg as a table)
3- the output of the data is placed as a table within the dwg
(defun c:sumlp (/ p l e sxy exy sum1 sum2 sum3 sumpdp200 sumNpdp200 sumpdp300 sumNpdp300 sumpdp450 sumNpdp450 sumpdp600 sumNpdp600 sum1550 sum17200 sum17300 sum17450 sum17600 sum21200 sum21300 sum21450 sum21600 sum21750 sum21900) (setq pick_pt_orig (getpoint "\nPunto de Insercion de Salida de datos:")) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Perf 50") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumpdp50 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Perf 50: ") (princ (rtos sumpdp50)) (setq b (+ 0.05 0.6)) (setq h (+ 0.05 0.5)) (setq vgi (* b h)) (setq vcai (* 0.1 b)) (setq vri (* 0.2 b)) (setq vexi (+ vgi vcai)) (setq vexi (+ vexi vri)) (setq vg vgi) (setq vca vcai) (setq vr vri) (setq vex vexi) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumpdp50 2 0) "M tubería de HDPE de pared doble perforada de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vgi 2 2) "M3 volumen de grava por tubería de HDPE de pared doble perforada de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble perforada de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble perforada de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble perforada de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Perf 100") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumpdp100 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Perf 100: ") (princ (rtos sumpdp100)) (setq b (+ 0.1 0.6)) (setq h (+ 0.1 0.5)) (setq vgi (* b h)) (setq vcai (* 0.1 b)) (setq vri (* 0.2 b)) (setq vexi (+ vgi vcai)) (setq vexi (+ vexi vri)) (setq vg (+ vg vgi)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumpdp100 2 0) "M tubería de HDPE de pared doble perforada de D=100 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vgi 2 2) "M3 volumen de grava por tubería de HDPE de pared doble perforada de D=100 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble perforada de D=100 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble perforada de D=100 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble perforada de D=100 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Perf 200") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumpdp200 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Perf 200: ") (princ (rtos sumpdp200)) (setq b (+ 0.2 0.6)) (setq h (+ 0.2 0.5)) (setq vgi (* b h)) (setq vcai (* 0.1 b)) (setq vri (* 0.2 b)) (setq vexi (+ vgi vcai)) (setq vexi (+ vexi vri)) (setq vg (+ vg vgi)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumpdp200 2 0) "M tubería de HDPE de pared doble perforada de D=200 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vgi 2 2) "M3 volumen de grava por tubería de HDPE de pared doble perforada de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble perforada de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble perforada de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble perforada de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Nperf 200") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumNpdp200 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Nperf 200: ") (princ (rtos sumNpdp200)) (setq b (+ 0.2 0.6)) (setq h (+ 0.4 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumNpdp200 2 0) "M tubería de HDPE de pared doble no perforada de D=200 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble no perforada de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble no perforada de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble no perforada de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Perf 300") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumpdp300 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD perf 300: ") (princ (rtos sumpdp300)) (setq b (+ 0.3 0.6)) (setq h (+ 0.3 0.5)) (setq vgi (* b h)) (setq vcai (* 0.1 b)) (setq vri (* 0.2 b)) (setq vexi (+ vgi vcai)) (setq vexi (+ vexi vri)) (setq vg (+ vg vgi)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumpdp300 2 0) "M tubería de HDPE de pared doble perforada de D=300 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vgi 2 2) "M3 volumen de grava por tubería de HDPE de pared doble perforada de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble perforada de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble perforada de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble perforada de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Nperf 300") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumNpdp300 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Nperf 300: ") (princ (rtos sumNpdp300)) (setq b (+ 0.3 0.6)) (setq h (+ 0.5 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumNpdp300 2 0) "M tubería de HDPE de pared doble no perforada de D=300 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble no perforada de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble no perforada de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble no perforada de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Perf 450") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumpdp450 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Perf 450: ") (princ (rtos sumpdp450)) (setq b (+ 0.45 0.6)) (setq h (+ 0.45 0.5)) (setq vgi (* b h)) (setq vcai (* 0.1 b)) (setq vri (* 0.2 b)) (setq vexi (+ vgi vcai)) (setq vexi (+ vexi vri)) (setq vg (+ vg vgi)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumpdp450 2 0) "M tubería de HDPE de pared doble perforada de D=450 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vgi 2 2) "M3 volumen de grava por tubería de HDPE de pared doble perforada de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble perforada de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble perforada de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble perforada de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Nperf 450") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumNpdp450 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD NPerf 450: ") (princ (rtos sumNpdp450)) (setq b (+ 0.45 0.6)) (setq h (+ 0.65 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumNpdp450 2 0) "M tubería de HDPE de pared doble no perforada de D=450 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble no perforada de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble no perforada de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble no perforada de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Perf 600") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumpdp600 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Perf 600: ") (princ (rtos sumpdp600)) (setq b (+ 0.6 0.6)) (setq h (+ 0.6 0.5)) (setq vgi (* b h)) (setq vcai (* 0.1 b)) (setq vri (* 0.2 b)) (setq vexi (+ vgi vcai)) (setq vexi (+ vexi vri)) (setq vg (+ vg vgi)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumpdp600 2 0) "M tubería de HDPE de pared doble perforada de D=600 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vgi 2 2) "M3 volumen de grava por tubería de HDPE de pared doble perforada de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble perforada de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble perforada de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble perforada de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_PD Nperf 600") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sumNpdp600 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_PD Nperf 600: ") (princ (rtos sumNpdp600)) (setq b (+ 0.6 0.6)) (setq h (+ 0.8 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sumNpdp600 2 0) "M tubería de HDPE de pared doble no perforada de D=600 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE de pared doble no perforada de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE de pared doble no perforada de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE de pared doble no perforada de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR15 50") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum1550 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR15 50: ") (princ (rtos sum1550)) (setq b (+ 0.05 0.6)) (setq h (+ 0.25 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum1550 2 0) "M tubería de HDPE sólida SDR 15 de D=50 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 15 de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 15 de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 15 de D=50 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR17 200") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum17200 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR17 200: ") (princ (rtos sum17200)) (setq b (+ 0.2 0.6)) (setq h (+ 0.40 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum17200 2 0) "M tubería de HDPE sólida SDR 17 de D=200 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 17 de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 17 de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 17 de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR17 300") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum17300 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR17 300: ") (princ (rtos sum17300)) (setq b (+ 0.3 0.6)) (setq h (+ 0.5 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum17300 2 0) "M tubería de HDPE sólida SDR 17 de D=300 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 17 de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 17 de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 17 de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR17 450") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum17450 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR17 450: ") (princ (rtos sum17450)) (setq b (+ 0.45 0.6)) (setq h (+ 0.65 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum17450 2 0) "M tubería de HDPE sólida SDR 17 de D=450 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 17 de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 17 de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 17 de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR17 600") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum17600 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR17 600: ") (princ (rtos sum17600)) (setq b (+ 0.6 0.6)) (setq h (+ 0.8 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum17600 2 0) "M tubería de HDPE sólida SDR 17 de D=600 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 17 de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 17 de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 17 de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR21 200") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum21200 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR21 200: ") (princ (rtos sum21200)) (setq b (+ 0.2 0.6)) (setq h (+ 0.4 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum21200 2 0) "M tubería de HDPE sólida SDR 21 de D=200 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 21 de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 21 de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 21 de D=200 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR21 300") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum21300 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR21 300: ") (princ (rtos sum21300)) (setq b (+ 0.2 0.6)) (setq h (+ 0.4 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum21300 2 0) "M tubería de HDPE sólida SDR 21 de D=300 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 21 de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 21 de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 21 de D=300 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR21 450") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum21450 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR21 450: ") (princ (rtos sum21450)) (setq b (+ 0.45 0.6)) (setq h (+ 0.65 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum21450 2 0) "M tubería de HDPE sólida SDR 21 de D=450 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 21 de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 21 de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 21 de D=450 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR21 600") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum21600 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR21 600: ") (princ (rtos sum21600)) (setq b (+ 0.6 0.6)) (setq h (+ 0.85 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum21600 2 0) "M tubería de HDPE sólida SDR 21 de D=600 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 21 de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 21 de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 21 de D=600 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR21 750") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum21750 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR21 750: ") (princ (rtos sum21750)) (setq b (+ 0.75 0.6)) (setq h (+ 0.95 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum21750 2 0) "M tubería de HDPE sólida SDR 21 de D=750 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 21 de D=750 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 21 de D=750 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 21 de D=750 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (setq p (ssget "X" (list (cons -4 "<or") (cons 0 "LINE") (cons 0 "LWPOLYLINE") (cons -4 "<and") (cons 0 "POLYLINE") (cons -4 "<not") (cons -4 "&") (cons 70 (+ 16 32 64)) (cons -4 "not>") (cons -4 "and>") (cons -4 "or>") (cons 8 "AA T_S SDR21 900") ) ) sum1 0.0 sum2 0.0 sum3 0.0 ) ;check for null selection set (if p (progn (setq l 0) (repeat (sslength p) (cond ((= "LINE" (cdr (assoc 0 (setq e (entget (ssname p l)))))) (setq sxy (cdr (assoc 10 e)) exy (cdr (assoc 11 e)) sum1 (+ sum1 (distance sxy exy)) ) (terpri) ) ((= "LWPOLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ((= "POLYLINE" (cdr (assoc 0 (entget (setq e (ssname p l)))))) (command "_.area" "_E" e) (setq sum2 (+ sum2 (getvar "perimeter"))) (terpri) ) ) (setq l (1+ l)) ) (setq sum21900 (+ sum1 sum2)) (princ (rtos sum2)) (princ "\nLa suma total de longitudes para lineas y/o polilineas es AA T_S SDR21 900: ") (princ (rtos sum21900)) (setq b (+ 0.90 0.6)) (setq h (+ 1.10 0.5)) (setq vcai (* 0.1 b)) (setq vri (* h b)) (setq vexi (+ vri vcai)) (setq vca (+ vca vcai)) (setq vr (+ vr vri)) (setq vex (+ vex vexi)) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos sum21900 2 0) "M tubería de HDPE sólida SDR 21 de D=900 mm:") ) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vcai 2 2) "M3 volumen de cama de arena por tubería de HDPE sólida SDR 21 de D=900 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vri 2 2) "M3 volumen de relleno estructural por tubería de HDPE sólida SDR 21 de D=900 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vexi 2 2) "M3 volumen de excavación de zanja por tubería de HDPE sólida SDR 21 de D=900 mm:")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) ) (princ "\nNo has seleccionado ninguna linea o polilinea") ) (princ) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vca 2 2) "M3 volumen total de cama de arena")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vr 2 2) "M3 volumen total de relleno estructural")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) (command "_text" "j" "c" pick_pt_orig 3.75 0 (strcat (rtos vex 2 2) "M3 volumen total de excavación de zanja")) (setq pick_pt_orig (mapcar '- pick_pt_orig (list 0 10))) )
Thanks everyone for your help
Edwin Saez
LinkedIn / AutoCAD Certified Professional
Si mi respuesta fue una solución para usted, por favor seleccione "Aceptar Solución", para que también sirva a otro usuarios.
Solved! Go to Solution.