Hallo CATIAner
Ich suche mir einen Wolf um einen Strukturbaumeintrag "einfach" umzubenennen.
Ich glaube ich hab' nicht nur ein Brett sondern einen ganzen Wald von Holz vor meinen Kopf.
Anbei mein Makrocode (in catvba)
'#############################################################################
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'#############################################################################
Sub machParameter()
If CATIA.Windows.Count = 0 Then
MsgBox "Kein Dokument geöffnet!" & Chr(10) & Chr(10) & "Makro beendet!", vbOKOnly, "Fehler"
Exit Sub
End If
If Right(CATIA.ActiveDocument.Name, 11) = ".CATProduct" Then
MsgBox "Nur .CATParts zulässig." _
& Chr(10) & Chr(10) & "Makro beendet !"
Exit Sub
End If
'##############################################################################################
'Es wird geprüft ob ein Parameter mit dem Namen vorhanden ist, wenn nicht, wird dieser erzeugt.
'##############################################################################################
Set oParameters = CATIA.ActiveDocument.Part.Parameters
'Parameter Mussparameter
If ParameterExists(oParameters, "Mussparameter") Then
Set oParam = oParameters.Item("Mussparameter")
Else
Set oParam = oParameters.CreateString("Mussparameter", "")
'Erzeugter Parameter "Mussparameter" wird verdeckt
oParam.Hidden = True
End If
'Parameter Werkstoff
If ParameterExists(oParameters, "Werkstoff") Then
Set oParam = oParameters.Item("Werkstoff")
Else
Set oParam = oParameters.CreateString("Werkstoff", "")
End If
'Parameter Gewicht
If ParameterExists(oParameters, "Gewicht") Then
Set oParam = oParameters.Item("Gewicht")
Else
Set oParam = oParameters.CreateDimension("Gewicht", "MASS", 0.001)
End If
'#################################
'Parameter Werkstoff_ verknüpfen
'#################################
Set MyMatPart = CATIA.ActiveDocument
Set oPDocument = MyMatPart.Product 'CATPart zur Parameterfüllung auswählen
Set oParameters = oPDocument.Parameters.Item("Werkstoff") 'Parameter "Werkstoff" anwählen
Set PropertiesParameter = oParameters 'Parameter(leer) zur Füllung mit Verknüpfung
On Error Resume Next
Set o2Document = MyMatPart 'CATPart auswählen
MyMatPart.Part.MainBody.Name = "Hauptkörper" 'Hauptkörper in "Hauptkörper" umbenennen
Set o2Parameters = oPDocument.Parameters.Item("Hauptkörper\Material") 'Parameter Standardparameter "Material" anwählen
Set Quellparameter = o2Parameters 'Parameter des CATPart (Vater) zur Füllung mit Verknüpfung
Set Relation = oPDocument.Relations
Set Formel = Relation.CreateFormula("Formeltestverkn", "", PropertiesParameter, "`" & Quellparameter.Name & "`") 'Quellparameter (4. in Klammer)in "`Anführungszeichen und backquote`"
'''''###################################
'''''Parameter Trägheitsmessung einfügen
'''''###################################
Set DyProduct = CATIA.ActiveDocument
Set DyPart = DyProduct.Part
Set HK = DyPart.MainBody
Set selection1 = DyProduct.Selection
selection1.Clear
selection1.Add HK
CATIA.StartCommand ("Trägheit messen")
'MsgBox "Ich warte 2 Sekunden"
Sleep (2000)
'MsgBox "Ich habe 2 Sekunden gewartet"
''' Im Fenster "Trägheit messen" muss "Messung beibehalten" angewählt
''' und das Fenster mit OK geschlossen werden
selection1.Clear
''''''''########################################
'''''''' ab hier komme ich nicht weiter,
''''''''########################################
''' In der Messung wird Trägheitsvolumen.1 (bzw .2 oder .3 usw. erzeugt.
''' Diese Bezeichnung (Trägheitsvolumen.??) möchte ich "lediglich" mit diesem Makro in "HansPeter" umbenennen
''' um dies später mit dem Parameter "Gewicht" zu verknüpfen.
'''Benenne ich das Trägheitsvolumen per Hand um --> Eigenschaften Komponentenname HansPeter
'''und lasse das Makro nochmal laufen, verknüpft er mir die Parameter wie gewünscht.
''' Was mache ich falsch bzw. wie kann ich das Trägheitsvolumen umbenennen
''' bzw. schon vor dem Einfügen einen Namen vergeben???
'''''#############################
'''''Parameter Gewicht verknüpfen
'''''#############################
Set MyGewPart = CATIA.ActiveDocument
Set o_G_PDocument = MyGewPart.Product 'CATPart zur Parameterfüllung auswählen
Set o_G_Parameters = o_G_PDocument.Parameters.Item("Gewicht") 'Parameter "Gewicht" anwählen
Set PropertiesParameter_G = o_G_Parameters 'Parameter(leer) zur Füllung mit Verknüpfung
On Error Resume Next
Set o_G_2Document = MyGewPart 'CATPart auswählenbei dem Punkt an dem ich nicht mehr weiterkomme. MyGewPart.Part.MainBody.Name = "Hauptkörper" 'Hauptkörper in "Hauptkörper" umbenennen
'--> Set o_G_2Parameters = o_G_PDocument.Parameters.Item("Trägheitsvolumen\Masse") 'Parameter Parameter "Masse" anwählen
Set o_G_2Parameters = o_G_PDocument.Parameters.Item("HansPeter\Masse") 'Parameter Parameter "Masse" anwählen
Set Quellparameter_G = o_G_2Parameters 'Parameter des CATPart (Vater) zur Füllung mit Verknüpfung
Set Relation_G = o_G_PDocument.Relations
Set Formel_G = Relation.CreateFormula("Formeltestverkn", "", PropertiesParameter_G, "`" & Quellparameter_G.Name & "`") 'Quellparameter (4. in Klammer)in "`Anführungszeichen und backquote`"
End Sub
Function ParameterExists(oParameters, sParam)
On Error Resume Next
ParameterExists = False
s = ""
s = oParameters.Item(sParam).Name
If s <> "" Then ParameterExists = True
End Function
Kann mir jemand weiterhelfen
Wäre für jeden Tipp dankbar, natürlich auch für eine Lösung.
Gruß
Fugmann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP