朱曉軍,王 鵬,彭 飛
(海軍工程大學 艦船工程系,武漢430033)
船體三維外形設計是船舶總體設計中的一個重要組成部分。現有的船體形狀的基本圖形表示方法是型線圖,該方法可以在二維圖紙上直觀地展現船體的幾何尺度和形狀,是船舶靜力學中計算船體形狀各項參數和靜水力性能的重要依據[1-3]。但是在總體設計階段船體外形需要經常修改,在設計階段結束時必須為船廠提供用于指導建造船體外殼的船體型線圖,因此如何快速準確地確定船體三維外形同時獲得更加準確的船體型線圖以及型值表是一個必須解決的問題。
CATIA軟件最早應用于飛機制造領域[4],其功能覆蓋了曲面、線框、實體、加工、機構分析和機器人操作規劃等方面,目前船舶制造領域已經開始使用該軟件[5-6]。該軟件強大的曲面生成的功能,及具有多種二次開發的接口[7],使得其具有良好的人機交互界面,可以提高船舶設計過程的效率和質量。本文研究利用CATIA軟件及其基于自動化應用接口宏命令的二次開發技術實現船體外形的建模方法,同時提出經過改進的船體外形型線圖方案,對于船舶設計以及建造過程具有一定的借鑒作用。
在CATIA建模方法中利用型值表得到各個剖面上各點的三維坐標的基本原則如下:站號代表各點的x坐標,水線、甲板邊線、外板頂線、舷墻頂線代表各點的z坐標,其與橫剖線交點的半寬值代表各點的y坐標。根據型值表得到控制點的坐標之后,需要通過利用CATIA宏命令將其導入到建模空間中并對異常點進行處理。
利用編寫的CATIA宏命令調用以EXCEL文件形式存儲的型值表主要通過以下步驟完成。
1.1.1 創建CATIA建模空間
創建宏腳本文件,并加入宏腳本的入口點“CATMain”:
Language=“VBSCRIPT”
Sub CATMain
創建新零件,命名為“chuanti”:
Set documents1=CATIA.Documents
Set partDocument1=documents1.Add("Part")
Set partDocument1=documents1.Item("chuanti.CATPart")
這段腳本通過向“Documents”集合添加“Part”類型的文檔對象新建了一個零件文件"chuanti.CATPart"
1.1.2 CATIA與EXCEL的連接
Set chuanti=partDocument1.Part
set excel=getobject("E:〔**wigley.xls")
其中“E:〔**wigley.xls”代表EXCEL文件存儲的路徑。
1.1.3 EXCEL型值轉換為控制點三維坐標
for j=p to m
for i=1 to n
t=chr(j)
x=△L*(i-1)
y=△H*(j-p)
z=excel.worksheets(1).cells.range(t&trim(cstr(i))).value
其中變量的取值范圍是根據型值表存儲在EXCEL文件worksheet中的位置確定的,需導入點型值所在列字母對應的ASCⅡ碼值來確定的。如上述宏命令中,j為worksheet中型值所在列字母對應的ASCⅡ碼值;i為型值表的行數,一般等于站數;△L為站距;△H為水線間距。對于型值表中的甲板邊線、龍骨線、縱剖線等,由于型值表記錄數據的特點需要單獨導入,以縱剖舷為例,需要通過以下宏命令進行導入操作。
for i=1 to n
x=△L*(i-1)
y=excel.worksheets(1).cells.range("D"&trim(cstr(i))).value
z=excel.worksheets(1).cells.range("D"&trim(cstr(i))).value
在通過使用以上語句調入與船體型值表對應的外形控制點的過程中,根據CATIA特點,對于無具體型值的點,初始化為0,這就使得導入到建模空間中的點存在異常點,可以手動將這些點刪除,以便于船體外形樣條曲線的生成,以某2 200 t貨船為例,最終得到的空間點云見圖1。

