明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1933|回复: 3

[求助]提示Select 在SelectionSet上失败!请高手指教!!

[复制链接]
发表于 2004-2-15 21:56:00 | 显示全部楼层 |阅读模式
Dim mysel As AcadSelectionSet
dim gpcode(2) as integer
dim gpvalue(2) as variant
dim groupcode as variant
dim groupvalue as variant gpcode(0) = 0 : gpvalue(0) = "insert"
gpcode(1) = -4 : gpvalue(1) = "="
gpcode(2) = 2 : gpvalue(2) = blockr.name
groupcode = gpcode
groupvalue = gpvalue
set mysel = acaddoc.SelectionSets.Add("mysel")
mysel.select acSelectionSetAll,,,groupcode,groupvalue 在运行到mysel.select acSelectionSetAll,,,groupcode,groupvalue这句时,提示Select 在SelectionSet 上失败!请高手指教!!
发表于 2004-2-16 21:28:00 | 显示全部楼层

回复

你写的还挺离谱:

<RE class=Code>Sub Example_Select()
    ' This example adds members to a selection set, first by crossing and
    ' then by filtering for circles.
   
    ' Create the selection set
    Dim ssetObj As AcadSelectionSet
    Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
   
   
    ' Add all object to the selection set that lie within a crossing of (28,17,0) and
    ' (-3.3, -3.6,0)
    Dim mode As Integer
    Dim corner1(0 To 2) As Double
    Dim corner2(0 To 2) As Double
   
    mode = acSelectionSetCrossing
    corner1(0) = 28: corner1(1) = 17: corner1(2) = 0
    corner2(0) = -3.3: corner2(1) = -3.6: corner2(2) = 0
    ssetObj.Select mode, corner1, corner2
   
    ' Add all the Circles to the selection set that lie within the crossing of (28,17,0) and
    ' (-3.3, -3.6,0) by filtering from the current drawing
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = "Circle"
   
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue
   
    ssetObj.Select mode, corner1, corner2, groupCode, dataCode
   
End Sub</PRE>
 楼主| 发表于 2004-2-16 23:42:00 | 显示全部楼层
blockr是我得到的AcadBlockreference对象 blockr.name 是我得到了块名,经检查确实得到了。 acaddoc 是我得到的ActivateDocument 这也是没有错的 gpcode(0) = 0 : gpvalue(0) = "insert"
gpcode(1) = -4 : gpvalue(1) = "="
gpcode(2) = 2 : gpvalue(2) = blockr.name
我是想得到以blockr.name为过滤条件的选择集 Dim mysel As AcadSelectionSet
dim gpcode(2) as integer
dim gpvalue(2) as variant
dim groupcode as variant
dim groupvalue as variant gpcode(0) = 0 : gpvalue(0) = "insert"
gpcode(1) = -4 : gpvalue(1) = "="
gpcode(2) = 2 : gpvalue(2) = blockr.name
groupcode = gpcode
groupvalue = gpvalue
set mysel = acaddoc.SelectionSets.Add("mysel")
mysel.select acSelectionSetAll,,,groupcode,groupvalue mysel.select acSelectionSetAll,,,groupcode,groupvalue 这句就是过不去啊
我用的是VB
发表于 2004-2-17 12:05:00 | 显示全部楼层
  1.        Dim ss As AcadSelectionSet
  2.        Set ss = CreatSSet
  3.        Dim FilterType As Variant
  4.        Dim FilterData As Variant
  5.        Dim FType(1) As Integer
  6.        Dim FData(1) As Variant
  7.        FType(0) = 0
  8.        FData(0) = "INSERT" '图元名
  9.        FType(1) = 2
  10.        FData(1) = "B-BTL"   '图块名
  11.        FilterType = FType
  12.        FilterData = FData
  13.        ss.Select acSelectionSetAll, , , FilterType, FilterData
以下是用到的创建空白选择集的函数:
  1. Function CreatSSet() As AcadSelectionSet
  2.        On Error Resume Next
  3.        ThisDrawing.SelectionSets("mccad").Delete
  4.        Set CreatSSet = ThisDrawing.SelectionSets.Add("mccad")
  5. End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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