• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Пересохранение сборок

Автор bvr, 22.01.11, 12:08:56

« назад - далее »

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

bvr

Добрый день

Вопрос такой.
Есть сборка, обзовем ее сб.a3d, в нее входят детали, например 1 и 2. Они лежат в каталоге с:\1. Открыт только файл сборки. Файл сборки хранит в себе ссылки на входящие детали. Надо пересохранить в каталог с:\2.
Что будет, если выполнить такой алгоритм:
1. Начало цикла
2. Определяем имя файла входящей детали и открываем его
3. Через IPart меняем FileName
4 Сохраняем файл и закрываем его
5 идем к п.2
6 Конец цикла
7 Меняем имя файла сборки и созраняем сборку в с:\2.
Вопрос такой, когда мы откроем пересохраненную сборку, то она какие файлы будет содержать? Расположенные по старому пути или пересохраненные? Если старые, то как сделать, что бы она содержала ссылки на пересохраненные файлы?

ЗЫ: Пример частный, в общем случае входящие детали не обязательно будут находиться в дочерних каталогах по отношению к с:\1, как быть в этом случае?

Спасибо.

chelkar

IPart:FileName сам новый файл не создаст.
Надо сначала скопировать файл и указать уже существующий.
И не забыть у IPart вызвать Update.
Тогда новая сборка будет казать на новые файлы.
Я так думаю ...

ainis

Наверное, как-то так:


Dim iKompas7 As KompasAPI7.IApplication = Marshal.GetActiveObject("KOMPAS.Application.7")
Dim iDocuments As KompasAPI7.IDocuments = iKompas7.Documents
Dim iDoc As KompasAPI7.IKompasDocument = iDocuments.Item(iPart.fileName)
iDoc.SaveAs(NewPath) 'NewPath - новый путь


Для сборки, возможно, нужно будет вызвать метод UpdateDocumentParam (API 5) или Update для интерфейса IModelObject  (API 7).