崔建昆,丁佳樂(lè),夏 娟
(1.上海理工大學(xué)上海-漢堡國(guó)際工程學(xué)院,上海 200093;2.上海理工大學(xué)機(jī)械工程學(xué)院,上海 200093)
jackcui@usst.edu.cn;2443495771@qq.com;1005748464@qq.com
SolidWorks是目前市場(chǎng)上使用最為廣泛的軟件之一,它繼承和改進(jìn)了以往各種CAD軟件的特點(diǎn),因此,其特征選型和參數(shù)化建模等功能非常強(qiáng)大。SolidWorks強(qiáng)大的功能和良好的易適性幫助用戶不斷研發(fā)更好的產(chǎn)品,給用戶帶來(lái)了以下便利:容易及重復(fù)地利用設(shè)計(jì)數(shù)據(jù)、分布式的設(shè)計(jì)環(huán)境、自動(dòng)化的過(guò)程更改及審批流程、切身參與整個(gè)開(kāi)發(fā)的過(guò)程。它不僅具備設(shè)計(jì)、分析、加工和數(shù)據(jù)管理的功能,還具有極佳的開(kāi)發(fā)性接口和功能擴(kuò)充性。
VC#是微軟公司發(fā)布的基于Windows系統(tǒng)的面向?qū)ο蟮木幊陶Z(yǔ)言,它在繼承C和C++強(qiáng)大功能的同時(shí),擯棄了C和C++的操作復(fù)雜性。VC#最主要的一個(gè)特點(diǎn)是完全面向?qū)ο?,它可以讓程序員快速便捷地編寫基于MICROSOFT.NET平臺(tái)的應(yīng)用程序,提高開(kāi)發(fā)效率。
參數(shù)化設(shè)計(jì)是一款輔助設(shè)計(jì)工具,可將系列化、通用化和標(biāo)準(zhǔn)化的定型產(chǎn)品中隨產(chǎn)品規(guī)格不同而變化的參數(shù)用相應(yīng)的變量代替,通過(guò)對(duì)變量的修改,從而實(shí)現(xiàn)建模的參數(shù)化,縮短設(shè)計(jì)周期,降低成本。工程技術(shù)人員可以根據(jù)客戶的需求自由地修改所設(shè)置的參數(shù),從而快速有效地生成三維模型,其設(shè)計(jì)流程如圖1所示。
圖1 參數(shù)化設(shè)計(jì)流程Fig.1 Parametric design process
為了滿足用戶多樣性的要求,SolidWorks軟件中集成了數(shù)百個(gè)API函數(shù),這些函數(shù)是SolidWorks的OLE和COM接口,通過(guò)鏈接這些接口,用戶可以使用VC#、VB、Delphi、VB.NET等編程語(yǔ)言對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā),從而建立滿足用戶要求的SolidWorks模塊。因此,要想使用SolidWorks 2018軟件進(jìn)行二次開(kāi)發(fā),設(shè)計(jì)出性能優(yōu)越的參數(shù)化設(shè)計(jì)系統(tǒng),熟練地使用API函數(shù)和充分地了解COM/OLE技術(shù)是必不可少的。
(1)COM技術(shù)
COM技術(shù)是由微軟公司提出的一套接口標(biāo)準(zhǔn),是一種組件對(duì)象模式,由它建立了各種組件之間的規(guī)范與協(xié)定,以便實(shí)現(xiàn)跨語(yǔ)言、跨進(jìn)程溝通的目的。當(dāng)采用COM技術(shù)時(shí),技術(shù)人員不必考慮組件與其所處的運(yùn)行環(huán)境是否一致,所用的開(kāi)發(fā)語(yǔ)言是否相同以及是否運(yùn)行于同一臺(tái)電腦。在COM的技術(shù)標(biāo)準(zhǔn)中,一個(gè)組件程序也被稱為一個(gè)模塊,它可以是一個(gè)動(dòng)態(tài)鏈接庫(kù),也可以是一個(gè)可執(zhí)行程序。一個(gè)組件程序可以包含一個(gè)或多個(gè)組件對(duì)象,COM技術(shù)中的對(duì)象建立在二進(jìn)制可執(zhí)行代碼級(jí)的基礎(chǔ)上,而VC++、Java等語(yǔ)言中的對(duì)象建立在源代碼級(jí)的基礎(chǔ)上,因此,COM技術(shù)中的對(duì)象與語(yǔ)言無(wú)關(guān)。本文就是依據(jù)該項(xiàng)技術(shù)進(jìn)行二次開(kāi)發(fā)的。
(2)OLE技術(shù)
OLE技術(shù)是COM技術(shù)的延續(xù)發(fā)展,是一種對(duì)象鏈接與嵌入技術(shù)。這種技術(shù)提出了比粘貼和剪切功能更強(qiáng)、更規(guī)范的共享數(shù)據(jù)方式,利用這種方式可實(shí)現(xiàn)不同Windows應(yīng)用程序之間的數(shù)據(jù)共享。OLE 1.0目的在于創(chuàng)建復(fù)合文檔,而OLE 2.0則超出了復(fù)合文檔的范圍,提供了更具綜合性的對(duì)象模型,該模型與編程接口相聯(lián)系,使不同的應(yīng)用程序之間能夠交互和相互操作。OLE技術(shù)以COM技術(shù)標(biāo)準(zhǔn)為基礎(chǔ),發(fā)揮了COM技術(shù)標(biāo)準(zhǔn)的優(yōu)點(diǎn),使得在Windows操作系統(tǒng)上的應(yīng)用程序具備極強(qiáng)的可交互性。
本實(shí)例使用的編程語(yǔ)言是VC#,該語(yǔ)言具有可視化編程、完全面向?qū)ο蟮奶攸c(diǎn)。它包括單一繼承、接口的語(yǔ)法,與COM是直接集成的。它在綜合了Visual Basic易可視化操作和C++高效率的同時(shí),還保持了自身強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)言風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程的優(yōu)點(diǎn),逐步成為.NET開(kāi)發(fā)的主角。
使用VC#編程語(yǔ)言對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā),最重要的一點(diǎn)是在應(yīng)用程序中實(shí)現(xiàn)圓柱螺旋銑刀的參數(shù)化建模。實(shí)現(xiàn)參數(shù)化建模的方法有兩種:(1)編程法;(2)尺寸參數(shù)驅(qū)動(dòng)法。本實(shí)例使用的是編程法,是把出現(xiàn)在圓柱螺旋銑刀3D零件建模過(guò)程中的各變量之間的關(guān)系儲(chǔ)存在程序中,以供程序調(diào)用,其實(shí)現(xiàn)流程圖如圖2所示。
圖2 編程法設(shè)計(jì)實(shí)現(xiàn)流程圖Fig.2 Design and implementation flow chart of programming method
螺旋立銑刀可以進(jìn)行周銑和端銑。本實(shí)例刀具設(shè)計(jì)增加了芯厚半徑參數(shù),使芯圓與容屑槽圓弧相切,保證了刀具的抗彎強(qiáng)度。周刃前角的大小影響刀尖的鋒利程度,容屑半徑影響刀具的排屑性能,螺旋角大小與切削阻力密切相關(guān)。如圖3所示,周刃齒形的截面線主要由前刀面、槽底圓弧、過(guò)渡圓弧、第一后刀面及第二后刀面組成,點(diǎn)的坐標(biāo)為(0,0,0),點(diǎn)的坐標(biāo)為(0,,0)。圖3中幾何參數(shù)的變量符號(hào)如表1所示。
圖3 立銑刀周刃齒形Fig.3 Tooth profile of peripheral edge of end mill
表1 周刃齒形的幾何參數(shù)Tab.1 Geometric parameters of tooth profile of peripheral edge
由圖3分析可得,點(diǎn)的坐標(biāo)為:
線段和線段的長(zhǎng)度為:
點(diǎn)的坐標(biāo)為:
點(diǎn)的坐標(biāo)為:
點(diǎn)的坐標(biāo)為:
由此可以得到過(guò)渡圓弧的圓心的坐標(biāo)方程為:
同理,可以得到圓心的坐標(biāo)方程為:
聯(lián)立方程(6)和方程(7),利用MATLAB求得顯性解為:
其中:
求出顯性解后,便可通過(guò)參數(shù)的修改獲得所需要的周刃齒形。該部分是VC#編程的核心部分,是周刃齒形成型的關(guān)鍵所在。
要想使用VC#編程語(yǔ)言實(shí)現(xiàn)SolidWorks的二次開(kāi)發(fā),首先要做的就是VC#和SolidWorks的鏈接,其具體過(guò)程如下:
(1)在Vistual Studio中創(chuàng)建一個(gè)窗體程序,并添加標(biāo)簽控件(Label)、文本框控件(TextBox)等。
(2)用N uGe t 查找S olidWorks 進(jìn)行dll的引用,如SldWorks、SwConst、SWUtilities等。
(3)新建公共類,編寫VC#連接SolidWorks的代碼塊,主要代碼如下:
圓柱螺旋銑刀的結(jié)構(gòu)多樣,尺寸復(fù)雜,因此需要分部位設(shè)計(jì),每個(gè)部位均有特征參數(shù)。以圓柱四刃銑刀為例,刀具各部分結(jié)構(gòu)特征如圖4所示,刀具各部分結(jié)構(gòu)與刀具幾何參數(shù)的關(guān)系如圖5所示。
圖4 圓柱四刃銑刀的各部分結(jié)構(gòu)特征Fig.4 Structural characteristics of each part of cylindrical four-edge milling cutter
圖5 圓柱四刃銑刀的各部分結(jié)構(gòu)特征關(guān)系圖Fig.5 Relationship diagram of structural characteristics of each part of cylindrical four-edge milling cutter
在建模過(guò)程中,最難實(shí)現(xiàn)的就是周刃部位,在上一部分中,已求出周刃齒形的參數(shù)數(shù)值模型及其顯性解,只需在VC#主程序代碼中編寫便可生成周刃齒形軌跡。在生成圓柱四刃銑刀的過(guò)程中,會(huì)使用到草圖繪制、拉伸、切除、陣列等特征;要添加主要參數(shù)之間的約束,使其相互關(guān)聯(lián);提取并記錄主要參數(shù)的名稱,如螺旋角、齒數(shù)、刀體長(zhǎng)度、芯厚半徑等。程序搭建完成后,便可使用VC#語(yǔ)言調(diào)用SolidWorks 2018繪制圓柱四刃銑刀的三維模型。
在Visual Studio 2019中創(chuàng)立C#窗口,在窗口中添加TextBox、Label、Button、PictureBox等控件,從而完成圓柱螺旋銑刀參數(shù)化建模的主程序界面,如圖6所示。
圖6 圓柱螺旋銑刀參數(shù)化建模的主程序界面Fig.6 Main program interface of parametric modeling of cylindrical spiral milling cutter
用戶可根據(jù)自身要求,在主程序界面輸入合理的參數(shù),便可生成新的圓柱螺旋銑刀模型。以圓柱四刃銑刀為例,在主界面中輸入銑刀的主要參數(shù),如表2所示,然后程序自動(dòng)生成周刃齒形預(yù)覽、刀具模型預(yù)覽和銑刀的三維模型,如圖7所示。
表2 銑刀的主要參數(shù)Tab.2 Main parameters of milling cutter
圖7 圓柱四刃銑刀的三維建模Fig.7 Three dimensional modeling of cylindrical fouredge milling cutter
如圖8所示,使用該程序繪制圓柱四刃銑刀三維模型,周刃、端刃、退刀槽均被準(zhǔn)確地繪制,這說(shuō)明程序的實(shí)用性很強(qiáng),能夠滿足用戶多樣性的要求。
圖8 圓柱四刃銑刀三維模型的部位細(xì)節(jié)圖Fig.8 Detail drawing of three-dimensional model of cylindrical four-edge milling cutter
在深入學(xué)習(xí)SolidWorks二次開(kāi)發(fā)原理和運(yùn)用的基礎(chǔ)上,以SolidWorks 2018為開(kāi)發(fā)平臺(tái),以Vistual Studio 2019為開(kāi)發(fā)工具,利用其中的VC#語(yǔ)言,采用編程法完成了對(duì)圓柱螺旋銑刀的三維建模,同時(shí)搭建了友好的人機(jī)交互界面,最終生成了圓柱螺旋銑刀參數(shù)化的應(yīng)用程序。該應(yīng)用程序界面簡(jiǎn)潔,使用簡(jiǎn)單,運(yùn)行平穩(wěn),可大大減少設(shè)計(jì)人員的重復(fù)勞動(dòng),提高工作效率。生成的三維模型可在Abaqus、Ansys等仿真平臺(tái)進(jìn)行切削性能分析,有利于進(jìn)一步推進(jìn)銑刀等刀具產(chǎn)品的系列化、標(biāo)準(zhǔn)化。本實(shí)例關(guān)于圓柱螺旋銑刀周刃齒形的數(shù)值模型的求解和運(yùn)用,也可應(yīng)用于其他產(chǎn)品的設(shè)計(jì)和研究。