Hallo,
ich weiß, dass dieses Thema schon mehrfach im Forum aufgetaucht ist. Nehmt euch bitte trotzdem kurz Zeit da es diese Fragestellung bisher nicht gab. Ich möchte die kürzeste Entfernung zwischen zwei Flächen von zwei VERSCHIEDENEN Baugruppen innerhalb eines Produktes messen.
Dazu verwende ich folgenden code:
Dim partdocument1 As Object
Set catia = GetObject(, "catia.application")
Set partdocument1 = catia.ActiveDocument
Dim InputObjectType(1)
Dim ref1 As Reference
Dim ref2 As Reference
InputObjectType(0) = "CATBaseDispatch"
InputObjectType(1) = "Face"
Set selection = partdocument1.selection
selection.Clear
status = selection.SelectElement(InputObjectType, "Fläche auswählen", True)
Set ref1 = selection.Item(1).Reference selection.EndSelectElement
status = selection.SelectElement(InputObjectType, "Select Fläche auswählen", True)
Set ref2 = selection.Item(1).Reference selection.EndSelectElement
MsgBox "Hier: " & ref1.DisplayName & "und " & ref2.DisplayName
Dim thespaworkbench
Set thespaworkbench = catia.ActiveDocument.GetWorkbench("SPAWorkbench")
Dim themeasurable
Set themeasurable = thespaworkbench.GetMeasurable(ref1)
Dim MinimumDistance
MinimumDistance = themeasurable.GetMinimumDistance(ref2)
MsgBox "Abstand:" & MinimumDistance
Das Problem ist, dass die so erzeugte Referenz nicht zwischen verschiedenen Baugruppen unterscheidet. Im Extremfall bedeutet das, das für zwei verschiedene Bauteile zwei vollkommen identische Referenzen erzeugt werden und der Abstand somit logischerweise 0 ist, was aber natürlich nicht stimmt.
Wenn in CATIA manuell gemessen wird, gibt es doch auch keine Problem. Kennt irgendjemand die Lösung? Schon mal Danke!
Grüße
dennis
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP