Funkcje języka DIESEL

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:
  • 0 dla stopni
  • 1 dla stopni/minut/sekund
  • 2 dla gradów
  • 3 dla radianów
  • 4 dla jednostek geodezyjnych
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:
  • D - 5
  • DD - 05
  • DDD - Sob
  • DDDD - Sobota
  • M - 9
  • MO - 09
  • MON - Wrz
  • MONTH - Wrzesień
  • YY - 98
  • YYYY - 1998
  • H - 4
  • HH - 04
  • MM - 53
  • SS - 17
  • MSEC - 506
  • AM/PM - AM
  • am/pm - am
  • A/P - A
  • a/p - a

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