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