benhubel 发表于 2022-7-5 16:12:04

选择多个实体创建

我的lisp程序运行offset命令,然后立即使用entlast获取新创建的多段线,并将其添加到选择集。不过,使用这种方法存在一个缺陷,因为只要偏移距离足够大,足以使其自身发生碰撞,偏移就会创建多个实体。我试图找到一种方法来获取这些额外的多段线,但entlast只获取最近的多段线。我不知所措。
 
我现在唯一能想到的是编写自己的自定义偏移例程,或者在偏移之前和之后选择图形中的所有内容,然后从之前取消选择。这两种方法听起来效率都很低。
 
有没有人有更好的办法?我发现了一些帖子,人们对这个问题提出了类似的问题,但每个帖子都针对他们的案例找到了解决方法,而不是解决获取多个同时输出的最近实体的问题。
 
作为参考,以下是我所说的当多个实体自相交时创建的实体:

Grrr 发表于 2022-7-5 16:34:13

这个帖子可能对你有帮助。

benhubel 发表于 2022-7-5 16:44:36

非常感谢。这似乎有点让我不知所措,但这似乎正是我所希望的。我会仔细看一看,看看能不能弄明白该怎么做。

ronjonp 发表于 2022-7-5 16:57:37

您也可以使用vla偏移,然后创建的所有项目将存储为vla对象列表。
 
快速一行
 
(vlax-invoke (vlax-ename->vla-object (car (entsel))) 'offset (getdist))
;; Returns
;; (#<VLA-OBJECT IAcadLWPolyline 0000022d161fa478> #<VLA-OBJECT IAcadLWPolyline 0000022d161fb5b8>)

benhubel 发表于 2022-7-5 17:17:01

 
我甚至不知道vla补偿存在。我很惊讶我以前从未听说过。不管我在这里用不用,我一定会查清楚的。
 
**编辑**
公平地说,我一开始没有机会和弗拉做太多。我想我应该花更多的时间学习它。
页: [1]
查看完整版本: 选择多个实体创建