Тема: Работа с Layer Properyies Manager

Добрый ..., Всем!

Подскажите, пожалуйста.
Можно ли, провести вызов Layer Properyies Manager по аналогии с вызовом ColorDialog( функцией acedSetColorDialogTrueColor())с контролем входных и выходных переменных?

Re: Работа с Layer Properyies Manager

Аналога нет. Можешь вызвать команду. Только не понимаю зачем. Тебе нужно выбрать имя слоя? Ну так создай CListBox или CComboBox и помести в него имена всех слоев чертежа. Аналогии с acedSetColorDialogTrueColor() не вижу.

Re: Работа с Layer Properyies Manager

Создал CComboBox с именами слоёв при инициализации модальной формы с определением активного.

Необходимо, допустим, создать дополнительный слой(слои) и установление активного. Желательно, интерфейс должен быть приближён к стандарному.

Тогда следует вопрос. Может риторический. Чтобы отразить все слои с текущими изменениями необходимо сново "прокрутить" все операции относительно слоёв аналогичные инициализации?

Re: Работа с Layer Properyies Manager

Желательно, интерфейс должен быть приближён к стандарному.

у всех разные стандарты :)

Напрашивается вариант работы, например, такой:
1. посмотри тут: http://arx.litehosting.org.ua/lesson4.php
2. в комбобокс последним элементом пишешь строку "Добавить слой...".
3. текущим элементом делаешь текущий слой.
4. Обрабатываешь событие OnCbnSelchangeCombo на своем комбобоксе и если текущая позиция - последняя, вызываешь диалог с эдитом, в который нада вписать имя слоя. дальше проверяешь есть такой слой или нет, и обновляешь содержимое комбобокса.
5. если произошло событие 4, текущим элементом делаешь введенное пользователем имя.

Re: Работа с Layer Properyies Manager

Всем, спасибо! Пусть незвёздно, но работает.

Хотя. Глупая мысль осталась. Как же они это делают?
Попробовал через команду(нашёл пример на данном сайте). Неочень. Окно не открывается. Только запросы в командной строке. Пробовал в AutoCAD 2011.

Re: Работа с Layer Properyies Manager

Так попробуй:

static void InvokeLayer(void)
  {
    AcEdCommandStack* pCmdStack = acedRegCmds;
    AcEdCommand* pCmd = pCmdStack->lookupCmd(_T("LAYER"),true);
    if (pCmd && pCmd->functionAddr()) {
      AcRxFunctionPtr funcCommand = pCmd->functionAddr();
      funcCommand();
    } else {
      acutPrintf(_T("\nCommand LAYER is not found!"));
    }
  }

В AutoCAD 2006 аналогичный вызов работал.

Re: Работа с Layer Properyies Manager

В AutoCAD 2007,  AutoCAD 2009 вызов работает.