[討論]看不懂的LISP
2 posters
[討論]看不懂的LISP
(defun ax:RenameBlock (doc bn nn / layout i)
(vlax-for layout (vla-get-layouts doc)
(vlax-for i (vla-get-block layout)
(if (and
(= (vla-get-objectname i) "AcDbBlockReference")
(= (strcase (vla-get-name i)) (strcase bn))
)
(vla-put-name i nn)
)
)
)
)
有大大可以解釋一下
(vlax-for layout (vla-get-layouts doc)
(vlax-for i (vla-get-block layout)
(if (and
(= (vla-get-objectname i) "AcDbBlockReference")
(= (strcase (vla-get-name i)) (strcase bn))
)
(vla-put-name i nn)
)
)
)
)
有大大可以解釋一下
Alanlam- 一般會員
- 文章總數 : 24
年齡 : 36
來自 : 中國
職業 : 學生
愛好 : 足球
個性 : 害羞
使用年資 : 4
使用版本 : 2012
經驗值 : 4685
威望值 : 0
注冊日期 : 2012-07-23
回復: [討論]看不懂的LISP
ax:RenameBlock 是用來置換圖塊參考物件的.
我們都知道重新定義圖塊可以快速更換圖面中的圖塊圖形,
這個函式類似這樣的功能.
它須要三個參數 doc bn nn
doc 文件物件
bn 來源圖塊參考名稱
nn 目標圖塊參考名稱
使用這個函式時要注意其目標圖塊參考名稱必須是既存於圖面中才行.
下列是該函式的用法
;;2012-09-14 by PizG
(defun C:ReplaceBlock(/ doc ent bn nn)
(vl-load-com)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-Object)))
(if (and (setq ent (entsel "\n選取來源圖塊:"))
(setq dxf (entget (car ent)))
(= (cdr (assoc 0 dxf)) "INSERT")
(setq bn (cdr (assoc 2 dxf)))
(/= (setq nn (getstring "\n目標圖塊名稱:")) "")
(tblsearch "BLOCK" nn)
)
(ax:RenameBlock doc bn nn)
)
(princ)
)
我們都知道重新定義圖塊可以快速更換圖面中的圖塊圖形,
這個函式類似這樣的功能.
它須要三個參數 doc bn nn
doc 文件物件
bn 來源圖塊參考名稱
nn 目標圖塊參考名稱
使用這個函式時要注意其目標圖塊參考名稱必須是既存於圖面中才行.
下列是該函式的用法
;;2012-09-14 by PizG
(defun C:ReplaceBlock(/ doc ent bn nn)
(vl-load-com)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-Object)))
(if (and (setq ent (entsel "\n選取來源圖塊:"))
(setq dxf (entget (car ent)))
(= (cdr (assoc 0 dxf)) "INSERT")
(setq bn (cdr (assoc 2 dxf)))
(/= (setq nn (getstring "\n目標圖塊名稱:")) "")
(tblsearch "BLOCK" nn)
)
(ax:RenameBlock doc bn nn)
)
(princ)
)
這個論壇的權限:
您 無法 在這個版面回復文章*** disclaimer. 免責聲明 ***
“AUTOCAD®, and AUTODESK® are registered trademarks of Autodesk, Inc., its subsidiaries, and/or its affiliates.”
“This website is independent of Autodesk, Inc., and is not affiliated with, authorized, endorsed, sponsored, or otherwise approved of by Autodesk, Inc.”
“AUTOCAD® 和 AUTODESK® 是 Autodesk, Inc. 及其子公司和/或關聯公司的註冊商標。此網站與 Autodesk, Inc. 無關,並且未經 Autodesk, Inc. 授權、認可、贊助或以其他方式批准”
“AutoCAD 顧問論壇為台灣創立之網站,我們以熱忱服務 AutoCAD 用戶,致力於技術討論、知識分享及教學影片(課程)等內容,為 AutoCAD 社群提供支持與貢獻”