DIESEL 函數可以執行狀態擷取、計算以及顯示。
所有函數最多只能使用 10 個參數,包括函數名稱本身。
函數 | 描述/範例 |
---|---|
+ (加) |
傳回數值 val1、val2、…、val9 的總和。 $(+, val1 [, val2, …, val9]) 如果目前的 thickness 設為 5,以下的 DIESEL 字串便會傳回 15。 $(+, $(getvar, thickness), 10) |
- (減) |
傳回從 val1 減去數值 val2 到 val9 的結果。 $(-, val1 [, val2 , …, val9]) |
* (乘) |
傳回數值 val1、val2、…、val9 相乘的結果。 $(*, val1 [, val2, …, val9]) |
/ (除) |
傳回數值 val1 除以 val2、…、val9 的結果。 $(/, val1 [, val2, …, val9]) |
= (等於) |
如果數值 val1 和 val2 相等,則字串會傳回 1;否則會傳回 0。 $(=, val1, val2) |
< (小於) |
如果數值 val1 小於 val2,則字串會傳回 1;否則會傳回 0。 $(<, val1, val2) 以下表示式取得 HPANG 的目前值;如果該值小於儲存在系統變數 USERR1 中的值,則會傳回 1。如果儲存在 USERR1 中的值為 10.0,而 HPANG 的目前設定為 15.5,則以下字串會傳回 0。 $(<, $(getvar, hpang), $(getvar, userr1)) |
> (大於) |
如果數值 val1 大於 val2,則字串會傳回 1;否則會傳回 0。 $(>, val1, val2) |
!= (不等於) |
如果數值 val1 和 val2 不相等,則字串會傳回 1;否則會傳回 0。 $(!=, val1, val2) |
<= (小於或等於) |
如果數值 val1 小於或等於 val2,則字串會傳回 1;否則會傳回 0。 $(<=, val1, val2) |
>= (大於或等於) |
如果數值 val1 大於或等於 val2,則字串會傳回 1;否則會傳回 0。 $(>=, val1, val2) |
and |
傳回整數 val1 到 val9 的逐位元邏輯 AND 的值。 $(and, val1 [, val2,…, val9]) |
angtos |
以指定的格式與精確度傳回角度值。 $(angtos, value [, mode, precision]) 將給定的 value 編輯為以 mode 和 precision 指定格式的角度,如同類比 AutoLISP 函數定義的一樣。如果省略 mode 和 precision,則會使用 UNITS 指令選擇的目前值。 註: AutoLISP 不適用於 AutoCAD LT for Mac OS。
可套用下列 mode 值:
|
Edtime |
根據給定的 picture 引數,傳回格式化的日期與時間。 $(edtime, time, picture) 編輯由 time 給定的儒略日期 (例如,根據給定的 picture 從 $(getvar,date) 取得)。picture 由代表特定日期和時間的格式詞組構成。無法解譯成格式詞組的字元,會原封不動地複製成 $(edtime) 的結果。格式詞組的定義如下表所示。 例如,假設日期與時間為 1998 年 9 月 5 日星期六 4:53:17.506,則 edtime 對應的格式詞組和輸出範例應如下所示:
如前面的表格所示,輸入整個 AM/PM 詞組;如果單獨使用 AM,則系統將原封不動地讀取 A,且 M 將傳回目前的月份。 如果 picture 中出現任何 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) 傳回的結果如下: Sat, 5 Sep 1998 - 4:53am 如果 time 是 0,則使用最外層巨集執行時的日期與時間。這樣可避免冗長耗時地重複呼叫 $(getvar,date),並且可以保證由多個 $(edtime) 巨集所組成的字串都能使用相同的時間。 |
eq |
如果字串 val1 和 val2 不相同,則字串會傳回 1;否則會傳回 0。 $(eq, val1, val2) 以下表示式取得目前圖層的名稱;如果該名稱與儲存在系統變數 USERS1 (USERS1-5) 中的字串值相符,則會傳回 1。假定字串 "PART12" 儲存在 USERS1 中,且目前圖層相同。 註: USERS1-5 系統變數無法在 AutoCAD LT for Mac OS 中使用。
$(eq, $(getvar, users1), $(getvar, clayer)) 傳回的結果如下: 1 |
Eval |
將字串 str 傳送到 DIESEL 演算器,並傳回演算的結果。 $(eval, str) |
fix |
捨棄實數值 value 的小數部份,使其截短成整數值。 $(fix, value) |
Getenv |
傳回環境變數 varname 的值。 $(getenv, varname) 如果未定義該名稱的變數,它會傳回空字串。 |
Getvar |
傳回系統變數 varname 的值。 $(getvar, varname) |
if |
條件式演算表示式。 $(if, expr, dotrue [, dofalse]) 如果 expr 為非零值,則它會演算並傳回 dotrue。否則,它會演算並傳回 dofalse。請注意,不會演算 expr 未選擇的分支。 |
Index |
傳回以逗號分隔字串的指定成員。 $(index, which, string) 假設 string 引數含有一或多個以巨集引數分隔符號字元 (逗號) 分隔的值。which 引數可以從這些值中選取一個要擷取的值 (第一個項目編號為 0)。此函數最常用於從 $(getvar) 傳回的點座標擷取 X、Y 或 Z 座標值。 應用程式可以使用此函數,從 USERS1-5 系統變數中擷取以逗號分隔字串儲存的值。 註: USERS1-5 系統變數無法在 AutoCAD LT for Mac OS 中使用。
|
nth |
演算並傳回 which 選取的引數。 $(nth, which, arg0 [, arg1,…, arg7]) 如果 which 為 0,則 nth 傳回 arg0,依此類推。請注意 $(nth) 與 $(index) 之間的差異: $(nth) 會傳回函數一系列引數的其中一個,而 $(index) 會從以單一引數傳遞的逗號分隔字串中擷取值。系統不會演算 which 未選取的引數。 |
or |
傳回整數 val1 到 val9 的逐位元邏輯 OR 的值。 $(or, val1 [, val2,…, val9]) |
Rtos |
以指定的格式與精確度傳回實數值。 $(rtos, value [, mode, precision]) 將給定的 value 編輯為以 mode 和 precision 指定的實數。 如果省略 mode 和 precision,則會使用 UNITS 指令選取的目前值。 |
Strlen |
以字元數為單位傳回 string 的長度。 $(strlen, string) |
Substr |
傳回 string 從字元 start 開始算起 length 個字元的子字串。 $(substr, string, start [, length]) 字串中的字元從 1 開始編號。如果省略 length,則會傳回剩餘的字串。 |
Upper |
根據目前地區設定規則,傳回轉換為大寫字元的 string。 $(upper, string) |
xor |
傳回整數 val1 到 val9 的逐位元邏輯 XOR 的值。 $(xor, val1 [, val2,…, val9]) |