国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SolidWorks的零件參數(shù)化設(shè)計(jì)

2014-04-29 00:44:03王宣董玉德
關(guān)鍵詞:支板二次開發(fā)插件

王宣 董玉德

摘要:參數(shù)化設(shè)計(jì)系統(tǒng)的二次開發(fā)是企業(yè)深化CAD應(yīng)用,提升產(chǎn)品研發(fā)效率的潮流,本文結(jié)合實(shí)例研究探討了采用VC++編程工具對SolidWorks零件進(jìn)行二次開發(fā)實(shí)現(xiàn)參數(shù)化設(shè)計(jì)的方法,對開發(fā)專用零件參數(shù)化設(shè)計(jì)系統(tǒng)具有一定的參考價值。

關(guān)鍵詞:SolidWorks;參數(shù)化設(shè)計(jì);二次開發(fā);VC++6.0

中圖分類號:TP391.72 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-4437(2014)02-0047-04

1 引言

參數(shù)化設(shè)計(jì)可以減少設(shè)計(jì)人員的大量重復(fù)性工作,明顯提高設(shè)計(jì)效率,所以對三維軟件進(jìn)行二次開發(fā),開發(fā)出企業(yè)專用的產(chǎn)品參數(shù)化設(shè)計(jì)功能模塊,已成為企業(yè)界深化CAD應(yīng)用,進(jìn)一步提高產(chǎn)品研發(fā)效率的發(fā)展趨勢。SolidWorks作為目前主流三維CAD軟件之一,不僅具有功能強(qiáng)大、易學(xué)易用和技術(shù)創(chuàng)新的特色,而且SolidWorks還提供了開發(fā)性和兼容性良好的應(yīng)用程序開發(fā)接口 (SolidWorks API),凡是支持OLE和COM的編程語言如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次開發(fā)【1】。

VC++6.0是當(dāng)今流行的軟件開發(fā)工具之一,是程序員的首選編程利器。使用VC++6.0對SolidWorks進(jìn)行二次開發(fā),能夠充分利用SolidWorks API,而且開發(fā)出的DLL應(yīng)用程序作為插件直接嵌入到SolidWorks內(nèi)部,加載成功后專用系統(tǒng)菜單直接出現(xiàn)在SolidWorks主菜單上,如SolidWorks原有菜單一樣操作方便,極大地提高了設(shè)計(jì)效率。

2 二次開發(fā)方法

在SolidWorks中,用二次開發(fā)實(shí)現(xiàn)零件的參數(shù)化設(shè)計(jì)主要有程序驅(qū)動和尺寸驅(qū)動兩種方法【2】,尺寸驅(qū)動法需要先建立參數(shù)化模板模型,然后在開發(fā)程序控制下,通過讀取不同的尺寸參數(shù)值,驅(qū)動模板模型改變, 實(shí)現(xiàn)參數(shù)化設(shè)計(jì);而程序驅(qū)動法是在開發(fā)程序控制下,自動建立不同的模型,完成參數(shù)化設(shè)計(jì)。尺寸驅(qū)基金項(xiàng)目:廣東省教育部產(chǎn)學(xué)研結(jié)合項(xiàng)目(編號:2011B090400598)動法程序代碼簡潔高效,是目前參數(shù)化設(shè)計(jì)較常用的方法,本實(shí)例就選用這種方法,開發(fā)出的零件參數(shù)化設(shè)計(jì)流程如圖1所示。

圖1 零件參數(shù)化設(shè)計(jì)流程圖

3 二次開發(fā)實(shí)例

下面以一個簡單的支板零件為例,詳細(xì)說明參數(shù)化設(shè)計(jì)二次開發(fā)方法。

3.1 建立零件模板的三維模型

參數(shù)化建模是以約束來表達(dá)產(chǎn)品模型的形狀特征,通過定義一組參數(shù)來控制設(shè)計(jì)結(jié)果,實(shí)現(xiàn)通過調(diào)整參數(shù)來修改設(shè)計(jì)模型,從而達(dá)到設(shè)計(jì)一簇在形狀或功能上具有相似性的零件的設(shè)計(jì)方案。目前,參數(shù)化建模可分為基于尺寸驅(qū)動的參數(shù)化建模、基于約束驅(qū)動的參數(shù)化建模、基于特征的參數(shù)化建模三種方法【3】?;诔叽珧?qū)動的參數(shù)化建模,是指通過修改模型的幾何尺寸,達(dá)到改變模型形狀的目的,它是目前最基本的應(yīng)用最為廣泛的建模方法,本文零件模板就是采用這種三維建模的方法。

在So1idWorks中建立零件模板的三維模型時,最好重命名模型驅(qū)動尺寸使之與參數(shù)尺寸名稱一致,便于程序識別。圖2所示文件名為“支板.SLDPRT"的三維模型,將其保存在“D:\參數(shù)化設(shè)計(jì)\模板模型\”下,以備調(diào)用。

圖2 支板模板模型圖

3.2 建立零件尺寸參數(shù)數(shù)據(jù)表

為了方便快捷通過參數(shù)化設(shè)計(jì)生成相似零件, 需要將參數(shù)數(shù)據(jù)存儲在數(shù)據(jù)庫中, 目前可供選擇的數(shù)據(jù)庫很多【4】。 其中Access 簡單易用, 接口靈活,完全滿足零件參數(shù)化設(shè)計(jì)對數(shù)據(jù)管理的要求, 因此常選用Access作為管理數(shù)據(jù)的工具,本實(shí)例就是采用Access建立尺寸參數(shù)數(shù)據(jù)庫的。

在Access中創(chuàng)建數(shù)據(jù)庫“zz.mdb”,在庫中建立支板尺寸參數(shù)數(shù)據(jù)表,如圖3所示,保存路徑為“D:\參數(shù)化設(shè)計(jì)\數(shù)據(jù)庫\零件庫\ zz.mdb”。

圖3 支板尺寸參數(shù)數(shù)據(jù)表

3.3 二次開發(fā)編程

(1)創(chuàng)建新的ATL工程并添加ATL對象

在Visual C++6.0環(huán)境中,使用ATL COM AppWizard對象向?qū)ЫLL工程,自定義名稱為zz,然后在工程中添加新的ATL對象,在新對象屬性對話框中添加ATL對象名稱zzp,向?qū)ё詣由山涌贗zzp,該接口是所開發(fā)的參數(shù)化設(shè)計(jì)插件與SolidWorks的通信接口,接下來通過添加代碼來實(shí)現(xiàn)本插件所要具備的功能。

(2)添加菜單和菜單項(xiàng)

在工程資源的String Table(字串表)中定制菜單資源,如圖4所示

圖4 菜單項(xiàng)String Table設(shè)置

其中“零件庫@參數(shù)化設(shè)計(jì)”表示:“參數(shù)化設(shè)計(jì)”是添加到So1idWorks界面的菜單名稱,零件庫是該下拉菜單的菜單項(xiàng)。

(3)創(chuàng)建用戶操作界面

首先用對話框資源編輯器創(chuàng)建支板對話框模板資源,然后利用類向?qū)lass Wizard添加對話框類zbandlg,并向?qū)υ捒蝾愔刑砑酉⑻幚砗瘮?shù)、成員變量等,向?qū)ё詣由稍搶υ捒蝾惖膠bandlg.h和zbandlg.cpp文件 ;最后聲明對話框類的對象以便激活打開對話框,添加的主要代碼如下:

void seconddlg::getSW(ISldWorks *Sw) //添加連接對話框與SldWorks對象的方法

{

this->m_iSldWorks_dlg = Sw;

}

CComPtr m_iSldWorks_dlg; //添加對話框成員變量

zbandlg *pdlg=new zbandlg; //新命名對話框

pdlg->Create(IDD_zban,NULL); //生成對話框

pdlg->ShowWindow(SW_SHOW); //將對話框設(shè)置為可見

pdlg->getSW(this->m_iSldWorks_dlg); //調(diào)用對話框的Get SW函數(shù)

ShowWindow(SW_HIDE);//顯示對話框

(4)訪問數(shù)據(jù)庫

將已建立的支板尺寸參數(shù)數(shù)據(jù)表載入支板零件操作界面的列表框中,主要實(shí)現(xiàn)步驟是:

1)在工程的StdAfx.h文件里引入ADO庫文件, 添加代碼如下:

#import "C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF") rename("Parameter","adoParameter")

msado15.dll動態(tài)鏈接庫中定義了ADO接口對象。

2)連接數(shù)據(jù)庫獲取數(shù)據(jù)表

一般使用函數(shù)open或使用UDL文件連接數(shù)據(jù)庫。因?yàn)椴捎胾dl文件建立連接后,當(dāng)數(shù)據(jù)源改變后,只需雙擊相應(yīng)的udl文件打開屬性對話框重置數(shù)據(jù)源即可,不用更改軟件編制的程序,所以本實(shí)例選用此方法,建立的1.udl文件如圖5所示。

在zbandlg.h和zbandlg.cpp文件中添加的主要代碼是:

_ConnectionPtr m_pConnection; //添加數(shù)據(jù)庫連接對象變量

_RecordsetPtr m_pRecordset; //添加數(shù)據(jù)庫記錄集變量

m_pConnection->ConnectionString="File Name=D:\\參數(shù)化設(shè)計(jì)\\數(shù)據(jù)庫\\1.udl";

//連接zz.mdb數(shù)據(jù)庫

m_pRecordset->Open("SELECT * FROM zban "…), // 獲取支板零件的尺寸參數(shù)數(shù)據(jù)表

圖5 udl文件建立圖

(5)參數(shù)尺寸驅(qū)動模板模型改變,生成新零件

1)將支板零件操作界面列表框內(nèi)的一行數(shù)據(jù),賦值給對話框中的編輯框,獲得驅(qū)動尺寸參數(shù)。主要代碼是:

