Funkce pro rychlou změnu průhlednosti pozadí Mtextu a Mulileaderu
Kategorie » téma: AutoCAD
07.11.2011 12.10 | | Komentáře: 0 komentářů | Přečteno: 11055x
Jak je již z názvu příspěvku patrné nabízíme v dnešním příspěvku jednoduchou LSP funkci na změnu průhlednosti pozadí entit Mtexttu nebo Multileaderu. Obzvláště u Mtextu vyžaduje změna průhlednosti pozadí u vyšších verzí AutoCADu několikeré kliknutí, kde je třeba vybrat ještě barvu pozadí. Tato funkce nenabízí takové možnosti jako dialog pro nastavení pozadí, ale vychází ze zkušenosti, že nejčastěji se používá pozadí bezbarvé neprůhledné a že se u entit, které průhlednost pozadí umožňují nastavit často průhlednost mění v závislosti na tom, jak do výkresu přibývají další entity, které mohou textové hodnoty překrývat.
Funkce se spouští příkazem ‘bg’ a po jejím zavolání jsme vyzváni k vybrání Mtextu nebo Multileaderu. Po vybrání některé z těchto entit se změní její pozadí z průhledného na neprůhledné nebo naopak – v závislosti na aktuálním nastavení pozadí entity.
(princ „\nFunkce po výběru Mtextu nebo Multileaderu změní průhlednost pozadí těchto entit.”)
(princ „\nFunkce se spustí příkazem ‘bg’“)
(defun c:bg (/ text)
(vl-load-com)
(setq text (vlax-ename->vla-object (car (entsel „\nVyberte Mtext nebo Multileader: „))))
(cond ((= (vla-get-objectname text) „AcDbMLeader“)
(if (= (vla-get-TextBackgroundFill text) :vlax-true)
(vla-put-TextBackgroundFill text :vlax-false)
(vla-put-TextBackgroundFill text :vlax-true)
)
)
((= (vla-get-objectname text) „AcDbMText“)
(if (= (vla-get-BackgroundFill text) :vlax-true)
(vla-put-BackgroundFill text :vlax-false)
(vla-put-BackgroundFill text :vlax-true)
)
)
(t(alert „\nVybraná entita není ani Mtext ani Multileader :-(„))
)
(princ)
)
Jak je vidět ze zdrojového kódu, funkce nejprve zjistí o jaký typ entity se jedná a pak přepíná vlastnost BackgroundFill nebo TextBackgrounFillna hodnotu opačnou, než je právě nastavená (:vlax-true / :vlax-false)
Protože vlastnosti entit ovlivňující průhlednost jejich pozadí se v posledních verzích změnily nedovedu odhadnou v jaké nejstarší verzi AutoCADu lze ještě tuto funkci použít.
LSP funkci si můžete stáhnout zde:
Komentáře:
Tento článek zatím neobsahuje žádné komentáře.