Professional Documents
Culture Documents
AutoLISP. Praktyczny Kurs
AutoLISP. Praktyczny Kurs
BvupMJTQ
74
Najefektywniejsz metod nauki jzyka programowania jest pisanie w nim programw. Zdanie to, niewtpliwie prawdziwe, pojawia si w wielu powanych publikacjach dotyczcych nauki programowania. Oprcz pamiciowego opanowania skadni,
cech, zastosowa itd. okrelonego jzyka niezbdna jest rwnie praktyka. Dlatego te
najwyszy czas napisa nasz pierwszy program.
Programy omwione w tym rozdziale
PROG_001.LSP
Zapoznanie z funkcj princ.
PROG_002.LSP
Zapoznanie z funkcj princ.
Modyfikacja programu PROG_001.LSP.
PROG_003.LSP
Zapoznanie z funkcj princ.
Modyfikacja programu PROG_001.LSP.
PROG_004.LSP
Przykad uycia funkcji terpri, setq, getstring oraz princ.
Pobranie informacji z klawiatury i wypisanie jej na ekran.
75
BvupMJTQ!!qsbluzd{oz!lvst
Prosz Ci, Czytelniku, wpisz powysze wyraenie w linii komend AutoCADa (lub
zaaduj program PROG_001.LSP). Wykonanie tego programu bdzie nastpujce:
Command: (load "prog_001")
5/!Phmoz!{bszt!qsphsbnv!x!k{zlv!BvupMJTQ
76
Pierwszy program
w AutoLISPie.
Command:
Znak \n (n jak: new line, czyli: nowa linia), umieszczony w linii powoduje, e
w trakcie wypisywania tekstu na ekranie nastpuje przejcie do nowej linii i dalszy cig
tekstu wypisywany jest poniej.
Sdz, e zauwaye rwnie, e w tej wersji programu nie ma ju echa funkcji princ.
Problem ten rozwizuje linia programu. Wywoanie funkcji princ bez argumentw
powoduje zgrabne zakoczenie funkcji czy programu nie jest wtedy wypisywane
echo poprzedniej instrukcji.
Ewentualna nastpna instrukcja wyprowadzania tekstu zacznie go wyprowadza od
miejsca, w ktrym poprzednia skoczya.
77
BvupMJTQ!!qsbluzd{oz!lvst
Zatem poniszy program PROG_003.LSP
(princ "Pierwszy program \nw AutoLISPie.")
(princ "Koniec.")
(princ)
5/!Phmoz!{bszt!qsphsbnv!x!k{zlv!BvupMJTQ
Omwmy teraz poszczeglne linie programu:
Funkcja terpri powoduje przejcie do nowej linii na ekranie tekstowym. Jest ona
rwnowana instrukcji (princ "\n").
Jeli chcesz troch poeksperymentowa, wpisz ponisz lini bdc raz w ekranie tekstowym, a drugi raz w ekranie graficznym AutoCADa:
Command: (princ"Poczatek")(terpri)(terpri)(terpri)(princ
"Koniec")(princ)
78
79
BvupMJTQ!!qsbluzd{oz!lvst
5/3/2/!Lpnfoubs{f
5/3/2/!Lpnfoubs{f
Ju na pierwszy rzut oka wida, e w programie pojawiy si opisy w ludzkim jzyku.
S to komentarze. Komentarze s tekstami zupenie ignorowanymi przez interpreter, ale
za to s bardzo poyteczne dla programisty. Przypominaj nam one bowiem, co w danym miejscu programu chcielimy zrobi.
W jzyku AutoLISP komentarze mona umieszcza dwojako:
pierwszy sposb to zastosowanie rednika ;. Interpreter AutoLISPu po
napotkaniu takiego znaku ignoruje reszt znakw do koca linijki traktujc je
jako komentarz,
drugi sposb (i tu uwaga wprowadzony od wersji 12 AutoLISPu), to
ograniczenie jakiego tekstu znakami ;| (z lewej) oraz |; (z prawej). Komentarz
taki moe si cign przez wiele linijek np.
;|
Oto przyklad komentarza
wprowadzonego w jezyku
AutoLISP wydanie 12.
|;
5/!Phmoz!{bszt!qsphsbnv!x!k{zlv!BvupMJTQ
7:
81
BvupMJTQ!!qsbluzd{oz!lvst