Epebufl!E
892
Lpez!ce x
Tabela D.1 w tym dodatku pokazuje symboliczne wartości kodów błędów generowa-nych przez AutoLISP. Zmienna systemowa AutoCADa ERRNO ma nadawaną jedną z przedstawionych wartości wtedy, gdy wywołanie funkcji AutoLISPu spowoduje błąd wykryty przez AutoCAD. Aplikacje AutoLISPu mogą sprawdzać aktualną wartość zmiennej systemowej ERRNO przez wywołanie (getvar "errno").
Zmiennej ERRNO nie zawsze jest nadawana wartość zero, zatem jeśli nie zostanie sprawdzony jej stan zaraz po tym, jak funkcja AutoLISPu zgłosi błąd, to błąd, na który wskazuje jej wartość, może być mylący. Zmienna ta jest zawsze zerowana podczas wejścia do edytora rysunku.
Możliwe wartości zmiennej ERRNO i ich znaczenie mogą zmienić się w przy-szłych wydaniach AutoCADa.
Tabela D.1. Kody błę dów wykonania programu
Wartość
Znaczenie
Funkcje AutoLISPu
1
Błędna nazwa tablicy symboli
entmake entmod regapp
2
Błędna nazwa elementu lub zbioru
Kilka funkcji (patrz uwaga pod tą
wskazań
tabelą)
BvupMJTQ!—!qsbluzd{oz!lvst
Tabela D.1. Kody błę dów wykonania programu (c.d.)
Wartość
Znaczenie
Funkcje AutoLISPu
3
Przekroczono maks. liczbę zbiorów
ssget
wskazań
4
Błędny zbiór wskazań
ssget
5
Nieprawidłowe wykorzystanie
Kilka funkcji (patrz uwaga pod tą
elementu def. bloku
tabelą)
6
Nieprawidłowe wykorzystanie
Kilka funkcji (patrz uwaga pod tą
elementu Zodn
tabelą)
7
Błąd wskazania elementu przez
entsel nentsel
punkt
8
Koniec pliku elementów
entnext entupd
9
Koniec pliku definicji bloku
entnext
10
Nie znaleziono ostatniego elementu
entlast
11
Niedozwolone wymazanie (entdel)
entdel
rzutni (VPORT)
12
Niedozwolona operacja w trakcie
(aktualnie nie wykorzystywana)
polecenia PLINIA
13
Błędny identyfikator
handent
14
Nie włączono identyfikatorów
handent
15
Błędne argumenty przy transformacji trans
ukł. Współrzędnych
16
Błędny układ współrzędnych do
trans
transformacji
17
Błędne wykorzystanie wymazanego
entmod trans
elementu
18
Błędna nazwa tablicy
tblnext tblsearch
19
Błędny argument funkcji tablicy
tblnext tblsearch
20
Próba ustawienia zmiennej tylko do
setvar
odczytu
21
Niedozwolona wartość zero
setvar
22
Wartość poza zakresem
setvar
23
Regeneracja obiektów złożonych
entmake entmod entupd
24
Próba zmiany typu elementu
entmake entmod
25
Zła nazwa warstwy
entmake entmod
26
Zła nazwa rodzaju linii
entmake entmod
27
Zła nazwa koloru
entmake entmod
28
Zła nazwa stylu tekstu
entmake
29
Zła nazwa symbolu
entmake
894
Tabela D.1. Kody błę dów wykonania programu (c.d.)
Wartość
Znaczenie
Funkcje AutoLISPu
30
Złe pole dla typu elementu
entmake entmod
31
Próba zmiany wymazanego elementu entmod
32
Próba zmiany SEQEND
entmod
33
Próba zmiany identyfikatora
entmod
34
Niedozwolona modyfikacja
entmake entmod
widoczności rzutni
35
Element na zamkniętej warstwie
entmake entmod
36
Zły typ elementu
entmake
37
Zły element PLINE
entmake
38
Niekompletny element złożony w
entmake
bloku
39
Złe pole nazwy bloku
(aktualnie nie wykorzystywana)
40
Powielenie pól znacznika bloku
entmake
41
Powielenie pól nazwy bloku
entmake
42
Zły wektor prostopadły
entmake
43
Pominięto nazwę bloku
entmake
44
Pominięto znaczniki bloku
entmake
45
Błędny blok bez nazwy
entmake
46
Błędny element definicji bloku
entmake
47
Pominięto wymagane pole
entmake
48
Nierozpoznany typ danych
entmake entmod
dodatkowych
49
Niewłaściwe zagnieżdżenie list w
entmake entmod
danych dodatkowych
50
Niewlaściwe położenie pola APPID
entmake entmod
51
Przekroczono maksymalny rozmiar
entmake entmod
danych dodatkowych
52
Błąd wskazania elementu – podano
entsel nentsel
odpowiedź pustą
53
Powielona nazwa aplikacji w danych
entmake entmod
dodatkowych
54
Próba utworzenia lub modyfikacji
entmake entmod
rzutni
55
Próba utworzenia lub
entmake entmod
zmodyfikowania elementu Xref,
Xdef, lub Xdep
BvupMJTQ!—!qsbluzd{oz!lvst
Tabela D.1. Kody błę dów wykonania programu (c.d.)
Wartość
Znaczenie
Funkcje AutoLISPu
56
Filtr funkcji ssget: niespodziewany
ssget
koniec listy
57
Filtr funkcji ssget: brak operandu
ssget
tekstu
58
Filtr funkcji ssget: niewłaściwy
ssget
łańcuch kodu (-4)
59
Filtr funkcji ssget: nieprawidłowe
ssget
zagnieżdżenie lub puste wyrażenie
warunku
60
Filtr funkcji ssget: pomylony
ssget
początek i koniec wyrażenia
warunku
61
Filtr funkcji ssget: niewłaściwa ilość
ssget
argumentów w wyrażeniu warunku
(dla NOT lub XOR)
62
Filtr funkcji ssget: przekroczona
ssget
graniczna ilość zagnieżdżeń
63
Filtr funkcji ssget: nieważny kod
ssget
grupy
64
Filtr funkcji ssget: nieważny test
ssget
łańcucha
65
Filtr funkcji ssget: nieważny test
ssget
wektora
66
Filtr funkcji ssget: nieważny test
ssget
wartości rzeczywistej
67
Filtr funkcji ssget: nieważny test
ssget
wartości całkowitej
68
Digitizer nie jest pulpitem
tablet
69
Tablet nie został skalibrowany
tablet
70
Nieważne argumenty
tablet
71
Błąd systemu ADS: nie jest możliwe
przydzielenie nowego bufora wyniku
72
Błąd systemu ADS: pusty wskaźnik
(null pointer)
73
Nie można otworzyć pliku
xload
wykonawczego
74
Aplikacja została już wczytana
xload
75
Wczytano już maksymalną
xload
dopuszczalną ilość aplikacji
Epebufl!E
896
Tabela D.1. Kody błę dów wykonania programu (c.d.)
Wartość
Znaczenie
Funkcje AutoLISPu
76
Nie jest możliwe wykonanie
xload
aplikacji
77
Niezgodny numer wersji
xload
78
Nie jest możliwe usunięcie z pamięci xunload
aplikacji zagnieżdżonej
79
Nieudane usunięcie aplikacji z
xunload
pamięci
80
Aplikacja nie jest aktualnie wczytana xunload
81
Zbyt mało pamięci, by wczytać
xload
aplikację
82
Błąd systemu ADS: nieważna
macierz transformacji
83
Błąd systemu ADS: nieważna nazwa
symbolu
84
Błąd systemu ADS: nieważna
wartość symbolu
85
Zablokowana próba dostępu do
operacji AutoLISPu/ADSu podczas
wyświetlania okna dialogowego
Kody błędów 2, 5 i 6 mogą być zgłaszane przez kilka funkcji bibliotecznych, w tym entdel, entget, entmod, entnext, entupd, redraw, regapp, ssadd, ssdel, ssmemb, trans i xdroom.
Lpnvojlbuz!c ex
Po wykryciu warunków błędu, AutoLISP przerywa działanie funkcji i wywołuje funkcję użytkownika *error*, z komunikatem wskazującym rodzaj błędu. Jeżeli nie zdefiniowano funkcji *error* (*error* ma przypisaną wartość nil), podejmowane są standardowe działania obsługi błędów i wyświetlany jest komunikat: error: komunikat
błąd: komunikat
oraz tzw. wsteczny ślad funkcji. Jeżeli zdefiniowano funkcję *error*, to jest ona wywoływana z jednym argumentem komunikat.
Cez!qsphsbn x!vzulpxzdi
Poniżej przedstawiono listę komunikatów błędów, które pojawiają się w trakcie urucha-miania funkcji AutoLISPu. Większość z nich wskazuje na typowe błędy programów takie jak:
BvupMJTQ!—!qsbluzd{oz!lvst
• błędnie podana nazwa funkcji lub symbolu,
• nieprawidłowy typ lub liczba argumentów funkcji,
• niezrównoważona liczba nawiasów,
• brak cudzysłowu (niezakończone łańcuchy),
• próba wykorzystania niezakończonej funkcji.
Poniżej przedstawiono w porządku alfabetycznym nazwy oraz opisy błędów programów użytkowych.
arguments of a defun can't have the same name
Błąd ten spowoduje funkcja zdefiniowana z wieloma argumentami o tej samej nazwie.
AutoCAD rejected function
Przekazano błędne argumenty funkcjom AutoCADa (na przykład próba ustawienia zmiennej systemowej „tylko do odczytu” poleceniem SETVAR (ZMSYS) lub użycia tblnext z nieprawidłową nazwą tablicy) lub samo użycie funkcji jest błędem w aktualnym kontekście. Przykładowo, nie wolno stosować funkcji getxxx wewnątrz funkcji command.
AutoLISP stack overflow
Przekroczona została pojemność obszaru stosu AutoLISPu. Może to być wynikiem intensy-wnego wykorzystywania rekurencji funkcji lub bardzo dużych list argumentów funkcji.
bad argument type
Do funkcji przekazano argument niewłaściwego typu (np. nie można użyć funkcji strlen dla liczby typu integer).
bad association list
Lista przekazana funkcji assoc nie zawiera list z nazwami kluczowymi.
bad conversion code
Komunikat taki wskazuje, że dla funkcji trans został podany niewłaściwy identyfikator obszaru (papieru lub modelu).
bad ENTMOD list
Jedna z podlist listy asocjacji, dostarczonej funkcji entmod, zawiera niewłaściwą wartość.
bad ENTMOD value
Jedna z list w liście asocjacji (skojarzeń), przekazanych funkcji entmod, zawiera nieprawidłową wartość.
bad formal argument list
Podczas wyliczania funkcji, AutoLISP wykrył nieprawidłową listę argumentów formalnych. Może to wystąpić np. w przypadku, gdy zamiast funkcji podano listę danych.
898
bad function
Pierwszy (zerowy) element listy nie jest dopuszczalną nazwą funkcji. Może to wystąpić np. w przypadku, gdy pierwszy element jest liczbą lub nazwą zmiennej. Komunikat ten może wskazywać również na to, że funkcja jest błędnie zdefiniowana — na przykład brakuje listy wymaganych argumentów formalnych.
bad function code
Taki komunikat wskazuje, że polecenie TABLET (PULPIT) otrzymało niewłaściwy identyfikator funkcji.
bad grvecs list value
Któryś składnik listy dla funkcji grvecs nie jest punktem 2W lub 3W.
bad grvecs matrix value
Macierz dostarczona funkcji grvecs została źle uformowana lub zawiera dane niewłaściwego typu (na przykład STR, SYM itp.).
bad list
Przekazano funkcji nieprawidłowo uformowaną listę. Może to wystąpić w przypadku, gdy liczba rzeczywista (typ real) zaczyna się kropką dziesiętną; należy pamiętać o tym, że zapis takiej liczby musi zaczynać się wtedy zerem.
bad list of points
Komunikat wyświetlany przez ssget w przypadku, gdy wraz z parametrami _F, _CP lub _WP zostanie przesłana lista pusta lub lista zawierająca obiekty inne, niż punkty.
Komunikat taki może też wyświetlić funkcja grvecs.
bad node
Funkcja type napotkała pozycję nieprawidłowego typu.
bad node type in list
Funkcja foreach napotkała pozycję nieprawidłowego typu.
bad point argument
bad point value
Niewłaściwie zdefiniowany punkt (lista dwóch liczb typu real) został przekazany funkcji oczekującej na podanie współrzędnych. Może to wystąpić w przypadku, gdy liczba rzeczywista mniejsza od 1 zaczyna się kropką dziesiętną; należy pamiętać o tym, że zapis takiej liczby musi zaczynać się od zera.
bad real number detected
Nastąpiła próba przesłania z AutoLISPu do AutoCADa niewłaściwej liczby rzeczywistej (typu real).
BvupMJTQ!—!qsbluzd{oz!lvst
bad ssget list
Argument przekazany funkcji (ssget "E" ) nie jest prawidłową listą z danymi elementu (taką jek wynik funkcji entget).
bad ssget list value
Jedna z list składowych na liście filtru przekazanej do (ssget "x" ) zawiera niepoprawną wartość.
bad ssget mode string
Błąd ten występuje wtedy, gdy argument mode funkcji jest (niedopuszczalnym) niedozwolonym tekstem.
bad xdata list
Błąd taki powstaje wtedy, gdy funkcjom xdsize, ssget, entmod, entmake lub textbox zostaje podana źle uformowana lista dodatkowych danych elementu (xdata).
base point is required
Funkcja getcorner została wywołana bez podania wymaganego argumentu (punktu bazowego).
Boole arg1 <0 or >15
Pierwszy argument funkcji boole musi być liczbą typu integer z zakresu od 0 do 15.
can't evaluate expression
Błąd ten może być spowodowany niewłaściwym położeniem kropki dziesiętnej lub innym źle skonstruowanym wyrażeniem.
can't open (file) for input — LOAD failed
Plik o nazwie przekazanej funkcji load nie został znaleziony lub użytkownik nie ma dostępu do czytania pliku.
can't reenter AutoLISP
Bufor komunikacyjny AutoCAD-AutoLISP jest wykorzystywany przez aktywną funkcję; żadna nowa funkcja nie może być wywołana przed jej zakończeniem.
console break
Użytkownik wprowadził Ctrl+C w czasie działania funkcji.
divide by zero
Dzielenie przez zero jest niedozwolone.
divide overflow
Wynik dzielenia przez bardzo małą liczbę jest obarczony dużym błędem.
89:
exceeded maximum string length
Łańcuch alfanumeryczny (string) przesłany do funkcji jest dłuższy, niż 132 znaki.
extra right paren
Wykryto za dużo prawych nawiasów (jeden lub więcej).
file not open
Deskryptor pliku dla operacji WE/WY nie odpowiada otwartemu plikowi.
file read — insufficient string space
Podczas czytania z pliku przekroczono dostępny obszar pamięci łańcuchów.
file size limit exceeded
Rozmiar pliku przekracza wartość dopuszczalną dla systemu operacyjnego.
floating-point exception
System operacyjny wykrył błąd obliczeń zmiennoprzecinkowych (tylko w środowisku systemów typu UNIX).
function cancelled
Użytkownik wprowadził Ctrl+C w odpowiedzi na zgłoszenie gotowości do przyjęcia danych wejściowych.
function undefined for argument
Argument przekazany do funkcji log lub sqrt jest spoza dopuszczalnego zakresu.
function undefined for real
Funkcji oczekującej danych typu integer przekazano liczbę typu real, np. (lsh 2 1.2).
grvecs missing endpoint
Lista wektorów podana funkcji grvecs nie posiada punktu końcowego.
illegal type in left
Wystąpienie takiego komunikatu oznacza, że plik LSP nie jest czystym plikiem ASCII, ale został utworzony za pomocą programu procesora tekstów i zawiera kody formatujące.
improper argument
Funkcji gcd przekazano argument mniejszy lub równy zero.
inappropriate object in function
Funkcja vmon wykryła niepoprawnie skonstruowaną funkcję.
BvupMJTQ!—!qsbluzd{oz!lvst
incorrect number of arguments
Podano więcej niż jeden argument funkcji quote.
incorrect number of arguments to a function
Liczba argumentów przekazanych funkcji nie odpowiada liczbie argumentów formalnych określonych w funkcji defun.
incorrect request for command list data
Napotkana funkcja command nie może być wykonana ze względu na działanie innej funkcji.
input aborted
Wykryto warunek błędu lub przedwczesnego końca pliku, co powoduje przerwanie wczytywania pliku.
insufficient node space
Do wykonania żądanego działania funkcji zabrakło wolnego obszaru sterty.
insufficient string space
Obszar sterty jest zbyt mały do ulokowania podanego łańcucha tekstowego.
invalid argument
Nieprawidłowy typ argumentu lub argument poza dopuszczalnym zakresem.
invalid argument list
Przekazano funkcji uszkodzoną listę argumentów.
invalid character
Wyrażenie zawiera niepoprawny znak.
invalid dotted pair
Pary kropkowe są listami zawierającymi dwa argumenty oddzielone sekwencją „spacja
— kropka — spacja”. Błąd ten może pojawić się w przypadku, gdy mniejsza od 1 liczba rzeczywista rozpoczyna się kropką dziesiętną; należy pamiętać o tym, że liczba taka musi zaczynać się zerem.
invalid integer value
Została napotkana liczba typu integer o wartości spoza dopuszczalnego zakresu.
LISPSTACK overflow
Przekroczono obszar stosu AutoLISPu. Może to wystąpić w przypadku wielokrotnego zagnieżdżenia funkcji rekurencyjnej lub funkcji z bardzo dużą listą argumentów.
Należy spróbować zwiększyć wartość zmiennej środowiskowej LISPSTACK.
8:2
malformed list
Odczytywana z pliku lista skończyła się przedwcześnie. Najczęstszą przyczyną jest błąd parowania nawiasów otwierających i zamykających lub znaków cytowania.
malformed string
Łańcuch czytany z pliku zakończył się przedwcześnie.
misplaced dot
Błąd ten może pojawić się w przypadku, gdy zapis liczby o wartości bezwzględnej mniejszej od 1 rozpoczyna się kropką dziesiętną; należy pamiętać o tym, że liczba taka musi zaczynać się zerem.
null function
Została wykonana próba wyliczenia niezdefiniowanej funkcji.
quit/exit abort
Jest to wynik wywołania funkcji quit lub exit. Funkcje te nie są aktualnie stosowane w AutoLISPie.
string too long
Łańcuch alfanumeryczny dostarczony funkcju setvar jest za długi.
too few arguments
Za mało argumentów przekazano funkcji wewnętrznej.
too few arguments to grvecs
Funkcja grvecs otrzymała zbyt małą liczbę argumentów.
too many arguments
Za dużo argumentów przekazano funkcji wewnętrznej.
Cez!xfxous{of
Błędy opisane poniżej pojawiają się wyjątkowo rzadko. Wskazują na wewnętrzne błędy w AutoLISPie i ich pojawienie się powinno być zgłaszane dystrybutorowi programu.
bad argument to system call
System operacyjny wykrył błędne odwołanie do systemu wygenerowane przez AutoLISP (tylko w środowisku systemów typu UNIX).
bus error
System operacyjny wykrył błąd magistrali (tylko w środowisku systemów typu UNIX).
BvupMJTQ!—!qsbluzd{oz!lvst
hangup
System operacyjny wykrył sygnał „zawieszenie systemu” (tylko w środowisku systemów typu UNIX).
illegal instruction
System operacyjny wykrył błędną instrukcję maszynową (tylko w środowisku systemów typu UNIX).
segmentation violation
System operacyjny wykrył próbę zaadresowania pamięci znajdującej się poza przydzielonym dla procesu obszarem (tylko w środowisku systemów typu UNIX).
unexpected signal nnn
Wykryto nieoczekiwane pojawienie się sygnału wygenerowanego przez system operacyjny (tylko w środowisku systemów typu UNIX).