(defun :CMX:reflösen (NAME DICT /) (vl-catch-all-apply '(lambda () (vla-delete (vla-item (vla-item (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))) DICT ) NAME ) ) ) ) ) (defun refbereinig (OPT DICT / COUNT REFDICT ENTFERNT GEFUNDEN NAME REFERENZIERT OBJ OBJDATA STATUS ) (setq REFDICT (dictsearch (namedobjdict) DICT)) (while (/= (setq OBJ (car REFDICT)) nil) (if (= (car OBJ) 3) (progn (setq NAME (cdr OBJ) OBJDATA (entget (cdr (assoc 350 (cdr REFDICT))) (list "*")) GEFUNDEN (if (/= (findfile (cdr (assoc 1 OBJDATA))) nil) "gefunden" "nicht gefunden" ) ) (if (= DICT "ACAD_PDFDEFINITIONS") (setq ENTFERNT (if (and (assoc -3 OBJDATA) (assoc 1000 (cdadr (assoc -3 OBJDATA))) (eq (cdr (assoc 1000 (cdadr (assoc -3 OBJDATA)))) "NOLOAD") ) "entfernt" "nicht entfernt" ) ) ) (if (= DICT "ACAD_IMAGE_DICT") (setq ENTFERNT (if (/= (cdr (assoc 280 OBJDATA)) 1) "entfernt" "nicht entfernt" ) ) ) (setq COUNT 0) (foreach code OBJDATA (if (= (car code) 330) (setq COUNT (+ COUNT 1)) ) ) (setq REFERENZIERT (if (= COUNT 2) "nicht referenziert" "referenziert" ) ) (cond ((= ENTFERNT "entfernt") (setq STATUS "entfernt")) ((= REFERENZIERT "nicht referenziert") (setq STATUS "nicht referenziert")) ((= GEFUNDEN "nicht gefunden") (setq STATUS "nicht gefunden")) (T (setq STATUS "geladen")) ) (cond ((and (= OPT 0) (= STATUS "nicht referenziert")) (princ (strcat "\n" NAME ", " STATUS ", wurde gelöst")) (:CMX:reflösen NAME DICT) ) ((and (= OPT 1) (or (= STATUS "nicht referenziert") (= STATUS "nicht gefunden"))) (princ (strcat "\n" NAME ", " STATUS ", wurde gelöst")) (:CMX:reflösen NAME DICT) ) ((and (= OPT 2) (or (= STATUS "nicht referenziert") (= STATUS "nicht gefunden") (= STATUS "entfernt") ) ) (princ (strcat "\n" NAME ", " STATUS ", wurde gelöst")) (:CMX:reflösen NAME DICT) ) ) ) ) (setq REFDICT (cdr REFDICT)) ) (princ) ) (defun c:refbereinig (/) (refbereinig 0 "ACAD_IMAGE_DICT") ; nicht referenzierte Bilder lösen (refbereinig 0 "ACAD_PDFDEFINITIONS") ; nicht referenzierte PDF´s lösen ) (defun c:refbereinig+ (/) (refbereinig 1 "ACAD_IMAGE_DICT") ; nicht referenzierte / nicht gefundene Bilder lösen (refbereinig 1 "ACAD_PDFDEFINITIONS") ; nicht referenzierte / nicht gefundene PDF´s lösen ) (defun c:refbereinig++ (/) (refbereinig 2 "ACAD_IMAGE_DICT") ; nicht referenzierte / nicht gefundene / entfernte Bilder lösen (refbereinig 2 "ACAD_PDFDEFINITIONS") ; nicht referenzierte / nicht gefundene / entfernte PDF´s lösen )