potlačení hlášky
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=4124
Datum vytištění: 22.dub.2026 v 07:29
Téma: potlačení hlášky
Odeslal: Dlouhy
Předmět: potlačení hlášky
Datum odeslání: 02.bře.2007 v 12:08
|
Dobrý den,
mám problém při tvorbě makra. V jedné části zadávám příkaz explode a jelikož rozkládám velké množství bloků vyskakuje mi hláška:
Tato operace rozložení může trvat dlouho.
Výkon lze podstatně zvýšit, pokud bude potlačeno pořadí vykreslování.
Chcete pro tuto operaci potlačit pořadí vykreslování?
Ano Ne
a tím mi plánovaný automat trochu dost kazí.
Dík za radu.
Dlouhý
P.S.: Na pořadí mi nezáleží.
|
Odpovědi:
Odeslal: Ferdinand
Datum odeslání: 02.bře.2007 v 14:11
(C:<jmenofunkce>) _A;
V lispu se napíše: Závorka-dvojtečka-<jmenofunkce>-závorka-mezera-podtržítko-<A>-středník-mezera
------------- -FerTh-
|
Odeslal: Vladimír Michl
Datum odeslání: 02.bře.2007 v 14:19
Tento typ hlášení se dá potlačit zvýšením hodnoty proměnné EXPERT.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: Dlouhy
Datum odeslání: 05.bře.2007 v 08:23
|
Bohužel tato proměnná na to nemá vliv. I když jsem nastavil na 5 hláška trvá.
|
Odeslal: Ferdinand
Datum odeslání: 05.bře.2007 v 08:37
V Helpu pro AutoCAD jsou popsány všechny možnosti nastavení proměnné expert.
------------- -FerTh-
|
Odeslal: Vladimír Michl
Datum odeslání: 05.bře.2007 v 08:37
|
Ta hláška je divná - je to normální příkaz ._EXPLODE ?
Ještě by to šlo ošetřit přes otestování proměnné CMDACTIVE.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: Mantlík
Datum odeslání: 05.bře.2007 v 08:43
Vladimír Michl napsal(a):
Ta hláška je divná - je to normální příkaz ._EXPLODE ?
. |
Mně už se tahle hláška také jednou při běžném explodování objevila
------------- J. Mantlík
|
Odeslal: Dlouhy
Datum odeslání: 05.bře.2007 v 08:52
EXPERT ... měl jsem za to, že čím víc expert tím méně hlášek. Nicméně ani jeden expert hlášku nepotlačí.
CMDACTIVE je rovna 1 (pouze pro čtení)
_EXPLODE ... úplně normální příkaz, ale nad mnoha entitami cca 45tis.
|
Odeslal: Ferdinand
Datum odeslání: 05.bře.2007 v 08:57
Co lze získat s tím otestováním? To pouze zjistíme, jakou má hodnotu sys.prom. cmdactive (která je pouze pro čtení - viz Help).
------------- -FerTh-
|
Odeslal: Vladimír Michl
Datum odeslání: 05.bře.2007 v 09:44
|
U příkazů "s nejistým koncem" se to dá řešit tak, že dokud je CMDACTIVE=1 posílám do příkazové řádky ENTER, nebo "_Yes" nebo něco podobného. Pak je jedno, kolikrát se příkaz zeptá, zda zobrazí potvrzovací hlášku nebo ne, apod.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: Ferdinand
Datum odeslání: 05.bře.2007 v 11:30
Takže např. když po editování před uložením zadám příkaz close tak se mne bude ptát, jestli chci / nechci výkres uložit - já to uložit nechci / chci, ale zároveň nechci, aby se mi ta výzva na disleji zobrazovala (to nevím, jak se může/?/ nastavit...). Bude to psát tu hlášku do př.ř. anebo ji nebude psát vůbec?
------------- -FerTh-
|
Odeslal: Vladimír Michl
Datum odeslání: 05.bře.2007 v 14:20
Nevím, jestli zrovna na CLOSE, ale obecně: nastavení EXPERT pomůže potlačit většinu zvědavých dotazů typu chcete opravdu?, kdežto trik s CMDACTIVE (určený pro makra) zajistí, že i pokud už se takovýto neplánovaný dotaz objeví, nenabourá to probíhající uživatelské makro a to na něj může předdefinovaným způsobem zareagovat.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: Ferdinand
Datum odeslání: 06.bře.2007 v 10:47
Takže - v čem vlastně ten "trik" s cmdactive spočívá?
------------- -FerTh-
|
Odeslal: Vladimír Michl
Datum odeslání: 06.bře.2007 v 11:53
|
Týká se to maker - pokud se příkaz může a nemusí zeptat na otázku typu ano/ne, můžete do makra (např. LISP) dát např. sekvenci:
(while(>(getvar "cmdactive")0)(command "_Y"))
v tomto případě makro odpoví "ANO" na libovolný počet dotazů příkazu.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: Sedláček
Datum odeslání: 06.bře.2007 v 12:51
|
Zkoušel jsem použít CMDACTIVE:
_select \_explode _p;$M=$(if,$(>,$(getvar,cmdactive),0),_Y)
a narazil na jiný problém:
Pokud použiji _explode z příkazové řádky, mohu následně vybrat objekty všemi výběry (Okno, Křížení...)
Pokud však použiji _explode v makru, mohu následně vybrat pouze JEDEN objekt (i na př. řádku je "Vyber objekt" a ne "Vyber objekty":
Příkaz: _select Vyberte objekty: nalezeno: 1
Vyberte objekty:
Příkaz: _explode Vyberte objekt: _p
*Neplatný výběr* Očekává se bod nebo posLední/všE/Skupina
A2002LT
P. Sedláček
|
Odeslal: Ferdinand
Datum odeslání: 08.bře.2007 v 09:53
Zkoušel jsem ... (setq QS5 (ssget "X" (list (cons 0 "insert") (cons 2 NPF_C)))) ... (if QS5 (command "_qsave") (progn (setvar "sdi" 0) (command "_close") (while(>(getvar "cmdactive")0)(command "_Y")) (setvar "sdi" 1) ) ) ... ale takhle to nefunguje - na př.ř. je ... _close _open 2VL_ARIONWLII_PP_RF#3P_PP_VP.dwg Yes or No, please. ; error: Function cancelled
Command: *Cancel*
Command: *Cancel*
Command: *Cancel*
Command: _close Command CLOSE is not available under SDI mode.
------------- -FerTh-
|
Odeslal: Ferdinand
Datum odeslání: 13.bře.2007 v 14:22
Prosím, v čem je chybka? Ví to někdo? I když dám opačný sled tj. ... (if QS5 (command "_qsave") (progn (setvar "sdi" 0) (while(>(getvar "cmdactive")0)(command "_Y")) (command "_close") (setvar "sdi" 1) ) ) ... tak to taky nefung... To mi zase píše: Command: _close Command CLOSE is not available under SDI mode. Proč mi to SDI nenastaví na 0 přesto že je to před příkazem? Pozn.: Takhle mi to dělá v případě, že QS5 je nil. Pokud QS5 existuje, tak vše provede OK.
------------- -FerTh-
|
Odeslal: pavelstyl
Datum odeslání: 14.bře.2007 v 06:05
Ferdinand napsal(a):
Pozn.: Takhle mi to dělá v případě, že QS5 je nil. Pokud QS5 existuje, tak vše provede OK.
|
To je přece jasné. Když je QS5 nil, tak to dělá jenom (command "qsave").
Když QS5 není nil, tak to dělá všechny příkazy uvnitř progn ...
Pavel Štyl
|
Odeslal: Ferdinand
Datum odeslání: 15.bře.2007 v 17:09
takže podmínka má tvar (if QS5 ;když QS5 neexistuje (command "_qsave") ;tak proveď prvně tohle (progn ;a když existuje tak proveď tohle (... ) Já jsem žil v představě, že podmínka je postavena takhle: (if NECO (NECO je splněno/je nenulové -> Akce1) (NECO nesplněno/je nulové -> Akce2), )
------------- -FerTh-
|
Odeslal: pavelstyl
Datum odeslání: 16.bře.2007 v 06:21
|
Aaaaaa, trošku mi to ujelo. Omlouvám se.
Když QS5 existuje, dělá (command "_qsave"), jinak dělá všechny ty příkazy uvnitř (progn ... )
Pavel Štyl
|
Odeslal: Ferdinand
Datum odeslání: 16.bře.2007 v 14:56
Uff, to se mi ul(o)evilo... Ale vracím se k mému původnímu dotazu: co zapříčinilo, že se mi ty příkazy pod (progn...) v tom lispu neprovádí?
------------- -FerTh-
|
|