CAD tip # 13736:
Otázka
Příklad takového bloku ("Lead0") najdete v ukázkovém DWG výkresu FmtBlk.dwg - ke stažení viz Blok 22544. Ten zobrazuje zformátovaný aktuální úhel otočení. Podobně jde použít parametr vzdálenosti, počtu prvků apod. Pro zarovnání výsledného složeného textu by bylo potřeba posouvat polohu textu (např. opět Lookup tabulkou).
Použití dynamického bloku Lead0 pak ilustruje video:
Ve videu je rovněž použit "trik" s automatickou aktualizací hodnoty textového pole (není tedy nutná ruční regenerace výkresu). Na to je využit LISP reaktor, který aktualizaci polí provádí po každé uzlové editaci bloku. Není však vhodný pro větší výkresy (výkon). Pro jeho aktivaci si načtěte následující LISP kód (přes .LSP soubor nebo jeho nakopírováním do příkazového řádku či do ACADDOC.LSP):
;Auto-update block fields after grip edit (vl-load-com) (if (not autoUpFldReactor)(setq autoUpFldReactor (VLR-Command-Reactor nil '((:VLR-commandEnded . autoUpFldCB))))) (princ "\nBlock grip reactor active") (defun autoUpFldCB (reactor objectlist / sset blk) (if (= (car objectlist) "GRIP_STRETCH") (progn (if (setq sset (ssget "_I" '((0 . "INSERT")(2 . "`*U*")))) (setq blk (ssname sset 0)) ) (if blk (vla-SendCommand (vla-get-activedocument (vlax-get-acad-object)) "_UPDATEFIELD ") ) ) ) ) (princ)