Но в этом случае, если в чертеже есть мои объекты (с переопределением DrawableOverrule) полученный чертеж потом невозможно открыть - во время открытия каждый раз происходит фатальная ошибка, даже при не загруженном модуле.Видно ты что-то там напереопределял лишнего. Попробуй тогда анализировать запущенную команду и в случае если это экспорт отменяй переопределение.
Второй вариант - это создание копии чертежа с помощью:Теоретически должно работать, но Wblock теряет ссылки на SoftPointerId (например, группы рассыпаются)
Код - C# [Выбрать]
db.Wblock();
Далее, сохранить этот новый чертеж, открыть и расчленить все свои объекты и объекты Civil 3D в модели и во всех листах, и сохранение в нужной версии DWG.
Попробуй тогда анализировать запущенную команду и в случае если это экспорт отменяй переопределение.Но тогда я потеряю свою графику из переопределения...
Но тогда я потеряю свою графику из переопределения...Думаю что ты её потеряешь в любом случае.
Вместо db.Wblock можешь еще попробовать db.SaveAs - точно ничего не потеряешь.Кстати, да ))
Но в этом случае, если в чертеже есть мои объекты (с переопределением DrawableOverrule) полученный чертеж потом невозможно открыть - во время открытия каждый раз происходит фатальная ошибка, даже при не загруженном модуле.
Видно ты что-то там напереопределял лишнего.Похоже на то. Проверил у себя - чертёж с переопределёнными объектами после стандартного экспорта открывается нормально, без фаталов. Только в нём не сохраняется переопределение - только стандартное отображение.
Подписываюсь на событие Document.CommandWillStart и если запускается комнда содержащая EXPORTTOAUTOCAD, то запускаю отрисовку, но не в WorldDraw, а в чертеж.Интересное решение! Я так понимаю, что стандартное отображение сохраняется и выполняется только "дорисовка" того, чего не хватает, а не полная подмена отображения?
Необходимо сохранить текущий чертеж Civil 3D в формате AutoCAD с выбором версии DWG.Вот тут можно что-нибудь подсмотреть по теме: http://adn-cis.org/forum/index.php?topic=538.0
Интересное решение! Я так понимаю, что стандартное отображение сохраняется и выполняется только "дорисовка" того, чего не хватает, а не полная подмена отображения?Да, частичная перерисовка, в основном подпрофильных данных.
Проверил у себя - чертёж с переопределёнными объектами после стандартного экспорта открывается нормально, без фаталов.А где ты хранишь данные - в XData или в ExtensionDictionary?
Что надо подправить, чтобы new_ed.SelectAll() заработал?Возможно, лучше совсем его не использовать.
Возможно, лучше совсем его не использовать.Именно. Он совершенно не нужен в этой ситуации. Тебе нужна коллекция ObjectId всех примитивов? Ну так пройдись итератором и выбери их.
А как собственно закрыть чертеж? Я так и не нашел способ.DocumentExtension.CloseAndDiscard или DocumentExtension.CloseAndSave
Неужели тут может быть моя ошибка?Может быть. Надо смотреть код полностью.