SolidWorks軟件是在總結(jié)和繼承了大型機(jī)械CAD軟件的基礎(chǔ)上,在Windows環(huán)境下實(shí)現(xiàn)的第一個(gè)機(jī)械CAD軟件。各企業(yè)在實(shí)際的產(chǎn)品設(shè)計(jì)中大多要對(duì)通用CAD軟件進(jìn)行二次開(kāi)發(fā),建立適合自己的專用模塊。SolidWorks的突出特點(diǎn)是:三維參數(shù)化特征造型,特征管理員功能,全相關(guān)的數(shù)據(jù)管理,它功能豐富、操作簡(jiǎn)單、維護(hù)方便、學(xué)習(xí)周期短、應(yīng)用開(kāi)發(fā)方便,與多家CAM、CAE軟件有緊密接口。本文通過(guò)運(yùn)用Delphi對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā)來(lái)實(shí)現(xiàn)復(fù)雜的高速主軸三維成型及虛擬裝配體的過(guò)程,使用ACESS數(shù)據(jù)庫(kù)對(duì)高速主軸的相關(guān)參數(shù)進(jìn)行傳遞和管理,提高了設(shè)計(jì)的效率與正確率。
1 SolidWorks的二次開(kāi)發(fā)技術(shù)
1.1 SolidWorks API
SolidWoks為用戶提供了幾百個(gè)二次開(kāi)發(fā)接口(SolidWorks API),凡支持COM編程的開(kāi)發(fā)工具,如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次開(kāi)發(fā)。SolidWorks API是SolidWorks的OLE編程接口,為程序員提供了完全面向?qū)ο蟮念愺w系,程序員可以在自己的程序中,派生這些類的子類,生成這些類的對(duì)象,對(duì)對(duì)象進(jìn)行操作,運(yùn)行對(duì)象的方法,設(shè)置或修改對(duì)象的屬性,從而訪問(wèn)SolidWorks的數(shù)據(jù)庫(kù)、圖形系統(tǒng)和系統(tǒng)界面。SolidWorks的API對(duì)象涵蓋了全部的SolidWorks的數(shù)據(jù)模型,進(jìn)行二次開(kāi)發(fā)時(shí),調(diào)用SolidWorks中的API函數(shù),可以完成零件各特征的建立、修改、刪除和壓縮等各項(xiàng)控制,零件特征信息的提取,如特征尺寸的設(shè)置與提取,特征所在面的信息提取及各種幾何和拓?fù)湫畔ⅲ慵难b配信息,零件工程圖紙中的各項(xiàng)信息等。圖1所示為SolidWorks API的部分對(duì)象體系。
1.2 COM技術(shù)
組件對(duì)象模型(Component Object Model,COM)是由Microsoft公司在Windows操作系統(tǒng)中創(chuàng)建的一種二進(jìn)制的網(wǎng)絡(luò)標(biāo)準(zhǔn),是組件(即應(yīng)用程序)間的接口。它允許兩個(gè)組件互相通信,而不論其運(yùn)行于任何計(jì)算機(jī)(只要聯(lián)網(wǎng)),采用任何操作系統(tǒng)(只要支持COM)以及該組件隸屬于任何語(yǔ)言。另外,COM還引用了面向?qū)ο蟮乃枷耄瑢?duì)象鏈接與嵌入(Object Linking and Embedding,OLE2)是第一個(gè)用COM架構(gòu)的軟件系統(tǒng)。
圖1 SolidWorks API部分對(duì)象體系
1.3開(kāi)發(fā)工具
本文使用面向?qū)ο笳Z(yǔ)言Delphi對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā)。Delphi是Bodand公司開(kāi)發(fā)的一種可視化應(yīng)用程序開(kāi)發(fā)工具,其基礎(chǔ)語(yǔ)言為對(duì)象Pascal。它提供了一種快速的編譯器,它具有高性能的32位本地優(yōu)化代碼編譯器,其應(yīng)用程序可以直接運(yùn)行,能夠最終生成可單獨(dú)執(zhí)行的DLL與EXE文件。另一方面,使用Delphi可方便迅速地建立強(qiáng)大的數(shù)據(jù)庫(kù)應(yīng)用程序。Delphi的數(shù)據(jù)庫(kù)應(yīng)用程序可以和Paradox Sybase、Microsoft SQL Server、Informix、InterBase和ODBC數(shù)據(jù)源等一起使用。
1.4開(kāi)發(fā)方法
(1)在Delphi編程環(huán)境下,單擊菜單欄中的“Project(工程)”、“Import Type Library”命令,彈出“Import Type library”對(duì)話框。
(2)在“Import Type library”對(duì)話框中選擇“SldWorks 2007 Type Liaray(Version f.0)”選項(xiàng),單擊“Create Unit”按鈕,Delphi將在其import子目錄下生成該類型庫(kù)Object Pascal文件SldWorks_TLB.pas,然后就可以利用此文件進(jìn)行二次開(kāi)發(fā)了。
(3)在Delphi環(huán)境下新建一個(gè)工程,加入相關(guān)代碼,生成.exe文件或.dll文件,然后編譯運(yùn)行即可。注意要將第二步中生成的SldWorks_TLB.pas文件添加到工程中。
2 Delphi對(duì)SolidWorks二次開(kāi)發(fā)實(shí)例
2.1主軸參數(shù)化系統(tǒng)結(jié)構(gòu)
主軸參數(shù)化系統(tǒng)結(jié)構(gòu)如圖2所示。首先需要對(duì)主軸進(jìn)行設(shè)計(jì)并計(jì)算出所有相關(guān)尺寸參數(shù)存人數(shù)據(jù)庫(kù),以備以后對(duì)solidworks進(jìn)行二次開(kāi)發(fā)時(shí)調(diào)用。用戶在主程序界面,通過(guò)相應(yīng)的操作,程序即可自動(dòng)從數(shù)據(jù)庫(kù)中取出相關(guān)尺寸數(shù)據(jù),調(diào)用相關(guān)SolidWorks API生成實(shí)體并調(diào)用零件庫(kù)在的零件生成虛擬裝配圖。
圖2 主軸參敦化系統(tǒng)結(jié)構(gòu)
2.2數(shù)據(jù)庫(kù)的選擇與建立
本文選用ACESS數(shù)據(jù)庫(kù)對(duì)高速主軸的相關(guān)參數(shù)進(jìn)行傳遞和管理。圖3為數(shù)據(jù)庫(kù)顯示和本例的設(shè)計(jì)界面。其中namei為尺寸的名稱,datai為尺寸的數(shù)值。在應(yīng)用程序中通過(guò)數(shù)據(jù)控件和數(shù)據(jù)庫(kù)建立連接,根據(jù)需要得到相應(yīng)的數(shù)據(jù)信息來(lái)進(jìn)行主軸三維圖形的繪制。
圖3 應(yīng)用程序設(shè)計(jì)界面
2.3主要的建模過(guò)程
在Delphi環(huán)境下,創(chuàng)建如圖3所示的窗口,主要有三個(gè)控件:DBGridl、Buttonl、Button2。主軸參數(shù)表DBGridl中存放經(jīng)過(guò)計(jì)算得到的主軸相關(guān)尺寸參數(shù),當(dāng)用戶單擊“生成三維圖形”按鈕時(shí),主程序就會(huì)啟動(dòng)SolidWorks軟件,并從表中提取主軸相關(guān)參數(shù)進(jìn)行三維圖形的繪制,單擊“查看裝配圖”按鈕可以查看進(jìn)行虛擬裝配后的圖形。
ButtonlClick過(guò)程的作用是啟動(dòng)SolidWorks繪圖平臺(tái),并設(shè)置好繪圖環(huán)境;DrawPart過(guò)程的作用是引用數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄,以及調(diào)用SolidWorks API函數(shù)功能進(jìn)行零件圖的繪制。Button2的作用是從標(biāo)準(zhǔn)零件庫(kù)零件三維圖形中找到相應(yīng)的零件進(jìn)行虛擬裝配。
Buttonl Click過(guò)程的代碼和DrawPart過(guò)程的部分代碼如下:
用戶單擊“生成三維圖形”按鈕后程序運(yùn)行結(jié)果如圖4所示。用戶單擊“查看裝配圖”按鈕后系統(tǒng)自動(dòng)從標(biāo)準(zhǔn)零件庫(kù)零件三維圖形中找到相應(yīng)的零件進(jìn)行裝配,裝配體如圖5所示。
圖4 主軸三維造型
圖5 主軸裝配圖
3結(jié)語(yǔ)
介紹了在Delphi的集成開(kāi)發(fā)環(huán)境下,通過(guò)調(diào)用SolidWorks API函數(shù)進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)機(jī)械零件參數(shù)化設(shè)計(jì)的方法。可以參考該方法對(duì)SolidWorks進(jìn)行其他較為復(fù)雜的二次開(kāi)發(fā),建立適合用戶需要的、專用的SolidWorks功能模塊。通過(guò)實(shí)例表明,用戶通過(guò)對(duì)SolidWorks的二次開(kāi)發(fā)可以提高產(chǎn)品的設(shè)計(jì)和開(kāi)發(fā)效率。
相關(guān)文章
- 2021-08-23精通AutoCAD三維設(shè)計(jì)與開(kāi)發(fā)PDF下載
- 2021-08-22AutoCAD 2013應(yīng)用與開(kāi)發(fā)系列中文版AutoCAD 2013室內(nèi)裝
- 2021-08-22AutoCAD 2013應(yīng)用與開(kāi)發(fā)系列中文版AutoCAD 2013機(jī)械圖
- 2021-08-19數(shù)字化成圖-最新AutoCAD地形圖測(cè)繪高級(jí)開(kāi)發(fā)PDF下載
- 2021-08-03Autodesk RevitStructure2012應(yīng)用寶典 [歐特克軟件(中
- 2021-08-02Autodesk RevitMEP2012應(yīng)用寶典 [歐特克軟件(中國(guó))有限
- 2021-08-02Autodesk Revit2013族達(dá)人速成 [歐特克軟件(中國(guó))有限公
- 2021-08-01Visual Basic與AutoCAD二次開(kāi)發(fā)PDF下載
- 2021-07-31Autodesk Revit2012族達(dá)人速成 [歐特克軟件(中國(guó))有限公
- 2021-07-18AutoCAD VBA開(kāi)發(fā)手冊(cè)PDF下載