Hallo zusammen,
für eine Projektarbeit muss zwischen zwei unabhängig zueinander liegenden Punkten der Abstand bestimmt werden. Jedoch nicht der direkte Abstand, sondern die Abstände in x-, y- und z-Richtung. Über meinen bisherigen Code wird leider nur der direkte Abstand der beiden Punkte ermittelt. Gibt es eine Möglichkeit die Abstände zu bestimmen? Leider habe ich im Forum bis jetzt nichts dazu gefunden.
Ich programmiere in Catvba. Entschuldigt wenn ich etwas vergessen habe, bin neu in Catia und der Makroprogrammierung.
Mein bisheriger Code:
Private Sub cmdDatenLesen_Click()
Dim oDocument As Document
Set oDocument = CATIA.ActiveDocument
ReDim InputObjectType(0)
InputObjectType(0) = "AxisSystem"
Dim oSel As Selection
Set oSel = oDocument.Selection
oSel.Clear 'Alle Selektionen entfernen
oSel.Search ("Name = Roboter Koordinaten Konfiguration; all") 'Roboter Koordinaten Konfiguration Selektieren
oSel.Search ("'Part Design'.Achsensystem.Name = *_*; sel") 'Die darin enthaltenen Achsensysteme Selektieren
Dim strFilePath As String
strFilePath = CATIA.FileSelectionBox("Save axis systems", "*.xml", CatFileSelectionModeSave)
If strFilePath <> "" Then
If InStr(strFilePath, ".") = 0 Then
strFilePath = strFilePath + ".xml"
End If
If CATIA.FileSystem.FileExists(strFilePath) Then
CATIA.FileSystem.DeleteFile (strFilePath)
End If
Dim FileObj As File
Set FileObj = CATIA.FileSystem.CreateFile(strFilePath, True)
Dim TextStr As TextStream
Set TextStr = FileObj.OpenAsTextStream("ForWriting")
TextStr.Write (ursprungsname + Chr(10))
TextStr.Write (TypeName(oDocument) + Chr(10))
Dim oSelElem As selectedElement
Dim i As Integer
Dim oAxissystem As AxisSystem
Dim strName As String
Dim objAxis As Object
Dim TheSpaWorkbench As SPAWorkbench
Dim TheMeasurable 'As Measurable
Dim referenceObject As reference
Dim referenceObject1 As reference
For i = 1 To oSel.count
Set oSelElem = oSel.Item(i)
Set oAxissystem = oSelElem.Value
strName = oAxissystem.Name
Set objAxis = oAxissystem
Dim pDoc As PartDocument
Set pDoc = oDocument
Dim pPart As Part
Set pPart = pDoc.Part
'--messung--
Set selectedElement = oSel.Item(i)
Set referenceObject1 = objAxis.OriginPoint
Set referenceObject = pPart.FindObjectByName("RP_Roboter_Absolut")
Set TheSpaWorkbench = oDocument.GetWorkbench("SPAWorkbench")
Set TheMeasurable = TheSpaWorkbench.GetMeasurable(referenceObject)
MinDist = TheMeasurable.GetMinimumDistance(referenceObject1)
TextStr.Write (strName & MinDist & Chr(10))
'--ende messung----
Next i
TextStr.Close
End If
End Sub
Danke im Voraus.
Mit freundlich Grüßen,
Mark
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP