摘" " 要:本文針對國內(nèi)各船廠在船舶建造中船體外板成型加工后的數(shù)字化形面測量尚不成熟、相關(guān)軟件如何應(yīng)用船體設(shè)繪規(guī)則沒有統(tǒng)一的規(guī)范以及影響船體外板成型測量軟硬件設(shè)備等數(shù)字化造船技術(shù)應(yīng)用推廣的問題,在調(diào)研船體設(shè)繪相關(guān)國家標(biāo)準(zhǔn)、行業(yè)規(guī)范和船廠實際需求的基礎(chǔ)上,對適合船舶外板形面測量軟件的編號規(guī)則、坐標(biāo)系、型線表示等方面進(jìn)行了研究,提出了一套適應(yīng)需求的應(yīng)用方案,報告了軟件實施的關(guān)鍵步驟和結(jié)果。相關(guān)方案已成功應(yīng)用于開發(fā)的船舶外板成型測量軟件中,并得到了船廠應(yīng)用單位的肯定。
關(guān)鍵詞:外板成型;形面測量;船體設(shè)繪;數(shù)字化測量
中圖分類號:U671.99 " " " " " " " " " " " " " " " 文獻(xiàn)標(biāo)志碼:A
Application of Hull Drawing Rules in Ship Shell
Plate Surface Measurement
WANG Yinghua1," LU Wei2," ZHAI Yayu1
( 1. China Institute of Marine Technology and Economy," Beijing 100081," China; 2. Marine Design and Research Institute of China," Shanghai 200011," China )
Abstract: This article addresses the issue that there’s yet no mature approach for digitalized measurement of formed ship hull plates at various domestic shipyards, and no clear consensus about how to apply ship hull drawing rules in plate measurement software, which affects the promotion of digital shipbuilding technologies relating to digital hull plate measuring equipment. Based on the investigation of national standards, industry norms in ship hull design, and shipyard needs, research has been conducted on the numbering rules, coordinate systems, and profile representation suitable for hull plate measurement software. A set of application solutions that meet the requirements has been proposed, and the key steps and results of software implementation have been reported. The relevant solutions have been successfully applied in developed hull plate measurement software and recognized by shipyards in which the software has been tested.
Key words: hull plate forming;" surface measurement;" hull drawing;" digital measurement
1" " "引言
船體外板是基于流體力學(xué)、結(jié)構(gòu)力學(xué)設(shè)計等工程技術(shù)設(shè)計的三維曲面,一般用一定厚度的鋼板加工而成。外板的成型加工精度決定了整船的設(shè)計性能。外板形面測量是檢驗外板加工精度、提高船舶建造水平的重要手段。使用數(shù)字化外板形面測量設(shè)備開展外板形面測量,具有測量精度高、速度快、可代替或減少樣板或樣箱等突出優(yōu)點,得到了船舶科研和生產(chǎn)單位的重視和研究應(yīng)用。在數(shù)字化外板形面測量中,如何將船體設(shè)計部門設(shè)計的外板模型數(shù)據(jù)庫與實際測量的外板形面匹配并用于現(xiàn)場工人的外板加工作業(yè)、質(zhì)檢人員的加工精度檢查是一個重要的問題。
數(shù)字化外板形面測量所使用的坐標(biāo)系統(tǒng)、編號方式、顯示方式等,既要做到符合船舶設(shè)計部門和外板加工部門的相關(guān)規(guī)范和習(xí)慣,也要結(jié)合相關(guān)的國家標(biāo)準(zhǔn)、船級社技術(shù)指南和相關(guān)團(tuán)體標(biāo)準(zhǔn)等。目前,與船體設(shè)繪規(guī)則相關(guān)的國家標(biāo)準(zhǔn)主要有《GB/T 23297-2009 造船 船體型線 幾何數(shù)據(jù)的標(biāo)識》[1]等。GB/T 23297-2009只規(guī)定了船體制圖時的坐標(biāo)系統(tǒng)和單位,對計算機(jī)軟件中三維模型的呈現(xiàn)沒有提及。中國船級社的《船舶數(shù)字化檢驗數(shù)據(jù)交換技術(shù)指南》則建議了船舶絕對位置和通用位置的代碼[2],但其規(guī)定的數(shù)據(jù)格式用船體設(shè)計軟件導(dǎo)出外板控制點時很難自動生成,需要二次開發(fā)。由中國造船工程學(xué)會編制的團(tuán)體標(biāo)準(zhǔn)《海工船船體生產(chǎn)設(shè)計圖紙設(shè)繪規(guī)則》對船體組立視圖、零件代碼等進(jìn)行了較詳細(xì)的規(guī)定[3],但該標(biāo)準(zhǔn)只規(guī)定了海洋工程船及結(jié)構(gòu)平臺船體生產(chǎn)設(shè)計圖紙的設(shè)繪規(guī)則,不具有廣泛的代表性和約束力。因此,綜合來看,目前沒有統(tǒng)一、規(guī)范的應(yīng)用于數(shù)字化外板形面測量的船體設(shè)繪規(guī)則。
本文開發(fā)了一套船舶外板成型測量軟件,能夠?qū)庸こ尚偷耐獍暹M(jìn)行數(shù)字化測量,形成外板的三維點云圖像,并將外板形面與船體設(shè)計部門提供的外板數(shù)字模型(即外板加工數(shù)據(jù)庫)匹配對比,對成型誤差進(jìn)行直觀的顯示。在軟件開發(fā)過程中,針對應(yīng)用于數(shù)字化外板形面測量的船體設(shè)繪規(guī)則不統(tǒng)一、不規(guī)范的問題,本文綜合應(yīng)用了相關(guān)國家標(biāo)準(zhǔn)、行業(yè)規(guī)范和船廠實際需求,從編號規(guī)則、坐標(biāo)系、型線表示等方面,研發(fā)了一套適合數(shù)字化船舶外板形面測量的應(yīng)用程序。
2" " "編號規(guī)則
2.1" "船的編號規(guī)則
根據(jù)中國船級社在《船舶數(shù)字化檢驗數(shù)據(jù)交換技術(shù)指南》中的規(guī)定,通常船舶ID宜使用IMO編號(國際航行船舶)或船舶統(tǒng)一識別號CMSA ID(中國籍船舶)。但此規(guī)定適用于已交付船東的船舶,對于在建船舶,各船廠通常有自己的船號編號規(guī)則。如:江南造船的船舶代號格式為####,廣船國際的船舶代號格式為G####,滬東中華和外高橋的船舶代號格式為H####,中遠(yuǎn)海運重工的船舶代號格式為N####等。#為遞增的數(shù)字代號。在外板加工環(huán)節(jié)中,船廠均使用的是內(nèi)部的船號。本軟件僅應(yīng)用于船體加工流程??紤]到船廠加工環(huán)節(jié)的實際需求,本文采用船廠設(shè)計生產(chǎn)加工中使用的內(nèi)部船號。
2.2" "外板的編號規(guī)則
外板構(gòu)成船體底部、舭部及舷側(cè)的外殼,它由許多塊鋼板拼合焊接而成。因為船體沿肋骨圍長的曲率變化較大,特別是必須滿足船用鋼板的力學(xué)屬性,通常要求鋼板的長邊沿船長方向布置,以利于加工成型。外板編號一般由分段號、舷側(cè)號、列板號與鋼板序號組成。
分段號的編號規(guī)則視船廠而定。一般的慣例是由字母+序號組成,字母代表船體部位,如M(機(jī)艙)、A(艉部)、B(底部)、F(艏部)等;也可以是純序號。序號一般從船艉排起。舷側(cè)號分為左舷(Port)和右舷(Star board),一般標(biāo)示為P和S;平板龍骨標(biāo)示為(K)。列板號中,從平板龍骨(K)開始相鄰列板為A行板,再次的列板為B行板,以此類推,直至舷頂列板為S行板,但I(xiàn)、O、Q不用于列板號;列板號從船尾排起。鋼板序號表示同列板中各張板由尾向首排列的序號。
本文依據(jù)船廠加工環(huán)節(jié)的實際需求,外板編號遵循船廠的分段和外板編號規(guī)則。
2.3" "編號的解析和表示
外板的編號通過船廠船體設(shè)計軟件導(dǎo)出的文件名中提取。文件名的命名規(guī)則為“船號-分段號-板號”。如某外板的導(dǎo)出模型文件名為G 2129-A 011-S34Y.txt,則解析的船號為G 2129,分段號為A 011,外板號為S 34 Y。本文依據(jù)船廠的使用習(xí)慣和檢索的需要,采用船號-分段號-板號的三級樹狀目錄方式顯示解析的所有外板,如圖1所示。
外板解析后,以JSON格式保存在配置文件中,以便后續(xù)加載和檢索。該文件中也保存了鋼板型號、外板長度、外板舷側(cè)(左舷或右舷)、鋼板厚度等信息,如圖 2所示。
3" " "坐標(biāo)系與顯示
3.1" "外板坐標(biāo)
外板在通過船體設(shè)計軟件導(dǎo)出時使用船體坐標(biāo)。按照國家標(biāo)準(zhǔn)《GB/T 23 297-2009 造船 船體型線幾何數(shù)據(jù)的標(biāo)識》的規(guī)定,無論是對于民船還是軍船,幾何圖形系統(tǒng)采用右手直角坐標(biāo)系,坐標(biāo)系的原點通常定在基線與船艉的艉垂線交點處,X軸向艏為正,Y軸向左舷為正,Z軸向上為正。坐標(biāo)值的單位使用mm。
在船舶外板成型測量軟件中,外板模型及待測外板的形面數(shù)據(jù)均使用開源的PCL(Point Cloud Library)[4]控件進(jìn)行顯示和交互。PCL庫的可視化部分使用了VTK(Visualization Toolkit)庫[5],并提供了大量對三維點云進(jìn)行數(shù)據(jù)濾波、特征提取、配準(zhǔn)、識別和分類等方面的算法。而VTK專注于可視化領(lǐng)域,提供了大量的渲染、交互和用戶界面組件。PCL/VTK所使用的也是右手坐標(biāo)系,默認(rèn)情況下x軸指向屏幕的右側(cè)、y軸指向屏幕的上方、z軸指向屏幕內(nèi)部。PCL/VTK的坐標(biāo)是無量綱的數(shù)值,軟件中直接使用模型、測量的以mm為單位的坐標(biāo)值來渲染。
3.2" "外板的顯示
VTK顯示時使用vtk Render Window提供的窗口來顯示渲染后的三維場景。外板模型、點云等幾何數(shù)據(jù)加載后作為渲染場景的對象(vtkActor),添加到對應(yīng)的vtkRenderer中轉(zhuǎn)換為可視化的對象,并根據(jù)光照、材質(zhì)、陰影等屬性進(jìn)行渲染。另外,VTK中使用vtkCamera來定義觀察角度,使用vtkInteractorStyle來定義交互方式。通過vtkCamera的SetPosition(x,y,z)、SetFocalPoint(x,y,z)、SetViewUp(x,y,z)等方法,可以調(diào)整“相機(jī)”的角度、焦點、“上”向量等,實現(xiàn)對渲染圖像視角、大小、方向等參數(shù)的調(diào)整。通過PCL的setupInteractor()方法,可以將用戶界面的鼠標(biāo)、鍵盤事件與VTK交互關(guān)聯(lián)起來,實現(xiàn)場景的旋轉(zhuǎn)、平移、縮放等操作。
船廠使用船體設(shè)計軟件導(dǎo)出的外板模型文件只包含了關(guān)鍵控制線(外板輪廓線、肋線、外板表面等分網(wǎng)格線等)上的若干個控制點的坐標(biāo)。在船舶外板成型測量軟件中,將模型文件的控制點按行列讀入PCL的點云pcl::PointCloudlt;pcl::PointXYZgt;進(jìn)行顯示。外板輪廓線使用VTK的vtkParametricSpline()函數(shù)生成樣條曲線并顯示。讀取模型文件并顯示在三維場景中的流程如圖3所示。
1)首先,軟件讀取模型文件并對文件中包含的控制點信息、外板屬性信息等進(jìn)行解析,將ASCII格式的控制點xyz坐標(biāo)解析為double型的數(shù)值。此過程出現(xiàn)任何錯誤則提示并中止導(dǎo)入過程。
2)導(dǎo)入成功后,軟件先調(diào)用removeAllPointClouds()和removeAllShapes()函數(shù)及移除之前用于顯示輪廓線的vtkActor對象。
3)接著,軟件使用解析后的模型控制點坐標(biāo)創(chuàng)建模型點云。點云的行數(shù)和列數(shù)由模型解析結(jié)果得出。
4)然后,使用模型輪廓上的控制點調(diào)用vtk的vtkParametricSpline()函數(shù)生成輪廓線并建立相應(yīng)的vtkActor負(fù)責(zé)渲染。此時需要將vtkActor的對象指針保存起來,以備后續(xù)清除輪廓線。
5)對于外板的渲染來說,外板的原始坐標(biāo)相對三維空間視圖原點往往過遠(yuǎn),因此必須將相機(jī)位置平移到外板附近,方便進(jìn)行旋轉(zhuǎn)、縮放等查看操作。在點云對象和輪廓線對象創(chuàng)建后,本文使用PCL的resetCamera()函數(shù)重新計算場景中所有可見Actor對象的包圍盒,根據(jù)計算出的包圍盒的中心點和半徑計算出適當(dāng)?shù)南鄼C(jī)設(shè)置,調(diào)整相機(jī)的方向和焦距,使所有物體都能顯示在視野中。
6)最后,根據(jù)新的相機(jī)設(shè)置更新渲染和刷新視圖。
渲染后的外板模型如下圖所示。
使用VTK默認(rèn)的resetCamera()函數(shù)雖然可以自適應(yīng)的顯示場景中的所有對象,但視角在每次更新后是不固定的,不利于表達(dá)外板的真實形狀。因此,本文中借鑒工程制圖中的正投影概念,設(shè)計了將視角切換為正視圖(y軸向屏幕內(nèi),z軸向上、x軸向右)、俯視圖(z軸向屏幕內(nèi),y軸向上,x軸向右)、左視圖(x軸向屏幕內(nèi),z軸向上,y軸向右)的算法。其主要步驟如下:
1)首先,使用PCL工具箱中pcl::visualization::PCLVisualizer的getCameras ()函數(shù)獲取相機(jī)對象cam;
2)從相機(jī)cam中獲取當(dāng)前相機(jī)位置cam.pos[3]和焦點對象cam.focal[3]。cam.pos[3]數(shù)組包含了當(dāng)前相機(jī)的xyz坐標(biāo);cam.focal[3]數(shù)組包含當(dāng)前視場中心的xyz坐標(biāo);
3)根據(jù)要切換的視圖,使用pcl::visualization::PCLVisualizer的setCameraPosition()函數(shù)更改相機(jī)位置。
(1)若改為正視圖,令x軸cam.pos[0]=cam.focal[0],z軸cam.pos[2]=cam.focal[2],cam.view[2]=1。cam.view[2]=1決定了z方位向上。而y軸方向相機(jī)距離焦點的偏移由場景中所有可見Actor對象的包圍盒在y方向上的寬度dy和視場角θfov確定。相機(jī)位置的y坐標(biāo)ypos根據(jù)下式計算:
(1)
式中:yfocal為相機(jī)焦點的y坐標(biāo);dgap為使對象顯示時不緊貼視場邊緣而預(yù)留的裕度;VTK中默認(rèn)視場角θfov=30°。
(2)若改為俯視圖,令x軸cam.pos[0]=cam.focal[0],y軸cam.pos[1]=cam.focal[1],cam.view[1]=1。cam.view[1]=1決定了y方位向上。與a類似,相機(jī)位置的z坐標(biāo)zpos根據(jù)下式計算:
(2)
式中:zfocal為相機(jī)焦點的z坐標(biāo);dz為場景中所有可見Actor對象的包圍盒在z方向上的寬度;dgap為使對象顯示時不緊貼視場邊緣而預(yù)留的裕度。
(3)若改為左視圖,令y軸cam.pos[1]=cam.focal[1],z軸cam.pos[2]=cam.focal[2],cam.view[2]=1。cam.view[2]=1決定了z方位向上。與a類似,相機(jī)位置的x坐標(biāo)xpos根據(jù)下式計算:
(3)
式中:xfocal為相機(jī)焦點的x坐標(biāo);dx為場景中所有可見Actor對象的包圍盒在x方向上的寬度;dgap為使對象顯示時不緊貼視場邊緣而預(yù)留的裕度。
4" " "型線的標(biāo)示
船舶外板的型線包括肋骨型線、高度/水平檢驗線和縱橫接縫線等。在外板加工過程中,常通過檢查各型線的曲度判斷外板的成型程度。這樣不僅能滿足外板加工成型精度要求,也可保證后續(xù)船板和肋骨焊裝精度[6]。在船舶外板成型測量軟件中,需要對肋骨型線和接縫線予以標(biāo)示,并給出相應(yīng)型線上控制點的加工型值。本文中使用VTK提供的Viewports來將模型點云、型線標(biāo)示劃分到不同的“圖層”來顯示,以便分別添加/清除對象和控制對象的屬性。
4.1" "肋骨型線的標(biāo)示
肋骨型線編號以舵桿中心線為基準(zhǔn),向船首方向為正,船尾方向為負(fù)。肋骨型線標(biāo)注一般根據(jù)國家標(biāo)準(zhǔn)《金屬船體制圖 第2部分:圖形符號》[7]的規(guī)定,用FR##表示,##為肋位編號。本文中使用PCL工具箱中pcl::visualization::PCLVisualizer的addText3D()函數(shù)向場景中添加肋骨型線編號的標(biāo)示。添加的肋骨型線標(biāo)示如圖5所示。為避免與角點標(biāo)示文字的沖突,軟件中將肋骨型線編號顯示在肋骨型線的第2個控制點附近。
4.2" "外板接縫型線的標(biāo)示
鋼板橫向的接縫稱為端接縫,縱向的接縫稱為邊接縫。在外板成型加工時,工人需要知道外板各條板縫(即邊、端縫)的位置。在加工現(xiàn)場,一般會在外板朝向船艏的端縫處標(biāo)注FWD,而上邊縫標(biāo)注為TOP。而船廠通過CAD軟件導(dǎo)出的模型文件中,一般由艉端縫的控制線開始、z軸由上到下的給出控制點。軟件中使用VTK提供的參數(shù)樣條曲線功能來從外板接縫線的控制點生成接縫曲線。生成接縫曲線的步驟如下:
1)首先,加載外板模型,并提取輪廓上每條邊上的控制點;
2)對于每一條邊,生成一個vtkParametricSpline類的對象spline負(fù)責(zé)根據(jù)控制點生成參數(shù)化函數(shù),并通過vtkParametricSpline的SetPoints()方法將邊上的控制點添加到spline對象中;
3)新建一個vtkParametricFunctionSource類的對象functionSource負(fù)責(zé)利用參數(shù)化函數(shù)生成渲染線的數(shù)據(jù)集,并通過vtkParametricFunctionSource的SetParametricFunction()方法將spline作為生成曲線的參數(shù)化函數(shù)。并調(diào)用Update()方法生成根據(jù)spline參數(shù)函數(shù)生成輸出數(shù)據(jù)集;
4)新建一個vtkPolyDataMapper類的對象mapper負(fù)責(zé)圖形數(shù)據(jù)到圖形渲染繪制的映射,并通過vtkPolyDataMapper的SetInputConnection()方法關(guān)聯(lián)functionSource生成的數(shù)據(jù)集;
5)新建一個vtkActor類的對象actor負(fù)責(zé)最終渲染和交互,并通過vtkActor的SetMapper()方法為actor指定需要渲染的線;
6)通過actor的GetProperty()-gt;SetColor()方法設(shè)置線的顏色,通過GetProperty()-gt;SetLineWidth()方法設(shè)置線寬。
軟件中,為了便于識別艏艉方向,將第一條控制線即朝向船艉的端縫以高亮的黃色表示。渲染后的外板接縫型線如圖6所示。
5" " 結(jié)語
本文闡述了船舶外板成型測量軟件的開發(fā)應(yīng)用,結(jié)合國內(nèi)與船體設(shè)計設(shè)繪相關(guān)的標(biāo)準(zhǔn)規(guī)范與船廠外板設(shè)計、加工實際需求,對軟件中的外板編號規(guī)則、坐標(biāo)系與顯示、型線標(biāo)示等方面如何應(yīng)用船體設(shè)計設(shè)繪規(guī)則進(jìn)行了研究,并提出了軟件上的相應(yīng)實施方法。此方法已應(yīng)用于國內(nèi)兩家大型船廠的外板成形加工生產(chǎn)線上,得到了實船應(yīng)用驗證。該軟件對船體設(shè)繪規(guī)則的應(yīng)用得到了船廠設(shè)計建造部門的肯定。本項目將有助于推動數(shù)字化的船舶外板成型測量在船舶外板加工測量中的普及應(yīng)用,為船體設(shè)計建造流程一體化提供了外板成型檢測工藝環(huán)節(jié)的設(shè)計思路。
參考文獻(xiàn)
[1] 造船 船體型線幾何數(shù)據(jù)的標(biāo)識:GB/T 23 297-2009[S].北京:中國國家標(biāo)準(zhǔn)出版社, 2009.
[2] 船舶數(shù)字化檢驗數(shù)據(jù)交換技術(shù)指南[S].北京:中國船級社, 2023.
[3]中國造船工程學(xué)會.海工船船體生產(chǎn)設(shè)計圖紙設(shè)繪規(guī)則[S].北京:中國造船工程學(xué)會, 2021.
[4] RUSU R B, COUSINS S. 3d is here: Point cloud library ( pcl ) [C] // 2011 IEEE"international conference on robotics and automation. IEEE, 2011: 1-4.
[5]SCHROEDER W, MARTIN K, LORENSEN B. The Visualization Toolkit (4 th"ed.) [M]. Kitware, 2006.
[6]傅曉斌,金穎,朱元超.基于單目線結(jié)構(gòu)光的船板型線便攜式檢測系統(tǒng)[J].船舶工程, 2021, 43(10): 128-132, 143.
[7] 金屬船體制圖:GB/T 4 476. 2-2008 [S].北京:中國國家標(biāo)準(zhǔn)出版社,"2008.