章雙全,劉敬波,員一澤,王海龍
(國電聯合動力技術有限公司,北京 100039)
?

基于SolidWorks二次開發的風機塔架參數化設計
章雙全,劉敬波,員一澤,王海龍
(國電聯合動力技術有限公司,北京 100039)
摘要:介紹了SolidWorks參數化設計的方法及以VB為開發環境對風機塔架參數化設計進行二次開發的流程,通過調用API函數進行設計表格操作、零件建模、組件裝配,最終實現風機塔架參數化設計自動建模,提高了風機塔架設計效率。
關鍵詞:參數化設計;二次開發;風機塔架
0引言
風力發電機中塔架起著支撐機艙和風輪的作用,目前絕大多數塔架是管式塔架,分段制造,兩端帶有法蘭[1]。管式塔架呈錐形筒狀結構,結構形式比較規則,雖然易于設計但由于零部件較多,工作量大且繁瑣。因此,有必要對風機塔架進行參數化設計,以實現風機塔架設計自動化。本文利用SolidWorks豐富的API函數接口,采用Visual Basic對它進行二次開發,生成風機塔架參數化設計程序,從而實現塔架的參數化自動建模,能有效減少設計人員的重復工作量。
1塔架參數化設計方法及流程
SolidWorks作為一款優秀的CAD/CAE一體化三維設計軟件,其強大的參數化設計能力可滿足各種設計要求。SolidWorks參數化設計方法通常有以下三種:1) 利用軟件本身的參數化功能,可實現對任意幾何特征的參數化設計,適用范圍廣,但修改參數時需要熟悉建模思路,通用性差;2) 利用設計表格,將模型參數與Excel設計表格相關聯,只需修改表格參數就能實現參數化,適用于結構特征規則的模型,如標準件等,應用范圍受限;3) 調用API函數進行二次開發,能實現零部件任意特征的建模、功能強大、效率高,適用于工作量大或繁瑣的模型。缺點是要求設計人員具有一定的編程基礎。風機塔架結構包括筒體、平臺、焊接連接件等,具有結構形式規則且三維建模工作量大的特點,為實現開發效率最大化,本文選用方法2) 和3) 相結合的參數化設計方法。
SolidWorks使用面向對象技術設計,它提供了幾百個API函數接口。SolidWorks API的對象層次結構如圖1所示,用戶可以使用任意支持COM或OLE語言的開發工具進行二次開發,定制開發專門的功能模塊[2,3]。采用Visual Basic對其進行二次開發。

圖1 SolidWorks API對象層次結構
塔架參數化設計采用自動化設計的思路,只需要在程序界面輸入相關參數,由程序處理數據并保存在后臺數據庫,最后再調用數據并驅動API函數進行自動建模,其中由程序處理的核心內容包括計算零部件的空間位置、設計算法避開筒體焊縫位置、螺栓安裝孔位置及數量自適應生成等。塔架參數化設計模型的創建順序依次為法蘭、筒體、平臺、焊接連接件、總裝配,其流程圖如圖2所示。

圖2 塔架參數化設計流程圖
2塔架參數化設計實現過程
API函數原則上可以實現對模型的任意操作,但對代碼編程、兼容調試等要求高,二次開發難度大。為了實現二次開發效率的最大化及保證建模的可靠性,塔架參數化設計采用更新尺寸的形式,即先手動創建基礎模型并在基礎模型上定義好參數名稱,再調用API對參數值進行修改更新,從而實現參數化模型的重建。這種方法省去了調用API進行自動建模的過程,能有效地減少程序運行的失誤,從而更好地保證模型生成的可靠性。
為方便傳遞、存儲數據,如平臺尺寸、平臺位置等信息,需要建立后臺數據庫。本文數據庫的建立采用VB默認的Access,數據庫訪問采用ADO技術,通過對ADO對象Connection,Command,Recordset等的操作實現數據的管理。值得注意的是,VB使用ADO前需選中“工程”—“引用”中的“Microsoft ActiveX Data Objects 2.8 Library”。
2.3.1文檔操作
文檔操作涉及3種文檔類型,分別為PartDoc,AssemblyDoc,DrawingDoc,主要實現啟動、連接到SolidWorks,創建、保存文檔等操作,具體操作語句如下面所述。
Dim swApp, Part As Object‘聲明對象
Set swApp = GetObject(, “sldworks.Application”)‘SolidWorks已啟動時直接連接
If Err.Number <> 0 Then‘若連接失敗,則新創建SolidWorks
Set swApp = CreateObject(“sldworks.Application”)
swApp.Visible = True
End If
Set Part = swApp.NewDocument(swApp.GetUserPreferenceStringValue(swDefaultTemplateAssembly), 0, 0, 0)‘新建裝配體,GetUserPreferenceStringValue獲得軟件默認模版位置
Part.SaveAs “D:myFilemyAssembly.SLDASM”‘保存文件
2.3.2零件建模
零件建模主要指草圖繪制和特征創建(如拉伸、切除、陣列等)兩類命令。零件建模過程一般為,先操作草圖(ModelDoc2::CreateLine2,CreateCircleByRadius2,SketchRectangle等)創建圖形,再標注草圖(ModelDoc2::AddDimension2),最后創建特征(FeatureManager::FeatureExtrusion2,FeatureCut)。對于修改已定義的草圖參數,其實現過程為:打開草圖(EditSketch)—選擇尺寸(SelectByID2)—修改尺寸值(SystemValue)—完成草圖(SketchManager.InsertSketch True)。
2.3.3組件裝配
組件裝配主要實現插入零部件、配合,移動零部件等操作,對應API函數分別為AssemblyDoc::AddComponent4, AddMate3,MathUtility::CreateTransform。裝配零部件到指定位置可通過兩種方式實現:1) 精確計算零部件在裝配體中的坐標位置后直接定位,即插入零部件時(AddComponent4)指定坐標值,這種方式裝配效率最高,適用于幾何結構規則的裝配體,但需要協調好坐標系關系;2) 通過添加配合的形式(AddMate3)實現,先通過選擇與遍歷技術或定義參考基準的方式獲得配合幾何元素,再添加相應配合方式(如swMateCONCENTRIC,swMateDISTANCE等),適用范圍廣,但操作比較復雜[4,5]。塔架多數零部件的裝配可采用以上兩種方式實現,但對于分布在錐形筒內壁環向上的零部件,一般做法是先添加若干環向參考基準再采用2) 實現,這種做法費時費力。對此,本文先采用1) 將零部件精確裝配到內壁基準位置后,再由CreateTransform創建旋轉變換,從而實現環向分布,這種形式可省略創建環向分布配合的參考基準,裝配速度快,具體實現過程見下面。
boolstatus = Part. AddComponent4(CompName, ConfigName, X, Y, Z) ‘插入零部件到坐標系X,Y,Z位置
Set swComp = swSelmgr.GetSelectedObjectsComponent2(1)‘獲得旋轉零部件
Set swMathUtil = swapp.GetMathUtility‘獲得數學變換
Set swOriginPt = swMathUtil.CreatePoint()‘創建旋轉中心
Set swX_Axis = swMathUtil.CreateVector()‘創建旋轉軸
Set swXform = swMathUtil.CreateTransformRotateAxis(swOriginPt, swX_Axis, PI / 4)‘創建旋轉變形
boolstatus = swDragOp.AddComponent(swComp, False)‘添加拖動組件
swDragOp.CollisionDetectionEnabled = False‘關閉碰撞檢查選項
swDragOp.DynamicClearanceEnabled = False‘關閉動態間隙選項
swDragOp.TransformType = 1‘設置變形類型為只允許旋轉
swDragOp.DragMode = 2‘設置移動方式為自由
boolstatus = swDragOp.DragAsUI(swXform)‘生成變換
2.3.4設計表格
設計表格能對模型的幾何尺寸、特征狀態等信息進行管理,模型對應生成不同的配置。塔架參數化設計采用預制好設計表格,再由程序調用更新表格數據的形式。設計表格的操作流程為,打開表格(GetDesignTable)—編輯表格(EditTable)—更新表格(UpdateTable)—關閉表格(CloseFamilyTable)。
3界面及運行結果
根據塔架結構特點,將塔架參數化設計程序分解為法蘭、筒體、平臺、焊接連接件、總裝配等界面,其中平臺部分的界面如圖3所示,程序自動建模得到的塔架平臺模型如圖4所示,最終總裝配模型如圖5所示。

圖3 平臺參數化設計界面圖
4結語
描述了SolidWorks參數化設計的方法,介紹了采用VB對SolidWorks進行塔架參數化設計二次開發的方法,實現了塔架設計的參數化、自動化。二次開發本質上是為了實現設計自動化,先將產品設計的準則、思路集成到程序中,再據此驅動軟件進行自動化設計,可以提高設計效率,減少設計人員工作量及人為失誤。

圖4 平臺自動建模效果圖

圖5 塔架自動建模最終效果圖
參考文獻:
[1]Risφ國家實驗室,挪威船級社著. 風力發電機組設計導則[M]. 楊校生等譯. 北京:機械工業出版社,2011.
[2] 江洪,李仲興,邢啟恩.SolidWorks2003二次開發基礎與實例教程[M]. 北京:電子工業出版社,2003.
[3]SolidWorks公司著.SolidWorks高級教程:二次開發與API[M]. 杭州新迪數字工程系統有限公司編譯. 北京:機械工業出版社,2009.
[4] 易炳剛,汪雪. 基于VB的SolidWorks自動裝配技術研究[J]. 機械工程與自動化,2013,(1):94-96.
[5] 馬詠梅,丁行武,李鑫.SolidWorks二次開發在機械零件設計中的應用與研究[J]. 機械傳動,2010,34(1):72-74.

Parametric Design of Wind Turbine Tower Based on Secondary
Development of SolidWorks
ZHANG Shuang-quan, LIU Jing-bo, YUN Yi-ze, WANG Hai-long
(Guodian United Power Technology Co., Ltd., Beijing 100039, China)
Abstract:The parametric design method of SolidWorks and the processes of secondary development for wind turbine tower parametric design by VB are introduced. Through using API functions to operate design table, model parts and assemble components, the models of wind turbine tower are automatic created, thus its design efficiency is improved.
Keywords:parametric design; secondary development; wind turbine tower
收稿日期:2014-11-18
中圖分類號:TH12
文獻標志碼:A
文章編號:1671-5276(2015)02-0143-03
作者簡介:章雙全(1982-),男,福建安溪人,工程師,工學學士,主要從事機械結構設計。