选择刚断开的对象
我知道我犯了一个愚蠢的错误,但我想知道为什么我在break命令后选择刚创建的对象的代码不起作用。我曾尝试将entget与entlast结合使用,但似乎不起作用。我的代码是:(setq ent1 (entget (entlast)));;;I have also tried (car (entget (entlast))) and (entget (car (entlast))) but it doesn't work either.
(vl-cmdf "._join" ent ent1 "")其中ent是我运行break命令时选择的对象。这是一个更大的惯例的一部分,这就是为什么我试图打破,然后重新加入普林。 在我看来,除了这个问题:
“ent”表达式的引号是什么它有入口吗? 您需要在第一次选择时保存对象ID,然后do break entlast将成为新对象。 所以ent被分配给
这也不正确吗? 我不确定,但你可以试试:
(vl-cmdf "._join" (entget ent ) ent1 "")
哪里:
(setq ent1 (entget (car (entlast)))) 所以我试过了,但仍然不起作用。我想知道是否可能更改了对象id,使原始对象不再存在,而是有两个新id。 我认为join命令可能适用于选择集,所以可能构建一个空的ss,在其中两者都被添加到其中。 如果可以的话。为什么不使用命令Pedit呢?
正如您在第一篇文章中所述,您选择了一条多段线并运行命令break,然后使用entlast函数分割多段线,这还不足以获得新创建的曲线对象。
当您第一次选择要打断的多段线时,在运行命令break并完成后,只需使用while函数和entnext编写代码即可检索新创建的对象。
祝你好运 我没有使用PEDIT,因为这是涉及要素线的更大例程的一部分,这些要素线将被打断,然后使用相同的技术重新连接,而不是使用命令插入PI,因为它可能会弄乱要素线的坡度。我没有想过使用entnext函数来实现这一点。我会处理好它,看看我能做些什么。谢谢你的帮助和建议! Tharwat,所以我试着使用你的方法,但它说我有一个空的选择集,这看起来很奇怪,因为至少应该有一个新的实体。我的代码是:
(setq lastent (entlast))
(command "._AeccBreakFeatures" ent "_f")
(princ "\nPick break point: ")
(command pause "@")
(while (setq lastEnt (entnext lastEnt))
(ssadd lastEnt ss)
)
页:
[1]
2