Wstęp l
Dlaczego LISP? ............... 2
Układ podręcznika .............. 2
Konwencje opisu ............. 3
Konwencje typograficzne ........... 4
Ostatnie zmiany i rozszerzenia ......... 5
Programowy interfejs do standardowych aplikacji zewnętrznych 6
Programowalne okna dialogowe ......... 7
Rozdział l Podstawy użytkowania AutoLISP-u 9
Typy danych w AutoLISP-ie ....... 9
Symbole ............... 9
Listy ................ 10
Łańcuchy alfanumeryczne .......... 10
Wartości całkowite ............. 10
Wartości rzeczywiste ............ 11
Deskryptory plików ............ 11
Nazwy elementów ............. 11
Zbiory wskazań ............. 11
Procedury i procedury zewnętrzne ........ 12
Konwencje leksykalne ............. 12
Interpreter AutoLISP-u ............. 14
Wyrażenia w AutoLISP-ie ........... 14
Zmienne w AutoLISP-ie ........... 15
Biblioteki i automatyczne wczytywanie definicji funkcji .... 17
Funkcje C'XKX - Definiowanie nowych poleceń AutoCAD-a . 17
Biblioteki funkcji - wczytywanie automatyczne ... 18
Funkcje S::STAKTUP - Automatyczne wykonanie funkcji . 20
Obsługa błędów ............... 21
Rozdział 2 Funkcje ogólnego przeznaczenia 23
Zapytania i polecenia AutoCAD-a .......... 23
Przesyłanie poleceń ............ 23
Oczekiwanie na akcję użytkownika ...... 24
Przesyłanie wskazań punktów do poleceń AutoCAD-a ... 25
Zmienne systemowe i środowiskowe ....... 25
Szukanie pliku ............. 26
Lokalizowanie punktów względem obiektów rysunkowych . 27
Narzędzia geometryczne ........... 28
iii
Funkcja narzędziowa textbox ......... 28
Pobieranie informacji od użytkownika ......... 32
Funkcje (getxxx) pobierające dane od użytkownika ... 32
Sterowanie warunkami działania funkcji pobierających
informacje od użytkownika. ........ 34
Opcje odpowiedzi dla funkcji pobierających dane
od użytkownika ........... 34
Opcje słów kluczowych .......... 35
Dowolne odpowiedzi z klawiatury ....... 36
Konwersje ................ 36
Konwersje łańcuchów alfanumerycznych ..... 37
Jednostki w świecie fizycznym ........ 39
Transformacje układów współrzędnych ........ 39
Sterowanie wyświetlaczem ............ 41
Interakcyjne wyprowadzanie informacji ..... 42
Sterowanie ekranem graficznym i tekstowym .... 44
Sterowanie na niskim poziomie grafiką i danymi wprowadzanymi
przez użytkowanika ............ 44
Kalibrowanie pulpitu graficznego .......... 45
Porównywanie łańcuchów ze znakami uniwersalnymi .... 47
Rozdział 3 Funkcje obsługi zbiorów wskazań, elementów i
tablic symboli 49
Obsługa zbiorów wskazań ............ 49
Listy filtrów dla zbiorów wskazań ....... 51
Znaki uniwersalne w listach filtrujących ..... 53
Filtracja dodatkowych danych elementu ..... 53
Testowanie relacji ........... 53
Logiczne grupowanie testów filtrujących ..... 54
Operowanie na zbiorach wskazań ...... 55
Funkcje operujące na nazwach i danych elementów rysunkowych . 56
Funkcje operujące na nazwach elementów ...... 56
Identyfikatory elementów i ich wykorzystanie . . 57
Kontekst elementu i dane transformacji współrzędnych 58
Funkcje operujące na danych elementów rysunkowych . . 61
Bloki bez nazwy ........... 65
Tworzenie elementów złożonych ....... 65
Funkcje danych elementu i ekran graficzny ..... 67
Uwagi o przetwarzaniu gładkich krzywych sklejanych 68
Uwagi o dodatkowych danych elementu ...... 68
Struktura dodatkowych danych elementu .... 69
Rejestrowanie programu użytkowego ..... 72
Odczytywanie dodatkowych danych elementu ... 72
Dołączanie danych dodatkowych do elementu ... 73
Wykorzystanie pamięci przez dane dodatkowe elementu 74
Identyfikatory w dodatkowych danych elementu . 74
Dostęp do tablic symboli ........ 75
Rozdział 4 Funkcje AutoLISP-u 79
Streszczenie ................ 79
Funkcje AutoLISP-u posiadające odpowiedniki w ADS . . 79
Obsługa funkcji ............ 79
Obsługa błędów ............ 79
Spis Treści
Zapytania i polecenia AutoCAD-a ....... 79
Narzędzia geometryczne ......... 80
Wprowadzanie danych przez użytkownika ..... 80
Konwersje ............... 81
Transformacje układu współrzędnych ...... 81
Kalibrowanie pulpitu graficznego ....... 81
Sterowanie wyświetlaczem ......... 82
Funkcje graficzne niskiego poziomu ...... 82
Badanie zgodności łańcuchów ze znakami uniwersalnymi 83
Zbiory wskazań ............ 83
Obsługa elementów ........... 83
Dodatkowe dane elementu ......... 84
Tablice symboli ............ 84
Funkcje ogólnego przeznaczenia ......... 84
Algebraiczne ............. 84
Obsługa symboli ............ 86
Łańcuchy tekstowe ........... 87
Konwersje ............. 88
Relacje .............. 88
Operacje na listach ........... 89
Obsługa plików ............ 90
Obsługa aplikacji ADS .......... 90
Wyświetlacz ............. 91
Obsługa funkcji ............ 91
Obsługa pamięci ............ 91
Różne ............... 92
Funkcje AutoLISP-u zdefiniowane w ADS ...... 92
Polecenia zdefiniowane w ADS ......... 92
Funkcje programowalnych okien dialogowych ..... 93
Otwieranie i zamykanie plików DCL ...... 93
Otwieranie i zamykanie okien dialogowych .... 93
Inicjowanie wyrażeń akcji lub funkcji zwrotnych ... 93
Obsługa wycinka i atrybutów ........ 93
Ustalanie okien kartotekowych i kartotek rozwijalnych . 94
Tworzenie obrazów ........... 94
Dane specyficzne dla aplikacji ........ 94
Katalog funkcji AutoLISP-u ............ 95
(+ number number ...) ........... 95
(- number [number]...) ........... 95
(* number [number] ...) ........... 95
(/ number [number] ...) ........... 96
(= atom atom ...) ............. 96
(/= atom atom ...) ............. 96
(< atom atom ...) ............. 96
(<= atom atom ...) ............. 97
(> atom atom ...) ............. 97
(>= atom atom ...) ............. 97
(~ number) .............. 98
(1+ number) .............. 98
(l- number) .............. 98
(abs number) .............. 98
(ads) ................ 98
(alert string ...) .............. 99
(alloc number) .............. 99
(and expr ...) .............. 99
Sp;s Treści
(angle ptl pt2) ............. 99
(angtof string [modę]) ........... 100
(angtos angle [mode[precision]]) ....... 100
(append expr ...) ............. 101
(appły function list) ............ 101
(ascii string) ............. 101
(assoc item alist) ............ 102
(atan numi [num2J) ............ 102
(atof string) .............. 103
(atoi string) .............. 103
(atom item) .............. 103
(atoms-famiły format [symiist]) ......... 103
(boole func inti int2 ...) ........... 104
(boundp atom) ............. 105
(car list) ............... 105
(cdrZisf) ............... 106
(caar list), (cadr Zis(), (cddr żis<), (cadar list), itd. . . 106
(chr number) ............. 107
(close file-desc) ............. 107
(command [arguments] ...) .......... 107
(cond (testl resultl ...) ".) .......... 109
(cons new-first-element list) .......... 110
(cos angle) .............. 110
(cvunit ualue from to) ........... 110
(defun sym argument-list expr ...) ........ 111
(distance ptl pt2) ............ 112
(distof string [tryb]) ............ 112
(entdel ename) ............. 113
(entget ename [applist]) .......... 114
(entlast) ............... 117
(entmake [elistJ) ............ 117
Elementy złożone ........... 118
Bloki bez nazwy ........... 119
(entmod elist) ............. 120
(entnext [enameJ) ............ 122
(entsel [prompt]) ............. 122
(entupd ename) ............. 123
(eq exprl expr2) ............. 124
(equal exprl expr2 [fuzzf) .......... 124
(*error* string) ............. 125
(eval expr) .............. 125
(exit) ................ 125
(exp number) ............. 126
(expand number) ............ 126
(expt base power) ............ 126
(fmdfile filename) ............ 126
(fix number) ............. 127
(float number) ............. 127
(foreach reame Zis( ericpr...) .......... 127
(gc) ................ 128
(gcd numi num2) ............ 128
(getangle [pt] [prompt]) .......... 128
(getcorner pt [prompt]) ........... 129
(getdist [pt] [prompt]) ........... 129
(getenv variable-name) .......... 130
Sp/s Treści
(getfiled title difault ext flags) ......... 130
(getint [promptJ) ............. 132
(getkword [prompt]) ........... 133
(getorient [pt] [prompt]) ......... 133
(getpoint [pt] [prompt]) ........... 134
(getreal [prompt]) ............ 135
(getstring [er] [prompt]) ........... 135
(getvar uarname) ............ 136
(graphscr) .............. 136
(grdear) ............... 136
(grdraw from to color [highlight]) ........ 136
(grread [track] [alikeys [curtype]]) ........ 137
(grtext [box text [highlight]]) .......... 140
(grvecs vlist [trans]) ............ 141
(handent handle) ............ 142
(if testexpr thenexpr [elseexpr]) ......... 142
(initget [bits] [string]) ........... 143
Definiowanie słów kluczowych ........ 145
(inters ptl pt2 pt3 pt4 [onseg]) ......... 146
(itoa int) ............... 146
(lambda arguments expr ...) ......... 146
(\astlist) ............... 147
(lengthlist) .............. 147
(list expr ...) .............. 147
(listp item) ............... 148
(load filename [onfailure]) .......... 148
(log number) .............. 149
(logand number number ...) ......... 149
(logior integer ...) . . .' ......... 150
(Ish numi numbits) ............ 150
(mapcar function list l... listn) ......... 150
(max number number ...) ........... 151
(mem) ................ 151
(member expr list) ............ 152
(menucmd string) ............. 152
(min number number ...) ........... 153
(minusp item) .............. 153
(nentsel [prompt]) ............. 153
(nentsełp [prompt] [pt]) ........... 155
(not item) ............... 156
(nth n list) ............... 156
(null item) ............... 157
(numberp item) ............. 157
(open filename modę) ............ 157
(or expr ...) .............. 158
(osnap pt mode-string) ........... 159
pi ................. 159
(polar pt angle distance) ........... 159
(prini [expr [file-desc]]) ........... 159
(princ [expr [file-desc]]) ........... 161
(print [expr [file-desc]]) ........... 161
(progn expr ...) .............. 161
(prompt msg) .............. 161
(quit) ................ 162
(quote expr) .............. 162
Sp/s Treści
VII
(read string) .............. 162
(read-char [file-desc]) ........... 162
(read-line [file-desc) ............ 163
(redraw [ename [modę]]) .......... 163
(regapp application) ............ 164
(rem numi num2 ...) ........... 165
(repeat number expr ...) ........... 165
(reverse list) .............. 165
(rtos number [modę [precision]]) ........ 166
(set sym expr) ............. 166
(setq symi exprl [sym2 expr2] ...) ....... 167
(setvar uarname value) .......... 168
(sin angle) .............. 169
(sqrt number) ............. 169
(ssadd [ename [ss]J) ............ 169
(ssdel ename ss) ............. 169
(ssget [modę] [ptl [pt2J] [pt-list] [filter-listJ) .... 170
Filtry zbiorów wskazań . . . . . . . . . 171
Testowanie relacji ........... 172
Logiczne grupowanie testów filtrujących . . . . 173
(ssiength ss) .............. 174
(ssmemb ename ss) ............ 174
(ssname ss index) ............ 174
(strcase string [which]) ........... 175
(strcat stringi [string2] ...) .......... 175
(str\en [string] ...) ............ 175
(subst newitem olditem list) ......... 175
(substr string start [length]), ......... 176
(tablet code [rowi row2 row3 directionJ) ...... 176
(tblnext table-name [rewindJ) ......... 177
(tbisearch table-name symbol [setnext]) ...... 178
(terpri) ............... 179
(textbox elist) ............. 179
(textpage) .............. 180
(textscr) ............... 180
(tracę function ...) ............ 180
(trans pt from to [dispJ) .......... 180
(type item) .............. 183
(untrace/uracriora ...) ............ 183
(ver) ................ 184
(vmon) ............... 184
(vports) ............... 184
(wcmatch string pattern) .......... 185
(while testexpr expr ...) ........... 187
(write-char code [file-desc]) .......... 187
(write-line string [file-desc]) ......... 188
(xdroom ename) ............. 188
(xdsize list) .............. 188
(xload application [onfailure]) ........ 190
(xunload application [onfailure]) ....... 190
(zerop item) .............. 191
Funkcje AutoLISP-u zdefiniowane w systemie ADS . . . . . 191
(acad_colordlg colornum [flag]) ........ 191
(acad_helpdlg helpfile [topie]) ........ 191
(acad_strlsort list) ............ 192
Sp/s Treści
Polecenia zdefiniowane w systemie ADS ........ 193
(c:gkreskuj pt [ss] [vector])
(c:bhatch pt [ss] [vector]) .............. 193
(c:gplinia pt [ss] [vector])
(c:_bpoly pt [ss] [vector]) .............. 194
(bherrs) ............... 194
(c:psdynam modę)
(c:psdrag modę) ................ 195
(c:pswyp ent pattern [argi] [arg2]] ...)
(c:psfill ent pattern [argi [arg2]] ...) ........... 195
(c:psin filename position scalę)
(c:pswe filename position scalę) ............ 196
Rozdział 5 Zarządzanie pamięcią 197
Zarządzanie pamięcią ............. 197
Obszar węzłów .............. 197
Odzyskiwanie obszaru węzłów ....... 198
Uwagi techniczne ............. 198
Informacja o wykorzystaniu pamięci ...... 199
Obszar łańcuchów alfanumerycznych ...... 199
Przechowywanie symboli ......... 199
Sterowanie przydziałem pamięci ....... 200
Wirtualne stronicowanie funkcji . . . . . . .201
Właściwe techniki programowania .......... 202
Ogólna organizacja kodu programu ........ 203
Komentarze ............. 203
Wcięcia i wyrównywanie tekstu ....... 204
Wskazówki dla programistów ;......... 204
Obsługa błędów ........... 204
Wczytywanie ............ 205
Obsługa języków narodowych ........ 206
Funkcje dostępu do elementów rysunkowych .... 206
Transformacje punktów ......... 206
Konwersje jednostek .......... 206
Dodatek A Funkcje w AutoLISP-ie i w systemie ADS 207
Dodatek B Kody grup DXF 215
Kody grup w kolejności wartości liczbowych . . . . . . .215
Kody grup uporządkowane według rodzaju elementu rysunkowego . 218
Kody grup elementów rysunkowych ........ 219
Kody grup dla Bloków i tablic .......... 226
Dodatek C Kody błędów 233
Dodatek D Komunikaty błędów 239
Błędy programów użytkowych ........... 239
Błędy wewnętrzne .............. 245
Dodatek E Ćwiczenia 247
Określenie zamierzonego celu ........... 247
Spis Treści ix
Rozpoczęcie pracy .............. 248
Wprowadzanie danych wejściowych ......... 249
Kontur drogi ................ 252
Rysowanie płyt ............... 253
Dodanie nowego polecenia do AutoCAD-a ........ 257
Usprawnienie działania polecenia .......... 260
Dodanie okien dialogowych ............ 262
Plik dddroga.dcl - opis w języku DCL ....... 262
Funkcje dla okien dialogowych w AutoLISP-ie - dddroga.lsp . 264
Podsumowanie ............... 267
Dodatek F Kody ASCII
Indeks
269
273
x Spis Treści
Wyszukiwarka
Podobne podstrony:
00 Spis treści, Wstęp, Wprowadzenie00 spis tresci00 spis tresci skryptu00 Spis treści, Przedmowa00 spis tresci wstep00 Spis treści, Wstęp00 Spis treści00 Przedmowa i spis trescidsp spis tresciSpis treści01 Spis treściSpis treściwięcej podobnych podstron