新聞中心
這篇文章主要講解了“C#.NET中的AutoCAD向?qū)Ш虴ditor類(lèi)是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“C#.NET中的AutoCAD向?qū)Ш虴ditor類(lèi)是什么”吧!
10年的石拐網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整石拐建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“石拐網(wǎng)站設(shè)計(jì)”,“石拐網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
1) 啟動(dòng)Visual Studio .NET,選擇”文件>新建>工程”(File> New> Project)。在新建工程對(duì)話框中選擇工程類(lèi)型為”Visual C#工程”,然后選擇“AutoCAD Managed CS Project Application”模板。在工程名字框中輸入”Lab2”,然后選擇工程存放的位置。點(diǎn)擊確定按鈕,“AutoCAD Managed CSharp Application Wizard”對(duì)話框?qū)?huì)出現(xiàn)。因?yàn)槲覀儾恍枰褂梅峭泄艽a,所以不要選擇“Enable Unmanaged Debugging”項(xiàng)。“Registered Developer Symbol”將會(huì)使用你在安裝ObjectARX向?qū)r(shí)輸入的值。單擊”finish”按鈕來(lái)創(chuàng)建工程。
2) 下面來(lái)看一下向?qū)傻墓こ?。在解決方案瀏覽器中,你會(huì)看到acdbmgd 和 acmgd已經(jīng)被引用了。在Class.cs文件中,“Autodesk.AutoCAD.Runtime”命名空間已被導(dǎo)入,工程使用“Registered Developer Symbol”的名字來(lái)命名缺省的公有類(lèi)。向?qū)н€為類(lèi)加入了一個(gè)CommandMethod屬性和一個(gè)函數(shù),它們用于AutoCAD命令。
3) 在前一章中,我們使用一個(gè)“Autodesk.AutoCAD.EditorInput.Editor”類(lèi)的實(shí)例對(duì)象在AutoCAD命令行上輸出文本。在這一章中,我們將使用這個(gè)類(lèi)來(lái)提示用戶(hù)在AutoCAD圖形中選擇一個(gè)點(diǎn),然后將用戶(hù)選擇的點(diǎn)的x,y,z值顯示出來(lái)。和前一章一樣,請(qǐng)導(dǎo)入Autodesk.AutoCAD.ApplicationServices 和 Autodesk.AutoCAD.EditorInput命名空間。
4) 把向?qū)傻腃ommandMethod屬性的值改為有意義一些的名字如“selectPoint”(函數(shù)的名字可以不用修改)。PromptPointOptions類(lèi)用來(lái)設(shè)置提示字符串和其它的一些控制提示的選項(xiàng)。這個(gè)類(lèi)的一個(gè)實(shí)例作為參數(shù)被傳入到Editor.GetPoint方法。在函數(shù)的開(kāi)始,實(shí)例化這個(gè)類(lèi),設(shè)置字符串參數(shù)為“Select a point”。因?yàn)?Editor.GetPoint方法會(huì)返回一個(gè)PromptPointResult類(lèi)的實(shí)例對(duì)象,所以我們也要把它實(shí)例化。
PromptPointOptions prPointOptions = new PromptPointOptions("Select a point"); PromptPointResult prPointRes;
5) 接下來(lái)實(shí)例化一個(gè)Editor類(lèi)的對(duì)象并使用參數(shù)為PromptPointOptions對(duì)象的GetPoint方法。用GetPoint方法的返回值來(lái)給上面聲明的PromptPointResult對(duì)象賦值。賦值好以后,我們可以測(cè)試PromptPointResult對(duì)象的狀態(tài),如果不是OK就返回。
prPointRes = ed.GetPoint(prPointOptions); if (prPointRes.Status != PromptStatus.OK) { ed.WriteMessage("Error"); }
6) 如果PromptPointResult對(duì)象返回了一個(gè)有效的點(diǎn),我們就可以使用WriteMessage方法把結(jié)果輸出到命令行。PromptPointResult.Value的ToString方法使輸出非常容易:
ed.WriteMessage("You selected point " prPointRes.Value.ToString)
7) 按F5來(lái)運(yùn)行一個(gè)調(diào)試AutoCAD的進(jìn)程。(注意:向?qū)б呀?jīng)設(shè)置好用acad.exe來(lái)調(diào)試)在AutoCAD命令行中輸入NETLOAD,選擇Lab2.dll并打開(kāi)。在命令行中輸入你起的命令名字(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)。PromptPointResult對(duì)象的狀態(tài)就不是OK了,所以上面代碼中的if語(yǔ)句就會(huì)被執(zhí)行,“ed.WriteMessage("Error")”;語(yǔ)句就會(huì)被調(diào)用。
8) 接下來(lái)我們將加入另外一個(gè)命令,它可以獲取兩個(gè)點(diǎn)之間的距離。向?qū)](méi)有添加命令的功能,所以我們必須手工添加。在Class.cs文件的選擇點(diǎn)的函數(shù)(getPoint)下面添加一個(gè)名為getDistance的新命令。加入命令的方法請(qǐng)參考上一章的內(nèi)容或本章的源代碼,這里就不列出了。使用CommandMethod屬性并使字符串參數(shù)為“getdistance”或其它類(lèi)似的名字。在命令的函數(shù)中使用PromptDistanceOptions代替PromptPointOptions。當(dāng)然GetDistance方法的返回值是一個(gè)PromptDoubleResult類(lèi)的實(shí)例對(duì)象,所以請(qǐng)用PromptDoubleResult來(lái)代替PromptPointResult:
PromptDistanceOptions prDistOptions = new PromptDistanceOptions("Find distance, select first point:"); PromptDoubleResult prDistRes; prDistRes = ed.GetDistance(prDistOptions);
9) 和前面的命令一樣,也可以測(cè)試PromptDoubleResult的狀態(tài),然后用WriteMessage方法在命令行中顯示值。
if (prDistRes.Status != PromptStatus.OK) { ed.WriteMessage("Error"); } else { ed.WriteMessage("The distance is: " + prDistRes.Value.ToString()); }
感謝各位的閱讀,以上就是“C#.NET中的AutoCAD向?qū)Ш虴ditor類(lèi)是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)C#.NET中的AutoCAD向?qū)Ш虴ditor類(lèi)是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)頁(yè)標(biāo)題:C#.NET中的AutoCAD向?qū)Ш虴ditor類(lèi)是什么
轉(zhuǎn)載源于:http://fisionsoft.com.cn/article/psooeg.html