Добро пожаловать! Это вторая часть данной серии статей в блоге, и здесь я объясню, как работать с содержимым базы данных 3DEXPERIENCE (3DX).
Прежде всего, Dassault не любит использовать слово «файл», когда мы говорим о 3DX. Как вы, наверное, знаете, весь контент 3DX хранится в базе данных, и каждый элемент в этой базе данных теперь называется «объектом PLM». (Имейте в виду, что в конце концов для каждого элемента в БД существует файл, хранящийся где-то на сервере.) Тем не менее, с этого момента мы будем использовать слова «субъект PLM» или «объект PLM» для каждого элемента в этой БД. .
Вероятно, это одно из самых больших различий между V5 и 3DX.
На основе документов и на основе БД
Версия V5 основана на документах. Когда вы видите модель на экране в V5, она представлена двумя объектами — объектом «Документ» и объектом «Окно». Когда вы открываете или сохраняете модель в V5, CATIA либо читает, либо сохраняет файл.
Рисунок 1
То, что вы видите на экране 3DX, также представлено двумя объектами, но теперь это объект «Редактор» и объект «Окно». Объект Window выполняет ту же функцию, что и в V5, — отображает модель на экране. Однако роль объекта Editor — это роль «контроллера» содержимого модели. Т. е. он содержит текущее приложение и список всех команд, которые можно запустить из приложения.
У редактора есть свойство АктивОбъект, то есть объект, который вы видите на экране. Чтобы получить активный объект, вы можете использовать следующие команды в VBA и дальше работать с ним.
01: Dim oActiveObj как AnyObject
02: Установите oActiveObj = CATIA.ActiveEditor.ActiveObject
Объект контента соответствует объекту PLM в БД, который представлен картой метаданных и файлом хранения. Это создает «дополнительный слой» между сеансом 3DX и файлами в БД. Чтобы получить файл, система сначала считывает метаданные, которые сообщают, где именно находится файл.
фигура 2
В 3DX вы не можете просто «открыть» или «сохранить» модель. Вам придется попросить «сервис» 3DX сделать это за вас.
Я буду подробно обсуждать «сервисы» 3DX в третьей части серии, поэтому сейчас мы будем говорить проще.
Поиск и открытие из БД
Чтобы перенести модель в сеанс 3DX, необходимо сначала найти ее (SearchService), а затем открыть (PLMOpenService). Код VBA будет выглядеть примерно так:
' Получаем объект SearchService и создаем поисковый запрос
01: Затемните oSearchService как SearchService
02: Установите oSearchService = CATIA.GetSessionService («Поиск»)
03: Dim oDBSearch как поиск в базе данных
04: Установите oDBSearch = oSearchService.DatabaseSearch
05: oDBSearch.BaseType = «VPMReference» ' ищет физический продукт
06: oDBSearch.AddEasyCriteria «V_Name», «
' Запускаем поиск
07: oSearchService.Search
' Получаем список найденных объектов
08: Dim cPLMEntities как PLMEntities
09: Установите cPLMEntities = oDBSearch.Results
' Получаем сервис PLMOpen и открываем первый найденный объект
10: Dim oPLMOpenService как PLMOpenService
11: Установите oPLMOpenService = CATIA.GetSessionService («PLMOpenService»)
12: Dim oEditor как редактор
13: oPLMOpenService.PLMOpen cPLMEntities.Item(1), oEditor
Сохранение в БД
Чтобы сохранить текущую модель в БД, вам придется использовать команду ПЛМПропагатеСервис. Код VBA будет выглядеть примерно так:
' Получаем объект PropagateService
01: Dim oSaveService как PLMPropagateService
02: Установите oSaveService = CATIA.GetSessionService («PLMPropagateService»)
' Сохранить в БД (сохраняет только содержимое активного редактора!)
03: oSaveService.PLMPropagate
Создание нового контента
Теперь для создания нового контента вам придется использовать еще один Сервис – PLMНовыйСервис.
01: Dim oServ As PLMNewService
02: Установите oServ = CATIA.GetSessionService («PLMNewService»)
03: Dim oEditor как редактор
04: oServ.PLMCreate «<тип_контента>», oEditor
<тип_контента> строка может иметь следующие значения:
- «Рисунок»: Создает рисунок
- «3DШейп»: Создает 3D-форму
- «3DPart»: Создает 3D-деталь
- «VPMReference»: Создает физический продукт
Вот и плохие новости: для создания новой 3D-детали или физического продукта из макроса требуется специальная лицензия VMX или E70. Без лицензии вы можете создать только рисунок или 3D-фигуру. Как правило, большинство компаний не имеют этой лицензии, а это означает: не ждите, что сможете создать новую 3D-деталь или физический продукт с помощью сценариев!