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

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://www.anghan.cn/fblw/jiaoyu/shuxue/6570.html

相關問題解答

SCI服務

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

主站蜘蛛池模板: 国产成人不卡亚洲精品91 | 狠狠色丁香婷婷综合激情 | 日韩精品久久久免费观看夜色 | 999热在线精品观看全部 | 亚洲综合精品香蕉久久网 | 日韩激情无码免费毛片 | 成人黄色在线免费观看 | 国产videos| 视频一区 精品自拍 | 免费视频一区二区三区四区 | 国产91区精品福利在线社区 | 久久精品国产线看观看亚洲 | 在线sese| 国产伦理播放一区二区 | 成人a级特黄毛片 | 日本免费专区 | 亚洲成人在线播放 | 无耻三级在线观看 | 成人黄色一级视频 | 美女黄网站人色视频免费国产 | 香蕉视频免费看 | 49pao强力在线高清基地 | 在线观看国产精品日本不卡网 | 91在线精品亚洲一区二区 | 天天色踪合 | 欧美一级淫片a免费播放口aaa | 色图综合网| 免费在线观看a级片 | 色综合久久一区二区三区 | 国产性老妇女做爰在线 | 一级黄色毛片视频 | 亚洲一区二区色 | 国产精品亚洲第一区焦香 | 最新lutube亚洲看片在线观看 | 在线观看视频一区二区三区 | 欧美一区亚洲 | 高清性色生活片久久久 | 成人啪啪免费视频 | 国产最新精品精品视频 | 国产婷婷一区二区在线观看 | 亚洲国产美女精品久久 |