Void zbandlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) // 添加雙擊列表框響應(yīng)事件函數(shù)

ListView_SetExtendedListViewStyleEx(m_List.m_hWnd,LVS_EX_FULLROWSELECT,0xFFFFFFFF);//選擇某行

if(nItem>=0 && nItem

CString str = m_List.GetItemText(nItem,subItem);//得到某行某列的值

2)點(diǎn)擊支板零件操作界面上的“三維圖”按鈕,實(shí)現(xiàn)調(diào)入零件模板模型,參數(shù)尺寸驅(qū)動,生成新零件。主要代碼是:

void zhizdlg::OnButton1()//添加單擊“三維圖”按鈕響應(yīng)事件函數(shù)

CComBSTR fileName(_T("D:\\參數(shù)化設(shè)計(jì)\\模板模型\\支板.SLDPRT"));//定義文件名

CComPtr m_iModelDoc;//定義ModelDoc對象

m_iSldWorks_dlg->OpenDoc6(fileName,swDocPART,Options,NULL,&Errors,&Warnings,&m_iModelDoc);//打開文件

........................................

CString a0="L@草圖1";//定義參數(shù)名

paramNames[0]=a0.AllocSysString();//將參數(shù)名CString類型變量轉(zhuǎn)換為BSTR類型變量

CString b0=m_L.GetBuffer(0);//獲得用戶輸入的參數(shù)值

paramValues[0]=b0.AllocSysString();//將參數(shù)值CString類型變量轉(zhuǎn)換為BSTR類型變量

pConfigurationManager->ISetConfigurationParams ( Name, paramCount, paramNames, paramValues, &retval);//設(shè)置配置中的各參數(shù)值,生成新零件

3.4 編譯鏈接, 生成.dll文件,加載插件

在SolidWorks中,通過點(diǎn)擊菜單“工具/插件”,打開插件對話框,選擇zz插件完成加載;也可點(diǎn)擊菜單“文件/打開”,選擇文件類型Add-Ins, 打開zz.dll實(shí)現(xiàn)加載。

3.5 運(yùn)行實(shí)例

打開SolidWorks菜單欄里“參數(shù)化設(shè)計(jì)”下拉菜單,選擇“零件庫”選項(xiàng),打開“零件庫”

圖6 打開支板零件操作界面圖

圖7 支板三維圖

對話框,再點(diǎn)擊“支板”按鈕,打開“支板”用戶操作界面,如圖6所示,雙擊列表框“系列號”是“ZBAN4”的一行數(shù)據(jù),編輯框內(nèi)出現(xiàn)相應(yīng)尺寸參數(shù),也可手動輸入尺寸參數(shù),單擊“三維圖”按鈕,生成新的三維模型,如圖7所示。

4 結(jié)束語

在SolidWorks軟件環(huán)境下,利用VC++6.0編程語言開發(fā)出零件庫參數(shù)化設(shè)計(jì)系統(tǒng),探討了參數(shù)化設(shè)計(jì)插件的開發(fā)過程和使用方法,對SolidWorks軟件的二次開發(fā)研究和實(shí)踐工作具有一定的參考價值。

——————

參考文獻(xiàn)

[1] 董玉德,趙韓.CAD二次開發(fā)理論與技術(shù)[M].合肥:合肥工業(yè)大學(xué)出版社,2009:7-11.

[2] 王東,蒲小瓊.基于SolidWorks的機(jī)械零件參數(shù)化設(shè)計(jì)[J].機(jī)械制造與研究,2004,33(5):15-17.

[3] 陳璐.基于SolidWorks的參數(shù)化建模[J].CAD/CAM與制造業(yè)信息化,2007,(2-3):72-73.

[4] 陳岳坪,高健,王虎奇.基于ATL技術(shù)的SolidWorks二次開發(fā)新方法[J].模具工業(yè),2009,35(6):5-7.

猜你喜歡
支板二次開發(fā)插件
淺談基于Revit平臺的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
自編插件完善App Inventor與樂高機(jī)器人通信
電子制作(2019年22期)2020-01-14 03:16:34
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
基于逆向氣體噴注的支板熱防護(hù)研究
西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
壁面噴射當(dāng)量比對支板凹腔耦合燃燒的影響
一種可便捷更換外殼的計(jì)算機(jī)機(jī)箱
MapWindowGIS插件機(jī)制及應(yīng)用
基于Revit MEP的插件制作探討
基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
舞钢市| 仪征市| 罗定市| 新密市| 安丘市| 亳州市| 孟村| 水城县| 扬州市| 孟津县| 尉犁县| 亳州市| 桂阳县| 安康市| 丁青县| 石楼县| 山阴县| 阳原县| 西吉县| 新巴尔虎左旗| 新干县| 池州市| 宝清县| 大兴区| 绥德县| 长顺县| 临武县| 什邡市| 南汇区| 张家川| 台山市| 赤峰市| 工布江达县| 通江县| 奉贤区| 桃源县| 加查县| 永靖县| 临夏县| 广南县| 白河县|