AutoCAD 2015 SP1: текст в консоль вывода документа при загрузке сборки.

Автор Тема: AutoCAD 2015 SP1: текст в консоль вывода документа при загрузке сборки.  (Прочитано 18738 раз)

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

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
На мой вопрос там точно ответа нет.
ОК, сформулирую его полностью: Почему правильней выводить информацию только в консоль текущего документа?

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
На мой вопрос там точно ответа нет.
Там обозначена основная проблема, поднимаемая в топике.
ОК, сформулирую его полностью: Почему правильней выводить информацию только в консоль текущего документа?
Потому что, как правило, выполняемая операция выводит текстовую информацию в консоль именно текущего документа. Ты ведь когда запускаешь команду audit, не ожидаешь, что она будет тебе выводить отчёт в консоль каждого открытого документа? Аналогично, загрузив своё приложение при помощи NETLOAD - ты запускаешь эту команду из консоли конкретного документа.

Цитировать
Опять же, не каждый пользователь знает, загружено у него приложение в документ или нет. Лиспы, например, грузятся только в текущий документ. А сообщение дает понять, что именно это в новый документ дополнительно грузить не надо.
Юзеру никто не мешает запустить команду, определённую в составе подгруженного расширения, дабы узнать, загружено оно или нет.

Цитировать
Если же надо вывести сообщение одно на все приложение - поддержу Дима_, логичнее вывести "приветственное окошко".
Я предпочитаю писать в консоль. К различного рода всплывающим и|или плавно исчезающим "фенечкам" отношусь негативно (всё должно происходить быстро и ненавязчиво). Если юзер загрузив расширение захочет убедиться в том, что загрузка прошла успешно - он просто тут же посмотрит в консоль. Выводить дублирующуюся информацию во все без исключения документы я не вижу никакого смысла и считаю этот подход плохим. То, что .NET расширения не нужно грузить в каждый документ - юзеры узнают и запоминают достаточно быстро, равно как и то, что LISP приходится грузить в каждый чертёж.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Я говорю об информации о загрузке приложения, а отчет команды AUDIT - это результат выполнения команды.
В общем, идею изложил и объяснил как мог, не нравится - дело хозяйское  8)

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
У меня нет 2015, но на уровне предположения - а если проверять Document.IsActive, Document.Window.Visible?

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

  • Administrator
  • *****
  • Сообщений: 13881
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Document.Window.Visible?
Я бы эту идею развил до проверки видима ли командная строка на экране.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Типо "сграбить"  экран до и после вывода в ком. строку и сравнить? Но так она может у юзера и отключена (или закрыта другим окном) быть (а заглядывает он в нее только по необходимости), да и вобще кривовато как-то. Или есть более "айпишные" варианты?

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

  • Administrator
  • *****
  • Сообщений: 13881
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Или есть более "айпишные" варианты?
Угу. Через P/Invoke acedGetAcadTextCmdLine и acedGetAcadDockCmdLine.
Только они возвращают указатель на CWnd, эквивалента которого в .NET нет. Пока простые идеи закончились.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Только они возвращают указатель на CWnd, эквивалента которого в .NET нет.
Но как минимум на null его проверить можно.

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

  • Administrator
  • *****
  • Сообщений: 13881
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Но как минимум на null его проверить можно.
Можно, но это не поможет. Думаю, что это значение никогда не null.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение