国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Smart 3D軟件郵船設(shè)計的二次開發(fā)應(yīng)用

2019-08-31 08:26田榴敏張世超王德禹崔進舉
造船技術(shù) 2019年4期
關(guān)鍵詞:中間層開發(fā)人員二次開發(fā)

田榴敏 , 張世超, 王德禹, 崔進舉

(1.上海交通大學(xué) 船舶海洋與建筑工程學(xué)院, 上海200240;2.上海外高橋造船有限公司, 上海 200137)

0 引 言

國內(nèi)大型郵船目標(biāo)三維生產(chǎn)設(shè)計系統(tǒng)的應(yīng)用通常依據(jù)造船企業(yè)的生產(chǎn)要素能力和生產(chǎn)建造組織方式等展開,在軟件應(yīng)用過程中需要在充分利用其原有功能和優(yōu)勢的基礎(chǔ)上進行二次開發(fā),實現(xiàn)符合造船企業(yè)實際要求的、有針對性的功能擴展,增強軟件適應(yīng)性,并根據(jù)造船企業(yè)實際生產(chǎn)設(shè)計需求開發(fā)各類輔助功能模塊,提高生產(chǎn)設(shè)計效率。鷹圖船舶設(shè)計軟件Smart 3D(以下簡稱S3D)作為國內(nèi)大型郵船設(shè)計的備選軟件,需對其在郵船生產(chǎn)設(shè)計二次開發(fā)功能方面的適用性進行驗證,其中非常重要的一環(huán)就是針對S3D軟件二次開發(fā)技術(shù)的研究。

面向海事行業(yè)的鷹圖PP&M S3D是近20年來較先進的海洋資產(chǎn)和船舶設(shè)計軟件,也是新一代數(shù)據(jù)中心規(guī)則驅(qū)動型解決方案,能在保護現(xiàn)有數(shù)據(jù)并提高現(xiàn)有數(shù)據(jù)的可用性/再用性的同時簡化海洋資產(chǎn)的設(shè)計流程。S3D是鷹圖PP&M的新一代三維工程設(shè)計解決方案,在鷹圖PP&M超過30年工程經(jīng)驗積累的基礎(chǔ)上,采用新穎的軟件技術(shù)進行核心構(gòu)架。從2014版本開始,將原有針對不同領(lǐng)域獨立封裝的Smart Plant 3D、Smart Marine 3D和Smart Plant 3D Material Handling Edition統(tǒng)一封裝為S3D 產(chǎn)品[1]。

文獻(xiàn)[2-5]對S3D二次開發(fā)進行研究分析:文獻(xiàn)[2]對S3D軟件中的PCF文件進行解析,利用Linq編程技巧匯總單管材料數(shù)據(jù),生成綜合材料報表,對軟件自帶的傳統(tǒng)報表起到了很好的補充作用;文獻(xiàn)[3-5]在S3D軟件中利用Automation進行管子二次開發(fā)設(shè)計、管子出圖和管子命名程序的二次開發(fā),可提高設(shè)計效率、減少人為失誤。分析文獻(xiàn)[2-5]可知,目前S3D二次開發(fā)的主要方向是設(shè)計優(yōu)化,可通過保證設(shè)計準(zhǔn)確率,提出相應(yīng)算法,利用S3D的二次開發(fā)技術(shù)實現(xiàn)該算法,從而達(dá)到優(yōu)化設(shè)計的目的。文獻(xiàn)[6]主要介紹S3D在化工項目中異地協(xié)同設(shè)計方面的功能。文獻(xiàn)[7-10]主要介紹S3D軟件在管子設(shè)計中的應(yīng)用。國內(nèi)船舶設(shè)計單位應(yīng)用S3D軟件并不廣泛,鮮見相關(guān)的二次開發(fā)應(yīng)用,缺少相關(guān)報道和分析說明,且二次開發(fā)主要涉及管系專業(yè),船舶設(shè)計單位尚未從產(chǎn)品全生命周期方面綜合考慮二次開發(fā)的應(yīng)用。

本文從S3D軟件系統(tǒng)架構(gòu)、開發(fā)工具和語言等方面進行二次開發(fā)技術(shù)分析,對開發(fā)接口、數(shù)據(jù)庫和開發(fā)調(diào)試方法進行研究,結(jié)合郵船生產(chǎn)設(shè)計實際需求,最終形成S3D二次開發(fā)的有效技術(shù)路徑和技術(shù)架構(gòu),為郵船生產(chǎn)設(shè)計的S3D二次開發(fā)提供技術(shù)支撐。

1 S3D軟件二次開發(fā)架構(gòu)

S3D軟件系統(tǒng)二次開發(fā)功能基于Microsoft .NET框架進行技術(shù)構(gòu)建,具有面向?qū)ο蟛⒒谌龑蛹軜?gòu)的分層結(jié)構(gòu)。S3D軟件的三層架構(gòu)包括客戶層、中間層和服務(wù)器層,將客戶層中的圖形用戶界面與中間層中的業(yè)務(wù)邏輯分開,將業(yè)務(wù)邏輯與服務(wù)器層中的物理數(shù)據(jù)庫進一步分離。S3D軟件采用關(guān)系型數(shù)據(jù)庫Microsoft SQL Server和Oracle數(shù)據(jù)庫,服務(wù)層依賴數(shù)據(jù)庫提供的相關(guān)功能。涉及的二次開發(fā)客戶層與中間層的關(guān)系架構(gòu)如圖1所示。

圖1 S3D軟件二次開發(fā)架構(gòu)

客戶層的客戶化開發(fā)必須在S3D的運行環(huán)境下進行,基于客戶層的二次開發(fā)必須打開S3D軟件,通過任務(wù)、服務(wù)等形式加載??蛻魧又饕藛?、工具箱、可視化視圖工具和對話框等,可使用Select Set和Graphic View Mgr等服務(wù)軟件提供的組件進行人機交互開發(fā),例如在S3D軟件界面中對船舶設(shè)計模型選擇、視圖窗口,以及標(biāo)注工具、視角操作等進行客戶化開發(fā)。

中間層又稱邏輯層,郵船設(shè)計客戶化業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計都集中在該層,是系統(tǒng)架構(gòu)中的核心部分,開發(fā)人員甚至可利用中間層提供的API接口,重新開發(fā)WEB界面的CAD設(shè)計系統(tǒng)。中間層處于數(shù)據(jù)層與客戶層中間,在數(shù)據(jù)交換中起承上啟下的作用,因此:首先需理解S3D軟件對船舶設(shè)計中各業(yè)務(wù)對象類數(shù)據(jù)結(jié)構(gòu)和關(guān)聯(lián)接口的設(shè)計(業(yè)務(wù)對象對應(yīng)于船舶設(shè)計過程中各類對象,貫穿于三層,在三層之間傳遞數(shù)據(jù));其次,通過相關(guān)API接口命令對底層數(shù)據(jù)進行操作。

S3D軟件開發(fā)技術(shù)采用面向?qū)ο缶幊痰乃枷?,類的繼承與多態(tài)應(yīng)用廣泛,3D .NET對象模型提供了一個名為BusinessObject的基類,使用Business-Object的類繼承來實現(xiàn)單個業(yè)務(wù)對象。Business-Object提供了使用字典方法訪問和修改屬性的方法,應(yīng)用程序通過繼承該基類子類化來擴展對象模型和開發(fā)接口。繼承關(guān)系與設(shè)計對象之間聯(lián)系緊密,當(dāng)一個設(shè)計對象發(fā)生變化時,通過繼承關(guān)系能夠確保設(shè)計數(shù)據(jù)的完整性和連續(xù)性。S3D軟件中常見的船舶設(shè)計對象類如圖2所示。

通過對S3D軟件二次開發(fā)架構(gòu)進行分析,可知基本的開發(fā)方法分為3種:(1)在S3D環(huán)境中對客戶層進行二次開發(fā),直接參與用戶交互操作;(2)Standalone程序,通過中間層啟動運行二次開發(fā)的方式,不需打開S3D軟件界面;(3)S3D軟件配置符號庫、命名規(guī)則和IFC規(guī)則開發(fā)。

2 S3D軟件的郵船設(shè)計開發(fā)需求

生產(chǎn)設(shè)計軟件系統(tǒng)的應(yīng)用落地是一項浩大的工程,涉及設(shè)計、生產(chǎn)、管理的方方面面。在投入實船生產(chǎn)設(shè)計之前,必須對軟件進行全面的測試和評估。通過測試工程,從實際使用的角度確認(rèn)軟件各個方面的性能。一方面,設(shè)計軟件不僅需具備生產(chǎn)設(shè)計單方面的功能,而且還應(yīng)具備信息一體化的集成能力;另一方面,設(shè)計軟件需滿足郵船設(shè)計的特殊要求。測試需求的特點是基礎(chǔ)測試點數(shù)量大、角度廣、關(guān)聯(lián)測試項目多,測試主要內(nèi)容包括郵船生產(chǎn)設(shè)計的三維建模、生產(chǎn)設(shè)計圖紙設(shè)繪、生產(chǎn)信息輸出、二次開發(fā)能力等。

S3D軟件的測試工作覆蓋設(shè)計的各個相關(guān)專業(yè)(結(jié)構(gòu)、管系、鐵舾、電氣和涂裝),包括出圖、報表和功能點評測等方面,須達(dá)成2個目標(biāo):(1)功能測試與定制,全面考查目標(biāo)軟件能力;(2)模式整合,旨在根據(jù)目標(biāo)軟件現(xiàn)有能力和船廠現(xiàn)有模式,探索目標(biāo)軟件生產(chǎn)設(shè)計落地方案。測試以真實項目為背景,出具各專業(yè)全面設(shè)計平臺詳細(xì)測試報告和分析報告,并提出軟件系統(tǒng)改進需求。

船體結(jié)構(gòu)模塊測試項共86項,其中S3D軟件開發(fā)需求共27項,主要涉及出圖和報表相關(guān)內(nèi)容的開發(fā);管系專業(yè)模塊測試項共66項,包括資源庫配置、原理圖、三維建模、圖紙出圖和數(shù)據(jù)輸出接口等5個方面,其中開發(fā)需求共9項,主要涉及標(biāo)準(zhǔn)庫、規(guī)則類和出圖報表類的開發(fā);電裝專業(yè)模塊測試項共68項,包括資源庫配置、系統(tǒng)原理圖設(shè)計、三維建模(電纜通道、電纜、電纜托架)、圖紙出圖和數(shù)據(jù)輸出接口、電裝工藝仿真、設(shè)備廠商資料管理等6個方面,提出20項開發(fā)需求,主要涉及出圖報表類開發(fā);鐵舾專業(yè)模塊測試項共32項,包括資源庫配置、三維建模、出圖和數(shù)據(jù)接口,以及模型更改等4個方面,提出8項開發(fā)需求,主要涉及參數(shù)化建模類開發(fā);涂裝專業(yè)模塊測試項共10項,包括資源庫配置、三維建模、出圖和數(shù)據(jù)接口等3個方面,提出8項開發(fā)需求,主要涉及報表開發(fā)。

3 S3D軟件二次開發(fā)分析

在郵船二次開發(fā)中,開發(fā)人員主要集中于客戶層和中間層的開發(fā),系統(tǒng)管理員則主要集中于符號庫和規(guī)則庫的開發(fā)。下文從客戶層和中間層的開發(fā)方面分析S3D的具體開發(fā)手段,即Command和Standalone開發(fā)。

3.1 Command開發(fā)分析

Command主要應(yīng)用于客戶層命令對象的開發(fā),以創(chuàng)建基于.NET的命令為主要方式,開發(fā)人員通過創(chuàng)建一個從S3D提供的基本命令類繼承方式進行開發(fā),嵌入S3D運行環(huán)境。這種方式與一般CAD系統(tǒng)軟件調(diào)用COM接口的開發(fā)方式不同,是基于對象的命令開發(fā)。通過CommandManager服務(wù)創(chuàng)建該類實例,并將控件傳遞給對象,該對象執(zhí)行相關(guān)命令,控制命令的執(zhí)行。開發(fā)人員通過繼承命令基類提供的OnStart、OnStop、OnSuspend和OnResume方法重寫的方式,進行定制化的二次開發(fā)。Command開發(fā)的主要思路是通過對基類進行繼承,修改成員變量及重寫相應(yīng)的功能函數(shù)實現(xiàn)二次開發(fā),包括3種類型:Base、Graphic和Step。

Base類型主要在調(diào)用OnStart方法之后,S3D的界面操作命令立即終止。在通常情況下,該模式可通過命令基類提出一個與用戶進行交互的對話框。首先調(diào)用OnStart方法,在OnStart方法運行結(jié)束后立即調(diào)用OnStop方法,然后刪除命令對象,命令的所有工作都在OnStart方法中完成。在實際開發(fā)中,開發(fā)人員一般利用Base類型命令作為開發(fā)入口,再編寫相關(guān)交互界面進行一系列郵船業(yè)務(wù)相關(guān)的邏輯處理。通過創(chuàng)建對BaseModalCommand繼承的類重寫OnStart的方法,嵌入S3D環(huán)境中進行二次開發(fā)邏輯處理。

GraphicCommands與StepCommands的區(qū)別僅僅是繼承的類不同,開發(fā)方式相同。

GraphicCommands是事件驅(qū)動命令,與ModalCommands的主要區(qū)別在于調(diào)用Start方法之后,S3D的界面操作命令不終止,而由Command-Manager將控制權(quán)放回3D軟件,比如S3D設(shè)計界面上的MouseDown、MouseMove和MouseUp等,該命令使用這些事件驅(qū)動其內(nèi)部邏輯。開發(fā)人員通常在圖形顯示中進行定位和限制圖形,動態(tài)移動設(shè)計對象或者在構(gòu)建新的3D設(shè)計對象時利用該方法。例如,在通過開發(fā)進行設(shè)備的建模,并由開發(fā)人員進行設(shè)備的具體布置時,就需要用該方法進行開發(fā)。

StepCommands是GraphicCommands的一種特殊情況事件響應(yīng),可以額外定義一些步驟或狀態(tài),分步驟執(zhí)行命令并記錄,可進行操作的撤銷。StepCommands的運行方式在S3D軟件中很常見,如在船體板架建模時,經(jīng)定義基面—定義邊界—定義產(chǎn)品信息等步驟,可以終止建模流程,也可以撤銷返回上一步驟。在實際開發(fā)中,該方法使用較多,需求可能比較復(fù)雜,開發(fā)人員可控制步驟和邏輯,使開發(fā)容易處理。例如,在特殊管支架布置中,開發(fā)人員可利用該方法分步驟,即選擇管子—計算并選擇管支架類型—選擇管支架連接基面—添加拓?fù)潢P(guān)系,并在每個步驟下進行邏輯開發(fā)。

Commands的3種類型對比如表1所示。

表1 Commands類型比較

3.2 Standalone開發(fā)分析

Standalone主要用于中間層接口的開發(fā),即在獨立程序中調(diào)用中間層S3D .NET API接口,不需打開S3D軟件即可獨立訪問S3D軟件工程項目數(shù)據(jù),包括模型和目錄,操作所有重要的S3D軟件中間層數(shù)據(jù)。由于開發(fā)三層架構(gòu)具有解耦性,開發(fā)人員在進行獨立程序開發(fā)時,并不會直接操作底層數(shù)據(jù)庫,可通過中間層TransactionMgr類對相關(guān)數(shù)據(jù)進行提交和撤銷。

開發(fā)人員可以進行如下操作:批量更改模型數(shù)據(jù)庫中的一組對象,自動按客戶規(guī)則進行工程項目初始化設(shè)置(如創(chuàng)建產(chǎn)品結(jié)構(gòu)樹、用戶和權(quán)限組定義,以及模型過濾器定義等),設(shè)計數(shù)據(jù)可與船廠信息化系統(tǒng)連接,甚至能將數(shù)據(jù)導(dǎo)入第三方軟件進行操作,該開發(fā)技術(shù)對S3D軟件拓展性的提升非常明顯。

