что для TraceBoundary для .NET, что для acedTraceBoundary для ObjectARX... контур создается при условии, что точка и примитивы, участвующие в работе полностью видимы на экране.
не пробовал, то может сработать... попробуй спрятать все примитивы, которые не попали в Entity[] ents. да, нужен полный пробег по базе, с проверкой вхождения текущего объекта в ents (хотя проще с AcDbObjectId)
если объяснить на пальцах, то в ObjectARX это может выглядеть так:
...
// перебор всех объектов чертежа (ну или листа, если в нем команда будет работать)
if (!entIds.contains(curId))
{
открыть AcDbEntity по curId для записи
AcDbEntity::setVisibility(AcDb::kInvisible);
AcDbEntity::recordGraphicsModified(Adesk::kTrue); // может будет работать и без этого
AcDbEntity::close();
сохранить curId в массив
}
тут делаем границу
for (int i = 0; i < длинна массива спрятанных элементов; i++)
{
открыть AcDbEntity по ID[i] для записи
AcDbEntity::setVisibility(AcDb::kVisible);
AcDbEntity::recordGraphicsModified(Adesk::kTrue); // может будет работать и без этого
AcDbEntity::close();
}
...