【文章內(nèi)容簡介】
塊圖 數(shù)據(jù)庫實現(xiàn)在二維下料系統(tǒng)中,其中重要的一部分就是毛坯零件信息庫的管理。在管理這些數(shù)據(jù)時,需要對這些數(shù)據(jù)進行插入、修改和刪除等操作。但最重要的是要對這些數(shù)據(jù)進行分析,然后從分析結(jié)果中把厚度、材質(zhì)相同的毛坯零件放在同一個下料任務(wù)表中,并且要把表中那些長寬相同的加在一起。毛坯零件基本信息實體的ER圖如33所示。圖33 毛坯信息關(guān)系數(shù)據(jù)模型由概念模型轉(zhuǎn)化而來,是按照計算機系統(tǒng)的觀點來對數(shù)據(jù)建模的。上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為某種數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。毛坯零件基本信息表如表31所示。表31 毛坯數(shù)據(jù)庫字段屬性字段名類型長度是否為空說明編號數(shù)字長整型N長度數(shù)字單精度N二維下料零件的長度寬度數(shù)字單精度N二維下料零件的寬度厚度數(shù)字單精度N二維下料零件的厚度材料文本50N二維下料零件的材料數(shù)量數(shù)字單精度N二維下料零件的數(shù)量名稱文本50N二維下料的名稱 功能與應(yīng)用背景二維下料優(yōu)化系統(tǒng)可以對所有的零件進行下料優(yōu)化,達到提高下料利用率,加快下料速度,降低成本,提高生產(chǎn)率的目的。本優(yōu)化系統(tǒng)主要的功能有:(1)零件庫的建立與維護,包括零件的添加、修改與刪除等。(2)可以加入和刪除零件庫。(3)可以查詢和修改常用零件庫。(4)可以建立常用零件庫。(5)生成下料圖表,直觀方便,直接應(yīng)用于生產(chǎn)。 二維下料優(yōu)化系統(tǒng)的實現(xiàn)VB數(shù)據(jù)庫應(yīng)用程序有3個部分,即數(shù)據(jù)庫引擎、數(shù)據(jù)庫和應(yīng)用程序。 數(shù)據(jù)庫引擎是數(shù)據(jù)庫驅(qū)動程序,使用它,我們可以用統(tǒng)一的格式訪問各種文件。使用VB應(yīng)用程序訪問數(shù)據(jù)庫時,Jet引擎被包含在一組動態(tài)連接(DLL)文件中。運行時,這些文件被引用到VB程序中。(Access文件后綴)文件或其他數(shù)據(jù)庫的物理操作。Jet引擎真正讀取、寫入和修改數(shù)據(jù)庫,并處理所有內(nèi)部的事務(wù)。數(shù)據(jù)庫是包含數(shù)據(jù)庫表的一個或多個文件。對于本地Access數(shù)據(jù)庫來說。 添加公共模塊模塊1定義兩個函數(shù),以提高代碼執(zhí)行效率:Option ExplicitPublic Declare Function CopyFile Lib kernel32 Alias CopyFileA (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long39。定義文件復(fù)制的API函數(shù)39。檢測文件是否存在Function FileExists(FileName As String) As Boolean On Error Resume Next FileExists = Dir$(FileName) If 0 Then FileExists = False End If On Error GoTo 0End Function模塊2主要定義兩個常用變量,程序中可直接使用以減少重復(fù)定義.Option ExplicitDim yyyy As String 39。主要標識符Type stunum As StringEnd Type 歡迎模塊的實現(xiàn)(1)為了使系統(tǒng)美觀,開始首先進入歡迎界面,其主體部分用Timer和VScroll控制可以循環(huán)顯示使界面具有動態(tài)美。實現(xiàn)的滾動文字的函數(shù)如下:Private Sub Timer1_Timer() = 100b = b + 1 39。制作滾動的文本框If b i Then b = 0 If = + 20 Then = 30 Else = DoEvents End If = = True DoEvents t = Left(atitle, b) = tEnd Sub圖34 歡迎模塊示例歡迎界面的功能:點擊圖標,進入二維下料優(yōu)化設(shè)計系統(tǒng)。 系統(tǒng)主模塊的實現(xiàn)在車床切割期間一次只能使用一種板材,因此在尋求最優(yōu)排樣方案前應(yīng)先創(chuàng)建本次任務(wù)的分批數(shù)據(jù)庫,然后依據(jù)板材名稱、規(guī)格和厚度的不同,把總體下料任務(wù)劃分為具體的各個子任務(wù),并存放在分批數(shù)據(jù)庫中。在左上角的list用于顯示分批數(shù)據(jù)庫中的各個下料任務(wù)表名,這樣用戶可以很方便的選擇每次要實現(xiàn)的子任務(wù),并進行排樣。有時用戶需要的下料信息并不是從別的任務(wù)派生出來的,這時用戶可以通過“新建下料表”自己創(chuàng)建一個具體的下料任務(wù)表。表存儲在數(shù)據(jù)庫的同時用戶也可以在右側(cè)的text文本框里看到新建的表名。當一個任務(wù)完成時,點擊一下“確認下料表”就可以把表名從text文本框中刪除,用戶可以方便的了解總的任務(wù)完成的進度。為了便于用戶及時準確清楚每次的下料數(shù)據(jù),此界面添加了一個DataGrid控件。用戶不管點擊list還是text里的表名,選中表的詳細信息就會添加到DataGrid控件中,用戶還可以選擇其中的記錄進行添加、刪除、更新等操作。任務(wù)表和板材的信息確定后就可以通過“方案圖表”來實現(xiàn)最優(yōu)排樣方案,并繪制方案圖形。Private Sub fangantubiao_Click()為實現(xiàn)排樣的函數(shù)。核心代碼部分如下:w = 39。記錄條數(shù) 寬度向量ReDim sy(101, 2 * w + 1) 39。為動態(tài)數(shù)組變量重新分配存儲空間ReDim c(1, w)For i = 1 To wc(1, i) = Val() * Val() 39。val函數(shù)返回包含于字符串內(nèi)的數(shù)字,字符串中是一個適當類型的數(shù)值Next i 39。cj表示第j種排樣方式所使用板材的單張面積,如果只用一種板材,可令cj=L H,1=j=mu = Val() 39。板料寬度 價值向量For i = 1 To wb(i, 1) = (5).Value 39。數(shù)量Next iFor i = 1 To wFor j = 1 To wIf i = j Thena(i, j) = 1 39。a()為單位矩陣Elsea(i, j) = 0End IfNext j, iReDim p(1, w)For i = 1 To w 39。長度 39。鋸縫p(1, i) = (1).Value + Val() 39。p()單個樣本長度(比實際長度多一個鋸縫)Next iFor i = 1 To wsw(1, 2 * i 1) = sp(1, i) 39。sw()為單個樣本寬度 長度交替sw(1, 2 * i) = p(1, i)Next iReDim su(1, 2 * w)For i = 1 To wsu(1, 2 * i 1) = Int(Val() / p(1, i)) 39。板材長度/單個樣本長度su(1, 2 * i) = Int(Val() / sp(1, i)) ‘su()為單個樣本長度倍數(shù)、與寬度倍數(shù)交替Next i基于上述功能的實現(xiàn),運行實例如圖35所示的。圖35 系統(tǒng)主模塊示例二維下料系統(tǒng)主界面的主要功能有:(1)新建非常規(guī)下料任務(wù)表,并對其進行添加、刪除、修改等操作。(2)輸入原料的尺寸以及鋸縫、材料厚度、名稱等數(shù)據(jù)。(3)通過點擊“產(chǎn)品數(shù)據(jù)”來建立常規(guī)下料任務(wù)表。(4)運行計算顯示方案圖表。(5)退出程序。 產(chǎn)品分類模塊的實現(xiàn)二維下料系統(tǒng)產(chǎn)品分類界面主要功能:(1)添加常規(guī)類下料任務(wù)表(自動存儲)。(2)對已有的下料任務(wù)進行添加、修改、刪除等操作。(3)這些產(chǎn)品進行分類、并保存到數(shù)據(jù)庫中。(4)刪除常規(guī)類下料任務(wù)表。(5)所建產(chǎn)品數(shù)據(jù)庫可以隨時調(diào)用,避免重復(fù)輸入數(shù)據(jù)的麻煩。(6)每個產(chǎn)品規(guī)格表在加入下料表時可以更改其中的數(shù)據(jù)記錄,并可設(shè)置下料套數(shù)。(7)只需雙擊產(chǎn)品規(guī)格表就可把數(shù)據(jù)加入下料任務(wù)表中,點擊“數(shù)據(jù)分類”就可在主界面自動生成下料任務(wù)表。(8)最主要的功能就是數(shù)據(jù)分析,首先創(chuàng)建一個分批數(shù)據(jù)庫,然后依據(jù)名稱、規(guī)格、厚度的不同下料任務(wù)分為不同的下料任務(wù)表并保存在分批數(shù)據(jù)庫中。運行實例如圖36所示。圖36 產(chǎn)品分類模塊示例 方案圖表生成模塊的實現(xiàn)方案圖表生成模塊主要功能:給出排樣方案表中的排樣數(shù)據(jù)以及排樣中的條帶分布規(guī)律并輸出板材總的板材下料利用率,每種排樣的零料以及此次下料