AutoLISP. Praktyczny kurs - Helion
ISBN: 83-86718-51-X
stron: 864, Format: B5, okładka: miękka
Data wydania: 2011-09-14
Księgarnia: Helion
Cena książki: 84,00 zł
Niniejsza książka napisana jest z myślą o wszystkich użytkownikach AutoCADa, którzy pragną usprawnić swoje działania za pomocą AutoLISPu - języka służącego do programowania AutoCADa. Oparta jest na założeniu, że prawdziwa nauka opiera się na przykładach. W książce, oprócz "suchej" teorii zawarta jest ogromna liczba przykładów, z których wiele nadaje się do natychmiastowego wykorzystania przez konstruktora, programistę, mechanika czy architekta. Każdy program jest szczegółowo omówiony oraz pokazany w postaci listingu. Do książki jest dołączona dyskietka zawierająca teksty wszystkich opisanych programów.
- 127 użytecznych programów w AutoLISP-ie
- pełna biblioteka funkcji AutoLISP-u
- biblioteka kodów ASCII
- kody i komunikaty błędów zwracane przez AutoLISP
- kody grup DXF
- pełny opis zmiennych systemowych AutoCAD-a
- instrukcje podstawiania
- operatory: arytmetyczne, porównania oraz logiczne
- pętle i konstrukcje sterujące
- zastosowanie funkcji COMMAND w programach
- działania na listach
- działania na łańcuchach
- definiowanie własnych funkcji
- pobieranie informacji od użytkownika
- obsługa zbiorów wskazań
- obsługa plików tekstowych
Osoby które kupowały "AutoLISP. Praktyczny kurs", wybierały także:
- AutoCAD 2020. Kurs video. Podstawy zastosowania programu w architekturze i budownictwie 119,00 zł, (53,55 zł -55%)
- AutoCAD LT 2015. Kurs video. Poziom pierwszy. Podstawy projektowania 2D 69,00 zł, (31,05 zł -55%)
- AutoCAD LT 2015. Kurs video. Poziom drugi. Zaawansowane projektowanie 2D 99,00 zł, (44,55 zł -55%)
- AutoCAD 2024 PL. Pierwsze kroki 57,00 zł, (28,50 zł -50%)
- AutoCAD 2023 PL. Pierwsze kroki 49,00 zł, (24,50 zł -50%)
Spis treści
AutoLISP. Praktyczny kurs -- spis treści
Od Autora
- Dla kogo jest ta książka?
- Dlaczego ta ksiażka jest taka gruba?
- Co znajduje się w tej książce?
- Co znajduje się na dyskietce?
- Czego będziesz potrzebował?
Rozdział 1. Ogólna charakterystyka języka AutoLISP
- 1.1. Kompilatory a interpretery
- 1.2. AutoLISP jako język
- 1.3. Dlaczego LISP?
- 1.4. Typy danych w AutoLISPie
- 1.5. Symbole predefiniowane
- 1.6. Konwencje leksykalne
- 1.7. Zmienne w AutoLISPie
- 1.8. Wyrażenia AutoLISPu
- 1.9. Funkcje
- 1.10. Programy
- 1.11. Komentarze
- 1.12. Sposób pracy interpretera AutoLISPu
- 1.13. Obsługa błędów
Rozdział 2. Zanim zaczniemy programować
- 2.1. Przystosowanie edytora tekstu do pracy z poziomu programu AutoCAD
- 2.1.1. Nazwa polecenia
- 2.1.2. Polecenie SO (systemu operacyjnego)
- 2.1.3. Obszar zwalnianej pamięci
- 2.1.4. Zgłoszenie
- 2.1.5. Kod powrotu
- 2.2. Kilka najważniejszych uwag na temat programowania w AutoLISPie
- 2.3. Ładowanie i uruchamianie programów w AutoLISPie
- 2.3.1. Interakcyjne ładowanie programów w AutoLISPie
- 2.3.2. Ładowanie programów w AutoLISPie za pomocą pliku ACAD.LSP
- 2.3.3. Ładowanie programów w AutoLISPie za pomocą okna dialogowego LOAD AUTOLISP AND ADS FILES
- 2.3.4. Funkcja S::STARTUP
- 2.3.5. Uruchamianie programów w AutoLISPie
- Podsumowanie
Rozdział 3. Zrozumienie interpretera AutoLISPu
- 3.1. Atomy
- 3.1.1. Atom cyfrowy
- 3.1.2. Atom literowy - identyfikator zmiennej
- 3.2. Listy
- Podsumowanie
Rozdział 4. Ogólny zarys programu w języku AutoLISP
- 4.1. Pierwszy program
- 4.2. Drugi program
- 4.2.1. Komentarze
- Podsumowanie
Rozdział 5. Instrukcje podstawiania
- 5.1. Instrukcja podstawiania SETQ
- 5.1.1. Przypisanie liczb całkowitych i rzeczywistych
- 5.1.2. Przypisanie stałych znakowych
- 5.1.3. Przypisanie stałych tekstowych (łańcuchów znaków)
- 5.1.4. Przypisanie list
- 5.2. Instrukcja podstawiania SET
- 5.2.1. Zwrot wartości przez funkcję pod podanym identyfikatorem
- 5.2.2. Dynamiczne tworzenie zmiennych
- Podsumowanie
Rozdział 6. Operatory: arytmetyczne, porównania oraz logiczne
- 6.1. Prawda i fałsz w języku AutoLISP
- 6.2. Operatory arytmetyczne
- 6.2.1. Standardowe operatory arytmetyczne
- 6.2.2. Operator REM
- 6.2.3. Operatory inkrementacji i dekrementacji
- 6.3. Operatory porównania
- 6.3.1. Standardowe operatory porównania (występujące również w innych językach programowania)
- 6.3.2. Operatory porównania charakterystyczne dla języka AutoLISP
- (atom item)
- (boundp atom)
- (eq expr1 expr2)
- (equal expr1 expr2 [fuzz] )
- (listp item)
- (minusp item)
- (null item)
- (numberp item)
- (zerop item)
- 6.4. Operatory logiczne
- 6.4.1. Operatory sumy logicznej OR i iloczynu logicznego AND
- 6.4.2. Operator negacji NOT
- Podsumowanie
Rozdział 7. Operatory konwersji
- (angtof string [mode])
- (angtos angle [mode [precision]])
- (ascii string)
- (atof string)
- (atoi string)
- (chr number)
- (cvunit value from to)
- (distof string [mode])
- (fix number)
- (float number)
- (itoa int)
- (rtos number [mode [precision]])
- Podsumowanie
Rozdział 8. Pętle i konstrukcje sterujące
- 8.1. Instrukcja warunkowa IF
- 8.1.1. Instrukcje proste i złożone
- 8.1.2. Zagnieżdżone instrukcje IF
- 8.2. Pętla WHILE
- 8.2.1. Zagnieżdżone instrukcje WHILE
- 8.3. Instrukcja COND - wybór wielowariantowy
- 8.4. Pętla REPEAT
- 8.4.1. Zagnieżdżone instrukcje REPEAT
- 8.5. Realizacja pętli FOR w AutoLISPie
- 8.5.1. Zagnieżdżone instrukcje FOR
- 8.6. Realizacja pętli DO_WHILE w AutoLISPie
- 8.7. Nawiasy w instrukcjach sterujących
- Podsumowanie
Rozdział 9. Funkcja COMMAND
- 9.1. Oczekiwanie na akcję użytkownika
- 9.2. Przesyłanie wskazań punktów do poleceń AutoCADa
- Podsumowanie
Rozdział 10. Działania na listach
- 10.1. Tworzenie listy
- 10.1.1. Tworzenie listy za pomocą funkcji LIST
- 10.1.2. Tworzenie listy za pomocą funkcji CONS
- 10.1.3. Funkcja APPEND - umieszczanie elementów na liście już utworzonej
- 10.2. Wyszukiwanie i zamiana elementów na liście
- 10.2.1. Określanie długości listy
- 10.2.2. Wyszukiwanie elementu listy o zadanym kluczu
- 10.2.3. Wyszukiwanie n-tego elementu listy
- 10.2.4. Dane ostatniego elementu listy
- 10.2.5. Funkcje CAR i CDR oraz ich kombinacje
- 10.2.6. Zamiana elementów na liście
- 10.2.7. Odwracanie kolejności elementów na liście
- 10.2.8. Zwrot podlisty od danego elementu
- 10.2.9. Wyszukiwanie minimum i maksimum w podanej liście
- 10.2.10. Ustalenie pozycji elementu na liście
- 10.2.11. Wyświetlenie wybranych elementów z listy
- 10.3. Kasowanie elementów na liście
- 10.3.1. Usuwanie wybranego elementu na podanej liście
- 10.3.2. Usuwanie wybranej grupy elementów na podanej liście
- 10.3.3. Usuwanie elementów listy o podanych numerach (indeksach)
- 10.4. Sortowanie listy
- 10.5. Lista DXF opisu elementów
- 10.5.1. Dostęp do listy DXF
- 10.5.2. Modyfikacja elementu
- 10.5.2.1. Modyfikacja elementu w wykorzystaniem funkcji entmod
- 10.5.2.2. Modyfikacja elementu z wykorzystaniem funkcji entmod i entupd
- Podsumowanie
Rozdział 11. Działania na łańcuchach
- 11.1. Standardowe funkcje AutoLISPu do obsługi łańcuchów
- (strcase string [which])
- (strcat string1 [string2] ...)
- (strlen [string] ...)
- (substr string start [length])
- (wcmatch string pattern)
- 11.2. Funkcje klasyfikujące poszczególne znaki
- 11.3. Funkcje wyznaczające porządek leksykograficzny znaków
- 11.4. Pozostałe funkcje do obróbki łańcuchów
- Podsumowanie
Rozdział 12. Definiowanie własnych funkcji
- 12.1. Metoda projektowania "od ogółu do szczegółu" oraz "od szczegółu do ogółu" - pojęcie funkcji
- 12.2. Funkcja DEFUN
- 12.3. Argumenty funkcji - sposób ich pobierania i przekazywania, konwersacyjne (interakcyjne) i argumentowe wywoływanie funkcji
- Metoda 1.
- Metoda 2
- 12.3.1. Konwersacyjne (interakcyjne) wywołanie funkcji
- 12.3.2. Argumentowe wywołanie funkcji
- 12.3.3. Połączenie konwersacyjnego i argumentowego wywołania funkcji
- 12.4. Sposoby zwrotu rezultatu (rezultatów) działania funkcji
- 12.4.1. Zwrot pojedynczej wartości działania funkcji
- 12.4.2. Zwrot dwóch lub więcej wartości działania funkcji
- 12.5. Zmienne globalne i lokalne - zasięg zmiennej w programie
- 12.6. Funkcje typu C:XXX - definiowanie nowych poleceń AutoCADa
- 12.7. Funkcje rekurencyjne
- 12.8. Definiowanie funkcji wewnątrz innych funkcji
- 12.9. Funkcje LAMBDA, APPLY, FOREACH i MAPCAR
- 12.10. Budowa, zasada działania i wykorzystanie listy-funkcji
- 12.10.1. Realizacja pętli FOR
- 12.10.2. Realizacja pętli DO_WHILE
- 12.10.3. Wielolinia przebiegająca przez zadane punkty
- 12.10.4. Dynamiczna konstrukcja argumentów funkcji INITGET
- 12.11. Wywoływanie funkcji użytkownika z menu AutoCADa
- Podsumowanie
Rozdział 13. Pobieranie informacji od użytkownika
- 13.1. Funkcje typu GETXXX
- 13.2. Funkcja INITGET
- 13.2.1. Opcje odpowiedzi dla funkcji pobierających dane od użytkownika
- 13.2.2. Opcje słów kluczowych
- 13.3. Wartości domyślne w funkcjach typu GETXXX
- 13.4. Dowolne odpowiedzi z klawiatury
- 13.5. Wywołanie HELPu z funkcji typu GETXXX
- Podsumowanie
Rozdział 14. Tworzenie i operacje na zbiorach wyboru
- 14.1. Tworzenie zbiorów wyboru za pomocą funkcji SSGET
- 14.1.1. Listy filtrów dla zbiorów wskazań
- 14.1.2. Znaki uniwersalne w listach filtrujących
- 14.1.3. Testowanie relacji
- 14.1.4. Logiczne grupowanie testów filtrujących
- RYSUNEK_PROTOTYPOWY
- UTWORZ_ZBIORY_WYBORU
- WYPISZ_LISTY_DXF
- ZWOLNIJ_ZBIORY_WYBORU
- 14.2. Operacje na zbiorach wyboru
- RYSUNEK_PROTOTYPOWY
- OPERACJE_NA_ZBIORACH_WSKAZAN
- Podsumowanie
Rozdział 15. Obsługa plików tekstowych w AutoLISPie
- 15.1. Plik jako nośnik informacji
- 15.2. Pobieranie nazwy pliku
- 15.2.1. Pobieranie nazwy pliku za pomocą funkcji GETSTRING
- 15.2.2. Pobieranie nazwy pliku za pomocą funkcji GETFILED
- 15.2.3. Sprawdzanie istnienia pliku za pomocą funkcji FINDFILE
- 15.2.4. Funkcja RETURN_PATH - rozszerzenie scieżki poszukiwania plików
- 15.3. Otwieranie i zamykanie pliku - tryby otwarcia pliku, funkcje wprowadzania i wyprowadzania
- 15.4. Zapis danych do pliku
- 15.4.1. Zapis danych pojedynczo znak po znaku
- 15.4.2. Zapis danych łańcuchami
- CZEKAJ
- FORMAT_VALUE
- UTWORZ_LISTY_DANYCH
- ZAPISZ_MODUL_CONTROL
- ZAPISZ_WEZLY
- ZAPISZ_ELEMENTY
- ZAPISZ_ZBIOR_DANYCH
- 15.4.3. Zapis danych w postaci listy
- 15.4.4. Formatowany zapis danych
- Znaki typu
- Specyfikator precyzji
- Specyfikator szerokości
- Flagi
- 15.4.5. Porównanie zapisu do pliku przykładowych linii z wykorzystaniem funkcji PRINC, PRIN1, WRITE-LINE oraz PRINTF
- PRINC
- PRIN1
- WRITE-LINE
- FPRINTF
- 15.4.6. Zapis danych w postaci rekordów
- 15.5. Odczyt danych z pliku
- 15.5.1. Odczyt danych pojedynczo znak po znaku
- 15.5.2. Odczyt danych łańcuchami
- FOR
- RYSUNEK_PROTOTYPOWY
- ZMIENNE_GLOBALNE
- ODBIERZ_ZBIOR_DANYCH
- CZYTAJ_ZBIOR_DANYCH
- CZYTAJ_MODUL_NODES
- CZYTAJ_MODUL_ELEMENTS
- OBSZAR_MODELU
- MIN_MAX_NODES
- GRANICE
- ODBIERZ_WEZLY
- ODBIERZ_ELEMENTY
- USTAW_MODEMACRO
- ODBIERZ_ELEMENT_2W
- ODBIERZ_ELEMENT_3W
- ODBIERZ_ELEMENT_4W
- DOPISZ_NUMER_ELEMENTU
- C:TEST
- RYSUNEK_PROTOTYPOWY
- ZMIENNE_GLOBALNE
- ODBIERZ_ZBIOR_DANYCH
- CZYTAJ_ZBIOR_DANYCH
- CZYTAJ_MODUL_NODES
- CZYTAJ_MODUL_ELEMENTS
- OBSZAR_MODELU
- MIN_MAX_NODES
- GRANICE
- ODBIERZ_WEZLY
- ODBIERZ_ELEMENTY
- USTAW_MODEMACRO
- ODBIERZ_ELEMENT_2W
- ODBIERZ_ELEMENT_3W
- ODBIERZ_ELEMENT_4W
- DOPISZ_NUMER_ELEMENTU
- C:TEST
- 15.5.3. Odczyt danych w postaci listy
- 15.5.4. Formatowany odczyt danych
- PAUSE_1
- ERROR_SSCANF
- CHECK_ARGUMENT_TYPE
- READ_LISP_DATA
- CHECK_ARGUMENT_FORMAT
- 15.5.5. Odczyt danych w postaci rekordów
- 15.6. Dodawanie danych do pliku
- 15.7. Wydruk pliku na drukarkę lub ekran (monitor)
- WYSWIETL_PLIK
- DRUKUJ_PLIK
- Podsumowanie
Dodatek A. Spis funkcji AutoLISPu
- Funkcje AutoLISPu posiadające odpowiedniki w ADS
- Obsługa funkcji
- Obsługa błędów
- Zapytania i polecenia AutoCADa
- Narzędzia geometryczne
- Wprowadzanie danych przez użytkownika
- Konwersje
- Transformacje układu współrzędnych
- Kalibrowanie pulpitu graficznego
- Sterowanie wyświetlaczem
- Funkcje graficzne niskiego poziomu
- Badanie zgodności łańcuchów ze znakami uniwersalnymi
- Zbiory wskazań
- Obsługa elementów
- Dodatkowe dane elementu
- Tablice symboli
- Funkcje ogólnego przeznaczenia
- Algebraiczne
- Obsługa symboli
- Łańcuchy tekstowe
- Konwersje
- Relacje
- Operacje na listach
- Obsługa plików
- Obsługa aplikacji ADS
- Wyświetlacz
- Obsługa funkcji
- Obsługa pamięci
- Różne
- Funkcje AutoLISPu zdefiniowane w ADS
- Polecenia zdefiniowane w ADS
- Funkcje programowalnych okien dialogowych
- Otwieranie i zamykanie plików DCL
- Otwieranie i zamykanie okien dialogowych
- Inicjowanie wyrażeń akcji lub funkcji zwrotnych
- Obsługa wycinka atrybutów
- Ustalanie okien kartotekowych i kartotek rozwijalnych
- Tworzenie obrazów
- Dane specyficzne dla aplikacji
Dodatek B. Katalog funkcji AutoLISPu
- (+ number number )
- (- number [number] )
- (* number [number] )
- (/ number [number] )
- (= atom atom )
- (/= atom atom )
- (< atom atom )
- (<= atom atom )
- (> atom atom )
- (>= atom atom )
- (~ number)
- (1+ number)
- (1- number)
- (abs number)
- (ads)
- (alert string)
- (alloc number)
- (and expr )
- (angle pt1 pt2)
- (angtof string [mode] )
- (angtos angle [mode [precision]])
- (append expr )
- (apply function list)
- (ascii string)
- (assoc item alist)
- (atan num1 [num2])
- (atof string)
- (atoi string)
- (atom item)
- (atoms-family format [symlist])
- (boole func int1 int2 )
- (boundp atom)
- (car list)
- (cdr list)
- (caar list), (cadr list), (cddr list), (cadar list), itd.
- (chr number)
- (close file-desc)
- (command [arguments] )
- (cond (test1 result1 ) )
- (cons new-first-element list )
- (cos angle)
- (cvunit value from to)
- (defun sym argument-list expr )
- (distance pt1 pt2)
- (distof string [tryb])
- (entdel ename)
- (entget ename [applist] )
- (entlast)
- (entmake [elist])
- (entmod elist)
- (entnext [ename])
- (entsel [prompt])
- (entupd ename)
- (eq expr1 expr2)
- (equal expr1 expr2 [fuzz])
- (*error* string)
- (eval expr)
- (exit)
- (exp number)
- (expand number)
- (expt base power )
- (findfile filename)
- (fix number)
- (float number)
- (foreach name list expr )
- (gc)
- (gcd num1 num2)
- (getangle [pt] [prompt])
- (getcorner pt [prompt])
- (getdist [pt] [prompt])
- (getenv variable-name)
- (getfiled title default ext falgs)
- (getint [prompt])
- (getkword [prompt])
- (getorient [pt] [prompt])
- (getpoint [pt] [prompt])
- (getreal [prompt])
- (getstring [cr] [prompt])
- (getvar varname)
- (graphscr)
- (grclear)
- (grdraw from to color [highlight])
- (grread [track] [allkeys [curtype]])
- (grtext [box text [highlight]])
- (grvecs vlist [trans])
- (handent handle)
- (if testexpr thenexpr [elseexpr])
- (initget [bits] [string])
- Definiowanie słów kluczowych
- (inters pt1 pt2 pt3 pt4 [onseg])
- (itoa int)
- (lambda arguments expr )
- (last list)
- (length list)
- (list expr )
- (listp item)
- (load filename [onfailure])
- (log number)
- (logand number number ...)
- (logior integer ...)
- (lsh num1 numbits)
- (mapcar function list1 listn)
- (max number number ...)
- (mem)
- (member expr list)
- (menucmd string)
- (min number number )
- (minusp item)
- (nentsel [prompt])
- (nentselp [prompt] [pt])
- (not item)
- (nth n list)
- (null item)
- (numberp item)
- (open filename mode)
- (or expr )
- (osnap pt mode-string)
- pi
- (polar pt angle distance)
- (prin1 [expr [file-desc]])
- (princ [expr [file-desc]])
- (print [expr [file-desc]])
- (progn expr )
- (prompt msg)
- (quit)
- (quote expr)
- (read string)
- (read-char [file-desc])
- (read-line [file-desc])
- (redraw [ename [mode]])
- (regapp application)
- (rem num1 num2 )
- (repeat number expr )
- (reverse list)
- (rtos number [mode [precision]])
- (set sym expr)
- (setq sym1 expr1 [sym2 expr2] )
- (setvar varname value)
- (sin angle)
- (sqrt number)
- (ssadd [ename [ss]])
- (ssdel ename ss)
- (ssget [mode] [pt1 [pt2]] [pt-list] [filter-list])
- (sslength ss)
- (ssmemb ename ss)
- (ssname ss index)
- (strcase string [which])
- (strcat string1 [string2] )
- (strlen [string] )
- (subst newitem olditem list)
- (substr string start [length])
- (tablet code [row1 row2 row3 direction])
- (tblnext table-name [rewind])
- (tblsearch table-name symbol [setnext])
- (terpri)
- (textbox elist)
- (textpage)
- (textscr)
- (trace function )
- (trans pt from to [disp])
- (type item)
- (untrace function )
- (ver)
- (vmon)
- (vports)
- (wcmatch string pattern)
- (while testexpr expr )
- (write-char code [file-desc])
- (write-line string [file-desc])
- (xdroom ename)
- (xdsize list)
- (xload application [onfailure])
- (xunload application [onfailure])
- (zerop item)
- Funkcje AutoLISPu zdefiniowane w systemie ADS
- (acad_colordlg colornum [flag])
- (acad_helpdlg helpfile [topic])
- (acad_strlsort list)
- Polecenia zdefiniowane w systemie ADS
- (c:gkreskuj pt [ss] [vector]) (c:bhatch pt [ss] [vector])
- (c:gplinia pt [ss] [vector]) (c:bpoly pt [ss] [vector])
- (bherrs)
- (c:psdynam mode) (c:psdrag mode)
- (c:pswyp ent pattern [arg1 [arg2]] ) (c:psfill ent pattern [arg1 [arg2]] )
- (c:psin filename position scale) (c:pswe filename position scale)
Dodatek C. Kody ASCII
Dodatek D. Kody i komunikaty błędów zwracane przez AutoLISP
- Kody błędów
- Komunikaty błędów
- Błędy programów użytkowych
- Błędy wewnętrzne
Dodatek E. Kody grup DXF
- Kody grup w kolejności wartości liczbowych
- Kody grup uporządkowane według rodzaju elementu rysunkowego
- Kody grup elementów rysunkowych
- Kody grup dla Bloków i tablic
Dodatek F. Zmienne systemowe AutoCADa
Dodatek G. Opis i instalacja programów znajdujących się na dyskietce
- Instalacja programów
Literatura
Skorowidz