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ą)

893

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

Epebufl!E

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

895

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:

897

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.

Epebufl!E

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).

899

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.

Epebufl!E

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ę.

8:1

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.

Epebufl!E

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).

8:3

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).

Document Outline

  • Spis treści