明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1989|回复: 2

关于选择集的删除问题???

[复制链接]
发表于 2006-12-6 21:20:00 | 显示全部楼层 |阅读模式

(1)

Private Sub UserForm_Initialize()
'清空选择集合中已有的选择集。避免重名
   Dim objSset As AcadSelectionSet
   
   Dim Intstep As Integer
  
   If ThisDrawing.SelectionSets.count <> 0 Then
       For Each objSset In ThisDrawing.SelectionSets
            objSset.Delete
          
        Next objSset
   
   End If
   
End Sub

(2)
Private Sub UserForm_Initialize()
'清空选择集合中已有的选择集。避免重名
   Dim objSset As AcadSelectionSet
   
   Dim Intstep As Integer
    If ThisDrawing.SelectionSets.count <> 0 Then
        For Intstep = 0 To (ThisDrawing.SelectionSets.count - 1)
            Set objSset = ThisDrawing.SelectionSets.Item(Intstep)
            objSset.Delete
       Next
      
   End If
   
End Sub

我用的事AutoCAD2004

当我用第一种方法的时候,如果有选择集存在(即selectionsets.count<>0)就会只删除选择集(selectionset)到剩余最后一个,然后再往选择集(selectionsets)内添加重名的选择集(selectionset)时,系统就会报错,而且关掉了autocad的界面.

用第二种方法时就一切ok

哪位高手指点一下是为什么???

发表于 2006-12-8 02:26:00 | 显示全部楼层

CAD的帮助文件中有这样的例子,用的不是你这样的方法,它的方法能具体的删除指定名字的选择集.

Dim SSblk As AcadSelectionSet

 On Error Resume Next
 ' Delete the selection set if it exists
 If Not IsNull(ThisDrawing.SelectionSets.Item("blk")) Then
    Set SSblk = ThisDrawing.SelectionSets.Item("blk")
    SSblk.Delete
 End If

Set SSblk = ThisDrawing.SelectionSets.Add("blk")

 楼主| 发表于 2006-12-11 10:28:00 | 显示全部楼层

我想要的是删除选择集,在不知道该选择集的名字的情况下,删除掉它,然后再建立一个新的选择集。

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

本版积分规则

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

GMT+8, 2024-11-26 22:26 , Processed in 0.170121 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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