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

?

基于SOLIDWORKS的標(biāo)準(zhǔn)件庫(kù)二次開(kāi)發(fā)

2019-03-30 06:15:44李培遠(yuǎn)
科學(xué)與技術(shù) 2019年4期
關(guān)鍵詞:語(yǔ)言

摘要:利用SolidWorks工具對(duì)螺母標(biāo)準(zhǔn)件進(jìn)行建模的二次開(kāi)發(fā),極大方便用戶(hù)在機(jī)械產(chǎn)品設(shè)計(jì)方面的工作,可以讓用戶(hù)有更多的精力用于新零件的設(shè)計(jì)開(kāi)發(fā)上,減少設(shè)計(jì)開(kāi)發(fā)周期,大幅度提高產(chǎn)品設(shè)計(jì)的效率,提高市場(chǎng)效益,降低人工成本。鑒于VB語(yǔ)言存在的不足,使用C#語(yǔ)言,結(jié)合SolidWorks API函數(shù),以六角螺母為例,采用尺寸驅(qū)動(dòng)法,通過(guò)數(shù)據(jù)庫(kù)中的參數(shù)來(lái)驅(qū)動(dòng)零件重新建模,開(kāi)發(fā)了基于SolidWorks的六角螺母標(biāo)準(zhǔn)件庫(kù)。詳細(xì)介紹了主要開(kāi)發(fā)步驟包括創(chuàng)建數(shù)據(jù)庫(kù)、設(shè)計(jì)零件模板以及編寫(xiě)程序等。運(yùn)行結(jié)果表明,該設(shè)計(jì)結(jié)果可以降低勞務(wù)的重復(fù)性,提升設(shè)計(jì)的效率,具有比較好的實(shí)用性。

關(guān)鍵詞:SolidWorks;建模設(shè)計(jì);C#語(yǔ)言

Abstract:Using SolidWorks tools to model the secondary development of nuts standard parts greatly facilitates users'work in mechanical product design. It can make users have more energy for the design and development of new parts,reduce the design and development cycle,greatly improve product design efficiency,improve efficiency and reduce costs. In view of the deficiencies of VB language,using C# language and SolidWorks API function,taking hexagonal nuts as an example,using dimension-driven method,driving parts to re-model through the parameters in the database,the standard parts library of hexagonal nuts based on SolidWorks is developed. The main development steps are introduced in detail,including creating database,designing part template and compiling program. The operation results show that the design results can reduce the repeatability of labor services,improve the efficiency of design,and have good practicability.

Key words:SolidWorks;Modeling Design;C#;

引言

Solid Works是一款優(yōu)秀的產(chǎn)品設(shè)計(jì)軟件,因其設(shè)計(jì)過(guò)程簡(jiǎn)便、建模功能強(qiáng)大、開(kāi)放性與兼容性較好,為廣大機(jī)械產(chǎn)品設(shè)計(jì)人員和工程師所接受[1]。

雖然SolidWorks有強(qiáng)大的功能,但該軟件是針對(duì)整個(gè)機(jī)械制造行業(yè)的通用型軟件,不是針對(duì)具體企業(yè)和行業(yè)所設(shè)計(jì)的,不能滿(mǎn)足特定的產(chǎn)品設(shè)計(jì)用戶(hù)的建模過(guò)程與簡(jiǎn)化要求。例如,國(guó)外制圖標(biāo)準(zhǔn)與國(guó)內(nèi)不一致,在生成設(shè)計(jì)工程圖時(shí),沒(méi)有中國(guó)的制圖GB標(biāo)準(zhǔn)(尤其是基準(zhǔn)符號(hào)、放大圖標(biāo)注、粗糙度標(biāo)注、裝配圖序號(hào)、標(biāo)題欄、明細(xì)表等),也不存在適合我國(guó)制圖標(biāo)準(zhǔn)的標(biāo)準(zhǔn)件庫(kù)[2]。因此,如何通過(guò)SolidWorks的二次開(kāi)發(fā)創(chuàng)建類(lèi)似于螺母這樣的標(biāo)準(zhǔn)件庫(kù),讓用戶(hù)有更多的精力用于新零件的設(shè)計(jì)上,極大方便我國(guó)用戶(hù)在機(jī)械產(chǎn)品設(shè)計(jì)開(kāi)發(fā)的工作,提升設(shè)計(jì)效率,減少設(shè)計(jì)開(kāi)發(fā)時(shí)間,提高效益,降低成本,是一項(xiàng)非常有意義且必要的工作[3]。

雖Visual Basic擁有其簡(jiǎn)單易用和“所見(jiàn)即所得”的特性,使得它目前依然較多SolidWorks二次開(kāi)發(fā)者使用的工具。然而Visual Basic語(yǔ)言不支持繼承性、無(wú)多線(xiàn)程技術(shù)支持、功能不全的異常處理能力等多項(xiàng)明顯缺點(diǎn),在SolidWorks二次開(kāi)發(fā)的技術(shù)發(fā)展中無(wú)法滿(mǎn)足需求[4]。C#是由微軟公司開(kāi)發(fā)的較新的、現(xiàn)代的、簡(jiǎn)單的、面向?qū)ο蟮?、?lèi)型安全的、且是介于C和C++之間的開(kāi)發(fā)編程工具,功能十分強(qiáng)大[5]。

鑒于VB語(yǔ)言的不足,使用C#語(yǔ)言,結(jié)合SolidWorks的API函數(shù),以六角螺母為例,開(kāi)發(fā)了基于SolidWorks的六角螺母標(biāo)準(zhǔn)件庫(kù)。運(yùn)行結(jié)果表明,該設(shè)計(jì)結(jié)果可以降低勞務(wù)的重復(fù)性,提升設(shè)計(jì)的效率,具有比較好的實(shí)用性。

1.六角螺母標(biāo)準(zhǔn)件庫(kù)二次開(kāi)發(fā)方法

編程法和尺寸驅(qū)動(dòng)法是SolidWorks的二次開(kāi)發(fā)過(guò)程中的常用兩種方法。

比較兩種SolidWorks建模過(guò)程的二次開(kāi)發(fā),雖使用軟件自帶的宏錄制功能來(lái)簡(jiǎn)化編程任務(wù),然而其簡(jiǎn)化程度不同。使用編程法時(shí),在三維造型過(guò)程中使用宏錄制功能將造型過(guò)程全部錄制下來(lái),然后通過(guò)修改宏代碼的方式,賦以相關(guān)的變量。雖然簡(jiǎn)化了編程工作,仍存在避免不了的缺點(diǎn)。在使用宏功能錄制整體造型時(shí),不能錄制全部的設(shè)計(jì)過(guò)程,開(kāi)發(fā)者依然需要用SolidWorks API函數(shù)對(duì)遺漏的設(shè)計(jì)過(guò)程進(jìn)行代碼編寫(xiě)。

比較尺寸驅(qū)動(dòng)法,不需要通過(guò)宏錄制功能記錄整個(gè)造型設(shè)計(jì)的過(guò)程,而是產(chǎn)品零件建模工作完成后,只需對(duì)參數(shù)化的尺寸進(jìn)行修改即更新零件,使用宏錄制功能將尺寸的修改過(guò)程錄制下來(lái)。這樣就不用考慮模型的設(shè)計(jì)建模過(guò)程是怎樣,只關(guān)心對(duì)零件建模的修改,而且很大程序上減少了SolidWorks API 函數(shù)的使用[6]。

考慮到編程法的不足和尺寸驅(qū)動(dòng)法的優(yōu)勢(shì),因此在本文采用尺寸驅(qū)動(dòng)法對(duì)六角螺母標(biāo)準(zhǔn)件進(jìn)行二次開(kāi)發(fā)。

2. 主要開(kāi)發(fā)步驟

2.1數(shù)據(jù)庫(kù)的創(chuàng)建

使用尺寸驅(qū)動(dòng)方法進(jìn)行SolidWorks二次開(kāi)發(fā)時(shí),尺寸參數(shù)的名稱(chēng)必須和SolidWorks模型中相對(duì)應(yīng)的尺寸的名稱(chēng)相同。因此,合理的設(shè)計(jì)數(shù)據(jù)庫(kù),才能實(shí)現(xiàn)預(yù)期的功能。本文創(chuàng)建的六角螺母庫(kù)參數(shù)數(shù)據(jù)庫(kù)如圖1所示。圖1中,主動(dòng)參數(shù)為M*P,其它所有從動(dòng)參數(shù)的參數(shù)值可以通過(guò)主動(dòng)參數(shù)直接確定。

2.2設(shè)計(jì)零件模板

尺寸驅(qū)動(dòng)方法在重新生成模型時(shí),模型中的每一個(gè)尺寸都需要獲得相應(yīng)的尺寸來(lái)驅(qū)動(dòng)重新建模。本文設(shè)計(jì)的六角螺母標(biāo)準(zhǔn)件的零件模板如圖2所示。

2.3編寫(xiě)程序

在六角螺母參數(shù)數(shù)據(jù)庫(kù)以及零件模板建立好后,接下來(lái)的編寫(xiě)程序是最重要也是最復(fù)雜的步驟。以下關(guān)鍵代碼的主要功能是實(shí)現(xiàn)用戶(hù)在裝配體環(huán)境下從設(shè)計(jì)庫(kù)中插入標(biāo)準(zhǔn)件時(shí),觸發(fā)一個(gè)插入零件的事件,系統(tǒng)會(huì)自動(dòng)打開(kāi)這個(gè)零件,同時(shí)彈出參數(shù)對(duì)話(huà)框,在用戶(hù)選擇了相應(yīng)參數(shù)重新建模后,能夠?qū)⑿律a(chǎn)的零件自動(dòng)保存在一個(gè)固定的地方。在保存零件時(shí)應(yīng)該判斷是否已經(jīng)有完全相同尺寸的零件存在,如果已經(jīng)存在,需要用已存在的零件來(lái)替換這個(gè)零件。在保存零件后應(yīng)該關(guān)閉該零件,返回到裝配體環(huán)境。具體的程序如下:

if(SwApp.ActivateDoc("六角厚螺母")!= null)//判斷需要保存的零件是否已經(jīng)存在

