Code:
(defun c:acadt-reakhbem () (vl-load-com)
(if (not *acadt-hbem*)
(setq *acadt-hbem* (vlr-acdb-reactor *acadt-hbem*
'((:vlr-objectAppended . acadt-hochbem)
(:vlr-objectModified . acadt-hochbem)))))
(princ)
)
;-------
(defun acadt-hochbem (reactor acadt-objekt / )
(if (and
(= "DIMENSION" (cdr (assoc 0 (entget (cadr acadt-objekt)))))
(= "AT-BEM" (cdr (assoc 3 (entget (cadr acadt-objekt))))))
(progn
(setq acadt-auswahl (entget (car (cdr acadt-objekt)))
acadt-zahl2 (cdr (assoc 42 acadt-auswahl))
acadt-auswahl (cdr (assoc -1 (entget (tblobjname "BLOCK" (cdr (assoc 2 acadt-auswahl)))))))
(while (/= "MTEXT" (cdr (assoc 0 (entget acadt-auswahl))))
(setq acadt-auswahl (entnext acadt-auswahl)))
(setq acadt-auswahl (entget acadt-auswahl))
(setq acadt-dimzin (getvar "DIMZIN"))
(setvar "DIMZIN" 1)
(if (> acadt-zahl2 0.995)
(progn
(setq acadt-zahl (rtos acadt-zahl2 2 3))
(setq acadt-hochzahl (substr acadt-zahl (strlen acadt-zahl) 1))
(setq acadt-zahl (substr acadt-zahl 1 (1- (strlen acadt-zahl))))
(if (/= "0" acadt-hochzahl)
(setq acadt-bemtext (strcat "\\A1;" acadt-zahl "{\\H0.7x;\\S" acadt-hochzahl "^;}"))
(setq acadt-bemtext (strcat "\\A1;" acadt-zahl)))))
(if (<= acadt-zahl2 0.994)
(progn
(setq acadt-zahl (rtos (* acadt-zahl2 100) 2 1))
(setq acadt-hochzahl (substr acadt-zahl (strlen acadt-zahl) 1))
(setq acadt-zahl (substr acadt-zahl 1 (- (strlen acadt-zahl) 2)))
(if (/= "0" acadt-hochzahl)
(setq acadt-bemtext (strcat "\\A1;" acadt-zahl "{\\H0.7x;\\S" acadt-hochzahl "^;}"))
(setq acadt-bemtext (strcat "\\A1;" acadt-zahl)))))
(setvar "DIMZIN" acadt-dimzin)
(entmod (subst (cons 1 acadt-bemtext) (assoc 1 acadt-auswahl) acadt-auswahl)))
)
)
(c:acadt-reakhbem)