1 引言
在電氣領(lǐng)域中,接觸器是一種典型的電氣產(chǎn)品,廣泛用作電力主回路的開斷和控制電路。在對(duì)接觸器進(jìn)行設(shè)計(jì)的過(guò)程中,經(jīng)常會(huì)用到結(jié)構(gòu)相同或相似,尺寸卻不同的情況,通常采用的方法是將每個(gè)零件都單獨(dú)設(shè)計(jì),但是此方法占用了設(shè)計(jì)人員大部分的精力和時(shí)間,增加了新產(chǎn)品的開發(fā)周期。隨著新的設(shè)計(jì)軟件和技術(shù)在生產(chǎn)中的應(yīng)用,可以加快CAD設(shè)計(jì)的過(guò)程。
SolidWorks是基于Windows的CAD桌面集成系統(tǒng),是在繼承和總結(jié)了大型機(jī)械CAD軟件的基礎(chǔ)上,在Windows環(huán)境下實(shí)現(xiàn)的一款三維CAD軟件 ,它可以十分方便地實(shí)現(xiàn)零件造型、裝配和生成。
SolidWorks與以前的CAD設(shè)計(jì)系統(tǒng)相比具有以下特性:
(1)有直觀的 Windows用戶界面和強(qiáng)大的實(shí)體建模功能;
(2)具有方便管理的特征管理員歷史樹;
(3)雙向關(guān)聯(lián)的尺寸驅(qū)動(dòng)機(jī)制。
但是SolidWorks并不是十全十美的,無(wú)法完全滿足特定企業(yè)的特殊要求。因此,為了滿足特定企業(yè)的特殊要求,提高生產(chǎn)效率,就必須對(duì)其進(jìn)行二次開發(fā)。本研究通過(guò)SolidWorks的二次開發(fā),開發(fā)出一種接觸器鐵心的參數(shù)化設(shè)計(jì)方案。
2 SolidWorks的二次開發(fā)
SolidWorks軟件提供了完整的、免費(fèi)的開發(fā)工具(API),提供了Visual C++、VB、VBA(宏記錄)、Delphi等支持COM(Component Object Model,組件對(duì)象模型)或OLE(ObjectLinking and Embedding,對(duì)象鏈接與嵌入)的開發(fā)語(yǔ)言接口,用于SolidWorks二次開發(fā),從而在用戶自己開發(fā)的應(yīng)用軟件中實(shí)現(xiàn)諸如生成直線、構(gòu)造實(shí)體、檢查曲面表面參數(shù)等幾乎所有SolidWorks軟件的現(xiàn)有功能,用戶也可以創(chuàng)建出專用的SolidWorks功能模塊。
3 利用VB二次開發(fā)的步驟
Visual Basic具有易用、易學(xué)、程序開發(fā)周期短、有可視化設(shè)計(jì)界面等特點(diǎn)。通過(guò)VB來(lái)實(shí)現(xiàn)對(duì)SolidWorks的二次開發(fā),需要按照一定的步驟來(lái)進(jìn)行,具體的步驟如下:
(1)通過(guò)代碼使應(yīng)用程序連接Solidworks,并新建零件圖。
(2)確定能反映零件特征的尺寸參數(shù),并以此作為設(shè)計(jì)變量,同時(shí)確定尺寸之間的相互關(guān)系;
(3)利用VB進(jìn)行用戶界面的設(shè)計(jì),創(chuàng)建程序運(yùn)行界面。
(4)使用VB提供的方法和屬性,直接調(diào)用SolidWorks的API函數(shù)編寫程序代碼,實(shí)現(xiàn)三維模型的參數(shù)化設(shè)計(jì)以及模型的編輯,實(shí)現(xiàn)復(fù)雜形體的零件造型。這種方法要求開發(fā)人員對(duì)SolidWorks的API函數(shù)非常精通,對(duì)于一般初學(xué)者來(lái)說(shuō)略有難度。一個(gè)簡(jiǎn)單且實(shí)用的方法是先在SolidWorks中進(jìn)行宏錄制,獲得宏操作代碼,然后將修改后的程序復(fù)制添加到VB程序代碼的相應(yīng)部分,最后編輯、修改、調(diào)試以達(dá)到要求,通過(guò)程序驅(qū)動(dòng)設(shè)計(jì)變量實(shí)現(xiàn)模型的創(chuàng)建和更新。這種編程方法較簡(jiǎn)單,通用性好。開發(fā)者可根據(jù)自己對(duì)API掌握的熟悉程度,選擇適合自己的方法進(jìn)行程序代碼的編寫;
(5)通過(guò)變化尺寸實(shí)現(xiàn)任意相似零件三維模型的創(chuàng)建。
4 接觸器鐵心的參數(shù)化設(shè)計(jì)
圖1 尺寸參數(shù)定義
4.1 基本參數(shù)的確定
零件的參數(shù)化設(shè)計(jì),首先要確定能反映零件外形的主要尺寸值作為變量,以此變量來(lái)控制零件的外形尺寸。
定義各尺寸值的參數(shù),如圖1所示。支撐腳的基本參數(shù)為:
外形尺寸h1、外形尺寸h2、外形尺寸b1、外形尺寸b2、外形尺寸b3、厚度d。
4.2 應(yīng)用程序界面
利用VB建立應(yīng)用程序界面,如圖2所示參數(shù)輸入界面。當(dāng)運(yùn)行時(shí),只需要根據(jù)實(shí)際情況在對(duì)應(yīng)參數(shù)部分輸人數(shù)值,然后點(diǎn)擊生成鐵心,就可以建立所需要的零件模型。
圖2 參數(shù)輸入界面
4.3 程序代碼的編寫
對(duì)于程序代碼的編寫,簡(jiǎn)單實(shí)用的方法是使用SolidWorks宏功能,把零件模型繪制的全過(guò)程錄制成宏文件,提出宏文件中與模型生成有關(guān)的關(guān)鍵函數(shù),找到模型尺寸對(duì)應(yīng)的參數(shù),弄清關(guān)鍵參數(shù)的調(diào)整對(duì)零件的變化,用變量把關(guān)鍵參數(shù)替換成能被VB調(diào)用的應(yīng)用程序,通過(guò)程序的驅(qū)動(dòng)變量實(shí)現(xiàn)模型的建立和更新。
關(guān)鍵代碼如下:
Set swApp = CreateObject ("SldWorks.Application")
swApp.Visible = True
strfilename = App.Path&" \零件1.SLDPRT"
Set Part = swApp.OpenDoc4(strfilename, 1, 0, "", longstatus)
Set Part = swApp.ActivateDoc(" 零件1 ")
……..
Part.Parameter("h1@草圖1" & strfilename).SystemValue = h1 / 1000
Part.Parameter("h2@草圖1" & strfilename).SystemValue = h2 / 1000
Part.Parameter("b1@草圖1" & strfilename).SystemValue = b1 / 1000
…….
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True,
False, False, 0, 0, d, 0, False, False, False, False, 0.01745329251994,
0.01745329251994, False, False, False, False, True, True, True, 0, 0,
False)
Part.EditRebuild
這種方法編程的優(yōu)點(diǎn)是,通用性好且方便簡(jiǎn)單。
4.4 程序運(yùn)行結(jié)果
運(yùn)行程序,點(diǎn)擊“生成零件”,生成一個(gè)新的零件環(huán)境,在文本框中輸入相對(duì)應(yīng)的數(shù)值,例如:外形尺寸h1為20mm、外形尺寸h2為15mm、外形尺寸b1為5mm、外形尺寸b2為5mm、外形尺寸b3為5mm、厚度d為1mm,然后點(diǎn)擊“生成鐵心”,建立與用戶輸入數(shù)值相對(duì)應(yīng)的零件模型。如圖3所示。
圖3 程序生成接觸器鐵心
4.5 產(chǎn)品模型的自動(dòng)裝配
裝配路徑是虛擬裝配系統(tǒng)中零件實(shí)現(xiàn)自動(dòng)裝配運(yùn)動(dòng)的基礎(chǔ),取得零件的裝配路徑信息有兩種方法:
(1)用戶利用虛擬裝配環(huán)境進(jìn)行人機(jī)交互操作來(lái)指定裝配路徑。采用拆卸的方式,依次記錄每一個(gè)零件在拆卸過(guò)程的路徑關(guān)鍵點(diǎn),然后進(jìn)行求逆運(yùn)算,擬合成一條裝配路徑。
(2)用戶根據(jù)裝配體的裝配形式和特點(diǎn),通過(guò)歸類將裝配零件劃分成幾種裝配類別,然后通過(guò)用戶指定零件裝配類別,系統(tǒng)自動(dòng)計(jì)算出各零件的裝配路徑關(guān)鍵點(diǎn)。
本研究使用了第一種方法先將接觸器進(jìn)行組裝,將生成的零件調(diào)入接觸器模型并設(shè)計(jì)裝配路徑。圖4為組裝好的接觸器。
圖4 組裝好的接觸器
圖5 拆卸后的接觸器
最后對(duì)組裝好的接觸器進(jìn)行路徑規(guī)劃進(jìn)行拆卸(如圖5所示),并對(duì)其求逆便可得到裝配順序。
5 結(jié)語(yǔ)
利用VB編程語(yǔ)言對(duì)SolidWorks API函數(shù)的調(diào)用,實(shí)現(xiàn)接觸器鐵心零件設(shè)計(jì)過(guò)程的參數(shù)化、裝配自動(dòng)化。通過(guò)實(shí)例分析,可以得出結(jié)論:利用參數(shù)化建模生成零件,可以極大的提高建模的效率,縮短產(chǎn)品的開發(fā)和設(shè)計(jì)周期。
參數(shù)化建模技術(shù)是產(chǎn)品設(shè)計(jì)的一個(gè)發(fā)展趨勢(shì),將會(huì)得到廣泛的應(yīng)用。隨著科技的飛速發(fā)展,制造業(yè)競(jìng)爭(zhēng)的不斷加劇,以最短的時(shí)間開發(fā)和生產(chǎn)出高質(zhì)量、低成本的產(chǎn)品,快速滿足市場(chǎng)的需求,必將成為制造業(yè)企業(yè)所追求的目標(biāo)。
參考文獻(xiàn):
[1] 易紅. 電工電器產(chǎn)品三維CAD系統(tǒng)設(shè)計(jì)與開發(fā)[D]. 湖南大學(xué), 2008, 1 - 2.
[2] 何岸陽(yáng). SolidWorks二次開發(fā)方法研究[J].科技信息(科學(xué)教研), 2007, (28):69 - 70.
[3] SolidWorks公司. 生信實(shí)維公司編譯.SolidWorks API二次開發(fā)[M].機(jī)械工業(yè)出版社,2005.
[4] 陳營(yíng). CAD/CAM 技術(shù)現(xiàn)狀及發(fā)展趨勢(shì)[N]. 濰坊學(xué)院學(xué)報(bào), 2004, 4 (2):100 - 102.
[5] 王賢坤. 機(jī)械CAD/CAM技術(shù)、應(yīng)用與開發(fā)[M]. 北京: 機(jī)械工業(yè)出版社,2001, 68 - 70.
[6] 王衛(wèi)榮, 齊芬. SolidWorks的二次開發(fā)在箱體類零件中的應(yīng)用[J]. 機(jī)械工程與自動(dòng)化, 2007, (2): 33 - 34.
[7] 張?jiān)隽? 張繪宏.Visual Basic簡(jiǎn)明教程[M]. 西安: 西安交通大學(xué)出版社,2006.
[8] 于洋, 賀棟. 基于SolidWorks的潤(rùn)滑調(diào)節(jié)站油箱二次開發(fā)研究[J]. 制造業(yè)自動(dòng)化, 2009, 31(9): 138 - 140.
[9] 李叢德, 王得勝. 基于VB的SolidWorks漸開線齒輪二次開發(fā)方法研究[J].機(jī)電工程技術(shù), 2008, (11): 23 - 24.
作者簡(jiǎn)介
高智箭(1986- ),男,河北人,助理工程師,碩士研究生,現(xiàn)就職于天津市市政工程設(shè)計(jì)研究院,從事市政行業(yè)電氣及自動(dòng)化設(shè)計(jì)研究工作。
摘自《自動(dòng)化博覽》2月刊