cad二次開發秘技:visualLisp多文件選擇


cad二次開發秘技:visualLisp多文件選擇的圖1


VisualLisp是autoCAD提供的一種簡單方便的二次開發語言。語言本身簡單易學,功能卻極其強大,幾乎可以涉及到CAD操作的方方面面。autoCAD還貼心地為這種二次開發語言提供了開發和調試界面,用戶只需要在命令行輸入VLIDE命令即可打開Vlisp編程界面進行CAD二次開發。

除此之外,它最大的優點還在于其跨版本,跨系統能力超強。同樣的Lisp代碼,無需修改即可在十幾個版本的CAD上流暢運行,這點甚至是強大的ObjectArx也無法比擬的,這也是vLisp成為廣大工程師喜愛的CAD二次開發語言的重要原因。


cad二次開發秘技:visualLisp多文件選擇的圖2


vLisp具有方便地文件讀寫功能,但是要讀寫文件,必須要先選擇文件,今天我們就來總結一下Vlisp文件選擇的實現方法,附帶筆者開發的一種多文件選擇實現方案。



方法1:Vlisp自帶的文件選擇函數getfiled



該函數使用說明如下:

(getfiled 對話框的標簽 缺省文件名 缺省的文件擴展名 按位編碼)

如:(getfiled "123" "" " 32),觸發的函數界面如下:

cad二次開發秘技:visualLisp多文件選擇的圖3

該方法為vLisp內置函數,好處是穩定,可選參數較多。缺點是只能一次選擇一個文件,且無法選擇文件夾。



方法2:調用Windows系統的Shell.Application進行文件夾選擇



該方法的關鍵代碼有以下兩句:

(setq winshell (vlax-create-object "Shell.Application"))

(setq shFolder (vlax-invoke-method WinShell 'BrowseForFolder 0 msg 1))

效果如下:

cad二次開發秘技:visualLisp多文件選擇的圖4

這種方法的優點在于可以選擇文件夾,但是生成的窗口有可能會跑到CAD窗口背后去,造成不便。



方法3:調用外部exe,筆者獨創方法



這種方法靈活性比較高,但是需要開發者至少會一種別的語言。其原理為:

Lisp調用外部exe->>外部exe彈出文件選擇對話框-->>Lisp獲取外部exe的選擇結果。

在這里,筆者利用國產編程語言aardio生成了一個多文件選擇對話框的exe文件,在lisp中利用WScript.Shell獲取exe運行的返回值。值得注意的是,這種Lisp與外部exe交換數據的方式目前筆者還沒有在別的地方見到過,不知道可否算得上是獨創。運行效果如下:

cad二次開發秘技:visualLisp多文件選擇的圖5

除了以上3種,當然還有別的方法可以實現vLisp中實現文件選擇對話框,各位讀者可以多多探索。

欲獲取文章相關的所有源代碼文件,請關注公眾號并后臺回復選文件

如果覺得這篇文章幫到了您,請點“在看”。歡迎關注,分享,本公眾號會持續分享建筑結構參數化的干貨內容。

cad二次開發秘技:visualLisp多文件選擇的圖6

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

3
3
1