Využití LISPu v příkazové řádce AutoCADu 1.

Kategorie » téma: LISP

07.08.2015 16.06 | Jan Panoch | Komentáře: 0 komentářů | Přečteno: 19427x

V AutoCADu se po léta vyskytuje programovací jazyk AutoLISP a od verze 2000 VisualLISP (šel doinstalovat i do verze R14). Jazyk se dnes již nevyvíjí a z dnešního pohledu má spoustu nevýhod. Jeho obrovskou výhodou ale je, že na jednom řádku vyřešíte to, co v C# na deseti, což souvisí s jeho nedokonalostí.

 

Pro začátek stačí o LISPu vědět jen pár věcí:

- LISP není case sensitive - nerozlišuje tedy velká a malá písmena

- každá funkce musí být uzavřena v závorkách

- LISP používá takzvaný dynamický typový systém. To znamená, že v LISPu není třeba deklarovat datový typ proměnných a že v proměnné mohu mít jednou uloženo celé číslo a pak do ní vložit třeba text.

- pro dekladrování proměnné slouží funkce setq

napišme do příkazové řádky například tuto sekvenci a odešleme ji Enterem:

(setq a 550 b 98)

li1

Tímto řádkem jsme do proměnné "a" uložili hodnotu 550 a do proměnné "b" hodnotu 98. Můžeme si to ověřit zadáme-li do příkazového řádku !a nebo !b

 

li2

Nakresleme si teď nějakou entity a zadejme příkaz pro posun nebo kopírování. Vybereme objekt, vyberme bod (base point), zadejme směr a na výzvu po vzdálenosti místo čísla napišme “!a”. Entita se posune či zkopíruje o 550 jednotek.

 

li3
li4

Vyberme znovu nějakou entitu zadejme příkaz pro rotaci, vyberme střed otáčení a na výzvy po velikosti úhlu zadáme místo číselné hodnoty "!b". Entita se otočí o 98° (jsou-li jako úhlové jednotky nastaveny stupně). Proměnné jsou platné po celou dobu otevření výkresu a můžeme je tedy kdykoliv použít.

li5
li6

 

Nyní napíšeme do příkazového řádku toto:

(setq vzd (getdist "Vyber dva body"))

li7

Na výzvu "Vyber dva body" vybereme dva body a vzdálenost mezi nimi se nám uloží do proměnné vzd. Výzva za getdist není povinná a body můžete vybrat i bez výzvy. Napíšeme-li teď do příkazové řádky !vzd objeví se vzdálenost, která je v této proměnné uložena a tu pak můžeme používat v dalších příkazech. Asi není nutno nějak obšírněji vysvětlovat, že getdist znamená get distance.

 

Jan Panoch

Komentáře:

Tento článek zatím neobsahuje žádné komentáře.

Přidat komentář

 *
 *
 
 *

*) Povinné položky jsou označeny hvězdičkou.