Имя PaletteSet выполняется как команда

Автор Тема: Имя PaletteSet выполняется как команда  (Прочитано 3392 раз)

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

Оффлайн Роман МалютинАвтор темы

  • ADN Club
  • Сообщений: 15
  • Карма: 3
  • Инженер
    • lep10.ru
AutoCAD 2013, 2014 rus.

Создаю PaletteSet через имя и Guid:
Код - C# [Выбрать]
  1. myPaletteSet = new PaletteSet("NAME", new System.Guid("D61D0875-A507-4b73-8B5F-9266BEACD597"));
  2. myPalette = new Ctrl1_InsertEntity();
  3. myPalette2 = new Ctrl2_ShowProperties();
  4. myPaletteSet.Add("Добавить", myPalette);
  5. myPaletteSet.Add("Свойства", myPalette2);
  6. myPaletteSet.Visible = true;

При 1-м запуске AutoCAD все гладко. Потаскав палитру туда-сюда, закрываю AutoCAD - он запоминает настройки палитры.
При следующих запусках в ком. строку попадает имя палитры и пытается выполниться как команда.
Даже "_line" туда писал, работает, запрашивает первую точку  :)

Это баг или я чего-то недопонимаю?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Имя PaletteSet выполняется как команда
« Ответ #1 : 16-02-2014, 02:28:01 »
Почитай эту тему: http://adn-cis.org/forum/index.php?topic=395.msg996#msg996
Похоже они связаны.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Роман МалютинАвтор темы

  • ADN Club
  • Сообщений: 15
  • Карма: 3
  • Инженер
    • lep10.ru
Re: Имя PaletteSet выполняется как команда
« Ответ #2 : 16-02-2014, 18:20:07 »
Соберу всё в кучу. Правильно ли я понял, что механизм для палитр будет такой:
  • AutoCAD хранит их настройки в файле ..... \AppData\Roaming\Autodesk\AutoCAD 2014\R19.1\rus\Support\Profiles\PROFILENAME\Profile.aws
  • Если на момент выхода из AutoCAD палитра была открыта, то он ее попытается показать при следующем запуске.
  • Конструкторы для PaletteSet:
    1. name
    2. name + toolID
    3. name + cmd + toolID (недокументированный)
  • А нюанс в том, что для открытия палитры при старте, AutoCAD пользуется её именем как командой, либо надо пользоваться недокументированным конструктором, где задавать эту команду явно, чтобы хоть как-то управлять ситуацией.
  • Отключение автозапуска палитры не предусмотрено: надо писать либо пустое имя палитры, либо отправлять пустышку вместо cmd.