Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: Олег от 23-08-2023, 19:00:08

Название: acedSSGet
Отправлено: Олег от 23-08-2023, 19:00:08
подскажите пожалста как получить выбранные элементы командой acedSSGet с параметром _I.
какой параметр использовать?
ранее я регистрировал реактор на выбор элементов, а счас нужно в нужный момент ( введена команда ) проверить а есть ли выделенные объекты ( блоки на чертеже ).

повторюсь о логике работы.
вводится некая команда.
перед ее выполнением нужно проверить есть ли выделенные блоки которые  надо запомнить.

спасибо.
Название: Re: acedSSGet
Отправлено: Александр Ривилис от 23-08-2023, 19:18:44
Код - C++ [Выбрать]
  1. acedSSGet(L"_I", NULL, NULL, rbFilter, ss);
где rbFilter - фильтр выбора (цепочка resbuf).
Название: Re: acedSSGet
Отправлено: Олег от 23-08-2023, 19:22:10
я пробовал без фильтра. выдает ответ, что не было никакого выделения.
ответ  RTNONE.

а фильтр   я так понимаю чтобы выделить именно блоки ?
можете про него подробнее объяснить ?
Название: Re: acedSSGet
Отправлено: Александр Ривилис от 23-08-2023, 19:25:11
если не ставить фильтр то выдает что не было никакого выделения.
ответ  RTNONE
А какие флаги у твоей команды? Должен быть как минимум флаг ACRX_CMD_USEPICKSET. А если нужно будет менять набор предварительного выбора, то ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW. Читай документацию!
Название: Re: acedSSGet
Отправлено: Александр Ривилис от 23-08-2023, 19:25:34
а фильтр   я так понимаю чтобы выделить именно блоки ?
Да.
Название: Re: acedSSGet
Отправлено: Олег от 23-08-2023, 19:27:54
ACRX_CMD_TRANSPARENT
Название: Re: acedSSGet
Отправлено: Александр Ривилис от 23-08-2023, 19:30:55
ACRX_CMD_TRANSPARENT
Ну значит ты уже понял свою ошибку.
Название: Re: acedSSGet
Отправлено: Олег от 23-08-2023, 19:34:05
Огромное спасибо за помощь  :)
Название: Re: acedSSGet
Отправлено: Олег от 23-08-2023, 19:46:47
Должен быть как минимум флаг ACRX_CMD_USEPICKSET. А если нужно будет менять набор предварительного выбора, то ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW.

дополню что если не ставить ACRX_CMD_REDRAW то команда повторно работает так как будто выбор сделан но на самом деле его нет. чтобы команда правильно работала, реагировала на изменение выбора каждый раз при ее новом запуске то обязательно надо использовать оба флага.