李帥
(棗莊學院 物理與電子工程系,山東 棗莊 277160)
Solidworks的二次開發(fā)及參數(shù)化設計
李帥
(棗莊學院 物理與電子工程系,山東 棗莊 277160)
討論了以 Solidworks為平臺,對 CAD軟件進行二次開發(fā)的必要性.介紹了利用VisualBasic高級程序語言對其進行二次開發(fā)的一般方法,該方法避開了開發(fā)中的難點,減少了工作量,對設計人員具有一定的參考價值和現(xiàn)實意義.
Solidworks;VisualBasic;二次開發(fā);參數(shù)化設計*
Solidworks是一套基于W indows平臺的參數(shù)化特征建模軟件,以其強大的功能、簡潔的界面和不斷創(chuàng)新的技術而逐漸成為主流的三維設計軟件.Solidworks通過對象鏈接與嵌入(即OLE技術)為用戶提供了大量的 Solidworks API函數(shù),因此,凡是支持 OLE編程的開發(fā)工具均可用于 Solidworks的二次開發(fā),創(chuàng)建出符合用戶特殊需求的功能模塊.Solidworks還可與MARC、ANSYS等有限元分析軟件進行連接,實現(xiàn)仿真分析[1].
但是 Solidworks也不可能完全滿足企業(yè)的所有要求,例如沒有適用于我國國標的標準件庫等等.因此,為了適應企業(yè)的特殊需求,使 Solidworks在我國企業(yè)中發(fā)揮作用,并使常用或重復的任務簡單化,就必須對其進行專業(yè)化和本地化的二次開發(fā).
Solidworks的二次開發(fā)工具很多,例如:Delphi、C語言、Visual C++、VisualBasic等,開發(fā)者可結合自身的條件和特點選擇一種合適的開發(fā)工具.當然,也可同時選用兩三種工具,但這對開發(fā)者的要求極高[3].
VB是目前可運行在W indows平臺下的主流開發(fā)工具之一,其對OLE的支持有兩種方式——使用OLE控件和在運行時創(chuàng)建OLE對象.為了更好地控制對象,多采用程序運行時再創(chuàng)建OLE對象的方法.同時,由于Visual Basic具有簡單易用性和真正的“所見即所得”特性,使用VisualBasic來開發(fā)軟件,開發(fā)周期短,代碼效率高[3].目前用VisualBasic 6.0開發(fā) Solidworks主要有兩種方法:
(1)宏錄制.先用人機交互形式建立模型,設置合理的變量,再通過 VB程序驅動變量來更新模型.Solidworks提供了宏錄制功能,可記錄用戶的界面菜單操作所用到的Solidworks對象、方法,然后使用宏重新執(zhí)行這些操作.宏所包含的調用與使用用戶界面執(zhí)行操作時對API的調用類似,通過記錄宏和交互式的執(zhí)行命令,可在所需的代碼上獲得命令和語法上的一致性.這種方法編程較容易,通用性好.
(2)直接編程.調用 Solidworks API函數(shù)編寫程序代碼,完全實現(xiàn)模型的編輯以及三維模型的參數(shù)化設計.這種方法要求使用者非常熟悉 Solidworks API函數(shù),對于初學者有一定的難度,但可以建立具有復雜形體的零件造型.故本文采用第一種方法進行開發(fā).
在球頭立銑刀的刃磨仿真研究中,為了優(yōu)化刃磨參數(shù)﹑分析誤差,需要建立不同尺寸的銑刀毛坯,若對其進行參數(shù)化設計則可避免重復性勞動,縮短研發(fā)周期.下面以實例來說明二次開發(fā)的過程:
(1)實體創(chuàng)建的宏錄制
結合工程人員的設計意圖,分析實體結構,確定特征建立的先后順序.為了避免生成過多的冗余程序代碼,應盡量減少驅動參數(shù),盡可能簡化特征建立的步驟.打開宏錄制,在 Solidworks中創(chuàng)建實體并用變量標注參數(shù)尺寸,草圖如圖1所示.
圖1 銑刀毛坯草圖Fig1 The sketch ofmill blank
(2)人機交互式界面的設計
應遵循界面友好﹑操作方便的原則,有出錯警告及提示幫助信息.窗體上有兩個Tex tBox控件用于控制銑刀半徑和刀柄長度,設置時將兩個文本框的變量與草圖中的 a,b變量關聯(lián)起來.兩個 CommandButton控件分別用于執(zhí)行實體的生成和退出,設置時將兩個命令按扭的 Caption屬性分別設置為“確定”、“返回橢圓系統(tǒng)”,設計好的用戶界面見圖2.
圖2 銑刀毛坯界面Fig2 The interface ofmill blank
(3) 程序代碼的編寫及調試
由于前面用宏錄制得到了實體建立的基礎代碼,開發(fā)人員根據(jù)宏文件中的對象和方法在自己開發(fā)的應用程序中合理組織,稍做修改,對具體參數(shù)用變量來關聯(lián),這樣通過對變量的控制就可實現(xiàn)球頭立銑刀毛坯的參數(shù)化設計.在二次開發(fā)過程中,宏錄制文件中的許多對象、方法可以直接在 Visual Basic應用程序中應用,大大簡化了開發(fā)過程.具體程序代碼及注釋如下:
Private Sub Command1_Click() ’單擊主要對象按鈕1
D im s wApp As Object ’定義程序對象句柄
D im Part As Object ’定義零件對象句柄
D im boolstatus As Boolean ’boolstatus聲明為布爾值
D im a As Variant ’定義a為數(shù)值型變量
D im b As Variant ’定義b為數(shù)值型變量
a=Text1.Text/1000 ’給刀具半徑賦值,單位為毫米
b=Text2.Text/1000 ’給刀柄長度賦值,單位為毫米
Set s wApp=CreateObject("Sld Works.Application") ’創(chuàng)建一個應用程序
Set Part=s wApp.Newpart() ’新建一個零件文檔
Set Part=s wApp.ActiveDoc ’激活打開的文件
boolstatus=Part.Extension.Selec tBy ID("Front Plane","PLANE",0,0,0,False,0,
Nothing) ’選擇前視基準面作為草圖平面
Part.InsertSketch2 True ’插入草圖’Part.ClearSelection2 True ’清除選擇.此句程序可省略,以下同
Part.CreateLine2 0,0,0,0,a,0 ’生成直線OA’Part.ClearSelection2 True
Part.CreateLine2 0,a,0,b,a,0’生成直線AB
’Part.ClearSelection2 True
Part.CreateTangen tArc2 b,a,0,b+a,0,0,1 ’生成圓弧BC’Part.ClearSelection2 True
Part.CreateLine2 b+a,0,0,0,0,0 ’生成直線CO’Part.ClearSelection2 True
Part.CreateLine2(-a,0,0,b+2* a,0,0).ConstructionGeometry=True’生成旋轉
中心線 l
boolstatus=Part.Extension.Selec tBy ID("Line4","SKETCHSEG MENT",0,0,0,True,
0,Nothing)
Part.ShowNamedView2"*Tr imetric",8 ’以等軸測視圖顯示
’Part.ClearSelection2 True
boolstatus=Part.Extension.Selec tBy ID("Line4","SKETCHSEG MENT",0,0,0,False,
4,Nothing) ’選擇默認旋轉中心線
boolstatus=Part.Extension.Selec tBy ID("Sketch4","SKETCH",0,0,0,True,0,Noth
ing) ’選擇默認草圖輪廓
Part.Feature Manager.FeatureRevolve 6.28318530718,False,0,0,0,1,1,1’旋轉生成
零件
Part.Selection Manager.EnableContourSelection=0 ’表示輪廓選擇,可以省略
Part.ViewZoomtofit2 ’把視圖調整到最佳位置
End Sub
Private Sub Command2_Click() ’單擊主要對象按鈕2
Load UserFor m3 ’返回橢圓系統(tǒng)窗體
UserFor m3.Hide’隱藏該窗體
End
End Sub
(4) 運行程序
程序代碼編寫好以后,生成 exe可執(zhí)行文件,做為插件添加到 Solidworks的界面中.設計者只要輸入半徑和刀柄參數(shù),即可自動生成實體模型.這樣就完成了球頭立銑刀毛坯的參數(shù)化設計.執(zhí)行上述程序的結果見圖3,前刀面刃磨仿真結果如圖4所示.
圖3 球頭立銑刀毛坯Fig3 The blank of ball-nose end mill
圖4 球頭立銑刀前刀面刃磨仿真Fig4 Simulation of rake face grinding on ball-nose end mill
Solidworks提供了豐富的二次開發(fā)接口,用戶可以結合自身的實際情況和開發(fā)目的采用適當?shù)拈_發(fā)方法[6].本文以銑刀毛坯的創(chuàng)建為例,簡要介紹了利用 VB對 Solidworks進行二次開發(fā)的一般方法及步驟,此方法避開了開發(fā)過程中的難點,減少了工作量,達到了開發(fā)目的.建立的二次開發(fā)系統(tǒng),運行可靠,簡單方便,具有一定的實際意義.同時,對CAD/CAM軟件的應用和推廣具有重要的推動作用.
[1]李華,羅會信.Solidworks的二次開發(fā)與應用[J].機械工程與自動化,2005,8(4):41-43.
[2]王青,鄔義志,夏冠華.三維 CAD/CAM系統(tǒng)二次開發(fā)技術[J].機械制造與自動化,2001,(4):183~185.
[3]江洪,李仲興,邢啟恩.SoildWorks2003二次開發(fā)基礎與實例教程[M].北京:電子工業(yè)出版社,2003.
[4]清源計算機工作室編著.VisualBasic6.0開發(fā)寶典[M].北京:機械工業(yè)出版社,1999.
[5]張莉.基于 Solidworks平臺的二次開發(fā)技術[J].計算機時代,2003,(lO):31-33.
[6]江洪,魏崢等.Solidworks二次開發(fā)實例解析[M].北京:機械工業(yè)出版社,2004.
[責任編輯:陳慶朋]
TP39
A
1004-7077(2010)02-0079-04
2009-11-26
李帥(1982-),男,山東棗莊人,助教,工學碩士,主要從事特種刀具和現(xiàn)代切削加工理論方面的研究.