Glen Smith 发表于 2022-7-5 18:00:37

我们赢了!!!!
 
我想。我需要多看一点,但它似乎是有效的。我从来没有这么高兴看到一幅画没有任何明显的变化。
 
非常感谢。

Bluebird1973 发表于 2022-7-5 18:05:23

你好,alanjt,
 
你能给你的代码加些注释吗?
 
我不明白:
(function (lambda (x) (vl-position (car x) '(-1 102 330 360))))
 
 
谢谢
蓝知更鸟

Lee Mac 发表于 2022-7-5 18:09:15

使用提供给vl remove if的列表中的每个项目(在本例中为DXF数据)评估lambda函数;lambda函数参数“x”表示列表中的一项。因此,vl remove if表达式从提供的DXF数据中删除点对,其中点对的第一个元素等于-1、102、330或360。

Bluebird1973 发表于 2022-7-5 18:13:07

谢谢李!!
 
... 现在我明白了一点。。。
 
 
... 但如果我检查带有注释的多行文字:
 
 
和无注释的多行文字
 
 
还有DXF代码“-1”和“330”???
 
为什么你把它拿走了,它还在那里??
我错过了什么?

Lee Mac 发表于 2022-7-5 18:14:40

DXF组-1和330分别指实体本身和父实体,因此,这些组始终存在于DXF数据中。
 
注意,DXF组正在从提供给entmakex函数的DXF数据列表中删除,该函数从DXF数据生成一个新实体(当然包含DXF组-1和330)。从提供给entmakex的列表中删除这些组并不是绝对必要的(因为它们将被忽略)。

Roy_043 发表于 2022-7-5 18:20:40

首先,重要的是要认识到,代码会创建实体的修改副本。原始实体将被删除。这就是为什么实体列表(名称)中的组码1项不同。您可能不知道,可以使用部分实体列表创建实体。这就是这里正在发生的事情。entmakex的参数是一个部分列表(没有组码-1、102、330和360*),但新实体将自动在其实体列表中包含组码-1和330(模型或图纸空间块的名称)。
 
*虽然如果只删除gc 360,代码也会工作,但奇怪的是gc 5也没有删除。

Bluebird1973 发表于 2022-7-5 18:22:44

谢谢李和罗伊043的解释
 
... 我知道我还得学很多。。。
页: 1 [2]
查看完整版本: 注释性文字转换