Vytisknout stránku | Zavřít okno

Enter

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=3361
Datum vytištění: 12.kvě.2026 v 13:55


Téma: Enter
Odeslal: Ferdinand
Předmět: Enter
Datum odeslání: 02.lis.2006 v 13:45
Nemohu si vzpomenout:
Jak se napíše v lispu Enter?
Přišel jsem na to, že "" nefunguje všude, proto ten dotaz...
Konkrétní příklad: V lispu na pročištění výkresu od nepotřebného balastu chci volat funkci
DeleteFilters, který požaduje potvrzení Enterem.
V řádku menu to funguje takhle (příkazu DeleteFilters mám přiřazenou zkratku DF):
...
[DF -odstraní filtry hladin]^C^CDF SPACEBAR
...


Průběh na příkazovém řádku:
A./

Command: (C:DeleteFilters) anebo (C:DF)

Name filters to keep (e.g. 'A*,B*')
<Enter> deletes all:
...no a právě nemůžu dostat tam tu automaticky potvrzenou volbu (tj. Enter) po výzvě "<Enter> deletes all:"

B./
Command: (command "DF"  "")
DF Unknown command "DF".  Press F1 for help.

...a zopakuje posledně provedený příkaz

Poznámka:
Hromadně prováděné
(tj. ne pouze v rámci jediného výkresu) lispy acad2004.lsp mám sestavené na následujícím principu:
1. Jsou nadefinována dílčí funkce volaná v rámci lispu (pokud už nejsou v některé "zakufrované" /Startup Suite/ utilitě).
2. Jsou uchovány původní hodnoty proměnných a následně jsou nastaveny na požadovanou hodnotu.
3. Tělo programu začíná
(defun S::STARTUP ()
4. Najde soubory dwg v aktuálním adresáři
(command "_shell" ...
a vytvoří jejich seznam.
5. Výkresy se otvírají v cyklu jeden za druhým (sdi=1) dle tohoto seznamu a ve vlastním výkonném jádru jsou provedena potřebná operace.
6. Na konci n-tého cyklu jsou obnoveny původní hodnoty proměnných a n-tý výkres se uloží.
V praxi to vypadá tak, že výkresy, na které chci aplikovat tutéž utilitu, nakopíruji do pracovního adresáře společně s utilitou (která se musí jmenovat acad2004.lsp), pak do příkazového řádku prohlížeče napíšu ACAD a pak si pohodlně sednu, ev. dám si KitKat...Smile



-------------
-FerTh-



Odpovědi:
Odeslal: Ferdinand
Datum odeslání: 02.lis.2006 v 17:24
Už jsem to našel a pro úplnost píšu:
SPACEBAR
(text "SPACEBAR" + mezera!)


-------------
-FerTh-


Odeslal: Miroslav Harant
Datum odeslání: 03.lis.2006 v 09:00
Ještě jinak v lispu lze i jednodušeji:

^C^C(load "DeleteFilters.vlx") df ;

a příkaz proběhne celý. Wink


-------------
Miroslav Harant
ADT 3.3 / Win 98 SE


Odeslal: Ferdinand
Datum odeslání: 03.lis.2006 v 13:14
No teda Shocked Thumbs%20Up

-------------
-FerTh-



Vytisknout stránku | Zavřít okno