Тема: Получение из ACADa заранее выбраных объектов в VBA

Проблема в следующем: выбрал я каким либо путем какие-то объекты на чертеже. Как програмка VBA, запущенная уже после выбора может получить информацию об этих объектах. Через SelectionSets что-то никак нейдёт процесс.

Re: Получение из ACADa заранее выбраных объектов в VBA

Для одного элемента у меня работает следующий код:
dim elem As Object
dim SelectionSet As IAcadSelectionSet
Set SelectionSet = ThisDrawing.SelectionSets.SelectOnScreen
Set elem = SelectionSet

Re: Получение из ACADa заранее выбраных объектов в VBA

А для многих как

Re: Получение из ACADa заранее выбраных объектов в VBA

Такой процедурой можно сделать выбор только после запуска программы(VBA), а мне надо делать выбор до её запуска.

Re: Получение из ACADa заранее выбраных объектов в VBA

COMP, HSH. Для многих 100% сделать можно. Только нет времени забираться в справку. Если не лень посмотри и поэксперементируй сам. При выборе в массив записываются объекты по очереди в порядке выбора и им автоматически присваиваются соответствующие имена.
      А как бы ты обосновал необходимость сначала выбрать объекты, а потом запустить макрос VBA?

Re: Получение из ACADa заранее выбраных объектов в VBA

Я бы обосновал это тем как-то выбор по фильтру     я выбрал допустим все линии  одного типа и тд. Причем без использования средств VBA.

Re: Получение из ACADa заранее выбраных объектов в VBA

COMP, HSH. Извини, но я ничего не понял. Разве "средства VBA" мешают ручному выбору?

Re: Получение из ACADa заранее выбраных объектов в VBA

В VBA у меня здорово работал код:
     Dim ssetObj As AcadSelectionSet
     If Not ThisDrawing.SelectionSets("TEST_SSET") Is Nothing Then
       ThisDrawing.SelectionSets("TEST_SSET").Delete
     End If
    Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET")
     ' Add entities to a selection set by prompting user to select on the screen

     ssetObj.Select acSelectionSetPrevious
     MsgBox "Была выделена " & ssetObj(0).ObjectName

Re: Получение из ACADa заранее выбраных объектов в VBA

Нормально, иногда здорово работает код (смущает использование функции Error):
     Dim ssetObj As AcadSelectionSet
On Error Resume Next
     If Not ThisDrawing.SelectionSets("TEST_SSET") Is Nothing Then
       ThisDrawing.SelectionSets("TEST_SSET").Delete
     End If
    Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET")
     ' Add entities to a selection set by prompting user to select on the screen

     ssetObj.Select acSelectionSetPrevious
     MsgBox "Было выделено " & ssetObj.Count & " объектов"