明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1148|回复: 2

请教:过滤语法好像没错,为什么选择集里没对象呢?

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

Dim Pt1 As Variant
Dim Pt2 As Variant
EntObj(0).GetBoundingBox Pt1, Pt2

'创建选择集
Dim ssetObj As AcadSelectionSet
Set ssetObj = ThisDrawing.SelectionSets("SSET")
If Err Then Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
ssetObj.Clear

'设置图层过滤

    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 8
    dataValue(0) = "dgx"


'选择与该直线相交或者包含在外框中的所有实体
ssetObj.Select acSelectionSetCrossing, Pt1, Pt2, gpCode, dataValue

发表于 2008-3-18 16:31:00 | 显示全部楼层
本帖最后由 作者 于 2008-3-18 16:39:29 编辑

1.你这一段是完整代码吗?没见到EntObj(0)的值,没见到错误处理
2.确认层dgx中与该直线有相交的物体。
  1. Public Sub mx()
  2.     Dim Pt1 As Variant
  3.     Dim Pt2 As Variant
  4.     Dim ssEnt As AcadSelectionSet
  5.     Dim EntObj(0) As AcadEntity
  6.     On Error Resume Next
  7.     Set ssEnt = ThisDrawing.SelectionSets.Add("ssEnt")
  8.     ssEnt.SelectOnScreen
  9.     Set EntObj(0) = ssEnt.Item(0)
  10.     ssEnt.Clear: ssEnt.Delete
  11.     EntObj(0).GetBoundingBox Pt1, Pt2
  12.    
  13.     Dim ssetObj As AcadSelectionSet
  14.     Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
  15.     ssetObj.Clear
  16.     Dim gpCode(0) As Integer
  17.     Dim dataValue(0) As Variant
  18.     gpCode(0) = 8
  19.     dataValue(0) = "1"
  20. ssetObj.Select acSelectionSetCrossing, Pt1, Pt2, gpCode, dataValue
  21. ssetObj.Clear
  22. ssetObj.Delete
  23. End Sub
 楼主| 发表于 2008-3-18 18:08:00 | 显示全部楼层

谢谢了,搞定!

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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