RE: 已解决区域并集分解成多段线的程序,
本帖最后由 hehoubin 于 2013-10-21 15:40 编辑(defun c:bj(/ ss lastent lastent2 s1 s2 e f) 并集
(setq ss (ssget))
(setq lastent (entlast))
(setq s1 (ssadd))
(command ".region" ss "")
(while (setq e (entnext lastent))
(ssadd e s1)
(setq lastent e))
(command ".union" s1 "")
(setq lastent2 (entlast))
(command ".explode" lastent2 )
(setq s2 (ssadd))
(while (setq f (entnext lastent2))
(ssadd f s2)
(setq lastent2 f)
)
(setvar "PEDITACCEPT" 0)
(command "_.pedit" "_m" s2 "" "_y" "_j""0" "c" "" ))这个程序只能比较成一个区域并并分解
希望能改成并集成多个区域并分解
多谢大侠们的帮忙。。
这是并集,有交集或差集吗 顶ddddddddddddddddddd 谢谢分享,学习 explode面欲 分解的对象有为问题么 请老师帮忙改下。谢谢
呵呵,选择集求外接矩形对角点,reg图元,uni对角点区域,x炸开,pe下 实务上的情况或许没这么单纯...
若果真单纯到没有其他对象的干扰
用一个稍大的包围框,框住如图示的三组叠合矩形
然后借用 BOUNDARY 即可
回复6楼
就是有其他物体的干扰
我是了用BOUNDARY 行不通。所以才想到这个
。
回复5楼,窗选也会选到替他物体吧
本帖最后由 Andyhon 于 2013-10-16 08:23 编辑
回复7楼
那么就得先行隐藏包围框内的不相干物件
事后再行还原... 本帖最后由 ZZXXQQ 于 2013-10-16 22:36 编辑
(defun c:bj(/ ss s1 e) 并集
(setvar "CMDECHO" 0)
(if (setq ss (ssget '((0 . "ARC,CIRCLE,LINE,*POLYLINE")))) (progn
(setq e (entlast))
(setq s1 (ssadd))
(command ".region" ss "")
(while (setq e (entnext e)) (ssadd e s1))
(command ".union" s1 "")
(setvar "QAFLAGS" 1)
(command ".explode" "L" "")
(if (setq ss (ssget "P" '((0 . "REGION")))) (command ".EXPLODE" ss ""))
(setvar "QAFLAGS" 0)
;(setvar "PEDITACCEPT" 0)
(command "_.pedit" "_M" "P" "" "Y" "_J" "0" "")
;(setvar "PEDITACCEPT" 1)
))
(setvar "CMDECHO" 1)
(princ)
)