崔建昆,丁佳樂,夏 娟
(1.上海理工大學上海-漢堡國際工程學院,上海 200093;2.上海理工大學機械工程學院,上海 200093)
jackcui@usst.edu.cn;2443495771@qq.com;1005748464@qq.com
SolidWorks是目前市場上使用最為廣泛的軟件之一,它繼承和改進了以往各種CAD軟件的特點,因此,其特征選型和參數化建模等功能非常強大。SolidWorks強大的功能和良好的易適性幫助用戶不斷研發更好的產品,給用戶帶來了以下便利:容易及重復地利用設計數據、分布式的設計環境、自動化的過程更改及審批流程、切身參與整個開發的過程。它不僅具備設計、分析、加工和數據管理的功能,還具有極佳的開發性接口和功能擴充性。
VC#是微軟公司發布的基于Windows系統的面向對象的編程語言,它在繼承C和C++強大功能的同時,擯棄了C和C++的操作復雜性。VC#最主要的一個特點是完全面向對象,它可以讓程序員快速便捷地編寫基于MICROSOFT.NET平臺的應用程序,提高開發效率。
參數化設計是一款輔助設計工具,可將系列化、通用化和標準化的定型產品中隨產品規格不同而變化的參數用相應的變量代替,通過對變量的修改,從而實現建模的參數化,縮短設計周期,降低成本。工程技術人員可以根據客戶的需求自由地修改所設置的參數,從而快速有效地生成三維模型,其設計流程如圖1所示。

圖1 參數化設計流程Fig.1 Parametric design process
為了滿足用戶多樣性的要求,SolidWorks軟件中集成了數百個API函數,這些函數是SolidWorks的OLE和COM接口,通過鏈接這些接口,用戶可以使用VC#、VB、Delphi、VB.NET等編程語言對SolidWorks進行二次開發,從而建立滿足用戶要求的SolidWorks模塊。因此,要想使用SolidWorks 2018軟件進行二次開發,設計出性能優越的參數化設計系統,熟練地使用API函數和充分地了解COM/OLE技術是必不可少的。
(1)COM技術
COM技術是由微軟公司提出的一套接口標準,是一種組件對象模式,由它建立了各種組件之間的規范與協定,以便實現跨語言、跨進程溝通的目的。當采用COM技術時,技術人員不必考慮組件與其所處的運行環境是否一致,所用的開發語言是否相同以及是否運行于同一臺電腦。在COM的技術標準中,一個組件程序也被稱為一個模塊,它可以是一個動態鏈接庫,也可以是一個可執行程序。一個組件程序可以包含一個或多個組件對象,COM技術中的對象建立在二進制可執行代碼級的基礎上,而VC++、Java等語言中的對象建立在源代碼級的基礎上,因此,COM技術中的對象與語言無關。本文就是依據該項技術進行二次開發的。
(2)OLE技術
OLE技術是COM技術的延續發展,是一種對象鏈接與嵌入技術。這種技術提出了比粘貼和剪切功能更強、更規范的共享數據方式,利用這種方式可實現不同Windows應用程序之間的數據共享。OLE 1.0目的在于創建復合文檔,而OLE 2.0則超出了復合文檔的范圍,提供了更具綜合性的對象模型,該模型與編程接口相聯系,使不同的應用程序之間能夠交互和相互操作。OLE技術以COM技術標準為基礎,發揮了COM技術標準的優點,使得在Windows操作系統上的應用程序具備極強的可交互性。
本實例使用的編程語言是VC#,該語言具有可視化編程、完全面向對象的特點。它包括單一繼承、接口的語法,與COM是直接集成的。它在綜合了Visual Basic易可視化操作和C++高效率的同時,還保持了自身強大的操作能力、優雅的語言風格、創新的語言特性和便捷的面向組件編程的優點,逐步成為.NET開發的主角。
使用VC#編程語言對SolidWorks進行二次開發,最重要的一點是在應用程序中實現圓柱螺旋銑刀的參數化建模。實現參數化建模的方法有兩種:(1)編程法;(2)尺寸參數驅動法。本實例使用的是編程法,是把出現在圓柱螺旋銑刀3D零件建模過程中的各變量之間的關系儲存在程序中,以供程序調用,其實現流程圖如圖2所示。

圖2 編程法設計實現流程圖Fig.2 Design and implementation flow chart of programming method
螺旋立銑刀可以進行周銑和端銑。本實例刀具設計增加了芯厚半徑參數,使芯圓與容屑槽圓弧相切,保證了刀具的抗彎強度。周刃前角的大小影響刀尖的鋒利程度,容屑半徑影響刀具的排屑性能,螺旋角大小與切削阻力密切相關。如圖3所示,周刃齒形的截面線主要由前刀面、槽底圓弧、過渡圓弧、第一后刀面及第二后刀面組成,點的坐標為(0,0,0),點的坐標為(0,,0)。圖3中幾何參數的變量符號如表1所示。