圖1 船體外形空間點云圖
船體型線圖主要由船體的縱剖線圖、橫剖線圖以及半寬水線圖組成,對應的型值表中提供了橫剖線與水線、甲板邊線、外板頂線、舷墻頂線交點的半寬值及橫剖線與縱剖線、甲板邊線、外板頂線、舷墻頂線交點的高度值,這些信息通過以上的處理已經獲得了船體外形的基本的三維控制點,下面主要介紹如何用這些基本點獲得控制船體外形的樣條曲線。
控制船體外形的基本的樣條曲線主要包括橫剖線、縱剖線、水線、站線、甲板邊線等,利用CATIA宏命令進行繪制時的基本語句是相同的。以站線的獲取為例,介紹樣條曲線的自動生成功能。
2.1.1 宏命令循環生成一條樣條曲線
1)選定樣條曲線生成后的存儲空間。
Set bodies1=part1.Bodies
Set body1=bodies1.Item("零部件幾何體")
Set hybridShapes1=body1.HybridShapes
讀取樣條曲線的各個控制點的位置信息:
Set hybridShapePointCoord1=hybridShapes1.Item(i)
2)設定生成的樣條曲線的參考平面以及參考點(A,B,C)。
Set reference1=part1.CreateReferenceFromObject
(hybridShapePointCoord1)
hybridShapeSpline1.AddPointWithConstraintExplicit reference1,Nothing,A,B,Nothing,C
2.1.2 創建所有站線的樣條曲線
在得到一條站線樣條曲線的基礎上,利用宏命令中的for-next循環完成多條樣條曲線的生成,添加新的油條曲線的命令語句如下。
Set hybridShapeFactory1=part1.HybridShapeFactory
Set hybridShapeSpline1=
hybridShapeFactory1.AddNewSpline()
hybridShapeSpline1.SetSplineType hybridShapeSpline1.SetClosing
每循環一次刷新得到新的樣條曲線:
body1.InsertHybridShape hybridShapeSpline1
part1.InWorkObject=hybridShapeSpline1
part1.Update
通過以上程序獲得最初的船體外形控制曲線,生成的曲線難免會出現一些不合理的地方,例如曲線端點處的切線方向不對、兩曲線結合處的光順問題等,這些不能通過調用宏命令對其進行修飾,需要通過手動操作對其進行調整,主要使用的操作是定義樣條曲線端點處的切線方向或者在曲線結合處使用“圓-圓錐”等命令進行修飾,最終得到的船體外形樣條曲線見圖2。

圖2 船體外形樣條曲線
由于型值表提供的數據比較少,得到的船體外形控制曲線不多,再加上船體某些部位主要是艏部和艉部的外形比較復雜,存在雙向曲度板,為了獲得較為光順的船體外形,根據現有的樣條曲線,在艏部和艉部添加必要的樣條曲線。基本方法為在需要添加樣條曲線的部位設定參考平面(站線或者水線方向),利用該平面與水線或者站線的交點為控制點連接成樣條曲線。
船體外表面大部分是通過使用“網狀曲面”命令進行繪制,該命令需要選擇的輪廓線與輪廓線、引導線與引導線不能相交。為滿足該命令的要求,需要對某些樣條曲線進行“分割”或者“拼接”,無論是使用“分割”還是“拼接”命令,都不會改變原有樣條曲線的曲率,不會影響其光順性。
通過使用“網狀曲面”或者“填充曲面”等命令,初步得到船體外形,但為了保證船體外形的光順性,避免船體外形上存在“凹凸點”,需要利用圓角工具欄中的相關命令例如“可變圓角”、“三線內切圓角”等對面與面的交接處進行修飾,得到最終的船體外形見圖3。

圖3 船體外形
通過以上步驟得到船體的三維外形,在整個過程中為了保證樣條曲線以及船體外表面的光順性,對三維控制點、樣條曲線以及生成的外形曲面都進行了修飾,從而使得原有的船體外形型值發生了變化,改變CATIA建模空間的視角,可以顯示更新過的船體型線圖,見圖4。同時也可以利用該軟件的“測量”功能得到各個控制點的坐標,從而得到更新過的船體型值表。

圖4 船體外形更新過的型線圖
經過上述步驟的處理,最終得到了該貨船光順的船體外形,并且得到了修改的船體型線圖。今后的工作還要完善以下方面的工作。
1)將修改的船體型線圖轉換為可供靜水力計算使用的型值表;
2)在利用CATIA軟件得到船體三維模型的過程中,盡可能少地減少人為的操作因素,提高其自動化程度。
[1]盛振邦,劉應中.船舶原理[M].上海:上海交通大學出版社,2003.
[2]朱 軍,王曉俠,查友其.樣條函數在船舶靜力計算中的應用[J].船舶工程,2000(3):16-18.
[3]趙成璧,鄒早建.基于NURBS的船舶型線設計程序EHULL[J].武漢造船,2001(1):28-31.
[4]謝岳峰,余雄慶.基于CATIA二次開發的飛機外形參數化設計[J].計算機工程與設計,2008,29(17):3792-3794.
[5]徐俊路,陳順懷.基于CATIA二次開發的球首參數化設計[J].船海工程,2010,39(1):45-47.
[6]彭 輝.船體三維建模應用技術研究[D].哈爾濱:哈爾濱工程大學,2008.
[7]胡 挺,吳立軍.CATIA二次開發技術基礎[M].北京:電子工業出版社,2006.