cad二次開發秘技:visualLisp多文件選擇
VisualLisp是autoCAD提供的一種簡單方便的二次開發語言。語言本身簡單易學,功能卻極其強大,幾乎可以涉及到CAD操作的方方面面。autoCAD還貼心地為這種二次開發語言提供了開發和調試界面,用戶只需要在命令行輸入VLIDE命令即可打開Vlisp編程界面進行CAD二次開發。
除此之外,它最大的優點還在于其跨版本,跨系統能力超強。同樣的Lisp代碼,無需修改即可在十幾個版本的CAD上流暢運行,這點甚至是強大的ObjectArx也無法比擬的,這也是vLisp成為廣大工程師喜愛的CAD二次開發語言的重要原因。
vLisp具有方便地文件讀寫功能,但是要讀寫文件,必須要先選擇文件,今天我們就來總結一下Vlisp文件選擇的實現方法,附帶筆者開發的一種多文件選擇實現方案。
方法1:Vlisp自帶的文件選擇函數getfiled
該函數使用說明如下:
(getfiled 對話框的標簽 缺省文件名 缺省的文件擴展名 按位編碼)
如:(getfiled "123" "" " 32),觸發的函數界面如下:
該方法為vLisp內置函數,好處是穩定,可選參數較多。缺點是只能一次選擇一個文件,且無法選擇文件夾。
方法2:調用Windows系統的Shell.Application進行文件夾選擇
該方法的關鍵代碼有以下兩句:
(setq winshell (vlax-create-object "Shell.Application"))
(setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))
效果如下:
這種方法的優點在于可以選擇文件夾,但是生成的窗口有可能會跑到CAD窗口背后去,造成不便。
方法3:調用外部exe,筆者獨創方法
這種方法靈活性比較高,但是需要開發者至少會一種別的語言。其原理為:
Lisp調用外部exe->>外部exe彈出文件選擇對話框-->>Lisp獲取外部exe的選擇結果。
在這里,筆者利用國產編程語言aardio生成了一個多文件選擇對話框的exe文件,在lisp中利用WScript.Shell獲取exe運行的返回值。值得注意的是,這種Lisp與外部exe交換數據的方式目前筆者還沒有在別的地方見到過,不知道可否算得上是獨創。運行效果如下:
除了以上3種,當然還有別的方法可以實現vLisp中實現文件選擇對話框,各位讀者可以多多探索。
欲獲取文章相關的所有源代碼文件,請關注公眾號并后臺回復“選文件”。
如果覺得這篇文章幫到了您,請點“在看”。歡迎關注,分享,本公眾號會持續分享建筑結構參數化的干貨內容。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















