Hallo alle zusammen!
Vielleicht kann mir hier jemand helfen...
Habe in CATIA V5 R14 ein Makro programmiert, welches unter anderem in geöffnete Part- oder Product- Dokumente greift und mir auszuwählende Längen mißt. Das funktioniert auch wunderbar. Das Problem ist, wenn ich das Ganze in unter R16 SP5 laufen lassen will, schmiert mir das komplette CATIA ab ("Click OK to terminate").
Vorher bekomme ich folgende Fehlermeldung:
"Runtime Error '-2147417848 (80010108)
Automation Error
Connection to type library or object library for remote process has been lost"
Jetzt müsste im Referenz-Dialog die fehlende library doch mit "missing" angezeigt werden oder?
Hab dann irgendwann entdeckt das das Makro abbricht, sobald "CATIA.ActiveDocument" aufgerufen wird.
So langsam weiß ich nicht mehr weiter.....
Hier noch ein Auszug aus meinem Makro (Hab ich übrigens auch hier im Forum gefunden):
'Messen einer Kontur in CATIA -------------------funzt nicht unter R16!!!-----------------
Sub Messen()
EingabeFP.Hide
Programmstart.Hide
Dim Status, oSelection, oSelectedElement, oDoc, oInstance, oRef, TheSPAWorkbench, TheMeasurable As Object
Dim ref As Reference
Dim InputObjectType(0)
Dim bType As Boolean
InputObjectType(0) = "HybridShape"
On Error Resume Next
If TypeName(CATIA.ActiveDocument) = "ProductDocument" Then
bType = 0
ElseIf TypeName(CATIA.ActiveDocument) = "PartDocument" Then
bType = 1
Else
MsgBox "The Root is not a CATPart or a CATProduct ! ", 48, "Wrong FileType of opend Document"
Exit Sub
End If
Set oSelection = CATIA.ActiveDocument.Selection
oSelection.Clear
Status = oSelection.SelectElement2(InputObjectType, "************************* Bitte wählen Sie die Linie ************************** ", False)
If (Status <> "Normal") Then
Exit Sub
Else
Set oSelectedElement = oSelection.Item(1).Value
If bType = 0 Then
Set oInstance = oSelection.FindObject("CATIAProduct")
Set oDoc = oInstance.ReferenceProduct.Parent.Part
ElseIf bType = 1 Then
Set oDoc = CATIA.ActiveDocument.Part
End If
oSelection.Clear
oSelection.EndSelectElement
End If
Set oRef = oDoc.CreateReferenceFromObject(oSelectedElement)
Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set TheMeasurable = TheSPAWorkbench.GetMeasurable(oRef)
On Error Resume Next
Err.Number = 0
dLength = TheMeasurable.Length
dLength = Round(dLength, 1)
If Err.Number = 0 Then
MsgBox " Die Länge beträgt " & dLength & " mm² ! ", 64, "Measurement"
Else
MsgBox "Das gewählte Element ist keine Linie! " & vbLf & "No Output !", 48, "Error in Selection"
dLength = 0
End If
End Sub
So ich hoffe mir kann jemand helfen...
mfg Thomas
[Diese Nachricht wurde von haecki am 30. Mai. 2007 editiert.]
[Diese Nachricht wurde von haecki am 30. Mai. 2007 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP