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