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

13/12/2013

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

Вопрос :

У меня есть набор предварительного выбора и я хотел бы получить его копию сразу и целиком, а не копировать последовательно каждый примитив из набора при помощи вызова функции acedCommand (RTSTR, "_copy",..). Есть ли возможность вызвать однократно acedCommand (RTSTR, "_copy",..) для всего набора, как это делает AutoCAD?

Ответ :
Вы можете использовать набор, передав RTPICKS и набор в функцию acedCommand:

Код - C++: [Выделить]
  1. // Так как мы собираемся использовать набор предварительного выбора,
  2. // команда должна быть зарегистрирована с флагом ACRX_CMD_USEPICKSET
  3. static void AdskArxProject1_CopyPF(void)
  4. {
  5.     ads_name ss;
  6.     acedSSGet(_T("_I"),NULL,NULL,NULL,ss);
  7.     acedCommand(
  8.                     RTSTR,
  9.                     _T("_copy"),
  10.                     RTPICKS,
  11.                     ss,
  12.                     RTSTR,
  13.                     _T(""),
  14.                     RTNONE
  15.                 );
  16.     acedSSFree(ss);
  17. }

Так как мы собираемся использовать набор предварительного выбора,  команда должна быть зарегистрирована с флагом ACRX_CMD_USEPICKSET

Для того чтобы предварительный выбор в AutoCAD был разрешен, системная переменная PICKFIRST должна быть равна единице.

Источник: http://adndevblog.typepad.com/autocad/2012/07/using-pickfirst-selection-set-when-executing-copy-command.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=396

Опубликовано 13.12.2013