Zobrazit plnou verzi příspěvku: Přepínání stavů viditelnosti dynamického bloku

radimf
06.06.2013, 11:48
Dobrý den.Nevíte, prosím, zda je naprogramovat skritp v lispu, který
při vyvolání a vybrání dynamického bloku přepne jeho stav viditelnosti?
Používám triviální dynamické bloky o max. 3 stavech viditelnosti.Klikat přes myš je velice zdlouhavé.Každý stav jakéhokoliv dynamického bloku by byl označen:1 xxx2 xxx3 xxxTj. skript by vůbec nezajímal přesný název stavu, ale řídil by se podle filtru výběru ČÍSLO*Stavy by se přepínaly cyklicky furt dokola 1-2-3-1-2..., při každém vyvolání fukce.Děkuji za případné reakce.

alfred
06.06.2013, 12:48
Odpověď na Vaši otázku zní asi "Ano, je to možné."Práci s dynamickým blokem můžete vyřešit pomocí ukázkové funkce od Allena Johnsona (viz níže, nebo zde: http://www.cadforum.cz/forum/forum_posts.asp?TID=5120)Funkci použijete takhle:(chgdynprop nazev_vybrane_entity Měněná_vlastnost Nová_hodnota)(entupd nazev_vybrane_entity)Funkce se tedy zjednodušší na výběr a práci s názvem viditelnosti;;----------------------------------------------- -----------------------;; changes a given variable in your block(defun chgdynprop (e propname newval / obj v vval sal tot i)(setq obj (if (= (type e) 'vla-object) e (vlax-ename->vla-object e)))(if (= (vlax-get-property obj 'isdynamicblock) :vlax-true)(progn(setq v (vla-getdynamicblockproperties obj)vval (vlax-variant-value v)sal (vlax-safearray->list vval)tot (length sal)i 0)(while (< i tot)(if (= (vlax-get-property (nth i sal) "PropertyName") propname)(progn(vlax-put-property (nth i sal) "Value" newval)(setq i tot))(setq i (1+ i)))))))

radimf
10.06.2013, 22:37
Dobrý den.Děkuji za bleskovou reakci a velmi užitečný odkaz.Snad si s tím už poradíme.

PetrKonecny
21.06.2013, 22:12
Dobrý den.Měl bych související dotaz:Přepnout na dopředu zvolený název viditelnosti není problém - viz program "chgdynprop". Aktuální stav viditelnosti také přečtu programem "getdynprop". Ale netusím, jak přečíst název následujícího stavu viditelnosti ze seznamu možností nebo alespoň seznam možností viditelnosti. Z programu "tdb" lze vyčíst jaké možnosti viditelnosti jsou, ale neumím z tabulky vyfiltrovat pouze viditelnosti a ty pak následně zpracovat a použít jako vstup do "chgdynprop" pro "newval".Poradíte mi jak zjistit následující stav viditelnosti/nebo seznam možností viditelnosti?Děkuji.