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

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

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

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

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

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

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

Проблема обеспечения корректной привязки чертежей к 3D-модели

Автор ITKaitlin, 20.08.25, 14:15:45

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

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

ITKaitlin

Здравствуйте,

Необходимо выполнить копирование сборочной единицы с помощью API КОМПАС с последующим переименованием указанных деталей и узлов.
В части моделей деталей и узлов я успешно реализовала данный процесс.
Однако при работе с чертежами и их связью с моделями возникают сложности.
Я пока не до конца понимаю, каким образом правильно реализовать данный аспект для обеспечения корректной привязки и обновления чертежей после копирования.

Ниже приведён фрагмент кода, в котором отражены манипуляции по переименованию и копированию сборки с чертежами, а так же добавления привязки:
// Открытие документа
KompasDocument3D := kompasAPI7.Documents.Open(NameNewSB, True, False) as IKompasDocument3D;
KompasDocument3D := kompasAPI7.ActiveDocument as IKompasDocument3D;
Part := KompasDocument3D.TopPart as IPart7;
PropertyKeeper := Part1 as IPropertyKeeper;
// Получение свойств документа     -----------------------------------------------
// Формируем полный путь файла              ------------------------------

// Получение менеджера продукта
ProductDataManager := KompasDocument3D as IProductDataManager;
// Получение подключенных чертежей
ProductDataManager.ObjectAttachedDocuments[PropertyKeeper];
// Процесс получения чертежа
// ...
// Предварительный просмотр метаданных дерева исходной модели
ShowMessage('MetaProductInfo DO rebuild: ' + ProductDataManager.MetaProductInfo);
// Получение чертежа
FileCdw := StringList[0];
// Перестройка и сохранение под новым именем модели
KompasDocument3D.RebuildDocument;
KompasDocument3D.SaveAs(NameNewSB);
KompasDocument3D.Close(0);

// Проверка существования файла чертежа
IsFileExists(FileCdw);
// Открытие файла чертежа (.cdw)
KompasDocument2D := kompasAPI7.Documents.Open(FileCdw, True, False) as IKompasDocument2D;

// Формируем путь и сохраняем под новым именем
// KompasDocument2D.SaveAs(NewfileName);
// Получение видов документа
// Получение интерфейса ассоциативного вида графического документа для изменения полного имени файла-источника
// Перестройка и сохранение чертежа
// ...

// Добавление нового чертежа в "Управление связанными чертежами" модели
KompasDocument := kompasAPI7.Documents.Open(NameNewSB, True, False) as IKompasDocument;
KompasDocument := kompasAPI7.ActiveDocument as IKompasDocument;
kompasDocument3d := KompasDocument as IKompasDocument3D;
Part := kompasDocument3d.TopPart as IPart7;
PropertyKeeper := Part1 as IPropertyKeeper;
ProductDataManager := kompasDocument as IProductDataManager;

// Добавление чертежа в "Управление связанными чертежами" для конкретной сборки
ProductDataManager.ObjectAttachedDocuments[PropertyKeeper] := NewfileName;

// Получение измененных метаданных дерева исходной модели
ShowMessage('MetaProductInfo sd: ' + ProductDataManager.ObjectMetaProductInfo[PropertyKeeper]);

// Перестройка и сохранение модели
// ...
Также прилагаю исходные метаданные до выполнения данных операций:
<infObject id="18905481-4159882976-0" type="embodiment" spUsed="allStyles" formatSourceDocument="Len_1230.cdw" setMaterialName="false" prodCopy="false" />
<document>
<property id="fullFileName" value="Len_1230.cdw.cdw" />
</document>
и метаданные после их реализации:
<infObject id="18905481-4159882976-0" type="embodiment" spUsed="allStyles" formatSourceDocument="..\\Len_1230.cdw" setMaterialName="false" prodCopy="false" />
<document>
<property id="fullFileName" value="Len_1.cdw" />
</document>
Буду признательна за подсказки и рекомендации по правильной организации процесса для корректного обновления и привязки чертежей.


Валерий Изранов

ITKaitlin, вам очень важно сделать собственную программу или  попробуете готовую?
https://disk.yandex.ru/d/g2iIgcP-C-a1pg
+ Благодарностей: 1

ITKaitlin

Цитата: Валерий Изранов от 20.08.25, 15:52:54ITKaitlin, вам очень важно сделать собственную программу или  попробуете готовую?
https://disk.yandex.ru/d/g2iIgcP-C-a1pg

Я считаю, что важнее сначала разобраться и доделать свою собственную программу, чтобы полностью понять процесс и реализовать всё по своему методу. Готовая программа может помочь как временное решение, но собственный подход даст больше контроля и опыта.

Валерий Изранов

 ITKaitlin, вы готовы потратить на разбирательство и доделку 1 (один)год соей жизни?

Doom2

Цитата: Валерий Изранов от 20.08.25, 16:12:171 (один)год

Извлек исходник за 45 сек. "45 секунд Карл".

+ ИИ, не думаю что при таких инструментах будут столько затрат по времени.