本帖最后由 lostbalance 于 2019-10-12 11:24 编辑
首先申明:以下函数出自自贡黄明儒共享的函数库。
个人为了便于使用和管理,修改了函数名称。
[code="lisp]
(setq ;;常用VLA对象、集合
*ACAD* (vlax-get-acad-object) ;;AutoCAD任务中的顶层 AutoCAD应用程序对象,即获取AutoCAD程序本身
*DOC* (vla-get-ActiveDocument *ACAD*) ;;是在autocad程序下面运行的当前文档对象
*BLKS* (vla-get-Blocks *DOC*)
)
;|= 9.6. 对象名称
@== (wyb-name obj)
#== return: [str]
par:
sample:
(wyb-name *ACAD*) return: "AutoCAD"
(wyb-name *MS*) return: "*Model_Space"
ver:
[1.0] 自贡黄明儒
====================|;
(defun wyb-name (@obj)
(if (vlax-property-available-p @obj 'Name)
(vlax-get-property @obj 'Name)
""
)
)
;|= 9.11. 返回集合成员名称列表
@== (wyb-listCollectionMemberNames collection)
#== return: [lst]
par:
sample:
(wyb-listCollectionMemberNames *lays*) return: '("0" "中心线" "文字" "DIM")
ver:
[1.0] 自贡黄明儒
====================|;
(defun wyb-listCollectionMemberNames (@collection / out)
(vlax-for each @collection
(setq out (cons (wyb-name each) out))
)
(reverse out)
)
;|= 9.18. 返回块集合成员名称列表
@== (wyb-listBlocks)
#== return: [lst]
par:
sample:
(wyb-listBlocks) return: '("*Model_Space" "*Paper_Space")
ver:
[1.0] 自贡黄明儒
====================|;
(defun wyb-listBlocks ()
(wyb-listCollectionMemberNames *BLKS*)
)
[/code]额,论坛的代码格式感觉没正常过啊……