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

ADN Club => ObjectARX => Тема начата: Baton от 28-11-2022, 14:11:08

Название: Битые файлы DWG и реакторы
Отправлено: Baton от 28-11-2022, 14:11:08
Добрый день всем!
В последнее время проявилась одна неприятная ситуация. Если файлы DWG содержат ошибки, то вылетают реакторы ObjectARX приложения (EditorReactor, реакторы объектов). Отследить это в коде не получается. Проверка вылетов показывает, что происходит это в произвольном месте, не связанном с работой реакторов. Внешне ничем вылет не проявляется и в этом проблема. Программа вроде не вылетает и ничего не сообщает, но в автоматическом режиме через реакторы перестает работать. Битых файлов DWG в связи с повсеместным размножением Ревита все больше. Ревит часто просто генерирует ошибочные файлы DWG. Да и не только Ревит. Пользователи годами используют одни и те же файлы для шаблонов, ошибки в файлах множатся.
Моя программа основана на работе реакторов. Пользователи к этому привыкли. Может можно как-то проверить работоспособность реакторов на лету и хотя-бы выдавать предупреждение о необходимости лечить файл?
Название: Re: Битые файлы DWG и реакторы
Отправлено: Александр Ривилис от 28-11-2022, 14:15:23
Что такое "битые файлы"? Это не технический термин.
Название: Re: Битые файлы DWG и реакторы
Отправлено: Baton от 28-11-2022, 16:08:20
Что такое "битые файлы"?
Битые - эти те файлы, проверка которых командами Recover или Audit выдает некое количество различных ошибок в объектах чертежа.
Примечательно то, что после проверки командой Recover иногда ошибки не находятся, но моя программа начинает работать нормально. Видимо не о всех ошибках сообщается.
Название: Re: Битые файлы DWG и реакторы
Отправлено: Александр Ривилис от 29-11-2022, 01:34:55
Может можно как-то проверить работоспособность реакторов на лету и хотя-бы выдавать предупреждение о необходимости лечить файл?
Нет. В лучшем случае ты можешь проверить чертеж (аналог Audit): функция acedAudit
Название: Re: Битые файлы DWG и реакторы
Отправлено: Baton от 30-11-2022, 01:01:42
acedAudit просто проверяет базу чертежа, но, к сожалению, не дает никакой информации, есть все-таки ошибки в чертеже или нет. Запустить то ее можно, но ее работа занимает время, при больших файлах значительное, и, как показывает практика, лечит она не всё. Лечит всё только Recover.
Вообще странно ведет себя Автокад. При ошибках в чертеже вырубать реакторы как-то неправильно.
Есть случаи с битыми файлами, когда лечение ничего не дает и помогает только перенос всех объектов в другой чистый файл. В общем, это серьезный косяк Автокада, независящий, как показывают эксперименты, от версий Автокада.
Название: Re: Битые файлы DWG и реакторы
Отправлено: Lemieux от 02-12-2022, 14:08:47
Что такое "битые файлы"?
Битые - эти те файлы, проверка которых командами Recover или Audit выдает некое количество различных ошибок в объектах чертежа.
Примечательно то, что после проверки командой Recover иногда ошибки не находятся, но моя программа начинает работать нормально. Видимо не о всех ошибках сообщается.
А это точно от Revit? А то мне попадались dwg файлы весом 8 мб, где было много мусора от сторонних плагинов.
Название: Re: Битые файлы DWG и реакторы
Отправлено: Baton от 02-12-2022, 23:12:29
А это точно от Revit?
И Ревит (это точно), и просто битые файлы от долгого пользования файлами без лечения.
Название: Re: Битые файлы DWG и реакторы
Отправлено: Lemieux от 04-12-2022, 09:26:14
А это точно от Revit?
И Ревит (это точно), и просто битые файлы от долгого пользования файлами без лечения.
Интересно конечно. Когда я создавал битые файлы в AutoCAD, во время написания своих плагинов, то он ругался и не давал сохраниться.