崔孝偉(青島市勘察測繪研究院,山東青島 266000)
MicroStation平臺下水深注記的自動展繪
崔孝偉?
(青島市勘察測繪研究院,山東青島 266000)
摘 要:水深注記不同于一般陸地高程注記,在國家標準中有著特殊的規定。依據國家標準圖式,在分析水深注記的表現形式基礎上,研究了水深注記在MicroStation中的展繪方法,并在MicroStation平臺下利用MDL二次開發方式實現了水深注記的自動展繪。
關鍵詞:水深注記;MicroStation;MDL
水深注記是水下地形圖中的主要元素,是水下地形測量的主要成果形式,MicroStation已在陸地測繪的內業制圖工作中被廣泛采用,為了使MicroStation在水下地形測量中得到很好的應用,我們研究了如何在MicroStation平臺下穩定高效的展繪水深注記及其他相關應用,既能符合國家標準圖式的規定,又可以兼顧數據在其他平臺中使用,本文給出了利用MicroStation 的MDL二次開發方式實現水深注記自動展繪的方法。
圖1為國家標準圖式中對水深注記的規定,依次判讀水深為15.8 m, 6.4 m,不同于一般的陸地高程注記,最大的特點在于取消了小數點,水深數據的整數和小數分別單獨表示,而不是一個單獨的文本。國家標準還規定了水深注記的定位點在整數部分的中心,整數與小數部分的字體大小和相對位置。

圖1 國家標準圖式中的水深注記
3.1MicroStation應用分析
MicroStation是目前測繪行業中被廣泛使用并深度二次開發的繪圖軟件,在陸地測繪制圖中應用非常成熟,但是在水下地形繪圖方面較為欠缺。
MicroStation主要通過鼠標對話框操作,兼容命令輸入的方式,圖形用戶界面友好,易學易用。MicroStation還提供了成熟的二次開發接口,其中MDL方式功能豐富,運行穩定,與MicroStation完美融合。因此,我們采用MDL方式進行水下地形繪圖功能的開發。
3.2水深注記設計
圖2為國家標準中規定的一般陸地高程注記,在MicroStation中每個注記可以通過單一的文本(簡單元素)來表達,而水深注記的整數部分和小數部分是相對獨立的,字體大小各不相同,但是又存在著固定的相對位置關系。

圖2 國家標準圖式中的陸地高程注記
如圖3所示,在MicroStation中可以采用兩個獨立的文本(兩個簡單元素)分別表示水深注記的整數和小數部分,但會有以下缺陷:有失整體性,容易出現誤操作使整數和小數的位置發生偏移;不易導出圖面的水深值。我們研究了很多方法,比如在整數部分中加掛水深值屬性,比如采用小數部分為標簽的方式,都不能很好地解決。因此,我們需要將獨立的整數與小數部分整合成為一體,在MicroStation我們采用單元cell(復雜元素)的方式,使用“元素描述符”進行操作。

圖3 MicroStation中水深注記
3.3水深注記自動展繪
(1)建立單元
為了保證整數部分與小數部分的相對位置及美觀,根據測區水域的水深范圍(0≤d<10、10≤d<100、100≤d<1000……)分別建立相應水深注記范圍的單元,如圖4所示,將所建立單元分別命名保存于單元庫中,以備調用。

圖4 建立水深注記單元
(2)自動展繪
測深儀自帶的數據編輯軟件可以直接導出CASS格式的數據,利用MicroStation提供的MDL開發方式設計友好的用戶界面,由用戶選擇待展繪的CASS格式的數據,由程序自動處理展繪,流程圖如圖5所示:

圖5 自動展繪流程圖
關鍵代碼如下:
①讀取數據
fscanf(FP,"%[^,],,% f,% f,% f ",ptname,&ptx,&pty, &ptz);
②判斷水深范圍并調取相應的單元
if(zsval<10)
{
mdlCell _ getElmDscrExtended ( &pCellElmdscr, NULL, NULL, &pt, &cellScale, TRUE, MASTERFILE, NULL, NULL, 0, 0, FALSE, TRUE, cellName, NULL);
}
……
③提取整數與小數并分別創建文本
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);/ /創建
mdlText _ create ( &xsElement, NULL, xs, &pt1, &txtSize1, NULL,&txtParam1,NULL);
④替換整數小數
nCellElmdscr=pCellElmdscr->h.firstElem;/ /遍歷單元內部的整數與小數分別替換
flag=0;
while(nCellElmdscr)
{
if(flag= =0)
{
mdlElmdscr_ replaceElement (&nCellElmdscr, &zsElement);flag++;
}
else
{
mdlElmdscr_replaceElement(&nCellElmdscr,&xsElement);}
nCellElmdscr=nCellElmdscr->h.next;
}
3.4應用實例
針對某海洋測繪工程開發此模塊實現水深注記的自動展繪。用戶點擊第一個按鈕選擇待展繪的文件,支持同時選擇多個文件,第二個按鈕實現具體的展繪過程,結果如圖6所示:

圖6 水深注記自動展繪界面

圖7 其他水下地形測量應用
目前大多數水下地形測繪工程都利用AutoCAD平臺進行編繪,本文討論了MicroStation平臺下水深注記的自動展繪思路及方法,尤其是對MicroStation中復雜元素的操作有著很好的借鑒意義,并在實際應用中在MicroStation平臺下開發了水下地形繪圖軟件,高效編繪出穩定、美觀的水下地形圖。
參考文獻
[1] 徐連信.C語言程序設計[M].北京:清華大學出版社, 2005.
[2] 趙建虎.現代海洋測繪[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二次開發工作。