Тема: Как выделить программно объекты модели в листе ?

Есть трехмерные объекты в модели.
Есть Вьюпорты на лайотах.
Как можно получить объект модели, тыкая мышкой его изображение на вьюпорте в лайоте?
(Это нужно для проставления позиций и характеристик указываемых объектов на выносках в лайоте)
Просто ..utility.GetEntity достает лишь объекты модели в модели или объекты лайота в лайоте, а на объекты модели тыкаемые из лайота ругается.

Re: Как выделить программно объекты модели в листе ?

> Буссе Д.
надо активировать pviewport

Re: Как выделить программно объекты модели в листе ?

Рисуем названия блоков из модели на листе
Пример без нормальных проверок, зато наглядно и просто показывает как указать объект модели из листа и нарисовать в листе имя указанного пользователем блока.
Смущает одно, Thisdrawing.ActivePviewport указывает на вьюпорт, который пользователь видит в данный момент, а если вьюпортов на лайоте несколько, то у казывает на тот, который был выделен ранее или занимает весь экран. Это удобно, но будет ли работать всегда так хорошо? (Пробуется это на ACAD2005)
Вопрос знатокам: как не заставлять пользователя сначала указывать нужный вьюпорт, а потом уже тыкать нужный блок?
Можно как-то за один клик и определить нужный вьюпорт, и выбрать в нем объект?
(В голову приходят только вычурные решения по перехвату координат курсора и имитации двух кликов от юзера)

Sub DrawBlockName()
Dim returnObj As AcadObject
Dim basePnt As Variant
On Error GoTo finish
ThisDrawing.ActivePViewport.Display True
ThisDrawing.MSpace = True
ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"
ThisDrawing.MSpace = False
basePnt = ThisDrawing.Utility.GetPoint(, "Specify text [" & returnObj.Name & "] insertion point")
ThisDrawing.PaperSpace.AddText returnObj.Name, basePnt, 3
finish:
ThisDrawing.MSpace = False
    If Err <> 0 Then
        Err.Clear
        MsgBox "Program ended." & Err.Description, , "GetEntity Example"
        Exit Sub
    Else
        returnObj.Update
        MsgBox "The object type is: " & returnObj.Name, , "GetEntity Example"
        returnObj.Update
    End If
End Sub