欢迎回来!这是本系列博文的第二部分,我将在此介绍如何使用 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
的 <内容类型>; 字符串可以有以下值:
- “绘图”: 创建绘图
- “3DShape”: 创建三维形状
- “3DPart”: 创建 3D 零件
- “VPMReference”: 创建实物产品
坏消息是–从宏创建新的 3D 零件或实体产品需要特殊许可证,即 VMX 或 E70 许可证。没有许可证,您只能创建图纸或三维形状。通常情况下,大多数公司都没有这种许可证,这意味着 不要指望能使用脚本创建新的 3D 零件或实物产品!