尹建強(qiáng)+仲梁維+馮強(qiáng)
摘要:為了滿(mǎn)足企業(yè)對(duì)剪式升降平臺(tái)快速設(shè)計(jì)需求,以三維建模軟件為平臺(tái),提出了基于SolidWorks二次開(kāi)發(fā)的產(chǎn)品快速設(shè)計(jì)方法。應(yīng)用SolidWorks API函數(shù)二次開(kāi)發(fā)模塊,結(jié)合SQL Server數(shù)據(jù)庫(kù)技術(shù)對(duì)產(chǎn)品各零部件信息進(jìn)行管理,以高級(jí)編程語(yǔ)言VB.NET作為開(kāi)發(fā)工具,進(jìn)行二次開(kāi)發(fā)。實(shí)踐表明:使用SolidWorks進(jìn)行二次開(kāi)發(fā)的快速設(shè)計(jì)系統(tǒng)可以節(jié)省設(shè)計(jì)時(shí)間和開(kāi)發(fā)成本,提高生產(chǎn)效率。
關(guān)鍵詞:SolidWorks 二次開(kāi)發(fā);剪式升降平臺(tái);參數(shù)化設(shè)計(jì)
中圖分類(lèi)號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):16727800(2017)004009703
0引言
制造業(yè)競(jìng)爭(zhēng)激烈,企業(yè)不得不在短時(shí)間內(nèi)滿(mǎn)足不同客戶(hù)設(shè)計(jì)要求,同時(shí)還要保證產(chǎn)品設(shè)計(jì)質(zhì)量。剪式升降平臺(tái)是廣泛應(yīng)用于空中作業(yè)的專(zhuān)業(yè)設(shè)備,通過(guò)操作平臺(tái)可以在空中方便完成前進(jìn)、后退、上下、轉(zhuǎn)向等一系列動(dòng)作[1]。在對(duì)剪式升降平臺(tái)系列化設(shè)計(jì)過(guò)程中,經(jīng)常會(huì)重復(fù)用到結(jié)構(gòu)相同而尺寸不同的零部件,傳統(tǒng)方法是將每個(gè)零部件單獨(dú)設(shè)計(jì),為此占用設(shè)計(jì)人員大量時(shí)間,影響了新產(chǎn)品開(kāi)發(fā)周期[2]。鑒于機(jī)械設(shè)計(jì)領(lǐng)域?qū)?shù)化方法的廣泛應(yīng)用,本文基于SolidWorks二次開(kāi)發(fā)技術(shù)提出了剪式升降平臺(tái)結(jié)構(gòu)參數(shù)化設(shè)計(jì)思想,以減少設(shè)計(jì)人員的重復(fù)勞動(dòng),提高設(shè)計(jì)效率[35]。1SolidWorks二次開(kāi)發(fā)基本原理 SolidWorks為二次開(kāi)發(fā)提供了大量的應(yīng)用程序編程接口對(duì)象(Application Programming Interface,API),這些對(duì)象包含了全部的SolidWorks數(shù)據(jù)模型,通過(guò)對(duì)這些對(duì)象屬性的設(shè)置和調(diào)用,用戶(hù)就可在開(kāi)發(fā)的動(dòng)態(tài)鏈接庫(kù)(Dynamic Link Library,DLL)中實(shí)現(xiàn)與SolidWorks相同的功能。圖1所示為SolidWorks對(duì)象模型的層次結(jié)構(gòu),它為樹(shù)形結(jié)構(gòu)模型,以SolidWorks對(duì)象為根,其它對(duì)象都是它的子對(duì)象[6]。
本文利用尺寸驅(qū)動(dòng)法對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā)。尺寸驅(qū)動(dòng)法是將模型的尺寸標(biāo)注視為變量,然后賦予不同的尺寸值,這樣就可以保持模型結(jié)構(gòu)不變,獲得一系列結(jié)構(gòu)相同而尺寸不同的相似零件[7-8]。采用這種方法進(jìn)行二次開(kāi)發(fā),在參數(shù)化建模中只在模板模型的基礎(chǔ)上更改零件的尺寸值就可達(dá)到更新模型的目的。由于沒(méi)有重新建模過(guò)程,只是改變了已有模型的尺寸,因此提高了圖形的更新速度。 任何支持對(duì)象連接與嵌入(Object Linking and Embedding,OLE)的編程語(yǔ)言都可以作為Solid Works的開(kāi)發(fā)工具。本文選擇Visual Basic編程語(yǔ)言作為開(kāi)發(fā)工具。與其它編程語(yǔ)言相比,VB語(yǔ)言功能強(qiáng)大、規(guī)則簡(jiǎn)單、容易上手,其語(yǔ)法規(guī)則與SolidWorks提供的宏錄制功能代碼規(guī)則完全一致,程序編寫(xiě)方便 [910]。2剪式升降平臺(tái)快速設(shè)計(jì)系統(tǒng)
2.1系統(tǒng)簡(jiǎn)介
剪式升降平臺(tái)快速設(shè)計(jì)系統(tǒng)采用Visual Basic編程語(yǔ)言對(duì)SolidWorks建模軟件進(jìn)行二次開(kāi)發(fā),為用戶(hù)提供專(zhuān)用的SolidWorks功能模塊。本系統(tǒng)使用VB.NET調(diào)用SolidWorks的API函數(shù),用SQL Server數(shù)據(jù)庫(kù)建立并調(diào)用零件數(shù)據(jù)參數(shù),實(shí)現(xiàn)零件模型的建立、修改、壓縮、刪除等各項(xiàng)操作。通過(guò)剪式升降平臺(tái)參數(shù)化設(shè)計(jì)系統(tǒng),可以避免大量重復(fù)性工作,提高設(shè)計(jì)效率。
2.2系統(tǒng)設(shè)計(jì)流程
剪式升降平臺(tái)設(shè)計(jì)流程如圖2所示。設(shè)計(jì)人員進(jìn)入剪式升降平臺(tái)快速設(shè)計(jì)系統(tǒng)界面,按照產(chǎn)品需求,輸入相應(yīng)參數(shù)數(shù)據(jù),此時(shí)系統(tǒng)會(huì)檢測(cè)輸入的參數(shù)是否合理,然后對(duì)模型進(jìn)行整體驅(qū)動(dòng)。三維模型驅(qū)動(dòng)完畢后,輸出零件、部件、總裝圖的二維工程圖,并在SolidWorks界面中顯示。
2.3參數(shù)化程序
SolidWorks軟件在建模過(guò)程中會(huì)自動(dòng)將輸入的設(shè)計(jì)參數(shù)定義成變量,當(dāng)模型尺寸需要變化時(shí),只需更改生成的變量值就能達(dá)到更新模型的目的。參數(shù)化程序就是將生成的設(shè)計(jì)變量提取出來(lái),同時(shí)SolidWorks提供的宏錄制功能將建模過(guò)程輸出為代碼,通過(guò)代碼來(lái)更改設(shè)計(jì)變量值,從而驅(qū)動(dòng)新的尺寸[1112]。
3系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)
基于SolidWorks二次開(kāi)發(fā)的剪式升降平臺(tái)快速設(shè)計(jì)系統(tǒng),能夠針對(duì)不同客戶(hù)對(duì)產(chǎn)品進(jìn)行定制化設(shè)計(jì),快速設(shè)計(jì)出具有標(biāo)準(zhǔn)化和規(guī)范化的剪式升降平臺(tái)產(chǎn)品。本系統(tǒng)由多種軟件集成開(kāi)發(fā),不同軟件之間通過(guò)接口相互連接。其中,系統(tǒng)的人機(jī)界面設(shè)計(jì)與后臺(tái)的編寫(xiě)以微軟公司的Visual Basic.NET為開(kāi)發(fā)工具實(shí)現(xiàn);系統(tǒng)產(chǎn)品數(shù)據(jù)庫(kù)管理以SQL Server 2008作為數(shù)據(jù)開(kāi)發(fā)技術(shù)支撐;系統(tǒng)在SolidWorks開(kāi)發(fā)環(huán)境下進(jìn)行三維模型及二維工程圖建模與調(diào)整。
3.1系統(tǒng)界面
用戶(hù)設(shè)計(jì)界面是人機(jī)交互最重要的部分。界面應(yīng)方便設(shè)計(jì)人員對(duì)參數(shù)進(jìn)行輸入、修改和保存,簡(jiǎn)單快捷。如圖3所示,在系統(tǒng)界面不需要用戶(hù)輸入所有零部件細(xì)節(jié)參數(shù),只需輸入簡(jiǎn)單的尺寸,如總高度H、承載平臺(tái)長(zhǎng)度L、承載平臺(tái)寬度W、承載重量M等一系列關(guān)鍵參數(shù)。對(duì)于零部件的細(xì)節(jié)參數(shù),系統(tǒng)將根據(jù)輸入的關(guān)鍵參數(shù),利用寫(xiě)入程序的經(jīng)驗(yàn)公式計(jì)算得出,剪式升降平臺(tái)應(yīng)滿(mǎn)足強(qiáng)度、剛度要求。
3.2SolidWorks插件菜單實(shí)現(xiàn)
在利用Visual Basic.NET對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā)前,首先要安裝開(kāi)發(fā)組件APISDK,它為用戶(hù)提供了二次開(kāi)發(fā)功能,是連接VB.NET與SolidWorks的橋梁。使用SolidWorks API的功能編制DLL插件,可以加載到SolidWorks系統(tǒng)的內(nèi)部菜單,類(lèi)似于SolidWorks自帶的Routing、ToolBox插件。 內(nèi)嵌插件建立好后需要對(duì)其進(jìn)行相關(guān)設(shè)置。點(diǎn)擊菜單欄下SwVBAddin1的項(xiàng)目屬性,如圖4所示,此屬性下的調(diào)試功能需要設(shè)置調(diào)用SolidWorks的安裝路徑,即啟動(dòng)外部程序設(shè)置SolidWorks的安裝路徑。
設(shè)置好屬性后,按F5運(yùn)行啟動(dòng)程序,程序可直接打開(kāi)SolidWorks軟件界面并在SolidWorks上生成DLL插件。用戶(hù)根據(jù)需要自定義插件名稱(chēng),并在插件下添加一級(jí)、二級(jí)子菜單,使其滿(mǎn)足設(shè)計(jì)要求。當(dāng)用戶(hù)在SolidWorks界面單擊生成子菜單時(shí),就會(huì)彈出圖4所示的設(shè)計(jì)界面。
3.3數(shù)據(jù)庫(kù)應(yīng)用
利用SQL Server 2008作為系統(tǒng)的數(shù)據(jù)支持,它是微軟公司開(kāi)發(fā)的一款支持.NET編程環(huán)境的數(shù)據(jù)庫(kù),能夠和不同的編程語(yǔ)言進(jìn)行對(duì)接。SQL語(yǔ)言功能強(qiáng)大,用戶(hù)在數(shù)據(jù)庫(kù)環(huán)境下,通過(guò)編寫(xiě)查詢(xún)語(yǔ)句,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢(xún)、更新和修改[13]。 在剪式升降平臺(tái)快速設(shè)計(jì)系統(tǒng)開(kāi)發(fā)過(guò)程中,運(yùn)用數(shù)據(jù)庫(kù)技術(shù)對(duì)剪式升降平臺(tái)數(shù)據(jù)或參數(shù)進(jìn)行管理: (1)標(biāo)準(zhǔn)件數(shù)據(jù)管理。標(biāo)準(zhǔn)件數(shù)據(jù)管理主要是將標(biāo)準(zhǔn)件模型數(shù)據(jù)保存,當(dāng)用戶(hù)定制剪式升降平臺(tái)時(shí),通過(guò)程序代碼就可快速?gòu)臄?shù)據(jù)庫(kù)中進(jìn)行標(biāo)準(zhǔn)件選型,隨后進(jìn)行模型驅(qū)動(dòng)。 (2)液壓缸型號(hào)數(shù)據(jù)管理。設(shè)計(jì)人員在設(shè)計(jì)剪式升降平臺(tái)過(guò)程中,系統(tǒng)會(huì)自動(dòng)提取出能夠滿(mǎn)足強(qiáng)度及剛度的液壓缸。 (3)工程圖數(shù)據(jù)管理。工程圖數(shù)據(jù)管理主要是對(duì)裝配體、部件、零件的工程圖視圖比例、視圖位置、尺寸位置等一系列數(shù)據(jù)進(jìn)行定位。圖5為支撐臂工程圖尺寸的定位數(shù)據(jù)截圖。
以下為VB.NET連接數(shù)據(jù)庫(kù)代碼: Dim connectionstr As String ‘定義的鏈接字符串 connectionstr=“server=服務(wù)區(qū)地址;database=數(shù)據(jù)庫(kù);uid=用戶(hù)名;pwd=密碼” Dim conn As New SqlConnection(connectionstr)定義連接功能 conn.Open()打開(kāi)連接 conn.Close()關(guān)閉連接 數(shù)據(jù)庫(kù)連接成功后,用戶(hù)就可在VB.NET中編寫(xiě)SQL查詢(xún)語(yǔ)句,并傳遞到SQL中,實(shí)現(xiàn)人機(jī)界面對(duì)數(shù)據(jù)庫(kù)的直接訪問(wèn)。3.4工程圖參數(shù)化自動(dòng)調(diào)整技術(shù) 剪式升降平臺(tái)的工程圖使用基于參數(shù)化出圖方法。當(dāng)模型參數(shù)修改后,對(duì)應(yīng)更新的工程圖會(huì)出現(xiàn)很多問(wèn)題,例如視圖大小不一、視圖位置不合理、尺寸位置漂移等[14]。運(yùn)用SolidWorks中的DrawingDoc API函數(shù)實(shí)現(xiàn)對(duì)工程圖的參數(shù)化出圖及調(diào)整,以完善工程圖。 視圖調(diào)整很簡(jiǎn)單,只需對(duì)視圖位置的X坐標(biāo)值和Y坐標(biāo)值進(jìn)行設(shè)置,即制定好O′點(diǎn)的參數(shù)即可,O′的坐標(biāo)獲取方式可以直接在SolidWorks工程圖上捕捉,將鼠標(biāo)移動(dòng)到需要設(shè)置的點(diǎn),狀態(tài)欄上會(huì)自動(dòng)顯示位置信息。 以下為調(diào)整視圖位置代碼: Public Sub adjustViewPosition(ByVal swpart As ModelDoc2,ByVal name As String,ByVal Xpoint As Double,ByVal Ypoint As Double) ‘定義通用過(guò)程和視圖名稱(chēng),O的X坐標(biāo),Y坐標(biāo) Dim x As Single = Xpint ‘將X坐標(biāo)賦值給x變量 Dim y As Single = Ypint ‘將Y坐標(biāo)賦值給y變量 swpart.ActivateView(name) ‘激活工程圖視圖,視圖名為name變量 boolstatus=swpart.Extension.SelectByID2(name,”DRAWINGVIEW”,0,0,0,false,0,Nothing,0) ‘選擇指定的視圖 Dim swSelMgr As SelectionMgr = swpart.SelectionManager ‘定義選擇管理器,并且存放選擇的對(duì)象,即指定的工程圖視圖 Dim swView As IView = swSelMgr.GetSelectedObject5(1) ‘h獲得視圖對(duì)象 Dim swPosition As Object = swView.Position ‘定義視圖位置變量 swPosition(0) = x ‘將X變量值賦值 swPosition(1) = y ‘將Y變量值賦值 swView.Position = swPosition ‘調(diào)整視圖位置到指定位置 End Sub ‘退出通用程序 打開(kāi)SolidWorks軟件,進(jìn)入到用戶(hù)系統(tǒng)界面,并輸入相應(yīng)的設(shè)計(jì)參數(shù),點(diǎn)擊模型驅(qū)動(dòng)設(shè)計(jì)按鈕,SolidWorks軟件會(huì)自動(dòng)建立剪式升降平臺(tái)三維模型。圖6為快速設(shè)計(jì)系統(tǒng)運(yùn)行后得到的剪式升降平臺(tái)三維模型結(jié)果。
4結(jié)語(yǔ)
本文闡述了SolidWorks二次開(kāi)發(fā)的基本原理,介紹了剪式升降平臺(tái)快速設(shè)計(jì)系統(tǒng),給出該系統(tǒng)總體設(shè)計(jì)流程,并對(duì)系統(tǒng)的程序設(shè)計(jì)及實(shí)現(xiàn)過(guò)程進(jìn)行了重點(diǎn)論述。開(kāi)發(fā)的快速設(shè)計(jì)系統(tǒng)平臺(tái),用戶(hù)只需輸入關(guān)鍵參數(shù)即可進(jìn)行快速設(shè)計(jì),節(jié)省了大量設(shè)計(jì)時(shí)間,企業(yè)能快速響應(yīng)市場(chǎng)變化,大大改善了產(chǎn)品研發(fā)和設(shè)計(jì)現(xiàn)狀。
參考文獻(xiàn):
[1]孫毅.對(duì)稱(chēng)驅(qū)動(dòng)剪式升降平臺(tái)設(shè)計(jì)及研究[D].昆明:昆明理工大學(xué),2012.
[2]金建國(guó),周明華,鄔學(xué)軍.參數(shù)化設(shè)計(jì)綜述[J].計(jì)算機(jī)工程與應(yīng)用,2003(7):1618.
[3]王鴻鈞.典型機(jī)械零件參數(shù)化設(shè)計(jì)系統(tǒng)的研究與開(kāi)發(fā)[J].制造業(yè)自動(dòng)化,2010,32(7):3638.
[4]沈斌,宮大.產(chǎn)品廣義參數(shù)化設(shè)計(jì)的研究[J].計(jì)算機(jī)工程與應(yīng)用,2006,31(1):9496.
[5]李戩,楊媛媛.基于廣義參數(shù)化技術(shù)的機(jī)械產(chǎn)品設(shè)計(jì)方法研究[J].礦山機(jī)械,2012,40(12):104108.
[6]李權(quán)才,吳俊峰,武翠榮.基于SolidWorks平臺(tái)對(duì)大型架橋機(jī)的二次開(kāi)發(fā)技術(shù)[J].中國(guó)水運(yùn),2008,8(1):4143.
[7]張君偉,王士軍,鄭曉龍.基于SolidWorks尺寸驅(qū)動(dòng)法二次開(kāi)發(fā)的滾珠絲桿三維建模[J].組合機(jī)床與自動(dòng)化加工技術(shù),2015(11):2224.
[8]龍軍,孫新嶺,張濤,等.智能化尺寸驅(qū)動(dòng)法在參數(shù)繪圖中的探索應(yīng)用[J].工程圖學(xué)學(xué)報(bào),2003(4):4043.
[9]林卓然.VB語(yǔ)言程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2012.
[10]錢(qián)海軍.Visual Basic項(xiàng)目案例開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2016.
[11]商劍鵬.SolidWorks 2015完全自學(xué)手冊(cè)[M].北京:電子工業(yè)出版社,2016.
[12]陳超祥,胡啟登.SolidWorks高級(jí)教程簡(jiǎn)編[M].北京: 機(jī)械工業(yè)出版社,2015.
[13]張昊,高晶.SQL Server 2008數(shù)據(jù)庫(kù)原理及應(yīng)用教程[M].北京:清華大學(xué)出版社,2016.
[14]黃氣良,王宗彥,吳淑芳,等.參數(shù)化變形設(shè)計(jì)中工程圖調(diào)整技術(shù)優(yōu)化研究[J].工程圖學(xué)學(xué)報(bào),2011(1):168173.
(責(zé)任編輯:杜能鋼)