激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

基于鐵路選線(xiàn)CAD系統的圖形接口方法與交互技術(shù)

時(shí)間:2024-10-08 20:06:37 土木工程畢業(yè)論文 我要投稿
  • 相關(guān)推薦

基于鐵路選線(xiàn)CAD系統的圖形接口方法與交互技術(shù)

  摘要:運用Visual c++ 2005和0bjeetARX 2008開(kāi)發(fā)工具,探討圖形實(shí)體的創(chuàng )建與實(shí)體屬性的設置方法。

  利用結果緩沖區、DXF接口方法和ObjectARX類(lèi)函數,實(shí)現圖形數據自動(dòng)提取和圖形交互功能。以此為基礎開(kāi)發(fā)的線(xiàn)路設計系統,在一些設計單位完成了多項線(xiàn)路工程設計,取得良好的經(jīng)濟效益。

  關(guān)鍵詞:計算機輔助設計;鐵路選線(xiàn);ObjeetARX開(kāi)發(fā)工具;圖形交換文件

  隨著(zhù)計算機圖形學(xué)理論和技術(shù)的迅猛發(fā)展,針對各行備業(yè)出現了多種計算機繪圖和計算機輔助設計CAD(computer aided design)的軟件和開(kāi)發(fā)工具,為工程設計人員提供了現代化的設計手段,提高了設計效率和繪圖質(zhì)量,使設計圖紙更加規范化。

  20世紀90年代利用AutoCAD等軟件的交互式繪圖,已經(jīng)為工程技術(shù)和科技工作者繪圖提供了很大的便利,但繪圖速度和效率仍不能滿(mǎn)足設計人員的要求。為此,利用面向對象的程序設計方法,采用繪圖軟件的開(kāi)發(fā)工具包,開(kāi)發(fā)人工智能和自動(dòng)繪圖的計算機輔助設計軟件,已成為設計自動(dòng)化的發(fā)展趨勢。

  近年來(lái),土木、建筑、機械制造與設計行業(yè)在計算機輔助設計方面的研究工作取得了重要成果。

  隨著(zhù)航測和遙感技術(shù)的發(fā)展,出現了航測地形圖、遙感影像圖及數字地面模型等數字和圖像產(chǎn)品,為鐵路選線(xiàn)設計自動(dòng)化和可視化奠定了基礎。本文基于A(yíng)utoCAD 2008繪圖平臺和ObjectARX 2008開(kāi)發(fā)工具,運用Visual c++ 2005語(yǔ)言,探討鐵路選線(xiàn)設計圖形接口方法和交互技術(shù),通過(guò)對AutoCAD圖形數據庫的操作,在前臺進(jìn)行線(xiàn)路的平、縱斷面的交互設計,在后臺自動(dòng)獲取并存儲設計數據,最后調用設計數據自動(dòng)繪制線(xiàn)路平面、縱斷面設計圖。這種鐵路選線(xiàn)CAD系統的實(shí)現,可為設計部門(mén)提供實(shí)用、快捷、方便的現代化設計工具,大大提高設計效率和圖面質(zhì)量。

  1、圖形接口方法

  基于Visual C++ 2005和ObjectARX的圖形接口的建立是圖形生成的基礎。在線(xiàn)路設計圖中包括幾何屬性和非幾何屬性,圖形實(shí)體有直線(xiàn)、圓、圓弧及文字等,圖形非幾何屬性有圖層、顏色、線(xiàn)型等。所以,建立生成圖形的基本圖元和屬性設置接口,是圖形生成的前提。

  1.1 圖形接口的建立

  1.1.1 結果緩沖區接口方法

  (1)結果緩沖區結構在A(yíng)utoCAD中,實(shí)體數據描述表存儲在結果緩沖區中,結果緩沖區的結構為:

  struct resbuf{struct resbuf rbnext;\\~向下一個(gè)結果緩沖區的指針變量short restype;\\用來(lái)指明resval值的類(lèi)型union ads U val resval;\\“結果緩沖區”節點(diǎn)值的resval變量);resval變量是個(gè)同位union ads U val類(lèi)型,成員變量有ads— real rreal,rpoint[3];short rint;charrstring等。結果緩沖區的restype字段,用來(lái)指明返回值resval的類(lèi)型。ADS函數處理實(shí)體時(shí),其返回結果緩沖區的restype字段常常是DXF(drawingexchange file)實(shí)體代碼。

  (2)利用結果緩沖區創(chuàng )建實(shí)體的方法定義結果緩沖區結構:struct resbuf entlist;創(chuàng )建實(shí)體數據描述表:不同的實(shí)體數據描述表的參數不同,以下為直線(xiàn)、圓和文字的數據描述表的構建方法,其他實(shí)體的數據描述表也可依此方法建立?1.entlist— ads— buildlist(RTDXF0,“LINE”,10,S—tartp,11,endp,RTNONE);entlist= ads— buildlist(RTDXF0,“CIRCLE”,10,centerp,40,r,62,color,RTNONE);將實(shí)體描述表添加到結果緩沖區中:status—ads— — entmake(entlist);釋放結果緩沖區:ads relrb(entlist);1.1.2 用創(chuàng )建類(lèi)對象的方法建立接口一幅AutoCAD的圖形是存儲在一個(gè)數據庫中的對象的集合。創(chuàng )建實(shí)體的過(guò)程就是向數據庫中添加對象的過(guò)程。不同的對象有其對應的子類(lèi),如AcDbLine,AcDbCircle,AcDbArc,AcDb2dPolyline,AcDbText等。以AcDb2dPolyline對象的創(chuàng )建方法為例,建立POLYLINE實(shí)體接口函數的方法如下:

  圖形接口定義:

  void createPolyline(AcGePoint3dArray ptArr,double width,int color,char layer)創(chuàng )建實(shí)體對象:

  AcDb2dPolyline pNewPline=new AcDb2dPoly—line(AcDb::k2dSimplePoly,ptArr,0.0,Adesk::kFalse,width,width,NULL);設置實(shí)體顏色和圖層:pNewPline一>setColor—Index(color);pNewPline——>setLayer(1ayer);以讀的方式打開(kāi)當前圖形數據庫中的塊表,建立指向塊表的指針。

  acdbHostApplicationServices()——>workingData--base()->getSymbolTable(pBlockTable,AcDb::kForRead);以寫(xiě)的方式打開(kāi)模型空間,將塊表記錄指針指向模型空間數據庫。

  pBlockTable->getAt(ACDB—MODEL—SPACE,pBlockTableRecord,AcDb::kForWrite);將實(shí)體添加到圖形數據庫的塊表記錄中,返回對象標識。

  pBlockTableRecord——>appendAcDbEntity(pline·-ObjId,pNewPline);關(guān)閉塊表指針、塊表記錄指針和對象指針。如關(guān)閉塊表指針:pBlockTable->close()[ ];其他實(shí)體創(chuàng )建可依據上述方法實(shí)現。

  1.2 圖形非幾何特性設置為了便于圖形管理和符合制圖標準,在繪制設計圖時(shí)需設置圖形的非幾何特性,主要包括圖層、顏色、線(xiàn)型和線(xiàn)寬等。

  1.2.1 建立圖層若不設置圖層,則圖形畫(huà)在“0”層中。當建立圖層時(shí) 可設置圖層的顏色、線(xiàn)型及圖層狀態(tài)(關(guān)閉、打開(kāi),凍結等)等特性,將設計圖中不同內容繪制在各自的圖層中,便于圖形管理。方法如下:

  (1)函數定義接口函數:AcDbObjectId addLayer(char layer.namell00],char linetype[100],int layer—color);

  (2)加載線(xiàn)型在當前工作空間中,加載標準線(xiàn)型庫文件aca—diso.1in中的指定線(xiàn)型。acdbLoadLineTypeFne(hnetype,“…\\acadiso.1in”,pDb);

  (3)建立新的層表記錄:AcDbLayerTableRe—cord pLayerTblRcd= new AcDbLayerTableRecord;

  (4)設置層名:pLayerTblRcd一>setName(1ayer—name);

  (5)設置圖層顏色:pLayerTblRcd一>setColor(color);f61設置線(xiàn)型在線(xiàn)型表中獲取線(xiàn)型標識:pLinetypeTbl一>getAt(1inetype,ltId);在層表記錄中設置線(xiàn)型:pLayerTblRcd一>set—LinetypeObjectId(1tId);將層表記錄添加到層表中:pLayerTbl一>add(pLayerId,pLayerTblRcd);(7)關(guān)閉層表指針,返回層表的ID[3].

  1.2.2 實(shí)體非幾何特性設置實(shí)體的非幾何特性包括所屬的圖層、顯示的顏色、線(xiàn)型、線(xiàn)寬和線(xiàn)型比例等 設置方法如下:

  (1)當前圖層設置在A(yíng)utoCAD環(huán)境下,圖形是畫(huà)在當前層中,所以,在繪圖時(shí)要先設置當前圖層,方法為:pDb一>setClayer(pLayerld)。

  (2)設置線(xiàn)型比例在A(yíng)utoCAD 的模型空間設置線(xiàn)型總體比例方法如下:打開(kāi)當前數據庫:AcDbDatabase pDb—acdbHostApplicationSerVices()一>workingDatabase();設置線(xiàn)型總體比例:pDb一>setLtsca1e(Ltscale)。

  (3)設置實(shí)體顏色:實(shí)體的顏色可與所在層不同,如果顏色值不是256(BYLAYER),則實(shí)體與它所在圖層的顏色不一致。實(shí)體顏色的設置方法為:pEntity一>setCo1orIndexfnewColor)。

  (4)設置實(shí)體圖層:如果一個(gè)實(shí)體已經(jīng)指定了圖層,那么當前數據庫的圖層值會(huì )被忽略。設置實(shí)體圖層的方法為:pEntity一>setLayer(pLayerId)。

  2、圖形信息的提取原理和方法

  2.1 圖形信息及提取原理

  2.1.1 矢量圖的主要內容

  (1)工程設計圖中的幾何實(shí)體包括:點(diǎn)、直線(xiàn)、圓和圓弧、多段線(xiàn)(POLYLINE)、文字、尺寸標注等,其幾何屬性有離散點(diǎn)的坐標,直線(xiàn)的端點(diǎn)坐標和線(xiàn)段的長(cháng)度,圓的圓心坐標及半徑,多段線(xiàn)(POLYLINE)的各頂點(diǎn)坐標、線(xiàn)段的長(cháng)度和面積及文字的起點(diǎn)坐標等。

  (2)圖形的非幾何信息有圖層、顏色、線(xiàn)型、線(xiàn)寬及層的狀態(tài)等。

  2.1.2 實(shí)體信息提取原理利用結果緩沖區和DXF接口方法,結合Obje—ctARX工具的實(shí)體獲取技術(shù),可提取對象的坐標、圖層、線(xiàn)型、顏色等信息。

  結果緩沖區用于存儲實(shí)體信息,根據緩沖區變量restype的返回值,結合DXF組代碼來(lái)判斷組值的類(lèi)型,實(shí)體信息分類(lèi)如下:

  (1)DXF圖形交換文件由7個(gè)節(Section)組成,每節由0組和其組值Section開(kāi)始,中間是若干個(gè)組,每組由組代碼和組值構成,節尾由0組和其組值ENDSEC組成。不同的組代碼對應的組值可為字符串、整型數、浮點(diǎn)數等。

  (2)組代碼是0 9的整數,則返回值類(lèi)型為字符串(RTSTR),組值為實(shí)體名稱(chēng)、圖層名和線(xiàn)型等。

  (3)組代碼是10~19之間的整數時(shí),返回值的類(lèi)型為RT3DPOINT,這種返回值為點(diǎn)的坐標:adsreal rpoint~3],由此可獲得圖形中的散點(diǎn)坐標值。

  (4)組代碼為38~59的整數時(shí),其返回值的類(lèi)型為RTREAL,其值為實(shí)型數,其中,組代碼39的組值為厚度(thickness)、組代碼40的組值為高度(如等高線(xiàn)的高程)、半徑等,其他組代碼的組值為角度等。

  (5)組代碼是60~79的整數時(shí),返回值為短整型RTSHORT,如顏色號碼及對齊方式等。

  2.2 實(shí)體信息提取方法在A(yíng)utoCAD模型空間中,圖形為矢量圖,各對象有其對應的子類(lèi),在DXF接口中,實(shí)體的幾何與屬性信息對應不同的組代碼和組值,根據子類(lèi)的不同可提取相應實(shí)體的幾何和屬性信息。多段線(xiàn)POLYLINE的子類(lèi)為AcDbPolyline,DXF的組碼為0,組值為POLYLINE,以多段線(xiàn)的頂點(diǎn)信息提取為例,說(shuō)明對象信息提取的原理和方法如下:

  (1)獲取圖形實(shí)體運用ObjectARX開(kāi)發(fā)工具中的acedSSGet(“a”,NULL,NULL,NULL,ads name all entities)函數獲取圖形數據實(shí)體,然后,用acedSSLength(ads_name aii entities,long entities count)函數獲取選擇集中的實(shí)體數目。

  (2)獲取實(shí)體名稱(chēng)利用acedSSName(ads name all entities,longi,ads name entity)函數,獲取all entities實(shí)體集合中第i個(gè)實(shí)體的名稱(chēng)并存放于參數entity中。

  (3)實(shí)體數據描述表在結果緩沖區中獲取實(shí)體數據的描述表:struct resbuf entitybuf=ads— entget(entity)。

  獲取結果緩沖區中所存儲的entitybuf->restype為實(shí)體的DXF組代碼,entitybuf->resva1.rstring為組值,組代碼和組值分別為0和“POLYLINE”時(shí),則該實(shí)體為P0n LINE.用acdbGetObjectId(AcDbObjectId plineObjIdads name entity)函數獲取POLYLINE實(shí)體標識符,再用該標識符對POLYLINE實(shí)體進(jìn)行遍歷,獲取頂點(diǎn)個(gè)數和坐標:pLine一>getPointAt(n,data—plineIn]),并將頂點(diǎn)坐標存人數據文件中【5】。

  3、圖形交互技術(shù)在線(xiàn)路平面和縱斷面設計線(xiàn)完成后,經(jīng)常需要對線(xiàn)路平面圖的交點(diǎn)或縱斷面變坡點(diǎn)進(jìn)行交互調整和修改,交互修改包括插入、刪除和移動(dòng)點(diǎn)等方式。此處采用結構、指針,鏈表、實(shí)體數據獲取和操作等技術(shù)完成。

  (1)獲取初始數據獲取工作路徑下的初始數據:設計標準、斷前和斷后里程、高程、繪圖比例等。

  (2)建立縱斷面坡度線(xiàn)的數據結構為了便于存儲和操作坡度線(xiàn)的數據信息,坡度線(xiàn)的頂點(diǎn)結構體定義如下:struct podu{double k,X,h,h—Y,r;struct podu next;struct podu prior;}成員變量說(shuō)明: 為變坡點(diǎn)連續里程,k 為變坡點(diǎn)X坐標,h是變坡點(diǎn)高程,h Y是變坡點(diǎn)Y坐標,r是豎曲線(xiàn)半徑。

  (3)獲取坡度線(xiàn)數據:先選擇對象:ads entsel(“\n請選擇坡段,然后根據需要移動(dòng)變坡點(diǎn):\n”,pd— line,p0);再獲取實(shí)體標識:acdbGetObjectId(plineObjId,pd_ line);遍歷實(shí)體PP—iterate(plineObjId);設置結構首地址podu:podu start.

  (4)判斷所選多段線(xiàn)是否為坡度線(xiàn)根據已存儲的設計坡段數據與所獲取的多段線(xiàn)頂點(diǎn)鏈表數據比較,運用while(podu){}循環(huán)判斷所選多段線(xiàn)是否為坡度線(xiàn)。若是坡度線(xiàn),則進(jìn)行插入操作。

  (5)首先判斷該段坡度是否滿(mǎn)足最大限坡的要求,若滿(mǎn)足條件,則建立坡度線(xiàn)鏈表。根據坡長(cháng)和坡度計算插入點(diǎn)的坐標,判斷插入點(diǎn)在鏈表中的位置,再將該點(diǎn)插入坡度線(xiàn)鏈表中,然后將鏈表中的數據寫(xiě)入數據文件中,以備后用。

  (6)獲取結果緩沖區中的實(shí)體選擇集:ads SS—get(“X”,NULL,NULL,&ebl,ssname);測量選擇集中的實(shí)體個(gè)數:ads— sslength(ssname,&ilast);在選擇集中逐個(gè)刪除實(shí)體:for(k:0;

  (7)重新生成坡度線(xiàn)根據重新生成的坡度線(xiàn)數據,利用坡度線(xiàn)繪圖接口畫(huà)出新的坡度線(xiàn),接口函數如下:draw— pd(path—name—pd,n—dl,dl,h~scale,st—ic,orientation,hum—dg,dg—SZ,bz~ jj);

  4、應用實(shí)例運用以上圖形接口方法和圖形數據提取技術(shù)開(kāi)發(fā)了鐵路選線(xiàn)CAD系統,圖1為該系統生成的一段鐵路縱斷面圖[6].系統主要特點(diǎn)如下:

  (1)實(shí)現了線(xiàn)路平面和豎向設計可視化設計功能,由設計過(guò)程產(chǎn)生設計數據和設計文件,根據設計數據生成平面、縱斷面和橫斷面圖,改變了其他軟件必須由人工輸入設計數據而后產(chǎn)生設計圖的做法,真正實(shí)現了計算機輔助設計的功能[7]_

  (2)針對選線(xiàn)中的地形圖和數字地模(DEM),實(shí)現了數字地面模型形成與格式轉換。

  (3)在平面和豎向設計過(guò)程中自動(dòng)產(chǎn)生設計數據,實(shí)現了設計圖和數據的聯(lián)動(dòng)、插入、移動(dòng)、合并和刪除等修改功能,實(shí)現了線(xiàn)路中的斷鏈處理等功能

  5、結束語(yǔ)

  在計算機輔助設計中,軟件平臺和開(kāi)發(fā)工具雖多種多樣,但圖形接口、交互技術(shù)、數據提取和存儲是CAD開(kāi)發(fā)的主要研究?jì)热。本文采用VisualC++2005語(yǔ)言和強大的ObjectARX 2008二次開(kāi)發(fā)工具,直接對圖形數據庫進(jìn)行操作,結合鐵路選線(xiàn)設計原理、過(guò)程和設計經(jīng)驗,開(kāi)發(fā)了符合實(shí)際設計要求的選線(xiàn)設計CAD系統,解決了勘測設計的實(shí)際問(wèn)題和難題,為勘測設計人員快速有效地實(shí)施設計思想提供了現代化的設計手段,極大地減輕了設計人員的勞動(dòng)強度,提高了設計效率。

  參考文獻

  [1]余承飛,方勇編。AutoCAD 2000二次開(kāi)發(fā)技術(shù)(ObjectARX)[M1.北京:人民郵電出版社,1999:25-30.

  [2]老大中,趙占強。AutoCAD 2000 ARX二次開(kāi)發(fā)實(shí)例精粹(ObjectARX)[M1.北京:國防工業(yè)出版社,2001:50-56.

  [3]程耀東,張麗萍,韓進(jìn),等。計算機繪圖教程與二次開(kāi)發(fā)方法fM】。蘭州: 甘肅科技出版社,2009:525-533.

  [4]李世國。AutoCAD高級開(kāi)發(fā)技術(shù):ARX編程及應用【MI.北京:機械工業(yè)出版社,2001:50-56.

  [5]程耀東;贠bjectARX 2007的地質(zhì)斷面自動(dòng)填充方法fJJ.物探與物化,2010,34(5):681—685.

  [6]易思蓉。鐵路選線(xiàn)設計(M1.成都:西南交通大學(xué)出版社,2005:75—124.

  [7]葛根榮。鐵路選線(xiàn)三維聯(lián)動(dòng)可視化CAD系統的開(kāi)發(fā)與應用{J】。鐵道勘察,2005,31(4):I-3.

  [8]王衛東,蔣紅斐。道路與鐵道工程計算機輔助設計【M1.北京:機械工業(yè)出版社,2004:109-130.

【基于鐵路選線(xiàn)CAD系統的圖形接口方法與交互技術(shù)】相關(guān)文章:

基于USB接口的數據采集系統設計03-18

基于USB接口的數據傳輸系統的研究與設計03-15

基于組件的三維CAD系統開(kāi)發(fā)的關(guān)鍵技術(shù)研究03-19

基于Web技術(shù)的網(wǎng)絡(luò )考試系統03-18

基于USB接口的數據采集系統-GSM功率測量VC++03-08

基于USB接口的心電信號數據采集系統03-19

基于信號接口的自動(dòng)測試系統軟件的設計與實(shí)現03-18

基于Web的交互式數據庫查詢(xún)技術(shù)03-20

交互電視技術(shù)03-18

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频