Funkce pro rychlou změnu průhlednosti pozadí Mtextu a Mulileaderu

Kategorie » téma: AutoCAD

07.11.2011 12.10 | Jan Panoch | Komentáře: 0 komentářů | Přečteno: 11040x

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:

 

https://skydrive.live.com/embedicon.aspx/.Public/ODCL/background.lsp?cid=2e0623b4c889d54f&sc=documents

Komentáře:

Tento článek zatím neobsahuje žádné komentáře.

Přidat komentář

 *
 *
 
 *

*) Povinné položky jsou označeny hvězdičkou.