色偷偷伊人-色偷偷综合-色无五月-色香蕉影院-色亚洲影院

AutoCAD-ObjectARX在控制測量驗算中的應用

所屬欄目:數學論文 發布日期: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.jpg 2.jpg
  圖1                                                                                                圖2
  3.5程序對話框設計
  用類向導創建相應的對話框類,自動生成CDialog類的派生類定義的頭文件(h文件)和相應的實現文件(cpp文件)。創建8個editbox編輯框、兩個Button按鈕,若干個static靜態文本,并拖動到相應位置,如圖4所示。
  3.6定義數據結構類型
  坐標和距離的單位均為米(m),方位角以角度制為單位。測量數據精度要求較高,坐標和距離采用雙精度(double)型,角度采用度分秒形式,度和分定義為整型(int)變量,秒定義為單精度(float)變量。見表1所示。
  
  表1主要控件說明:
3.jpg

  3.7坐標反算主程序
  MFC提供了大量預定義的類庫是大大簡化了編程時帶來的計算繁瑣,如math.h文件中包含了絕大數的數學函數,使開發人員不需要再去定義函數。以下為坐標反算程序的主要代碼:
  voidFSDlg::OnBnClickedFS()
  {
   UpdateData();//刷新控件的值到對應的變量
   .............
  UpdateData(FALSE);//拷貝變量值到控件顯示
  }
  3.8注冊命令
  在initApp()函數中有一個重要的函數acedRegcmds->addcommand()函數,acedRegcmds為一個宏,它提供一個向ARX系統中Acedcommandstack(命令堆棧)對象的指針。命令堆棧是AutoCAD存放命令的地方,它包含了AutoCAD的內部命令和用戶定制的命令。而addcommand()函數是Acedcommandstack類,加入命令的方法即成員函數,正是通過這個函數,使用戶定義的函數與自定義的命令名建立了聯系。這樣,用戶就可以直接輸入命令名來執行應用程序。此程序注冊新命令“zuobiaofansuan”,命令簡化名為“zbfs”。
4.jpg
  圖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://m.anghan.cn/fblw/jiaoyu/shuxue/6570.html

相關問題解答

SCI服務

搜論文知識網 冀ICP備15021333號-3

主站蜘蛛池模板: 国产另类视频 | 粉嫩00福利视频在线精品 | 国产一区欧美二区 | 日韩专区亚洲国产精品 | 九九九九在线精品免费视频 | 国产成人精品福利网站在线 | 国产三级免费观看 | 国产精品亚洲欧美一级久久精品 | 国产黄片毛片 | 亚洲狼人综合干 | 日韩欧美中字 | 欧美精品1区 | 亚洲短视频在线观看 | 久久久日韩精品国产成人 | 久久经典免费视频 | 一级做a爰毛片 | 国产精品一区二区三区免费视频 | 亚洲色图男人天堂 | 日韩欧美一区二区三区在线观看 | 国产一区a | 国产乳摇福利视频在线观看 | 国产欧美精品区一区二区三区 | 亚洲视频在线观看视频 | 毛片色| 狼色视频在线观看 | 9久re在线观看视频精品 | 激情六月丁香婷婷 | 亚洲欧洲日产国码天堂 | 一级看片男女性高爱潮 | 国产欧美在线观看不卡 | 一级黄色录像在线观看 | 日韩 亚洲 中文 图片 小说 | 青青青草网站免费视频在线观看 | 欧美一级欧美一级在线播放 | 日本一级毛片免费看 | 99久久99这里只有免费的精品 | 无码日韩精品一区二区免费 | 亚洲综合欧美日韩 | 亚洲综合国产 | 欧美亚洲国产日韩一区二区三区 | 成年人网站在线观看免费 |