Тема: Передать в обработку выделение

Как в VBA передать свому макросу существующее выделение?
Имеется в виду: например, MOVE при отсутствии выделения запрашивает объекты, при наличии -- двигает выделенные.

И еще: как передать выделение _из_ своей функции в системную?
Имеется в виду: Как при вызове, например, SendCommand("_block") Автокад получил бы выделенные объекты?
Я так создаю блоки из существующих объектов. Криво, правда, но лучшего варианта найти не смог.

Заранее спасибо, с уважением Александр.

Re: Передать в обработку выделение

1. Точно не помню, пробовать времени нет, но типа  того:

Set sset = ThisDrawing.ActiveSelectionSet

2. Можно зделать выборку, а в самом автокаде воспользоваться аргументом "p", например _Select p

Re: Передать в обработку выделение

Wse widelennie objects stojat w ThisDrawing.PickfirstSelectionSet.Count
ThisDrawing.PickfirstSelectionSet.Item(i)

Re: Передать в обработку выделение

Sub Example_AddItems()
Dim ssetObj As AcadSelectionSet
Set ssetObj = ThisDrawing.SelectionSets.Add("TiiEST")
Dim entity As AcadEntity

ReDim ssobjs(0 To 3) As AcadEntity
i = 0
For Each entity In ThisDrawing.ModelSpace
     If entity.ObjectName = "AcDbLine" Then
         Set ssobjs(i) = entity
         i = i + 1
     End If
Next
ssetObj.AddItems ssobjs
ssetObj.Highlight True
ssetObj.Update
End Sub

Tol'ko razmernost' ssobjs dolgna bit' rawnoi chislu ob'ektow

Re: Передать в обработку выделение

OR

It  is my Answer to my own Question


Sub Example_AddItems()
Dim ssetObj As AcadSelectionSet
Set ssetObj = ThisDrawing.SelectionSets.Add("TiiST")
Dim entity As AcadEntity

ReDim ssobjs(0 To 0) As AcadEntity
i = 0
For Each entity In ThisDrawing.ModelSpace
     If entity.ObjectName = "AcDbBlockReference" Then
         Set ssobjs(i) = entity
         i = i + 1
     End If
Next
ssetObj.AddItems ssobjs
ssetObj.Highlight True
ssetObj.Update
End Sub

Re: Передать в обработку выделение

Спасибо.
PickfirstSelectionSet -- то, что надо. Впрочем, пока оставлю как есть -- _select p.
Пойдет в качестве фичи в следующую версию :).

Re: Передать в обработку выделение

Почему-то этот ПикФёст всегда нуль когда макрос начинает работать, хотя ^c^c убраны?