správce stavů hladin - akt. pro všechny výřezy
Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: AutoCAD
Popis fóra: Otázky kolem aplikací AutoCAD a AutoCAD LT, AutoCAD 360, prohlížečů, DWG a DWF, Design Review, Navisworks, nadstavby, 123D, A360 a cloud Autodesk 360
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=31093
Datum vytištění: 04.kvě.2026 v 05:21
Téma: správce stavů hladin - akt. pro všechny výřezy
Odeslal: Koluch
Předmět: správce stavů hladin - akt. pro všechny výřezy
Datum odeslání: 09.říj.2020 v 09:42
|
Dobrý den, prosím Vás, řeším jeden problém:
Mám 50 rozvržení a v nich vždy jeden výřez (někde je výřez A, někde B a někde C - střídají se mi tyto tři výřezy). V každém výřezu mám zmražené různé hladiny. A pro každý výřez mám nastaveno STAV HLADIN. Když chci přidat novou hladinu a zobrazovat ji jen ve výřezech A, tak musím proklikat všechny rozvržení, prokliknout se do daných výřezů A a přes Správce stavů hladiny dát aktualizovat. A přitom by se mi hodilo, kdyby po klinutí na tlačítko AKTUALIZOVAT ve Správci stavů hladin, se zaktualizovaly všechny výřezy, kde mám daný stav hladiny.
Dá se toto nějak udělat? Abych nemusel po přidání jedné nové hladiny, procházet všechny rozvržení a výřezy? Děkuji.
Lukáš uploads/40779/stav._hlad.pdf" rel="nofollow - uploads/40779/stav._hlad.pdf
|
Odpovědi:
Odeslal: splonk
Datum odeslání: 09.říj.2020 v 12:27
|
Zdravím, asi to není 10% řešení... možná to může být směr, kudy se vydat...
Zkoušel jste "tisknout přes XREFy". Do jednoho DWG kreslíte a do ostatních (např. A, B a C) to připojíte jako externí referenci a potřebné layouty si řešíte tam... Pak by StavHladin mohl platit pro všechny Layouty v DWG-čku (3 typy STavHlad -> 3 DWG) a k tomu by se asi lehce dalo napsat něco, co by je aktualizovalo...
A vůbec, to tisknutí přes Xref otevírá další level možných "vychytávek" při tisku...
------------- JASponza
ACA (AutoCAD) 21, 24 RVT 21, 24
Win 10, 11 x64
|
Odeslal: Koluch
Datum odeslání: 09.říj.2020 v 13:18
|
hmmm tak to už bude vyšší dívčí asi :-(
|
Odeslal: johny
Datum odeslání: 13.říj.2020 v 13:51
|
Můžete zkusit tuto utilitku. Stav hladin se páruje dle názvu hladiny viewportu (výřezu). Updatuje všechny. Jinak má to trochu problém s regenerací, něco se zregeneruje, něco ne. Kdyžtak je třeba manuálně regenerovat.
; příklad použití ; (lsapply "C2" "vykres_rozvrzeni C2")
(vl-load-com)
(defun LSApply (lsname vplayer / s o i b l a) (if (and (or (layerstate-has lsname) (prompt (strcat "\nError: No '" lsname "' layerstate found in the drawing."))) (or (setq s (ssget "_X" (list '(0 . "VIEWPORT") (cons 8 vplayer)))) (prompt (strcat "\nError: No viewport found in '" vplayer "' layer."))) (setq o (getvar 'ctab)) ) (progn (repeat (setq i (sslength s)) (setq e (ssname s (setq i (1- i))) b (cdr (assoc 410 (entget e))) l (if (setq a (assoc b l)) (subst (append a (list e)) a l) (cons (cons b (list e)) l)))) (foreach tab l (setvar 'ctab (car tab)) (foreach vp (cdr tab) (layerstate-restore lsname vp 4))) ; setting: http://help.autodesk.com/view/ACD/2021/ENU/?guid=GUID-84C7195D-12C1-4282-B5EE-8B9D6DDB705A" rel="nofollow - http://help.autodesk.com/view/ACD/2021/ENU/?guid=GUID-84C7195D-12C1-4282-B5EE-8B9D6DDB705A (command "_.REGENALL") (setvar 'ctab o))) (princ) )
|
Odeslal: Koluch
Datum odeslání: 03.lis.2020 v 15:02
|
Johny, prosím Vás, poradíte mi, co mám dále dělat se zdrojovým kódem, který jsme napsal? Děkuji, L.
|
Odeslal: Koluch
Datum odeslání: 12.led.2021 v 11:01
|
Johny, prosím Vás, poradíte mi, co mám dále dělat se zdrojovým kódem, který jste napsal? Děkuji, L.
|
Odeslal: Vladimír Michl
Datum odeslání: 12.led.2021 v 11:30
Je to LISP makro, takže uložit do textového souboru s příponou .LSP, načíst jej do AutoCADu příkazem APLČTI a použít dle naznačeného příkladu.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: Koluch
Datum odeslání: 08.úno.2021 v 15:05
|
Dobrý den, Johny, utilitka mi nefunguje, ani po ruční aktualizaci.
Oba výřezy mám v hladině 0.
Poradíte mi ještě nějak prosím? Děkuji, Lukáš.
|
Odeslal: johny
Datum odeslání: 08.úno.2021 v 17:16
|
https://autode.sk/3rsdOV4" rel="nofollow - https://autode.sk/3rsdOV4 Funguje, přesně jak jsem psal asi před půl rokem. Jen je třeba to občas přeregenerovat aby se to updatovalo. Jediné co se tedy dá zlepšit, je to nechat regen ve všech layoutech.Toť asi vše co mohu pro vás udělat. Jestli se nezadaří, pak nechte ležet.
(vl-load-com)
(defun LSApply (lsname vplayer / s o i b l a) (if (and (or (layerstate-has lsname) (prompt (strcat "\nError: No '" lsname "' layerstate found in the drawing."))) (or (setq s (ssget "_X" (list '(0 . "VIEWPORT") (cons 8 vplayer)))) (prompt (strcat "\nError: No viewport found in '" vplayer "' layer."))) (setq o (getvar 'ctab)) ) (progn (repeat (setq i (sslength s)) (setq e (ssname s (setq i (1- i))) b (cdr (assoc 410 (entget e))) l (if (setq a (assoc b l)) (subst (append a (list e)) a l) (cons (cons b (list e)) l)))) (foreach tab l (setvar 'ctab (car tab)) (foreach vp (cdr tab) (layerstate-restore lsname vp 4) (command "_.regenall"))) ; setting: http://help.autodesk.com/view/ACD/2021/ENU/?guid=GUID-84C7195D-12C1-4282-B5EE-8B9D6DDB705A" rel="nofollow - http://help.autodesk.com/view/ACD/2021/ENU/?guid=GUID-84C7195D-12C1-4282-B5EE-8B9D6DDB705A (setvar 'ctab o))) (princ) )
|
Odeslal: Koluch
Datum odeslání: 09.úno.2021 v 11:07
|
Děkuji Johny, ale pořád mi to nejde.
Posílám na ukázku výkres ve kterém mám dvě rozvržení a každé rozvržení má několik výřezů.
Když do modrého výřezu v Rozvržení1 dokreslím světle modrý 6-ti úhelník - aktualizuji stav hladiny MODRÉ. Poté spustím příkaz _.regenall a nic se nestane. Tady v tom momentě očekávám, že se druhý modrý výřez na Rozvržení1 taky zregeneruje a objeví se tam 2 modré obdélníky, modré kolečko a světle modrý 6-ti úhelník.
Nebo jsem ten autoLISP pochopil špatně?
Děkuji za rady.
Lukáš
uploads/40779/stav_hladin_ve_výřezech.dwg" rel="nofollow - uploads/40779/stav_hladin_ve_výřezech.dwg
|
Odeslal: johny
Datum odeslání: 09.úno.2021 v 11:52
|
@kolouch ten lisp funguje bezchybně - https://autode.sk/3a3gSkB" rel="nofollow - https://autode.sk/3a3gSkB
prvně se prosím vyhledejte a naučte jak lisp vůbec použít, jak jej načíst, jak jej spustit. ten lisp opravdu nefunguje automaticky, musíte jej spustit. třeba tak jak jsem to udělal v prvním videu, nebo ve druhém...
taky se důkladně seznamte s tím jak stavy hladin fungují. jak se dají nastavit, co a jak se aktualizuje.
pak se snažte si život trochu z zjednodušit - ten lisp aktualizuje všechny výřezy dané hladiny ve všech rozvrženích do daného stavu hladin. čili si pro každý stav hladin založte hladinu, optimálně stejného jména jako ten stav hladin a ty hladinu nepoužívejte pro nic jiného.
učte se, zkoušejte a bojujte. já vám víc pomoct nemůžu
|
Odeslal: Koluch
Datum odeslání: 09.úno.2021 v 15:05
|
Moc děkuji Johny, cítím, že jsem blízko :-) - moc děkuji za ta videa, moc si toho vážím. Snad budu mít zítra čas to doladit a udělat bez chyb.
Hezký den.
|
Odeslal: Koluch
Datum odeslání: 10.úno.2021 v 15:07
|
Super Johny, už mi to funguje, moooc děkuji za váš čas.
Teď se ještě naučit, jak zautomatizovat ten příkaz (lsapply "MODRÉ" "Hladina MODRÁ"), abych to nemusel vypisovat.
Hezký den.
Lukáš
|
|