Components
Eigenschaften von Components
Im
Wesentlichen sind die
Eigenschaften von Components gleich der von
Products.
Da Components keine eigene "physikalische" Datei
besitzen wird jedoch bei dem Versuch den Dateinamen
bzw. Dateipfad auszulesen der des Elternproducts
ausgegeben.
Components von Parts
unterscheiden
Wie
oben beschrieben liefert das Auslesen des
Dateinamens bzw. des Dateipfades nicht wie erwartet
eine Fehlermeldung, sondern stattdessen wird der
Name bzw. Pfad des Elternproducts ausgegeben. Das
macht es auf den ersten Blick unmöglich ein
Component von einem Product zu unterscheiden. Aber
mit folgender Trick gelingt es dennoch. Denn bei
einem Product ist der ReferenceProduct.Name gleich
der
ReferenceProduct.Parent.Product.PartNumber. Bei
einer Component wird bei Parent.Product.PartNumber
jedoch die PartNumber des Elternproduct ausgegeben.
|
Function
isComponent(DocListItem)
On Error Resume Next
set DocRef =
DocListItem.ReferenceProduct
if DocRef.Name <>
DocRef.Parent.Product.PartNumber then
isComponent = true
else
isComponent = false
end if
end Function |
...und so
kann das ganze aufgerufen werden:
Das Makro nimmt das aktuell selektierte Baumelement und
gibt ein "Wahr" zurück wenn es sich um ein Component
handelt ein "Falsch" bei einem Product.
|
Sub CATMain()
set Sel =
CATIA.ActiveDocument.Selection
set DocListItem = Sel.item(1).Value
msgbox isComponent(DocListItem)
End Sub |
|