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

ADN Club => AutoCAD .NET API => Тема начата: Дмитрий Загорулькин от 15-04-2014, 15:15:13

Название: DrawableOverrule + Jigs = FatalError?
Отправлено: Дмитрий Загорулькин от 15-04-2014, 15:15:13
Здравствуйте.
Так получилось, что в своей программе я использую DrawableOverrule для отрисовки объекта и Jigs для его вставки. По отдельности они работают хорошо, но при включенном DrawableOverrule в месте использования Jigs вылетает автокад с фатальной ошибкой. Пример кода нужно "выдирать" из сборки, потому пока не привожу. Будет время - наваяю.
Пока хочу спросить, есть ли какие-то известные ограничения по применению этих возможностей?
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Александр Ривилис от 15-04-2014, 15:58:56
Пока хочу спросить, есть ли какие-то известные ограничения по применению этих возможностей?
Известных нет. Так что скорее всего (как обычно) один из следующих вариантов:
1) Баг в AutoCAD/AutoCAD .NET API
2) Ошибка в твоем коде.
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Дмитрий Загорулькин от 15-04-2014, 17:00:41
Проверил на простом примере связку DrawableOverrule и Jigs - работает. В чем-то другом проблема :(
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Александр Ривилис от 15-04-2014, 17:02:12
Значит смотри п. 2:
2) Ошибка в твоем коде.
:)
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Дмитрий Загорулькин от 15-04-2014, 17:08:32
Если бы в моем коде, то в режиме отладки мне показывало место, где ошибка происходит - а этого не происходит. По отдельности же и то и другое работает. Отключаю DrawableOverrule - Jig-вставка работает, не использую Jig-вставку - DrawableOverrule тоже вполне прилично себя ведет. Но стоит со включенной DrawableOverrule запустить Jig-вставку - крах. Причем, студия пишет:
Шаг с заходом: обход кода, не являющегося кодом пользователя "Autodesk.AutoCAD.EditorInput.Editor.Drag"
Первый этап обработки исключения типа "System.NullReferenceException" в приложении Неизвестный модуль.
Буду копать.
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Дмитрий Загорулькин от 15-04-2014, 17:28:01
Нашел, мой косяк :)
Ошибка была в методе, вызываемом из метода DrawableOverrule.WorldDraw.
Пытался прочитать расширенные данные из объекта, у которого их нет.
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Александр Ривилис от 15-04-2014, 17:29:06
Так всё-таки п. 2? :)
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Дмитрий Загорулькин от 15-04-2014, 17:36:38
Да, он самый :)
Непонятно, почему студия не показала место возникновения ошибки. Но это уже тонкости.
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Александр Ривилис от 15-04-2014, 17:38:15
Да, он самый :)
Непонятно, почему студия не показала место возникновения ошибки. Но это уже тонкости.
FIBERWORLD равен 1?
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Андрей Бушман от 15-04-2014, 18:30:15
Пытался прочитать расширенные данные из объекта, у которого их нет.
И тут на сцену так, бочком, бочком вытанцовывает... модульное тестирование... :) Аля волшебная таблетка от подобных "неожиданностей" :)
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Дмитрий Загорулькин от 15-04-2014, 18:40:31
Александр Наумович, да, FIBERWORLD = 1.
Андрей, осталось разобраться, что это такое :)
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Андрей Бушман от 15-04-2014, 20:12:33
Андрей, осталось разобраться, что это такое :)
Если желание появится, то можно почитать например это (http://www.nunit.org/index.php?p=docHome&r=2.6.3). Вообще, информации по обозначенной теме в Интернете предостаточно.
Название: Re: DrawableOverrule + Jigs = FatalError?
Отправлено: Александр Ривилис от 16-04-2014, 10:04:37
Александр Наумович, да, FIBERWORLD = 1.
Скорее всего поэтому студия и не показала место ошибки.