Andere Lösung, hier Frage ich den Status der Constrains ab und entscheide dann auf ein Update. Denn bei einem Fehlerhaften Constrain beim updaten ist mir Catia ohne Fehlermeldung abgestürtzt.
'***** VBA-Makro *****
'* Erstellt von C. Tenschert
Sub DoUpdate()
Dim MyConstrain As Constraint
UpdateNow = True
For i = 1 To my_constraints.count
Set my_product = my_productDocument.Product
Set my_constraints = my_product.Connections("CATIAConstraints")
Set MyConstrain = my_constraints.Item(i)
Select Case MyConstrain.Status
'Case catCstStatusOK
' MsgBox ("The constraint is satisfied.")
Case catCstStatusKOStronglyNotSatisfied
MsgBox ("The constraint is strongly not satisfied (e.g. distance constraint between two planes, which are not currently parallel).")
UpdateNow = False
Case catCstStatusKOWrongOrientOrSide
'MsgBox ("The constraint is not satisfied because of the wrong orientation or side of its geometric elements (e.g. planes are parallel and at the specified distance, but their orientation is inverted with respect to the one specified by the constraint).")
'UpdateNow = False
Case catCstStatusKOWrongValue
'MsgBox ("The constraint is not satisfied because of its value (e.g. planes are parallel and at the specified orientation and side but not at the specified distance).")
'UpdateNow = False
Case catCstStatusKOWrongGeomEltType
MsgBox ("The constraint is not satisfied because of the wrong type of its geometric elements (e.g. angle between a point and a plane). It can happen in an assembly when replacing a part by another.")
UpdateNow = False
Case catCstStatusKOBroken
MsgBox ("The constraint is not satisfied because a geometric element is missing. It can happen in an assembly when a part is missing.")
UpdateNow = False
End Select
Next
End Sub
'********** Ende *******************
PS: ungetestet, aus gesammt Projekt zusammengeschnitten.
Zeilen:
Set my_product = my_productDocument.Product
Set my_constraints = my_product.Connections("CATIAConstraints")
wurden in ander Sub aufgerufen "myconstrains" war dann auf Public gesetzt. UpdateNow auch eine Public als Boolean. Und dann vor Update mit "If" geprüft.
------------------
Mit freundlichem Gruß von Carl Tenschert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP