accoreconsole.exe "проглатывает" консольный вывод

Автор Тема: accoreconsole.exe "проглатывает" консольный вывод  (Прочитано 4393 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
В процессе эксплуатации этой утилиты обнаружилось очередное кривое поведение accoreconsole.exe, обозначенное в названии темы.

Из acad.exe загружаю acad.proxy.dll или acad.proxy.R19.0.dll. Консольный вывод для обоих случаев одинаков:

Цитировать
Command: NETLOAD
acad.proxy.R19.0.dll
© Andrey Bushman, 2015

Commands:
proxy - get count of ProxyEntity and ProxyObject in the current Database.
xProxy - explode all proxy in the current Database.
rmProxy - remove all ProxyEntities and ProxyObjects in the current Database.
rmScales - remove all unused annotation scales in the current Database.

Теперь из accoreconsole.exe загружаю accore.proxy.dll или acad.proxy.R19.0.dll. Консольный вывод для обоих случаев одинаков (но отличается от ранее показанного):

Цитировать
Command: netload
Command: netload
Assembly file name: C:\public\Debug\proxy\accore.proxy.dll
Assembly file name: C:\public\Debug\proxy\accore.proxy.dll

acad.proxy.R19.0.dll


Commands:
proxy - get count of ProxyEntity and ProxyObject in the current Database.
xProxy - explode all proxy in the current Database.
rmProxy - remove all ProxyEntities and ProxyObjects in the current Database.

Как видим, в случае accoreconsole.exe в консоль не была выведена информация о команде rmScales.

Код вывода информации в консоль прост:
Код - C# [Выбрать]
  1. public void Initialize() {
  2.   Document doc = cad.DocumentManager.MdiActiveDocument;
  3.   if (null == doc)
  4.     return;
  5.   Editor ed = doc.Editor;
  6.   ed.WriteMessage("\n{0}\n", Path.GetFileName(this.GetType().Assembly
  7.             .Location));
  8.   ed.WriteMessage("{0}\n\n", "© Andrey Bushman, 2015");
  9.   ed.WriteMessage("{0}:\n", "Commands");
  10.   ed.WriteMessage("{0}\n", "proxy - get count of ProxyEntity and " +
  11.       "ProxyObject in the current Database.");
  12.   ed.WriteMessage("{0}\n", "xProxy - explode all proxy in the " +
  13.       "current Database.");
  14.   ed.WriteMessage("{0}\n", "rmProxy - remove all ProxyEntities and "
  15.       + "ProxyObjects in the current Database.");
  16.   ed.WriteMessage("{0}\n\n", "rmScales - remove all unused " +
  17.       "annotation scales in the current Database.");
  18. }
Обозначенное поведение наблюдаю в AutoCAD 2013-2016. Сильно подозреваю, что это очередной баг.

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

  • Administrator
  • *****
  • Сообщений: 12984
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Выводи "\n" в конце.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Выводи "\n" в конце.
Посмотрите внимательней на мой код.

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

  • Administrator
  • *****
  • Сообщений: 12984
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Посмотрите внимательней на мой код.
После:
Код - C# [Выбрать]
  1. ed.WriteMessage("{0}\n\n", "rmScales - remove all unused " +
  2.       "annotation scales in the current Database.");
добавь строку:
Код - C# [Выбрать]
  1. ed.WriteMessage("\n ");
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
После:
Код - C# [Выбрать]
  1. ed.WriteMessage("{0}\n\n", "rmScales - remove all unused " +
  2.       "annotation scales in the current Database.");
добавь строку:
Код - C# [Выбрать]
  1. ed.WriteMessage("\n ");
фокус не удался.

Отмечено как Решение Андрей Бушман 03-09-2015, 14:19:22

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Если заменить
Код - C# [Выбрать]
  1. ed.WriteMessage("{0}\n\n", "rmScales - remove all unused " +
  2.           "annotation scales in the current Database.");
на
Код - C# [Выбрать]
  1. ed.WriteMessage("{0}\n", "rmScales - remove all unused " +
  2.           "annotation scales in the current Database.");
  3. ed.WriteMessage("\n ");
то вывод успешно отправляется в консоль.

Т.о. это явно очередной баг accoreconsole.exe:(

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

  • Administrator
  • *****
  • Сообщений: 12984
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
т.е. если убрать последний символ переноса строки, то вывод успешно отправляется в консоль.
Точно. Я обратил внимание, что у тебя не только про rmScales не вывелось в командную строку, но и "© Andrey Bushman, 2015" тоже. Как ты это не заметил? ;)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Как ты это не заметил?  ;)
Это я проморгал. :) В ADN будете сообщать?

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

  • Administrator
  • *****
  • Сообщений: 12984
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
В ADN будете сообщать?
Да. Уже сообщил.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 12984
  • Карма: 1669
  • Рыцарь ObjectARX
  • Skype: rivilis
Баг признали и взяли в работу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение