これもVBAから比べると
非常に使いやすくなってる。
ただ、まったくの別物なので、
理解するのに少し苦労した。
一番よく使う、GetPointの例
まずは宣言
'GetPointを使うための準備用のオブジェクト
Dim pptPtOpts As PromptPointOptions = New PromptPointOptions()
'GetPointから返ってくる値を格納する構造体
Dim pptPtRes As PromptPointResult
'取得した点を格納するオブジェクト
Dim pt1stPos As Point3d,pt2ndPos As Point3d
'----- 第1点目の取得 -----
'準備オブジェクトの設定。ユーザーへのメッセージ
pptPtOpts.Message = '第1点目を指示してください。"
'その他準備があれば追加していく
'点を取得する(acDocのDocumentオブジェクトは取得済みとする)
pptPtRes = acDoc.Editor.GetPoint(pptPtOpts)
'ここでユーザーが点を入力するまでプログラムは止まる
'GetPointがどう処理されたか、pptPtRes.Statusに格納されている
Select Case pptPtRes.Sutatus
Case PromptStatus.Cancel
'キャンセルされたら"Cancelが格納されている
Exit Sub
Case PromptStatus.OK
'普通に点を指定されたらOKが格納される
'.Valueに指示されたPoint3Dオブジェクトが格納されている
pt1stPos = pptPtRes.Value
End Select
'----- 第2点目の取得 -----
'準備オブジェクトの設定。ユーザーへのメッセージ
pptPtOpts.Message = '第2点目を指示してください。"
'1点目からの基準線を表示させる
pptPtOpts.UseBasePoint = True
pptPtOpts.BasePoint = pt1stPos
'点を取得する
pptPtRes = acDoc.Editor.GetPoint(pptPtOpts)
'ここでユーザーが点を入力するまでプログラムは止まる
'GetPointがどう処理されたか、pptPtRes.Statusに格納されている
Select Case pptPtRes.Sutatus
Case PromptStatus.Cancel
'キャンセルされたら"Cancelが格納されている
Exit Sub
Case PromptStatus.OK
'普通に点を指定されたらOKが格納される
'.Valueに指示されたPoint3Dオブジェクトが格納されている
pt2ndPos = pptPtRes.Value
End Select
'2点が取得されました
MsgBox("1点目X=" & pt1stPos.X & ",Y=" & pt1stPos.Y & _
" : 2点目X=" & pt2ndPos.X & "Y=" & pt2ndPos.Y)
