Тема: entget(car(entsel)) Как написать аналог на VBA

есть группа примитивов, как на VBA написать процедуру которая при наведении мышки выбирает/подсвечивает один объект в группе над которым она находится  а не всю группу целиком как SelectOnScreen. На LISP это выглядит как - entget(car(entsel))
P.S. Без использования фильтров, только выбор текущего примитива

Re: entget(car(entsel)) Как написать аналог на VBA

object.GetEntity Object, PickedPoint[, Prompt]

Re: entget(car(entsel)) Как написать аналог на VBA

Спасибо за ответ и еще в продолжении темы - как на VBA взять отсюда имя группы в которую входит полученный примитив Object
т.е. на VLISP (vla-get-name (vlax-ename->vla-object (cdr (assoc 330 (entget (car(entsel)))))))
я смог получить только имя примитива returnObj.ObjectName а как добраться до имени содержащей его группы owner?

Re: entget(car(entsel)) Как написать аналог на VBA

С группами мало работал.
Что приходит на ум:
1. Зная Имя группы проверить принадлежит ли этот объект какой-либо из групп.
2. Возможно как-то через OwnerID и затем ObjectIdToObject...
Может я и не прав

Re: entget(car(entsel)) Как написать аналог на VBA

я не большой знаток объектной модели AutoCAD, да еще и в контекстной подсказке выводятся, как я понял, не все методы и свойства - вобщем по ObjectIdToObject OwnerID получил .ObjectName="AcDbBlockTableRecord", а где лежит имя блока не знаю, перебор всех примитивов и определение принадлежности к группе не подходит, нужно сразу

Re: entget(car(entsel)) Как написать аналог на VBA

Нет метода, который по примитиву возвращает группу(или группы) в которую(которые) он входит. Это можно сделать в VBA только проходом по всем группам и проверкой принадлежности примитива к группе...

Re: entget(car(entsel)) Как написать аналог на VBA

> Александр Ривилис
Да с ObjectID попробывал - не катит.
Вот накрапал побыстренькому (там и ошибки иногда вылетают, т.ч. звиняйте):

Public Sub GetGroupName()
Dim returnObj As AcadObject
Dim basePnt As Variant
Dim GrObj As AcadGroups, gr As AcadGroup, ent As AcadObject
Dim ObjectID As Long, groupName As String
Dim ParentObj As AcadObject
ThisDrawing.Utility.GetEntity returnObj, basePnt, "Select an object"
Set GrObj = ThisDrawing.Groups
ObjectID = returnObj.ObjectID
For Each gr In GrObj
    For Each ent In gr
        If ent.ObjectID = ObjectID Then
            groupName = gr.Name
            Exit For
        End If
    Next ent
Next gr
MsgBox "Group Name is " & groupName
End Sub