明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1169|回复: 2

PickfirstSelectionSet选择集的问题?

[复制链接]
发表于 2007-11-16 13:36:00 | 显示全部楼层 |阅读模式

在VBA中使用PickfirstSelectionSet选择集的方法,在本论坛已经被讨论过了。在我的程序中因要利用PickfirstSelectionSet选择集,就按这些方法试了试。发现仅调用一次PickfirstSelectionSet选择集时,没有问题。但当多次调用PickfirstSelectionSet选择集时,还是有错误发生。不知道为什么?

程序如下:

Option Explicit
Public Sub PFSS()

   Dim ssetObj As AcadSelectionSet
   Dim obj As AcadObject
   Set ssetObj = PickFirstSSet
   If Not (ssetObj Is Nothing) Then
      For Each obj In ssetObj
         obj.Delete
      Next
      MsgBox ssetObj.Count & " object(s) deleted"
   End If
  
End Sub
Function PickFirstSSet() As AcadSelectionSet
     On Error Resume Next
     ThisDrawing.SelectionSets("PICKFIRST").Delete
     On Error GoTo 0
     Set PickFirstSSet = ThisDrawing.PickfirstSelectionSet
End Function

'
';;;下面是运行该VBA的LSP
';;; Path of PickFirstSelectSet.dvb is supposed as "...\\AutoCAD\\"
';;;
'(defun c:ccVLA ()
'   (princ)
'   (setq envcmd (getvar "CMDECHO"))
'   (setvar "CMDECHO" 0)
'   (vl-load-com)
'   (vla-runmacro (vlax-get-acad-object) (strcat (vla-get-path (vlax-get-acad-object)) "\\PFSSet.dvb!PFSS"))
'   (setvar "CMDECHO" envcmd)
'   (princ)
')

发表于 2007-11-16 21:40:00 | 显示全部楼层

Not (ssetObj Is Nothing)

不知道用的对不对?

是不是要通过ssetObj.Count来限定一下?

 楼主| 发表于 2007-11-19 12:27:00 | 显示全部楼层

第二次调用时,错误发生在函数PickFirstSSet() 的

     Set PickFirstSSet = ThisDrawing.PickfirstSelectionSet
语句。

该函数引用站内mccad发的帖子

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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