Crear, abrir y guardar archivos

Únase al foro de diseñadores!

Su experiencia es vital para la comunidad. Únase a nosotros y aporte sus conocimientos.

Únase ahora al Foro

Comparta, aprenda y crezca con los mejores profesionales del sector.


¡Bienvenido de nuevo! Esta es la segunda parte de esta serie de entradas de blog, y en ella explicaré cómo trabajar con el contenido de la base de datos de 3DEXPERIENCE (3DX).

En primer lugar, a Dassault no le gusta utilizar la palabra «archivo» cuando hablamos de 3DX. Como muy bien sabrá, todo el contenido 3DX se almacena en la BD, y todos y cada uno de los elementos de esa BD se denominan ahora «Entidad PLM». (Eso sí, al final hay un archivo para cada elemento de la BD, almacenado en algún lugar de un servidor). Aun así, a partir de ahora, utilizaremos las palabras «entidad PLM» u «objeto PLM» para cada elemento de esa BD.

Esta es probablemente una de las mayores diferencias entre V5 y 3DX.

Basado en documentos vs. Basado en BD

V5 está basado en documentos. Cuando ve un modelo en su pantalla en V5, está representado por dos cosas: el objeto Documento y el objeto Ventana. Cuando abre o guarda un modelo en V5, CATIA realmente lee o guarda un archivo.

Figura 1

Lo que ve en la pantalla de 3DX también está representado por dos cosas, pero ahora son el objeto Editor y el objeto Ventana. El objeto Ventana realiza la misma función que en V5, que es mostrar el modelo en la pantalla. La función del objeto Editor, sin embargo, es la de «controlador» del contenido del modelo. Es decir, contiene la aplicación actual y mantiene la lista de todos los comandos que pueden lanzarse desde la aplicación.

El Editor tiene una propiedad ActiveObject, que es el objeto que se ve en la pantalla. Para hacerse con el objeto activo, podría utilizar los siguientes comandos en VBA, y a partir de ahí trabajar con él.

01: Dim oActiveObj As AnyObject

02: Set oActiveObj = CATIA.ActiveEditor.ActiveObject

El objeto de contenido corresponde a una Entidad PLM en la BD, que está representada por una tarjeta de metadatos y un archivo de almacenamiento. Lo que crea una «capa extra» entre la sesión 3DX y los archivos en la BD. Para obtener el archivo, el sistema lee primero los metadatos, que indican dónde se encuentra exactamente el archivo.

Figura 2

En 3DX no puede simplemente «abrir» o «guardar» el modelo. Tiene que pedir a un «servicio» de 3DX que lo haga por usted.

Discutiré en detalle los «servicios» de 3DX en la parte 3 de la serie, así que por ahora lo mantendremos simple.

Buscar y abrir desde la BD

Para traer un modelo a la sesión 3DX, primero debe buscarlo (SearchService) y luego abrirlo (PLMOpenService). El código VBA sería algo parecido a esto

‘ Obtener el objeto SearchService y crear la consulta de búsqueda

01: Dim oSearchService Como SearchService

02: Set oSearchService = CATIA.GetSessionService(«Search»)

03: Dim oDBSearch Como DatabaseSearch

04: Set oDBSearch = oSearchService.DatabaseSearch

05: oDBSearch.BaseType = «VPMReference» ‘ busca un PhysicalProduct

06: oDBSearch.AddEasyCriteria «V_Name», «<model_title>» ‘ busca utilizando el Título

‘ Inicie la búsqueda

07: oSearchService.Search

‘ Recuperar la lista de entidades encontradas

08: Dim cPLMEntidades As PLMEntidades

09: Set cPLMEntidades = oDBSearch.Resultados

‘ Obtener el servicio PLMOpen & abrir la primera entidad encontrada

10: Dim oPLMOpenService As PLMOpenService

11: Set oPLMOpenService = CATIA.GetSessionService(«PLMOpenService»)

12: Dim oEditor Como Editor

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

Guardar en la base de datos

Para guardar el modelo actual en la BD, tendría que utilizar la función PLMPropagateService. El código VBA sería algo parecido a esto

‘ Obtener el objeto PropagateService

01: Dim oSaveService As PLMPropagateService

02: Set oSaveService = CATIA.GetSessionService(«PLMPropagateService»)

‘ Guardar en BD (¡sólo guarda el contenido del editor activo!)

03: oSaveService.PLMPropagate

Crear nuevo contenido

Ahora, para crear nuevos contenidos, tendría que utilizar aún otro Servicio – PLMNuevoServicio.

01: Dim oServ Como PLMNuevoServicio

02: Set oServ = CATIA.GetSessionService(«PLMNewService»)

03: Dim oEditor Como Editor

04: oServ.PLMCreate «<content_type>», oEditor

El <content_type> string puede tener los siguientes valores:

  • «Dibujo»: Crea un dibujo
  • «3DShape»: Crea una forma 3D
  • «3DPart»: Crea una pieza 3D
  • «VPMReference»: Crea un producto físico

Estas son las malas noticias: crear una nueva Pieza 3D o un Producto físico a partir de una macro requiere una licencia especial, ya sea VMX o E70. Sin la licencia, sólo podrá crear un Dibujo o una Forma 3D. Normalmente, la mayoría de las empresas no disponen de esta licencia, lo que significa que – ¡no espere poder crear una nueva Pieza 3D o un Producto Físico utilizando scripts!


Únase al foro de diseñadores!

Su experiencia es vital para la comunidad. Únase a nosotros y aporte sus conocimientos.

Únase ahora al Foro

Comparta, aprenda y crezca con los mejores profesionales del sector.