中間層開發(fā)的關(guān)鍵技術(shù)是如何在不啟動S3D軟件時調(diào)用和訪問S3D軟件中的工程。開發(fā)人員需了解.NET框架下程序集的概念(程序集是.NET應(yīng)用程序的基本單元,一個軟件可以是一個程序集),可通過.NET框架提供Assembly類操縱程序集,并獲取程序集內(nèi)部信息。在獨立程序開發(fā)時,可利用Assembly類將S3D中間層的程序集加載進來,這樣開發(fā)人員就可調(diào)用中間層的API接口。

3.3 S3D數(shù)據(jù)結(jié)構(gòu)分析

在S3D軟件項目工程數(shù)據(jù)庫中,Catalog數(shù)據(jù)庫是S3D進行工程設(shè)計的基礎(chǔ),記錄了設(shè)計內(nèi)容的大部分重要信息。但設(shè)計對象數(shù)量龐大以及對象之間關(guān)系錯綜復(fù)雜導(dǎo)致在開發(fā)過程中對模型數(shù)據(jù)結(jié)構(gòu)的理解和熟悉十分困難。設(shè)計人員可通過3個方面獲取模型數(shù)據(jù)結(jié)構(gòu)信息:S3D系統(tǒng)模型屬性界面;S3D數(shù)據(jù)庫數(shù)據(jù)信息;常見的Microsoft Visual Studio開發(fā)工具集提供的對象接口瀏覽。面對龐大的設(shè)計對象和復(fù)雜的對象關(guān)系,介紹2種方法供開發(fā)人員參考使用:

(1) S3D系統(tǒng)提供數(shù)據(jù)結(jié)構(gòu)瀏覽器工具,其位于安裝目錄下($Smart3DCoreToolsAdministratorBinMetaDataBrowser.exe)。開發(fā)人員可通過該工具查看模型數(shù)據(jù)對應(yīng)對象、接口和屬性等。S3D軟件數(shù)據(jù)結(jié)構(gòu)瀏覽器如圖3所示。

圖3 S3D軟件數(shù)據(jù)結(jié)構(gòu)瀏覽器

(2) 在S3D運行界面中點選需查看的模型,按Ctrl+Shift+R組合功能鍵即可彈出點選對象的接口和屬性等信息,如圖4所示。

圖4 S3D設(shè)計數(shù)據(jù)資源庫瀏覽器

利用(2)的方式,給出S3D管子屬性相關(guān)抽取示例代碼。

public void getPipelineInfo(BusinessObject oBO, ref string strInfo)

{

string strTmp = "";

PropertyValueString oStrPropVal;

PropertyValueCodelist oCLPropVal;

PropertyValueDouble oDouPropVal;

//Name

oStrPropVal = (PropertyValueString)oBO.GetPropertyValue("IJNamedItem", "Name");

strTmp = oStrPropVal.PropValue;

strInfo += "Name : " + strTmp + " ";

//Description

oStrPropVal = (PropertyValueString)oBO. ("IJPipelineSystem", "Description");

strTmp = oStrPropVal.PropValue;

strInfo += "Description : " + strTmp + " ";

//Sequence Number

oStrPropVal = (PropertyValueString)oBO.GetPropertyValue("IJPipelineSystem", "SequenceNumber");

strTmp = oStrPropVal.PropValue;

strInfo += "Sequence Number : " + strTmp + " ";

//Fluid Requirement

oCLPropVal = (PropertyValueCodelist)oBO.GetPropertyValue("IJPipelineSystem", "FluidSystem");

strTmp = oCLPropVal.PropertyInfo.CodeListInfo.GetCodelistItem(oCLPropVal.PropValue).Name;

strInfo += "Fluid Requirement : " + strTmp + " ";

//Fluid Type

oCLPropVal = (PropertyValueCodelist)oBO.GetPropertyValue("IJPipelineSystem", "FluidCode");

strTmp = oCLPropVal.PropertyInfo.CodeListInfo.GetCodelistItem(oCLPropVal.PropValue).Name;

strInfo += "Fluid Type : " + strTmp + " ";

對于船舶其他專業(yè)(船體、風(fēng)管、舾裝、電氣等)的數(shù)據(jù)抽取,利用S3D軟件提供數(shù)據(jù)結(jié)構(gòu)瀏覽器工具,結(jié)合S3D建模環(huán)境中模型數(shù)據(jù)結(jié)構(gòu)查看功能,開發(fā)人員能夠?qū)⒏鱾€專業(yè)的數(shù)據(jù)進行提取。

4 S3D二次開發(fā)架構(gòu)設(shè)計及應(yīng)用實例

結(jié)合船舶二次開發(fā)的特點(設(shè)計標(biāo)準(zhǔn)多樣化、生產(chǎn)管理主導(dǎo)和產(chǎn)品全生命周期長)與郵船產(chǎn)品的建造特點(工程管理復(fù)雜、總段化與模塊化建造、建造過程控制嚴(yán)格和全過程精度控制技術(shù)要求高等[11]),郵船設(shè)計軟件S3D的二次開發(fā),需圍繞業(yè)務(wù)特點設(shè)計一個具備良好伸縮性的軟件架構(gòu)。下文簡要說明當(dāng)前通用的2種軟件架構(gòu):分層架構(gòu)和微核架構(gòu),并提出適合船舶業(yè)務(wù)特點和S3D設(shè)計軟件的軟件構(gòu)架。

分層架構(gòu)是最常見的軟件架構(gòu)[12],也是事實上的標(biāo)準(zhǔn)架構(gòu)。該架構(gòu)將軟件分成若干個水平層,每一層都有清晰的角色和分工,不需要知道其他層的細(xì)節(jié),層與層之間通過接口通信。分層架構(gòu)的優(yōu)點是:結(jié)構(gòu)簡單,容易理解和開發(fā),每一層都可以獨立測試,其他層的接口通過模擬解決,可并行開發(fā),便于組織分工。其缺點是:擴展性差,增加或變更功能必須依次擴展每一層,由于每一層內(nèi)部是耦合的,擴展很困難。

微核架構(gòu)又稱"插件架構(gòu)",指的是軟件的內(nèi)核相對較小,主要功能和業(yè)務(wù)邏輯都通過插件實現(xiàn)。內(nèi)核通常只包含系統(tǒng)運行的最小功能[13],插件互相獨立,插件之間的接口通信減少到最低,避免出現(xiàn)互相依賴的問題。微核架構(gòu)的優(yōu)點是:功能延伸性良好,業(yè)務(wù)上需要什么功能,開發(fā)一個插件即可,功能之間是隔離的,插件可獨立加載和卸載,容易部署,可定制性高,適應(yīng)不同的開發(fā)需求,可以漸進式地進行開發(fā),逐步增加功能。其缺點是: 開發(fā)難度相對較高, 對于內(nèi)核設(shè)計的要求高。

根據(jù)船舶建造和S3D軟件二次開發(fā)的特點,提出以微核框架為主體,內(nèi)核為分層架構(gòu)的軟件架構(gòu)。S3D郵船二次開發(fā)架構(gòu)如圖5所示:內(nèi)核采用分層結(jié)構(gòu),核心內(nèi)容為郵船建模規(guī)范的數(shù)字化層,以WORD、EXCEL和PDF文件形式作為設(shè)計建模指導(dǎo)的建模規(guī)范進行數(shù)字化,直接在前端S3D設(shè)計軟件進行約束指導(dǎo);同時,對S3D的中間層和客戶層進行封裝,形成郵船S3D系統(tǒng)數(shù)據(jù)層作為系統(tǒng)的內(nèi)核,將郵船相關(guān)業(yè)務(wù)以插件模塊形式進行組合。內(nèi)核采用分層結(jié)構(gòu)便于理解開發(fā),設(shè)計標(biāo)準(zhǔn)的變更對于企業(yè)來說相對固化,擴展性不是關(guān)鍵點。二次開發(fā)最重要的依據(jù)是設(shè)計標(biāo)準(zhǔn),嵌入郵船設(shè)計標(biāo)準(zhǔn)作為內(nèi)核的一部分可為郵船設(shè)計業(yè)務(wù)相關(guān)使用場景、規(guī)則和復(fù)雜條件的處理定義通用的業(yè)務(wù)邏輯;而整體采用微核框架則是從郵船產(chǎn)品建造特點出發(fā),以良好的功能延伸線與各種外部系統(tǒng)對接,適應(yīng)不同的開發(fā)需求。

