hier mal das Skript bzw. ein Teil....
Interessant ist der Bereich mit '*******' markiert!
Das Makro läuft ja durch die Baugruppe und findet das Teil.
Aber der Name lautet dann immer z.B. "CATIASelection28"...
Anbei auch ein Bild der vereinfachten Struktur...
Wie kann ich das Teil suchen und dann sauber an die nachfolgenden Prozesse übergeben?
Grüsse & vielen Dank,
Fabian
'----Allgemeiner Teil----
'Alte Werte - bzw. momentanen Werte
Dim x_min_alt, y_min_alt, z_min_alt As Integer
Dim x_max_alt, y_max_alt, z_max_alt As Integer
'Neue Werte - aktuell zu setzenden Werte
Dim x_min_neu, y_min_neu, z_min_neu As Integer
Dim x_max_neu, y_max_neu, z_max_neu As Integer
'Namensvariable - hier wird der Name reingeschrieben
'z.B. Stock.CATPart oder ...
Dim chName As String
'TXT-String Variable
Dim txtOutput As String
'Produkt und Partvariable
Dim actPart As selection
Dim actProd As ProductDocument
Dim selection As selection
'Ruft das Fenster auf und sucht das Stock.1 (CATPart)
Sub CatMain()
'**********
Set actProd = CATIA.ActiveDocument
Set selection = actProd.selection
selection.Clear
selection.Search ("Name='Stock.1'& CATProductSearch.Part,all")
Set actPart = selection
MsgBox actPart.Name
'frmDefinition_Stock.Show
'**********
End Sub
'Durchsucht das aktive Dokument (Baugruppe) auf ein
'Part mit dem Namen "Stock"
Function actPartSet(ByRef CatDoc As Document) As selection
Dim actProd As ProductDocument
Set actProd = CATIA.ActiveDocument
Dim selection As selection
Set selection = actProd.selection
selection.Clear
selection.Search ("Name='Stock.1'& CATProductSearch.Part,all")
Set actPartSet = selection
'CATIA.ActiveDocument.selection.Search
'("Name='Stock.1'& CATProductSearch.Part,all")
End Function
'Liest die Daten aus dem Stock.CATPart aus
Sub Auslesen(x_min_alt, y_min_alt, z_min_alt, x_max_alt, y_max_alt, z_max_alt)
chName = "Stock.CATPart"
'Ueberprüft ob das aktive Dokument ein CATPart ist
If isPart(CATIA.ActiveDocument) = False Then
MsgBox ("Es ist kein CATPart geöffnet - bitte das Stock.CATPart öffnen")
Exit Sub
End If
'Ueberprüft ob das aktive CATPart "Stock" heisst
If Not CATIA.ActiveDocument.Name = chName Then
MsgBox ("Das geöffnete und aktive Part heisst nicht Stock.CATPart - bitte öffnen")
Exit Sub
End If
'Ruft den Namen des Partes auf
'Call MsgBox(CATIA.ActiveDocument.Name)
'Setzt die Variablen den Variablen des Partes gleich
x_min_alt = CATIA.ActiveDocument.Part.Parameters.Item(41).Value
y_min_alt = CATIA.ActiveDocument.Part.Parameters.Item(42).Value
z_min_alt = CATIA.ActiveDocument.Part.Parameters.Item(43).Value
x_max_alt = CATIA.ActiveDocument.Part.Parameters.Item(44).Value
y_max_alt = CATIA.ActiveDocument.Part.Parameters.Item(45).Value
z_max_alt = CATIA.ActiveDocument.Part.Parameters.Item(46).Value
End Sub
'Ist das vorhandene Dokument ein Objekt vom Typ Catpart
Function isPart(ByRef CatDoc As Document) As Boolean
isPart = TypeOf CatDoc Is PartDocument
End Function
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP