• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SolidWorks的二次開發(fā)應(yīng)用

      2014-02-26 06:06:16
      鍛壓裝備與制造技術(shù) 2014年2期
      關(guān)鍵詞:注冊(cè)表二次開發(fā)菜單

      劉 穎

      (中國(guó)民用航空華東地區(qū)空中交通管理局 山東分局,山東 濟(jì)南 250107)

      0 引言

      SolidWorks是基于特征的三維參數(shù)化造型軟件,對(duì)其二次開發(fā)可遵循參數(shù)化CAD的原則。與以往非參數(shù)化CAD系統(tǒng)相比,參數(shù)化技術(shù)很大程度上提高了二次開發(fā)效率。SolidWorks提供了完整的免費(fèi)的二次開發(fā)工具API(Application Programming Interface,應(yīng)用編程接口)。凡支持COM編程的開發(fā)工具,如VC++、VB、Delphi等均可直接調(diào)用這些API函數(shù)開發(fā)出用戶自己的程序模塊,提高設(shè)計(jì)的效率與正確率。

      為方便用戶進(jìn)行二次開發(fā),SolidWorks提供了幾百個(gè)API接口。這些API接口分為兩種,即OLE Automation的IDispatch和作為Windows基礎(chǔ)的COM(Component Object Model組件對(duì)象模型)。作為系統(tǒng)開發(fā),COM為更合適的選擇。使用VB進(jìn)行開發(fā)時(shí),只能采取外掛工作方式,即需在用戶應(yīng)用程序和Solid-Works之間進(jìn)行前后臺(tái)切換,降低了設(shè)計(jì)效率。而COM接口支持使用VC++編程工具開發(fā)DLL(Dynamic Link Library,動(dòng)態(tài)鏈接庫(kù))程序,使用VC++開發(fā)的DLL應(yīng)用程序模塊可直接嵌入到SolidWorks內(nèi)部。加載成功后用戶程序菜單直接出現(xiàn)在SolidWorks主菜單上,如同SolidWorks自帶功能一樣進(jìn)行操作,極大提高了設(shè)計(jì)效率。因此,本文就基于VC++闡述SolidWorks的二次開發(fā)。

      1 基于VC++的SolidWorks二次途徑

      1.1 使用工程向?qū)wizard.awx進(jìn)行二次開發(fā)

      將編程向?qū)募Wizard.awx拷貝至Microsoft Visual StudioCommonMSDev98Template目錄下,把SolidWorkssamplesappcomm文件夾下所有文件拷貝至Microsoft Visual StudioVC98Include文件夾下。在VC中應(yīng)用向?qū)?chuàng)建動(dòng)態(tài)鏈接庫(kù)工程 (以下簡(jiǎn)稱DLL),加入相關(guān)代碼,編譯生成動(dòng)態(tài)鏈接庫(kù)(*.DLL)文件。用戶二次開發(fā)的應(yīng)用程序,可直接掛在Solid-Works的菜單下,形成統(tǒng)一界面。一般而言,開發(fā)人員首先需要在SolidWorks的界面上添加自己的菜單項(xiàng),以此作為激活用戶程序的接口,完成與用戶的數(shù)據(jù)交換。在上述過程中,用戶程序必須響應(yīng)SolidWorks的一些消息通知,以保證各個(gè)操作的合法性,即要檢測(cè)文檔類型等。最后,連接DLL,將必要的用戶程序輸出。

      1.2 使用ATL(C/C++)對(duì)象向?qū)нM(jìn)行二次開發(fā)

      根據(jù)向?qū)О惭bSolidWorks API SDK,在VC++中選擇ATL COM Wizard創(chuàng)建動(dòng)態(tài)鏈接庫(kù),加入相關(guān)代碼,編譯生成動(dòng)態(tài)鏈接庫(kù) (*.DLL)文件。此方式可在SolidWorks插件管理器中生成插件,并以菜單形式自動(dòng)添加在新建或打開的零件視圖中,以完成特定功能。

      1.3 用戶自定義向?qū)Ш陀矛F(xiàn)有的實(shí)例進(jìn)行二次開發(fā)

      啟動(dòng)VC,選擇Custom AppWizard尋找現(xiàn)成的文件以生成新的工程。若不想用向?qū)В苯有薷默F(xiàn)有實(shí)例也是一種方法。使用此法可在SolidWorks的菜單欄中出現(xiàn)新下拉菜單用以完成用戶新添加的功能。

      2 二次開發(fā)應(yīng)用

      以某零件參數(shù)化建模二次開發(fā)為例,介紹Solid-Works二次開發(fā)過程。

      (1)安裝VC++并配置開發(fā)環(huán)境。利用Solid-Works提供的二次開發(fā)模板創(chuàng)建工程。為確保包含必要的頭文件,完全按照第一種方法配置開發(fā)環(huán)境。

      (2)繪制零件模板。模板零件的創(chuàng)建方法與一般三維模型的建模方式相同,但須注意以下幾點(diǎn):①在對(duì)模板進(jìn)行特征造型時(shí),對(duì)二維截面輪廓,利用尺寸標(biāo)注和施加相切、共線等關(guān)系實(shí)現(xiàn)對(duì)幾何圖形的全約束。②正確設(shè)置控制三維模型的設(shè)計(jì)參數(shù)。尺寸參數(shù)可分為兩種:一是與其他參數(shù)無關(guān)的獨(dú)立參數(shù);另一種是與其他參數(shù)有關(guān)的非獨(dú)立參數(shù)。前者主要用來控制三維模型的幾何尺寸和拓?fù)潢P(guān)系,后者可以用獨(dú)立參數(shù)為自變量的關(guān)系式表示。③正確建立設(shè)計(jì)參數(shù)與三維模型尺寸變量之間的關(guān)聯(lián)。主要有兩種方法:一是在創(chuàng)建模型模板需要輸入數(shù)值時(shí),直接輸入?yún)?shù)名。二是利用SolidWorks的關(guān)系式功能創(chuàng)建新的關(guān)系式,使系統(tǒng)自動(dòng)創(chuàng)建的約束參數(shù)名與設(shè)計(jì)參數(shù)關(guān)聯(lián)。

      (3)VC++編程步驟。①利用SolidWorks提供的開發(fā)模板創(chuàng)建工程SWSD為工程名稱。②在CLASSVIEW中分別為CSWSDAPP的成員函數(shù)doc-CreateMenu,docRemoveMenu添加代碼實(shí)現(xiàn)為系統(tǒng)添加菜單:

      ③點(diǎn)擊FILEVIEW在SWSD.def文件里聲明導(dǎo)出函數(shù)。DLL中包含一個(gè)導(dǎo)出函數(shù)表,可以通過函數(shù)的符號(hào)化的名字或序號(hào)(可選)識(shí)別這些函數(shù)。函數(shù)表也包含了函數(shù)在DLL內(nèi)的地址。當(dāng)SolidWorks首先加載DLL時(shí),它并不知道將要調(diào)用函數(shù)的地址,但知道符號(hào)名和序號(hào)。動(dòng)態(tài)連接過程后,在DLL中建立一張客戶調(diào)用與函數(shù)地址的表,把SolidWorks的調(diào)用與DLL中函數(shù)的地址連接起來。④在SWSD.h中對(duì)導(dǎo)出函數(shù)聲明。⑤在SWSD.cpp文件里添加導(dǎo)出函數(shù)的函數(shù)體,這個(gè)函數(shù)就是用戶開發(fā)的菜單所調(diào)用的執(zhí)行函數(shù),在這個(gè)導(dǎo)出函數(shù)里添加具體的代碼可以實(shí)現(xiàn)開發(fā)人員需要程序執(zhí)行的功能。

      (4)編譯。由于SolidWorks不再支持加載調(diào)試軟件版本,因此,用戶不能用"Win32 Debug"或"Win32 MBCS Debug"調(diào)試模式。為了調(diào)試代碼,用戶必須使用"Pseudo Debug"調(diào)試模式。此模式需要鏈接適當(dāng)?shù)腗FC Release庫(kù),否則SolidWorks運(yùn)行時(shí)可能會(huì)和已加載的MFC庫(kù)發(fā)生資源沖突。

      (5)應(yīng)用程序的運(yùn)行。如果應(yīng)用程序是以DLL方式建立,則運(yùn)行步驟如下:運(yùn)行SolidWorks程序,選擇File-Open并改變打開文件類型到ADD-Ins(.DLL)。選取預(yù)定的DLL,則用戶應(yīng)用程序加入到SolidWorks。

      如果用戶想在VC調(diào)試模式下運(yùn)行SolidWorks,這種方式適合進(jìn)行代碼的調(diào)試:在用戶的VC開發(fā)環(huán)境中,選擇GO編譯。在彈出的對(duì)話框中鍵入Solid-Works.EXE及其路徑名。一旦SolidWorks運(yùn)行,選擇File-Open并改變打開文件類型到ADD-Ins(.DLL),選擇要調(diào)試的DLL,則用戶應(yīng)用程序加入到SolidWorks。

      (6)注冊(cè)。有兩種方式可以把用戶開發(fā)的模塊添加到注冊(cè)表里面,使SolidWorks可以自動(dòng)找到二次開發(fā)的模塊:①在VC++開發(fā)環(huán)境中,利用SolidWorks提供的二次開發(fā)模板創(chuàng)建工程時(shí),VC++提示是否把該工程添加到注冊(cè)表里時(shí),選擇“是”。②當(dāng)更換系統(tǒng)或在其他計(jì)算機(jī)中安裝開發(fā)的新模塊的時(shí)候,可以在工程文件夾內(nèi)找到*.reg的一個(gè)注冊(cè)表文件,雙擊就可以把這個(gè)模塊的信息寫入注冊(cè)表。

      4 結(jié)束語

      介紹了在VC++集成開發(fā)環(huán)境下通過動(dòng)態(tài)鏈接庫(kù)DLL調(diào)用SolidWorks API函數(shù)進(jìn)行二次開發(fā)實(shí)現(xiàn)機(jī)械零件參數(shù)化設(shè)計(jì)的方法??梢詤⒖荚摲椒▽?duì)Solid-Works進(jìn)行其他較為復(fù)雜的二次開發(fā)工作,建立適合用戶需要的、專用的SolidWorks功能模塊。通過實(shí)例表明,基于DLL的SolidWorks二次開發(fā)可以很好實(shí)現(xiàn)與SolidWorks系統(tǒng)的無縫集成,并且操作簡(jiǎn)單,能滿足用戶開發(fā)三維CAD系統(tǒng)的需要。

      [1] 殷國(guó)富,尹湘云,胡曉兵.SolidWorks二次開發(fā)實(shí)例精解.北京:機(jī)械工業(yè)出版社,2006.

      [2] 劉 毅,辛選榮,劉 汀.基于實(shí)例的擠壓模具CAD系統(tǒng)的開發(fā).鍛壓裝備與制造技術(shù),2006,41(2):94-97.

      猜你喜歡
      注冊(cè)表二次開發(fā)菜單
      淺談基于Revit平臺(tái)的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      中國(guó)新年菜單
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      更上一層樓 用好注冊(cè)表編輯器
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
      本月菜單
      美食堂(2017年1期)2017-01-13 01:37:42
      基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
      一個(gè)“公海龜”的求偶菜單
      鴨綠江(2013年10期)2013-03-11 19:41:55
      學(xué)習(xí)器揭開注冊(cè)表面紗
      軟件不能運(yùn)行,注冊(cè)表中找根源
      交口县| 新沂市| 莲花县| 湖北省| 岱山县| 鲁山县| 广水市| 眉山市| 颍上县| 滦南县| 城市| 南充市| 昆山市| 华亭县| 嘉荫县| 西畴县| 建瓯市| 迁安市| 霸州市| 齐河县| 遂溪县| 达州市| 成武县| 鹤峰县| 韶关市| 南皮县| 胶州市| 垣曲县| 永善县| 淮阳县| 许昌市| 新昌县| 莎车县| 蒙山县| 禹城市| 赤壁市| 仙游县| 祁门县| 仪陇县| 张家川| 荥经县|