HAllo zusammen,
ich hänge an einer Baugruppe fest, die über einen Parameter gesteuert wird.
Je nach Veränderung des Parameters ändert sich eine Fläche (nach vorherigem Regenerieren), die ich zusammen mit dem Parameter in eine Datei schreibe.
Klappt von Hand alles ganz gut, nur in VB kann ich nichts auf Befehl regenerieren.
Das Programm spult die Veränderung des Parameters durch und nach Programmschluß gibt es eine große Designänderung da die Regenerierung mit dem Endwert des Parameters durchgeführt wird. In der Ausgabedatei stehen die einzelnen Parameterwerte, die ausgelesene Fläche bleibt aufgrund der fehlenden Regenerierung gleich.
Hier der Programmausschnitt:
For i As Integer = CType(fStartWinkel, Integer) To CType(fEndWinkel, Integer)
' Durch alle Winkel
errMsg = Change_Parameter(oAsmModel, "DREHWINKEL", CType(i, String))
'Model muß regeneriert werden
'======================================================================
'Loop through all the components
'======================================================================
components = oAsmModel.ListFeaturesByType(False, EpfcFeatureType.EpfcFEATTYPE_COMPONENT)
For j = 0 To components.Count - 1
component = components.Item(j)
component.Regenerate()
Next
' oModel.Regenerate(Nothing)
regen:
Try
oModel.Regenerate(Nothing) 'regenerieren
Catch ex As Exception
If ex.Message = "pfcExceptions::XToolkitRegenerateAgain" Then
GoTo regen
ElseIf ex.Message = "pfcExceptions::XToolkitBadContext" Then
'MsgBox("Regenerieren Geht nicht! " + ex.Message + Chr(10) + " Creo_Drehwinkel = " + CType(i, String), MsgBoxStyle.Critical, "Abbruch")
End If
End Try
oModel.RegenerateRelations()
Dim window As pfcls.IpfcWindow
window = oSession.CurrentWindow
window.Activate()
window.Refresh()
' Analysis -> Berechnung und Ausgabe der res. fläche
errMsg = CountArea(oAsmModel, i, sFileName)
Next
Es gibt einen XToolkitBadContext Fehler, der eigentlich mit der option regen_failure_handling = resolve_mode aufgefangen werden kann.
Es scheint, ich habe die Hilfe dazu falsch verstanden.
Hat jemand eine Idee wie ich das Assembly dazu zwingen kann alles zu regenerieren?
Viele Grüße
Thomas
------------------
nixblick
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP