腳本調用
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. 注意檢查括號匹配。
