;sortiert Maßstabsliste nach Zeicheneinheiten, erst Xref-Maßstäbe dann Zeichnungs-Maßstäbe (kleinstes zuerst) (defun ScalelistSort ( / aktCannoScale Maßstäbe Maß-Liste ENTScale Maß-ListeOR Maß-ListeMR Zähler1) (setq aktCannoScale (getvar "CannoScale"));holt aktuellen Maßstab (setq Maßstäbe (dictsearch (namedobjdict) "ACAD_SCALELIST")) (setq Maßstäbe (vl-remove-if-not '(lambda (x) (= (car X) 350)) Maßstäbe)) (setq Maß-Liste nil) ;---------------------------------------------------------------------------------------- ;begin - sortiert Maßstabsliste nach Zeicheneinheiten (kleinstes zuerst) ohne Xref-Maßstäbe (setq Maß-Liste nil) (foreach teil Maßstäbe (setq ENTScale (entget (cdr teil))) (if (and (= (vl-string-search "_XREF" (cdr (assoc 300 ENTScale))) nil)(/= (cdr (assoc 300 ENTScale)) "1:100-Pharma")) (progn (setq Maß-Liste (cons (list (cdr (assoc 300 ENTScale)) (cdr (assoc 140 ENTScale)) (cdr (assoc 141 ENTScale)) (cdr teil) ) Maß-Liste ) ) );end progn );end if );end foreach (setq Maß-ListeOR (vl-sort Maß-Liste '(lambda (e1 e2) (< (car (cdr (cdr e1))) (car (cdr (cdr e2))))));sortiern nach dem 3.ten Atom (Zeicheneinheiten) der Liste (kleinstes zuerst) ) ;end - sortiert Maßstabsliste nach Zeicheneinheiten (kleinstes zuerst) ohne Xref-Maßstäbe ;---------------------------------------------------------------------------------------- ;begin - sortiert Maßstabsliste der Xref-Maßstäbe nach Zeicheneinheiten (kleinstes zuerst) (setq Maß-Liste nil) (foreach teil Maßstäbe (setq ENTScale (entget (cdr teil))) (if (/= (vl-string-search "_XREF" (cdr (assoc 300 ENTScale))) nil) (progn (setq Maß-Liste (cons (list (cdr (assoc 300 ENTScale)) (cdr (assoc 140 ENTScale)) (cdr (assoc 141 ENTScale)) (cdr teil) ) Maß-Liste ) ) );end progn );end if );end foreach ;end - sortiert Maßstabsliste der Xref-Maßstäbe nach Zeicheneinheiten (kleinstes zuerst) ;---------------------------------------------------------------------------------------- (setq Maß-ListeMR (vl-sort Maß-Liste '(lambda (e1 e2) (< (car (cdr (cdr e1))) (car (cdr (cdr e2))))));sortiern nach dem 3.ten Atom (Zeicheneinheiten) der Liste (kleinstes zuerst) ) ;---------------------------------------------------------------------------------------- (setq Maß-Liste(append Maß-ListeMR Maß-ListeOR)); zusammensetzen der Maßstabslisten (Xref-Maßstäbe zuerst) ;---------------------------------------------------------------------------------------- ;begin - Neuerstellung Liste aller sortierten Maßstabslisten nach Zeicheneinheiten, erst Xref-Maßstäbe dann Zeichnungs-Maßstäbe (kleinstes zuerst) (setq Maßstäbe (dictsearch (namedobjdict) "ACAD_SCALELIST")) (setq Zähler1 -1) (entmod (mapcar '(lambda (x) (if (= (car X) 350) (progn (setq Zähler1 (1+ Zähler1)) (cons 350 (cadddr (nth Zähler1 Maß-Liste))) ) x ) ) Maßstäbe ) ) ;end - Neuerstellung Liste aller sortierten Maßstabslisten nach Zeicheneinheiten, erst Xref-Maßstäbe dann Zeichnungs-Maßstäbe (kleinstes zuerst) ;---------------------------------------------------------------------------------------- (command "CannoScale" aktCannoScale);setzt alten Maßstab aktuell ) (ScalelistSort)