圖5 S3D郵輪二次開發(fā)架構(gòu)

基于上述軟件架構(gòu),利用內(nèi)核API接口,開發(fā)郵船報表系統(tǒng)-結(jié)構(gòu)專業(yè)組立清單程序,要求按船廠的格式在圖紙上添加重量與重量中心和裝配報表即組立清單,包括各裝配的頁碼信息,且能通過刷新自動更新報表和頁碼。圖6為系統(tǒng)組立清單主界面。用戶可選擇同步工程數(shù)據(jù)、組立重量中心和零件報表功能,右側(cè)主界面顯示對應(yīng)裝配結(jié)構(gòu)樹下分段的組立清單,包含組立名,干重,重量中心x、y、z等。

圖6 系統(tǒng)組立清單主界面

該系統(tǒng)主要技術(shù)路線為:利用內(nèi)核提供功能,用戶設(shè)置S3D工程連接,程序后臺連接S3D工程數(shù)據(jù),加載顯示主界面上的裝配結(jié)構(gòu)樹,用戶點擊相應(yīng)裝配節(jié)點,后臺抽取對應(yīng)節(jié)點下的結(jié)構(gòu)屬性信息,獲取組立名、重量與重量中心,自動計算該節(jié)點下所有結(jié)構(gòu)模型的面積和基面投影面積,最終組織形成組立清單并導(dǎo)出EXCEL文件,如圖7所示。

圖7 導(dǎo)出的EXCEL組立清單文件

5 結(jié) 語

對S3D軟件系統(tǒng)架構(gòu)、開發(fā)工具和語言進行分析,對開發(fā)接口、數(shù)據(jù)庫以及開發(fā)調(diào)試方法進行論述,歸納S3D提供的二次開發(fā)技術(shù)手段,并提出二次開發(fā)軟件架構(gòu),結(jié)合國產(chǎn)大型郵船生產(chǎn)設(shè)計在S3D軟件上的需求,通過二次開發(fā)技術(shù)進行定制化的二次開發(fā)應(yīng)用,開發(fā)符合國產(chǎn)大型郵船設(shè)計的二次開發(fā)軟件,既可加強拓展基于S3D系統(tǒng)的國產(chǎn)大型郵船的設(shè)計功能,又可降低設(shè)計人員的工作量,提高設(shè)計質(zhì)量,從而縮短設(shè)計周期,保證國產(chǎn)大型郵船的設(shè)計工作順利開展。

猜你喜歡
中間層開發(fā)人員二次開發(fā)
Zn-15Al-xLa中間層對鎂/鋼接觸反應(yīng)釬焊接頭性能影響
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
淺談Mastercam后處理器的二次開發(fā)
例談?wù)n本習(xí)題的“二次開發(fā)”
如何利用合作教學(xué)激發(fā)“中間層”的活躍
淺談通信綜合營帳數(shù)據(jù)中間層設(shè)計原則與處理流程
后悔了?教你隱藏開發(fā)人員選項
ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應(yīng)用
關(guān)于平面設(shè)計軟件二次開發(fā)的分析
三星SMI擴展Java論壇 開發(fā)人員可用母語
浦东新区| 山阴县| 襄汾县| 呼玛县| 英吉沙县| 南木林县| 南雄市| 卓资县| 海南省| 左权县| 新泰市| 尚义县| 鹿邑县| 玛纳斯县| 绥化市| 阳西县| 夏河县| 多伦县| 乌兰察布市| 宜春市| 虞城县| 东阳市| 陈巴尔虎旗| 新昌县| 温州市| 上杭县| 永年县| 堆龙德庆县| 炉霍县| 潜山县| 策勒县| 柘城县| 乌鲁木齐市| 安化县| 紫阳县| 石景山区| 封丘县| 神农架林区| 八宿县| 万盛区| 绥江县|