找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1034|回复: 4

[求助]:求教选择集问题

[复制链接]
发表于 2007-5-17 14:03:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我图形中有的图元包含如下的扩展数据
Dim datatype(0 To 7) As Integer
Dim data(0 To 7) As Variant
datatype(0) = 1001: data(0) = ""
datatype(1) = 1000: data(1) = jfh
datatype(2) = 1003: data(2) = "0"
datatype(3) = 1040: data(3) = 1.232
datatype(4) = 1041: data(4) = 100’此处有时候为100,有时候为0
datatype(5) = 1070: data(5) = jfid
datatype(6) = 1071: data(6) = zdh + 1
datatype(7) = 1042: data(7) = 10
ty.SetXData datatype, data
ThisDrawing.Application.Update

我想构建扩展数据里data(4) = 100的图元的选择集,可怎么总是出错呀?请高手指点
下面是我的代码
Sub pd()
On Error Resume Next
Dim p1(0 To 2) As Double
Dim p2(0 To 2) As Double
Dim fType, fData As Variant
'p1(0) = 100
'p1(1) = 100
'p1(2) = 0
'p2(0) = 500
'p2(1) = 500
'p2(2) = 0
Dim x, y As Double
Dim dh  As Long
fType(0) = 1041: fData(0) = 100
'ftype(1) = 2: fdata(1) = "界址圈"
'Call CreateSSetFilter(fType, fData, 1041, 100)
'tyxzj.Select acSelectionSetAll, , , fType, fData
Dim ggdxzj As AcadSelectionSet
If Not IsNull(ThisDrawing.SelectionSets.Item("jzq")) Then
Set ggdxzj = ThisDrawing.SelectionSets.Item("jzq")
ggdxzj.Delete
End If
Set ggdxzj = ThisDrawing.SelectionSets.Add("jzq")
ggdxzj.Select acSelectionSetAll, , , fType, fData
'ggdxzj.Select acSelectionSetWindow, p1, p2
'tyxzj.Select acSelectionSetAll, , , ftype, fdata
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2007-5-23 16:14:17 | 显示全部楼层
大哥:不清楚呀?我的意思是在cad图形里有图元包函扩展数据 data(4) = 100。
我想构建一个选择集来选定这些图元
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-25 16:38:17 | 显示全部楼层
扩展数据无法直接采用过滤器进行过滤选择。
试试下面的代码。

Dim datatype(0 To 7) As Integer
Dim data(0 To 7) As Variant
datatype(0) = 1001: data(0) = "jfh" '注册应有程序名不能为空字符串
datatype(1) = 1000: data(1) = jfh
datatype(2) = 1003: data(2) = "0"
datatype(3) = 1040: data(3) = 1.232
datatype(4) = 1041: data(4) = 100 '此处有时候为100,有时候为0
datatype(5) = 1070: data(5) = jfid
datatype(6) = 1071: data(6) = zdh + 1
datatype(7) = 1042: data(7) = 10
ty.SetXData datatype, data
ThisDrawing.Application.Update


Sub pd()
On Error Resume Next
Dim p1(0 To 2) As Double
Dim p2(0 To 2) As Double
Dim fType, fData As Variant
Dim x, y As Double
Dim dh As Long
Dim ggdxzj As AcadSelectionSet
Dim SS1 As AcadSelectionSet
Dim AddObjs(0) As AcadEntity
Dim xdataOut As Variant
Dim xtypeOut As Variant
Dim i As Long

With ThisDrawing
  On Error Resume Next
  .SelectionSets("ss1").Delete
   Set SS1 = .SelectionSets.Add("ss1")
End With


If Not IsNull(ThisDrawing.SelectionSets.Item("jzq")) Then
Set ggdxzj = ThisDrawing.SelectionSets.Item("jzq")
ggdxzj.Delete
End If
Set ggdxzj = ThisDrawing.SelectionSets.Add("jzq")
'ggdxzj.Select acSelectionSetAll, , , fType, fData
ggdxzj.Select acSelectionSetAll '去掉过滤条件,选择全部实体

For Each DrawingSelected In ggdxzj

   DrawingSelected.GetXData "jfh", xtypeOut, xdataOut '注意应用程序名“jfh”应与前面写数据时相对应
   If IsEmpty(xdataOut) = False Then
    For i = 0 To UBound(xtypeOut)
        If xtypeOut(i) = 1041 And xdataOut(i) = 100 Then '增加判断条件
        Set AddObjs(0) = DrawingSelected
        SS1.AddItems AddObjs
        End If
     Next i

   End If
  Next
  
  SS1.Highlight True '点亮满足条件的图形对象

End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-11 12:34:03 | 显示全部楼层
谢谢!我去试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-3 07:31:51 | 显示全部楼层
XData除轻量多义线外只能通过1001码过滤
可以用下面的方式构建XData
1001,"myapp"
1002,"{"
1001,"100"
1002,"}"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 08:00 , Processed in 0.281680 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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