李富生,沈景鳳
(上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093)
余熱鍋爐是利用工業(yè)生產(chǎn)過(guò)程中產(chǎn)生的廢氣,廢料或廢液中的余熱和可燃物質(zhì)燃燒后產(chǎn)生的熱量將水加熱到一定工質(zhì)的鍋爐[1]。蒸發(fā)器是余熱鍋爐中將水變成飽和水蒸汽的設(shè)備,由于蒸發(fā)器結(jié)構(gòu)復(fù)雜,傳統(tǒng)的設(shè)計(jì)方法效率較低,當(dāng)需要設(shè)計(jì)新的結(jié)構(gòu)類(lèi)型時(shí),重復(fù)勞動(dòng)較大。為了縮短設(shè)計(jì)周期,提高蒸發(fā)器的設(shè)計(jì)效率,本系統(tǒng)以參數(shù)化設(shè)計(jì)思想為指導(dǎo),采用基于VB.NET 下的SolidWorks 二次開(kāi)發(fā)的參數(shù)化設(shè)計(jì)方法,實(shí)現(xiàn)蒸發(fā)器的高效快速設(shè)計(jì)。
SolidWorks 通過(guò)OLE(對(duì)象鏈接和嵌入)或COM(組件對(duì)象模型)技術(shù),為用戶(hù)提供了功能強(qiáng)大的二次開(kāi)發(fā)接口,此接口為用戶(hù)提供了自由、開(kāi)放、功能完整的開(kāi)發(fā)工具,其中包含了數(shù)以百計(jì)的功能函數(shù),這些函數(shù)可以直接訪(fǎng)問(wèn)SolidWorks[2]。通過(guò)該接口可以開(kāi)發(fā)出嵌入式模塊以擴(kuò)充SolidWorks 的功能,滿(mǎn)足客戶(hù)的需求,任何支持OLE 或COM 這兩種技術(shù)的編程語(yǔ)言都可以作為SolidWorks 的開(kāi)發(fā)工具[3]。由于VB.NET編程效率高,并且能夠直接使用SolidWorks 宏操作獲得的代碼,避免了大量的程序編寫(xiě)與調(diào)試,本系統(tǒng)采用VB.NET 作為二次開(kāi)發(fā)的編程語(yǔ)言。SolidWorks 二次開(kāi)發(fā)的方法分為程序法和尺寸驅(qū)動(dòng)法兩種。程序法即用程序描述建模過(guò)程的方法。程序法需要設(shè)計(jì)人員通過(guò)API 函數(shù)編寫(xiě)模型造型的全過(guò)程。這種開(kāi)發(fā)方法要求設(shè)計(jì)者熟練掌握編程語(yǔ)言,程序編寫(xiě)的工作量較大,導(dǎo)致效率低下。尺寸驅(qū)動(dòng)法是通過(guò)更改模型庫(kù)中模型的參數(shù)進(jìn)行模型重建的方法。尺寸驅(qū)動(dòng)法在編程時(shí)是在宏操作所獲得的代碼的基礎(chǔ)上進(jìn)行適當(dāng)?shù)木庉嬓薷?,將修改后所得到的代碼作為應(yīng)用程序代碼。程序法適用于結(jié)構(gòu)相對(duì)簡(jiǎn)單的零件,而對(duì)于復(fù)雜模型和標(biāo)準(zhǔn)化程度高的零件,使用尺寸驅(qū)動(dòng)法更加方便高效[4]??紤]到蒸發(fā)器結(jié)構(gòu)的復(fù)雜性,本系統(tǒng)采用了尺寸驅(qū)動(dòng)法與程序法相結(jié)合來(lái)實(shí)現(xiàn)參數(shù)化設(shè)計(jì)的二次開(kāi)發(fā)方式。
通過(guò)對(duì)蒸發(fā)器各方面資料的分析,結(jié)合以往開(kāi)發(fā)經(jīng)驗(yàn),明確了蒸發(fā)器系統(tǒng)的目標(biāo)功能、系統(tǒng)組成、各模塊之間的關(guān)系和應(yīng)用環(huán)境等各項(xiàng)因素,確立了系統(tǒng)的總體結(jié)構(gòu),系統(tǒng)總體結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
筆者所開(kāi)發(fā)的蒸發(fā)器參數(shù)化設(shè)計(jì)系統(tǒng)劃分為5層,分別為界面層、功能層、知識(shí)庫(kù)層、工具層和支撐層。
界面層主要是通過(guò)創(chuàng)建人機(jī)交互的應(yīng)用環(huán)境,方便用戶(hù)進(jìn)行設(shè)計(jì)信息的輸入以及其他與設(shè)計(jì)工具的對(duì)話(huà),同時(shí)它也是整個(gè)系統(tǒng)的最終體現(xiàn)形式。
功能層作為系統(tǒng)核心,包括設(shè)計(jì)功能和管理功能兩部分,以設(shè)計(jì)功能為主要功能。設(shè)計(jì)功能主要實(shí)現(xiàn)參數(shù)設(shè)置、設(shè)計(jì)計(jì)算、模型驅(qū)動(dòng)和工程圖的調(diào)整;管理功能為輔助功能,主要實(shí)現(xiàn)項(xiàng)目管理、文檔數(shù)據(jù)管理功能。
知識(shí)庫(kù)層為系統(tǒng)開(kāi)發(fā)提供強(qiáng)大支持,是系統(tǒng)開(kāi)發(fā)的關(guān)鍵,它總結(jié)了以往設(shè)計(jì)的經(jīng)驗(yàn)規(guī)則、設(shè)計(jì)計(jì)算公式、已有設(shè)計(jì)實(shí)例以及相關(guān)技術(shù)文檔等,由于構(gòu)建龐大的知識(shí)庫(kù)系統(tǒng)耗費(fèi)大量的人力物力,所以需要系統(tǒng)開(kāi)發(fā)人員與合作單位共同完成。
工具層主要為系統(tǒng)開(kāi)發(fā)中用到的各種工具,其中主要包括SolidWorks 2012、VB.NET、SQL Server 和AutoCAD 2010 等。
支撐層主要有計(jì)算機(jī)硬件、局域網(wǎng)等,他們共同協(xié)作為系統(tǒng)的運(yùn)行提供外部環(huán)境。
產(chǎn)品的模塊化設(shè)計(jì)是指在對(duì)一定范圍內(nèi)的不同功能或相同功能不同性能、不同規(guī)格的產(chǎn)品進(jìn)行功能結(jié)構(gòu)分析的基礎(chǔ)上,劃分并設(shè)計(jì)出一系列模塊,通過(guò)模塊的選擇和組合構(gòu)成不同的產(chǎn)品,以滿(mǎn)足不同市場(chǎng)需求的設(shè)計(jì)[5]。模塊化設(shè)計(jì)可以分為兩種:(1)功能模塊化設(shè)計(jì)。(2)結(jié)構(gòu)模塊化設(shè)計(jì)[6]。
模塊化技術(shù)首先要根據(jù)模塊化原則設(shè)計(jì)出基本模塊單元,再按照不同的用戶(hù)需求由基本模塊單元組合成不同的產(chǎn)品[7]。筆者所開(kāi)發(fā)的蒸發(fā)器設(shè)計(jì)系統(tǒng)按功能劃分為參數(shù)設(shè)置模塊,模型驅(qū)動(dòng)模塊和工程圖調(diào)整模塊。
(1)參數(shù)設(shè)置模塊。參數(shù)設(shè)置模塊是整個(gè)系統(tǒng)設(shè)計(jì)的基礎(chǔ),其包括參數(shù)設(shè)置界面的制作和編寫(xiě)程序代碼并通過(guò)界面向數(shù)據(jù)庫(kù)提交設(shè)計(jì)參數(shù)[8]。參數(shù)設(shè)置界面是系統(tǒng)向設(shè)計(jì)人員展示功能的窗口,是設(shè)計(jì)人員執(zhí)行設(shè)計(jì)操作的工具,要做到簡(jiǎn)潔一致,便于用戶(hù)操作。界面包括圖片預(yù)覽、參數(shù)設(shè)置文本框、功能鍵等部分,圖片預(yù)覽主要預(yù)覽當(dāng)前設(shè)計(jì)模塊的二維圖片、三模模型,以便設(shè)計(jì)人員了解產(chǎn)品結(jié)構(gòu),更直觀(guān)地對(duì)應(yīng)參數(shù)變量;參數(shù)設(shè)置文本框則主要記錄驅(qū)動(dòng)參數(shù),也方便以后錄入數(shù)據(jù)庫(kù);功能鍵則是用于設(shè)計(jì)人員對(duì)數(shù)據(jù)輸入之后的操作。
系統(tǒng)界面的部分參數(shù)之間有著直接或者間接的關(guān)聯(lián)。參數(shù)之間的關(guān)系是參數(shù)化設(shè)計(jì)的關(guān)鍵,在數(shù)據(jù)庫(kù)中建立全局參數(shù)表和零件參數(shù)表,用數(shù)據(jù)庫(kù)參數(shù)表之間的關(guān)系來(lái)表示產(chǎn)品中零件尺寸位置參數(shù)間的關(guān)系,可以實(shí)現(xiàn)參數(shù)之間的關(guān)聯(lián)[9]。參數(shù)可以分為主動(dòng)參數(shù)、從動(dòng)參數(shù)和不變參數(shù)。主動(dòng)參數(shù)是模型驅(qū)動(dòng)的重要參數(shù),往往在每次設(shè)計(jì)時(shí)都是變化的,它通過(guò)界面直接輸入,比如外形尺寸等,從動(dòng)參數(shù)是指根據(jù)主動(dòng)參數(shù)的輸入經(jīng)過(guò)后臺(tái)代碼計(jì)算后得到的數(shù)值,往往也是變化的,但從動(dòng)參數(shù)由于已完成數(shù)值的關(guān)聯(lián),所以不需要手動(dòng)輸入,從動(dòng)參數(shù)的文本框也是不可操作的,主要作用是為設(shè)計(jì)人員更細(xì)致地理解產(chǎn)品結(jié)構(gòu)提供參考;不變參數(shù)則是產(chǎn)品工作環(huán)境,項(xiàng)目委托公司等,用于工程圖的出圖等。
(2)模型驅(qū)動(dòng)模塊。模型驅(qū)動(dòng)模塊是參數(shù)設(shè)置結(jié)束后的下一步操作,主要功能是使用界面新設(shè)置參數(shù)或從數(shù)據(jù)庫(kù)中調(diào)用數(shù)據(jù)來(lái)驅(qū)動(dòng)模板實(shí)現(xiàn)模型尺寸及特征的變化。具體驅(qū)動(dòng)步驟如下:在設(shè)置完成模型驅(qū)動(dòng)后的目標(biāo)路徑后,運(yùn)行模型驅(qū)動(dòng)程序,程序自動(dòng)調(diào)用模板,再將模板復(fù)制到目標(biāo)文件夾前,判斷該目錄下是否存在與同名文件,假如存在則先將其刪除,以確?;A(chǔ)模板為最完善版本,如果不存在則直接復(fù)制;然后通過(guò)程序調(diào)用SolidWorks 打開(kāi)模板模型,將界面新設(shè)置參數(shù)或從數(shù)據(jù)庫(kù)中調(diào)用的數(shù)據(jù)賦給模型變量,驅(qū)動(dòng)后得到新模型并保存。
(3)工程圖調(diào)整模塊。雖然SolidWorks 軟件可以實(shí)現(xiàn)工程圖的自動(dòng)生成并且與模型實(shí)時(shí)聯(lián)動(dòng),但經(jīng)過(guò)參數(shù)化驅(qū)動(dòng)生成的工程圖,與模版相比較,由于視圖和圖樣比例的變化,零件尺寸的變動(dòng)等原因,會(huì)出現(xiàn)視圖位置的漂移,注解、項(xiàng)目排布混亂,以及尺寸標(biāo)注位置混亂等問(wèn)題,無(wú)法滿(mǎn)足用戶(hù)的要求[10]。因此對(duì)工程圖進(jìn)行調(diào)優(yōu)意義重大。
工程圖調(diào)整模塊主要是通過(guò)編寫(xiě)工程圖調(diào)優(yōu)程序來(lái)實(shí)現(xiàn),該模塊就是要將這些工程圖調(diào)整技術(shù)編輯到程序中,特別的,這其中的很多調(diào)圖程序可以做成模塊供程序多次調(diào)用,簡(jiǎn)化程序內(nèi)容,通過(guò)視圖遍歷的方法進(jìn)行調(diào)整。調(diào)圖流程如圖2 所示。
圖2 工程圖調(diào)整流程
以蒸發(fā)器系列化產(chǎn)品為基礎(chǔ)模板,結(jié)合系統(tǒng)總體結(jié)構(gòu),開(kāi)發(fā)系統(tǒng)的具體流程如下:
(1)根據(jù)蒸發(fā)器的結(jié)構(gòu)和功能特點(diǎn),對(duì)產(chǎn)品進(jìn)行模塊劃分,劃分為換熱管組,聯(lián)箱,殼體,總裝4 個(gè)結(jié)構(gòu)模塊,并確定零部件的主從動(dòng)參數(shù)和模塊間的裝配約束關(guān)系。(2)按照?qǐng)D紙分析零件特征的同時(shí)結(jié)合設(shè)計(jì)人員的設(shè)計(jì)意圖,明確零件設(shè)計(jì)方法,簡(jiǎn)化建模過(guò)程,將建模步驟和參數(shù)尺寸的數(shù)量盡可能地減少,適當(dāng)添加方程式和約束關(guān)系使模型參數(shù)和結(jié)構(gòu)之間的聯(lián)系更加緊密,以方便修改和驅(qū)動(dòng)。(3)根據(jù)基礎(chǔ)模型,按照最大化原則制作圖紙模板,按要求添加零部件自定義屬性,構(gòu)建工程圖庫(kù)。(4)總結(jié)設(shè)計(jì)規(guī)則、設(shè)計(jì)經(jīng)驗(yàn)和相關(guān)的計(jì)算公式,建立設(shè)計(jì)數(shù)據(jù)庫(kù)和設(shè)計(jì)規(guī)則庫(kù),將設(shè)計(jì)中用到的知識(shí)進(jìn)行存儲(chǔ),實(shí)現(xiàn)設(shè)計(jì)計(jì)算功能。(5)通過(guò)編程軟件搭建參數(shù)設(shè)置界面,并添加各功能按鈕。(6)進(jìn)行模型參數(shù)化驅(qū)動(dòng)模塊的開(kāi)發(fā),通過(guò)程序使零件和裝配體按照界面或數(shù)據(jù)庫(kù)驅(qū)動(dòng)參數(shù)及時(shí)自主更新,并對(duì)模型按指定路徑存儲(chǔ)。(7)實(shí)現(xiàn)工程圖的調(diào)整,包括視圖位置、視圖比例、尺寸位置、明細(xì)表調(diào)整等,以達(dá)到公司的設(shè)計(jì)要求。(8)創(chuàng)建技術(shù)文檔的管理功能,形成公司需要的技術(shù)文件。(9)建立幫助文檔,給使用人員提供技術(shù)支持和幫助。系統(tǒng)的功能結(jié)構(gòu)如圖3 所示。
圖3 蒸發(fā)器的功能框架
單擊內(nèi)嵌在Solidworks 頂層菜單選項(xiàng)中的“余熱鍋爐參數(shù)化設(shè)計(jì)”按鈕下拉菜單進(jìn)入平臺(tái)登錄界面。當(dāng)輸入正確的用戶(hù)名和密碼后,就可以進(jìn)行登錄,用戶(hù)登錄界面如圖4 所示。
圖4 用戶(hù)登錄界面
從登錄界面選擇蒸發(fā)器登錄以后,進(jìn)入到蒸發(fā)器模塊的項(xiàng)目管理界面,項(xiàng)目管理界面如圖5 所示。在此界面中,只需用戶(hù)或者設(shè)計(jì)者單擊“文件路徑管理”按鈕指定新項(xiàng)目的設(shè)計(jì)條件所在路徑,即彈出“路徑設(shè)置”的窗口,路徑設(shè)置的界面如圖6 所示。
圖5 項(xiàng)目數(shù)據(jù)管理界面
圖6 路徑設(shè)置界面
配置好項(xiàng)目相關(guān)數(shù)據(jù)以后,就可以進(jìn)入到設(shè)計(jì)界面,依次對(duì)工作參數(shù)、總裝參數(shù)、換熱管組、聯(lián)箱、殼體、總裝驅(qū)動(dòng)部分進(jìn)行參數(shù)輸入,圖7 為總裝參數(shù)輸入界面,由于篇幅所限,換熱管組、聯(lián)箱、殼體的參數(shù)輸入界面不一一列出。
圖7 總裝參數(shù)輸入界面
對(duì)每個(gè)界面參數(shù)設(shè)置完成后,即可進(jìn)行模型驅(qū)動(dòng),點(diǎn)擊界面上“尺寸驅(qū)動(dòng)模型”即可完成三維模型建模。圖8 為在模板的基礎(chǔ)上經(jīng)參數(shù)化驅(qū)動(dòng)后生成的蒸發(fā)器總裝配體模型。
當(dāng)保存完模型之后,界面中的“生成工程圖”功能就能使用。點(diǎn)擊“生成工程圖”按鈕,系統(tǒng)將自動(dòng)生成工程圖并對(duì)工程圖進(jìn)行各種調(diào)整,包括視圖位置、視圖比例尺寸位置、注釋、材料明細(xì)表等內(nèi)容的調(diào)整
圖8 蒸發(fā)器總裝模型
本文所研究的蒸發(fā)器設(shè)計(jì)系統(tǒng)中PDM 技術(shù)的應(yīng)用是以文檔、數(shù)據(jù)管理為重點(diǎn),對(duì)整個(gè)設(shè)計(jì)過(guò)程所產(chǎn)生的設(shè)計(jì)數(shù)據(jù)文檔采用了高效、完善的管理模式。圖9是蒸發(fā)器系統(tǒng)的項(xiàng)目管理的主界面。
圖9 項(xiàng)目管理主界面
本系統(tǒng)的數(shù)據(jù)和文檔管理功能主要體現(xiàn)在以下方面:
(1)數(shù)據(jù)查詢(xún)方面。采用合同類(lèi)型和合同號(hào)進(jìn)行篩選的查詢(xún)模式,選擇好查詢(xún)條件后,點(diǎn)擊查詢(xún),數(shù)據(jù)即自動(dòng)從數(shù)據(jù)庫(kù)錄入設(shè)計(jì)界面,方便設(shè)計(jì)人員從界面直觀(guān)地對(duì)數(shù)據(jù)進(jìn)行理解、修改。每次對(duì)新項(xiàng)目進(jìn)行設(shè)計(jì)后,只要點(diǎn)擊錄入數(shù)據(jù)庫(kù)即可將界面的數(shù)據(jù)存入數(shù)據(jù)庫(kù),以備以后查詢(xún)。通過(guò)不斷地?cái)U(kuò)充使得數(shù)據(jù)庫(kù)數(shù)據(jù)越來(lái)越完善,設(shè)計(jì)效率也就越來(lái)越高。
(2)文檔管理方面。采用產(chǎn)品統(tǒng)一發(fā)布的形式將各零部件、機(jī)構(gòu)設(shè)計(jì)的設(shè)計(jì)文檔按結(jié)構(gòu)關(guān)系存儲(chǔ)在統(tǒng)一的路徑下。由于設(shè)計(jì)過(guò)程采用模塊化設(shè)計(jì),因此盡管在結(jié)構(gòu)上各模塊存在依附關(guān)系,但是各設(shè)計(jì)單元可以獨(dú)立設(shè)計(jì),利用產(chǎn)品發(fā)布功能將各設(shè)計(jì)模塊所生產(chǎn)的圖紙文檔發(fā)布到指定的保存路徑下。各設(shè)計(jì)模塊按照機(jī)構(gòu)零部件圖號(hào)保存在以合同號(hào)命名的圖庫(kù)目錄下,組成三維圖庫(kù)、數(shù)據(jù)文檔等一系列設(shè)計(jì)成品庫(kù),這樣既利于圖紙文檔的發(fā)布存儲(chǔ)及之后的查詢(xún),也方便了同一合同中上下級(jí)零部件模型信息的調(diào)用讀取。
借助SolidWorks 軟件平臺(tái),以SQL Server 數(shù)據(jù)庫(kù)存儲(chǔ)管理數(shù)據(jù),用Visual Basic.Net 編程語(yǔ)言開(kāi)發(fā)出了蒸發(fā)器參數(shù)化設(shè)計(jì)系統(tǒng)。該平臺(tái)實(shí)現(xiàn)了蒸發(fā)器產(chǎn)品在個(gè)性化的功能需求和設(shè)計(jì)需求下的產(chǎn)品快速設(shè)計(jì),滿(mǎn)足了規(guī)范化、系列化產(chǎn)品個(gè)性定制的需求。
[1] 汪仁杰,仲梁維.基于SolidWorks 的鍋爐殼體產(chǎn)品族敏捷設(shè)計(jì)研究[J].機(jī)械工程與自動(dòng)化,2015(1):42-43,45.
[2] 陳秀娟.面向Web 服務(wù)的框架木箱參數(shù)化設(shè)計(jì)系統(tǒng)的研究與開(kāi)發(fā)[D].濟(jì)南:山東大學(xué),2011.
[3] SolidWorks 公司.SolidWorks 高級(jí)教程:二次開(kāi)發(fā)API[M].北京:北京機(jī)械工業(yè)出版社,2007.
[4] 蔡云紅,孫誠(chéng),黃利強(qiáng).基于SolidWorks 的瓶蓋結(jié)構(gòu)參數(shù)化設(shè)計(jì)的研究[J].包裝工程,2012(21):100-103.
[5] 王相兵,王宗彥.面向模塊化、智能化、參數(shù)化的產(chǎn)品變型設(shè)計(jì)技術(shù)研究[J].機(jī)械科學(xué)與技術(shù),2010(2):153-158.
[6] 吳同喜,仲梁維,戴秀海,等.基于模塊化設(shè)計(jì)思想的鍍膜機(jī)快速設(shè)計(jì)研究[J].包裝工程,2012(13):91-94,119.
[7] 劉漢武,仲梁維,陳俊林,等.基于知識(shí)工程的橋式起重機(jī)快速設(shè)計(jì)模式研究[J].港工技術(shù),2012(2):12-14.
[8] 李戩.基于知識(shí)重用的橋式起重機(jī)快速設(shè)計(jì)系統(tǒng)研究與開(kāi)發(fā)[D].太原:中北大學(xué),2013.
[9] 吳偉偉,唐任仲,侯亮,等.基于參數(shù)化的機(jī)械產(chǎn)品尺寸變型設(shè)計(jì)研究與實(shí)現(xiàn)[J].中國(guó)機(jī)械工程,2005(3):32-36.
[10]鮑東,仲梁維.利用參數(shù)化設(shè)計(jì)技術(shù)的起重機(jī)快速設(shè)計(jì)研究[J].現(xiàn)代制造工程,2014(2):1-5.