關於部落格
  • 187708

    累積人氣

  • 20

    今日人氣

    0

    追蹤人氣

AutoLisp檔案的 儲存,載入,執行

儲存AutoLisp程式:
AutoLisp 的檔案是簡單的 ASCII 文字檔, 其副檔名為 lsp.
用 Notepad 之類的文書編輯軟體就可以編寫,修改 AutoLisp 的檔案.
首先, 將畫線程式,用文書編輯器整理如下:
=========================================
(defun testline ()    
    ;定義功能名稱      
    (setq a (getpoint "n輸入起點 : "))     
    ;取得第一點  
    (setq b (getpoint "n輸入終點 : "))     
    ;取得第二點  
    (command "Line" a b "")
    ;畫線
)      
;結束功能指令
===============================================
 
如下圖:

打完之後, 存檔.
檔名: testline.lsp
*** 記得, 要存成 ASCII 文字檔; 而且,存檔的路徑,必須在AutoCAD的搜尋路徑之內. ***
就這樣, 最簡單的一個AutoLisp程式 testline.lsp 就誕生了.

補充說明:
如果你的檔案文件是有顯示出副檔名的情況下:
存檔時, 檔名就輸入testline.lsp

如何顯示出副檔名如下圖:
如果是沒有顯示副檔名的情況下:
程式完成後, 另存新檔,檔名一樣輸入testline.lsp (如下圖)


不知道AutoCAD的搜尋路徑,你可以在環境選項(OP)內找到(如下圖)
我的建議是, 程式以一個新資料夾作分類,在加入路徑即可~
不要隨意的亂放,到時候要整理時就不方便了~


載入AutoLisp 程式:
 
在 AutoCAD的指令行輸入載入的指令,
指令: (load "testline")
副檔名可以省略不寫, 就可以將它載入到記憶體當中.


或是以另一種方式載入,在工具>載入應用程式 (如下圖)


如果是要永久性的載入(也就是開啟軟體時,自動載入)呢? (圖如)


執行 AutoLisp 程式:
 
指令: (testline)
你的 testline.lsp 就開始執行了.


修改成標準的AutoCAD指令:
=========================================
(defun C:testline () 
    ;定義功能名稱      
    (setq a (getpoint "n輸入起點 : "))     
    ;取得第一點  
    (setq b (getpoint "n輸入終點 : "))     
    ;取得第二點  
    (command "Line" a b "")
    ;畫線
)      
;結束功能指令
===============================================
 
有了 c: 的加持, 我們就可以在載入後,像AutoCAD指令一般的下指令.
 
指令: (load "testline")
指令:testline
***************************************************************
思考一下, 有c:和没有c:的差異吧.
 
執行的過程, 有没有覺得哪裡怪怪的?
有没有注意到:
在載入程式,執行程式的過程中,好像會一直出現 "nil" 這個字,

但整個執行過程,結果都没有錯.
其實, "nil" 是個空回應, 它回應幾乎每一行的設定,命令.
我們可以用 (princ) 來消除它.

完整的程式如下:






 
相簿設定
標籤設定
相簿狀態