只需一步,快速开始
使用道具 举报
;;帮你写一个,试试看,提取多重套嵌块中圆的圆心
(defun c:test (/ blkfor en blks lst) (defun blkfor (blks obj / ins bn ty p lst) (setq ins (vla-get-InsertionPoint obj) ins (vlax-safearray->list (vlax-variant-value ins)) bn (vla-get-name obj) ) (vlax-for ent (vla-item blks bn) (setq ty (vla-get-objectname ent)) (cond ((= ty "AcDbCircle") (setq p (vla-get-Center ent) p (vlax-safearray->list (vlax-variant-value p)) lst (cons (mapcar '+ ins p) lst) ) ) ((= ty "AcDbBlockReference") (setq lst (append lst (mapcar '(lambda (p) (mapcar '+ ins p)) (blkfor blks ent) ) ) ) ) ) ) lst ) (if (setq en (entsel "\n选择块: ")) (progn (setq blks (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object)))) (blkfor blks (vlax-ename->vla-object (car en))) ) ))
(setq blks (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object))))的意思是返回当前选择的图块里的所有子图块吗???如果是用选择集的话返回的是??????
;;返回当前文档的所有块定义的VLA集合,跟选择集没有关系
大概看了一下
(if (= (cdr (assoc 0 z_ent)) "circle")...
(if (= (cdr (assoc 0 z_ent)) "insert")...
红色应为大写
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-5-2 11:25 , Processed in 0.281734 second(s), 25 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.