Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Даниил от 16-02-2015, 13:41:40
-
Здравствуйте. Подскажите, каком метод позволит выделить объект на чертеже, но не HighLight().
Данный метод не подходит в том случае, когда необходимо выделить объект типа DBPoint. Т.е. на сколько я понял, он выделяет точку, но из за ее размеров данное действие не заметно для глаз
Буду благодарен за помощь.
-
SetImpliedSelection()
-
Метод принимает на вход либо SelectionSet, либо ObjectId, т.е. я не могу передать ему, к примеру dbPoint
-
Метод принимает на вход либо SelectionSet, либо ObjectId, т.е. я не могу передать ему, к примеру dbPoint
У DBPoint есть свойство ObjectId
-
Данный метод не подходит в том случае, когда необходимо выделить объект типа DBPoint. Т.е. на сколько я понял, он выделяет точку, но из за ее размеров данное действие не заметно для глаз
Что ты понимаешь под термином "выделить"? Это очень существенный вопрос без ответа на который нельзя продвинутся дальше. Выделение в смысле AutoCAD - это действительно то, что даёт SetImpliedSelection, т.е. эмуляция ручного выделения примитива на экране. HighLight - это просто подсветка. Обычно чтобы было хорошо видно нужно что-то с примитивом циклически проделать. Один из вариантов, это циклически HighLight/UnHighLight или изменение его цвета (что-то типа желтого мигания светофора).
-
Я имел ввиду скорее ручной ввод. У меня есть дерево объектов, в нем я выбираю объект и идентифицирую для пользователя с помощью выделения его на чертеже. пользовался HighLight(), но в случае с объектом "Точка" метод HighLight() не помогал, т.к. этого выделения просто не было видно.
Эмуляция же ручного ввода помогла.
необходимо было создать массив ObjectId[] нужной размерности, (мне хватило [1], т.к. в дереве объектов могу выделить только один элемент) и передать ему нужный ObjectId
Благодарю за помощь
-
Тогда отметь ответ German как "Решение".