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