明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1650|回复: 5

[VBA]为什么我不能过滤掉不要的图层

[复制链接]
发表于 2003-12-22 19:29:00 | 显示全部楼层 |阅读模式
为什么我不能过滤掉不要的图层?
sub aaa()   

    Dim txLa As AcadLayer
    Dim TxSS As AcadSelectionSet
    Dim i As Integer, j As Integer

    Dim Fd(0) As Integer
    Dim fdata As Variant, ftype As Variant
   
    Fd(0) = 8
    fdata = Fd(0)

    Set TxSS = ThisDrawing.SelectionSets.Add("Txss")

    For i = 0 To ThisDrawing.Layers.Count - 1
        Set txLa = ThisDrawing.Layers.Item(i)
        If txLa.Name <> "0" Then
            
            ftype = txLa.Name
            TxSS.Select acSelectionSetAll, ftype, fdata
'            Debug.Print TxSS.Item(0).Layer, TxSS.Item(0).ObjectName
            ThisDrawing.Export txLa.Name, "wmf", TxSS
            TxSS.Clear
        End If
    Next i
End Sub
 楼主| 发表于 2003-12-22 20:00:00 | 显示全部楼层
我的想法是将除0层外的其它层以wmf输出,但我却无法将不需要的图层中的图元滤掉。版主,我错在哪里?
发表于 2003-12-22 20:40:00 | 显示全部楼层
TxSS.Select acSelectionSetAll, ftype, fdata

这句有错吧
这样试试
TxSS.Select acSelectionSetAll, , , FType, FData
 楼主| 发表于 2003-12-22 21:50:00 | 显示全部楼层
bluemoon兄,这样不行,你在帮忙看看.
发表于 2003-12-22 21:57:00 | 显示全部楼层
有几个问题:
1.过滤器的FType, FData均应为变体数组,其中FType的元素必须为数组,而FData的元素必须为变体,它们形成一一对应的关系。
2.过滤非“0”的图层,可以使用简单的“~0”来过滤,而不必你那么复杂。
3.正如bluemoon所说的,你的Select方法的参数写得有问题。
发表于 2004-1-3 17:05:00 | 显示全部楼层
先做图形净化可以吗?purge
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 10:46 , Processed in 0.173800 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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