Guest scottpops 发表于 2022-7-6 08:27:15

多段线顶点

嘿,大家好,我是AutoLISP的新手,刚刚开始自学。。。我试图创建一个程序来删除LWWPolyline中相互重叠的顶点,但是,我似乎在编辑LWWPolyline方面找不到太多。我已经全部设置好了循环,只需要知道如何进入并删除我不需要的顶点。如果有人能帮我,让我知道他们会怎么做,那太好了。谢谢

David Bethel 发表于 2022-7-6 08:31:46

我建议你基本上必须重做实体,去掉不需要的部分。
 
现有实体:
 
删除重复项
 
注意,第90组从5变为4
 
-大卫

Guest scottpops 发表于 2022-7-6 08:35:56

谢谢大卫。。。好的,这很有道理,但我该如何将其放入循环中,让autoLISP自己生成新实体呢?

David Bethel 发表于 2022-7-6 08:39:50

这些点是完全重复的还是相同的x,y值?他们在多大程度上是平等的-大卫

Guest scottpops 发表于 2022-7-6 08:41:07

我要求用户提供他们希望两个点之间的最大范围的值(例如.001等),存储该值,然后使用该值查看该范围内是否存在重复点。。。
 
(如果(和)(
(>(((a车)(z车))负选择)
)
(和(
(>(((cadr a)(cadr z))负选择)
)
)
)
 
其中a为pt#1,z为pt#2,selOption为范围,negselOption为范围的负值

David Bethel 发表于 2022-7-6 08:44:16

如果想要使用精确点,(member)函数可以做到这一点。对于带有模糊的布尔测试,可以将点与(equal)进行比较
 

(equal '(1.0 1.0 0.0) '(1.000001 1.0 0)1e-
应返回T,因为它们等于8位
 
所有点都必须从实体定义中推断出来,然后
必须将每个点与列表中的前一点进行比较。
 
-大卫

Guest scottpops 发表于 2022-7-6 08:49:05

这是我到目前为止得到的。也许你能更好地看到我这个节目的发展方向。谢谢
 
好的,我也在尝试使用vl remove if命令,但我没有正确使用它。。。如果你有任何建议,请随时帮忙
 
4

David Bethel 发表于 2022-7-6 08:52:36

虽然我对“较新”风格的实体并不感兴趣,但我会这样做:
希望这有帮助-大卫

jawbreaker31 发表于 2022-7-6 08:54:55

有没有办法处理这段代码中的弧?这将去掉多段线中的圆弧。

Lee Mac 发表于 2022-7-6 08:59:49

必须包含凸出因子(组42),但不确定移除顶点时会对其产生多大影响。
页: [1] 2
查看完整版本: 多段线顶点