本帖最后由 lostbalance 于 2019-10-12 11:24 编辑
首先申明:以下函数出自自贡黄明儒共享的函数库。
个人为了便于使用和管理,修改了函数名称。
 -
- (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)
- "<NONE_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*)
- )
额,论坛的代码格式感觉没正常过啊……
|