Autor
|
Thema: Constraint-Problem (1086 mal gelesen)
|
Helmut Steeg Mitglied Programmierer
Beiträge: 19 Registriert: 30.05.2007 Catia V5R16
|
erstellt am: 30. Mai. 2007 14:11 <-- editieren / zitieren --> Unities abgeben:
Hallo allerseits. Ich habe ein Problem mit programmatisch erzeugten Constraints via AddBiEltCst() Ich habe diverse Objekte in einem Product, in denen Constraints an bestimmte Publicationen erzeugt werden sollen. d.h. ich habe mehrere Parts mit 4 Publications (oben, unten, links, rechts) und habe nun eine Funktion, die mir die Parts durchläuft, den Constraint erzeugt und dann das Product updated. Soweit ist auch alles ganz gut. Das Product sieht am Bildschirm ok aus. Das Problem ist nun, wenn ich die Datei speichere, schliesse und dann neu lade, sind die Constraints alle weg. Ich hänge mal die entsprechende funktion an diesen Beitrag an, in der Hoffnung, das mir jemand eine Information geben kann, wo ich *ahem* Bockmist gemacht habe ;-) Bin für jeden Hinweis/Tip dankbar. Gruss, Helmut Steeg Code:
' Erzeuge einen Constraint und liefere das erzeugte Objekt zurück ' Parameter: ' eOrientation: enum CatConstraintOrientation ' catCstOrientOpposite zum stapeln ' catCstOrientSame zum Positionieren ' sFromObject: string ' Name des ersten Objektes, dem der Constraint ' zugeordnet wird ' sToObject: string ' Name des zweiten Objektes, dem der Constraint ' zugeordnet wird ' sFromPublication: string ' Publication, an der der Constraint zugeordnet wird ' sToPublication: optional string ' Publication, an der der Constraint zugeordnet ' wird. Ist der String leer oder nicht vorhanden, ' wird sFromPublication verwendet Private Function CreateConstraint( _ eOrientation As CatConstraintOrientation, _ sFromObject As String, _ sToObject As String, _ sFromPublication As String, _ Optional sToPublication As String) As Object Dim oProd1 As Object, oProd2 As Object Dim oPub1 As Object, opub2 As Object Dim oRef1 As Object, oRef2 As Object Dim oCst0 As Object, oCst1 As Object Dim oLength As Object ' Zu verwendende Produkte abfragen Set oProd1 = CATIA.ActiveDocument.Product.Products.Item(sFromObject) Set oProd2 = CATIA.ActiveDocument.Product.Products.Item(sToObject) ' sToPublication auf Inhalt überprüfen. Ist keiner vorhanden, ' den gleichen Wert wie sFromPublication verwenden If IsNull(sToPublication) Or _ IsEmpty(sToPublication) Or _ sToPublication = "" Then sToPublication = sFromPublication End If ' DebugInfo "CreateConstraint: Prod1::Name = " & oProd1.Name ' DebugInfo "CreateConstraint::sFromPublication = " & sFromPublication ' DebugInfo "CreateConstraint::sToPublication = " & sToPublication ' Publication im Quellobject abfragen und dazugehörige Referenz erzeugen Set oPub1 = oProd1.Publications.Item(sToPublication) Set oRef1 = oPub1.Valuation ' DebugInfo "CreateConstraint: Prod2::Name = " & oProd2.Name ' Publication in Zielobjekt abfragen und dazugehörige Referenz erzeugen Set opub2 = oProd2.Publications.Item(sFromPublication) Set oRef2 = opub2.Valuation ' Constraint-Liste abfragen und einen Constraint aus zwei Elementen ' erzeugen Set oCst0 = oProd1.Connections("CATIAConstraints") Set oCst1 = oCst0.AddBiEltCst(catCstTypeDistance, oRef1, oRef2) ' Die Länge auf 0 setzen, das ist der Abstand zwischen den beiden ' Elementen Set oLength = oCst1.Dimension oLength.Value = 0# ' Typ des Constraints einstellen (Opposite, SameSide...) oCst1.Orientation = eOrientation ' und noch das Objekt an die aufrufende Funktion zurückliefern. Set CreateConstraint = oCst1 End Function
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|