摘 要:根據(jù)船體型材零件數(shù)量多形狀復雜的特點,分析船廠現(xiàn)有型材下料模式,基于TRIBON系統(tǒng)的基礎(chǔ)上,通過PYTHON語言對TRIBON進行二次開發(fā),制作適合設(shè)計和施工的型材自動套料加工的管理系統(tǒng)。本研究通過提取TRIBON軟件的數(shù)據(jù)庫的信息,編制型材備料清單自動生成程序,實現(xiàn)標準格式的型材備料清單的自動生成,以及進行計算機型材預套料,從而達到提高生產(chǎn)設(shè)計效率和材料利用率的目的。
關(guān)鍵詞:TRIBON系統(tǒng);PYTHON語言;二次開發(fā);型材套料
1 TRIBON系統(tǒng)
TRIBON系統(tǒng)是瑞典KCS公司研制的用于造船設(shè)計和生產(chǎn)的專業(yè)軟件,是集計算機輔助設(shè)計與建造和信息集成于一體,并覆蓋船體、管系、電纜、艙室、涂裝等各個專業(yè)的船舶專業(yè)軟件。其特點在于用計算機建立船舶的生產(chǎn)信息數(shù)據(jù)庫,可進行各種信息數(shù)據(jù)的計算、管理和統(tǒng)計,且生產(chǎn)信息能直接被提取出來用于生產(chǎn)制造,完成設(shè)計與生產(chǎn)準備的統(tǒng)一。由于數(shù)據(jù)庫可共享,設(shè)計人員可以方便地訪問設(shè)計信息,使每個設(shè)計人員可以看到其他設(shè)計人員所作的最新變動,所以各專業(yè)之間可平行作業(yè)和相互協(xié)調(diào),降低專業(yè)間的協(xié)調(diào)成本,減少設(shè)計和制造中的修改工作量,提高設(shè)計質(zhì)量,縮短設(shè)計周期。因此,越來越多的造船行業(yè)運用TRIBON系統(tǒng)進行船舶的生產(chǎn)設(shè)計。但由于TRIBON系統(tǒng)本身的數(shù)據(jù)庫開放性不足,部分模塊和我國造船的實際情況存在差異等原因,國內(nèi)企業(yè)經(jīng)常需對TRIBON軟件進行二次開發(fā),以適合本企業(yè)使用。如我廠以63500 DWT船型為研究對象,利用Python語言編寫的型材自動套料軟件。
2 Python語言
Python是一門解釋性的、面向?qū)ο蟮摹討B(tài)語義特征的高層語言。Python是一種腳本語言,腳本語言是類似DOS批處理、UNIX shell程序的語言。腳本語言不需要每次都編譯再運行,并且在執(zhí)行中可以很容易地訪問正在運行的程序,甚至可以動態(tài)地修改正在運行的程序,適用于快速地開發(fā)及完成一些簡單的任務(wù)。
3 型材套料現(xiàn)狀
利用TIBON軟件建好模型后,通過TIBON軟件中的Profile Nesting模塊的功能,提取數(shù)據(jù)庫的信息,編制型材下料加工草圖,如圖1所示。
圖1
圖中包含了型材詳細的材料大小、材質(zhì)、端部形式、加工等信息。但只有這樣的型材圖還無法提供給采購部門進行采購。需提供詳細的材料清單,如現(xiàn)在有一個分段某種規(guī)格型材P1,P2,P3…,Pn(選用8米/根母材,超過8米型材可單獨處理)。要將這n根型材全部套料共需要8米/根該規(guī)格的型材多少根,這需要設(shè)計人員通過采用EXCEL手工統(tǒng)計,并提供用料清單給采購部門采購材料。而通過人工計算,一方面設(shè)計效率低,材料利用率不高,另一方面這樣的下料草圖下發(fā)現(xiàn)場后,現(xiàn)場施工人員還需要自己根據(jù)材料大小選擇適當?shù)拇钆鋪砜刂撇牧侠寐?,或現(xiàn)場增加的接縫往往不能考慮到斷縫與結(jié)構(gòu)或焊縫之間的距離,從而造成不必要的工程返工,占用了大量的工作時間,且無法控制材料利用率。
4 二次開發(fā)自動優(yōu)化型材套料軟件
根據(jù)套料優(yōu)化原則,針對優(yōu)化型材套料主要分為兩步來進行。
可以假設(shè)分段某種規(guī)格的n根型材需要套料為例,選用8米/根母材,且每根型材的長度都不超過母材的長度(超過母材的可以單獨處理)。
4.1 初步預套料
將需要套料的n根型材按其長度的降序排列為數(shù)據(jù)(P)=(P1,P2,P3,…,Pn)。設(shè)套有型材的母材數(shù)據(jù)(N),編號Ni中記錄了套入第i根母材中的型材數(shù)據(jù),Ni母材的余料長度記作Li(Li=8-SUM(Ni)),將(N)按余料長度升序排序。
從排序后的(P)中依次提取每根型材Pi進行套料,在排序后的(N)中依次篩選套料母材Ni、Li:如果有Li>=Pi(即型材Pi套入母材Ni中,不會超出母材的長度),則將型材Pi套入母材Ni中,并修改相應的Li的值(Li-=Pi);如果沒有滿足Li>=Pi,則新增加一根母材Nn+1,將Pi套入Nn+1中,余料長度Ln+1=8-Pi。直到套完最后一根型材Pn為止。
4.2 優(yōu)化套料
目的是為了使母材余料少的利用率更高,母材利用率低的余料更大,以便部分余料可以再次利用。
通過第一次初步預套料后,可以得到套料母材數(shù)據(jù){N}({Ni}={(Pi),Li} ,Pi為Ni母材上所套型材的數(shù)據(jù),Li為Ni母材余料長),將{N}按Li升序排列,假如得到如下事例:
N1 = {(P1,P2,P3),L1},
N2 = {(P4,P5,P6),L2},
N3 = {(P7,P8,P9),L3},
… …
Nn = {(Pn-2,Pn-1,Pn),Ln}
首先對母材N1進行優(yōu)化,將套入N1中的各型材進行任意組合之一ZP1+,與N1之后的N2至Nn中各自型材任意組合之一ZPi+進行比較,如果有0 例如,N1中的(P1+P3)和N3中的(P7+P8),滿足 (P1+P3)-(P7+P8) N1 = {(P2,P7,P8),L1}, N2 = {(P4,P5,P6),L2}, N3 = {(P1,P3,P9),L3}, … … Nn = {(Pn-2,Pn-1,Pn),Ln} (L1 -= (P1+P3)-(P7+P8), L3 += (P1+P3)-(P7+P8)) 互換后再次對{N}排序后重復對N1互換優(yōu)化,直至沒有可互換操作為止,則完成對N1的優(yōu)化工作。按照對N1的優(yōu)化操作依次完成之后的N2至Nn-1母材的優(yōu)化。 用軟件自動套料后生成的用料情況以及基本界面如圖2 圖2 圖3 其中在生成材料清單的同時,創(chuàng)建了SKE.DXF和PLS.DXF兩個文件,其中PLS.DXF文件如圖3所示,該文件中有詳細的各種規(guī)格型材長度以及每根8米長母材中包含的零件,現(xiàn)場施工人員可以根據(jù)該文件很快的進行合理套料。 5 結(jié)束語 實踐證明,采用Python語言對TRIBON軟件進行二次開發(fā)制作的型材自動套料軟件,在對分段型材進行套料時,相較于原始人工統(tǒng)計方法,不僅分段型材材料利用率得到了很大的提高,同時所耗設(shè)計工時大大縮短,準確率大大提高。該軟件縮短了工作時間,方便了現(xiàn)場施工,提高了材料利用率,最終達到了降本增效的目的。 參考文獻 [1]王世賢.實用型材下料優(yōu)化計算機程序.煤礦機械,1990.(4). [2]錢善波,孫志偉.型材自動套料管理系統(tǒng)的研發(fā)與應用[J]造船技術(shù),2008,3:8-10. [3]陳革,馮大輝譯.Python 語言入門.北京:中國電力出版社,2001. [4]王波,型材優(yōu)化下料問題的變換算法.咸寧學院學報.2005(12).