VB開(kāi)發(fā)SolidWorks實(shí)現(xiàn)機(jī)械產(chǎn)品參數(shù)化設(shè)計(jì)

2013-05-17  by:廣州有限元分析、培訓(xùn)中心-1CAE.COM  來(lái)源:仿真在線

作者: 劉志海*魯青*李桂莉*梁慧斌 來(lái)源: 萬(wàn)方數(shù)據(jù)
關(guān)鍵字: VB SolidWorks 參數(shù)化設(shè)計(jì) ActiveX自動(dòng)化
SolidWorks是流行的三維設(shè)計(jì)軟件,介紹了SolidWorks三維設(shè)計(jì)軟件的特點(diǎn)和二次開(kāi)發(fā)方法,研究了利用VB基于ActiveX Automation技術(shù)對(duì)SolidWorks軟件進(jìn)行二次開(kāi)發(fā)實(shí)現(xiàn)參數(shù)化設(shè)計(jì)的過(guò)程,以及開(kāi)發(fā)過(guò)程中用到的工程數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),最后以滾動(dòng)軸承為例進(jìn)行了驗(yàn)證,實(shí)現(xiàn)了機(jī)械產(chǎn)品的參數(shù)化設(shè)計(jì)。

1 SolidWorks軟件的開(kāi)發(fā)方法
   
SolidWorks軟件是世界上第1個(gè)基于Windows開(kāi)發(fā)的三維CAD系統(tǒng),是目前市場(chǎng)上所見(jiàn)到的三維CAD解決方案中設(shè)計(jì)過(guò)程最簡(jiǎn)便、最方便的三維機(jī)械產(chǎn)品設(shè)計(jì)軟件。SolidWorks提供了幾百個(gè)功能強(qiáng)大、免費(fèi)的API,應(yīng)用程序接口)函數(shù),以方便用戶根據(jù)需要進(jìn)行二次開(kāi)發(fā)。API函數(shù)是OLE(對(duì)象鏈接或嵌人)和COM(組件對(duì)象模型)的接口,SolidWorks API是一個(gè)自上而下多層次的樹(shù)形網(wǎng)絡(luò)結(jié)構(gòu),每一層又包括若干個(gè)對(duì)象,其部分組織結(jié)構(gòu)如圖l所示,最頂層是應(yīng)用程序級(jí)對(duì)象SldWorks,該對(duì)象中封裝了很多方法和屬性,在sldWorks對(duì)象下面又定義了若干個(gè)子類,如Environment、Frame,每個(gè)對(duì)象又有自己的屬性、方法和事件。在這些接口對(duì)象中封裝的有關(guān)方法和屬性,涵蓋了全部的SolidWorks數(shù)據(jù)模型,用戶通過(guò)客戶應(yīng)用程序?qū)@些API對(duì)象及其方法和屬性的操作,實(shí)現(xiàn)對(duì)SolidWorks的功能定制與擴(kuò)展。在Solidworks中加入ActiveX自動(dòng)化服務(wù)功能(ActiveX Automation Server Capability),用戶可以通過(guò)支持ActiveX的可視化編程工具如Visual Basic、Visu.al Basic for Applications(VBA)、Visual Basic.NET、Visual C++.NET、Visual C++ 6.0、Visual C++.NET、Delphi、SolidWorks宏文件等進(jìn)行快速開(kāi)發(fā),實(shí)質(zhì)是通過(guò)客戶端應(yīng)用程序來(lái)控制服務(wù)端的對(duì)象、方法和屬性,實(shí)現(xiàn)某種功能,在利用VB語(yǔ)言開(kāi)發(fā)SolidWorks的過(guò)程中,VB開(kāi)發(fā)的應(yīng)用程序是客戶端,而SolidWorks則是服務(wù)器端。VBA是VB開(kāi)發(fā)語(yǔ)言的子集常嵌套于支持Acfive Automation技術(shù)的應(yīng)用程序中,如Microsoft Office、AutoCAD、SolidWorks等,其功能是實(shí)現(xiàn)應(yīng)用程序的自動(dòng)化、增強(qiáng)系統(tǒng)的功能以及滿足用戶的需求。由于必須依賴于應(yīng)用程序而不能生成可執(zhí)行文件,所以不能獨(dú)立發(fā)布程序,但其快速的開(kāi)發(fā)過(guò)程和卓越的開(kāi)發(fā)能力使其他語(yǔ)言無(wú)法比擬。VB作為功能強(qiáng)大的面向?qū)ο箝_(kāi)發(fā)工具,可以創(chuàng)建標(biāo)準(zhǔn)應(yīng)用程序、動(dòng)態(tài)鏈接庫(kù)、ActiveX控件等,許多應(yīng)用程序均基于該種語(yǔ)言進(jìn)行開(kāi)發(fā),本文中滾動(dòng)軸承的參數(shù)化設(shè)計(jì)實(shí)例就是基于這種工具進(jìn)行的。
   
    2參數(shù)化圖形設(shè)計(jì)
   
    所謂參數(shù)化設(shè)計(jì)是指設(shè)計(jì)圖形的拓?fù)潢P(guān)系不變,尺寸形狀由一組參數(shù)進(jìn)行約束,參數(shù)與圖形的控制尺寸有顯式的對(duì)應(yīng)。參數(shù)化設(shè)計(jì)與傳統(tǒng)設(shè)計(jì)相比,最大的特點(diǎn)是它儲(chǔ)存了整個(gè)設(shè)計(jì)過(guò)程,使工程技術(shù)人員可以通過(guò)更改某些約束參數(shù)的數(shù)值即可快速獲得不同的零件。SolidWorks環(huán)境下參數(shù)化設(shè)計(jì)一般有2種形式:①由軟件本身提供的特征造型功能而實(shí)現(xiàn)的參數(shù)化設(shè)計(jì),如拉伸的深度、截面圓的半徑大小等,可以編輯修改,這種方法不需要用戶編程,只要熟練掌握特征造型功能即可;②基于ActiveX Automation技術(shù)由內(nèi)嵌的VBA或其他二次開(kāi)發(fā)語(yǔ)言編程實(shí)現(xiàn)的參數(shù)化設(shè)計(jì),通過(guò)定義的若干參數(shù)進(jìn)行驅(qū)動(dòng)繪圖,這種方法對(duì)編程人員的綜合能力要求較高,既要有較強(qiáng)的編程能力,還要熟練掌握SolidWorks的零件設(shè)計(jì)過(guò)程。在利用Visual Basic開(kāi)發(fā)SolidWorks參數(shù)化設(shè)計(jì)的過(guò)程中,一般應(yīng)遵循的步驟是:①參數(shù)定義;②參數(shù)取值;③實(shí)體生成與編輯。
   
    2.1參數(shù)定義
   
