崔孝偉(青島市勘察測繪研究院,山東青島 266000)
MicroStation平臺下水深注記的自動展繪
崔孝偉?
(青島市勘察測繪研究院,山東青島 266000)
摘 要:水深注記不同于一般陸地高程注記,在國家標準中有著特殊的規(guī)定。依據(jù)國家標準圖式,在分析水深注記的表現(xiàn)形式基礎(chǔ)上,研究了水深注記在MicroStation中的展繪方法,并在MicroStation平臺下利用MDL二次開發(fā)方式實現(xiàn)了水深注記的自動展繪。
關(guān)鍵詞:水深注記;MicroStation;MDL
水深注記是水下地形圖中的主要元素,是水下地形測量的主要成果形式,MicroStation已在陸地測繪的內(nèi)業(yè)制圖工作中被廣泛采用,為了使MicroStation在水下地形測量中得到很好的應(yīng)用,我們研究了如何在MicroStation平臺下穩(wěn)定高效的展繪水深注記及其他相關(guān)應(yīng)用,既能符合國家標準圖式的規(guī)定,又可以兼顧數(shù)據(jù)在其他平臺中使用,本文給出了利用MicroStation 的MDL二次開發(fā)方式實現(xiàn)水深注記自動展繪的方法。
圖1為國家標準圖式中對水深注記的規(guī)定,依次判讀水深為15.8 m, 6.4 m,不同于一般的陸地高程注記,最大的特點在于取消了小數(shù)點,水深數(shù)據(jù)的整數(shù)和小數(shù)分別單獨表示,而不是一個單獨的文本。國家標準還規(guī)定了水深注記的定位點在整數(shù)部分的中心,整數(shù)與小數(shù)部分的字體大小和相對位置。
圖1 國家標準圖式中的水深注記
3.1MicroStation應(yīng)用分析
MicroStation是目前測繪行業(yè)中被廣泛使用并深度二次開發(fā)的繪圖軟件,在陸地測繪制圖中應(yīng)用非常成熟,但是在水下地形繪圖方面較為欠缺。
MicroStation主要通過鼠標對話框操作,兼容命令輸入的方式,圖形用戶界面友好,易學易用。MicroStation還提供了成熟的二次開發(fā)接口,其中MDL方式功能豐富,運行穩(wěn)定,與MicroStation完美融合。因此,我們采用MDL方式進行水下地形繪圖功能的開發(fā)。
3.2水深注記設(shè)計
圖2為國家標準中規(guī)定的一般陸地高程注記,在MicroStation中每個注記可以通過單一的文本(簡單元素)來表達,而水深注記的整數(shù)部分和小數(shù)部分是相對獨立的,字體大小各不相同,但是又存在著固定的相對位置關(guān)系。
圖2 國家標準圖式中的陸地高程注記
如圖3所示,在MicroStation中可以采用兩個獨立的文本(兩個簡單元素)分別表示水深注記的整數(shù)和小數(shù)部分,但會有以下缺陷:有失整體性,容易出現(xiàn)誤操作使整數(shù)和小數(shù)的位置發(fā)生偏移;不易導出圖面的水深值。我們研究了很多方法,比如在整數(shù)部分中加掛水深值屬性,比如采用小數(shù)部分為標簽的方式,都不能很好地解決。因此,我們需要將獨立的整數(shù)與小數(shù)部分整合成為一體,在MicroStation我們采用單元cell(復雜元素)的方式,使用“元素描述符”進行操作。
圖3 MicroStation中水深注記
3.3水深注記自動展繪
(1)建立單元
為了保證整數(shù)部分與小數(shù)部分的相對位置及美觀,根據(jù)測區(qū)水域的水深范圍(0≤d<10、10≤d<100、100≤d<1000……)分別建立相應(yīng)水深注記范圍的單元,如圖4所示,將所建立單元分別命名保存于單元庫中,以備調(diào)用。
圖4 建立水深注記單元
(2)自動展繪
測深儀自帶的數(shù)據(jù)編輯軟件可以直接導出CASS格式的數(shù)據(jù),利用MicroStation提供的MDL開發(fā)方式設(shè)計友好的用戶界面,由用戶選擇待展繪的CASS格式的數(shù)據(jù),由程序自動處理展繪,流程圖如圖5所示:
圖5 自動展繪流程圖
關(guān)鍵代碼如下:
①讀取數(shù)據(jù)
fscanf(FP,"%[^,],,% f,% f,% f ",ptname,&ptx,&pty, &ptz);
②判斷水深范圍并調(diào)取相應(yīng)的單元
if(zsval<10)
{
mdlCell _ getElmDscrExtended ( &pCellElmdscr, NULL, NULL, &pt, &cellScale, TRUE, MASTERFILE, NULL, NULL, 0, 0, FALSE, TRUE, cellName, NULL);
}
……
③提取整數(shù)與小數(shù)并分別創(chuàng)建文本
zsval=floor(ptz);
sprintf(zs,"%d",zsval);
xsval=atof(ptz)?10-zsval?10;
sprintf(xs,"%d",xsval);
mdlText_create(&zsElement,NULL,zs,&pt,&txtSize,NULL, &txtParam,NULL);/ /創(chuàng)建
mdlText _ create ( &xsElement, NULL, xs, &pt1, &txtSize1, NULL,&txtParam1,NULL);
④替換整數(shù)小數(shù)
nCellElmdscr=pCellElmdscr->h.firstElem;/ /遍歷單元內(nèi)部的整數(shù)與小數(shù)分別替換
flag=0;
while(nCellElmdscr)
{
if(flag= =0)
{
mdlElmdscr_ replaceElement (&nCellElmdscr, &zsElement);flag++;
}
else
{
mdlElmdscr_replaceElement(&nCellElmdscr,&xsElement);}
nCellElmdscr=nCellElmdscr->h.next;
}
3.4應(yīng)用實例
針對某海洋測繪工程開發(fā)此模塊實現(xiàn)水深注記的自動展繪。用戶點擊第一個按鈕選擇待展繪的文件,支持同時選擇多個文件,第二個按鈕實現(xiàn)具體的展繪過程,結(jié)果如圖6所示:
圖6 水深注記自動展繪界面
圖7 其他水下地形測量應(yīng)用
目前大多數(shù)水下地形測繪工程都利用AutoCAD平臺進行編繪,本文討論了MicroStation平臺下水深注記的自動展繪思路及方法,尤其是對MicroStation中復雜元素的操作有著很好的借鑒意義,并在實際應(yīng)用中在MicroStation平臺下開發(fā)了水下地形繪圖軟件,高效編繪出穩(wěn)定、美觀的水下地形圖。
參考文獻
[1] 徐連信.C語言程序設(shè)計[M].北京:清華大學出版社, 2005.
[2] 趙建虎.現(xiàn)代海洋測繪[M].武漢:武漢大學出版社, 2007.
[3] GB/ T 20257.1-20072.1∶500 1∶1000 1∶2000地形圖圖式[S].
[4] GB 12319-1998.中國海圖圖式[S].
[5] Bentley.MDLAPIFunctionReference [ EB/ OL].http:/ / www.bentley.com/ zh-CN/ ,2004.
Automatic Poltting soundings in MicroStation
Cui Xiaowei
(Qingdao Geotechnical Investigation and Surveying Institute,Qingdao 266000,China)
Abstract:Sounding is different from height and special in GB.A method of poltting soundings in MicroStation is presented based on the analysis of standard and it was realized automatically by programming in MDL.
Key words:sounding;MicroStation;MDL
文章編號:1672-8262(2015)05-106-02中圖分類號:P209
文獻標識碼:B
收稿日期:?2015—05—06
作者簡介:崔孝偉(1985—),男,工程師,主要從事MicroStation、AutoCAD以及EPS二次開發(fā)工作。