(defun c:UPDATE-Title-Block_ohneDateiname () (UPDATE-Title-Block nil "VERZEICHNIS" (PIA "PFAD"));Nur Verzeichnis ausgeben (UPDATE-Title-Block nil "VERZEICHNISKURZ" (PIA "PFADKURZ"));Nur letzten 2 Verzeichnisse (command "_.regen") ) (defun c:UPDATE-Title-Block_mitDateiname () (UPDATE-Title-Block nil "VERZEICHNIS" (PIA "FULLNAME"));Nur Verzeichnis ausgeben + Datname (UPDATE-Title-Block nil "VERZEICHNISKURZ" (PIA "SHORTNAME"));Nur letzten 2 Verzeichnisse + Datname (command "_.regen") ) (defun UPDATE-Title-Block (INSERTNAME ATTRIBNAME ATTRIBWERT / AUSWAHL INDEX OBJEKTDATEN ) (if (= (type INSERTNAME) 'STR) (setq AUSWAHL (ssget "_x" (list '(0 . "INSERT") (cons 2 INSERTNAME))) ) ) (if (or AUSWAHL (setq AUSWAHL (ssget "_x" '((0 . "INSERT")))) ) (progn (setq INDEX -1) (repeat (sslength AUSWAHL) (setq OBJEKTDATEN (entget (ssname AUSWAHL (setq INDEX (1+ INDEX)))) ) (if (assoc 66 OBJEKTDATEN) (while (/= (cdr (assoc 0 OBJEKTDATEN)) "SEQEND") (setq OBJEKTDATEN (entget (entnext (cdr (assoc -1 OBJEKTDATEN))) ) ) (if (and (= (cdr (assoc 0 OBJEKTDATEN)) "ATTRIB") (= (strcase (cdr (assoc 2 OBJEKTDATEN))) ATTRIBNAME) ) (progn (entmod (subst (cons 1 ATTRIBWERT) (assoc 1 OBJEKTDATEN) OBJEKTDATEN ) ) ) ) ) ) ) ) ) ) (defun pia (MODE / dwgpath dwg2path dwgverz) ;| MODE: "PFAD" - nur Verzeichnis "FULLNAME" - Verzeichnis + Dateiname "DWGNAME" - nur Dateiname "PFADKURZ" - nur letzten 2 Verzeinisse "SHORTNAME" - nur letzten 2 Verzeinisse + Dateiname |; (setq dwgverz (cdr (reverse (f:str-teilen (setq dwgpath (getvar "DWGPREFIX")) "\\") ) ) dwg2path (apply 'strcat (mapcar '(lambda (S) (strcat S "\\") ) (reverse (if (> (length dwgverz) 2) (list (car dwgverz) (cadr dwgverz)) dwgverz ) ) ) ) ) (cond ((= (setq mode (strcase mode)) "PFAD") dwgpath ) ((= (setq mode (strcase mode)) "FULLNAME") (strcat dwgpath (getvar "DWGNAME")) ) ((= (setq mode (strcase mode)) "PFADKURZ") dwg2path ) ((= (setq mode (strcase mode)) "SHORTNAME") (strcat dwg2path (getvar "DWGNAME")) ) ((= (setq mode (strcase mode)) "DWGNAME") (getvar "DWGNAME") ) ) ) (defun f:str-teilen (sil_str sil_tr / sil_i sil_str1 sil_trli) (setq sil_i 0) (if (= 'STR (type sil_str)) (progn (while (< sil_i (strlen sil_str)) (setq sil_i (1+ sil_i) sil_str1 (substr sil_str sil_i 1) ) (if (= sil_str1 sil_tr) (setq sil_trli (cons sil_i sil_trli)) ) ) (setq sil_trli (reverse sil_trli) sil_z 0 ) (apply 'append (mapcar '(lambda (P / z) (setq sil_z (1+ sil_z)) (cond ((and (= sil_z (length sil_trli)) (= sil_z 1) ) (list (substr sil_str 1 (1- P)) (substr sil_str (1+ P)) ) ) ((= sil_z 1) (list (substr sil_str 1 (1- P))) ) ((= sil_z (length sil_trli)) (list (substr sil_str (setq z (1+ (nth (- sil_z 2) sil_trli))) (- P z) ) (substr sil_str (1+ P)) ) ) (T (list (substr sil_str (setq z (1+ (nth (- sil_z 2) sil_trli))) (- P z) ) ) ) ) ) sil_trli ) ) ) ) )