mccad 发表于 2004-1-10 13:10:00

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

使用PickfirstSelectionSet属性取得的选择集是先选择后操作的选择集,它的优点是可以按照我们平常操作ACAD的习惯,选定对象后再执行程序。
该属性可以点击以下链接查看:
http://www.mjtd.com/object/acad2004/idh_pickfirstselectionset.htm
现在的问题是

该属性取得的选择集不可以带过滤器,怎样用简单的方法使用过滤器筛选其中的对象。

龙龙仔 发表于 2004-1-10 15:17:00

;;我用LISP來倒亂的,其實改為VBA即可
(SSGET "P" '((0 . "LINE")))

subtlation 发表于 2004-2-2 08:59:00

可不可以用,先用PickfirstSelectionSet属性做一个选择集操作一次,然后用


object.Select acSelectionSetPrevious 来过滤?


<P class=DefConstHead>Previous
<P 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


<P class=DefineText>Selects the most recently created visible objects.

leer 发表于 2004-7-28 12:21:00

该文章,参考mjtd文章:


如果写的程序直接在VBA IDE中点击运行项,PickfirstSelectionSet方法是可行,可以做到先选择后操作。 <BR>                       但我们不可能运行VBA程序都这样做,最麻烦的一种就是使用工具菜单-&gt;宏对话框来执行程序,但这种方法已经不能使用PickfirstSelectionSet方法了,也就是说PickfirstSelectionSet方法得不到所要的选择集。 <BR>                       通过其它很多方法如: <BR>                       直接使用命令-VBARUN UnNameGroup.dvb!AddUnNameGroup也不能用先选择后操作方法; <BR>                       直接用(VL-VBARUN "UnNameGroup.dvb!AddUnNameGroup") 执行也不能用先选择后操作方法; <BR>                       编个LISP程序来执行该宏也不行。 <BR>                       关键问题是调用vba命令 _.vbarun,我们跳过vbarun就行了。


                       如下:<BR>Private Sub AcadDocument_BeginLisp(ByVal FirstLine As String) <BR>Select Case UCase(FirstLine) <BR>                                               Case "(C:GADD)" <BR>                                                                                               AddUnNameGroup <BR>                                               Case "(C:GDEL)" <BR>                                                                                       MsgBox "gdel" <BR>                                                                                       DelUnNameGroup <BR>End Select <BR>End Sub


(defun c:gadd()(princ))       (defun c:gdel()(princ))


command:gadd <BR>                       就可以了!
页: [1]
查看完整版本: [练习]怎样用简单的方法过滤先选择后操作的选择集?