CAD中的diesel和巨集

2021-08-26 08:31:36 字數 1671 閱讀 5540

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設計需求。大家知道,在較為複雜的設計圖紙中,布局有數量龐大的圖形元素,視覺效果比較繁雜。設計師在使用捕捉功能選定目標物件時,由於許...