程哲,邱雨,周桐,楊中源
(中國船舶及海洋工程設(shè)計(jì)研究院,上海 200011)
未來三維模型將成為主要的船舶設(shè)計(jì)信息載體,在設(shè)計(jì)、審核、協(xié)同等工作中逐漸替代傳統(tǒng)的二維圖紙。但目前受限于技術(shù)瓶頸,二維設(shè)計(jì)仍是主要的船舶設(shè)計(jì)手段,設(shè)計(jì)人員需同時(shí)承擔(dān)三維建模及二維繪圖任務(wù),這無疑大大增加了的工作量,不利于三維設(shè)計(jì)的發(fā)展和推廣。于是,利用三維模型生成二維圖紙的出圖需求應(yīng)運(yùn)而生。目前國內(nèi)多數(shù)船舶總體所和總裝廠正以CATIA V6作為主要的三維設(shè)計(jì)、制造及管理平臺,同時(shí)開展多專業(yè)研究工作并通過開發(fā)手段對平臺功能進(jìn)行優(yōu)化與完善。SFD(structure function design)模型是CATIA V6中船體結(jié)構(gòu)模型的一種主要形式,模型中各類結(jié)構(gòu)件均以面片或線條的形式表達(dá),具有模型簡化、參數(shù)化、輕量化的特點(diǎn)。船體結(jié)構(gòu)圖樣是船體圖樣的重要組成部分,包含基本結(jié)構(gòu)圖、典型橫剖面圖、分段結(jié)構(gòu)圖等,圖樣中表達(dá)的構(gòu)件種類繁多、層次交疊。為了表達(dá)清晰,在小比例(如1∶50等)的船體結(jié)構(gòu)圖樣中,常采用簡化畫法表達(dá)結(jié)構(gòu)件的剖面、輪廓、軌跡等,以SFD模型作為出圖的研究對象符合其簡化表達(dá)。設(shè)計(jì)人員通過對船體結(jié)構(gòu)三維建模,使設(shè)計(jì)過程可視、可靠、優(yōu)化;使用模型進(jìn)行結(jié)構(gòu)出圖,可保證結(jié)構(gòu)圖樣的同源性,減少繪圖工作量的同時(shí)又可提升圖紙質(zhì)量。為使SFD模型的結(jié)構(gòu)出圖結(jié)果滿足船體結(jié)構(gòu)制圖的要求,考慮以CATIA原生投影出圖功能為基礎(chǔ),結(jié)合考慮船體結(jié)構(gòu)圖樣的特殊性,提出適用于多類型圖樣的多模式結(jié)構(gòu)出圖方法,并基于CATIA適用的CAA(component application architecture)和EKL(engineering knowledge language)二次開發(fā)技術(shù)開發(fā)相應(yīng)的出圖程序,實(shí)現(xiàn)出圖流程的半自動(dòng)化。
船體結(jié)構(gòu)SFD模型出圖的基本流程分為4個(gè)階段,見圖1。其中模型剖切階段和圖紙生成階段是出圖流程的核心部分。
圖1 結(jié)構(gòu)出圖基本流程
模型預(yù)處理階段中,在保證模型質(zhì)量前提下,需要對SFD模型進(jìn)行修改使其符合出圖程序的要求,主要是針對模型中構(gòu)件種類(Category)和附加屬性的修改,其中部分修改可由程序完成。出圖節(jié)點(diǎn)由程序調(diào)用后臺知識工程模板資源創(chuàng)建,包含總根節(jié)點(diǎn)、圖紙節(jié)點(diǎn)、剖面控制節(jié)點(diǎn)和結(jié)構(gòu)模型節(jié)點(diǎn),典型的出圖節(jié)點(diǎn)結(jié)構(gòu)樹見圖2。
圖2 典型出圖節(jié)點(diǎn)結(jié)構(gòu)樹
模型剖切階段中,由用戶指定出圖剖面并存放于剖面控制節(jié)點(diǎn)中,并對出圖相關(guān)參數(shù)進(jìn)行設(shè)置。由出圖程序?qū)FD模型中的結(jié)構(gòu)件進(jìn)行篩選與幾何處理(包括求交、投影、平移、掃掠、提取等),生成三維線框,同時(shí)對線框中的三維線條(點(diǎn))附加必要的屬性供程序后續(xù)讀取識別。
圖紙生成階段,由出圖程序調(diào)用CATIA原生投影出圖方法將上一階段的三維線框投影為圖紙節(jié)點(diǎn)中的二維線條;并通過二維線條與三維線條間的鏈接關(guān)系,在二維環(huán)境中讀取三維線框?qū)傩耘c模型結(jié)構(gòu)件信息,同時(shí)調(diào)用后臺EKL程序和配置表格資源,對二維線條的線型、顏色和圖層進(jìn)行刷新,并進(jìn)行可實(shí)現(xiàn)的信息自動(dòng)標(biāo)注。
圖紙后處理階段,用戶需要使用手動(dòng)標(biāo)注程序?qū)]有自動(dòng)標(biāo)注的部分信息進(jìn)行補(bǔ)充,同時(shí)需要對圖面整體進(jìn)行處理,如標(biāo)注信息位置的調(diào)節(jié)、線條的刪減等。
當(dāng)上述所有步驟完成后,將圖紙節(jié)點(diǎn)導(dǎo)出為DWG格式文件,在AutoCAD中完成后續(xù)工作。
SFD模型中,出圖涉及的各類型結(jié)構(gòu)件在模型結(jié)構(gòu)樹上的層級關(guān)系見圖3。
圖3 SFD模型結(jié)構(gòu)樹層級關(guān)系示意
模型中Panel(板架)無實(shí)際幾何特征,其作用類似于幾何圖形集,用于收納除Member類型外的結(jié)構(gòu)件并存儲(chǔ)部分結(jié)構(gòu)信息。
在不同視向的船體結(jié)構(gòu)圖樣中,結(jié)構(gòu)件中基本可分為輪廓線與剖面線兩種表現(xiàn)形式,圖3中各類型典型結(jié)構(gòu)件及對應(yīng)的圖面表達(dá)要求見表1。
表1 典型結(jié)構(gòu)件及其圖面表達(dá)要求
以橫艙壁圖為例,圖樣中表示該橫艙壁上骨材(或強(qiáng)構(gòu)件)的線條為軌跡線,將其視為剖面線的一種。開孔的剖面線為2個(gè)點(diǎn),將其作為蝴蝶形開孔剖面符號的定位,最終形式見表1。
SFD模型中同類型的結(jié)構(gòu)件,當(dāng)其位置、朝向或?qū)傩圆煌瑫r(shí),在結(jié)構(gòu)圖樣中線條的表達(dá)要求就可能不同。因此出圖模型的部分類型結(jié)構(gòu)件必須進(jìn)一步劃分種類(Category)才能滿足出圖程序的識別要求,板材(板架)和骨材的種類劃分建議見圖4,除可選劃分種類和可自動(dòng)劃分種類外,其余的種類都應(yīng)在建模過程中進(jìn)行劃分。
圖4 板材/骨材種類建議劃分方法
在建模時(shí)強(qiáng)框架若選用圖4中的可選劃分種類,出圖程序就能準(zhǔn)確地識別與處理;若僅選擇至上一級種類,程序則會(huì)通過預(yù)設(shè)判斷規(guī)則處理,但準(zhǔn)確性會(huì)降低??勺詣?dòng)劃分種類表示在建模時(shí)可不進(jìn)行劃分,只需要選擇其上一級種類;在模型預(yù)處理階段,可由程序自動(dòng)完成劃分工作。除板材(板架)和骨材外,Member類型僅要求劃分Pillar(支柱)種類,圖3中其余類型的結(jié)構(gòu)件均無種類劃分要求。
出圖程序不僅適用于按上述構(gòu)件種類劃分(命名)方法建模的模型,若實(shí)際SFD模型中涉及出圖需求的結(jié)構(gòu)件種類能且僅能與一個(gè)上述種類對應(yīng),在程序的預(yù)定義類中對種類屬性的映射關(guān)系進(jìn)行配置后即能正常出圖。
除對SFD模型本身的要求,出圖程序還對CATIA項(xiàng)目協(xié)作區(qū)的后臺資源配置有要求,各項(xiàng)資源與出圖CAA程序的關(guān)系見圖5。
圖5 出圖后臺配置資源的使用
各項(xiàng)資源的具體配置情況可在不同協(xié)作區(qū)中根據(jù)實(shí)際需求隨時(shí)進(jìn)行變更。結(jié)構(gòu)分段信息表用于儲(chǔ)存施工設(shè)計(jì)階段船體結(jié)構(gòu)的施工分段信息,僅在分段結(jié)構(gòu)圖出圖時(shí)生效,可缺省。
船體結(jié)構(gòu)形式多樣且復(fù)雜,綜合考慮各種不同的結(jié)構(gòu)圖樣種類、視向、表達(dá)方法等,出圖需求不同,需要依靠多模式結(jié)構(gòu)出圖方法滿足這些差異性需求。多模式主要體現(xiàn)在剖切模式、景深值、圖樣比例、投影主視向、投影模式和自動(dòng)標(biāo)注等方面。體現(xiàn)到出圖程序中,以上模式均以選項(xiàng)或參數(shù)的形式開放,供用戶根據(jù)具體的出圖場景隨時(shí)修改。
結(jié)合CAA和EKL二次開發(fā)技術(shù)完成出圖程序開發(fā)。EKL內(nèi)置于CATIA中,是知識工程功能實(shí)現(xiàn)的重要載體,具有編輯簡便、使用廣泛的特點(diǎn);考慮到圖樣中標(biāo)注的內(nèi)容、樣式的多樣性和不確定性,使用EKL語言編寫標(biāo)注程序的部分內(nèi)容并存儲(chǔ)于知識工程組件Action中,供CAA程序調(diào)用。CAA全稱為組件運(yùn)用架構(gòu),是一種基于組件的開發(fā)方法,基礎(chǔ)開發(fā)語言為C++,同時(shí)提供大量的接口與函數(shù);與EKL相比,CAA開發(fā)與CATIA系統(tǒng)結(jié)合更緊密,十分適用于代碼規(guī)模大、功能復(fù)雜、原生EKL開發(fā)難以實(shí)現(xiàn)的程序開發(fā)。出圖程序的基本框架見表2。
表2 出圖程序基本框架
出圖主程序批量出圖功能界面見圖6,用戶在剖面控制節(jié)點(diǎn)中放入剖切面,選擇出圖總節(jié)點(diǎn)與圖紙節(jié)點(diǎn),完成各項(xiàng)選項(xiàng)、參數(shù)設(shè)置后即可開始進(jìn)行出圖。
圖6 出圖主程序批量出圖功能界面
根據(jù)圖3所示的SFD模型結(jié)構(gòu)樹層級關(guān)系,將Panel及其附屬構(gòu)件作整體考慮進(jìn)行剖切處理,剖切處理策略可分為“求交”、“投影”策略;出圖程序提供按構(gòu)件種類與主視向關(guān)系以及構(gòu)件與剖切面位置關(guān)系兩種剖切模式判斷當(dāng)前Panel應(yīng)使用的剖切策略。以某橫艙壁為例,采用兩種剖切模式的剖切策略,具體見表3。
表3 剖切模式與策略
各類構(gòu)件在執(zhí)行剖切處理前,會(huì)先按照景深值進(jìn)行預(yù)篩選,不滿足篩選條件的構(gòu)件會(huì)直接跳過處理,不生成三維線條。景深值開放于圖6所示的高級設(shè)置中,按表1中所示的結(jié)構(gòu)件類型和表現(xiàn)形式分為若干參數(shù)。圖樣比例主要影響標(biāo)注文本、符號的大小,還與船體結(jié)構(gòu)圖中特殊的表達(dá)形式有關(guān),如表示面板輪廓的兩條細(xì)實(shí)線間距等于同一圖樣中粗實(shí)線的寬度,會(huì)隨圖樣比例發(fā)生變化。
投影主視向包括+、-、+、-、+和-共6種。一般情況下,+視向適用于從艉朝艏看的橫剖面圖,+視向適用于從右朝左看的縱剖面圖,-視向適用于俯視結(jié)構(gòu)圖(甲板圖等)。
投影模式主要包括正向投影、法向投影、半法向投影(見表4),當(dāng)剖切面法向平行于坐標(biāo)軸時(shí),3種模式等效;若剖切面法向不與坐標(biāo)軸平行,則3種模式的二維投影平面法向會(huì)不同。
表4 投影模式與投影平面法向
正向投影模式適用于多數(shù)常規(guī)剖面出圖。法向和半法向投影模式均適用于傾斜構(gòu)件的出圖,法向投影模式能較準(zhǔn)確地表達(dá)構(gòu)件的實(shí)際尺寸;而半法向投影模式的投影結(jié)果在某一向的尺度與正向投影相同,結(jié)構(gòu)件在圖樣中能保持與坐標(biāo)軸刻度的位置關(guān)系,在另一向上則表達(dá)構(gòu)件實(shí)際尺寸,可用于外板縱骨圖等出圖。
除上述3種投影模式外,出圖程序還提供折面多向投影模式和艙底圖模式(僅主視向?yàn)閆-時(shí)可用)。折面多向投影模式指剖切面為若干面組合而成的折面時(shí),各子面分別按半法向投影模式出圖,并在二維中自動(dòng)拼接。艙底圖的出圖規(guī)則與一般剖面圖有較大區(qū)別,其為利用復(fù)雜組合剖面剖切船體,移去觀察者和剖切面間的部分結(jié)構(gòu),對其余構(gòu)件進(jìn)行投影得到的結(jié)果,屬于剖視圖。
信息自動(dòng)標(biāo)注主要是構(gòu)件規(guī)格的標(biāo)注,在圖6所示的標(biāo)注設(shè)置中,用戶可以按表1中所示的結(jié)構(gòu)件類型和表現(xiàn)形式選擇哪些需要自動(dòng)標(biāo)注。除此之外,自動(dòng)標(biāo)注還提供以下功能:①使用圖塊替換部分骨材剖面線;②板縫線符號、板縫符號;③蝴蝶形開孔剖面符號;④連續(xù)符號、間斷符號;⑤骨材端部類型;⑥坐標(biāo)軸、標(biāo)題。
以圖2所示的某船全船結(jié)構(gòu)模型為例,該船總長約70 m,結(jié)構(gòu)模型共分為5個(gè)分段。針對不同類型結(jié)構(gòu)圖樣,出圖程序與CATIA原生GVS出圖功能的運(yùn)行耗時(shí)見表5。
表5 出圖程序運(yùn)行耗時(shí)
可見二次開發(fā)的出圖程序與原生功能相比效率明顯提升。
以某一橫剖面圖為例對比出圖結(jié)果,該橫剖面處的模型切片與剖切模型生成的三維線框見圖7,圖紙節(jié)點(diǎn)中生成的剖面圖見圖8。
圖7 某橫剖面的模型切片與三維線框
圖8 某橫剖面圖
由圖8可見出圖結(jié)果滿足表1中各類型構(gòu)件的表達(dá)要求,同時(shí)自動(dòng)標(biāo)注的信息已經(jīng)相對完善,用戶可以使用手動(dòng)標(biāo)注功能對開孔、圓弧半徑、甲板(平臺)名稱等進(jìn)行補(bǔ)充標(biāo)注,手動(dòng)標(biāo)注功能界面見圖9。
圖9 后處理程序手動(dòng)標(biāo)注功能界面
1)通過基于CATIA V6的CAA與EKL二次開發(fā)技術(shù),開發(fā)的多模式結(jié)構(gòu)出圖程序適用于各種類型船體結(jié)構(gòu),可實(shí)現(xiàn)使用三維模型半自動(dòng)化結(jié)構(gòu)出圖。程序完全自主可控,可對其進(jìn)行深度訂制,可滿足各種特殊的結(jié)構(gòu)件圖面表達(dá)形式以及信息標(biāo)注樣式。
2)該出圖程序可使用任何面(平面、曲面或組合面)作為剖切面,并可按不同的投影模式和主視向進(jìn)行出圖,但其基本原理是投影出圖,無法進(jìn)行展開表達(dá),因此對于扭曲構(gòu)件的出圖效果尚不理想,需要進(jìn)一步探討解決方案。
3)使用出圖程序?qū)Y(jié)構(gòu)模型出圖,在減少設(shè)計(jì)人員的繪圖工作量的同時(shí)又提升了圖紙質(zhì)量,有利于現(xiàn)階段三維設(shè)計(jì)的發(fā)展和推廣。