我想。我需要多看一点,但它似乎是有效的。我从来没有这么高兴看到一幅画没有任何明显的变化。
非常感谢。 你好,alanjt,
你能给你的代码加些注释吗?
我不明白:
(function (lambda (x) (vl-position (car x) '(-1 102 330 360))))
谢谢
蓝知更鸟 使用提供给vl remove if的列表中的每个项目(在本例中为DXF数据)评估lambda函数;lambda函数参数“x”表示列表中的一项。因此,vl remove if表达式从提供的DXF数据中删除点对,其中点对的第一个元素等于-1、102、330或360。 谢谢李!!
... 现在我明白了一点。。。
... 但如果我检查带有注释的多行文字:
和无注释的多行文字
还有DXF代码“-1”和“330”???
为什么你把它拿走了,它还在那里??
我错过了什么? DXF组-1和330分别指实体本身和父实体,因此,这些组始终存在于DXF数据中。
注意,DXF组正在从提供给entmakex函数的DXF数据列表中删除,该函数从DXF数据生成一个新实体(当然包含DXF组-1和330)。从提供给entmakex的列表中删除这些组并不是绝对必要的(因为它们将被忽略)。 首先,重要的是要认识到,代码会创建实体的修改副本。原始实体将被删除。这就是为什么实体列表(名称)中的组码1项不同。您可能不知道,可以使用部分实体列表创建实体。这就是这里正在发生的事情。entmakex的参数是一个部分列表(没有组码-1、102、330和360*),但新实体将自动在其实体列表中包含组码-1和330(模型或图纸空间块的名称)。
*虽然如果只删除gc 360,代码也会工作,但奇怪的是gc 5也没有删除。 谢谢李和罗伊043的解释
... 我知道我还得学很多。。。
页:
1
[2]