Arizona 发表于 2006-6-7 13:10:40

删除层

我有一些图纸,其中包含旧的分层方案和新的分层方案。我能够遍历旧名称列表,并将所有实体移动到新层。我遇到的问题是,即使层现在是空的,它不会删除使用VBA。我错过了什么?有什么想法吗?
另外,这是2000i版,所以没有图层转换器。
**** Hidden Message *****

Arizona 发表于 2006-6-7 13:18:18

你是如何删除它们的?

Bryco 发表于 2006-6-7 13:31:27

层定义为acadLayers
如果Layer.Name=UCase(oldLayers(intNum))然后
intCnt=intNum
strName1=oldLayers(intCnt)
strNewName=newLayers(intCnt)
CreateNewLayer(strNewName)'创建新层
'选择集的东西(我删除了这个只是为了简化)和更改
对于每个entObj在对象集
entObj.Layer=strNewName
entObj.Linetype="BYLAYER"
intEntity=intEntity+1
下一个entObj
intCnt=intCnt+1'通过旧层名称递增
Layer.Delete(strName1)'***这是失败的结构。
结束如果
我得到的错误消息是“参数数量错误或属性分配无效"
如果我注释掉图层删除行,代码将执行我需要它执行的所有操作,除了清除图层。

Arizona 发表于 2006-6-7 13:42:51

如果您将线条更改为
层,是否有效。删除

Jeff_M 发表于 2006-6-7 14:29:33

您可能还需要检查每个块中的每个ent
但我发现,层在wblocking后很难删除,我无法找到原因。我删除了那些垃圾,但可能有时间问题。

MikeJarosz 发表于 2006-6-7 14:31:49

不,也不是那样的。但我刚想出来。我想我一定是大脑放屁了…
我没有在街区内的实体间骑自行车…哑,哑,哑
我知道我早该回家了。我的大脑已经精疲力竭了<谢谢布莱科,你说得对!

Dnereb 发表于 2006-6-7 14:48:17

此外,如果图层在PS视口中设置为冻结,这将使其不会被删除。

Dnereb 发表于 2006-6-7 15:02:51

如果块中包含要清除的层上的实体,则有另一种清除方法。这是我最喜欢的一个把戏,每次没别的办法时我都会挖出来
dxf文件是文本文件,文本搜索和替换将起作用。假设你有一层“玻璃墙”。您可以搜索“A-Glass-Wall”并替换为0。
一个大小良好的.dwg的dxf文件将有数百万行,因此您无法使用记事本之类的内存编辑器。我有Unix实用程序,所以我使用SED。但是,如果您没有流编辑器,您可以编写一个小程序来打开dxf文件,并在运行过程中进行循环
如果你是真正的dxf专家,还有其他编辑技巧——比如用0替换z坐标。一如既往,要小心。全局搜索和替换可能会创建一个怪物,当您尝试加载它时会崩溃。确保在开始之前保存所有内容。

Arizona 发表于 2006-6-7 15:57:30

在层中创建和删除的基本原则代码0]
如果您无法从这里解决问题,请询问详细信息....祝您好运

Dnereb 发表于 2006-6-7 16:05:59

贝伦德,
我想阿诺齐拉已经解决了。
页: [1] 2
查看完整版本: 删除层