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




















