Функции языка DIESEL позволяют получать сведения о состоянии программы, выполнять вычисления и выводить информацию на экран.
Каждая функция может иметь не более 10 параметров (в число параметров включается и ее имя).
Функция | Описание/пример |
---|---|
+ (сложение) |
Возвращает сумму чисел знач1 , знач2 , ..., знач9 . $(+, val1 [, val2, …, val9]) Например, если значение текущей 3D высоты равно 5, следующее DIESEL-выражение вернет 15. $(+, $(getvar, thickness), 10) |
- (вычитание) |
Возвращает результат вычитания чисел от знач2 до знач9 из знач1 . $(-, val1 [, val2 , …, val9]) |
* (умножение) |
Возвращает произведение чисел знач1 , знач2 , …, знач9 . $(*, val1 [, val2, …, val9]) |
/ (деление) |
Возвращает частное от деления числа знач1 на знач2 , …, знач9 . $(/, val1 [, val2, …, val9]) |
= (равно) |
Если числа знач1 и знач2 равны, возвращает 1; иначе возвращает 0. $(=, val1, val2) |
< (меньше) |
Если число знач1 меньше числа знач2 , возвращает 1; иначе возвращает 0. $(<, val1, val2) Следующее выражение получает текущее значение HPANG; если значение меньше значения, сохраненного в системной переменной USERR1, возвращается 1. Если в USERR1 сохранено значение 10,0, а текущая установка HPANG -- 15,5, следующая строка возвращает 0. $(<, $(getvar, hpang), $(getvar, userr1)) |
> (больше) |
Если число знач1 больше чем знач2 , возвращает 1; иначе возвращает 0. $(>, val1, val2) |
!= (не равно) |
Если числа знач1 и знач2 не равны, возвращает 1; иначе возвращает 0. $(!=, val1, val2) |
<= (меньше или равно) |
Если число знач1 меньше или равно числу знач2 , строка возвращает 1; в противном случае - 0. $(<=, val1, val2) |
>= (больше или равно) |
Если число знач1 больше или равно числу знач2 , возвращает 1; иначе возвращает 0. $(>=, val1, val2) |
и |
Возвращает результат побитовой логической операции AND (И) над целыми значениями от знач1 до знач9 . $(and, val1 [, val2,…, val9]) |
angtos |
Возвращает значение угла в заданном формате и с указанной точностью. $(angtos, value [, mode, precision]) Заданное значение представляется как угол в формате, определяемом параметром режим , и с указанной точностью (как в аналогичной функции AutoLISP). Если режим и точность отсутствуют, используются значения, заданные в команде ЕДИНИЦЫ. Прим.: AutoLISP недоступен в AutoCAD LT.
Можно применить следующие значения для режима:
|
Edtime |
Возвращает дату и время, отформатированные в соответствии с указанным представлением. $(edtime, time, picture) Текущая дата по юлианскому календарю, взятая из параметра время (значение которого можно получить, например, из $(getvar,date) ), форматируется согласно параметру представление ). Параметр представление состоит из строк форматов, которые функция заменяет на значения элементов даты и времени. Символы, не интерпретируемые как строки форматов, копируются в результат $(edtime) буквально. Возможные значения строк форматов приводятся в следующей таблице. Например, дата и время — суббота, 5 сентября 1998 г., 4:53:17.506. Тогда для edtime соответствующими форматами и примерами вывода будут:
Фразу AM/PM следует обязательно вводить полностью; если использовать только AM, буква A будет интерпретирована буквально, а буква M вернет номер месяца. Если в шаблоне представления обнаружен элемент AM/PM, фразы H и HH форматируются согласно 12-часовой шкале (12:00-12:59 1:00-11:59), а не по 24-часовой (00:00-23:59). В следующем примере текущие значения даты и времени равны значениям из предыдущего. Заметим, что запятая должна быть заключена в кавычки, иначе она будет расценена как разделитель аргументов. $(edtime, $(getvar,date), DDD"," DD MON YYYY - H:MMam/pm) Полученная в результате строка выглядит так: Суб, 5 сен 1998 – 4:53am Если аргумент время равен 0, вместо него берутся дата и время входа в самый внешний макрос. Это позволяет исключить затраты времени на множественные вызовы функции $(getvar,date), и вместе с тем гарантирует, что строки, составленные из нескольких макросов $(edtime), используют одинаковое время. |
eq |
Если строки знач1 и знач2 совпадают, возвращает 1; иначе возвращает 0. $(eq, val1, val2) Следующее выражение получает имя текущего слоя; если имя совпадает со значением строки, сохраненным в системной переменной USERS1 (USERS1-5), возвращается 1. Допустим, в USERS1 сохранена строка "PART12" и текущий слой носит то же имя. Прим.: Системные переменные USERS1-5 недоступны в AutoCAD LT.
$(eq, $(getvar, users1), $(getvar, clayer)) Полученная в результате строка выглядит так: 1 |
Eval |
Передает строку стр в вычислитель DIESEL-выражений и возвращает результат ее вычисления. $(eval, str) |
fix |
Выполняет усечение вещественного значения знач до целого путем отбрасывания дробной части. $(fix, value) |
Getenv |
Возвращает значение переменной среды перем . $(getenv, varname) Если переменная с указанным именем не определена, функция возвращает пустую строку. |
Getvar |
Возвращает значение системной переменной перем . $(getvar, varname) |
if |
Вычисление выражений по условию. $(if, expr, dotrue [, dofalse]) Если условие не равно нулю, вычисляется и возвращается выражение истина . Иначе вычисляется и возвращается выражение ложь . Ветвь, не удовлетворяющая условию , не вычисляется вообще. |
Номер |
Возвращает заданный номером элемент строки-списка. $(index, which, string) Подразумевается, что аргумент строка содержит одно или несколько значений, разделенных запятыми (т.е. принятыми для макросов стандартными разделителями). Аргумент номер выбирает одно из значений для возврата (считается, что первый элемент строки имеет номер 0). Функция часто применяется для извлечения координат X, Y или Z точки, полученной из функции $(getvar). В приложениях ее можно использовать также для извлечения аргументов, переданных в виде строк-списков в системных переменных USERS1-5. Прим.: Системные переменные USERS1-5 недоступны в AutoCAD LT.
|
nth |
Вычисляет и возвращает аргумент, выбранный по его номеру . $(nth, which, arg0 [, arg1,…, arg7]) Если значение номер равно 0, nth возвращает арг0 и т. д. Следует обратить внимание на различия между функциями $(nth) и $(index) : $(nth) возвращает один из аргументов функции, тогда как $(index) извлекает одно из значений из строки с разделением запятыми, переданной как единый аргумент. Аргументы, не выбранные значением номер , не вычисляются. |
или |
Возвращает результат побитовой логической операции OR (ИЛИ) над целыми значениями от знач1 до знач9 . $(or, val1 [, val2,…, val9]) |
Rtos |
Возвращает вещественное значение в заданном формате и с указанной точностью. $(rtos, value [, mode, precision]) Заданное значение представляется как вещественное число в формате, определяемом параметром режим и с указанной точностью. Если режим и точность отсутствуют, используются значения, заданные в команде ЕДИНИЦЫ. |
Strlen |
Возвращает длину строки в символах. $(strlen, string) |
substr |
Возвращает подстроку строки , начиная с символа начало , имеющую заданную длину . $(substr, string, start [, length]) Символы в строке нумеруются, начиная с 1. Если длина отсутствует, функция возвращает всю оставшуюся часть строки. |
Сверху |
Возвращает строку , преобразованную в верхний регистр по правилам текущей кодовой страницы. $(upper, string) |
xor |
Возвращает результат побитовой логической операции XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ) над целыми значениями от знач1 до знач9 . $(xor, val1 [, val2,…, val9]) |