下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
用VB進(jìn)行Solidworks二次開發(fā)的編程技巧與實(shí)現(xiàn)方法
發(fā)表時(shí)間:2009-6-26作者:李軍寧來源:e-works
關(guān)鍵字:solidworks二次開發(fā)三維建模插件本文通過實(shí)例介紹了Solidworks二次開發(fā)中有關(guān)三維建模編程實(shí)現(xiàn)、插件生成及過程中的編程技巧與實(shí)現(xiàn)方法,為初學(xué)者提供一個(gè)有利的參考,提高其編程效率,避免少走彎路。0.引言Solidworks是美國(guó)Solidworks公司基于Windows平臺(tái)開發(fā)的著名的全參數(shù)化三維實(shí)體造型軟件,其功能強(qiáng)大、性能優(yōu)良,易學(xué)易用,同時(shí)solidworks具有良好的開放性和兼容性。不僅可以向下兼容二維AutoGAD,同時(shí)也可以與許多其它專業(yè)軟件(如有限元分析軟件Ansys、三維實(shí)體設(shè)計(jì)軟件UG、Pro/E等)無(wú)縫集成為功能十分強(qiáng)大的CAD/GAE/CAM/PDM系統(tǒng),完全能勝任大型工程與產(chǎn)品的設(shè)計(jì)、分析、制造和數(shù)據(jù)管理。當(dāng)前,各類用戶不僅在應(yīng)用Solidworks的強(qiáng)大功能進(jìn)行各類專業(yè)設(shè)計(jì),同時(shí)也在積極探索Solidworks的二次開發(fā)技術(shù),力求擴(kuò)展Solidworks的功能并使其用戶化、專業(yè)化、本土化,以提高該軟件的附加值與工作效率。本文通過實(shí)例介紹了Solidworks二次開發(fā)中有關(guān)零部件繪制、插件生成及獨(dú)立可執(zhí)行文件生成過程中的編程技巧與實(shí)現(xiàn)方法。三維設(shè)計(jì)VB編程實(shí)現(xiàn)對(duì)于大多數(shù)三維軟件使用者來說,主要是單純的三維建模和裝配??墒窃趯?shí)際的三維設(shè)計(jì)中經(jīng)常會(huì)遇到不好解決的問題,比如頻繁出現(xiàn)的尺寸不同但形狀相似的零件,齒輪等零件的曲線繪制等。如果想解決這樣的問題就必須涉及到二次開發(fā),使用編程可以使零件建模更加快捷或更加真實(shí)。但是對(duì)于大多數(shù)初學(xué)者而言,由于牽涉到許多solidworksAPI底層命令的調(diào)用,不容易也不可能全面掌握。因此,利用宏命令進(jìn)行相關(guān)部分的錄制,在VB相關(guān)語(yǔ)法規(guī)則的約束下進(jìn)行源代碼的改寫,用這種錄制宏的方法可以快速得到solidworks的操作命令,這比檢索全英文的API文檔方便,從而有效提高了編程效率。宏錄制的源代碼不能直接運(yùn)行,必須在VB編輯器中對(duì)制作的宏文件進(jìn)行一些修改,替換相關(guān)代碼,刪除冗余代碼,這樣的話錄制的宏文件才可以得以順利運(yùn)行。關(guān)于這方面的文章很多,在此不再贅述。特別強(qiáng)調(diào)的是,對(duì)于Submain中出現(xiàn)的前七句代碼(本文以新建一個(gè)文件為例,其他情況類似):SetswApp=Application.SldWorksswApp.ActiveDoc.ActiveView.FrameLeft二0swApp.ActiveDoc.ActiveView.FrameTop=0swApp.ActiveDoc.ActiveView.FrameState=1swApp.ActiveDoc.ActiveView.FrameState=1SetPart二swApp.NewDocument("D:\ProgramFiles\SolidWorks\data\templates\零件.prtdot",0,0#,0#)SetPart二swApp.ActivateDoc2("零件1",False,longstatus)上述創(chuàng)建方法與SW的安裝位置有關(guān)聯(lián),因此使用下面三句通用的創(chuàng)建零件方法來替代這些代碼:SetswApp=Application.SldWorksSetPart二swApp.NewPartSetPart二swApp.ActiveDoc通過對(duì)宏錄制的源代碼的修改與完善,便可以運(yùn)行該宏文件。在運(yùn)行過程中,通過編輯與修改指定命令與參數(shù),便可以直觀地了解到該命令與參數(shù)的所產(chǎn)生的實(shí)際效應(yīng),以利于方便地進(jìn)行特定程序語(yǔ)句的獲取與修改。在此過程中,特別強(qiáng)調(diào)的一點(diǎn)是,在指定可執(zhí)行代碼的行上設(shè)置斷點(diǎn)以察覺某處存在的問題或是確認(rèn)程序在該處的運(yùn)行效果等,顯得尤為有效與實(shí)用。接下來的任務(wù)就是在新建的VB程序中,創(chuàng)建窗體、引用相關(guān)文件、編寫頭文件、參照宏錄制源程序進(jìn)行程序段的編寫,從而可以便捷高速地實(shí)現(xiàn)編程目的。插件生成VB創(chuàng)建solidworks插件思想為,利用solidworksAPI的功能編制solidworks插件,并集成到solidworks環(huán)境中,由solidworks程序進(jìn)行配置與管理。Solidworks插件是一個(gè)DLL文件,在用程序生成DLL的過程中,首先必須定義DLL文件與solidworks鏈接的接口,其用到的接口函數(shù)為:SwAddin.ConnectToSW和SwAddin.DisconnectFromSW。其中SwAddin.ConnectToSW是用戶編制的程序志solidworks程序入口函數(shù);SwAddin.DisconnectFromSW是卸載當(dāng)前插件的函數(shù)。具體的插件創(chuàng)建過程流程圖如圖1所示。特別強(qiáng)調(diào)的是,一定應(yīng)先引用"solidworks2007TypeLibrary">"solidworksexposedTypeLibrariesForadd-inUse"及"solidworksConsantTypeLibrary"三個(gè)庫(kù)文件,否則編譯
執(zhí)行時(shí)會(huì)出錯(cuò)[2]。igVB新陣DLL丈忡j!7|1TW-1igVB新陣DLL丈忡j!7|1TW-1?畑引用屬乜定丈址立solidworks關(guān)殺斥止件立旦的歸件津—圣資丈豔U圖1插件創(chuàng)建過程流程圖編寫插件創(chuàng)建程序過程中變量與函數(shù)定義語(yǔ)句OptionExplicitImplementsSWPublished.SwAddinDimiSldWorksAsSldWorks.SldWorksDimiCookieAsLongDimiToolbarlDAsLongDimiiAsLongDimbRetAsBooleanDimdoctypeAsLong其中ImplementsSWPublished.SwAddin語(yǔ)句為定義插件類;DimiCookieAsLong語(yǔ)句為定義SolidWorks的iCookie。建立solidworks鏈接關(guān)系的關(guān)鍵代碼SetiSldWorks=ThisSW "與SW建立連接iCookie=Cookie "從SW得到cookiebRet二iSldWorks.SetAddinCallbackInfo(App.hInstance,Me,iCookie)〃定義菜單其中SetiSldWorks=ThisSW代碼的含義為與SW建立連接;iCookie=Cookie代碼的意義是從SW得到cookie,bRet二iSldWorks.SetAddinCallbacklnfo(App.hInstance.Me,iCookie)為定義菜單語(yǔ)句。接下來便是定義工具條及相關(guān)屬性設(shè)置的編程實(shí)現(xiàn)。建立程序的各功能代碼建立各程序的功能過程,并在個(gè)過程編寫相應(yīng)代碼,必須保證這些功能過程與菜單或工具欄命令定義功能過程的一致性。作為插件,最常用的功能便是在插件菜單中調(diào)用其他子菜單,該過程的代碼為:LoadUserFormlUserForml.Show其中UserForml為需加載或調(diào)用的菜單名。插件退出代碼DimbRetAsBooleanbRet二iSldWorks.RemoveMenu(swDocPART,"SW開發(fā)程序(&M)","")bRet二iSldWorks.RemoveToolbar2(iCookie,iToolbarlD)SetiSldWorks=NothingSwAddin_DisconnectFromSW=True以上語(yǔ)句的含義為刪除菜單及工具條,為插件退出做好準(zhǔn)備。編譯生成DLL文件,在此基礎(chǔ)創(chuàng)建solidworks插件。生成插件時(shí)可采用下列兩種方法:直接打開與寫注冊(cè)表。其中在solidworks中以插件文件類型直接打開方法由于受環(huán)境影響,不太穩(wěn)定,通常采用的方法是注冊(cè)表方法。具體的實(shí)現(xiàn)方法為:注冊(cè)DLL文件;查找相關(guān)相互注冊(cè)信息及設(shè)置插件信息。結(jié)束語(yǔ)目前計(jì)算機(jī)輔助設(shè)計(jì)、制造領(lǐng)域的熱點(diǎn)問題是將參數(shù)化設(shè)計(jì)技術(shù)與CAD軟件二次開發(fā)技術(shù)相結(jié)合,根據(jù)具體產(chǎn)品設(shè)計(jì)需求對(duì)通用CAD系統(tǒng)進(jìn)行專用化的研究與開發(fā),開發(fā)自主的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生慶十一國(guó)慶節(jié)征文(5篇)
- 萬(wàn)能的年終工作總結(jié)范文(十篇)
- 產(chǎn)科醫(yī)師年度工作總結(jié)范文
- 企業(yè)會(huì)計(jì)人員工作總結(jié)范文(10篇)
- 安徽省淮北市和淮南市2025屆高三第一次質(zhì)量檢測(cè)思想政治試卷(含答案)
- 我心中的陽(yáng)光5篇
- 公眾號(hào)推廣合作合同(2篇)
- 混凝土罐車車租賃合同
- 寫字樓買賣租賃合同
- 批發(fā)市場(chǎng)攤位租賃協(xié)議
- 蒙特利爾認(rèn)知評(píng)估量表北京版
- GB/T 20154-2014低溫保存箱
- 固定資產(chǎn)報(bào)廢管理制度管理辦法
- 深基坑開挖及支護(hù)施工方案-經(jīng)專家論證
- 排水管渠及附屬構(gòu)筑物
- 養(yǎng)豬場(chǎng)施工噪聲環(huán)境影響分析
- Windows-Server-2012網(wǎng)絡(luò)服務(wù)架構(gòu)課件(完整版)
- 形位公差_很詳細(xì)(基礎(chǔ)教育)
- 手榴彈使用教案
- 600MW機(jī)組除氧器水位控制系統(tǒng)
- 史上最全的涉稅風(fēng)險(xiǎn)
評(píng)論
0/150
提交評(píng)論