ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.

Автор Тема: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.  (Прочитано 109344 раз)

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

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Очень полезной для разработчиков ObjectARX и .NET-модулей  для AutoCAD и его вертикальных приложений являются утилиты ARXDBG и MGDDBG.
Они во многом похожи между собой, но есть и различия. ARXDBG создан с использованием технологии ObjectARX и написан на C++, а MGDDBG основан на AutoCAD .NET API и написан на C#. Исходный код утилиты ARXDBG есть в составе ObjectARX SDK (в каталоге samples\database\ARXDBG). Её BUNDLE для версий AutoCAD начиная с 2012 можно скачать здесь: https://adn-cis.org/assets/gallery/AutoCAD/ArxDbg.bundle.zip
Исходный текст MGDDBG есть в составе BUNDLE, который можно скачать здесь: https://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Чтобы установить ARXDBG и MGDDBG необходимо их BUNDLE'ы разархивировать в каталог  %ProgramFiles%\Autodesk\ApplicationPlugins
После автоматической загрузки этих приложений в AutoCAD при следующем запуске его в контекстном меню вы увидите следующие пункты:


Инструкция по использованию ARXDBG есть в составе ObjectARX SDK: samples\database\ARXDBG\ArxDbg.doc
Краткое описание MGDDBG в составе BUNDLE: Autodesk DWG MgdDBG.bundle\Contents\Resources\helpfile.html

P.S.: Возможно Windows воспримет эти приложения как загруженные из интернета, заблокирует их и не захочет загружать в AutoCAD. Чтобы разблокировать arx/dll-файлы (да и другие исполняемые файлы) необходимо выполнить разблокировку этих файлов, т.е. следующее:

« Последнее редактирование: 06-05-2022, 01:04:01 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
P.S.: Возможно Windows воспримет эти приложения как загруженные из интернета, заблокирует их и не захочет загружать в AutoCAD. Чтобы разблокировать arx/dll-файлы (да и другие исполняемые файлы) необходимо выполнить разблокировку этих файлов, т.е. следующее:
Подтверждаю, у меня на одном компе так и вышло.:) Тогда, учитывая тот факт, что файлов в MGDDBG побольше, достаточно напряжно их всех разблокировывать. Тогда проще проверить, заблокирован ли сам архив. Соответственно, если разблокировать его, то все извлеченные файлы будут разблокированы.

Возможно, несколько очевидное дополнение, но я вот полез сразу все подряд анлочить, быстро надоело, вот и подумал, что, возможно, проще вначале это проверить.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Дмитрий Загорулькин обнаружил ошибку в ARXDBG и MGDDBG для версий 2015...2017, когда при включенных документных реакторах при переключении на вкладку Начало (Start) или закрытии всех открытых документов возникала ошибка (Fatal Error для ARXDBG и Exception для MGDDBG). Я исправил эти ошибки и выложил исправленные версии.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
При загруженном через Bundle ARXDBG при сохранении чертежа в комстроку выдает такое:
APPMSG: ArxDbg, kSaveMsgТак должно быть, или это сигнализирует о чем-то?

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Так должно быть, или это сигнализирует о чем-то?
Так должно быть. Всё в порядке. Это диагностическое сообщение о событии сохранения чертежа (при автосохранении тоже).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Наткнулся на еще одну ошибку в MgdDBG при попытке посмотреть свойства штриховки типа "SOLID":
Autodesk.AutoCAD.Runtime.Exception: eNotApplicable
   в Autodesk.AutoCAD.DatabaseServices.Hatch.GetHatchLinesData()
   в MgdDbg.Snoop.CollectorExts.Entity.Stream(ArrayList data, Hatch hatch) в e:\RAN\C#\DWGMgdDbgSource\Snoop\CollectorExts\Entity.cs:строка 1395
   в MgdDbg.Snoop.CollectorExts.Entity.Stream(ArrayList data, Entity ent) в e:\RAN\C#\DWGMgdDbgSource\Snoop\CollectorExts\Entity.cs:строка 213
   в MgdDbg.Snoop.CollectorExts.Entity.CollectEvent(Object sender, CollectorEventArgs e) в e:\RAN\C#\DWGMgdDbgSource\Snoop\CollectorExts\Entity.cs:строка 59
   в MgdDbg.Snoop.Collectors.Collector.CollectorExt.Invoke(Object sender, CollectorEventArgs e)
   в MgdDbg.Snoop.Collectors.Collector.FireEvent_CollectExt(Object objToSnoop) в e:\RAN\C#\DWGMgdDbgSource\Snoop\Collectors\Collector.cs:строка 63
   в MgdDbg.Snoop.Collectors.Objects.Collect(Object obj) в e:\RAN\C#\DWGMgdDbgSource\Snoop\Collectors\Objects.cs:строка 52
   в MgdDbg.Snoop.Forms.DBObjects.TreeNodeSelected(Object sender, TreeViewEventArgs e) в e:\RAN\C#\DWGMgdDbgSource\Snoop\Forms\DBObjects.cs:строка 452
   в System.Windows.Forms.TreeView.OnAfterSelect(TreeViewEventArgs e)
   в System.Windows.Forms.TreeView.TvnSelected(NMTREEVIEW* nmtv)
   в System.Windows.Forms.TreeView.WmNotify(Message& m)
   в System.Windows.Forms.TreeView.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Оффлайн Александр РивилисАвтор темы

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

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
От версии не зависит, я думаю. Проверял в AutoCAD Civil 3D 2014 и 2017.

