所屬欄目:數學論文 發布日期:2011-01-20 17:34 熱度:
摘要:討論在VisualC++.NET2002的集成開發環境下,使用ObjectARX和MFC相結合開發控制測量驗算應用程序,有效地解決人工計算量大、控制精度誤差繁瑣等問題,同時使用該方法還為控制測量驗算應用程序提供了強大的圖形處理技術平臺,發揮了MFC與ObjectARX模塊性好、獨立性強、穩定性高等優點。
關鍵詞:AutoCAD二次開發、ObjectARX;VC.NET;MFC;坐標反算;控制測量驗算
1.ObjectARX與MFC特色
1.1ObjectARX
ObjectARX程序本質上為Windows動態鏈接庫(DLL)程序,與AutoCAD共享地址空間,直接調用AutoCAD核心函數,直接訪問AutoCAD數據庫,并且可以擴充AutoCAD的類和協議,建立和AutoCAD的內部命令在同一層次上的命令,因此用其開發的CAD軟件具有模塊性好、獨立性強、穩定性高等優點。而AutoCAD又具有強大的矢量繪圖功能,調用已知的數據可以繪制出用戶所需要的圖形。
1.2MFC
MFC(MicrosoftFoundationClass)是Windows環境下編程的一個應用程序框架,是C++類庫的擴展。它提供了大量的預寫類和支持碼,可以處理許多標準Windows編程任務,如生成窗口和處理消息。它還可以在程序中加入復雜的特性,如工具條、分窗視圖等。
2.ObjectARX與VC.NET結合
正是由于CAD處理圖形數據和MFC提供的視窗交互、類庫計算的強大功能,把兩者通過CAD平臺結合在一起,可以使研究人員更好地輸入和管理數據。在ObjectARX與MFC結合編程的過程中,ObjectARX應用程序能夠創建動態鏈接的MFC類庫并在AutoCAD中使用,用戶可以使用這些庫來創建標準的Windows圖形用戶界面(GUI),從而實現程序界面的可視化。ObjectARX是基于AutoCAD面向對象的二次開發工具,其開發環境必須基于VC.NET平臺。
3.ObjectARX應用程序設計思路
3.1工程控制測量驗算問題
在工程測量中我們經常要通過一些已采集的數據計算某些控制點的坐標、方位角等驗算,然后通過CAD等繪圖軟件繪制地形圖。常用的計算有坐標正反算、支導線、附合導線、測角前方交會、測角后方交會等。
3.2坐標反算實例
本文以坐標反算為例,運用ObjectARX與MFC開發一個可視化的坐標反算小程序。如圖1所示,若A、B為兩已知點,其坐標分別為(XA,YA)和(XB,YB),根據三角函數,可以得出直線的邊長和坐標方位角計算公式:tanα=△YAB/△XAB=(YB-YA)/(XB-XA)。
3.3程序流程
如圖2所示,為測量數據計算一般流程。通過此流程圖,開發人員可以開發出各種計算小程序在CAD平臺下被調用。
3.4ObjectARX應用程序結構
ObjectARX應用程序通常由初始化程序和用戶定義的命令函數兩部分組成。初始化部分主要由入口函數acrxEntrypoint()定義、初始化函數initApp()定義和ARX卸載程序的函數定義組成。ARX初始化函數initApp()通常是調用addCommand()函數注冊用戶定義的AutoCAD命令,而卸載函數unloadApp()調用RemoveGroup()函數釋放addCommand()函數定義的命令組。
圖1 圖2
3.5程序對話框設計
用類向導創建相應的對話框類,自動生成CDialog類的派生類定義的頭文件(h文件)和相應的實現文件(cpp文件)。創建8個editbox編輯框、兩個Button按鈕,若干個static靜態文本,并拖動到相應位置,如圖4所示。
3.6定義數據結構類型
坐標和距離的單位均為米(m),方位角以角度制為單位。測量數據精度要求較高,坐標和距離采用雙精度(double)型,角度采用度分秒形式,度和分定義為整型(int)變量,秒定義為單精度(float)變量。見表1所示。
表1主要控件說明:
3.7坐標反算主程序
MFC提供了大量預定義的類庫是大大簡化了編程時帶來的計算繁瑣,如math.h文件中包含了絕大數的數學函數,使開發人員不需要再去定義函數。以下為坐標反算程序的主要代碼:
voidFSDlg::OnBnClickedFS()
{
UpdateData();//刷新控件的值到對應的變量
.............
UpdateData(FALSE);//拷貝變量值到控件顯示
}
3.8注冊命令
在initApp()函數中有一個重要的函數acedRegcmds->addcommand()函數,acedRegcmds為一個宏,它提供一個向ARX系統中Acedcommandstack(命令堆棧)對象的指針。命令堆棧是AutoCAD存放命令的地方,它包含了AutoCAD的內部命令和用戶定制的命令。而addcommand()函數是Acedcommandstack類,加入命令的方法即成員函數,正是通過這個函數,使用戶定義的函數與自定義的命令名建立了聯系。這樣,用戶就可以直接輸入命令名來執行應用程序。此程序注冊新命令“zuobiaofansuan”,命令簡化名為“zbfs”。
圖3
3.9ObjectARX應用程序的裝載與卸載
ARX應用程序的裝載和卸載主要有以下幾種方法:
(1)在AutoCAD安裝目錄下文件acad.rx中寫有AutoCAD啟動中指定待裝入的ARX應用程序名。acad.rx可以用記事本打開編輯,每個ObjectARX應用程序名必須單獨占一行,AutoCAD啟動時會自動裝載該文件中的ObjectARX應用程序;
(2)使用APPLOAD對話框。AutoCAD文件appload.lsp定義了使用AutoLISP函數arxload和arxunload裝載和卸載ARX應用程序的用戶接口;
(3)“ARX”是一個AutoCAD命令。在AutoCAD命令行鍵入ARX,然后鍵入L后彈出對話框,指定待裝載的ARX應用程序名即可;相反,然后鍵入U后彈出對話框,可以卸載ARX應用程序。
在這里我們加載“坐標反算”程序,然后直接在命令行鍵入“zbfs”(簡化名),彈出如圖3所示對話框。
4.結語
隨著AutoCAD在各個行業應用中的廣泛深入,以VisualC++.NET與ObjectARX相結合的開發方法對AutoCAD進行二次開發,極大地提高了開發效率,特別是在對圖形數據的處理上,AutoCAD提供了強大的數據管理平臺。
參考文獻
[1]李長勛.AutoCADObjectARX程序開發技術[M].北京:國際工業出版社,2005.
[2]陳元琰,鄧宗明.VisualC++6.0編程實用技術與案例[M].北京:清華大學出版社,2001.
[3]朱學軍,賴惠芬.基于MFC的ObjectARX應用程序開發[J].微機發展,2003.
[4]張英杰.基于ARX與MFC的AutoCAD2006應用程序開發[Z].機械工程師,2007.9.
[5]劉英璐.ObjectARX與MFC相結合進行AutoCAD二次開發[Z].煤炭技術,2007.1
文章標題:AutoCAD-ObjectARX在控制測量驗算中的應用
轉載請注明來自:http://www.56st48f.cn/fblw/jiaoyu/shuxue/6570.html
攝影藝術領域AHCI期刊推薦《Phot...關注:106
Nature旗下多學科子刊Nature Com...關注:152
中小學教師值得了解,這些教育學...關注:47
2025年寫管理學論文可以用的19個...關注:192
測繪領域科技核心期刊選擇 輕松拿...關注:64
及時開論文檢索證明很重要關注:52
中國水產科學期刊是核心期刊嗎關注:54
國際出書需要了解的問題解答關注:58
合著出書能否評職稱?關注:48
電信學有哪些可投稿的SCI期刊,值...關注:66
通信工程行業論文選題關注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關注:121
評職稱發論文好還是出書好關注:68
復印報刊資料重要轉載來源期刊(...關注:51
英文期刊審稿常見的論文狀態及其...關注:69
教育論文范文
教育技術論文 特殊教育論文 影視教育論文 藝術教育論文 體育科學教育論文 人文教育論文 成人教育論文 職業教育論文 教育學論文 學前教育論文 小學教育論文 中學教育論文 初等教育論文 高等教育論文 天文學論文 數學論文 物理論文 化學論文
SCI期刊分析
copyright © www.56st48f.cn, All Rights Reserved
搜論文知識網 冀ICP備15021333號-3