吳永正
(玉門油田機(jī)械廠技術(shù)部)
壓力容器制造工藝過(guò)程卡是針對(duì)容器零件加工、部件裝配、總體組裝及容器出廠檢驗(yàn)等過(guò)程,按加工、組裝工序編制的用于指導(dǎo)加工過(guò)程、組裝過(guò)程和質(zhì)量檢查的技術(shù)文件,也是記錄實(shí)施加工、組裝、質(zhì)量檢查部門、操作人員、檢查人員和實(shí)施日期的重要質(zhì)量記錄文件[1]。因此,壓力容器制造工藝過(guò)程卡應(yīng)按臺(tái)進(jìn)行編制,對(duì)主要受壓元件應(yīng)做到“一件一卡”。
制造工藝過(guò)程卡由主管工藝人員編制,工藝責(zé)任工程師審核后發(fā)至生產(chǎn)班組,隨零部件的加工工序流轉(zhuǎn)[2]。但是,壓力容器屬于單件小批量生產(chǎn),因此編制壓力容器制造工藝過(guò)程卡和焊接工藝規(guī)程的工作量大且效率低。
VB.net是基于微軟.net Framework上的面向?qū)ο蟮木幊陶Z(yǔ)言,其界面友好,可通過(guò)簡(jiǎn)單輸入?yún)?shù)引用Word類型庫(kù)進(jìn)行聯(lián)合編程,并自動(dòng)生成所需文件。
由于各制造廠制造工藝有較大區(qū)別(如有些制造廠對(duì)公稱直徑大于800mm的筒體選用內(nèi)坡口,有些廠家選用外坡口;有些廠家對(duì)封頭外協(xié)采購(gòu),只需編制外購(gòu)件檢驗(yàn)卡,有些廠家自行制造則需編制制造過(guò)程工藝卡),目前尚無(wú)統(tǒng)一且適合多數(shù)廠家使用的壓力容器制造工藝編制軟件。雖然一些研究者給出了計(jì)算機(jī)軟件編程技術(shù)在壓力容器制造工藝編制中的應(yīng)用,但其僅限于框架或組織結(jié)構(gòu)性內(nèi)容,不便于實(shí)際操作[3,4]。為此,筆者提出將VB.net編程技術(shù)應(yīng)用于壓力容器制造工藝編制中,以便工藝人員能夠快速上手開發(fā)出適合本廠使用的工藝編制軟件。
1.1設(shè)計(jì)文檔模板
利用VB.net控制Word既可以在Word中通過(guò)錄制宏后使VB.net和VBA聯(lián)合編程生成所需的Word文檔;也可以先將通用性內(nèi)容設(shè)計(jì)成Word文檔模板,然后通過(guò)代碼操作模板文件來(lái)生成所需的文檔[5]。相對(duì)來(lái)說(shuō),設(shè)計(jì)模板的方法具有代碼數(shù)量少和操作簡(jiǎn)單的特點(diǎn)。
1.2界面設(shè)計(jì)
在Windows編程中,窗體是界面設(shè)計(jì)的基礎(chǔ),也是最終用戶的操作對(duì)象。
啟動(dòng)Visual Studio 2010,新建項(xiàng)目Visual Basic>Windows>Windows窗體應(yīng)用程序,即可進(jìn)行界面設(shè)計(jì)。
1.3編寫代碼
將所需表達(dá)的內(nèi)容按照一定的語(yǔ)法和算法組合即構(gòu)成代碼。代碼是計(jì)算機(jī)能識(shí)別的語(yǔ)言,也是編程的核心部分。
在編寫代碼前需要先添加Word應(yīng)用程序?qū)ο髱?kù):?jiǎn)螕舨藛沃械摹绊?xiàng)目”>”添加引用”菜單項(xiàng),在彈出的對(duì)話框中選擇COM菜單下的“Microsoft Word X Object Library”(注:Word 2003中X為11.0,Word 2007中X為12.0)。
VB.net操作Word編程時(shí)常用的代碼如下:
Dim wrdApp As Word.Application‘定義Word對(duì)象變量;
Dim wrdDoc As Word._Document‘定義文檔實(shí)例對(duì)象變量;
wrdApp = CreateObject("Word.Application")‘創(chuàng)建Word對(duì)象;
wrdApp.Visible = True‘設(shè)置Word對(duì)象可見(jiàn);
wrdDataDoc1 = wrdApp.Documents.Add(Template:=Application.StartupPath & "文檔名稱.dot")‘打開對(duì)象模板;
wrdDataDoc1.Bookmarks.Item("書簽名稱").Range.Text = “要插入的內(nèi)容”‘替換書簽內(nèi)容;
wrdDataDoc1.Tables(1).Cell(6,2).Range.InlineShapes.AddPicture(FileName:=(Application.StartupPath & "圖片.jpg"))‘將圖片插入到第一個(gè)表格的第6行、第2列;
wrdApp.Selection.GoTo(Word.WdGoToItem.wdGoToLine, Word.WdGoToDirection.wdGoToLast)‘移至文檔結(jié)尾;
myrange = wrdDataDoc6.Range‘選擇對(duì)象;
myrange.Copy()‘復(fù)制對(duì)象;
myrange.Paste()‘粘貼對(duì)象;
wrdDataDoc.Activate()‘文檔激活;
myrange = Nothing‘清除選擇對(duì)象;
wrdDoc = Nothing‘清除實(shí)例對(duì)象;
wrdApp = Nothing‘清除Word對(duì)象;
以浮頭式換熱器制造工藝編制軟件為例進(jìn)行說(shuō)明。浮頭式換熱器制造工藝卡主要包括封頭制造過(guò)程卡、管箱短節(jié)制造工藝過(guò)程卡、管箱部件組裝過(guò)程檢驗(yàn)卡及換熱器總裝過(guò)程檢驗(yàn)卡等。
2.1設(shè)計(jì)文檔模板
打開Microsoft Word 2003軟件,新建Word文檔,將相同部分設(shè)計(jì)成文檔模板(管箱短節(jié)制造工藝模板如圖1所示)。在需要變動(dòng)的部分依次插入書簽,如產(chǎn)品名稱、產(chǎn)品工號(hào)、厚度及長(zhǎng)度等。將設(shè)計(jì)好的文檔另存為“浮頭制造工藝卡.dot”,模板文件另存為.dot格式后可以在對(duì)模板文件進(jìn)行寫入編輯操作時(shí)不破壞原文件的內(nèi)容和格式,僅相當(dāng)于操作復(fù)制的文件。
2.2界面設(shè)計(jì)
啟動(dòng)Visual Studio 2010,新建項(xiàng)目Visual Basic>Windows>Windows窗體應(yīng)用程序,即可進(jìn)行界面設(shè)計(jì)。界面內(nèi)容應(yīng)包括各受壓元件參數(shù),同時(shí)也可以將數(shù)據(jù)保存到Access數(shù)據(jù)庫(kù)中,浮頭式換熱器制造工藝編制軟件界面如圖2所示。
圖1 管箱短節(jié)制造工藝模板
圖2 浮頭式換熱器制造工藝編制軟件界面
2.3主要源代碼
主要源代碼如下:
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click‘生成制造工藝卡
Dim wrdApp As Word.Application
wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True‘對(duì)象可見(jiàn)
Dim wrdDataDoc As Word._Document
wrdDataDoc = wrdApp.Documents.Add(Template:=Application.StartupPath & "浮頭制造工藝卡.dot")‘打開模板
wrdDataDoc.Bookmarks.Item("產(chǎn)品編號(hào)").Range.Text = "TextBox1.Text"‘替換標(biāo)簽內(nèi)容
……
wrdApp = Nothing‘清除Word對(duì)象
wrdDataDoc= Nothing‘清除實(shí)例對(duì)象
End Sub
調(diào)查結(jié)果顯示(表2),施肥能明顯提高四方竹的出筍量,施用的肥料類型不同,對(duì)出筍的影響不同,但出筍量均明顯高于對(duì)照。其中,施用有機(jī)肥的處理(處理Ⅲ)出筍量最多,施用氮肥、磷肥和鉀肥的2個(gè)處理(處理Ⅰ和處理Ⅱ)間施肥效果十分接近。試驗(yàn)結(jié)果表明,施有機(jī)肥更能促進(jìn)竹林發(fā)筍[3-4],可能是由于谷殼覆蓋,改善了土壤的水熱條件,從而促進(jìn)了發(fā)筍行為,且發(fā)筍時(shí)間相對(duì)其他幾種處理都更早一些。
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click‘將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中
Dim cn1 As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim sql1 As String
cn1 = New ADODB.Connection
cn1.Open("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "zhizao.mdb;")‘打開數(shù)據(jù)庫(kù)
rs1 = New ADODB.Recordset
rs1.Open(sql1, cn1, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)
rs1.AddNew()
rs1("產(chǎn)品編號(hào)").Value = TextBox1.Text
rs1("管程試驗(yàn)壓力").Value = TextBox2.Text
……
rs1.Update()
cn1.Close()
cn1 = Nothing
rs1 = Nothing
sql1 = Nothing
End Class
從數(shù)據(jù)庫(kù)中讀取文件與將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中代碼類似,此處不再贅述。
先設(shè)計(jì)Word模板,然后使用VB.net開發(fā)制造工藝編制軟件,能夠大幅提高壓力容器制造工藝編制的效率,使工藝編制人員從繁雜重復(fù)的勞動(dòng)中解脫出來(lái),以便從事更多計(jì)算機(jī)無(wú)法替代的設(shè)計(jì)工作。
[1] GB 150-2011,壓力容器[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2011.
[2] 王春林,龐春虎.化工設(shè)備制造技術(shù)[M].北京:化學(xué)工業(yè)出版社,2009:34~37.
[3] 慕仁社,岳玉鳳,秦彥斌.壓力容器計(jì)算機(jī)輔助工藝設(shè)計(jì)與管理系統(tǒng)軟件的開發(fā)及應(yīng)用[J].壓力容器,2000,17(3):81~83.
[4] 黃志勇.壓力容器制造CAPP系統(tǒng)的研究開發(fā)[J].化工設(shè)備與管道,2007,44(3):19~22.
[5] 彭顯鋒.用VB6.0控制Word創(chuàng)建規(guī)范性文檔[J].貴州氣象,2008,32(2):40~42.