Bestanden aanmaken, openen en opslaan

Join the forum for Designers!

Your expertise is vital to the community. Join us and contribute your knowledge!

Join the Forum Now

Share, learn and grow with the best professionals in the industry.


Welkom terug! Dit is deel 2 in deze serie blogberichten, en hier zal ik uitleggen hoe u met de inhoud van de 3DEXPERIENCE (3DX) database kunt werken.

Allereerst gebruikt Dassault niet graag het woord “bestand” als we het over 3DX hebben. Zoals u misschien heel goed weet, wordt alle 3DX-inhoud opgeslagen in de DB, en elk item in die DB wordt nu een “PLM Entity” genoemd. (Let wel, uiteindelijk is er een bestand voor elk item in de DB, ergens opgeslagen op een server). Toch zullen we vanaf nu de woorden “PLM-entiteit” of “PLM-object” gebruiken voor elk item in die DB.

Dit is waarschijnlijk een van de grootste verschillen tussen V5 en 3DX.

Document-gebaseerd vs. DB-gebaseerd

V5 is documentgebaseerd. Wanneer u in V5 een model op uw scherm ziet, wordt het gerepresenteerd door twee dingen – het Document-object en het Window-object. Wanneer u een model in V5 opent of opslaat, leest of bewaart CATIA een bestand.

Afbeelding 1

Wat u ziet op het 3DX-scherm wordt ook weergegeven door twee dingen, maar nu zijn het het Editor-object en het Window-object. Het Vensterobject voert dezelfde functie uit als in V5, namelijk het model weergeven op het scherm. De rol van het Editor-object is echter die van de “controller” voor de inhoud van het model. D.w.z. het houdt de huidige app vast en onderhoudt de lijst met alle commando’s die vanuit de app kunnen worden gestart.

De Editor heeft een eigenschap ActiveObjectDat is het object dat u op het scherm ziet. Om greep te krijgen op het actieve object, kunt u de volgende opdrachten in VBA gebruiken, en er vanaf daar mee werken.

01: Dim oActiveObj Als ElkObject

02: Set oActiveObj = CATIA.ActiveEditor.ActiveObject

Het contentobject komt overeen met een PLM Entiteit in de DB, die wordt gerepresenteerd door een meta-datakaart en een opslagbestand. Dit creëert een “extra laag” tussen de 3DX-sessie en de bestanden in de DB. Om het bestand op te halen, leest het systeem eerst de meta-gegevens, die vertellen waar het bestand zich precies bevindt.

Afbeelding 2

In 3DX kunt u het model niet gewoon “openen” of “opslaan”. U moet een 3DX “service” vragen om dit voor u te doen.

Ik zal de 3DX “services” in detail bespreken in deel 3 van deze serie, dus voor nu houden we het eenvoudig.

Zoeken en openen vanuit de DB

Om een model in een 3DX-sessie te brengen, moet u het eerst zoeken (SearchService) en vervolgens openen (PLMOpenService). De VBA-code zou er ongeveer zo uitzien:

‘ Haal het SearchService-object op en maak een zoekopdracht aan

01: Dim oSearchService als Zoekservice

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

03: Dim oDBSearch Als DatabaseSearch

04: Set oDBSearch = oSearchService.DatabaseSearch

05: oDBSearch.BaseType = “VPMReference” ‘ zoekt naar een FysiekProduct

06: oDBSearch.AddEasyCriteria “V_Name”, “<model_title>” ‘ zoekt met behulp van de titel

‘ Start de zoekopdracht

07: oSearchService.Search

‘ De lijst met gevonden entiteiten ophalen

08: Dim cPLMEntities als PLMEntities

09: Set cPLMEntities = oDBSearch.Results

‘ Krijg de PLMOpen-service & open de eerste gevonden entiteit

10: Dim oPLMOpenService als PLMOpenService

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

12: Dim oEditor Als Bewerker

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

Opslaan in de DB

Om het huidige model in de DB op te slaan, zou u de optie PLMPropagateService. De VBA-code zou er ongeveer zo uitzien:

‘ Het PropagateService-object ophalen

01: Dim oSaveService als PLMPropagateService

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

‘ Opslaan in DB (slaat alleen inhoud van de actieve editor op!)

03: oSaveService.PLMPropagate

Nieuwe inhoud maken

Als u nu nieuwe inhoud wilt maken, moet u nog een andere service gebruiken – PLMNewService.

01: Dim oServ As PLMNewService

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

03: Dim oEditor Als Bewerker

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

De <content_type> string kan de volgende waarden hebben:

  • “Tekening”: Maakt een tekening
  • “3DShape”: Creëert een 3D-vorm
  • “3DPart”: Maakt een 3D-onderdeel
  • “VPMReference”: Creëert een fysiek product

Hier is het slechte nieuws – voor het maken van een nieuw 3D-onderdeel of een fysiek product vanuit een macro is een speciale licentie nodig, VMX of E70. Zonder deze licentie kunt u alleen een Tekening of een 3D Vorm maken. Over het algemeen hebben de meeste bedrijven deze licentie niet, wat betekent dat – u geen 3D Tekening of 3D Vorm kunt maken. verwacht niet dat u een nieuw 3D Onderdeel of een Fysiek Product kunt maken met behulp van scripting!


Join the forum for Designers!

Your expertise is vital to the community. Join us and contribute your knowledge!

Join the Forum Now

Share, learn and grow with the best professionals in the industry.