CATIA V6 Customization – Nummerngenerator in EKL

Dieser Beitrag zeigt, wie ein einfacher Nummerngenerator in EKL (auch Client-seitige Business Rule genannt) für CATIA V6 aussehen kann:

let str_PLM_ExternalID (string) 
let cmpString          (String) 
let uniqueKey          (String) 
let zeroes             (String) 
let maxKeyLen          (Integer) 
let uniqueLen          (Integer)

cmpString              = "NR" 
zeroes                 = "0000000" 
maxKeyLen              = 7 
uniqueLen              = 0  
uniqueKey              = GetUniqueKeyFromString (cmpString) 
uniqueLen              = uniqueKey.Length () 
uniqueKey              = zeroes.Extract (0, maxKeyLen - uniqueLen) + uniqueKey 
str_PLM_ExternalID     = cmpString + uniqueKey 

ThisObject.PLM_ExternalID = str_PLM_ExternalID

Batchkonvertierung mit CATDMUUtility aus CATIA V5

CATDMUUtility aus CATIA V5Für Unternehmensprozesse z.B. im Rahmen des PLM-Prozesses werden oft Konstruktionsdaten nativ (z.B. in einem PDM-System) gespeichert. Im Falle der CATIA V5 Datenverwaltung werden beispielswise die Formate CATProduct, CATPart und CATDrawing abgelegt sein.

Um Folgeprozesse eines ERP-Systems zu unterstützen, können vereinfachte oder neutrale Formate wie STL, VRML, PDF, IGES, STEP oder DXF notwendig sein. Oft werden diese Formate direkt aus dem CAD-System (hier CATIA V5) extrahiert und in geeigneten Ablageorten gespeichert. CATIA selbst bietet für diesen Anwendungsfall diverse Möglichkeiten an. Dieser Artikel beschreibt den Einsatz des CATDMUUtility aus der CATIA V5 Toolsammlung CATUtil.

CATUtil wird aus der CATIA Oberfläche unter Menü/Extras/Utility insbesondere für den interaktiven Gebrauch angeboten. Es ist aber keine besonders große Hilfe, um Massendaten zu konvertieren.

„Batchkonvertierung mit CATDMUUtility aus CATIA V5“ weiterlesen

CATIA V6 automatisieren mit Python unter Windows

CATIA V6 im Blue LayerDas neue CAD- und PLM-System CATIA V6 von Dassault Systemes kann mit Python unter Windows genauso einfach automatisiert werden, wie das gerade in Ablösung befindliche CATIA V5. Da das neue System aber nicht mehr auf das Dateisystem des Benutzers zurückgreift, sondern mit einer Datenbank gegen einen PLM-Server arbeitet, muss man hierbei den Zugriff auf die CAD-Daten natürlich komplett anders gestalten. Dieser Artikel zeigt, wie man automatisiert CAD-Daten identifiziert und diese für einen Vergleich in die Turntable View des Silver Layer lädt.

COM-Anwendungen lassen sich mit Python z.B. mit comtypes oder mit dem Pywin32 Modul, welches in der ActivePython Distribution enthalten ist automatisieren. Meine Beispiele hier verwenden Pywin32.

Wenn Sie die folgenden Beispiele laufen lassen, sorgen Sie bitte dafür, dass CATIA V6 bereits gestartet ist und eine PLM-Verbindung existiert.

Das erste Beispiel gibt einfach die Namen (PLMExternalID) der selektierten CAD-Daten aus einer Trefferliste (im Silver Layer) in die Konsole aus:

import win32com.client  
catiaObj=win32com.client.GetActiveObject('CATIA.Application') 
for i in range(catiaObj.ActiveEditor.Selection.Count):
     print 'Selected Item %s: %s'%(i, catiaObj.ActiveEditor.Selection.Item(i + 1).Value.Name)

Das nächste Beispiel setzt eine Recherche mit der Zeichenfolge „Weld0815*“ an die VPM-Datenank ab und lädt alle gefundenen Daten in die Turntable View im Silver Layer. Dies ist hilfreich, wenn man eben schnell eine bestimmte Menge an CAD-Daten miteinander vergleichen möchte:

import win32com.client  
# Search for every Product with name Weld0815*
catiaObj=win32com.client.GetActiveObject('CATIA.Application') 
oSearchService = catiaObj.GetSessionService("PLMSearch") 
oPLMSearches = oSearchService.Searches 
oPLMSearch = oPLMSearches.Add() 
oPLMSearch.Type = "PLMProductDS" 
oPLMSearch.AddAttributeCriteria("PLM_ExternalID",  "Weld0815*") 
oPLMSearch.search()  
# Iterate over all found objects and put them into the turntable view 
o3DShapeAsPLMEntities = oPLMSearch.EditedContent 
print 'Found %s entries.'%o3DShapeAsPLMEntities.Count 
for foundobj in o3DShapeAsPLMEntities:
     print 'Putting %s onto the table'%foundobj.Name
     oSelection = catiaObj.ActiveEditor.Selection
     oSelection.Add(foundobj)
     catiaObj.StartCommand("Turntable")

CATDrawing zu PDF mit Python

Achtung: Dieses Script benötig die Python for Windows Extension Pywin32!

import win32com.client  
catapp = win32com.client.Dispatch('CATIA.application') 
v5doc = catapp.Documents.Open('C:\\dokumente\\Drawing1.CATDrawing')
v5doc.ExportData('c:\\out\\Drawing1.pdf', 'pdf')