国产黄色毛片-国产黄色毛片视频-国产黄色片91-国产黄色片一级-一级坐爱片-一级免费

AutoCAD-ObjectARX在控制測量驗(yàn)算中的應(yīng)用

所屬欄目:數(shù)學(xué)論文 發(fā)布日期:2011-01-20 17:34 熱度:

  摘要:討論在VisualC++.NET2002的集成開發(fā)環(huán)境下,使用ObjectARX和MFC相結(jié)合開發(fā)控制測量驗(yàn)算應(yīng)用程序,有效地解決人工計(jì)算量大、控制精度誤差繁瑣等問題,同時使用該方法還為控制測量驗(yàn)算應(yīng)用程序提供了強(qiáng)大的圖形處理技術(shù)平臺,發(fā)揮了MFC與ObjectARX模塊性好、獨(dú)立性強(qiáng)、穩(wěn)定性高等優(yōu)點(diǎn)。
  關(guān)鍵詞:AutoCAD二次開發(fā)、ObjectARX;VC.NET;MFC;坐標(biāo)反算;控制測量驗(yàn)算
  
  1.ObjectARX與MFC特色
  1.1ObjectARX
  ObjectARX程序本質(zhì)上為Windows動態(tài)鏈接庫(DLL)程序,與AutoCAD共享地址空間,直接調(diào)用AutoCAD核心函數(shù),直接訪問AutoCAD數(shù)據(jù)庫,并且可以擴(kuò)充AutoCAD的類和協(xié)議,建立和AutoCAD的內(nèi)部命令在同一層次上的命令,因此用其開發(fā)的CAD軟件具有模塊性好、獨(dú)立性強(qiáng)、穩(wěn)定性高等優(yōu)點(diǎn)。而AutoCAD又具有強(qiáng)大的矢量繪圖功能,調(diào)用已知的數(shù)據(jù)可以繪制出用戶所需要的圖形。
  1.2MFC
  MFC(MicrosoftFoundationClass)是Windows環(huán)境下編程的一個應(yīng)用程序框架,是C++類庫的擴(kuò)展。它提供了大量的預(yù)寫類和支持碼,可以處理許多標(biāo)準(zhǔn)Windows編程任務(wù),如生成窗口和處理消息。它還可以在程序中加入復(fù)雜的特性,如工具條、分窗視圖等。
  2.ObjectARX與VC.NET結(jié)合
  正是由于CAD處理圖形數(shù)據(jù)和MFC提供的視窗交互、類庫計(jì)算的強(qiáng)大功能,把兩者通過CAD平臺結(jié)合在一起,可以使研究人員更好地輸入和管理數(shù)據(jù)。在ObjectARX與MFC結(jié)合編程的過程中,ObjectARX應(yīng)用程序能夠創(chuàng)建動態(tài)鏈接的MFC類庫并在AutoCAD中使用,用戶可以使用這些庫來創(chuàng)建標(biāo)準(zhǔn)的Windows圖形用戶界面(GUI),從而實(shí)現(xiàn)程序界面的可視化。ObjectARX是基于AutoCAD面向?qū)ο蟮亩伍_發(fā)工具,其開發(fā)環(huán)境必須基于VC.NET平臺。
  3.ObjectARX應(yīng)用程序設(shè)計(jì)思路
  3.1工程控制測量驗(yàn)算問題
  在工程測量中我們經(jīng)常要通過一些已采集的數(shù)據(jù)計(jì)算某些控制點(diǎn)的坐標(biāo)、方位角等驗(yàn)算,然后通過CAD等繪圖軟件繪制地形圖。常用的計(jì)算有坐標(biāo)正反算、支導(dǎo)線、附合導(dǎo)線、測角前方交會、測角后方交會等。
  3.2坐標(biāo)反算實(shí)例
  本文以坐標(biāo)反算為例,運(yùn)用ObjectARX與MFC開發(fā)一個可視化的坐標(biāo)反算小程序。如圖1所示,若A、B為兩已知點(diǎn),其坐標(biāo)分別為(XA,YA)和(XB,YB),根據(jù)三角函數(shù),可以得出直線的邊長和坐標(biāo)方位角計(jì)算公式:tanα=△YAB/△XAB=(YB-YA)/(XB-XA)。
  3.3程序流程
  如圖2所示,為測量數(shù)據(jù)計(jì)算一般流程。通過此流程圖,開發(fā)人員可以開發(fā)出各種計(jì)算小程序在CAD平臺下被調(diào)用。
  3.4ObjectARX應(yīng)用程序結(jié)構(gòu)
  ObjectARX應(yīng)用程序通常由初始化程序和用戶定義的命令函數(shù)兩部分組成。初始化部分主要由入口函數(shù)acrxEntrypoint()定義、初始化函數(shù)initApp()定義和ARX卸載程序的函數(shù)定義組成。ARX初始化函數(shù)initApp()通常是調(diào)用addCommand()函數(shù)注冊用戶定義的AutoCAD命令,而卸載函數(shù)unloadApp()調(diào)用RemoveGroup()函數(shù)釋放addCommand()函數(shù)定義的命令組。
 1.jpg 2.jpg
  圖1                                                                                                圖2
  3.5程序?qū)υ捒蛟O(shè)計(jì)
  用類向?qū)?chuàng)建相應(yīng)的對話框類,自動生成CDialog類的派生類定義的頭文件(h文件)和相應(yīng)的實(shí)現(xiàn)文件(cpp文件)。創(chuàng)建8個editbox編輯框、兩個Button按鈕,若干個static靜態(tài)文本,并拖動到相應(yīng)位置,如圖4所示。
  3.6定義數(shù)據(jù)結(jié)構(gòu)類型
  坐標(biāo)和距離的單位均為米(m),方位角以角度制為單位。測量數(shù)據(jù)精度要求較高,坐標(biāo)和距離采用雙精度(double)型,角度采用度分秒形式,度和分定義為整型(int)變量,秒定義為單精度(float)變量。見表1所示。
  
  表1主要控件說明:
