(defun c:CS () (setvar "cmdecho" 0) (setq NomeFile (getfiled "Salva file di sezione" "" "csv" 1)) (setq Separatore ";") (princ "\n Seleziona le Distanze progressive...") (setq gruppoDist(ssget '((0 . "TEXT")))) (princ "\n Seleziona le Quote...") (setq gruppoQuote(ssget '((0 . "TEXT")))) (if (and gruppoDist gruppoQuote (= (sslength gruppoDist) (sslength gruppoQuote))) (progn (setq i 0) (setq ListaProgr nil) (setq ListaQuote nil) (repeat (sslength gruppoDist) (setq Progr(cdr(assoc 1 (entget(ssname gruppoDist i))))) (setq ProgrX(car(cdr(assoc 10 (entget(ssname gruppoDist i)))))) (setq ListaProgr(cons (list ProgrX (atof Progr)) ListaProgr)) (setq Quota(cdr(assoc 1 (entget(ssname gruppoQuote i))))) (setq QuotaX(car(cdr(assoc 10 (entget(ssname gruppoQuote i)))))) (setq ListaQuote(cons (list QuotaX (atof Quota)) ListaQuote)) (setq i(1+ i)) ) (setq ListaProgr(vl-sort ListaProgr (function (lambda (e1 e2) (< (car e1) (car e2)) ) ) ) ) (setq ListaQuote(vl-sort ListaQuote (function (lambda (e1 e2) (< (car e1) (car e2)) ) ) ) ) (setq i 0) (setq FF(open NomeFile "a")) (repeat (length ListaProgr) (setq Num(1+ i)) (setq Progr (nth 1 (nth i ListaProgr))) (setq Quota (nth 1 (nth i ListaQuote))) (write-line (strcat (itoa Num) Separatore (rtos Progr 2 2) Separatore (rtos Quota 2 2)) FF) (setq i(1+ i)) ) (close FF) (princ "\n Creato il file:")(princ NomeFile) ) (alert "Numero DISTANZE diverso dal numero QUOTE.\n Migliorare la selezione.") ) (princ) ) (princ "\n Digitare CS per lanciare il programma!") (princ)