Database.ResolveXrefs падает при ошибках в файле

Автор Тема: Database.ResolveXrefs падает при ошибках в файле  (Прочитано 7310 раз)

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

Оффлайн bargoolАвтор темы

  • ADN Club
  • ***
  • Сообщений: 111
  • Карма: 6
Пытаюсь пакетно разобраться с внешними ссылками в файлах. Открываю их через Database.ReadDwgFile. WorkingDatabase переключаю на вновь открытый файл.
Database.ResolveXrefs падает с System.AccessViolationException в файлах, где audit показывает ошибку
Цитировать
objects auditedAcDbTable(1D11)            BTR Id invalid
По крайней мере, это единственное, что я увидел общего в этих файлах
Подскажите, что с этим делать?
Алексей

Оффлайн bargoolАвтор темы

  • ADN Club
  • ***
  • Сообщений: 111
  • Карма: 6
В начале обработки сделал Wblock (т.к. я всё равно его использую), проблема похоже отпала О_о
Хотя это не решение, а костыль (но ведь аудит не сделать, как я выяснил в соседней теме)
« Последнее редактирование: 26-02-2015, 14:02:00 от bargool »
Алексей

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
но ведь аудит не сделать, как я выяснил в соседней теме
ты в своём коде .net можешь для этого использовать функционал, предоставленный в COM (А.Н. ведь показал имя нужного метода).

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

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

Оффлайн bargoolАвтор темы

  • ADN Club
  • ***
  • Сообщений: 111
  • Карма: 6
ты в своём коде .net можешь для этого использовать функционал, предоставленный в COM (А.Н. ведь показал имя нужного метода).
Это если AcadDocument есть при открытии файла через ReadDwgFile. Надо будет проверить.
До работы твоей программы выполнить пакетную проверку всех файлов. AutoCAD .NET API подразумевает что мы работам с нормальными файлами.
Понял. Просто в данном случае, я думаю, можно говорить о баге в API. Ибо ну не должно оно падать с неотлавливаемым исключением System.AccessViolationException. Товарищи разработчики не обрабатывают соответствующие возможные ошибки, которые они умеют обрабатывать при аудите.
Алексей

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Это если AcadDocument есть при открытии файла через ReadDwgFile. Надо будет проверить.
Его точно нет если второй параметр конструктора Database равен true (т.е. документ не создаётся совсем).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

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