Úvod do programových rozhraní – AutoLISP a Visual LISP, 1. díl
Přehled AutoLISPu a Visual LISPu AutoLISP byl rozšířen o Visual LISP (VLISP), který nabízí integrované vývojové prostředí (IDE), jehož součástí je kompilátor, debuger a ostatní nástroje pro zvýšení pr…
Přehled AutoLISPu a Visual LISPu
AutoLISP byl rozšířen o Visual LISP (VLISP), který nabízí integrované vývojové prostředí (IDE), jehož součástí je kompilátor, debuger a ostatní nástroje pro zvýšení produktivity. VLISP obsahuje nové možnosti a rozšíření jazyka o interakci s objekty prostřednictvím ActiveX. Dále umožňuje AutoLISPu reagovat na události prostřednictvím objektových reaktorů.
Narozdíl od ObjectARX nebo VBA každý dokument otevřený ve vícenásobném návrhovém prostředí (MDE) má vlastní obor názvů a prostředí Visual LISPu. Obor názvů je izolované prostředí, které zajistí, aby funkce AutoLISPu, které jsou specifické pro jeden dokument, neměly konflikty s názvy proměnných, symbolů a hodnot s funkcemi v ostatních dokumentech. Následující kód například nastaví pro symbol a různou hodnotu pro různé dokumenty:
(setq a (getvar „DWGNAME“))
Visual LISP obsahuje mechanismus načítání symbolů a proměnných z jednoho oboru názvů do druhého. Více informací o oborech názvů lze najít v dokumentaci AutoLISP Developer’s Guide (z nabídky Nápověda AutoCADu vyberte položku Nápověda pro vývojáře).
Je mnoho způsobů, jak mohou aplikace nebo funkce AutoLISPu spolupracovat s AutoCADem. Tyto funkce mohou požadovat zadání hodnot uživatelem, přímo používat vestavěné příkazy AutoCADu a měnit nebo vytvářet objekty v databázi výkresu. Vytvořením funkcí AutoLISPu můžete přidat do AutoCADu specifické příkazy. Některé standardní příkazy AutoCADu jsou aplikacemi AutoLISPu.
Visual LISP poskytuje tři možnosti formátu souboru pro aplikace AutoLISPu:
·Načtení souboru LSP (.lsp) – textového souboru ASCII, který obsahuje programový kód AutoLISPu.
·Načtení souboru FAS (.fas) – binární, kompilované verze jednoho programového souboru LSP.
·Načtení souboru VLX (.vlx) – kompilované verze jednoho nebo více souborů LSP nebo DCL (Dialog Control Language).
Poznámka: Podobně jsou pojmenované soubory aplikace AutoLISPu načteny podle jejich časové značky úpravy; pokud neurčíte úplný název souboru, je načten soubor LSP, FAS nebo VLX s poslední časovou značkou (včetně přípony souboru).
Protože AutoCAD načítá kód AutoLISPu přímo, není nutná kompilace programů. Vzhledem k tomu, že Visual LISP obsahuje IDE, můžete zkusit experimentovat s vkládáním kódu přímo na příkazovou řádku, kde také ihned uvidíte výsledky. To dělá z AutoLISPu jednoduchý jazyk pro experimentování bez ohledu na zkušenosti s programováním.
Pokud vás nezajímá psaní aplikací v AutoLISPu, můžete v rámci balení AutoCADu nalézt mnoho užitečných programů. Takové programy jsou také dostupné volně nebo prostřednictvím dalších vývojářů. Znalost načítání a použití těchto programů vám umožní zvýšit produktivitu práce.
Poznámka: Pokud příkazy zadané funkcí AutoLISPu command očekávají zadání, předpokládá se nastavení proměnných PICKADD a PICKAUTO na hodnoty 1 a 0. Tím je zachována kompatibilita s předchozími verzemi AutoCADu (není nutná kontrola nastavení těchto proměnných).
Více informací o programování AutoLISPu nabízí AutoLISP Developer’s Guide a více informací o funkcích AutoLISPu a Visual LISPu nabízí AutoLISP Reference (z nabídky AutoCADu Nápověda vyberte položku Nápověda pro vývojáře). Programy AutoLISPu mohou používat dialogy. Programovatelné dialogy jsou popsány pouze v dokumentaci AutoLISP Developer’s Guide.
Použití aplikací AutoLISPu
Aplikace AutoLISPu jsou uloženy v textových souborech ASCII s příponou .lsp. Tyto soubory mají obvykle úvodní část, která popisuje proceduru, její použití a libovolné specifické pokyny. Úvodní část může také obsahovat komentáře o autorovi a informace ohledně legálního použití. Komentář začíná středníkem (;). Tyto soubory si můžete prohlížet a upravovat v textovém editoru nebo procesoru, který umožňuje ukládání souborů ve formátu ASCII.
Aby bylo možné použít aplikaci AutoLISPu, je nutné ji nejprve načíst. K načtení aplikace můžete použít příkaz
Načtení aplikace pomocí funkce load je stejné jako zadání kódu AutoLISPu na příkazovém řádku. Pokud funkce load skončí úspěšně, zobrazí na příkazovém řádku hodnotu posledního výrazu v souboru. Obvykle to bývá název poslední funkce definované v souboru nebo pokynu pro používání načtené funkce. Pokud funkce load selže, vrátí chybové hlášení AutoLISPu. Selhání funkce load může být způsobeno chybou v aplikaci AutoLISPu nebo zadáním chybného názvu souboru na příkazovém řádku. Syntaxe funkce load je:
(load názevsouboru [onfailure])
Tato syntaxe ukazuje, že funkce load má dva argumenty: názevsouboru, který je vyžadován a onfailure, který je volitelný. Pokud načítáte soubor AutoLISPu na příkazovém řádku, obvykle se používá pouze argument názevsouboru. Následující příklad načte soubor AutoLISPu novýsoubor.lsp.
Příkaz: (load "novýsoubor")
Přípona .lsp není vyžadována. Tento formát funguje s libovolným souborem LSP v aktuální cestě knihovny.
Pokud chcete načíst soubor AutoLISPu, který není v aktuální cestě knihovny, je nutné přidat plnou cestu a název souboru jako argument názevsouboru.
Příkaz: (load "d:/files/morelisp/novýsoubor")
Poznámka: Pokud zadáváte název adresáře, je nutné použít jako oddělovač lomítko (/) nebo dvě zpětná lomítka (\), protože jedno zpětné lomítko má v AutoLISPu speciální význam.