趙鵬德 閆棟 閆玲
摘? 要: 以VB為開發工具,通過調用solidworks對象和API函數,實現尺寸驅動的鈑金箱體的三維建模及自動裝配。通過對鈑金箱體實際產品數據進行歸類管理,總結出通用的設計流程。模擬主特征面逐步添加面上輔助特征及階梯面特征的設計過程,調用相應特征函數實現鈑金件的三維建模。通過改變鈑金件在裝配環境下的位姿矩陣達到虛擬裝配的目的。此輔助設計系統,減少了設計過程中大量重復勞動,提高了產品的設計效率。
關鍵詞: SolidWorks;二次開發;參數化設計;自動裝配
中圖分類號: TP39? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.10.028
本文著錄格式:趙鵬德,閆棟,閆玲. 基于SolidWorks二次開發的鈑金箱體三維建模[J]. 軟件,2019,40(10):125128
The 3D Modeling of Sheet Metal Box Based on Secondary Development of SolidWorks
ZHAO Peng-de1, YAN Dong1, YAN Ling2
(1. School of Mechanical and Automotive Engineering, Shanghai University of Engineering Sicence, Shanghai 201620, China;
2. Department of mechanical and electrical, Yanzhou Coal Mining Company Limited Dongtan Coal Mine, Shandong 273512, China)
【Abstract】: Using VB as a development tool, the 3D modeling and automatic assembly of the size-driven sheet metal case is realized by calling the solidworks object and the API function. Through the classification and management of the actual product data of the sheet metal cabinet, the general design process is summarized. The main feature surface of the simulation is gradually added to the design process of the surface auxiliary features and the step surface features, and the corresponding feature function is called to realize the three-dimensional modeling of the sheet metal parts. The purpose of virtual assembly is achieved by changing the pose matrix of the sheet metal in the assembly environment. This auxiliary design system reduces the amount of repetitive work in the design process and improves the design efficiency of the product.
【Key words】: SolidWorks; Secondary development; Parametric design; Automatic assembly
0? 引言
如今日常生活中,鈑金箱體被廣泛使用。配電箱、操作柜、機箱等箱體型號多樣,結構、工藝都有所不同。因為沒有統一的歸類管理和分析,導致設計時存在大量重復勞動,同時大多企業仍采用手工方式進行板金件的展開,這勢必降低了設計的正確率和效率。鈑金零件在工業中往往作為輔助零件使用,標準化程度低,故很少有專業的軟件來進行輔助設計。
常用的三維軟件,例如Pro/E、UG、Solidworks、CATIA等都具有鈑金模塊,但只能實現簡單鈑金件的展開,并不能減少設計過程中的重復工作量。所
以有必要結合市場中的鈑金箱體實例數據,對solidworks進行二次開發[1],來達到輔助設計、減少工作量、提高設計效率的目的。
較以往軸類零件、齒輪零件等傳統零件[2]的二次開發不同,鈑金箱體多為裝配結構,需要零件建模[3]之后再實現自動裝配,且箱體中的零件樣式多變不固定。所以,需要通過對鈑金箱體的實例進行分析,總結出零件的通用設計流程,以便生成各類箱體零件[4]的模型。
1? 問題描述
鈑金箱體的按結構分為兩種[5],焊接結構和拼裝結構。焊接結構的鈑金箱體通常僅包括箱體和箱門兩部分。箱體由一個鈑金件經過裁剪、折彎、開孔后焊接而成。拼裝結構則由多個鈑金件裝配而成,主要分為底板、左側板、右側板、上蓋板、前門板等。箱體由多個鈑金件進行分開加工后組裝而成,各鈑金件再由螺絲和三通進行連接。焊接結構箱體的設計較為簡單,本文以拼裝結構箱體進行說明。
拼裝結構箱體的設計流程如下圖1所示。
首先是選擇需要的基體樣式,而后提取出所有方向的主特征面,在每個主特征面上添加孔特征、沖壓特征等面上輔助特征,之后對所有主特征面進行分配,每組特征面再添加階梯面特征后構成獨立鈑金件。最后對所有鈑金件進行裝配得到需要的箱體設計方案。
其中,每個鈑金件都包含主特征面、面上輔助特征、階梯面特征三個部分,拼裝結構箱體中的右側板鈑金件設計流程如圖2所示。
其主特征面是右上切角的矩形面,面上輔助特征包括20個沖壓特征,4個?8圓孔,2個?40圓孔。階梯面由solidworks中的斜接法蘭功能生成,所需要繪制的草圖為階梯面的截面形狀。圖3中右側為零件的階梯面截面,左側為階梯面特征的表示形式。
所以,輔助設計系統總體需要兩個部分,鈑金件的建模和箱體的裝配。首先用戶在界面上選擇模型基體、特征類型并輸入尺寸參數后,再調用solidworks的內置函數逐個生成鈑金件的三維模型,最后按照板件的位置信息,逐個修改其位姿矩陣進行自動裝配。最終完成設計方案,展現完整的箱體模型。
2? solidworks的二次開發
2.1? 零件的三維建模
對solidworks進行二次開發實現三維建模的原理是,通過調用solidworks的內置函數[6],實現草圖繪制、基體拉伸等功能,最后按一定的設計順序安排,實現尺寸驅動的自動建模。、
對鈑金箱體實際零件進行分析,總結出零件的通用建模流程如圖4所示。
具體流程為,首先繪制主特征面草圖,使用鈑金特征拉伸為鈑金薄板零件。之后選擇特征面,繪制圓孔的草圖,選擇拉伸切除,形成孔特征。然后,選擇沖壓模具,在特征面上進行沖壓成形。再繪制斜接法蘭草圖,選擇特征面外輪廓,形成階梯面。最后如果階梯面上存在孔特征,再繪制孔特征的草圖,拉伸切除后完成建模。
在solidworks二次開發過程中可利用宏錄制功能來獲得命令函數代碼,宏文件代碼同Visual Basic代碼類似,將宏文件代碼稍加改動便可在VB[7]中應用。因此通過VB對solidworks進行二次開發擁有獨特優勢[8]。
VB編程主要實現代碼如下:
Set swApp =CreateObject("SldWorks.Application")
'連接solidworks
swApp.Visible = True
Set Part = swApp.ActiveDoc
'新建零件
boolstatus = Part.Extension.SelectByID2("前視基準面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
'選擇前基準面
Part.SketchManager.InsertSketch True
'插入草圖
Part.SketchManager.CreateCenterRectangle 0, 0, 0, CC, GG, 0
'插入中心矩形
Set myFeature = Part.FeatureManager.Insert SheetMetalBaseFlange2(0.0018, False, 10, 0.02, 0.01, False, 0, 0, 1, customBendAllowanceData, False, 0, 0, 0, 0.5, True, False, True, True)
'拉伸為鈑金薄板
Dim skSegment As Object
Set skSegment = Part.SketchManager.CreateLine (0, GG, 0#, -SS, GG, 0#)
'繪制階梯面截面折線
Dim CBAObject As Object
Set myFeature = Part.FeatureManager.Insert SheetMetalMiterFlange(True, 10, 0.00025, True, True, 0.5, 0.001, 0.001, 1, False, 1, 0, 0, CBAObject)
'斜接法蘭生成階梯面
2.2? 箱體的自動裝配
因為箱體模型不涉及后續的運動仿真,只有三維模型展示的作用,所以移動各鈑金件到預定位置固定后便能達到目的。且采用面、邊、點配合[9]的形式,需要大量手動選擇,依舊不能很好的實現自動化的要求。所以本文采用改變零件在裝配環境下的位姿矩陣的方式來進行虛擬裝配101]。具有簡單易行、自動化程度高的優點。
該方式需要在零件建模時,對相對原點的位置選擇具有一定要求。對于鈑金箱體類零件,一般選擇零件中心為相對原點。以箱體基體的中心為絕對原點。根據尺寸信息來確定鈑金件在箱體中的空間位置,而后改變位姿矩陣來移動零件進行裝配。
該方式主要是利用了矩陣變換理論,通過矩陣變換移動一個部件在裝配體中的物理位置。Solidworks中零件的位姿矩陣形式如圖5。
元素a到i是一個旋轉矩陣,實現組件在裝配體中繞X、Y、Z軸旋轉,元素j、k、l是對應組件在裝配體中沿X、Y、Z軸方向的平移量,元素m表示組件縮放因子。具體構建的變換矩陣如表1? 所示。
其中參數a為需要繞X軸旋轉的角度,b為繞Y軸旋轉的角度,c為繞Z軸旋轉的角度,x為零件朝X軸正方向平移的距離,y為朝X軸正方向平移的距離,z為朝Z軸正方向平移的距離。
3? 用戶界面
簡潔美觀的用戶界面[11]是一個完整的軟件系統必不可缺的。本文用VB進行solidworks二次開發的同時,也構建了相關的用戶界面,來使得系統操作更簡單易行。軟件的用戶界面包括主界面、數據管理界面、零件建模界面、自動裝配界面等。主要界面如圖7、圖8、圖9所示。
4? 結論
基于solidworks平臺,利用VB語言對其進行二次開發,經實際測試所編寫的輔助設計軟件能夠實現常用箱體的三維建模和自動裝配,且具有歷史數據保存功能。后期對大量數據進行整理分析后,
可為系統增加自學習功能,實現智能設計。本軟件提高了設計效率,可以滿足企業的實際需求。
參考文獻
[1]劉永波. 分析AutoCAD二次開發方法的研究[J]. 軟件, 2013, 34(05): 148-149.
[2]郭麗靜. 基于UG的標準直齒圓柱齒輪的參數化建模[J]. 軟件, 2012, 33(06): 56-58.
[3]杜軒, 李登橋. 螺紋連接件三維參數化建模系統開發[J]. 軟件, 2012, 33(12): 14-17.
[4]王衛榮, 齊芬. SolidWorks的二次開發在箱體類零件中的應用[J]. 機械工程與自動化, 2007(2): 33-34.
[5]張勝文, 李群, 朱鵬. 基于Solidworks制麥設備數字化設計平臺的開發[J]. 機械設計與制造, 2017(s1): 164-167. .
[6]馬詠梅, 丁行武, 李鑫. SolidWorks二次開發在機械零件設計中的應用與研究[J]. 機械傳動, 2010, 34(1): 72-74.
[7]董海波, 胡坤, 方永麗, 唐守鋒. VB平臺下的虛擬實驗軟件開發研究[J]. 軟件, 2011, 32(06): 20-22.
[8]李建峰, 趙繼承, 趙隨軍, 張威望. 臥式半球封頭圓筒體罐容積計算及VB數學建模編程應用[J]. 軟件, 2012, 33(04): 129-132.
[9]呂曉燕, 賈海英, 張曉鐘. 基于VB對SolidWor二次開發方法的研究[J]. 機械設計與制造, 2005(3): 114-116.
[10]田源, 王欣, 許濱, 等. 基于SolidWorks二次開發的自動裝配技術研究與應用[J]. 機械科學與技術.
[11]吳昊. 一種基于模型的用戶界面開發方法[J]. 軟件, 2015, 36(08): 7-11.