明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: kennethxie

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

  [复制链接]
 楼主| 发表于 2004-6-28 16:36:00 | 显示全部楼层
选择集里好像默认的是256个对象,如果超过的部分怎么办呢?
发表于 2004-6-28 22:10:00 | 显示全部楼层
?没有这回事吧,我画了4000多个实体(直线和圆),下面的测试代码都选中了呀 Sub df()
Dim ss1 As AcadSelectionSet
Dim ss2 As AcadSelectionSet
Dim ft(0) As Integer, fd(0)
Set ss1 = ThisDrawing.SelectionSets.Add("*Tls1*")
Set ss2 = ThisDrawing.SelectionSets.Add("*Tls2*")
ss1.Select acSelectionSetAll
ft(0) = 0: fd(0) = "Line"
ss2.Select acSelectionSetPrevious, , , ft, fd MsgBox ss2.Count ss1.Delete
ss2.Delete
End Sub
 楼主| 发表于 2004-6-30 15:42:00 | 显示全部楼层
斑竹,我试过了,在监视窗口里面默认只监视256个Item,其实是不限数目的。谢谢你的指导,我已经完成了这部分的开发。但是还有一个性能问题请教一下。


用commondialog控件选取文件时,属性maxfilesize太小的话能选取的文件就很少,但是如果把它设的大的话,又很慢,有时候会死机的。怎么办呢?
发表于 2004-7-1 00:24:00 | 显示全部楼层
Sub t6()
On Error Resume Next
Dim i As AcadEntity
Dim ft(0) , fd(0) As Integer
Dim ss As AcadSelectionSet
ThisDrawing.SelectionSets("CURRENT").Delete
Set ss = ThisDrawing.ActiveSelectionSet
ft(0) = 0: fd(0) = "BLOCKREF" ss.clear
ss.Select acSelectionSetAll, , , ft, fd
For Each i In ss
i.NAME = "XX" MSGBOX i.NAME
Next i
ss.Clear
ss.Delete
End Sub
这样是不是可以把当前图形中的所有图块加入到一个选择集??

发表于 2004-7-1 00:27:00 | 显示全部楼层
ft(0) = 8: fd(0) = "blockref"
ss.Select acSelectionSetAll, , , ft, fd
用上面的代码是不是可以得到当前图形中的所有图快???
发表于 2004-7-1 08:27:00 | 显示全部楼层



ft(0) = 0: fd(0) = "insert"
发表于 2006-12-28 16:24:00 | 显示全部楼层
多看看多练习,我是新手,路过抄袭一下,不好意思啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 21:45 , Processed in 0.166377 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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