Hallo zusammen,
ich habe ein Problem beim Schreiben von Custom Properties bei Masterteilen. Es handelt sich um Solidedge ST6.
Wenn ich ein Normteil offen habe, habe ich ja eine Referenz auf das darunterliegende Masterteile.
An dieses Masterteil will ich Custom Properties schreiben bzw. deren Werte verändern, falls schon vorhanden.
Und genau das ist das Problem.
Im Code sieht das alles noch gut aus, allerdings wird der Wert nicht am Masterteil geändert.
Hier mal ein Auszug aus dem Code:
Code:
Dim bMasterPart As Boolean = False If Not oDoc Is Nothing Then
If oDoc.Type = DocumentTypeConstants.igPartDocument Then
Dim oPart As SolidEdgePart.PartDocument = oDoc
Dim oPartfamilyMembers As SolidEdgePart.FamilyMembers = oPart.FamilyMembers
If oPartfamilyMembers.Count > 0 Then
bMasterPart = True
Try
Dim oCustom As SolidEdgeFramework.Properties
oCustom = oPart.Properties("Custom")
Dim oProperty As SolidEdgeFramework.Property
Dim bFoundProperty As Boolean = False
For i As Integer = 1 To oCustom.Count
oProperty = oCustom.Item(i)
If oProperty.Name = sName Then
oProperty.Value = sValue
oCustom.Save()
bFoundProperty = True
End If
Next
If bFoundProperty = False Then
oCustom.Add(sName, sValue)
oCustom.Save()
End If
oCustom.Save()
If Not (oCustom Is Nothing) Then
Marshal.ReleaseComObject(oCustom)
oCustom = Nothing
End If
Catch ex As Exception
MsgBox("ex: " & ex.Message.ToString)
End Try
End If
End If
End If
Im Debugger wird der Wert auch richtig geändert. Allerdings sind die geänderten oder hinzugefügten Properties nicht mehr an der Datei, wenn ich die Datei öffne bzw. wenn ich mir die benutzerdefinierten Dateieigenschaften über Rechtklick-Eigenschaften in Windows ansehe.
Normalerweise sollte ja das Speichern von "oCustom" ausreichen, damit die Eigenschaften richtig gespeichert werden? Oder übersehe ich hier etwas? Gebe ich oCustom evtl. falsch frei?
Das explizite Öffnen des Masterteils ist keine Option, da das bei großen Baugruppen extrem in die Laufzeit gehen würde.
Sieht jemand einen Fehler? Für eure Unterstützung wäre ich sehr dankbar.
Viele Grüße!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP