Spis treści Spis treści

Transkrypt

Spis treści Spis treści
Spis treści
1. Wprowadzenie ................................................................................................. 11
1.1 Przyjęte konwencje leksykalne ................................................................. 11
1.2 Pobranie plików z Internetu ...................................................................... 12
1.3 Wstęp ........................................................................................................ 13
1.4 Auto LISP jako język programowania ...................................................... 15
1.4.1 Typ INT – liczba całkowita .............................................................. 15
1.4.2 Typ REAL – liczba rzeczywista ....................................................... 17
1.4.3 Typ STR – łańcuch znaków ............................................................ 18
1.4.4 Typ LIST – lista ............................................................................... 18
1.4.5 Typ SYM – symbol (nazwa zmiennej)............................................. 19
1.4.6 Typ ENAME – nazwa obiektu AutoCAD-a ..................................... 20
1.4.7 Typ FILE – deskryptor pliku ............................................................ 20
1.4.8 Typ PICKSET – zbiór wskazań ....................................................... 21
1.4.9 Typ SUBR lub EXRXSUBR – funkcja standardowa
lub zewnętrzna.................................................................................. 21
1.4.10 Konwencje leksykalne języka .......................................................... 21
1.5 Interpreter AutoLISP-u ............................................................................. 23
1.6 Tworzenie i wykonywanie programów w AutoLISP-ie ........................... 24
1.7 Pojęcie funkcji w języku Visual LISP ...................................................... 26
1.8 Podstawienie – przypisanie wartości do symbolu (zmiennej) .................. 30
2 Funkcje podstawowe ....................................................................................... 33
2.1 Funkcje arytmetyczne ............................................................................... 33
2.1.1 Dodawanie ........................................................................................ 33
2.1.2 Odejmowanie.................................................................................... 34
2.1.3 Mnożenie .......................................................................................... 35
2.1.4 Dzielenie........................................................................................... 35
2.1.5 Inkrementacja ................................................................................... 36
2.1.6 Dekrementacja .................................................................................. 37
2.1.7 Reszta z dzielenia ............................................................................. 38
2.1.8 Największa liczba ............................................................................. 38
2.1.9 Najmniejsza liczba ........................................................................... 39
2.1.10 Pierwiastek kwadratowy................................................................... 39
2.1.11 Potęgowanie ..................................................................................... 40
5
AutoLISP w środowisku VLISP
2.1.12 Wartość absolutna ............................................................................ 40
2.1.13 Potęga liczby e.................................................................................. 41
2.1.14 Logarytm naturalny .......................................................................... 41
2.2 Funkcje relacji ........................................................................................... 43
2.2.1 Porównanie ......................................................................................... 43
2.2.2 Większy niż ........................................................................................ 44
2.2.3 Mniejszy niż ....................................................................................... 45
2.2.4 Nierówny ............................................................................................ 45
2.2.5 Większy równy ................................................................................... 46
2.2.6 Mniejszy równy .................................................................................. 47
2.2.7 Funkcja EQUAL................................................................................. 48
2.2.8 Funkcja EQ ......................................................................................... 48
2.3 Funkcje logiczne ....................................................................................... 49
2.3.1 Suma logiczna (koniunkcja) ............................................................... 50
2.3.2 Różnica logiczna (alternatywa) .......................................................... 50
2.3.3 Negacja logiczna ................................................................................ 51
2.4 Funkcje trygonometryczne ........................................................................ 51
2.4.1 Funkcja sinus ...................................................................................... 51
2.4.2 Funkcja cosinus .................................................................................. 52
2.4.3 Funkcja arcustangens ......................................................................... 52
3 Podstawy obsługi edytora języka VLISP ........................................................ 55
3.1 Wprowadzenie .......................................................................................... 55
3.2 Krótka charakterystyka dostępnych menu ................................................ 58
3.3 Krótka charakterystyka pasków narzędzi................................................. 60
3.4 Krótka charakterystyka okna konsoli ........................................................ 64
3.5 Krótka charakterystyka okna edytora tekstu ............................................. 65
3.6 Ładowanie i wykonywanie programu ....................................................... 66
3.7 Zamykanie okna edytora Visual LISP-u ................................................... 67
4 Funkcje wprowadzania danych z klawiatury ................................................... 69
4.1.1 GETPOINT (pobieranie współrzędnych punktu) ............................... 69
4.1.2 GETINT (wczytywanie liczby całkowitej) ........................................ 70
4.1.3 GETREAL (wczytywanie liczby rzeczywistej) ................................. 70
4.1.4 GETSTRING (wczytywanie łańcucha alfanumerycznego) ............... 71
4.1.5 GETCORNER (wczytywanie współrzędnych punktu) ...................... 72
4.1.6 GETDIST (wczytywanie odległości) ................................................. 72
4.1.7 GETANGLE (wczytywanie kąta) ...................................................... 73
4.1.8 INITGET (filtr danych dla funkcji GETxxxx) ................................... 74
4.1.9 GETKWORD (wybranie słowa kluczowego) .................................... 78
5 Funkcja COMMAND ...................................................................................... 81
5.1.1 COMMAND (przesyła dane do AutoCAD-a) .................................... 81
6
Spis treści
6 Funkcje przetwarzania list ............................................................................... 83
6.1 Najprostsze pozyskiwanie elementów z listy............................................ 83
6.1.1 LIST (tworzenie listy z elementów) ................................................... 83
6.1.2 CAR (uzyskiwanie głowy listy) ......................................................... 84
6.1.3 CDR (uzyskiwanie ogona listy) ......................................................... 85
6.1.4 CAR + CDR (uzyskiwanie kolejnych elementów listy)..................... 85
6.2 Operacje na listach .................................................................................... 90
6.2.1 QUOTE (cytowanie elementu) ........................................................... 90
6.2.2 LAST (ostatni element z listy) ........................................................... 91
6.2.3 NTH (n-ty element listy) .................................................................... 91
6.2.4 REVERSE (odwracanie kolejności listy) ........................................... 92
6.2.5 LENGTH (liczba elementów w liście) ............................................... 92
6.2.6 APPEND (łączenie list) ...................................................................... 93
6.2.7 MEMBER (poszukiwanie sublisty).................................................... 93
6.2.8 CONS (budowanie par kropkowych lub list) ..................................... 94
7 Funkcje pomocnicze ........................................................................................ 97
7.1.1 ANGLE (określenie kąta względem kierunku zero) .......................... 97
7.1.2 DISTANCE (odległość między dwoma punktami) ............................ 99
7.1.3 POLAR (określenie współrzędnych punktu).................................... 100
7.1.4 GETVAR (odczytywanie zmiennej systemowej) ............................ 103
7.1.5 SETVAR (ustawienie nowej wartości zmiennej systemowej) ......... 103
8 Funkcje przetwarzania łańcuchów................................................................. 105
8.1.1 STRCASE (zamiana wszystkich liter na duże lub małe) ................. 105
8.1.2 STRCAT (łączenie łańcuchów)........................................................ 105
8.1.3 STRLEN (określenie długości łańcucha) ......................................... 106
8.1.4 SUBSTR (wybieranie części łańcucha)............................................ 107
8.1.5 WCMATCH (porównywanie łańcuchów) ....................................... 108
9 Funkcje konwersji.......................................................................................... 111
9.1.1 ITOA (liczbę całkowitą na łańcuch)............................................... 111
9.1.2 RTOS (liczba rzeczywista na łańcuch)........................................... 112
9.1.3 ATOF (łańcuch na liczbę rzeczywistą) .......................................... 113
9.1.4 ATOI (łańcuch na liczbę całkowitą)............................................... 115
9.1.5 DISTOF (łańcuch na liczbę rzeczywistą) ....................................... 115
9.1.6 FIX (część całkowita liczby) .......................................................... 116
9.1.7 FLOAT (zamiana na liczbę rzeczywistą) ....................................... 116
9.1.8 ANGTOS (kąt na łańcuch) ............................................................. 117
9.1.9 ANGTOF (łańcuch z kątem na radiany) ........................................ 117
9.1.10 CHR (łańcuch w postaci znaku) ..................................................... 119
9.1.11 ASCII (kod ASCII pierwszego znaku w łańcuchu)........................ 119
9.1.12 Zmienna systemowa DIMZIN........................................................ 119
7
AutoLISP w środowisku VLISP
9.1.13 Zaokrąglanie liczb rzeczywistych .................................................. 120
10 Funkcje warunkowe ..................................................................................... 121
10.1.1 IF (rozgałęzienie programu) ........................................................... 121
10.1.2 PROGN (grupowanie wyrażeń) ..................................................... 122
10.1.3 COND (wielokrotne IF) ................................................................. 123
11 Funkcje obsługi pętli ................................................................................... 127
11.1.1 REPEAT (powtarzanie pętli określoną liczbę razy) ....................... 127
11.1.2 WHILE (powtarzanie pętli do spełnienia warunku) ....................... 129
11.1.3 FOREACH (wartościowanie pętli według listy) ............................ 131
11.1.4 APPLY (wykonanie funkcji na elementach listy) .......................... 132
11.1.5 MAPCAR (wykonanie funkcji z parametrami) .............................. 134
11.1.6 LAMBDA (funkcja anonimowa) ................................................... 136
11.1.7 EXIT lub QUIT (przerwanie pętli programowej)........................... 137
12 Obsługa przekazywania danych .................................................................. 139
12.1.1 FINDFILE (poszukiwanie pliku) ................................................. 140
12.1.2 OPEN (otwieranie pliku) .............................................................. 141
12.1.3 CLOSE (zamykanie otwartego pliku) .......................................... 142
12.1.4 PROMPT (wysłanie komunikatu) ................................................ 143
12.1.5 PRIN1 (bez interpretacji znaków sterujących) ............................. 143
12.1.6 PRINC (z interpretacją znaków sterujących) ............................... 144
12.1.7 PRINT (bez interpretacji znaków sterujących) ........................... 145
12.1.8 WRITE-LINE (zapisywanie linii) ................................................ 145
12.1.9 WRITE-CHAR (zapisywanie znaku) ........................................... 147
12.1.10 READ-LINE (czyta linię tekstu) .................................................. 147
12.1.11 READ-CHAR (czyta znak) .......................................................... 147
12.1.12 READ (łańcuch bez ograniczników) ............................................ 148
13 Funkcje obsługi bazy danych rysunku ......................................................... 153
13.1 Baza danych rysunku ............................................................................ 153
13.1.1 ENTNEXT (nazwa obiektu w rysunku) ....................................... 154
13.1.2 ENTLAST (nazwa ostatniego elementu w rysunku).................... 155
13.1.3 ENTSEL (nazwa wskazanego elementu w rysunku) ................... 155
13.1.4 ENTDEL (usuwanie elementu) .................................................... 156
13.1.5 REDRAW (sterowanie widocznością obiektu) ............................ 156
13.1.6 ENTGET (lista opisująca obiekt) ................................................. 157
13.1.7 ASSOC (pozyskiwanie elementów) ............................................. 157
13.1.8 CONS (tworzenie pary kropkowej lub listy) ................................ 158
13.1.9 SUBST (zamiana elementów w liście asocjacji) .......................... 159
13.1.10 ENTMOD (modyfikowanie obiektu) ........................................... 160
14 Funkcje obsługi zbiorów wskazań ............................................................... 161
14.1.1 SSGET (tworzenie zbioru wskazań) .............................................. 161
8
Spis treści
14.1.2 SSLENGTH (liczba elementów w zbiorze wskazań)..................... 163
14.1.3 SSADD (dodawanie elementów do zbioru wskazań)..................... 164
14.1.4 SSDEL (usuwanie elementu ze zbioru wskazań) ........................... 165
14.1.5 SSMEMB (sprawdzenie czy występuje element w zbiorze) .......... 165
14.1.6 SSNAME (wybór elementu ze zbioru wskazań) ........................... 166
15 Tworzenie programu.................................................................................... 167
15.1 Określenie celu i sposobu osiągnięcia celu .......................................... 167
15.2 Wykorzystanie okna konsoli ................................................................. 168
16 Korzystanie z okna edytora tekstowego ...................................................... 173
16.1.1 Tworzenie plików zapasowych i ich odzyskiwanie ...................... 173
16.1.2 Pisanie tekstu .................................................................................. 174
16.1.3 Zaznaczanie tekstu ......................................................................... 175
16.1.4 Usuwanie tekstu ............................................................................. 176
16.1.5 Edytowanie tekstu .......................................................................... 177
16.2 Narzędzia formatowania kodu .............................................................. 179
16.3 Sprawdzanie błędów syntaktycznych ................................................... 181
16.3.1 Sprawdzanie parzystości nawiasów ............................................... 182
16.3.2 Oznaczanie tekstu kolorami ........................................................... 184
16.3.3 Wymuszenie sprawdzenia formalnego ........................................... 185
17 Narzędzia śledzenia i poprawiania programu .............................................. 189
17.1 Możliwości śledzenia i poprawiania programu ................................... 189
17.2 Kroczenie przez program .................................................................... 191
17.3 Wykorzystanie okna Czujka ................................................................ 197
17.4 Przemieszczanie się między punktami przerwań ............................... 201
17.5 Automatyczne kroczenie przez program ............................................ 203
17.6 Inne możliwości sterowania wykonywaniem programu .................... 205
17.7 Rodzaje pętli przerwań ........................................................................ 207
17.8 Narzędzia sprawdzania danych ........................................................... 209
17.9 Korzystanie z narzędzia Stos śledzenia ............................................... 210
17.10 Wykorzystanie narzędzia Obsługa symbolu ....................................... 222
17.11 Wykorzystanie narzędzia Sprawdź ..................................................... 224
18 Przeglądanie bazy danych rysunku .............................................................. 231
18.1 Obiekty graficzne rysunku .................................................................... 232
18.2 Tablice rysunku ..................................................................................... 233
18.3 Bloki w rysunku .................................................................................... 235
18.4 Zbiory wskazań ..................................................................................... 237
18.5 Dane dodatkowe.................................................................................... 239
19 Przeglądanie plików DCL............................................................................ 243
20 Przykłady ..................................................................................................... 247
20.1 Funkcja ZINT ........................................................................................ 247
9
AutoLISP w środowisku VLISP
20.2 Funkcja GWIAZDA .............................................................................. 250
20.3 Rysunek dokumentacji .......................................................................... 255
20.3.1 Funkcja główna .............................................................................. 259
20.3.2 Funkcja (CZYTAJDANE) ............................................................. 260
20.3.3 Funkcja (FORMAT_SKALA) ....................................................... 263
20.3.4 Funkcja (RYSUJ) ........................................................................... 268
21 Zakończenie ................................................................................................. 279
22 Literatura ..................................................................................................... 281
23 Skorowidz .................................................................................................... 282
10