Funkcje języka DIESEL pozwalają uzyskiwać informacje o stanie, przeprowadzać obliczenia oraz wpływać na sposób wyświetlania.
Wszystkie funkcje mają ograniczenie do 10 parametrów, włączając w to nazwę samej funkcji.
Funkcja | Opis/przykład |
---|---|
+ (dodawanie) |
Funkcja ta zwraca sumę liczb wart1 , wart2 , …, wart9 . $(+, val1 [, val2, …, val9]) Jeśli bieżąca grubość ma wartość 5, poniższy ciąg DIESEL zwraca 15. $(+, $(getvar, thickness), 10) |
- (odejmowanie) |
Funkcja ta zwraca wynik odejmowania kolejno liczb od wart2 do wart9 od liczby wart1 . $(-, val1 [, val2 , …, val9]) |
* (mnożenie) |
Funkcja ta zwraca wynik mnożenia liczb wart1 , wart2 , …, wart9 . $(*, val1 [, val2, …, val9]) |
/ (dzielenie) |
Funkcja ta zwraca wynik dzielenia liczby wart1 przez liczby wart2 , …, wart9 . $(/, val1 [, val2, …, val9]) |
= (równe) |
Jeśli liczby wart1 i wart2 są równe, funkcja ta zwraca 1; w przeciwnym wypadku zwraca 0. $(=, val1, val2) |
< (mniejsze niż) |
Jeśli liczba wart1 jest mniejsza od wart2 , funkcja ta zwraca 1; w przeciwnym wypadku zwraca 0. $(<, val1, val2) Poniższe wyrażenie pobiera bieżącą wartość HPANG. Jeśli wartość jest mniejsza niż wartość zapisana w zmiennej systemowej USERR1, zwraca 1. Jeśli w zmiennej systemowej USERR1 jest zapisana wartość 10.0 i bieżące ustawienie HPANG jest równe 15.5, następujący ciąg zwraca wartość 0. $(<, $(getvar, hpang), $(getvar, userr1)) |
> (większe niż) |
Jeśli liczba wart1 jest większa od wart2 , funkcja zwraca 1; w przeciwnym wypadku zwraca 0. $(>, val1, val2) |
!= (różne) |
Jeśli liczby wart1 i wart2 są różne, funkcja zwraca 1; w przeciwnym wypadku zwraca 0. $(!=, val1, val2) |
<= (mniejsze lub równe) |
Jeśli wartość wart1 jest mniejsza niż lub równa wartości wart2 , ciąg zwraca 1; w innym przypadku zwraca 0. $(<=, val1, val2) |
>= (większe niż lub równe) |
Jeśli liczba wart1 jest większa lub równa liczbie wart2 , funkcja zwraca 1; w przeciwnym wypadku zwraca 0. $(>=, val1, val2) |
and |
Funkcja ta zwraca iloczyn logiczny AND na bitach liczb całkowitych od wart1 do wart9 . $(and, val1 [, val2,…, val9]) |
angtos |
Funkcja ta zwraca wartość kąta w określonym formacie i z określoną dokładnością. $(angtos, value [, mode, precision]) Edytuje daną wartość jako kąt w formacie określonym przez tryb i z dokładnością zdefiniowanymi dla analogicznej funkcji języka AutoLISP. Jeśli parametry tryb i dokładność zostaną pominięte, przyjmowane są bieżące wartości określone za pomocą polecenia JEDN. Uwaga: Funkcja AutoLISP jest niedostępna w programie AutoCAD LT.
Można zastosować następujące wartości trybu:
|
Edtime |
Funkcja ta zwraca sformatowaną datę i czas w oparciu o dany wzorzec. $(edtime, time, picture) Powyższa funkcja służy przekształceniu juliańskiej daty wyrażonej parametrem czas (otrzymanym na przykład z funkcji $(getvar,date) zgodnie z podanym parametrem wzorzec ). Parametr wzorzec zawiera wyrażenia formatujące zastępowane przez określoną reprezentację daty i czasu. Znaki nieinterpretowane jako wyrażenia formatujące są dokładnie kopiowane do ciągu wynikowego funkcji $(edtime) . Formaty fraz są definiowane zgodnie z poniższą tabelą. Załóżmy na przykład, że data i czas to sobota 5 września 1998 4:53:17.506; odpowiednie wyrażenia formatu wyjściowego i przykłady dla edtime są następujące:
Wyrażenie AM/PM (przed południem/po południu) musi być wprowadzone dokładnie tak, jak pokazano w tabeli. Jeśli wprowadza się tylko AM, wówczas znak A zostanie odczytany jako litera, a znak M spowoduje wyświetlenie bieżącego miesiąca. Jeśli w parametrze wzorzec pojawi się dowolna z postaci wyrażenia AM/PM, wówczas wyrażenia formatujące H oraz HH będą określały czas zgodnie z zegarem dwunastogodzinnym (12:00-12:59, 1:00-11:59) zamiast dwudziestoczterogodzinnego (00:00-23:59). Poniższy przykład pokazuje wykorzystanie formatowania daty i czasu zgodnie z powyższą tabelą. Należy zauważyć, że przecinek mający wystąpić w tekście musi zostać ujęty w cudzysłów. W innym razie będzie uznany za separator argumentów. $(edtime, $(getvar,date), DDD"," DD MON YYYY - H:MMam/pm) Wyrażenie to zwróci następujący ciąg: Sat, 5 Sep 1998 – 4:53am Jeśli parametr czas jest równy 0, funkcja zwróci czas i datę, kiedy wykonano ostatnie makro. Pozwala to uniknąć powtarzania długich i czasochłonnych wywołań funkcji $(getvar,date) oraz gwarantuje, że ciągi złożone z wielu makr $(edtime) będą używały tej samej wartości czasu. |
eq |
Funkcja ta zwraca 1, jeśli ciągi wart1 oraz wart2 są identyczne; w przeciwnym wypadku zwraca 0. $(eq, val1, val2) Następujące wyrażenie pobiera nazwę bieżącej warstwy. Jeśli nazwa odpowiada ciągowi zapisanemu w zmiennej systemowej USERS1 (USERS1-5), zwracana jest wartość 1. Załóżmy, że wartość "PART12" jest zapisana w zmiennej systemowej USERS1 i że taka sama jest bieżąca warstwa. Uwaga: Zmienne systemowe USERS1-5 są niedostępne w programie AutoCAD LT.
$(eq, $(getvar, users1), $(getvar, clayer)) Wyrażenie to zwróci następujący ciąg: 1 |
Eval |
Funkcja ta przekazuje ciąg do wyliczenia jego wartości i zwraca wynik tego wyliczenia. $(eval, str) |
fix |
Funkcja ta obcina liczbę rzeczywistą wartość do liczby całkowitej przez odrzucenie jej części ułamkowej. $(fix, value) |
Getenv |
Funkcja ta zwraca wartość zmiennej środowiskowej nazwa_zmiennej . $(getenv, varname) Jeśli zmienna środowiskowa o podanej nazwie nie została zdefiniowana, wówczas powyższa funkcja zwraca ciąg pusty. |
Getvar |
Funkcja ta zwraca wartość zmiennej systemowej o danej nazwie_zmiennej . $(getvar, varname) |
if |
Funkcja ta warunkowo wylicza wartość wyrażeń. $(if, expr, dotrue [, dofalse]) Gdy wartość parametru wyrażenie jest różna od zera, funkcja wylicza wyrażenie jeśli_tak i zwraca wynik tej operacji. W przeciwnym przypadku zwracany jest wynik wyliczenia wartości wyrażenia jeśli_nie . Należy zauważyć, że wyrażenie niewybrane przez parametr wyrażenie nie jest wyliczane przez funkcję. |
Indeks |
Funkcja ta zwraca określoną pozycję z ciągu elementów rozdzielonych przecinkami. $(index, which, string) Zakłada się, że parametr ciąg zawiera jedną lub więcej wartości rozdzielonych znakiem separatora argumentów w makrowyrażeniach, tzn. przecinkiem. Parametr pozycja określa, który argument z tego ciągu argumentów ma zostać pobrany, przy czym pierwsza pozycja w ciągu ma numer 0. Funkcja ta jest najczęściej wykorzystywana do wyodrębniania współrzędnych X, Y lub Z ze współrzędnych punktu zwróconych przez funkcję $(getvar). Funkcja ta może być stosowana przez aplikacje do odczytywania wartości zapisanych w zmiennych systemowych USERS1-5 w postaci ciągów z elementami rozdzielonymi przecinkami. Uwaga: Zmienne systemowe USERS1-5 są niedostępne w programie AutoCAD LT.
|
nth |
Funkcja ta wylicza i zwraca argument wybrany przez pozycję . $(nth, which, arg0 [, arg1,…, arg7]) Jeśli parametr pozycja jest równy 0, funkcja nth zwraca argument arg0 i tak dalej. Różnica między $(nth) i $(index) jest następująca: $(nth) zwraca jeden z argumentów funkcji, a $(index) wyciąga wartość z ciągu rozdzielonego przecinkami, wklejonego jako pojedynczy argument. Argumenty, które nie zostały w tej funkcji określone za pomocą parametru pozycja , nie są wyliczane. |
or |
Funkcja ta zwraca sumę logiczną OR na bitach liczb całkowitych od wart1 do wart9 . $(or, val1 [, val2,…, val9]) |
Rtos |
Funkcja ta zwraca wartość rzeczywistą w określonym formacie i z określoną dokładnością. $(rtos, value [, mode, precision]) Edytuje daną wartość jako liczbę rzeczywistą w formacie określonym przez tryb i dokładność. Jeśli parametry tryb i dokładność zostaną pominięte, przyjmowane są bieżące wartości określone za pomocą polecenia JEDN. |
Strlen |
Funkcja ta zwraca długość parametru ciąg podaną w znakach. $(strlen, string) |
Substr |
Funkcja ta zwraca fragment ciągu określonego parametrem ciąg , który rozpoczyna się od znaku wskazanego argumentem początek oraz ma długość równą żądanej liczbie znaków. $(substr, string, start [, length]) Znaki w ciągu są numerowane, począwszy od 1. Jeśli parametr długość zostaje pominięty, funkcja ta zwraca cały fragment ciągu, od miejsca wskazania do jego końca. |
Górne |
Funkcja ta zwraca parametr ciąg przekształcony na tekst pisany wielkimi literami zgodnie z zasadami bieżącego środowiska. $(upper, string) |
xor |
Funkcja ta zwraca symetryczną różnicę logiczną XOR na bitach liczb całkowitych od wart1 do wart9 . $(xor, val1 [, val2,…, val9]) |