Hallo!
Vorab: Ich bin absoluter Neuling, was die Macro-Programmierung angeht (beschäftige mich erst seit 2 Tagen damit). Also entschuldigt mich, wenn mein Frage- und Ausdrucksweiße vielleicht etwas unprofessionell ist.
Ich möchte mit meinem Macro den minimalen Abstand zwischen 2 beliebigen Flächen messen und an den Stellen zwei Punkte erzeugen. Mein Skript sieht bisher so aus (CATSkript):
----------------------------------------------------------------------
Sub CATMain()
Dim Was(0)
Was(0) = "HybridShape"
Dim UserSel As Selection
Set UserSel= CATIA.ActiveDocument.Selection
UserSel.Clear
'------------- Einlesen erste Fläche --------------
Dim E As CATBSTR
E = UserSel.SelectElement(Was, "Du kannst jetzt Element 1 wählen!", true)
If E = "Normal" Then
Else
MsgBox ("Abbruch")
End If
Dim MySelection1 as Selection
Set MySelection1 = UserSel.Item(1).Value
'----------------- Einlesen zweite Fläche -----------------
UserSel.Clear
Dim F As CATBSTR
F = UserSel.SelectElement(Was, "Du kannst jetzt Element 2 wählen!", true)
If F = "Normal" Then
Else
MsgBox ("Abbruch")
End If
Dim MySelection2 as Selection
Set MySelection2 = UserSel.Item(1).Value
MsgBox ("Die gewählten Flächen sind " & MySelection1.Name & " und " & MySelection2.Name)
'----------------- Minimale Abstand finden -----------
Dim Bauteil As Part
Set Bauteil = CATIA.ActiveDocument.Part
Dim Wzk3D As HybridShapeFactory
Set Wzk3D = Bauteil.HybridShapeFactory
Dim HBody As HybridBody
Set HBody = Bauteil.HybridBodies.Add
HBody.Name = "Messung"
Dim ref1 As Reference
Set ref1 = MySelection1
Dim ref2 As Reference
Set ref2 = MySelection2
Dim TheSPAWorkbench As Workbench
Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" )
Dim TheMeasurable As Measurable
Set TheMeasurable = TheSPAWorkbench.GetMeasurable(ref2)
Dim Coordinates(8)
Set Coordinates = TheMeasurable.GetMinimumDistancePoints(ref1)
End Sub
----------------------------------------------------------------------
Es funktioniert soweit, nur mit dem Befehl GetMinimumDistancePoints habe ich meine Probleme (es kommt immer eine Fehlermeldung). Also geht es eigendlich nur um die letzten zwei Zeilen.
Im Forum wird darüber bisher nicht genauer geschrieben und das Buch "CATIA V5 - Effiziente Konstruktion mit Makros" schweigt dazu auch.
Was bisher dasteht ist aus der Onlinehilfe von CATIA V5, aber ich nehme an, dass es so nur im VB-Skript funktioniert.
Ich hoffe, dass mir jemand weiterhelfen kann. Ich bin shcon fast am verzweifeln.
Vielen, vielen Dank im Voraus
und viele Grüße
Yvonne
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP