AutoCAD AutoLisp 腳本編寫


腳本調用

1. 可以修改 C:\Program Files\Autodesk\AcadM2011\Acadm 目錄下的acad.lsp文件,載入腳本。AutoCAD 版本為2011 機械版,其它版本路徑略有不同。

;(load "Update_EL_block.lsp")

2. 腳本保存為文本格式,可以存放在上述目錄中。

3. 使用 vl-load-com 載入 AutoCAD 自動化庫。

(vl-load-com)   ; Load com library

 


 

腳本說明

定義一個名為 modify 的函數,用於修改圖塊中屬性。

此函數有兩個參數:col 用於指定修改的屬性名,data 為屬性值。

(defun modify (col data) 
    (foreach a
        (vlax-invoke (vlax-ename->vla-object (ssname (ssget "_x" '((2 . "EPCB000"))) 0)) 'GetAttributes)
        ( if (eq(vlax-get-property a 'TagString) col)
            (vlax-put-property a 'TextString data)
        )
    )
)

1. 查找名為 EPCB000 的圖塊,返回入口名:

ssname (ssget "_x" '((2 . "EPCB000"))) 0

2. 將入口名轉化為對象:

vlax-ename->vla-object ( ... )

3. 以獲取的對象為目標,調用 GetAttributes 方法:

vlax-invoke ...  'GetAttributes

4. 遍歷得到的屬性集:

foreach a ... 

5. 對屬性名進行判斷,如與 col 參數吻合,則修改屬性值:

if (eq(vlax-get-property a 'TagString) col) (vlax-put-property a 'TextString data)

  


 

 

補充

1. AutoCAD 附帶的 AutoLisp 編輯環境可以 Debug。

2. 注意檢查括號匹配。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM