hehoubin
发表于 2013-10-16 08:59:28
非常感谢
hehoubin
发表于 2013-10-16 09:16:49
回复10楼
这个好象只支持第2种图形
图形1 和图形2同时支持。
819534890
发表于 2013-10-16 10:34:45
本帖最后由 819534890 于 2013-10-16 10:42 编辑
hehoubin 发表于 2013-10-16 09:16 static/image/common/back.gif
回复10楼
这个好象只支持第2种图形
在ZZXXQQ版主的基础上作了修改,满足了你的要求:
把这句(command ".explode" "L" "" ".EXPLODE" "P" "")
拆分成2句,并作出判断
(command ".explode" "L" "")
;如果炸开一次后,里面的图形依然是面域(说明有多个子面域),那么需要继续炸开;否则是单个面域,不需要再炸开了。
(setq ss2 (ssget "_p"))
(if (= "REGION" (cdr ( assoc 0 (entget (ssname ss2 0)))))
(command ".EXPLODE" "P" "")
)
(defun c:bj2(/ 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" "")
(setq ss2 (ssget "_p"))
(if (= "REGION" (cdr ( assoc 0 (entget (ssname ss2 0)))))
(command".EXPLODE" "P" "")
)
(setvar "QAFLAGS" 0)
;(setvar "PEDITACCEPT" 0)
(command "_.pedit" "_M" "P" "" "_J" "0" "")
;(setvar "PEDITACCEPT" 1)
))
(setvar "CMDECHO" 1)
(princ)
)
hehoubin
发表于 2013-10-16 10:54:22
THANKS~~~~~非常感谢
ZZXXQQ
发表于 2013-10-16 22:36:51
10楼改了。
ps122hb
发表于 2013-10-22 08:45:30
ZZXXQQ 发表于 2013-10-16 08:30 static/image/common/back.gif
试了一下,果然厉害
孙玉坤
发表于 2017-9-4 07:20:04
顶ddddddddddddddddddd
萧●﹏●明
发表于 2017-10-21 23:28:22
看看
xinxirong
发表于 2017-10-22 09:02:32
用region就行
fsafaffa
发表于 2017-10-22 13:36:52
这是并集,有交集或差集吗