Products
(Zusammenbauten - ZB)
Dokumenten-Eigenschaften von Parts und Products
auslesen
Über das Dokument (Part/Product):
|
set Dok
= CATIA.ActiveDocument
MsgBox
Dok.Product.PartNumber '
Partnumber
MsgBox Dok.Name
' Dateiname
MsgBox Dok.FullName
' Dateiname + Pfad
MsgBox Dok.Revision
' Properties -> Revision
MsgBox Dok.Definition
' Properties -> Definition
MsgBox Dok.Nomenclature
' Properties -> Nomenclature
MsgBox Dok.Source
' Properties -> Source -> Unknown = 0, Made = 1, Bought = 2
MsgBox Dok.DescriptionRef
' Properties -> Description/Comment |
Über die Instanz:
|
Sub
CATMain()
set
DokInst = CATIA.ActiveDocument.Product.Products.Item(1)
' erstes Bauteil eines Products
MsgBox DokInst.Name
' Instance Name
MsgBox
DokInst.DescriptionInst
' Instance
Description/Comment
MsgBox DokInst.DescriptionRef
' Document Description
set Dok
= DokInst.ReferenceProduct.Parent.Product
MsgBox
Dok.PartNumber '
Partnumber
MsgBox Dok.Name
'
Document
Name
MsgBox Dok.FullName
' Dateiname + Pfad
MsgBox Dok.Revision
' Revision
MsgBox Dok.Definition
' Definition
MsgBox Dok.Nomenclature
' Nomenclature
MsgBox Dok.Source
' Source -> Unknown = 0, Made = 1, Bought = 2
MsgBox Dok.DescriptionRef
' Document Description/Comment
End Sub |
Parts und
Products eines Products ermitteln (nur erste
Ebene)
Wie in der Überschrift
vermerkt wird hier nur die erste Ebene betrachtet.
|
Sub
CATMain()
set TopProd = CATIA.ActiveDocument.Product
for i = 1
to TopProd.Products.Count
MsgBox TopProd.Products.Item(i).Name
' gibt den Instanz Namen aus
next
End Sub |
Alle Parts und
Products eines Products ermitteln (über
Selection Search)
Mit der folgt gezeigten
Methode werden alle Instanzen, der in der
Produktstruktur verwendeten Dokumente erfasst.
Siehe auch:
Alle Dokumente des aktiven Products in ein Array
schaufeln
|
Sub
CATMain()
set Sel = CATIA.ActiveDocument.Selection
Sel.Search "(CATProductSearch.Product),all"
for i = 1
to Sel.Count
set DokInst = Sel.FindObject("CATIAProduct")
MsgBox DokInst.PartNumber '
gibt die PartNumber (Name) aus
next
End Sub |
Das
zu einer Instanz gehörige Dokument ermitteln
Wenn man eine
Produktstruktur über Selection Search erfasst, so
bekommt man nicht direkt sie Dokumente sondern deren
Instanzen. Um von der Instanz zum eigentlichen
Dokument zu kommen benutzt man: ".ReferenceProduct.Parent"
|
set
DokInst = CATIA.ActiveDocument.Product.Products.Item(1)
' die erste Bauteilinstanz eines Products
set Dok
= DokInst.ReferenceProduct.Parent '
hier wird das dazugehörige Dokument ermitteln |
Products von Parts unterscheiden
Catia unterscheidet
zunächst nicht zwischen Product und Part, beide
Dokumenttypen werden als Product gehandelt. Mit
folgendem Code lässt sich herausfinden ob es sich um ein Part oder Product handelt.
Abfragen des aktiven
Dokuments:
|
Sub
CATMain()
set Dok = CATIA.ActiveDocument
If TypeName(Dok)
= "PartDocument"
then MsgBox
"ich bin ein Part"
If TypeName(Dok)
= "ProductDocument" then
MsgBox "ich bin ein Product"
End Sub |
Position eines Products/Parts
innerhalb eines Products ermitteln
(Transformationsmatrix)
|
Sub
CATMain()
dim pos(11)
set ErstesPart =
CATIA.ActiveDocument.Product.Products.Item(1)
ErstesPart.Position.GetComponents pos
Origin Point
msgbox "Origin Point: X= " &pos(9)
&" Y= " &pos(10)
&" Z= " &pos(11)
''Transformation x,y und z
msgbox "Transformation: " &pos(0)
&" " &pos(1)
&" " &pos(2)
&" " &pos(3)
&" " &pos(4)
&" " &pos(5)
&" " &pos(6)
&" " &pos(7)
&" " &pos(8)
End Sub |
Open in New Window
Die Funktion "Open in New Window"
steht im CATScript nicht zur Verfügung, man muss das Dokument
nochmals, über dessen Dateinamen öffnen.
|
Sub
CATMain()
set Sel = CATIA.ActiveDocument.Selection
Sel.Clear
Sel.Search "Name='Part1.1',all"
set Bauteil = Sel.Item(1).Value
' das erste Part im Product
DateiName = Bauteil.ReferenceProduct.Parent.FullName
set Dok =
CATIA.Documents.Open(DateiName)
End Sub |
Alle Dokumente
der aktuellen CATIA-Sitzung ermitteln
Mit folgendem Script
werden alle geladenen Dokumente der aktuellen
Sitzung erfasst - Parts, Products, Drawings...
|
Sub
CATMain()
for n = 1
to CATIA.Documents.Count
set Dokument = CATIA.Documents.Item(n)
for i = 1
to Dokument.product.products.Count
set InstDokument =
Dokument.product.products.item(i)
MsgBox InstDokument.Name
' Ausgabe alle Instanznamen
next
next
End Sub |
|