{

string NewFileName;

FrmParam.ShowDlgParam(@"D:\螺母\nut1.flx");

NewFileName = FrmParam.filename();//設(shè)置零件保存的名稱(chēng)

NewFileName = "E:\螺母\" + NewFileName;

if(File.Exists(NewFileName)== false)//保存的零件不存在

{ //保存該零件,同時(shí)關(guān)閉該零件,返回到裝配體環(huán)境

SldWorks swApp =(SldWorks)Marshal.GetActiveObject("SldWorks.Application");

ModelDoc2 swActiveDoc =(ModelDoc2)swApp.ActiveDoc;

swActiveDoc.SaveAs2(NewFileName,0,false,false);

swApp.CloseDoc(NewFileName);

}

Else //保存的零件已經(jīng)存在

{ //用已有的零件來(lái)替換該零件,同時(shí)關(guān)閉該零件,返回到裝配體環(huán)境

bool bResult = doc.ReplaceComponents(NewFileName,"默認(rèn)",false,false);

SldWorks swApp =(SldWorks)Marshal.GetActiveObject("SldWorks.Application");

ModelDoc2 swActiveDoc =(ModelDoc2)swApp.ActiveDoc;

swActiveDoc.SaveAs2(@"E:\螺母\nut2.SLDPRT",0,false,false);

swApp.CloseDoc(@"E:\螺母\nut2.SLDPRT");

File.Delete(@"E:\螺母\nut2.SLDPRT");

}

3 總結(jié)

通過(guò)對(duì)SolidWorks二次開(kāi)發(fā)的工具和SolidWorks二次開(kāi)發(fā)的方法的比較,選擇了尺寸驅(qū)動(dòng)的方法與C#語(yǔ)言,結(jié)合SolidWorks API函數(shù),以六角螺母為例,通過(guò)數(shù)據(jù)庫(kù)中的參數(shù)來(lái)驅(qū)動(dòng)零件重新建模,開(kāi)發(fā)了基于SolidWorks的六角螺母標(biāo)準(zhǔn)件庫(kù)。詳細(xì)介紹了主要開(kāi)發(fā)步驟包括創(chuàng)建數(shù)據(jù)庫(kù)、設(shè)計(jì)零件模板以及編寫(xiě)程序等。運(yùn)行結(jié)果表明,該設(shè)計(jì)結(jié)果可以降低勞務(wù)的重復(fù)性,提升設(shè)計(jì)的效率,具有比較好的實(shí)用性。

參考文獻(xiàn)

[1]吳志林,張凱還. 基于SolidWorks尺寸驅(qū)動(dòng)建模的二次開(kāi)發(fā)[J]. 計(jì)算機(jī)時(shí)代,2013(01):14.

[2] 嚴(yán)竹生. SolidWorks二次開(kāi)發(fā)關(guān)鍵技術(shù)研究[J]. 中國(guó)科技信息,2006(21):146.

[3] 王曉麗、季忠.SolidWorks的二次開(kāi)發(fā)方法比較[J].現(xiàn)在制造技術(shù)與裝備,2006(2):50.

[4]許陳. 基于紅外投影的駕駛員頭部姿勢(shì)探測(cè)實(shí)驗(yàn)系統(tǒng)的開(kāi)發(fā)[D].南京理工大學(xué),2014.

[5]唐敏康,李永兵. 基于C#.NET的Solidworks二次開(kāi)發(fā)在數(shù)字礦山中的應(yīng)用[J]. 現(xiàn)代礦業(yè),2009(05):63.

[6]王曉麗、季忠.SolidWorks的二次開(kāi)發(fā)方法比較[J].現(xiàn)在制造技術(shù)與裝備,2006(2):50.

基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目“基于本體的復(fù)雜產(chǎn)品功能語(yǔ)義表示與智能分解研究”(61772247);

浙江省科技計(jì)劃項(xiàng)目“面向復(fù)雜地形環(huán)境下中小型橋梁的安全檢測(cè)系統(tǒng)研發(fā)”(LGF8E070001);

浙江省教育廳科研項(xiàng)目“面向龍泉青瓷的視覺(jué)上釉機(jī)械手系統(tǒng)研究”(Y201636936)

作者簡(jiǎn)介:李培遠(yuǎn),男(漢族),浙江蒼南人,助理實(shí)驗(yàn)師,研究方向:CAD/CAM技術(shù)研究與應(yīng)用、3D打印技術(shù)研究與產(chǎn)業(yè)化。

(作者單位:麗水學(xué)院工學(xué)院;浙江省特色文創(chuàng)產(chǎn)品數(shù)字化設(shè)計(jì)與智能制造重點(diǎn)實(shí)驗(yàn)室)

猜你喜歡
語(yǔ)言
語(yǔ)言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語(yǔ)言描寫(xiě)搖曳多姿
多向度交往對(duì)語(yǔ)言磨蝕的補(bǔ)正之道
累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
我有我語(yǔ)言
論語(yǔ)言的“得體”
延庆县| 韶关市| 海南省| 阜康市| 古丈县| 临城县| 山西省| 银川市| 全州县| 辉南县| 沾益县| 营口市| 平舆县| 汉源县| 合江县| 西畴县| 富顺县| 铜川市| 涟源市| 响水县| 绥化市| 武安市| 通山县| 鄄城县| 双城市| 台东市| 留坝县| 永顺县| 江都市| 拉萨市| 永丰县| 甘谷县| 德兴市| 泽库县| 蛟河市| 济阳县| 夹江县| 聂拉木县| 天柱县| 祁阳县| 黎川县|