Оффлайн Александр РивилисАвтор темы

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

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Еще одна ошибка. Похоже, из той же серии. Теперь, при попытке посмотреть свойства мультивыноски:
Autodesk.AutoCAD.Runtime.Exception: eInvalidContext
   в Autodesk.AutoCAD.DatabaseServices.MLeader.get_BlockPosition()
   в MgdDbg.Snoop.CollectorExts.Entity.Stream(ArrayList data, MLeader mleader) в e:\RAN\C#\DWGMgdDbgSource\Snoop\CollectorExts\Entity.cs:строка 897
   в MgdDbg.Snoop.CollectorExts.Entity.Stream(ArrayList data, Entity ent) в e:\RAN\C#\DWGMgdDbgSource\Snoop\CollectorExts\Entity.cs:строка 255
   в MgdDbg.Snoop.CollectorExts.Entity.CollectEvent(Object sender, CollectorEventArgs e) в e:\RAN\C#\DWGMgdDbgSource\Snoop\CollectorExts\Entity.cs:строка 59
   в MgdDbg.Snoop.Collectors.Collector.CollectorExt.Invoke(Object sender, CollectorEventArgs e)
   в MgdDbg.Snoop.Collectors.Collector.FireEvent_CollectExt(Object objToSnoop) в e:\RAN\C#\DWGMgdDbgSource\Snoop\Collectors\Collector.cs:строка 63
   в MgdDbg.Snoop.Collectors.Objects.Collect(Object obj) в e:\RAN\C#\DWGMgdDbgSource\Snoop\Collectors\Objects.cs:строка 52
   в MgdDbg.Snoop.Forms.DBObjects.TreeNodeSelected(Object sender, TreeViewEventArgs e) в e:\RAN\C#\DWGMgdDbgSource\Snoop\Forms\DBObjects.cs:строка 452
   в System.Windows.Forms.TreeView.OnAfterSelect(TreeViewEventArgs e)
   в System.Windows.Forms.TreeView.TvnSelected(NMTREEVIEW* nmtv)
   в System.Windows.Forms.TreeView.WmNotify(Message& m)
   в System.Windows.Forms.TreeView.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Пробовал в AutoCAD Civil 3D 2014-2017 - везде есть эта ошибка.

Оффлайн Александр РивилисАвтор темы

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

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Решил не дожидаться, исправил и выложил исправленную версию. Тестируйте. Не забывайте про необходимость разблокировать arx/dll-файлы.
« Последнее редактирование: 10-02-2017, 23:23:10 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Сегодня копался в исходниках MgdDbg и, похоже, нашел ошибку. В файле Utils/ReferenceFiler.cs строки 126-130:
Код - C# [Выбрать]
  1. public override void
  2. WriteSoftPointerId(ObjectId value)
  3. {
  4.     if (value.IsNull == false)
  5.         m_hardPointerIds.Add(value);
  6. }
  7.  
По логике, вместо m_hardPointerIds должно быть m_softPointerIds.

