如果没有生成新的图元,怎么选取当前图元
本帖最后由 队列 于 2022-11-10 12:34 编辑我想在合并多段线后输出该多段线的信息,现在遇到这么一个问题,如果在合并多段线后生成了新图元,那么这个程序是没有问题的;但如果合并的线本身就是多段线,执行合并多段线命令并没有用,那么这个程序输出的信息有可能是别的多段线的。想问下大家,代码怎么写,能在没有生成新图元的情况下,获取当前图元?谢谢大家。
(ssname ss 0) 先计算ss的总长度,合并后不用管是否生成新图元,长度是一样的 自贡黄明儒 发表于 2022-11-10 12:59
(ssname ss 0)
按照这个代码写了,麻烦再问一下,为什么之后的“(setq ss (vlax-ename->vla-object ss))”代码会返回空值呢,这个怎么解决呀 start4444 发表于 2022-11-10 13:01
先计算ss的总长度,合并后不用管是否生成新图元,长度是一样的
主要后面还想获取面积,所以就想着先合并,后面再输出长度、面积这些信息 1.(setq E1 (entlast));;记录最后一个图元
2.执行选择, (setq E2 (ssname SS 0));;获取合并多段线的源对象
3.执行合并
4.(setq E3 (entlast))
(if (vlax-erased-p E2);;检查E2是否存在
(if (eq E1 E3)
(princ "未知错误,合并失败");;E2在合并过程中误删,这个情况一般不会出现
(setq NEW E3) ;;E2不存在,则E3就是生成的新图元
)
(setq NEW E2);;E2存在且是多段线
) caoyin 发表于 2022-11-10 13:31
1.(setq E1 (entlast));;记录最后一个图元
2.执行选择, (setq E2 (ssname SS 0));;获取合并多段线的源对象 ...
谢谢呀,我试一下 队列 发表于 2022-11-10 13:15
按照这个代码写了,麻烦再问一下,为什么之后的“(setq ss (vlax-ename->vla-object ss))”代码会返回空 ...
不好意思呀,刚接触autolisp,没明白你说的意思 写两种情况一种是生成新图元,一种是原图元
页:
[1]