diesel是direct interpretively evaluated string expression language(直接解釋求值字串表示式語言)的縮寫,它是一種巨集語言,可以在字段中應用,可以用來修改狀態行,也可以在選單中應用,在某種程度上可以取代autolisp。它很簡短,用可攜式c編寫,很容易整合到任何程式中。它主要用於需要非常基本的巨集擴充套件工具的程式,而不需要像lisp或forth這樣的完整語言的複雜性。模式巨集變數(modemacro)可以改變狀態列顯示,在命令列上輸入modemacro,再輸入$(getvar,clayer),當前圖層名就顯示在狀態行左側上了,同樣輸入 $(getvar, textstyle) ,便會顯示當前的文字樣式。如果你只想顯示一些文字,如「你好!」也可。
這種設定的不足之處在於不能自動儲存,你可以在acad.lsp檔案中加入如下s::startup函式,autocad就會自動執行這些命令了。
(defun-q s::startup ( )
(command "modemacro" "$(getvar,clayer)")
因為有可能已在多個檔案裡定義了s::startup函式,這樣就會發生衝突,而在acad.lsp檔案中加入如下語句便會避免這種情況:
(defun-q mystartup ( )
(command "modemacro" "$(getvar,clayer)")
我們可以使用diesel來編輯一段巨集,巨集是命令的集合,用來執行一串命令。diesel來獲取我們想要檢查的autocad系統變數的值,並將它們填入狀態行。
用於獲取系統變數的diesel表示式是:
$(getvar, varname)
'$()'告訴autocad,括號中包含的以下字串需要由diesel直譯器進行評估。"$"是cad中diesel語言形成的巨集的標記,而後面的"()"則是表示式語言的標記,跟autolisp一樣,操作符前置。
'getvar'是'從系統中獲取值變數'的縮寫(這是柴油機功能)
','將函式(diesel表示式需要做什麼)與arguments分開(diesel表示式將執行函式的資訊)
'varname'應該替換為您要檢查的系統變數的名稱(此值是引數)。
以下是使用diesel表示式將系統變數返回到狀態行的一些示例:
$(getvar, cprofile)
- 顯示當前使用者的個人資料
$(getvar, cmdnames)
- 顯示當前命令。
diesel表示式也可以巢狀。
$(substr,$(*, $(getvar, tdindwg), 24),1,3)
- 顯示總編輯時間。
上面的表示式採用'tdindwg'系統變數的值,將其乘以24(以獲得使用者在幾小時內在dwg檔案中的時間),然後通過僅返回前四個字元來截斷結果字串。
cad中的很多內容都**於對微軟的學習,比如cad中的快捷鍵,ribbon設計風格,cad中的lisp和office的vba,cad中的字段(field)和office中的域。
在cad的文字編輯中可以按快捷鍵ctrl+f調出字段對話方塊,也可以直接從插入選項卡裡找到字段命令按鈕,檢視diesel表示式,然後輸入即可。
$(getvar, dwgname)
- 顯示當前檔案的名字
$(getvar, ctab)
- 顯示當前圖紙空間標籤的名字。
巨集定義中的 和
連線符號由 兩個井號組成,其功能是在帶引數的巨集定義中將兩個子串 token 聯接起來,從而形成乙個新的子串。但它不可以是第乙個或者最後乙個子串。所謂的子串 token 就是指編譯器能夠識別的最小語法單元。具體的定義在編譯原理裡有詳盡的解釋 符是把傳遞過來的引數當成字串進行替代。假設程式中已經定義了...
C 巨集中的 和
rt,define func a a define funcs a,b a b 第乙個 a的作用是將巨集引數a變成字串,如下面例子中,將對應的版本號轉換為字串 define version major 1 define version minor 29 define version patch 2 ...
中望CAD 隔離和隱藏功能提公升CAD設計效率
與以往中望cad產品不同,中望cad 中新增了隔離和隱藏物件功能,該功能對於處理大型複雜圖紙 提公升設計效率具有重要作用,從而確保中望cad 能夠更好地滿足使用者的cad設計需求。大家知道,在較為複雜的設計圖紙中,布局有數量龐大的圖形元素,視覺效果比較繁雜。設計師在使用捕捉功能選定目標物件時,由於許...