创建、打开和保存文件

加入设计师论坛

您的专业知识对社区至关重要。加入我们,贡献您的知识

立即加入论坛

与业内最优秀的专业人士一起分享、学习和成长。


欢迎回来!这是本系列博文的第二部分,我将在此介绍如何使用 3DEXPERIENCE (3DX) 数据库内容。

首先,当我们谈论 3DX 时,达索不喜欢使用 “文件 “一词。您可能很清楚,所有 3DX 内容都存储在数据库中,而数据库中的每一个项目现在都被称为 “PLM 实体”。(请注意,最终数据库中的每个项目都有一个文件,存储在服务器上的某个地方)。不过,从现在起,我们将使用 “PLM 实体 “或 “PLM 对象 “来表示数据库中的每个项目。

这可能是 V5 和 3DX 之间最大的区别之一。

基于文档与基于 DB

V5 是基于文档的。当您在 V5 的屏幕上看到一个模型时,它由两个东西表示 – 文档对象和窗口对象。在 V5 中打开或保存模型时,CATIA 实际上是读取或保存一个文件。

图 1

您在 3DX 屏幕上看到的也是两个东西,但现在是编辑器对象和窗口对象。窗口对象执行与 V5 相同的功能,即在屏幕上显示模型。而编辑器对象的作用则是模型内容的 “控制器”。也就是说,它保存着当前的应用程序,并维护着可以从应用程序启动的所有命令的列表。

编辑器有一个属性 活动对象这就是你在屏幕上看到的对象。要获取活动对象,可以在 VBA 中使用以下命令,然后对其进行操作。

01: Dim oActiveObj As AnyObject(将 oActiveObj 作为任意对象

02: Set oActiveObj = CATIA.ActiveEditor.ActiveObject

内容对象对应数据库中的 PLM 实体,由元数据卡和存储文件表示。这在 3DX 会话和数据库中的文件之间创建了一个 “额外层”。要获取文件,系统首先会读取元数据,元数据会告知文件的具体位置。

图 2

在 3DX 中,您不能直接 “打开 “或 “保存 “模型。您必须让 3DX 的 “服务 “为您代劳。

我将在本系列的第 3 部分详细讨论 3DX 的 “服务”,因此现在我们将保持简单。

从数据库中搜索和打开

要将模型引入 3DX 会话,必须先搜索模型(SearchService),然后打开模型(PLMOpenService)。VBA 代码如下:

获取 SearchService 对象并创建搜索查询

01: Dim oSearchService As SearchService

02: Set oSearchService = CATIA.GetSessionService(“Search”)

03: Dim oDBSearch As DatabaseSearch

04: Set oDBSearch = oSearchService.DatabaseSearch

05: oDBSearch.BaseType = “VPMReference” ‘ 搜索物理产品

06: oDBSearch.AddEasyCriteria “V_Name”, “<model_title>” ‘ 使用标题进行搜索

启动搜索

07: oSearchService.Search

检索找到的实体列表

08: Dim cPLMEntities As PLMEntities

09: Set cPLMEntities = oDBSearch.Results

获取 PLMOpen 服务 & 打开第一个找到的实体

10: Dim oPLMOpenService As PLMOpenService

11: Set oPLMOpenService = CATIA.GetSessionService(“PLMOpenService”)

12: Dim oEditor As Editor

13: oPLMOpenService.PLMOpen cPLMEntities.Item(1), oEditor

保存到数据库

要将当前模型保存到数据库中,必须使用 PLMPropagateService.VBA 代码如下所示

获取 PropagateService 对象

01: Dim oSaveService As PLMPropagateService

02: Set oSaveService = CATIA.GetSessionService(“PLMPropagateService”)

保存到数据库(仅保存活动编辑器的内容)

03: oSaveService.PLMPropagate

创建新内容

现在,要创建新内容,您必须使用另一个服务–“服务”。 PLMNewService.

01: Dim oServ As PLMNewService

02: Set oServ = CATIA.GetSessionService(“PLMNewService”)

03: Dim oEditor As Editor

04: oServ.PLMCreate “<content_type>”, oEditor

<内容类型&gt; 字符串可以有以下值:

  • “绘图”: 创建绘图
  • “3DShape”: 创建三维形状
  • “3DPart”: 创建 3D 零件
  • “VPMReference”: 创建实物产品

坏消息是–从宏创建新的 3D 零件或实体产品需要特殊许可证,即 VMX 或 E70 许可证。没有许可证,您只能创建图纸或三维形状。通常情况下,大多数公司都没有这种许可证,这意味着 不要指望能使用脚本创建新的 3D 零件或实物产品!


加入设计师论坛

您的专业知识对社区至关重要。加入我们,贡献您的知识

立即加入论坛

与业内最优秀的专业人士一起分享、学习和成长。