在基于尺寸驅(qū)動(dòng)的參數(shù)化圖形設(shè)計(jì)中,一般是外形輪廓相對(duì)固定而只在尺寸上有數(shù)值差異的系列圖形,因此對(duì)這些零部件圖形的處理主要是定義各外形輪廓的尺寸變量名稱,在定義過(guò)程中,對(duì)參數(shù)的命名應(yīng)本著簡(jiǎn)化、形象、完整的原則,既不能有多余的尺寸而構(gòu)成過(guò)約束,也不能有遺漏的尺寸而構(gòu)成欠約束,過(guò)約束和欠約束的情況均無(wú)法實(shí)現(xiàn)圖形的設(shè)計(jì),位置尺寸需要由尺寸鏈進(jìn)行求解。
   

VB開(kāi)發(fā)SolidWorks實(shí)現(xiàn)機(jī)械產(chǎn)品參數(shù)化設(shè)計(jì)solidworks仿真分析圖片圖片1

2.2參數(shù)取值
   
在機(jī)械零部件的參數(shù)化設(shè)計(jì)中,對(duì)于尺寸參數(shù)的取值,一般都對(duì)應(yīng)一系列的尺寸數(shù)值,而這些尺寸數(shù)值在有關(guān)的機(jī)械設(shè)計(jì)手冊(cè)中一般表現(xiàn)為數(shù)據(jù)表格、圖表曲線、圖形以及計(jì)算公式的形式,有些表格樣式比較復(fù)雜且存在部分交叉現(xiàn)象,在參數(shù)化設(shè)計(jì)過(guò)程中,若每次都要進(jìn)行手工查詢,需要花費(fèi)一定的時(shí)間,且不能保證數(shù)據(jù)讀取或計(jì)算的準(zhǔn)確性。在進(jìn)行參數(shù)化設(shè)計(jì)之前,引入比較成熟的工程數(shù)據(jù)庫(kù)技術(shù),將涉及到的有關(guān)表格進(jìn)行簡(jiǎn)化或整理,構(gòu)成一種關(guān)系型數(shù)據(jù)庫(kù)表格,在設(shè)計(jì)過(guò)程中就可以按照要求,利用SQL(結(jié)構(gòu)化查詢語(yǔ)言)進(jìn)行條件檢索,能縮短檢索時(shí)間、準(zhǔn)確性高、并提高計(jì)算精度。常用的數(shù)據(jù)庫(kù)系統(tǒng)有Microsoft Access、Microsoft SQL Server、Oracle等多種,由于桌面數(shù)據(jù)庫(kù)Microsoft Access具有小巧靈活、支持SsQL語(yǔ)言、可以通過(guò)ODBC管理、存儲(chǔ)多種數(shù)據(jù)類型、支持Windows的各種操作系統(tǒng)等優(yōu)點(diǎn),廣泛應(yīng)用于各種工程設(shè)計(jì)的數(shù)據(jù)存儲(chǔ)處理中。
   
