王与韩1 发表于 2014-8-4 10:30:19

请各位大师帮忙修改下检查图块连线的程序

本帖最后由 王与韩1 于 2014-8-4 17:38 编辑

以下是以前ZZXXQQ大神帮忙写的一个检查图块是否连线的程序
后来实际中用的时候发现由于我请Z版帮忙时未表述清楚,相连的块也被过滤了,可否加一个图块相连也能通过过滤的功能,请各位帮下忙,谢谢各位.

;判断图块连线 明经 ZZXXQQ 2014建军节 改于 七夕
(defun c:tt ()
(vl-load-com)
(setq ssa (ssadd))
(if (and (princ "\n选择图块: ") (setq ss (ssget '((0 . "INSERT")))))
(repeat (setq i (sslength ss))
   (setq en (ssname ss (setq i (1- i))))
   (vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
   (setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2))
   (if (not (setq ss1 (ssget "C" p1 p2 '((0 . "*LINE")))))
;    (redraw en 3)
    (ssadd en ssa)
   )
)
)
(if (> (sslength ssa) 0) (sssetfirst nil ssa))
(princ)
)


edata 发表于 2014-8-4 12:23:20

和程序无关
应该是天正图元的影响,不管内部参照块或是外部参照块,问题都一样。
vla-getboundingbox 无法求出块中天正图元对象。将图纸转成_t3格式,即可。

王与韩1 发表于 2014-8-4 12:31:56

本帖最后由 王与韩1 于 2014-8-4 17:19 编辑

edata 发表于 2014-8-4 12:23 static/image/common/back.gif
和程序无关
应该是天正图元的影响,不管内部参照块或是外部参照块,问题都一样。
vla-getboundingbox 无法 ...
额,从左上开始圈不选到参照就可以了,就稍微麻烦了点...谢谢支持了。

孙海波 发表于 2023-8-4 10:08:06

可否加一个图块相连也能通过过滤的功能?
页: [1]
查看完整版本: 请各位大师帮忙修改下检查图块连线的程序