乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 60|回复: 3

[练习]怎样用简单的方法过滤先选择后操作的选择集?

[复制链接]

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2004-1-10 13:10:00 | 显示全部楼层 |阅读模式
使用PickfirstSelectionSet属性取得的选择集是先选择后操作的选择集,它的优点是可以按照我们平常操作ACAD的习惯,选定对象后再执行程序。
该属性可以点击以下链接查看:
http://www.mjtd.com/object/acad2004/idh_pickfirstselectionset.htm
现在的问题是
该属性取得的选择集不可以带过滤器,怎样用简单的方法使用过滤器筛选其中的对象。
回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2004-1-10 15:17:00 | 显示全部楼层
;;我用LISP來倒亂的,其實改為VBA即可
(SSGET &quot" '((0 . "LINE")))
回复

使用道具 举报

26

主题

177

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
281
发表于 2004-2-2 08:59:00 | 显示全部楼层
可不可以用,先用PickfirstSelectionSet属性做一个选择集操作一次,然后用
object.Select acSelectionSetPrevious 来过滤?
&lt class=DefConstHead&gtrevious
&lt class=DefineText>Selects the most recent selection set. This mode is ignored if you switch between paper space and model space and attempt to use the selection set.
Last
&lt class=DefineText>Selects the most recently created visible objects.
回复

使用道具 举报

0

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
8
发表于 2004-7-28 12:21:00 | 显示全部楼层
该文章,参考mjtd文章:
如果写的程序直接在VBA IDE中点击运行项,PickfirstSelectionSet方法是可行,可以做到先选择后操作。
                         但我们不可能运行VBA程序都这样做,最麻烦的一种就是使用工具菜单->宏对话框来执行程序,但这种方法已经不能使用PickfirstSelectionSet方法了,也就是说PickfirstSelectionSet方法得不到所要的选择集。
                         通过其它很多方法如:
                         直接使用命令-VBARUN UnNameGroup.dvb!AddUnNameGroup也不能用先选择后操作方法;
                         直接用(VL-VBARUN "UnNameGroup.dvb!AddUnNameGroup") 执行也不能用先选择后操作方法;
                         编个LISP程序来执行该宏也不行。
                         关键问题是调用vba命令 _.vbarun,我们跳过vbarun就行了。
                         如下:
Private Sub AcadDocument_BeginLisp(ByVal FirstLine As String)
Select Case UCase(FirstLine)
                                                 Case "(C:GADD)"
                                                                                                 AddUnNameGroup
                                                 Case "(C:GDEL)"
                                                                                         MsgBox "gdel"
                                                                                         DelUnNameGroup
End Select
End Sub
(defun c:gadd()(princ))         (defun c:gdel()(princ))
command:gadd
                         就可以了!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-16 03:13 , Processed in 0.428634 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表