對(duì)于訪問(wèn)數(shù)據(jù)庫(kù)表格數(shù)據(jù)內(nèi)容的方法,通常可以采用ODBC、DAO、RDO、ADO等方式,ADO(Active Data Object)是Microsoft公司為在Intemet網(wǎng)絡(luò)上發(fā)布數(shù)據(jù)庫(kù)而推出的最新產(chǎn)品,建立在自動(dòng)化基礎(chǔ)上,能夠訪問(wèn)任何兼容ODBC或OLEDB的數(shù)據(jù)庫(kù),具有高度的伸縮性、支持連接池、復(fù)雜的數(shù)據(jù)操作、斷開(kāi)的記錄集及編程簡(jiǎn)單和方便的優(yōu)點(diǎn)。ADO主要由Connection對(duì)象、Command對(duì)象、RecordSet對(duì)象、Fields集合與對(duì)象、Parameters對(duì)象與集合、Errors對(duì)象與集合等組成。在vB中使用ADO時(shí),應(yīng)先加載對(duì)ADO對(duì)象的引用,即點(diǎn)擊執(zhí)行菜單"工程"-"引用"-"Microsoft ActiveX Data Objects 2.5 Library"。由于計(jì)算機(jī)安裝的應(yīng)用程序中對(duì)應(yīng)的ADO版本有差異,所以在出現(xiàn)的引用對(duì)話框中也可能有多個(gè)版本的ADO庫(kù)文件,應(yīng)根據(jù)需要以及有關(guān)的操作選用具體版本,并非版本越高越好,例如程序中若用到ADO的MoveComplete事件,則不同版本中的定義形式不同。
   
    2.3實(shí)體生成與編輯
   
SolidWorks提供了拉伸、旋轉(zhuǎn)等多種特征造型工具,用戶重復(fù)或組合使用這些工具可以比較輕松地完成復(fù)雜零件的三維圖形設(shè)計(jì),但是在對(duì)其進(jìn)行二次開(kāi)發(fā)的過(guò)程中應(yīng)該使用哪些API函數(shù)以及如何使用這些函數(shù)進(jìn)行特征造型和視圖切換,是編程開(kāi)發(fā)中面臨的難題,很多人感覺(jué)無(wú)從下手。由于VBA常用于錄制宏代碼,可提供一種便捷的途徑,即按照零件的實(shí)際設(shè)計(jì)過(guò)程由用戶預(yù)演的方式,通過(guò)啟用"錄制宏"的功能,具體是執(zhí)行菜單命令"工具"一"宏操作"一"錄制",在SolidWorks環(huán)境下使用拉伸、切除等特征造型工具完成整個(gè)設(shè)計(jì)過(guò)程,將本次零件設(shè)計(jì)全過(guò)程錄制成宏代碼(后綴是swp的文件),然后用VBA環(huán)境打開(kāi)剛才錄制的宏,將其中一些關(guān)鍵數(shù)據(jù)用參數(shù)名稱進(jìn)行替換,修改文檔對(duì)象名稱,最后將這些代碼拷貝到VB環(huán)境下,即可得到該零部件參數(shù)化設(shè)計(jì)的源代碼。
   
    3設(shè)計(jì)實(shí)例
   
滾動(dòng)軸承是一種應(yīng)用非常廣泛的標(biāo)準(zhǔn)零件,其結(jié)構(gòu)主要由外圈、內(nèi)圈、保持架和滾動(dòng)體等組成。傳統(tǒng)的軸承參數(shù)化設(shè)計(jì)一般采用分別建立各組成零件然后裝配自底向上的建模方法,為減少文件操作,降低零件的裝配復(fù)雜度,將其作為一個(gè)文件進(jìn)行設(shè)計(jì)和管理。
   
    (1)參數(shù)定義
   
軸承參數(shù)化標(biāo)注如圖2所示,定義的參數(shù)有軸承外徑D、軸承內(nèi)徑d、滾動(dòng)體直徑尺、外圈壁厚召。以及內(nèi)圈壁厚曰:。有關(guān)的計(jì)算A=(D-d)/2,Bl=3A/8,B2=3A/8,R=A/4。
   

VB開(kāi)發(fā)SolidWorks實(shí)現(xiàn)機(jī)械產(chǎn)品參數(shù)化設(shè)計(jì)solidworks仿真分析圖片圖片2


(2)參數(shù)選擇
   
根據(jù)對(duì)滾動(dòng)軸承國(guó)家標(biāo)準(zhǔn)有關(guān)數(shù)據(jù)的研究,本著構(gòu)建、查詢方便的原則,篩選出本次參數(shù)化設(shè)計(jì)中有用的數(shù)據(jù),采用Microsoft Access 2000桌面數(shù)據(jù)庫(kù)系統(tǒng),定義存儲(chǔ)表格的字段類型、字段長(zhǎng)度和表格名稱等內(nèi)容。
   
設(shè)計(jì)中以軸承中間孔的直徑d作為查詢的依據(jù),在VB工程中引用"SldWorks 2004 Type Library"和"Microsoft ActiveX Data Objects 2.5 Library"類型庫(kù),定義ADO連接對(duì)象和記錄集對(duì)象,參照如下代碼可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),并獲得軸承大徑尺寸、軸承寬度、安裝尺寸等數(shù)據(jù)。
   

VB開(kāi)發(fā)SolidWorks實(shí)現(xiàn)機(jī)械產(chǎn)品參數(shù)化設(shè)計(jì)solidworks仿真分析圖片圖片3


根據(jù)前面查表得到的參數(shù)值,依次繪制軸承外圈、軸承內(nèi)圈、滾道和滾動(dòng)體等實(shí)體零件,最后對(duì)生成的滾動(dòng)體進(jìn)行圓周陣列。在設(shè)計(jì)過(guò)程中將會(huì)用到SelectByID(選擇草圖、基準(zhǔn)軸等圖形對(duì)象)、ClearSe lection2(清除選擇)、CreateCircle(繪制圓)、ShowN.amedView2(顯示視圖)FeatureExtrusion(拉伸特征)、FeatureRevolveCut(旋轉(zhuǎn)切除特征)、ActivateSelectedFeature(激活選中特征)、FeatureCirPattem(圓周陣列特征)等方法。生成的三維模型如圖3所示。

VB開(kāi)發(fā)SolidWorks實(shí)現(xiàn)機(jī)械產(chǎn)品參數(shù)化設(shè)計(jì)solidworks仿真分析圖片圖片4


開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:VB開(kāi)發(fā)SolidWorks實(shí)現(xiàn)機(jī)械產(chǎn)品參數(shù)化設(shè)計(jì) SolidWorks培訓(xùn)課程 SolidWorks設(shè)計(jì)教程 SolidWorks視頻教程 SolidWorks軟件下載 SolidWorks在建筑室內(nèi)設(shè)計(jì)工業(yè)設(shè)計(jì)的應(yīng)用 SolidWorks基礎(chǔ)知識(shí) SolidWorks代做 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) Autoform培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com