3.jpg

  3.7坐標(biāo)反算主程序
  MFC提供了大量預(yù)定義的類庫是大大簡化了編程時帶來的計(jì)算繁瑣,如math.h文件中包含了絕大數(shù)的數(shù)學(xué)函數(shù),使開發(fā)人員不需要再去定義函數(shù)。以下為坐標(biāo)反算程序的主要代碼:
  voidFSDlg::OnBnClickedFS()
  {
   UpdateData();//刷新控件的值到對應(yīng)的變量
   .............
  UpdateData(FALSE);//拷貝變量值到控件顯示
  }
  3.8注冊命令
  在initApp()函數(shù)中有一個重要的函數(shù)acedRegcmds->addcommand()函數(shù),acedRegcmds為一個宏,它提供一個向ARX系統(tǒng)中Acedcommandstack(命令堆棧)對象的指針。命令堆棧是AutoCAD存放命令的地方,它包含了AutoCAD的內(nèi)部命令和用戶定制的命令。而addcommand()函數(shù)是Acedcommandstack類,加入命令的方法即成員函數(shù),正是通過這個函數(shù),使用戶定義的函數(shù)與自定義的命令名建立了聯(lián)系。這樣,用戶就可以直接輸入命令名來執(zhí)行應(yīng)用程序。此程序注冊新命令“zuobiaofansuan”,命令簡化名為“zbfs”。
