• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于AutoCAD平臺(tái)的圖件動(dòng)態(tài)坐標(biāo)標(biāo)注系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2019-09-05 01:10:28余章蓉王友昆董國橋
      城市勘測 2019年4期
      關(guān)鍵詞:平面坐標(biāo)圖件樣式

      余章蓉,王友昆,董國橋

      (1.昆明理工大學(xué)津橋?qū)W院,云南 昆明 650106; 2.武漢大學(xué)測繪學(xué)院,湖北 武漢 430079;3.昆明市測繪研究院,云南 昆明 650051)

      1 引 言

      AutoCAD的dwg格式的圖件在工程規(guī)劃、設(shè)計(jì)、建設(shè)中應(yīng)用廣泛。坐標(biāo)標(biāo)注是工程設(shè)計(jì)圖、審批圖、竣工圖等工程圖件繪制中常用的功能,其目的是將重要位置的坐標(biāo)醒目地顯示在圖紙上,便于識(shí)圖者使用[1]。AutoCAD自帶命令可以實(shí)現(xiàn)圖件平面坐標(biāo)的快速標(biāo)注,一些學(xué)者基于AutoCAD平臺(tái)也研究開發(fā)一些快速標(biāo)注的插件[2~4]。對于測繪成果圖件的坐標(biāo)標(biāo)注,除了標(biāo)注平面坐標(biāo)外,有時(shí)還需要標(biāo)注地理坐標(biāo),甚至需要標(biāo)注該點(diǎn)的其他坐標(biāo)系的坐標(biāo)成果?;诘乩碜鴺?biāo)的標(biāo)注,部分學(xué)者也做了相應(yīng)的研究工作[5],但對于標(biāo)注其他坐標(biāo)系成果的研究較少。傳統(tǒng)的方式是先利用坐標(biāo)轉(zhuǎn)換工具將需要標(biāo)注的位置坐標(biāo)進(jìn)行轉(zhuǎn)換,然后利用坐標(biāo)標(biāo)注工具將轉(zhuǎn)換的文本內(nèi)容標(biāo)注在圖件中[6]。這種方法不但工序煩瑣,而且容易出錯(cuò)。本文將坐標(biāo)轉(zhuǎn)換的功能集成在坐標(biāo)標(biāo)注模塊之中,將坐標(biāo)轉(zhuǎn)換和坐標(biāo)標(biāo)注有機(jī)結(jié)合,同時(shí)將轉(zhuǎn)換參數(shù)加密存儲(chǔ)于加密狗中達(dá)到保密的效果,系統(tǒng)在多個(gè)規(guī)劃建設(shè)項(xiàng)目中得到了應(yīng)用,大大提高了坐標(biāo)標(biāo)注的效率。

      2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2.1 需求分析

      圖件標(biāo)注一般是將圖件關(guān)鍵位置的平面坐標(biāo)標(biāo)注在圖上,也有標(biāo)注地理坐標(biāo)的需求。針對一些特殊要求,需要在同一圖件中標(biāo)注該位置的其他坐標(biāo)系成果坐標(biāo)。一般的CAD圖件均為平面坐標(biāo)系,標(biāo)注平面坐標(biāo)時(shí)可直接獲取圖件位置的坐標(biāo)值進(jìn)行標(biāo)注。當(dāng)要標(biāo)注地理坐標(biāo)時(shí),需要將獲取的圖件平面坐標(biāo)通過高斯反算為經(jīng)緯度值后再標(biāo)注。當(dāng)需要標(biāo)注其他坐標(biāo)系成果坐標(biāo)時(shí),需要先將獲取的圖件坐標(biāo)值進(jìn)行坐標(biāo)轉(zhuǎn)換,然后標(biāo)注轉(zhuǎn)換后的坐標(biāo)值。

      2.2 系統(tǒng)設(shè)計(jì)

      為了實(shí)現(xiàn)AutoCAD平臺(tái)下同一坐標(biāo)系成果圖件的不同坐標(biāo)系成果的坐標(biāo)標(biāo)注功能,標(biāo)注系統(tǒng)采用Visual Studio 2012開發(fā)平臺(tái)和C#語言開發(fā),利用AutoCAD ObjectARX .NET技術(shù)實(shí)現(xiàn)AutoCAD標(biāo)注點(diǎn)獲取和視窗操作的交互,基于加密狗實(shí)現(xiàn)坐標(biāo)轉(zhuǎn)換參數(shù)的存儲(chǔ)、調(diào)用及坐標(biāo)轉(zhuǎn)換等功能,搭建開發(fā)多坐標(biāo)系成果坐標(biāo)動(dòng)態(tài)標(biāo)注系統(tǒng)。系統(tǒng)主要包括系統(tǒng)設(shè)置、坐標(biāo)點(diǎn)選擇、坐標(biāo)轉(zhuǎn)換、高斯反算、坐標(biāo)標(biāo)注等步驟,如圖1所示。

      (1)系統(tǒng)設(shè)置,對成果的坐標(biāo)標(biāo)注類型和是否需要坐標(biāo)轉(zhuǎn)換進(jìn)行設(shè)置。

      (2)坐標(biāo)點(diǎn)選擇,通過AutoCAD的互操作選擇需要標(biāo)注的源坐標(biāo)點(diǎn)位置,其平面坐標(biāo)記為(x,y)j。

      (3)坐標(biāo)轉(zhuǎn)換,如果標(biāo)注的坐標(biāo)需要坐標(biāo)轉(zhuǎn)換則根據(jù)系統(tǒng)設(shè)置,自動(dòng)判斷后調(diào)用對應(yīng)的函數(shù)進(jìn)行坐標(biāo)轉(zhuǎn)換,轉(zhuǎn)換后的目標(biāo)平面坐標(biāo)記為(x,y)k。

      (4)高斯反算,如果坐標(biāo)標(biāo)注類型為地理坐標(biāo),設(shè)置橢球參數(shù),將(x,y)k高斯反算為(B,L)k。

      (5)坐標(biāo)標(biāo)注,按照設(shè)置的標(biāo)注樣式,將坐標(biāo)值(x,y)k或(B,L)k標(biāo)注圖元添加到圖形中。

      2.3 功能實(shí)現(xiàn)

      (1)系統(tǒng)設(shè)置

      參數(shù)設(shè)置主要實(shí)現(xiàn)對成果圖件的標(biāo)注類型和坐標(biāo)轉(zhuǎn)換參數(shù)進(jìn)行設(shè)置。標(biāo)注類型是設(shè)置標(biāo)注平面坐標(biāo)或標(biāo)注地理坐標(biāo)。如果需要進(jìn)行坐標(biāo)轉(zhuǎn)換,需要對轉(zhuǎn)換區(qū)域、源坐標(biāo)名稱和目標(biāo)坐標(biāo)名稱進(jìn)行設(shè)置,以便后續(xù)調(diào)用相應(yīng)的轉(zhuǎn)換參數(shù)進(jìn)行坐標(biāo)轉(zhuǎn)換。設(shè)置示意圖如圖2所示。

      圖2 系統(tǒng)設(shè)置

      (2)坐標(biāo)轉(zhuǎn)換

      坐標(biāo)轉(zhuǎn)換主要以平面四參數(shù)模型實(shí)現(xiàn)源坐標(biāo)轉(zhuǎn)換為目標(biāo)坐標(biāo)。平面四參數(shù)模型為相似變換模型[7],模型包括2個(gè)坐標(biāo)平移參數(shù)△x/△y,1個(gè)尺度參數(shù)m,1個(gè)角度旋轉(zhuǎn)參數(shù)α,轉(zhuǎn)換關(guān)系如式(1)。

      (1)

      式中(xj,yj)為轉(zhuǎn)換前源坐標(biāo),(xk,yk)為轉(zhuǎn)換后目標(biāo)坐標(biāo),a=mcosα,b=msinα

      坐標(biāo)轉(zhuǎn)換計(jì)算方法簡單,將4個(gè)參數(shù)及源坐標(biāo)帶入式(1)即可計(jì)算出目標(biāo)坐標(biāo)。為提高用戶體驗(yàn),用戶只需選擇轉(zhuǎn)換區(qū)域、源坐標(biāo)名稱、目標(biāo)坐標(biāo)名稱,程序自動(dòng)根據(jù)用戶選擇通過索引的方式調(diào)用轉(zhuǎn)換參數(shù),實(shí)現(xiàn)坐標(biāo)的自動(dòng)轉(zhuǎn)換,坐標(biāo)轉(zhuǎn)換流程如圖3所示。

      為保證轉(zhuǎn)換參數(shù)不被泄密,轉(zhuǎn)換參數(shù)用戶是不可見的,轉(zhuǎn)換參數(shù)加密后存儲(chǔ)于加密狗[8~10]。通過加密狗唯一的硬件ID進(jìn)行識(shí)別,確保標(biāo)注程序同加密狗對應(yīng)。同時(shí),采用加密狗自帶的RSA非對稱算法[11~13],利用公鑰和私鑰分別實(shí)現(xiàn)轉(zhuǎn)換參數(shù)的加密和解密。為降低坐標(biāo)轉(zhuǎn)換的精度,可將坐標(biāo)混淆及坐標(biāo)轉(zhuǎn)換的代碼‘移植’到加密狗內(nèi),極大地提高保密性。

      圖3 坐標(biāo)轉(zhuǎn)換流程

      當(dāng)標(biāo)注坐標(biāo)為地理坐標(biāo)時(shí),需要先采用高斯反算將高斯投影平面直角坐標(biāo)(x,y)轉(zhuǎn)換為大地坐標(biāo)(B,L)后標(biāo)注,一般采用迭代法計(jì)算[14]。

      (3)標(biāo)注樣式

      通過圖元的標(biāo)注樣式設(shè)置,用戶可以標(biāo)注出符合不同出圖要求的標(biāo)注圖元。平面坐標(biāo)標(biāo)注和地理坐標(biāo)標(biāo)注的標(biāo)注樣式設(shè)置,均包括標(biāo)注圖層、箭頭樣式、文字樣式、字體大小、小數(shù)位、坐標(biāo)前綴等內(nèi)容。標(biāo)注圖層、箭頭樣式、文字樣式列表框,由程序讀取圖形全部圖層名稱、箭頭樣式、文字樣式至列表框,供用戶選擇設(shè)置。坐標(biāo)前綴可以增加坐標(biāo)的前綴符,如平面坐標(biāo)可加入“X=”、“Y=”前綴符。

      平面坐標(biāo)標(biāo)注的樣式設(shè)置如圖4所示,可以設(shè)置坐標(biāo)的比例,如可以將米為單位的坐標(biāo)放大1 000倍以毫米為單位標(biāo)注。此外,還可以標(biāo)注圖元的高程,并可互換X/Y的坐標(biāo)位置。

      圖4 平面坐標(biāo)標(biāo)注樣式設(shè)置

      地理坐標(biāo)標(biāo)注的樣式設(shè)置,比平面坐標(biāo)標(biāo)注多了橢球參數(shù)設(shè)置和角度格式樣式的設(shè)置,橢球參數(shù)的中央經(jīng)線及橢球定義用于高斯反算,角度格式用于設(shè)置標(biāo)注的經(jīng)度和緯度的,如圖5所示。

      圖5 地理坐標(biāo)標(biāo)注樣式設(shè)置

      (4)動(dòng)態(tài)標(biāo)注

      AutoCAD ObjectARX .NET提供的JIG(Just in Time Graphic 即時(shí)繪圖)技術(shù)可以實(shí)現(xiàn)動(dòng)態(tài)標(biāo)注[15],通過標(biāo)注過程的交互操作,用戶在標(biāo)注過程中可以預(yù)覽標(biāo)注結(jié)果,大大提高了用戶的體驗(yàn)效果?;诒疚牡男枨螅鐖D6所示,其實(shí)現(xiàn)的交互過程如下:

      ①用戶點(diǎn)擊需要標(biāo)注的P1點(diǎn)。

      ②程序獲取點(diǎn)坐標(biāo),根據(jù)系統(tǒng)設(shè)置將該坐標(biāo)轉(zhuǎn)換后將標(biāo)注的內(nèi)容傳入JIG類。

      ③鼠標(biāo)移動(dòng),程序獲取鼠標(biāo)的臨時(shí)點(diǎn)P2坐標(biāo),JIG類根據(jù)P1和P2點(diǎn)的位置將箭頭、橫線、標(biāo)注文字等圖元臨時(shí)繪制出來,繪制的結(jié)果隨用戶的鼠標(biāo)位置動(dòng)態(tài)移動(dòng)。

      ④用戶鼠標(biāo)在P3位置處點(diǎn)擊確認(rèn)后,程序?qū)?biāo)注圖元添加至圖形,結(jié)束命令。

      圖6 動(dòng)態(tài)標(biāo)注示意圖

      動(dòng)態(tài)標(biāo)注的核心是對ObjectARX .NET提供的EntityJig類和DrawJig類進(jìn)行繼承重寫[16],不同之處在于EntityJig只能操作單個(gè)圖元,DrawJig可以操作多個(gè)圖元。由于標(biāo)注的圖元至少有4個(gè),加上高程則有5個(gè)圖元,因此采用繼承DrawJig類來實(shí)現(xiàn)動(dòng)態(tài)標(biāo)注。繼承DrawJig類,重寫類的Sampler和WorldDraw函數(shù)即可。Sampler用于獲取用戶命令(鼠標(biāo))狀態(tài),判斷鼠標(biāo)是否點(diǎn)擊第二個(gè)點(diǎn),如果沒有則調(diào)用WorldDraw用于繪制動(dòng)態(tài)的圖元,如果點(diǎn)擊了第二個(gè)點(diǎn)則將圖元繪制添加到圖形中。

      3 實(shí)例應(yīng)用

      以昆明市長水機(jī)場遮蔽角及障礙物測量項(xiàng)目為例,1∶500地形圖采用城市獨(dú)立坐標(biāo)系測制,圖件需要標(biāo)注城市獨(dú)立坐標(biāo)系平面坐標(biāo)、長水機(jī)場AB坐標(biāo)系平面坐標(biāo)、1954北京坐標(biāo)系地理坐標(biāo)。首先,第一次坐標(biāo)標(biāo)注前需要進(jìn)行系統(tǒng)設(shè)置,也可在標(biāo)注過程中重新設(shè)置。

      長水機(jī)場AB坐標(biāo)系平面坐標(biāo)需要經(jīng)過坐標(biāo)轉(zhuǎn)換后標(biāo)注,因此標(biāo)注類型勾選“標(biāo)注XY”、坐標(biāo)轉(zhuǎn)換勾選“是否轉(zhuǎn)換”,并設(shè)置源坐標(biāo)和目標(biāo)坐標(biāo),如圖7所示。城市獨(dú)立坐標(biāo)系平面坐標(biāo)可根據(jù)獲取的圖件坐標(biāo)直接標(biāo)注,因此不用勾選“是否轉(zhuǎn)換”。1954北京坐標(biāo)系地理坐標(biāo)需要坐標(biāo)轉(zhuǎn)換和高斯反算后標(biāo)注,標(biāo)注類型勾選“標(biāo)注BL”,目標(biāo)坐標(biāo)選擇1954北京坐標(biāo)系。

      圖7 機(jī)場AB平面坐標(biāo)系標(biāo)注設(shè)置

      點(diǎn)擊確定后,如果需要坐標(biāo)轉(zhuǎn)換,程序根據(jù)源坐標(biāo)和目標(biāo)坐標(biāo)名稱自動(dòng)索引存放于加密狗內(nèi)對應(yīng)的轉(zhuǎn)換參數(shù),將獲取的坐標(biāo)進(jìn)行轉(zhuǎn)換。為查看不同標(biāo)注樣式的標(biāo)注效果,城市獨(dú)立坐標(biāo)系采用空心箭頭、兩位小數(shù)進(jìn)行標(biāo)注,機(jī)場AB坐標(biāo)系采用無箭頭、三位小數(shù)、前綴A/B標(biāo)識(shí)、高程進(jìn)行標(biāo)注,1954北京坐標(biāo)系采用實(shí)心箭頭、一位小數(shù)、前綴B/L、‘°′″’角度格式進(jìn)行標(biāo)注,結(jié)果如圖8所示。

      圖8 坐標(biāo)標(biāo)注實(shí)例示意圖

      4 結(jié) 語

      本文將坐標(biāo)轉(zhuǎn)換和動(dòng)態(tài)標(biāo)注有機(jī)結(jié)合,實(shí)現(xiàn)了不同坐標(biāo)系成果坐標(biāo)在同一圖件中標(biāo)注的應(yīng)用需求?;诩用芄返陌踩院途庉嬓裕瑢?shí)現(xiàn)了軟件的保護(hù)、轉(zhuǎn)換參數(shù)存儲(chǔ)和坐標(biāo)轉(zhuǎn)換過程的保密。同時(shí),基于即時(shí)繪圖(JIG)技術(shù),實(shí)現(xiàn)了動(dòng)態(tài)標(biāo)注。系統(tǒng)操作簡便、功能齊全,減少了獨(dú)立坐標(biāo)轉(zhuǎn)換的環(huán)節(jié),極大地提高了坐標(biāo)標(biāo)注效率。

      猜你喜歡
      平面坐標(biāo)圖件樣式
      CPMF-I 取樣式多相流分離計(jì)量裝置
      一種地質(zhì)圖件數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)思路
      奧維互動(dòng)地圖CAD中線坐標(biāo)精度分析
      人民交通(2022年5期)2022-06-16 07:25:12
      CPMF-I 取樣式多相流分離計(jì)量裝置
      復(fù)變函數(shù)斜軸橢球變換法的銜接應(yīng)用
      測繪工程(2021年5期)2021-09-13 09:01:38
      遙感解譯成果圖件矢量化方法技術(shù)研究*
      取樣式多相流分離計(jì)量裝置
      濮陽市擬建立相對獨(dú)立的平面坐標(biāo)系統(tǒng)
      基于MapGIS和ArcGIS的遙感解譯成果圖件數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)
      這是巴黎發(fā)布的新樣式
      耒阳市| 绥阳县| 漯河市| 德清县| 民丰县| 孝义市| 沁水县| 上蔡县| 永登县| 榆社县| 兴化市| 呼伦贝尔市| 丘北县| 武强县| 虎林市| 舞钢市| 乳源| 唐山市| 阿城市| 黄山市| 东至县| 温州市| 永定县| 明溪县| 东海县| 闸北区| 东辽县| 彰武县| 肇源县| 巫山县| 临湘市| 黎川县| 通辽市| 五寨县| 会宁县| 丹寨县| 名山县| 夏邑县| 土默特左旗| 青河县| 岚皋县|