Создание, открытие и сохранение файлов

Добро пожаловать! Это вторая часть данной серии статей в блоге, и здесь я объясню, как работать с содержимым базы данных 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-деталь или физический продукт с помощью сценариев!