如何得到面域之间布尔运算差值之后的新面域呢?
本帖最后由 楚留香 于 2015-8-8 05:23 编辑1、以前都是通过entlast得到最后的图元名字;
2、可是通过布尔运算差值得的新图元确不能通过这个函数获得;
3、我用选择的办法查询的新图元的名字,确实是新的,可是不通过选择直接得到最后生成的图元名字呢?
4、如果不能判断新的图元产生,怎样能知道布尔运算成功了呢?恳请高手解答一下,谢谢! (defun c:uni (/ osmode_bak ss e getss);UNI后转换为PLINE
(defun getss (e / ss)
(setq ss (ssadd))
(while (setq e (entnext e))
(setq ss (ssadd e ss))
);while
ss
)
(setvar "CMDECHO" 0)
(Setq osmode_bak (getvar "osmode"))
(Setvar "osmode" 0)
(setq ss (ssget))
(setq e (entlast))
(command ".region" ss "")
(command ".union" (getss e) "")
(setq e (entlast))
(command ".Explode" (entlast))
(if (= 0 (getvar "peditaccept"))
(setvar "peditaccept" 1)
) ;if
(command "_.pedit" "m" (getss e) "" "j" "0.005" "")
(Setvar "osmode" osmode_bak)
(setvar "CMDECHO" 1)
(princ)
)
基本搞清楚了:
1、CAD面域布尔差集计算时,差集后形成的图元名与面积大的图元名一致,不是新增加图元名;
2、CAD面域布尔并集计算时,并集后形成的图元名与面积大的图元名一致,不是新增加图元名;
3、所以entlast是得不到准确的名字的;
4、感兴趣的可以用(entsel)函数测试下验证;
页:
[1]