Оффлайн Александр РивилисАвтор темы

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

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Ни то ни другое приложение не хотят воспринимать значения типа Int64 из записи в словаре :(
Забыл уточнить. MgdDbg еще и перед тем как выдать результат, выводит окошко с ошибкой. И нужно несколько раз нажать "Пропустить". Я так подозреваю, что столько же раз, сколько записей с данными типа Int64.

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Для MgdDbg решение нашел. В файле Snoop\CollectorExts\DbMisc.cs в методе Stream(ArrayList data, ResultBuffer resbuf) добавил еще одно условие (строки 6-10):
Код - C# [Выбрать]
  1. else if (typeCode == (int)Autodesk.AutoCAD.Runtime.LispDataType.T_atom)
  2. {
  3.     dxfCodeStr = string.Format("{0:d}    (T)", typeCode);
  4.     data.Add(new Snoop.Data.String(dxfCodeStr, ""));
  5. }
  6. else if (typeCode == (int)DxfCode.Int64)
  7. {
  8.     dxfCodeStr = string.Format("{0:d}    (long)", typeCode);
  9.     data.Add(new Snoop.Data.Long(dxfCodeStr, (long)tmpVal.Value));
  10. }
  11. else
  12. {
  13.     Debug.Assert(false);
  14.     dxfCodeStr = string.Format("{0:d}    (*Unknown*)", typeCode);
  15.     data.Add(new Snoop.Data.String(dxfCodeStr, ""));
  16. }
  17.  

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Там еще одно место есть. Я исправил и положил на место. Для ARXDBG будет сложнее. Нужно посмотреть. Думаю, что сделаю максимум для последних трёх версий.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Там еще одно место есть. Я исправил и положил на место.
Спасибо! Проверил - работает как надо!
« Последнее редактирование: 13-07-2017, 15:18:18 от Дмитрий Загорулькин »

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Исправил и в ARXDBG 2015...2018. Так что можешь пробовать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Попробовал - работает как надо! Еще раз спасибо!

Оффлайн RevitTormentor

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
У меня по умолчанию на правой кнопке висит повтор последней команды. Контекстное меню не выводится. Можно как то контекстное меню вывести не правой кнопкой?
Спасибо.

Решил длительностью нажатия на правую кнопку.

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Добрый день, на автокаде 18 версии выдает ошибку, может я где то не так делаю?

Оффлайн Александр РивилисАвтор темы

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

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Наиполезнейшая информация - в этом окошке, как раз в той части, которая осталась вне экрана. А ведь её можно было скопировать и вставить как обычный текст...


Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Наиполезнейшая информация - в этом окошке, как раз в той части, которая осталась вне экрана. А ведь её можно было скопировать и вставить как обычный текст...


Да. Но без понимания того, как silda вышел на эту ошибку, этой информации будет недостаточно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Всегда или только с конкретным примитивом в конкретном чертеже?
Спасибо за быстрый отклик, по началу я тоже думал что только с одним примитивом так происходит, оказывается ошибку выдает для всех примитивов.
Ошибку выдает именно тогда, когда запрашиваете "Show ObjectID Info"
Вот содержание ошибки "круга"






Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Ошибку выдает именно тогда, когда запрашиваете "Show ObjectID Info"
Объясни подробнее как ты это делаешь. Лучше видео.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Да, есть ошибка, подтверждаю. MgdDbg -> "Snoop Entity" -> выбираем примитив -> в диалоге в левой части щёлкаем ПКМ по примитиву и в контекстном меню выбираем "Show ObjectID info"

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Да, есть ошибка, подтверждаю. MgdDbg -> "Snoop Entity" -> выбираем примитив -> в диалоге в левой части щёлкаем ПКМ по примитиву и в контекстном меню выбираем "Show ObjectID info"
Ага. Понял. Хотя у меня там ошибки нет. Подумаю как исправить. Тут судя по всему проблема во всех версиях AutoCAD x64.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Да, проверил, есть эта ошибка в версиях 2014-2018 x64. x32 нет - проверить не могу.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Да, проверил, есть эта ошибка в версиях 2014-2018 x64. x32 нет - проверить не могу.
У меня значение ObjectId умещается в 32-бита, поэтому исключение не возникает.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Да, проверил, есть эта ошибка в версиях 2014-2018 x64. x32 нет - проверить не могу.
Спасибо за подтверждение, скоро выложу видео, пока на обработке

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Александр, вот видео. (наверно пока на обработке, но ссылка уже есть)

Оффлайн Александр РивилисАвтор темы

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

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Спасибо. Исправляю и проверяю нет ли в коде аналогичных мест.
Заранее спасибо..

Оффлайн Александр РивилисАвтор темы

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

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Нужно снова скачать, разархивировать и можно тестировать.
Благодарю за оперативность..

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Благодарю за оперативность..
Кстати, а зачем нужно:
1) повторно перестраивать проект?
2) загружать dll-ку при помощи NETLOAD?
В архиве уже всё готово и автозагрузка автоматом загружает соответствующий mgddbg.dll в AutoCAD при старте AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Увы, пока ошибки повторяются.
Посмотрите пожалуйста на расположению разархивированной папки, правильно ли.
почему-то dll-ка автоматом в AutoCAD не загружается.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Файлы лежат там где надо. А есть ли файл "C:\Program Files\Autodesk\ApplicationPlugins\Autodesk DWG MgdDBG.bundle\PackageContents.xml" ? В архиве он есть и должен обеспечивать автозагрузку. Заодно убедитесь, что dll-файлы не заблокированы - при скачивании из интернета они часто оказываются заблокированными.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Проверил - ошибка пропала. Не загружается из-за блокировки файлов, скорее всего.

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Посмотрите пожалуйста ещё раз..


Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Посмотрите пожалуйста ещё раз..
Видео еще не готово, потому просто спрашиваю. Ты исходники перекомпилировал сам? Тогда понятно - в архиве неисправленные исходники. Исправлены только dll-файлы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Ты исходники перекомпилировал сам?
да, но потом все старые архивы очистил, вот на видео уже без компиляции загрузил, правда NETLOADом еще раз загрузил dll ку

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Хм... А зачем в ProgramFiles? Это устаревшее местоположение. Для всех пользователей - папка %programdata%\Autodesk\ApplicationPlugins, для текущего пользователя - %appdata%\Autodesk\ApplicationPlugins
Чтобы установить ARXDBG и MGDDBG необходимо их BUNDLE'ы разархивировать в каталог  %ProgramFiles%\Autodesk\ApplicationPlugins
Ох блин, ну надо же, даже не обращал никогда внимания :)
Ну ладно, может это и не играет роли...

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Ты исходники перекомпилировал сам?
да, но потом все старые архивы очистил, вот на видео уже без компиляции загрузил, правда NETLOADом еще раз загрузил dll ку
Обрати внимание на дату и время mgddbg.dll из каталога "C:\Program Files\Autodesk\ApplicationPlugins\Autodesk DWG MgdDBG.bundle\Contents\Resources\DWGMgdDbgSource\bin\DebugA2018\MgdDbg.dll
Должно быть так, а у тебя старая версия (где-то архив закешировался - попробуй другим браузером скачать):



Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Хм... А зачем в ProgramFiles? Это устаревшее местоположение. Для всех пользователей - папка %programdata%\Autodesk\ApplicationPlugins, для текущего пользователя - %appdata%\Autodesk\ApplicationPlugins
Цитата: Александр Ривилис от 19-08-2016, 15:27:08

    Чтобы установить ARXDBG и MGDDBG необходимо их BUNDLE'ы разархивировать в каталог  %ProgramFiles%\Autodesk\ApplicationPlugins

Ох блин, ну надо же, даже не обращал никогда внимания :)
Ну ладно, может это и не играет роли...

Это универсальное место, которое справедливо для всех версий AutoCAD, начиная с 2012, когда появился автозагрузчик.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Даже больше (взял тут):
Цитировать
While a plug-in can be loaded from any of the ApplicationPlugins folders, it is recommended to place all plug-ins under the %PROGRAMFILES%\Autodesk\ApplicationPlugins folder on Windows. The plug-ins in this location are trusted and are not checked for the presence of a digital signature. All other ApplicationPlugins folders must be trusted as part of the application's preferences and should to be digitally signed.
Был неправ :)

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Теперь в архиве и исходники исправленные, т.е. соответствуют версии dll-файлов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Вот дата, да, похоже у меня действительно старая версия, скоро попробую скачать другим броузером..

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Ещё раз скачал обычным Explorer-ом, нет, к сожалению пока та же версия.

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Если честно, после скачки я сразу обратил внимание на дату dll-ки, потому что раз вы устранили ошибки должна была и дата поменяться  :-\

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Ещё раз скачал обычным Explorer-ом, нет, к сожалению пока та же версия.

Еще раз скачай http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Можешь попробовать вот так: http://www.adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
В тех случаях, когда браузер плохо качает я пользуюсь Download Master: https://westbyte.com/dm/
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1
Еще раз скачай
Спасибо ещё раз, супер! Все работает и показывает нужные данные..

Оффлайн Александр РивилисАвтор темы

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

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Адаптировал для AutoCAD 2019. Можете проверять.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн silda

  • ADN OPEN
  • Сообщений: 23
  • Карма: 1

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
Рылся на GitHub, нашел https://github.com/ADN-DevTech/MgdDbg   Кажется репозиторий заброшен... в этой теме обновлений больше чем там...

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Рылся на GitHub, нашел https://github.com/ADN-DevTech/MgdDbg   Кажется репозиторий заброшен... в этой теме обновлений больше чем там...
Это точно, хотя и печально...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Из 18 форков один вроде живой: https://github.com/shtirlitsDva/MgdDbg/commits/master
Даже Augusto за ним наблюдает :)

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
MGDDBG в 2017 автокаде падает в фатал при наличии у объекта гиперссылки.

Взял вот этот самый живой форк и он, то же рушится.

Рушится он в классе MgdDbg.Snoop.Data.ObjectCollection
на 52 строке (28 строка на фрагменте):
Код - C# [Выбрать]
  1. m_val = new ArrayList(val);

Что бы не бегать, тут код этого класса:
Извините, вам запрещён просмотр содержимого спойлеров.

Как временное и плохое  решение, эту строку можно заменить на
Код - C# [Выбрать]
  1.         m_val = new ArrayList();
  2.         foreach (object i in val)
  3.           m_val.Add(i);
Так автокад хотя бы с фаталом вылетать перестаёт и видно наличие гиперссылок у объекта, однако из-за вот этого вот "копирования" списка получается побочный эффект:если тыкнуть на  список гиперссылок, то появится исключение AccessViolationException в методе Stream(ArrayList data, HyperLink hlink) , это 841 строка класса MgdDbg.Snoop.CollectorExts.DbMisc

Тут код этого метода:
Извините, вам запрещён просмотр содержимого спойлеров.

Хотелось бы совета и направления, как все это поправить...

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Увы, но это похоже на баг в самом AutoCAD .NET API. Нормального способа обойти его я не нашёл.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Владимир Шу,
Хм. Интересный момент. Я заменил код на этот:
Код - C# [Выбрать]
  1.   ObjectCollection(string label, System.Collections.ICollection val)
  2.   : base(label)
  3.     {
  4.       if (val == null)
  5.         m_val = null;
  6.       else
  7.       {
  8.  
  9.         if (val is HyperLinkCollection)
  10.         {
  11.           HyperLinkCollection hs = val as HyperLinkCollection;
  12.           m_val = new ArrayList();
  13.           for (int i = 0; i < hs.Count; i++)
  14.           {
  15.             HyperLink h = new HyperLink();
  16.             h = hs[i];
  17.             h.Name = hs[i].Name;
  18.             h.Description = hs[i].Description;
  19.             h.SubLocation = hs[i].SubLocation;
  20.             m_val.Add(h);
  21.           }
  22.         }
  23.         else
  24.         {
  25.           m_val = new ArrayList(val);
  26.         }
  27.       }
  28.     }

И похоже заработало. Проверял правда в AutoCAD 2020.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
В 2017 не заработало, как и ожидал (Ваш код по сути то же, что сделал и я, т.е. копию списка, а не приведение существующего к нужному типу) получил "System.AccessViolationException: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt." в MgdDbg.Snoop.CollectorExts.DbMisc строка 846

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
В 2017 не заработало, как и ожидал (это по сути то же, что сделал и я, т.е. копию списка, а не переопределение того же самого)
Нет. Это не переопределение списка. HyperLinkCollection привязан к примитиву, на который он ссылается. И если примитив закрыт, то HyperLinkCollection становится невалидной. А вот такое переписывание элементов помогает. Но почему-то потребовалось и скопировать сам элемент из HyperLinkCollection и еще и переназначить доступные для изменения свойства.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
я понимаю, что Вы, как и я, пошли по пути создания нового списка (выделение нового куска памяти и создание объектов в этом новом куске, вместо сохранения ссылки на существующий кусок памяти), но это (в случае с 2017 акадом) приводит к исключению System.AccessViolationException и я подозреваю, что нужно не создавать копию списка, а как то передать оригинал, предварительно переопределив его тип.


ЗЫ.
Странно, если копнуть несколько глубже, то вот тут: https://referencesource.microsoft.com/#mscorlib/system/collections/arraylist.cs можно посмотреть кишки типа ArrayList и там внутри, в конструкторе принимающим ICollection и далее по методам,  видно, что создается новый массив объектов... Фигня какая я то, штатное создание ArrayList вызывает фатал, а если самому в рукопашную сделать то же самое, то фатала нет, но появляется System.AccessViolationException...  Что то пазл в голове не складывается.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Владимир Шу,
Да. Я перепроверил и в 2017 это не работает. Но зато работает такой:
Код - C# [Выбрать]
  1.   ObjectCollection(string label, System.Collections.ICollection val)
  2.   : base(label)
  3.     {
  4.       if (val == null)
  5.         m_val = null;
  6.       else
  7.       {
  8.  
  9.         if (val is HyperLinkCollection)
  10.         {
  11.           HyperLinkCollection hs = val as HyperLinkCollection;
  12.           m_val = new ArrayList();
  13.           for (int i = 0; i < hs.Count; i++)
  14.           {
  15.             HyperLink h = new HyperLink();
  16.             h.Name = hs[i].Name;
  17.             h.Description = hs[i].Description;
  18.             h.SubLocation = hs[i].SubLocation;
  19.             m_val.Add(h);
  20.           }
  21.         }
  22.         else
  23.         {
  24.           m_val = new ArrayList(val);
  25.         }
  26.       }
  27.     }
  28.  

(т.е. нет h = hs[i])

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр РивилисАвтор темы

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

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
Спасибо. Все заработало. Выглядит как некоторый костыль, но работает.
Надо как то это в репозиторий закинуть, у меня не получилось =( или пора форумный форк делать =)

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Спасибо. Все заработало. Выглядит как некоторый костыль, но работает.
Надо как то это в репозиторий закинуть, у меня не получилось =( или пора форумный форк делать =)
Если честно, то я не слишком продвинутый GIT-пользователь. Так что с форком не подскажу, а вот исправленные исходники и бинарники уже в архиве, указанном в первом сообщении темы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Надо как то это в репозиторий закинуть, у меня не получилось
Надо сначала сделать Fork, потом внести изменения, а потом сделать Pull Request и ждать, пока автор оригинального репозитория примет этот ПР

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
и ждать, пока автор оригинального репозитория примет этот ПР
Боюсь, никогда. Проектом не занимаются.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Обратил внимание, что режиме Browse Using Reflection... можно не только просматривать, но и редактировать свойства объекта.



Была единственная загвоздка в том, что объект открывался "для чтения" и при попытке модификации AutoCAD валился с сообщением об ошибке. Я это исправил:


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
можно не только просматривать, но и редактировать свойства объекта.
Жаль, что у меня старая версия. Полезная функция.
А свойства для чтения, ну например Polyline.NumberOfVertices, Polyline.Length программа определяет и не дает редактировать?

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Жаль, что у меня старая версия. Полезная функция.
Я перекомпилировал для версий начиная с 2012. Для более ранних наверное работать не будет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Редактировать можно только те свойства, значения которых жирным шрифтом:





Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Я перекомпилировал для версий начиная с 2012. Для более ранних наверное работать не будет.
У нас 2010.  :-D
Я написал некий прототип программы ARXDBG основанный на рефлексии, только для целей просмотра структуры dwg и свойств объектов.
Только довести до ума времени нет. :-D


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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
А чем MGDDBG плох? Зачем свой велосипед?

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
А чем MGDDBG плох? Зачем свой велосипед?
Общий ответ - для удобства изучения проблем в файлах.

По крайней мере в старой версии MGDDBG
1. Не было рефлексии, т.е. всех свойств
2. Значения показывались округленными
3. Структуру показывал не всю
4. Мало влезало свойств на экран.
5. Кое-где неудобен, приходиться много тыкать, чтоб посмотреть свойства того, что нужно.

Конечно это не полноценный аналог и задумывался только как средство более быстрого и удобного просмотра свойств. Использую совместно с MGDDBG.
Естественно недоделанный, и мало что умеет.
Ну и может упасть, т.к. считывает значения методов вида int GetValues()....не все методы, не всех объектов можно так бездумно вызывать.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
По крайней мере в старой версии MGDDBG
1. Не было рефлексии, т.е. всех свойств
Она там была всегда. Только нужно было знать как её найти.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
У нас 2010.  :-D
Там все исходники - перекомпилируй для себя под AutoCAD 2010.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Она там была всегда. Только нужно было знать как её найти.
И как ее найти? Контекстного меню у меня на выбранных объектах нет. Это я первым делом проверил. :-(

Там все исходники - перекомпилируй для себя под AutoCAD 2010.
хм. ну если найду vs2008, то попробую.

Исходники скачивать от сюда?
http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
И как ее найти? Контекстного меню у меня на выбранных объектах нет. Это я первым делом проверил. :-(


хм. ну если найду vs2008, то попробую.
Зачем именно эту версию? Это для ObjectARX (и соотвественно ARXDBG) нужна конкретная версия. А для .NET такого ограничения нет.
Исходники скачивать от сюда?
http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Именно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Зачем именно эту версию? Это для ObjectARX (и соотвественно ARXDBG) нужна конкретная версия. А для .NET такого ограничения нет.
...Извиняюсь. Все перепутал, думал речь про ARXDBG.
MgdDbg не пользовался, один раз посмотрел и подумал, что он налог ARXDBG.
А в MgdDbg есть еще полезные отличия от ARXDBG?

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А в MgdDbg есть еще полезные отличия от ARXDBG?
Да. И много. Да и просто исходники интересно посмотреть.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
Рылся в блогах автодеска и с удивлением узнал, что оказывается существует или существовала версия MgdDbg для архитектурного автокада: MgdDbgAec ссылка: https://adndevblog.typepad.com/aec/2012/08/flat-migrated-mgddbgaec.html
Исходники там есть и их даже можно подправить и заставить работать в современных версиях, только там видимо что то не дописано  и просматривать свойства AEC объектов у меня так и не получилось =(

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Сейчас игрался с переменной STARTUP, выставил её в 2 и словил критические ошибки в ARXMGDARXDBG при открытии AutoCAD (Civil 3D) 2019  :-\

Оффлайн Александр РивилисАвтор темы

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

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Дмитрий Загорулькин,
Я нашел ошибку и исправил для AutoCAD 2019...2022. Для более ранних версий не вижу смысла.
На всякий случай укажу исправленный код:
Файл App\ArxDbgApp.cpp. Вместо:
Код - C++ [Выбрать]
  1. acedGetAcadDwgView()->Invalidate();
  2. acedGetAcadDwgView()->UpdateWindow();
должно быть:
Код - C++ [Выбрать]
  1. if (acedGetAcadDwgView()) { // Проверка на то, что есть окно документа
  2.    acedGetAcadDwgView()->Invalidate();
  3.    acedGetAcadDwgView()->UpdateWindow();
  4. }

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Ого как быстро! Спасибо! А то прямо обидно, что пришлось отключать его  :)
Проверил - теперь всё ок! Ещё раз спасибо!

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Отправил в ADN DevHelp все исправления, которые я делал в ARXDBG за всё время - надеюсь, что в очередной версии они исправят в поставке ObjectARX SDK.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Nutson

  • ADN OPEN
  • Сообщений: 43
  • Карма: 6
Есть ли аналог MgdDbg что бы просматривать объекты Civil ?

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Есть ли аналог MgdDbg что бы просматривать объекты Civil ?
Нет. Можешь сам написать. :)
P.S.: Собственно говоря через Reflection должно хотя-бы частично показывать свойства объектов Civil 3D.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Есть ли аналог MgdDbg что бы просматривать объекты Civil ?
Есть похожая разработка от Augusto Goncalves, называется Snoop Civil 3D Database. Одно время она была даже в Autodesk AppStore. Но вроде автор прекратил её поддержку.
Году эдак в 2015 я её пробовал, мне "не зашло". Почему - уже сейчас и не вспомню. Но если есть желание - найти можно, возможно даже с исходным кодом.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Но если есть желание - найти можно, возможно даже с исходным кодом.
Кстати да: https://github.com/ADN-DevTech/Civil3DSnoop
Я не пробовал.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Nutson

  • ADN OPEN
  • Сообщений: 43
  • Карма: 6
Спасибо, действительно по ссылке на гитхаб можно собрать под 2020 civil и все работает