袁 影, 孫付春, 楊 濤, 吳昌明, 甘露萍
(成都大學(xué) 機(jī)械工程學(xué)院, 四川 成都 610106)
基于SolidEdge二次開發(fā)的工程圖智能生成系統(tǒng)
袁 影, 孫付春, 楊 濤, 吳昌明, 甘露萍
(成都大學(xué) 機(jī)械工程學(xué)院, 四川 成都 610106)
針對工程圖智能生成的問題,提出一種基于SolidEdge平臺的智能生成零件明細(xì)表單、尺寸標(biāo)注、屬性填寫以及技術(shù)要求的方法,搭建VB.NET系統(tǒng)開發(fā)的總體框架,分析了系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù),實(shí)現(xiàn)了SolidEdge功能模塊的擴(kuò)展.以某醫(yī)療設(shè)備裝配為例,驗(yàn)證了工程圖智能生成的可行性.
SolidEdge二次開發(fā);BOM表;尺寸標(biāo)注;VB.NET
工程圖作為機(jī)械從業(yè)人員的語言,其制作效率對整個制造業(yè)的發(fā)展有著重要的作用,工程圖質(zhì)量的高低直接影響著產(chǎn)品的質(zhì)量和產(chǎn)生廢品的概率.隨著計(jì)算機(jī)科學(xué)的不斷發(fā)展,越來越多的企業(yè)從原來的手工繪圖轉(zhuǎn)變?yōu)槭褂肁utoCAD繪圖,從二維轉(zhuǎn)到三維設(shè)計(jì),使得工程人員制作工程圖的錯誤概率不斷降低.由于三維平臺具有可擴(kuò)展性強(qiáng)的特點(diǎn),研究者們在不同的三維平臺上實(shí)現(xiàn)了對工程圖功能模塊的擴(kuò)展,并取得了大量的成果[1-6].目前,基于SolidEdge平臺進(jìn)行工程圖的開發(fā)鮮有人涉足,而醫(yī)療病床設(shè)備帶作為醫(yī)院病床前必不可少的設(shè)備,其設(shè)計(jì)過程具有模塊化、標(biāo)準(zhǔn)化程度較高的特點(diǎn),設(shè)計(jì)人員會根據(jù)每個醫(yī)院房間大小不一和醫(yī)院自身要求不同來不斷重復(fù)設(shè)計(jì)和制作該設(shè)備.對此,本研究基于SolidEdge平臺,以醫(yī)療病床設(shè)備帶為例,開發(fā)了一套工程圖智能生成系統(tǒng).
系統(tǒng)以SolidEdge ST6為開發(fā)平臺,VB.NET作為開發(fā)框架,在Visual Studio 2013開發(fā)環(huán)境下,使用Windows應(yīng)用程序編程接口(Application Programming Interface,API)、SolidEdge API、Access數(shù)據(jù)庫和組件對象模型(Component Object Model,COM)技術(shù),實(shí)現(xiàn)了基于SolidEdge的工程圖智能生成系統(tǒng).
系統(tǒng)的工程流程如下:首先,系統(tǒng)進(jìn)入初始化階段,讀取Access數(shù)據(jù)庫中有關(guān)設(shè)備生成的參數(shù)設(shè)置到界面相應(yīng)的位置,根據(jù)設(shè)備需求設(shè)置關(guān)鍵尺寸,生成設(shè)備主體框架;隨后,系統(tǒng)進(jìn)入模塊化配置環(huán)節(jié),將設(shè)備中需要配置的模塊以自動的方式加載到裝配相應(yīng)位置,保存位置數(shù)據(jù)等信息,為二維圖尺寸標(biāo)注做準(zhǔn)備;整個裝配生成后,系統(tǒng)進(jìn)入裝配圖生成環(huán)節(jié),完成視圖、零件明細(xì)表單(Bill of material,BOM)、裝配尺寸、工程圖屬性、技術(shù)要求等工藝信息的生成.系統(tǒng)的流程圖如圖1所示.
圖1 系統(tǒng)的工程流程圖
由于模塊化配置過程主要為工程圖自動生成提供數(shù)據(jù),因此本研究主要分析工程圖自動生成模塊.
系統(tǒng)實(shí)現(xiàn)的關(guān)鍵在于:通過COM技術(shù),建立Visual Studio 2013與SolidEdge間的通信與關(guān)聯(lián),再以API對SolidEdge進(jìn)行二次開發(fā),實(shí)現(xiàn)SolidEdge平臺下的工程圖工藝信息的智能生成.
2.1 SolidEdge二次開發(fā)
為滿足不同用戶需求的定制和開發(fā),SolidEdge提供了可供用戶自定義開發(fā)API函數(shù)庫,實(shí)現(xiàn)對SolidEdge對象的訪問與控制.API接口包含了SolidEdge開發(fā)中使用到的所有類,其采用的面向?qū)ο蠹夹g(shù)的方法,在SolidEdge之下是表示應(yīng)用程序各種模型的事件、屬性和方法,其對象框架圖如圖2所示.Visual Studio 2013 VB.NET工程通過COM技術(shù)調(diào)用SolidEdge API函數(shù),可以完成某些特定功能,實(shí)現(xiàn)自動化.
圖2 SolidEdge對象框架圖
2.2 VB.NET與SolidEdge的連接
建立VB.NET與SolidEdge相關(guān)聯(lián)的系統(tǒng)開發(fā)項(xiàng)目工程主要方式為,通過Visual Studio 2013創(chuàng)建VB.NET的集成開發(fā)環(huán)境.完成創(chuàng)建后,在工程項(xiàng)目中引用連接SolidEdge的COM組件(見圖3),并在系
圖3 COM組件引用圖
統(tǒng)函數(shù)中加入如下代碼,即可創(chuàng)建VB.NET與SolidEdge間的關(guān)聯(lián).其關(guān)聯(lián)代碼為:
Dim objApplication As SolidEdgeFramework.Application=Nothing
Dim objAssemblyDocument As SolidEdgeAssembly.AssemblyDocu-
ment=Nothing
On Error Resume Next
objApplication=GetObject(,″SolidEdge.Application″)’獲取Solid-
Edge對象
If Err.Number 〈〉 0 Then '不成功,打開SolidEdge
Err.Clear()
objApplication=CreateObject(″SolidEdge.Application″)
objAssemblyDocument=objApplication.Documents.'創(chuàng)建文檔
Add(″SolidEdge.AssemblyDocument″)
objApplication.Visible=True 'SolidEdge窗口顯示
Else '打開成功,獲取SolidEdge活動文檔
objAssemblyDocument=objApplication.ActiveDocument
End If
2.3 BOM表單自動生成
BOM表單又稱零件明細(xì)表,其在裝配圖的制作中占有重要的比重.傳統(tǒng)的裝配圖采用CAD直接繪制,在三視圖上會花費(fèi)大量時間.隨著三維軟件的快速發(fā)展,當(dāng)前裝配圖的制作主要時間花費(fèi)為BOM表單的制作,而三視圖的表達(dá)只需通過軟件就可自動完成.因此,在三維平臺上實(shí)現(xiàn)BOM表單的自動生成,將大大提高設(shè)計(jì)效率.
基于SolidEdge實(shí)現(xiàn)的BOM表單自動生成功能模塊,其實(shí)現(xiàn)方式為:當(dāng)用戶點(diǎn)擊生成工程圖時,系統(tǒng)遍歷整個三維裝配樹,將裝配樹中所有零件屬性讀取并存儲在內(nèi)存中,創(chuàng)建標(biāo)準(zhǔn)BOM表頭結(jié)構(gòu)的表格,將當(dāng)前所獲取的信息按格式自動寫入表格中.有時,某些虛擬值并未在裝配樹中體現(xiàn),對此,本研究設(shè)計(jì)了對BOM表單的增加、修改與刪除功能,其核心代碼如下:
1)BOM表單創(chuàng)建.
objDraftDocument=objApp.ActiveDocument'SolidEdge工程圖活
動文檔
objSheets=objDraftDocument.Sheets'SolidEdge工程圖頁
objSheet=objDraftDocument.Sheets.Item(1)'SolidEdge工程圖打
開的頁
objDrawingViews=objSheet.DrawingViews'SolidEdge工程圖繪制
視圖
objDrawingView=objDrawingViews.Item(1)'SolidEdge工程圖主
視圖
objDrawingView.DisplayBreakLinesInBrokenState=False'視圖連接
屬性狀態(tài)
objPartsLists=objDraftDocument.PartsLists'SolidEdge工程圖零件
明細(xì)表'以主視圖創(chuàng)建零件明細(xì)表
objPartsList=objPartsLists.AddEx(objDrawingView,1,″″,1,10)
2)BOM表單增加.
objTables=objDoc.Tables'SolidEdge工程圖表單總數(shù)對象
objTable=objTables.Item(1)'SolidEdge工程圖BOM表對象
objTable.Rows.Add(1,False)'新增一行
objTable.Update()'BOM表單更新
3)BOM表單修改.
objTableCell=objTable.Cell(1,1)'BOM表單第1行第1列表格對象
objTableCell.value=1'設(shè)置該表格的值為1
4)BOM表單刪除.
objTable.Rows.Item(1).Delete()'刪除1行
objTable2.Update()
2.4 尺寸標(biāo)注自動生成
完成裝配視圖和BOM表的自動生成后,系統(tǒng)實(shí)現(xiàn)了對裝配視圖關(guān)鍵尺寸的自動生成.實(shí)現(xiàn)方式為:獲取當(dāng)前裝配圖中的配合關(guān)系,在關(guān)鍵部位創(chuàng)建點(diǎn),并調(diào)用尺寸標(biāo)準(zhǔn)API將兩點(diǎn)聯(lián)系起來,實(shí)現(xiàn)尺寸的自動標(biāo)準(zhǔn),其核心代碼如下:
Dim objPoint1 As SolidEdgeFrameworkSupport.Point2d
Dim objPoint2 As SolidEdgeFrameworkSupport.Point2d
Dim objDimStyles As SolidEdgeFrameworkSupport.DimensionStyles
Dim objDimGBStyle As SolidEdgeFrameworkSupport.DimensionStyle
Dim objDimScale As SolidEdgeFrameworkSupport.DimStyle
objSheet.DrawingViews.Item(1).GetOrigin(ViewCenterPointInfo.x,
ViewCenterPointInfo.y)'獲取主視圖中點(diǎn)坐標(biāo)
objPoint1=objSheet.Points2d.Add(ViewCenterPointInfo.x,
ViewCenterPointInfo.y)'中點(diǎn)處創(chuàng)建點(diǎn)
objPoint2=objSheet.Points2d.Add(ViewCenterPointInfo.x,y)'右
邊界創(chuàng)建點(diǎn)
objSheet.Dimensions.AddDistanceBetweenObjects(objPoint1,0.55,
0.55,0,False,objPoint2,0,0,0,False)'創(chuàng)建兩點(diǎn)間的尺寸
objSheet.Dimensions.Item(i).Style.DimensionScaleMode=0'設(shè)置
尺寸風(fēng)格
2.5 屬性及技術(shù)要求自動生成
屬性及技術(shù)要求是工程圖中關(guān)鍵的工藝信息.其自動生成功能的實(shí)現(xiàn),主要是系統(tǒng)自動捕獲屬性或設(shè)計(jì)人員自動填寫系統(tǒng)界面,系統(tǒng)獲取信息并在指定位置創(chuàng)建文本,再將所獲取的信息設(shè)置到文本中,完成整個過程.其實(shí)現(xiàn)方式如下:
Dim objSheet As SolidEdgeDraft.Sheet=Nothing
Dim objTextBoxs As SolidEdgeFrameworkSupport.TextBoxes=Nothing
Dim objTextBox As SolidEdgeFrameworkSupport.TextBox=Nothing
objSheet=objDoc.ActiveSheet
objTextBoxs=objSheet.TextBoxes'獲取文本框?qū)ο?/p>
objTextBox=objTextBoxs.Add(x1:=0.226,y1:=0.274,z1:=
0)'指定位置創(chuàng)建文本框
TextString=″技術(shù)要求″+Chr(10)'寫入文本框的內(nèi)容
objTextBox.Text=TextString'寫入
objTextBox.TextControlType=SolidEdgeFrameworkSupport.'文本框
格式
TextControlTypeConstants.igTextWrap
技術(shù)要求與屬性的實(shí)現(xiàn)方式相似,只是文本框創(chuàng)建的位置不同.
本研究所設(shè)計(jì)系統(tǒng)的測試以病床設(shè)備帶產(chǎn)品為例,實(shí)現(xiàn)了智能生成病床設(shè)備帶裝配圖,裝配圖中包含了BOM表單、裝配尺寸、工程圖屬性和技術(shù)要求.其主要實(shí)施步驟為:
1)系統(tǒng)開始,進(jìn)入病床設(shè)備帶設(shè)計(jì)系統(tǒng)主窗口.系統(tǒng)初始化時,首先連接指定目錄下的Access數(shù)據(jù)庫中設(shè)備帶代號表單,更新主窗口中設(shè)備帶代號下拉框選項(xiàng).設(shè)計(jì)人員編輯好當(dāng)前需創(chuàng)建的設(shè)備帶整體布局參數(shù),點(diǎn)擊“創(chuàng)建設(shè)備帶布局”按鈕,系統(tǒng)進(jìn)入設(shè)置設(shè)備帶長度對話框.點(diǎn)擊“確定”,完成布局創(chuàng)建,其結(jié)果如圖4所示.
圖4 系統(tǒng)三維框架測試圖
2)完成病床設(shè)備帶整體布局后,系統(tǒng)進(jìn)入“設(shè)備帶配置選型設(shè)計(jì)”選項(xiàng)卡.該功能模塊根據(jù)設(shè)計(jì)人員需要,完成將設(shè)備帶中需配置的各功能件加入到指定位置的整體布局裝配中.配置完成后,點(diǎn)擊“移動復(fù)制”按鈕,生成最終的三維裝配模型,如圖5所示.
圖5 系統(tǒng)整體布局測試圖
3)完成三維裝配模型,系統(tǒng)進(jìn)入“工程圖自動生成”選項(xiàng)卡.該功能模塊是本研究的核心.設(shè)計(jì)人員填寫好工程圖相關(guān)名稱、代碼等屬性,點(diǎn)擊“計(jì)算虛擬值”按鈕.系統(tǒng)自動計(jì)算裝配圖中各功能件的個數(shù)、電線長度、接線盒數(shù)、終端數(shù)量、螺釘數(shù)量與管道長度等.點(diǎn)擊“生成工程圖”按鈕,系統(tǒng)調(diào)用工程圖模板,完成主視圖和BOM表單的自動創(chuàng)建.BOM表單中的零件名稱、代號均從零件自身屬性中獲取,而其數(shù)量為計(jì)算所得.最后完成主視圖關(guān)鍵尺寸、技術(shù)要求及工程圖屬性生成,結(jié)果如圖6所示.
圖6 系統(tǒng)工程圖自動生成測試圖
本研究對基于SolidEdge工程圖工藝信息的智能生成進(jìn)行了深入探討,實(shí)現(xiàn)了對SolidEdge平臺功能的擴(kuò)展.在SolidEdge平臺環(huán)境下利用SolidEdge的二次開發(fā)功能,應(yīng)用Access數(shù)據(jù)庫、VB.NET以及SolidEdge API編程實(shí)現(xiàn)了自動化.本研究直接將整套設(shè)備的設(shè)計(jì)經(jīng)驗(yàn)以軟件的方式寫入數(shù)據(jù)庫,完成了從無到有的快速設(shè)計(jì),實(shí)現(xiàn)了工程圖的快速生成,減少了出錯概率,大大提高了工作效率.
[1]劉鶇根,張鐵,王小強(qiáng).基于SolidEdge采用Visual Basic開發(fā)塑料模標(biāo)準(zhǔn)件庫[J].模具工業(yè),2006,32(5):15-19.
[2]常選倉,殷國富,尹洋,等.基于SolidEdge的機(jī)床高速主軸數(shù)字化設(shè)計(jì)系統(tǒng)研究[J].機(jī)械設(shè)計(jì)與制造,2008,46(5):58-61.
[3]葉斌,劉向農(nóng),江斌,等.基于VB的SolidEdge變量化設(shè)計(jì)在換熱器設(shè)計(jì)中的應(yīng)用[J].低溫與超導(dǎo),2011,39(9):47-52.
[4]陳洋,管殿柱,何西陽,等.基于SolidWorks的蝸輪蝸桿設(shè)計(jì)系統(tǒng)研究[J].青島大學(xué)學(xué)報(bào)(工程技術(shù)版),2016,31(1):115-119.
[5]張超,廖敦明,賀云峰,等.基于UG的汽車管路自動化彎曲胎具CAD二次開發(fā)[J].模具工業(yè),2016,42(3):1-5,9.[6]杭祖權(quán).基于Pro/E二次開發(fā)的自動裝配技術(shù)[J].軍民兩用技術(shù)與產(chǎn)品,2016,29(3):57-58,62.
Intelligent Generating System of Engineering Drawing Based on SolidEdge Secondary Development
YUANYing,SUNFuchun,YANGTao,WUChangming,GANLuping
(School of Mechanical Engineering, Chengdu University, Chengdu 610106, China)
Aiming at the intelligent generating problems in engineering drawing,the paper puts forward an intelligent generating BOM form,size marking,attribute requests and technical requirements based to SolidEdge.The overall framework of VB.NET system development is built,and the key techniques for the system implementation are analyzed.Therefore,the extension of the function module of SolidEdge is realized.A medical equipment assembly is taken as an example,which is used to prove the feasibility of the intelligent generating method of engineering drawing.
SolidEdge;secondary development;BOM form;dimension marking;VB.NET
1004-5422(2017)01-0085-04
2016-10-08.
四川省教育廳自然科學(xué)基金(16ZA0382)資助項(xiàng)目.
袁 影(1993 — ), 男, 碩士研究生, 從事機(jī)械制造與設(shè)計(jì)CAD/CAM/CAE技術(shù)研究.
TH164;TP391.72
A