Messen von und
zwischen 3D-Elementen
Länge von 3D-Elementen messen
(Line, Curve...)
Das Beispiel benötigt
eine 3D-Linie mit dem Namen "Line.1". Das
dazugehörige Part kann exklusive oder innerhalb
einer aktiven Produktstruktur vorhanden sein, jedoch
wird hier nur die erste Linie mit dem Namen "Line.1"
innerhalb der Struktur berücksichtigt.
|
Sub
CATMain()
' Element und dazugehöriges Part
bestimmen, hier Line.1
set Sel = CATIA.ActiveDocument.Selection
Sel.Clear
Sel.Search "Name='Line.1',all"
set oLine = Sel.Item(1).Value
set PartDocument =
oLine.Parent.Parent.Parent.Parent
' eigentliche Messung
set RefDokument =
PartDocument.CreateReferenceFromObject(oLine)
set Workbench =
CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
'--- SPAWorkbench anziehen
set TheMeasurable =
Workbench.GetMeasurable(RefDokument)
Laenge = TheMeasurable.Length
' auf zwei Nachkommastellen runden und Ausgabe
Laenge = round(Laenge,2)
MsgBox Laenge
End Sub |
Punkt-Koordinaten
messen
(3D-Punkt)
siehe
hier.
Abstand und Winkel von zwei
3D-Elementen messen (Line, Plane...)
Das Beispiel benötigt
zwei 3D-Linien mit dem Namen "Line.1" und "Line.2".
Die beiden Linien können auch innerhalb einer
Produktstruktur in zwei verschiedenen Parts liegen.
|
Sub
CATMain()
' Element und dazugehöriges Part
bestimmen, hier Line.1
set Sel = CATIA.ActiveDocument.Selection
Sel.Clear
Sel.Search "Name=Line.1,all"
set LineA = Sel.Item(1).Value
Sel.Clear
Sel.Search "Name=Line.2,all"
set LineB = Sel.Item(1).Value
set PartDocumentA =
LineA.Parent.Parent.Parent.Parent
set PartDocumentB =
LineB.Parent.Parent.Parent.Parent
' eigentliche Messung
set referenceA =
PartDocumentA.CreateReferenceFromObject(LineA)
set referenceB =
PartDocumentB.CreateReferenceFromObject(LineB)
set Workbench =
CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
'--- SPAWorkbench anziehen
set TheMeasurable =
Workbench.GetMeasurable(referenceA)
Winkel = TheMeasurable.GetAngleBetween(referenceB)
Abstand = TheMeasurable.GetMinimumDistance(referenceB)
' auf
zwei Nachkommastellen runden und Ausgabe
Winkel = round(Winkel,2)
Abstand = round(Abstand,2)
MsgBox "Der Winkel zwischen beiden
Linien beträgt:
" &Winkel &"
Grad"
MsgBox "Der kleinste Abstand der beiden
Linien beträgt: "
&Abstand &" mm"
End Sub |
|