Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Александр Ривилис от 19-08-2016, 16:27:08

Название: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 19-08-2016, 16:27:08
Очень полезной для разработчиков ObjectARX и .NET-модулей  для AutoCAD и его вертикальных приложений являются утилиты ARXDBG и MGDDBG.
Они во многом похожи между собой, но есть и различия. ARXDBG создан с использованием технологии ObjectARX и написан на C++, а MGDDBG основан на AutoCAD .NET API и написан на C#. Исходный код утилиты ARXDBG есть в составе ObjectARX SDK (в каталоге samples\database\ARXDBG). Её BUNDLE для версий AutoCAD начиная с 2012 можно скачать здесь: http://adn-cis.org/assets/gallery/AutoCAD/ArxDbg.bundle.zip
Исходный текст MGDDBG есть в составе BUNDLE, который можно скачать здесь: http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Чтобы установить ARXDBG и MGDDBG необходимо их BUNDLE'ы разархивировать в каталог  %ProgramFiles%\Autodesk\ApplicationPlugins
После автоматической загрузки этих приложений в AutoCAD при следующем запуске его в контекстном меню вы увидите следующие пункты:

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F151498%2F7842324.6%2F0_13277e_3651c8f2_orig.png&hash=22dd121e3ed5034669b168effdc3e1a3)
Инструкция по использованию ARXDBG есть в составе ObjectARX SDK: samples\database\ARXDBG\ArxDbg.doc
Краткое описание MGDDBG в составе BUNDLE: Autodesk DWG MgdDBG.bundle\Contents\Resources\helpfile.html

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

Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Максим Маркевич от 22-08-2016, 17:18:10
P.S.: Возможно Windows воспримет эти приложения как загруженные из интернета, заблокирует их и не захочет загружать в AutoCAD. Чтобы разблокировать arx/dll-файлы (да и другие исполняемые файлы) необходимо выполнить разблокировку этих файлов, т.е. следующее:
Подтверждаю, у меня на одном компе так и вышло.:) Тогда, учитывая тот факт, что файлов в MGDDBG побольше, достаточно напряжно их всех разблокировывать. Тогда проще проверить, заблокирован ли сам архив. Соответственно, если разблокировать его, то все извлеченные файлы будут разблокированы.

Возможно, несколько очевидное дополнение, но я вот полез сразу все подряд анлочить, быстро надоело, вот и подумал, что, возможно, проще вначале это проверить.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 13-12-2016, 12:04:06
Дмитрий Загорулькин (http://adn-cis.org/forum/index.php?action=profile;u=45) обнаружил ошибку в ARXDBG и MGDDBG для версий 2015...2017, когда при включенных документных реакторах при переключении на вкладку Начало (Start) или закрытии всех открытых документов возникала ошибка (Fatal Error для ARXDBG и Exception для MGDDBG). Я исправил эти ошибки и выложил исправленные версии.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 13-12-2016, 14:11:21
При загруженном через Bundle ARXDBG при сохранении чертежа в комстроку выдает такое:
APPMSG: ArxDbg, kSaveMsgТак должно быть, или это сигнализирует о чем-то?
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 13-12-2016, 14:14:29
Так должно быть, или это сигнализирует о чем-то?
Так должно быть. Всё в порядке. Это диагностическое сообщение о событии сохранения чертежа (при автосохранении тоже).
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 09-02-2017, 12:55:45
Наткнулся на еще одну ошибку в 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)
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 09-02-2017, 14:59:03
В какой версии AutoCAD проверял?
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 09-02-2017, 15:03:17
От версии не зависит, я думаю. Проверял в AutoCAD Civil 3D 2014 и 2017.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 09-02-2017, 15:40:06
Надо будет там try/catch поставить.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 10-02-2017, 13:48:46
Еще одна ошибка. Похоже, из той же серии. Теперь, при попытке посмотреть свойства мультивыноски:
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 - везде есть эта ошибка.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2017, 14:12:52
Отметил для себя. Буду делать порт для новой версии AutoCAD - исправлю сразу  все замечания.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2017, 18:20:34
Решил не дожидаться, исправил и выложил исправленную версию. Тестируйте. Не забывайте про необходимость разблокировать arx/dll-файлы.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 07-06-2017, 21:44:34
Сегодня копался в исходниках 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.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 07-06-2017, 21:52:14
Дмитрий Загорулькин,
Я посмотрю, но похоже ты прав.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 13-07-2017, 12:55:46
Ни то ни другое приложение не хотят воспринимать значения типа Int64 из записи в словаре :(
Забыл уточнить. MgdDbg еще и перед тем как выдать результат, выводит окошко с ошибкой. И нужно несколько раз нажать "Пропустить". Я так подозреваю, что столько же раз, сколько записей с данными типа Int64.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 13-07-2017, 13:43:48
Для 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.  
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 13-07-2017, 14:43:26
Там еще одно место есть. Я исправил и положил на место. Для ARXDBG будет сложнее. Нужно посмотреть. Думаю, что сделаю максимум для последних трёх версий.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 13-07-2017, 14:44:40
Там еще одно место есть. Я исправил и положил на место.
Спасибо! Проверил - работает как надо!
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 13-07-2017, 15:48:23
Исправил и в ARXDBG 2015...2018. Так что можешь пробовать.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 13-07-2017, 16:09:49
Попробовал - работает как надо! Еще раз спасибо!
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: RevitTormentor от 01-10-2017, 08:25:17
У меня по умолчанию на правой кнопке висит повтор последней команды. Контекстное меню не выводится. Можно как то контекстное меню вывести не правой кнопкой?
Спасибо.

Решил длительностью нажатия на правую кнопку.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 13:39:54
Добрый день, на автокаде 18 версии выдает ошибку, может я где то не так делаю?
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 13:42:58
Добрый день, на автокаде 18 версии выдает ошибку, может я где то не так делаю?
Всегда или только с конкретным примитивом в конкретном чертеже?
Хорошо бы видео как это происходит (как записать видео у меня в подписи).
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 06-02-2018, 13:54:15
Наиполезнейшая информация - в этом окошке, как раз в той части, которая осталась вне экрана. А ведь её можно было скопировать и вставить как обычный текст...
(https://s10.postimg.org/tf2k6y06t/Error_Msg.png) (https://postimg.org/image/tf2k6y06t/)
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 13:56:40
Наиполезнейшая информация - в этом окошке, как раз в той части, которая осталась вне экрана. А ведь её можно было скопировать и вставить как обычный текст...
(https://s10.postimg.org/tf2k6y06t/Error_Msg.png) (https://postimg.org/image/tf2k6y06t/)

Да. Но без понимания того, как silda вышел на эту ошибку, этой информации будет недостаточно.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 15:05:05
Всегда или только с конкретным примитивом в конкретном чертеже?
Спасибо за быстрый отклик, по началу я тоже думал что только с одним примитивом так происходит, оказывается ошибку выдает для всех примитивов.
Ошибку выдает именно тогда, когда запрашиваете "Show ObjectID Info"
Вот содержание ошибки "круга"





Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 15:10:09
Ошибку выдает именно тогда, когда запрашиваете "Show ObjectID Info"
Объясни подробнее как ты это делаешь. Лучше видео.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 06-02-2018, 15:21:23
Да, есть ошибка, подтверждаю. MgdDbg -> "Snoop Entity" -> выбираем примитив -> в диалоге в левой части щёлкаем ПКМ по примитиву и в контекстном меню выбираем "Show ObjectID info"
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 15:24:30
Да, есть ошибка, подтверждаю. MgdDbg -> "Snoop Entity" -> выбираем примитив -> в диалоге в левой части щёлкаем ПКМ по примитиву и в контекстном меню выбираем "Show ObjectID info"
Ага. Понял. Хотя у меня там ошибки нет. Подумаю как исправить. Тут судя по всему проблема во всех версиях AutoCAD x64.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 06-02-2018, 15:26:56
Да, проверил, есть эта ошибка в версиях 2014-2018 x64. x32 нет - проверить не могу.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 15:28:40
Да, проверил, есть эта ошибка в версиях 2014-2018 x64. x32 нет - проверить не могу.
У меня значение ObjectId умещается в 32-бита, поэтому исключение не возникает.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 15:38:21
Да, проверил, есть эта ошибка в версиях 2014-2018 x64. x32 нет - проверить не могу.
Спасибо за подтверждение, скоро выложу видео, пока на обработке
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 15:40:30
Александр, вот видео. (наверно пока на обработке, но ссылка уже есть)
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 15:42:33
Спасибо. Исправляю и проверяю нет ли в коде аналогичных мест.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 15:45:40
Спасибо. Исправляю и проверяю нет ли в коде аналогичных мест.
Заранее спасибо..
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 15:56:30
Спасибо. Исправляю и проверяю нет ли в коде аналогичных мест.
Заранее спасибо..
Исправил для всех версий и положил на старое место. Нужно снова скачать, разархивировать и можно тестировать.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 16:00:50
Нужно снова скачать, разархивировать и можно тестировать.
Благодарю за оперативность..
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 16:06:50
Благодарю за оперативность..
Кстати, а зачем нужно:
1) повторно перестраивать проект?
2) загружать dll-ку при помощи NETLOAD?
В архиве уже всё готово и автозагрузка автоматом загружает соответствующий mgddbg.dll в AutoCAD при старте AutoCAD.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 16:39:37
Увы, пока ошибки повторяются.
Посмотрите пожалуйста на расположению разархивированной папки, правильно ли.
почему-то dll-ка автоматом в AutoCAD не загружается.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 16:47:11
Файлы лежат там где надо. А есть ли файл "C:\Program Files\Autodesk\ApplicationPlugins\Autodesk DWG MgdDBG.bundle\PackageContents.xml" ? В архиве он есть и должен обеспечивать автозагрузку. Заодно убедитесь, что dll-файлы не заблокированы - при скачивании из интернета они часто оказываются заблокированными.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 06-02-2018, 16:49:22
Проверил - ошибка пропала. Не загружается из-за блокировки файлов, скорее всего.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 17:06:11
Посмотрите пожалуйста ещё раз..

Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 17:09:48
Посмотрите пожалуйста ещё раз..
Видео еще не готово, потому просто спрашиваю. Ты исходники перекомпилировал сам? Тогда понятно - в архиве неисправленные исходники. Исправлены только dll-файлы.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 17:15:04
Ты исходники перекомпилировал сам?
да, но потом все старые архивы очистил, вот на видео уже без компиляции загрузил, правда NETLOADом еще раз загрузил dll ку
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 06-02-2018, 17:21:48
Хм... А зачем в ProgramFiles? Это устаревшее местоположение. Для всех пользователей - папка %programdata%\Autodesk\ApplicationPlugins, для текущего пользователя - %appdata%\Autodesk\ApplicationPlugins
Чтобы установить ARXDBG и MGDDBG необходимо их BUNDLE'ы разархивировать в каталог  %ProgramFiles%\Autodesk\ApplicationPlugins
Ох блин, ну надо же, даже не обращал никогда внимания :)
Ну ладно, может это и не играет роли...
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 17:24:26
Ты исходники перекомпилировал сам?
да, но потом все старые архивы очистил, вот на видео уже без компиляции загрузил, правда NETLOADом еще раз загрузил dll ку
Обрати внимание на дату и время mgddbg.dll из каталога "C:\Program Files\Autodesk\ApplicationPlugins\Autodesk DWG MgdDBG.bundle\Contents\Resources\DWGMgdDbgSource\bin\DebugA2018\MgdDbg.dll
Должно быть так, а у тебя старая версия (где-то архив закешировался - попробуй другим браузером скачать):

(https://farm5.staticflickr.com/4770/40117145021_a593d6f689_o.png)

Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 17:26:08
Хм... А зачем в ProgramFiles? Это устаревшее местоположение. Для всех пользователей - папка %programdata%\Autodesk\ApplicationPlugins, для текущего пользователя - %appdata%\Autodesk\ApplicationPlugins
Цитата: Александр Ривилис от 19-08-2016, 15:27:08

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

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

Это универсальное место, которое справедливо для всех версий AutoCAD, начиная с 2012, когда появился автозагрузчик.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 06-02-2018, 17:29:48
Даже больше (взял тут (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-5E50A846-C80B-4FFD-8DD3-C20B22098008)):
Цитировать
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.
Был неправ :)
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 17:30:13
Теперь в архиве и исходники исправленные, т.е. соответствуют версии dll-файлов.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 17:37:24
Вот дата, да, похоже у меня действительно старая версия, скоро попробую скачать другим броузером..
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 17:41:24
Ещё раз скачал обычным Explorer-ом, нет, к сожалению пока та же версия.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 17:43:57
Если честно, после скачки я сразу обратил внимание на дату dll-ки, потому что раз вы устранили ошибки должна была и дата поменяться  :-\
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 06-02-2018, 21:54:04
Ещё раз скачал обычным 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/
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 06-02-2018, 23:20:10
Еще раз скачай
Спасибо ещё раз, супер! Все работает и показывает нужные данные..
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 07-02-2018, 00:59:15
Отлично!
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 23-03-2018, 02:50:21
Адаптировал для AutoCAD 2019. Можете проверять.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: silda от 23-03-2018, 23:43:20
Спасибо
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Владимир Шу от 07-08-2019, 14:28:34
Рылся на GitHub, нашел https://github.com/ADN-DevTech/MgdDbg   Кажется репозиторий заброшен... в этой теме обновлений больше чем там...
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 07-08-2019, 14:31:40
Рылся на GitHub, нашел https://github.com/ADN-DevTech/MgdDbg   Кажется репозиторий заброшен... в этой теме обновлений больше чем там...
Это точно, хотя и печально...
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 07-08-2019, 15:17:12
Из 18 форков один вроде живой: https://github.com/shtirlitsDva/MgdDbg/commits/master
Даже Augusto за ним наблюдает :)
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Владимир Шу от 10-02-2020, 07:59:42
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

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

Хотелось бы совета и направления, как все это поправить...
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2020, 13:04:18
Увы, но это похоже на баг в самом AutoCAD .NET API. Нормального способа обойти его я не нашёл.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2020, 13:45:16
Владимир Шу,
Хм. Интересный момент. Я заменил код на этот:
Код - 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.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Владимир Шу от 10-02-2020, 14:04:02
В 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
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2020, 14:09:49
В 2017 не заработало, как и ожидал (это по сути то же, что сделал и я, т.е. копию списка, а не переопределение того же самого)
Нет. Это не переопределение списка. HyperLinkCollection привязан к примитиву, на который он ссылается. И если примитив закрыт, то HyperLinkCollection становится невалидной. А вот такое переписывание элементов помогает. Но почему-то потребовалось и скопировать сам элемент из HyperLinkCollection и еще и переназначить доступные для изменения свойства.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Владимир Шу от 10-02-2020, 14:22:32
я понимаю, что Вы, как и я, пошли по пути создания нового списка (выделение нового куска памяти и создание объектов в этом новом куске, вместо сохранения ссылки на существующий кусок памяти), но это (в случае с 2017 акадом) приводит к исключению System.AccessViolationException и я подозреваю, что нужно не создавать копию списка, а как то передать оригинал, предварительно переопределив его тип.


ЗЫ.
Странно, если копнуть несколько глубже, то вот тут: https://referencesource.microsoft.com/#mscorlib/system/collections/arraylist.cs можно посмотреть кишки типа ArrayList и там внутри, в конструкторе принимающим ICollection и далее по методам,  видно, что создается новый массив объектов... Фигня какая я то, штатное создание ArrayList вызывает фатал, а если самому в рукопашную сделать то же самое, то фатала нет, но появляется System.AccessViolationException...  Что то пазл в голове не складывается.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2020, 14:56:43
Владимир Шу,
Да. Я перепроверил и в 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])

Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2020, 15:17:38
Что то пазл в голове не складывается.
Это же обертка над native кодом. Видимо не слишком корректная.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Владимир Шу от 10-02-2020, 16:00:54
Спасибо. Все заработало. Выглядит как некоторый костыль, но работает.
Надо как то это в репозиторий закинуть, у меня не получилось =( или пора форумный форк делать =)
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 10-02-2020, 17:02:44
Спасибо. Все заработало. Выглядит как некоторый костыль, но работает.
Надо как то это в репозиторий закинуть, у меня не получилось =( или пора форумный форк делать =)
Если честно, то я не слишком продвинутый GIT-пользователь. Так что с форком не подскажу, а вот исправленные исходники и бинарники уже в архиве, указанном в первом сообщении темы.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Пекшев aka Modis от 01-03-2020, 22:27:41
Надо как то это в репозиторий закинуть, у меня не получилось
Надо сначала сделать Fork, потом внести изменения, а потом сделать Pull Request и ждать, пока автор оригинального репозитория примет этот ПР
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 02-03-2020, 11:16:39
и ждать, пока автор оригинального репозитория примет этот ПР
Боюсь, никогда. Проектом не занимаются.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 25-08-2020, 13:47:15
Обратил внимание, что режиме Browse Using Reflection... можно не только просматривать, но и редактировать свойства объекта.

(https://live.staticflickr.com/65535/50266172778_5d4a92f5f5_o.png)

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


Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Привалов Дмитрий от 25-08-2020, 14:20:50
можно не только просматривать, но и редактировать свойства объекта.
Жаль, что у меня старая версия. Полезная функция.
А свойства для чтения, ну например Polyline.NumberOfVertices, Polyline.Length программа определяет и не дает редактировать?
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 25-08-2020, 14:23:32
Жаль, что у меня старая версия. Полезная функция.
Я перекомпилировал для версий начиная с 2012. Для более ранних наверное работать не будет.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 25-08-2020, 14:26:51
Редактировать можно только те свойства, значения которых жирным шрифтом:

(https://live.staticflickr.com/65535/50267112892_6505bd2548_o.png)



Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Привалов Дмитрий от 25-08-2020, 14:51:22
Я перекомпилировал для версий начиная с 2012. Для более ранних наверное работать не будет.
У нас 2010.  :-D
Я написал некий прототип программы ARXDBG основанный на рефлексии, только для целей просмотра структуры dwg и свойств объектов.
Только довести до ума времени нет. :-D
(https://i.postimg.cc/23TBhz4k/DWGbrowser2.png) (https://postimg.cc/23TBhz4k)
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Дмитрий Загорулькин от 25-08-2020, 14:53:13
А чем MGDDBG плох? Зачем свой велосипед?
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Привалов Дмитрий от 25-08-2020, 15:15:32
А чем MGDDBG плох? Зачем свой велосипед?
Общий ответ - для удобства изучения проблем в файлах.

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

Конечно это не полноценный аналог и задумывался только как средство более быстрого и удобного просмотра свойств. Использую совместно с MGDDBG.
Естественно недоделанный, и мало что умеет.
Ну и может упасть, т.к. считывает значения методов вида int GetValues()....не все методы, не всех объектов можно так бездумно вызывать.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 25-08-2020, 15:36:11
По крайней мере в старой версии MGDDBG
1. Не было рефлексии, т.е. всех свойств
Она там была всегда. Только нужно было знать как её найти.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 25-08-2020, 15:37:21
У нас 2010.  :-D
Там все исходники - перекомпилируй для себя под AutoCAD 2010.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Привалов Дмитрий от 25-08-2020, 15:59:29
Она там была всегда. Только нужно было знать как её найти.
И как ее найти? Контекстного меню у меня на выбранных объектах нет. Это я первым делом проверил. :-(

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

Исходники скачивать от сюда?
http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 25-08-2020, 16:05:18
И как ее найти? Контекстного меню у меня на выбранных объектах нет. Это я первым делом проверил. :-(
(https://live.staticflickr.com/65535/50267394312_52ed6238b6_o.png)

хм. ну если найду vs2008, то попробую.
Зачем именно эту версию? Это для ObjectARX (и соотвественно ARXDBG) нужна конкретная версия. А для .NET такого ограничения нет.
Исходники скачивать от сюда?
http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Именно.
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Привалов Дмитрий от 25-08-2020, 16:15:30
Зачем именно эту версию? Это для ObjectARX (и соотвественно ARXDBG) нужна конкретная версия. А для .NET такого ограничения нет.
...Извиняюсь. Все перепутал, думал речь про ARXDBG.
MgdDbg не пользовался, один раз посмотрел и подумал, что он налог ARXDBG.
А в MgdDbg есть еще полезные отличия от ARXDBG?
Название: Re: ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д.
Отправлено: Александр Ривилис от 25-08-2020, 16:21:17
А в MgdDbg есть еще полезные отличия от ARXDBG?
Да. И много. Да и просто исходники интересно посмотреть.