明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1397|回复: 3

[求助]只把图层打开的对象加入到选择集遇到问题

[复制链接]
发表于 2008-12-18 12:14:00 | 显示全部楼层 |阅读模式

各位高手,麻烦你们帮帮我 看看程序,我只想把图层设置为打开的那些实体对象加入到选择集,可以下面的代码却没有把任何对象加入到选择集,请帮我看看问题出在什么地方了 谢谢

'把图层设置为关闭的过滤掉
    Dim entry As AcadLayer
    ReDim filterdata(0 To ThisDrawing.Layers.Count - 1) As String
    Dim NO1 As Integer
    NO1 = 0
    '遍历图层
    For Each entry In ThisDrawing.Layers
        If entry.LayerOn = True Then
            filterdata(NO1) = entry.Name
        End If
    Next
    '定义选择集过滤器
    Dim filterTYPE1() As Integer
    Dim filterDATA1() As String
    Dim e1 As Integer
    For e1 = 0 To NO1
        filterTYPE1(e1) = 8
        filterDATA1(e1) = filterdata(e1)
    Next e1
    ssetObj.Select acSelectionSetAll, , , filterTYPE1, filterDATA1

发表于 2008-12-18 12:36:00 | 显示全部楼层

你没有加入“OR”的逻辑,所以就变成了“AND”了。

如果只是OR,可以把所有图层用逗号隔开,所以上面的程序可以简单化, 只需要把过滤的图层名组合在一行里用逗号隔开。

发表于 2008-12-18 14:29:00 | 显示全部楼层

dim n as integer,i as integer

dim ft(0) as integer

dim fd(0)

ft(0)=8

dim Sl() as string

n=-1

for i=0 to thisdrawing.layers.count-1

if thisdrawing.layers(i).layeron=true then

    n=n+1

redim preserve sl(n)

  sl(n)=thisdrawing.layers(i).name

endif

next i

fd(0)=join(sl,",")

dim sset as acadselection

.......

....

 楼主| 发表于 2008-12-18 15:32:00 | 显示全部楼层

真心感谢 上面两位。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 05:49 , Processed in 0.161858 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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