C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

Drawingのラインの端点座標を取得

こちらのコメントでご質問頂いた内容ですが、
長くなってしまったのでこちらに記載します。
Viewに基準線を入れる2 - C#ATIA

"端点を取得したい"は、端点の座標だろうと解釈しています。
ラインから端点座標取得する方法は2種類あります。
1つは端点のオブジェクト(Point2D)から座標を取得する方法と
ラインの端点そのものの座標を取得する方法です。
厳密には異なるのかも知れませんが、基本的には同じはずです。

Sub CATMain()
    Dim oDoc As DrawingDocument
    Dim oSel 'As selection
    Dim Msg As String
    
    Set oDoc = CATIA.ActiveDocument
    Set oSel = oDoc.selection
    
    'ライン選択
    Dim InputObjectType(0) 'As String
    Dim Line 'As Line2D
    InputObjectType(0) = "Line2D"
    With oSel
        .Clear
        Result = .SelectElement2(InputObjectType, "ライン選択 // [Esc]=キャンセル", False)
        If Result = "Cancel" Then Exit Sub
        Set Line = .item(1).Value
        .Clear
    End With
    
    '端点オブジェクトから座標取得
    Dim StartPnt 'As point2d
    Dim EndPnt 'As point2d
    Dim Pos()
    ReDim Pos(1)
    
    Msg = "** 端点オブジェクトから座標取得 **" + vbCrLf
    Set StartPnt = Line.StartPoint
    Call StartPnt.GetCoordinates(Pos)
    Msg = Msg + " - " + StartPnt.name + " - " + vbCrLf
    Msg = Msg + " X:" + CStr(Pos(0)) + " Y:" + CStr(Pos(1)) + vbCrLf
    
    Set EndPnt = Line.EndPoint
    Call EndPnt.GetCoordinates(Pos)
    Msg = Msg + " - " + EndPnt.name + " - " + vbCrLf
    Msg = Msg + " X:" + CStr(Pos(0)) + " Y:" + CStr(Pos(1)) + vbCrLf
    Msg = Msg + vbCrLf
    
    'ラインから端点座標取得
    ReDim Pos(3)
    
    Msg = Msg + "** ラインから端点座標取得 **" + vbCrLf
    Call Line.GetEndPoints(Pos)
    Msg = Msg + " - 始点 - " + vbCrLf
    Msg = Msg + " X:" + CStr(Pos(0)) + " Y:" + CStr(Pos(1)) + vbCrLf
    
    Msg = Msg + " - 終点 - " + vbCrLf
    Msg = Msg + " X:" + CStr(Pos(2)) + " Y:" + CStr(Pos(3)) + vbCrLf
    Msg = Msg + vbCrLf
    
    '表示
    Call MsgBox(Msg)
End Sub

型定義部分でコメント化している部分は、こちらの環境ではエラーとなる部分です。
(大文字小文字がおかしいのも、こちらの環境のせいです)
端点の座標では無く、端点オブジェクトが必要なのであれば、StartPntとEndPntが
該当するオブジェクトになっています。