圖3 立銑刀周刃齒形Fig.3 Tooth profile of peripheral edge of end mill

表1 周刃齒形的幾何參數Tab.1 Geometric parameters of tooth profile of peripheral edge
由圖3分析可得,點的坐標為:

線段和線段的長度為:

點的坐標為:

點的坐標為:

點的坐標為:

由此可以得到過渡圓弧的圓心的坐標方程為:

同理,可以得到圓心的坐標方程為:

聯立方程(6)和方程(7),利用MATLAB求得顯性解為:

其中:

求出顯性解后,便可通過參數的修改獲得所需要的周刃齒形。該部分是VC#編程的核心部分,是周刃齒形成型的關鍵所在。
要想使用VC#編程語言實現SolidWorks的二次開發,首先要做的就是VC#和SolidWorks的鏈接,其具體過程如下:
(1)在Vistual Studio中創建一個窗體程序,并添加標簽控件(Label)、文本框控件(TextBox)等。
(2)用N uGe t 查找S olidWorks 進行dll的引用,如SldWorks、SwConst、SWUtilities等。
(3)新建公共類,編寫VC#連接SolidWorks的代碼塊,主要代碼如下:

圓柱螺旋銑刀的結構多樣,尺寸復雜,因此需要分部位設計,每個部位均有特征參數。以圓柱四刃銑刀為例,刀具各部分結構特征如圖4所示,刀具各部分結構與刀具幾何參數的關系如圖5所示。

圖4 圓柱四刃銑刀的各部分結構特征Fig.4 Structural characteristics of each part of cylindrical four-edge milling cutter

圖5 圓柱四刃銑刀的各部分結構特征關系圖Fig.5 Relationship diagram of structural characteristics of each part of cylindrical four-edge milling cutter
在建模過程中,最難實現的就是周刃部位,在上一部分中,已求出周刃齒形的參數數值模型及其顯性解,只需在VC#主程序代碼中編寫便可生成周刃齒形軌跡。在生成圓柱四刃銑刀的過程中,會使用到草圖繪制、拉伸、切除、陣列等特征;要添加主要參數之間的約束,使其相互關聯;提取并記錄主要參數的名稱,如螺旋角、齒數、刀體長度、芯厚半徑等。程序搭建完成后,便可使用VC#語言調用SolidWorks 2018繪制圓柱四刃銑刀的三維模型。
在Visual Studio 2019中創立C#窗口,在窗口中添加TextBox、Label、Button、PictureBox等控件,從而完成圓柱螺旋銑刀參數化建模的主程序界面,如圖6所示。

圖6 圓柱螺旋銑刀參數化建模的主程序界面Fig.6 Main program interface of parametric modeling of cylindrical spiral milling cutter
用戶可根據自身要求,在主程序界面輸入合理的參數,便可生成新的圓柱螺旋銑刀模型。以圓柱四刃銑刀為例,在主界面中輸入銑刀的主要參數,如表2所示,然后程序自動生成周刃齒形預覽、刀具模型預覽和銑刀的三維模型,如圖7所示。

表2 銑刀的主要參數Tab.2 Main parameters of milling cutter

圖7 圓柱四刃銑刀的三維建模Fig.7 Three dimensional modeling of cylindrical fouredge milling cutter
如圖8所示,使用該程序繪制圓柱四刃銑刀三維模型,周刃、端刃、退刀槽均被準確地繪制,這說明程序的實用性很強,能夠滿足用戶多樣性的要求。

圖8 圓柱四刃銑刀三維模型的部位細節圖Fig.8 Detail drawing of three-dimensional model of cylindrical four-edge milling cutter
在深入學習SolidWorks二次開發原理和運用的基礎上,以SolidWorks 2018為開發平臺,以Vistual Studio 2019為開發工具,利用其中的VC#語言,采用編程法完成了對圓柱螺旋銑刀的三維建模,同時搭建了友好的人機交互界面,最終生成了圓柱螺旋銑刀參數化的應用程序。該應用程序界面簡潔,使用簡單,運行平穩,可大大減少設計人員的重復勞動,提高工作效率。生成的三維模型可在Abaqus、Ansys等仿真平臺進行切削性能分析,有利于進一步推進銑刀等刀具產品的系列化、標準化。本實例關于圓柱螺旋銑刀周刃齒形的數值模型的求解和運用,也可應用于其他產品的設計和研究。