(defun c:MVBEdit(/ MVB BLX_El BLScalx BLScaly BLScalz BLScal) (vl-load-com)(setq BLX nil) (defun REF_END (reatyp befname) (if (wcmatch (car befname) "REFCLOSE") (if BLX (entdel BLX))) (if (wcmatch (car befname) "REFCLOSE") (if BLX (setq BLX nil))) ) ;;Enddefun REF_END (setq MVB (car(entsel "\nBitte MV-BLOCK auswählen :"))) (if ( = (cdr (assoc 0 (entget MVB))) "AEC_MVBLOCK_REF") (progn (if (not *REF_End*) (setq *REF_END* (VLR-Command-Reactor "*REF_END*"'((:vlr-commandEnded . Ref_End)) ))) (command "_.copy" MVB "" "0,0" "0,0") (repeat 2 (command "_.explode" (entlast))) (Setq BLX (entlast) BLX_El (entget BLX)) (Setq BLScalx (cdr (assoc 41 BLX_El)) BLScaly (cdr (assoc 42 BLX_El)) BLScalz (cdr (assoc 43 BLX_El))) (if (or (/= BLScalx BLScaly)(/= BLScalx BLScalz)(/= BLScaly BLScalz)) (setq BLScal (max BLScalx BLScaly BLScalz)) (setq BLScal nil)) (if BLScal (progn (alert "Block ist ungleich skaliert!\n->einheitliche Skalierung \nwird hergestellt.") (setq BLX_El (subst (cons 41 BLScal) (assoc 41 BLX_El) BLX_El) BLX_El (subst (cons 42 BLScal) (assoc 42 BLX_El) BLX_El) BLX_El (subst (cons 43 BLScal) (assoc 43 BLX_El) BLX_El)) (entmod BLX_El) )) (command "_select" BLX "") (sssetfirst nil (ssget "_p")) (command "_-refedit" "OK" "_all" "_y" ));;endprogn (alert "Objekt ist kein MV-Block!")) ;;Endif (princ) ) ;;Enddefun