Vytisknout stránku | Zavřít okno

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.Wink

-------------
-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
Původně odeslal(a) Vladimír Michl 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 ... Smile 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...Confused 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
Původně odeslal(a) Ferdinand 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
Shocked 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...Star
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-



Vytisknout stránku | Zavřít okno