基于Solidworks的零件參數(shù)化設計_第1頁
基于Solidworks的零件參數(shù)化設計_第2頁
基于Solidworks的零件參數(shù)化設計_第3頁
基于Solidworks的零件參數(shù)化設計_第4頁
基于Solidworks的零件參數(shù)化設計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于 Solidworks 的零件參數(shù)化設計摘要:論述了利用Visual C+ 6.0對Solidworks進行二次開發(fā) 的基本原理和一些關鍵技術,開發(fā)了可以與 Solidworks 無縫集成的 動態(tài)鏈接庫 DLL ,并且介紹了一個簡單的應用實例的實現(xiàn)。0 引言Solidworks 是一款非常優(yōu)秀的三維機械軟件,其易學易用、全 中文界面等特點深受廣大工程技術人員喜歡。隨著學習和使用 Solidwork 的人員越來越多, 企業(yè)為了提高效率和市場競爭力, 必然 有快速開發(fā)新產品、形成自身產品特色的需求,而且對于一些存在 著許多重復性的勞動的產品設計需要縮短產品的開發(fā)周期。因此有 必要對 Solid

2、Works 進行二次開發(fā), 使其能夠在輸入少量變化參數(shù)的 情況下迅速生成所有產品模型并裝配,最終生成工程圖。SolidWorks 二次開發(fā)分兩種,一種是基于 OLE Automation 的 IDispatch 技術,一般常用于 Visual Basic、Delphi 編程語言的接口, 通過 IDispatch 接口暴露對象的屬性和方法, 以便在客戶程序中使用 這些屬性并調用它所支持的方法,此種技術只能開發(fā) EXE 形式的 程序,所開發(fā)的軟 件 不 能 直 接 加 掛 在 SolidWorks 系 統(tǒng) 下,無 法 實 現(xiàn) 與 SolidWorks 的集成;另一種開發(fā)方式是基于 COM 的,這種

3、技術可以使用最多的 SolidWorks API(Application Programmi ng In terface,應用程序接口)函數(shù)。實際上 SolidWorks 本 身就是用Visual C+編寫的,所以使用Visual C+通過COM接口 開發(fā),可以實現(xiàn)對 SolidWorks 底層的開發(fā)并且代碼的執(zhí)行效率高。 因為本文開發(fā)的是 SolidWorks DLL(Dynamic Link Library ,動態(tài)鏈 接庫 ) 插件,故采用基于 COM 的開發(fā)方式。1 SolidWorks 二次開發(fā)原理1.1 SolidWorks API 中的術語COM ( Component Objec

4、t Model ,組件對象模型)技術是 SolidWorks API 的基礎, COM 對象是一種包含接口、 屬性和事件以 對象形式封裝的實體, 它以接口的方式提供服務, 這種接口是 COM 對象與使用 COM 對象的客戶程序進行通信的唯一通道。OLE (Object Linking and Embedding ,對象的鏈接和嵌入 )可以 使應用程序之間能夠通過數(shù)據嵌入或鏈接的方式共享數(shù)據。它是 SolidWorks API 構造的基礎,是深入理解 SolidWorks API 的關鍵。 SolidWorks API是SolidWorks作為OLE自動化服務器提供的屬性和 方法,我們開發(fā)的插件

5、就是使用這些接口的 OLE 客戶。1.2 開發(fā)工具 Visual C+ 6.0SolidWorks API是基于COM組件技術構造的,SolidWorks通過 COM 技術為開發(fā)人員提供了強大的二次開發(fā)接口, 因此 Visual C+ 6.0 作為當今最流行的軟件開發(fā)工具之一,是程序員的首選編程利 器。它提供了強大的集成開發(fā)環(huán)境, 用以方便、有效地管理、 編寫、 編譯、跟蹤C+程序,大大加速了程序員的工作,提高了程序代碼的效率。使用 Visual C+ 6.0 進行 SolidWorks 二次開發(fā)的優(yōu)勢如下:可以使用 GDI 對象和設備環(huán)境類所提供的繪圖函數(shù), 可以輕易 的實現(xiàn)繪圖功能而且無需

6、考慮具體設備情況; Visual C+ 6.0 開發(fā)環(huán) 境十分友好,其高度的可視化開發(fā)方式和強大的向導工具能夠幫助 用戶輕松的開發(fā)出多種類型的應用程序; Visual C+ 6.0 有著強大的 調試功能,能夠幫助開發(fā)人員尋找錯誤和提高程序效率; Visual C+ 6.0 和 SolidWorks 有極好的連接性,能夠直接調用許多資源,方便 的在 SolidWorks 上添加命令和各種控件。因此,可以說它是 SolidWorks 的最佳開發(fā)工具,適用于大型系 統(tǒng)的開發(fā),而在使用 Visual C+ 6.0 進行二次開發(fā)時的不足之處在 于對開發(fā)人員的要求比較高。1.3 SolidWorks AP

7、I 對象模型SldWorks 對象是 SolidWorks API 對象模型中的最高層對象 ,它 能夠直接或間接地訪問 SolidWorks API 中的所有其他對象。利用 SldWorks 對象可以實現(xiàn)應用程序的最基本操作 , 如生成、打開、關 閉、結束文件、重排圖標和窗口、設置當前的激活文件、生成屬性 定義 , 也可以對 SolidWorks 的系統(tǒng)變量進行設置。SldWbriiEfiriruiiindliRam<Mode*EnurnSladliPgims| ERUfnEdnfcutimSlrrthStf| F'hijjtl口mmMrn 怛;EnimiWdel 曲*,-彳 A

8、nribgicgLgn 贏PtalThc H AwmhiyDftt j| JrawiiiyjLxic jfJ1PanmnirrFimiryEnkfflsC ottipRsn 帕E-ninnBajia2LniurilXSticmmEaurftCnEc參* FeuMgAicwMo4riV5c* Birngnuon LayefMgr f F onfijjuraiioii圖 1. SolidWorks API 接口對象2 SolidWorks二次開發(fā)的關鍵技術SolidWorks軟件的COM接口支持使用 Visual C+編程語言開 發(fā)DLL(Dynamic Link Library,動態(tài)鏈接庫)程序

9、。DLL是一種用戶 模塊,由用戶自己開發(fā)的、可以加入到最終用戶(包括用戶本人和其他使用該模塊的人)應用程序中提供某一特定功能的函數(shù)和類的集 合。女口 SolidWorks系統(tǒng)自帶的插件 PhotoWorks Animator等都是 SolidWorks的動態(tài)鏈接程序庫(.dll)。通過Visual C+編寫基于COM 的DLL程序,能直接在SolidWorks的界面下添加菜單、工具條等, 在注冊表中注冊成功即可成為SolidWorks的插件,實現(xiàn)了與SolidWorks 的無縫集成。2.1 DLL 的創(chuàng)建首先需要安裝 SolidWorks公司提供的SolidWorks API SDK,可 以從

10、SolidWorks公司官方網站上下載與SolidWorks軟件版本相對應 的 api_sdk.zip 文件,安裝好 API SDK 后才可以使用 SolidWorks API 接口的全部功能函數(shù)。然后啟動 Visual C+ 6.0,新建 ATL COM AppWizard 工程, 在 類 視 圖 中 新 建 一 個 ATL SolidWorks 對 象 這 樣 一 個 SwAddIn(SolidWork 插件 ) 對象就被插進工程中,并且取得了 SolidWorks API的最高級對象SldWorks的控制指針。2.2 DLL 中添加資源的方法在動態(tài)鏈接庫中 , 當用戶需要添加自己的資源

11、( 如對話框 ) 時, 應明確指出在什么時候使用自己的資源 ,否則 SolidWorks 分不清楚 哪些是由系統(tǒng)控制的資源, 哪些是由用戶控制的資源, 會發(fā)生沖突, 導致程序運行錯誤。避免資源沖突的方法是在使用自己的資源之前 調用 AfxGetResourceHandle 函數(shù)保存當 前的 資源,然后調用 AfxSetResourceHandle 函數(shù)把當前資源設置成新的資源,當使用完 自己的資源后,再調用 AfxSetResourceHandle 函數(shù)恢復先前已保存 的資源。創(chuàng)建本程序的運行界面時 , 首先用對話框編輯器創(chuàng)建對話 框模板資源 , 加入所需控件 , 再用 Class Wizar

12、d 為對話框生成CMainDlg( 基類為 CDialog) ,并加入所需的成員變量。2.3 DLL 與 SolidWorks 的集成用戶可以通過 DLL 程序定制 SolidWorks 的菜單、工具欄資源 等,從而實現(xiàn)二次開發(fā)的軟件與 SolidWorks 的無縫集成,以下為部 分代碼:/在 SolidWorks 主窗口添加菜單type = swDocNONE;position = 3;menu.LoadString(IDS_MYADDIN_VC_MENU); m_iSldWorks->AddMenu(type, menu, position, &retval); /添加次級菜

13、單position = -1; menu.LoadString(IDS_MENU_INSERTSKH_ITEM); method.LoadString(IDS_MENU_INSERTSKH_METHOD); hint.LoadString(IDS_MENU_INSERTSKH_HINT); m_iSldWorks->AddMenuItem2(type, m_swCookie, menu, position, method, update, hint, &ok);3 二次開發(fā)實例本實例使用 SolidWorks API 實現(xiàn)了直齒圓柱齒輪的參數(shù)化設 計。使用方法:首先將生成的 DLL插件裝載到SolidWorks中,然后新建一個零件文件,選擇【配置】|【齒輪】命令如圖2所示,| 文帕 田 MBOOSAR I I 畜口刪 IMM j - 3 M * * 鼻酋| Diggit直蘆品|圖2.選擇【齒輪】命令彈出齒輪參數(shù)對話框,在其中輸入齒輪

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論