4.jpg
  圖3
  3.9ObjectARX應(yīng)用程序的裝載與卸載
  ARX應(yīng)用程序的裝載和卸載主要有以下幾種方法:
  (1)在AutoCAD安裝目錄下文件acad.rx中寫有AutoCAD啟動中指定待裝入的ARX應(yīng)用程序名。acad.rx可以用記事本打開編輯,每個ObjectARX應(yīng)用程序名必須單獨(dú)占一行,AutoCAD啟動時會自動裝載該文件中的ObjectARX應(yīng)用程序;
  (2)使用APPLOAD對話框。AutoCAD文件appload.lsp定義了使用AutoLISP函數(shù)arxload和arxunload裝載和卸載ARX應(yīng)用程序的用戶接口;
  (3)“ARX”是一個AutoCAD命令。在AutoCAD命令行鍵入ARX,然后鍵入L后彈出對話框,指定待裝載的ARX應(yīng)用程序名即可;相反,然后鍵入U后彈出對話框,可以卸載ARX應(yīng)用程序。
  在這里我們加載“坐標(biāo)反算”程序,然后直接在命令行鍵入“zbfs”(簡化名),彈出如圖3所示對話框。
  4.結(jié)語
  隨著AutoCAD在各個行業(yè)應(yīng)用中的廣泛深入,以VisualC++.NET與ObjectARX相結(jié)合的開發(fā)方法對AutoCAD進(jìn)行二次開發(fā),極大地提高了開發(fā)效率,特別是在對圖形數(shù)據(jù)的處理上,AutoCAD提供了強(qiáng)大的數(shù)據(jù)管理平臺。
  
  參考文獻(xiàn)
  [1]李長勛.AutoCADObjectARX程序開發(fā)技術(shù)[M].北京:國際工業(yè)出版社,2005.
  [2]陳元琰,鄧宗明.VisualC++6.0編程實(shí)用技術(shù)與案例[M].北京:清華大學(xué)出版社,2001.
  [3]朱學(xué)軍,賴惠芬.基于MFC的ObjectARX應(yīng)用程序開發(fā)[J].微機(jī)發(fā)展,2003.
  [4]張英杰.基于ARX與MFC的AutoCAD2006應(yīng)用程序開發(fā)[Z].機(jī)械工程師,2007.9.
  [5]劉英璐.ObjectARX與MFC相結(jié)合進(jìn)行AutoCAD二次開發(fā)[Z].煤炭技術(shù),2007.1       

文章標(biāo)題:AutoCAD-ObjectARX在控制測量驗(yàn)算中的應(yīng)用

轉(zhuǎn)載請注明來自:http://www.optiwork.cn/fblw/jiaoyu/shuxue/6570.html

相關(guān)問題解答

SCI服務(wù)

搜論文知識網(wǎng) 冀ICP備15021333號-3

主站蜘蛛池模板: 国产无毛 | 成人在线亚洲 | 久久毛片久久毛 | 国产成人久久一区二区三区 | 欧美国产91 | 国产亚洲欧美在线视频 | 91精品一区二区三区在线观看 | 色综合久久加勒比高清88 | 免费成年人在线观看视频 | 欧美一级网址 | 国产成人免费高清激情视频 | 91人成亚洲高清在线观看 | 国产成人精品免费视频大全五级 | 欧美日韩在线观看区一二 | 欧美日韩在线国产 | 国产精品亚洲视频 | 91香蕉国产线观看免 | 成人在线午夜 | 欧美日韩一区二区在线视频 | 亚洲国产视频网 | 成年女人看片免费视频播放器 | 日韩欧美在线一级一中文字暮 | 国产理论在线观看 | 国内精品久久久久久久影视麻豆 | 久99频这里只精品23热 视频 | 国产成人精品免费视频大全可播放的 | 成视频年人黄网站免费 | 九九全国免费视频 | 男人的天堂毛片 | 欧美精品国产精品 | 亚洲国产精品久久久久久 | 国产精品亚洲欧美云霸高清 | 国产一级视频在线 | 欧美 亚洲 在线 | 一个人看的免费高清视频日本 | 国产一区二区三区免费 | 欧美 亚洲 丝袜 清纯 中文 | 亚洲精品高清视频 | 国产一区不卡 | 欧美日韩中文一区二区三区 | 欧美另类videosbestsex高清 |