Выделение SubEntity

Автор Тема: Выделение SubEntity  (Прочитано 6873 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн DziubynaАвтор темы

  • ADN Club
  • Сообщений: 41
  • Карма: 4
  • Skype: andriy.dziubyna
Выделение SubEntity
« : 15-03-2017, 11:29:26 »
Вопрос о программном выделении вложенного Entity.

Пример кода для выделении любого графического объекта:
Код - C++ [Выбрать]
  1. bool makeEntitySelected(const AcDbObjectId &id)
  2. {
  3.         ads_name ss, ename;
  4.  
  5.         // создайом набор выделения
  6.         if(acedSSAdd( NULL, NULL, ss ) != RTNORM)
  7.                 return false;
  8.  
  9.         // получаем имя примитива с ид
  10.         if(acdbGetAdsName( ename, id ) != Acad::eOk)
  11.                 return false;
  12.  
  13.         // добавляем выделеный примитив в набор
  14.         if(acedSSAdd( ename, ss, ss ) != RTNORM)
  15.                 return false;
  16.  
  17.         // выделяем примитив вместе с грипами
  18.         acedSSSetFirst( ss, NULL );
  19.  
  20.         return (acedSSFree( ss ) == RTNORM);
  21. }

Тут все просто.
Нашел примеры как запросить у пользователя SubEntity, как проанализировать какая SubEntity выделена. Но не могу найти решения как программно выделить (чтобы появились грипы, не просто подсветить) SubEntity если у меня есть AcDbObjectId нужного Entity, и для нужного мне SubEntity есть GSMarker  и AcDbFullSubentPath. Может кто-то знает решение?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выделение SubEntity
« Ответ #1 : 15-03-2017, 14:15:26 »
Но не могу найти решения как программно выделить (чтобы появились грипы, не просто подсветить) SubEntity
Насколько мне известно такого API не существует, но я уточню в ADN DevHelp.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн DziubynaАвтор темы

  • ADN Club
  • Сообщений: 41
  • Карма: 4
  • Skype: andriy.dziubyna
Re: Выделение SubEntity
« Ответ #2 : 15-03-2017, 14:59:49 »
но я уточню в ADN DevHelp.

Спасибо!

Отмечено как Решение Dziubyna 15-03-2017, 16:00:19

Оффлайн DziubynaАвтор темы

  • ADN Club
  • Сообщений: 41
  • Карма: 4
  • Skype: andriy.dziubyna
Re: Выделение SubEntity
« Ответ #3 : 15-03-2017, 16:00:14 »
Спасибо! Уже сам разобрался. Выглядит вот так:

Код - C++ [Выбрать]
  1. bool makeSubEntitySelected(const AcDbFullSubentPath &path)
  2. {
  3.         ads_name ss;
  4.         // создайом набор выделения
  5.         if(acedSSAdd( NULL, NULL, ss ) != RTNORM)
  6.                 return false;
  7.  
  8.         // добавляем SubEntity
  9.         if (acedSSSubentAdd(path, ss, ss) != RTNORM)
  10.                 return false;
  11.  
  12.         // выделяем примитив вместе с грипами
  13.         acedSSSetFirst( ss, NULL );
  14.  
  15.         return (acedSSFree( ss ) == RTNORM);
  16. }

Что-то сходу не нашел этой функции

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выделение SubEntity
« Ответ #4 : 15-03-2017, 16:22:05 »
Отлично! Не думал, что так сработает.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение