C : VBA July 08, 2005
●図形の選択3
選択Filterの適用
LISPを知っていればカンタンなことだが
知らないひとは
「コマンド:Filter」から条件をとりだす。
1、「選択フィルタ」のリストから
適用したい条件を選び、「リストに追加」
「適用」クリックし試してみる。
2、成功なら名前入力「名前を付けて保存」
3、エクスプローラで「filter.nfl」 ファイルを検索
メモ帳で開く
括弧”( )”の部分をコピー
(8 . "A-Anno-Note")
(0 . "*POLYLINE")
これをVBで配列に割当てる
Dim GroupCode(0 to 1) As
Integer
Dim DataValue(0 to 1) As Variant
GroupCode(0) =
8
DataValue(0)
= "A-Anno-Note"
GroupCode(1) = 0
DataValue(1)
= "*POLYLINE"
____________________________________________
Sub Example_Select3()
'Filterの適用
Dim SSet As
AcadSelectionSet
Dim GroupCode(4) As Integer
Dim DataValue(4) As Variant
Dim acadObj As AcadObject
On Error Resume Next
' Delete the Selection Set if it Exists
If Not IsNull(ThisDrawing.SelectionSets.Item("SS1"))
Then
Set SSet =
ThisDrawing.SelectionSets.Item("SS1")
SSet.Delete
End If
Set SSet =
ThisDrawing.SelectionSets.Add("SS1")
'Setup Selection Set Filter
'(-4 . "<OR")(0 . "LINE")(0 . "*POLYLINE")(0 . "CIRCLE")(-4 .
"OR>")
GroupCode(0) = -4
DataValue(0) = "<OR"
GroupCode(1) = 0
DataValue(1) = "LINE"
GroupCode(2) = 0
DataValue(2) = "*POLYLINE"
GroupCode(3) = 0
DataValue(3) = "CIRCLE"
GroupCode(4) = -4
DataValue(4) = "OR>"
SSet.SelectOnScreen GroupCode, DataValue
For Each acadObj In SSet
Debug.Print acadObj.ObjectName
Next
End Sub
このエントリーのトラックバックURL:
http://www.kkkxcec.com/supportwlog/mt-tb.cgi/28
