C# PromptPointResult對象
C#語言還是比較常見的東西,這里我們主要介紹C# PromptPointResult對象,包括介紹調試AutoCAD的進程等方面。
實例化一個Editor類的對象并使用參數為PromptPointOptions對象的GetPoint方法。用GetPoint方法的返回值來給上面聲明的C# PromptPointResult對象賦值。賦值好以后,我們可以測試C# PromptPointResult對象的狀態,如果不是OK就返回。
- prPointRes = ed.GetPoint(prPointOptions);
- if (prPointRes.Status != PromptStatus.OK)
- {
- ed.WriteMessage("Error");
- }
如果C# PromptPointResult對象返回了一個有效的點,我們就可以使用WriteMessage方法把結果輸出到命令行。PromptPointResult.Value的ToString方法使輸出非常容易:
- ed.WriteMessage("You selected point "
- prPointRes.Value.ToString)
按F5來運行一個調試AutoCAD的進程。(注意:向導已經設置好用acad.exe來調試)在AutoCAD命令行中輸入NETLOAD,選擇Lab2.dll并打開。在命令行中輸入你起的命令名字(selectPoint)。在選擇點的提示下,單擊圖形中的任一點。如果一切正常的話,你可以在命令行中看到你所選的點的坐標值。在Class.cs文件的“ed.WriteMessage("Error");”行加入斷點,然后再次運行selectPoint命令。這一次,在選擇點的提示下按ESC鍵而不是選擇一個點。C# PromptPointResult對象的狀態就不是OK了,所以上面代碼中的if語句就會被執行,“ed.WriteMessage("Error")”;語句就會被調用。
接下來我們將加入另外一個命令,它可以獲取兩個點之間的距離。向導沒有添加命令的功能,所以我們必須手工添加。在Class.cs文件的選擇點的函數(getPoint)下面添加一個名為getDistance的新命令。加入命令的方法請參考上一章的內容或本章的源代碼,這里就不列出了。使用 CommandMethod屬性并使字符串參數為“getdistance”或其它類似的名字。在命令的函數中使用 PromptDistanceOptions代替PromptPointOptions。當然GetDistance方法的返回值是一個 PromptDoubleResult類的實例對象,所以請用PromptDoubleResult來代替PromptPointResult:
- PromptDistanceOptions prDistOptions = new
- PromptDistanceOptions("Find distance, select first point:");
- PromptDoubleResult prDistRes;
- prDistRes = ed.GetDistance(prDistOptions);
【編輯推薦】