明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3098|回复: 16

请教:在VBA中如何使对象改变图层(补充一下)

  [复制链接]
发表于 2004-6-21 14:10:00 | 显示全部楼层 |阅读模式
谢谢斑竹大人刚才给我的回答,可能我的问题问得不是很清楚。


        我要做的是:把layer1中的所有对象都变成layer3的对象,但layer2中的不变。但是我不知道到底有多少对象,所以没办法改变对象属性啦,只能改变图层属性。类似于AutoCAD脚本:


layer                 


lock


layer2


unlock


layer1





select


all


change


p


la


layer3


谢谢!
发表于 2004-6-21 14:19:00 | 显示全部楼层
选择集+过滤器,选择一层所有对象 Sub t6()
On Error Resume Next
Dim i As AcadEntity
Dim ft(0) As Integer, fd(0)
Dim ss As AcadSelectionSet
ThisDrawing.SelectionSets("CURRENT").Delete
Set ss = ThisDrawing.ActiveSelectionSet
ft(0) = 8: fd(0) = "Layer1"
ss.Select acSelectionSetAll, , , ft, fd
For Each i In ss
i.Layer = "Layer3"
Next i
ss.Clear
ss.Delete
End Sub
发表于 2004-6-22 08:35:00 | 显示全部楼层
如果块引用的图层是layer4,但块引用中包含有layer1的物体,


用选择集选择时块引用内layer1的物体不能被选中。
 楼主| 发表于 2004-6-23 10:09:00 | 显示全部楼层
再请问一下,如果要选择两个图层里的对象,并使之加入另一个图层呢?


该怎么写代码?
发表于 2004-6-23 10:11:00 | 显示全部楼层
fd(0) = "Layer1,Layer2"


过滤器中用逗号隔开
 楼主| 发表于 2004-6-28 14:19:00 | 显示全部楼层
Sub layer500()
On Error Resume Next
Dim i As AcadEntity
Dim j As Integer
Dim ft(0) As Integer
Dim fd1(0 To 1) As String
Dim fd(0)
Dim ss As AcadSelectionSet

ft(0) = 8
fd1(0) = "24,10"
fd1(1) = "W"
For j = 0 To 1
fd(0) = fd1(j)
ThisDrawing.SelectionSets("CURRENT").Delete
Set ss = ThisDrawing.ActiveSelectionSet
ss.Select acSelectionSetAll, , , ft, fd For Each i In ss
i.Layer = j + 2
Next i
ss.Clear
ss.Delete
Next j
End Sub 我想用这个循环来做到10,24层的对象改变到第2层,W层的对象改变到第3层,结果发现10,24层的也变成第3层的了.调试的时候发现当j=1时,选择集把原来已经改为第二层的对象又选择到ss中去了.不知是为什么?谢谢帮我解答!
发表于 2004-6-28 14:47:00 | 显示全部楼层
ss.Select acSelectionSetAll, , , ft, fd               


前加入


ss.Clear
发表于 2004-6-28 14:48:00 | 显示全部楼层
ThisDrawing.SelectionSets("CURRENT").Delete
Set ss = ThisDrawing.ActiveSelectionSet
ss.Select acSelectionSetAll, , , ft, fd
ss.Clear
ss.Delete
应该是这些选择集的操作产生的,删除之后,又设为当前选择集,可能是引用了以前创建的了。 Set ss = ThisDrawing.ActiveSelectionSet ss.Clear
ss.Select acSelectionSetAll, , , ft, fd

直接这样试试。
 楼主| 发表于 2004-6-28 14:52:00 | 显示全部楼层
斑竹能向我介绍一下选择集的方法的用法和作用吗?


能不能介绍一本介绍autocad vba的好书或者好的网站
发表于 2004-6-28 15:02:00 | 显示全部楼层
选择集的方法的用法帮助里够明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 21:29 , Processed in 0.186868 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表