版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
濟(jì)南大學(xué)畢業(yè)設(shè)計(jì)PAGE28-1前言1.1選題的目的和意義SolidWorks雖然擁有強(qiáng)大的功能,但是也并非是十全十美。不何能滿足特定企業(yè)的特殊需求。例如,該軟件是外國(guó)人寫(xiě)的,不適合中國(guó)的國(guó)標(biāo),如:標(biāo)題欄、明細(xì)表、剖視圖的標(biāo)注、裝配圖的序號(hào)等。也沒(méi)有適合我國(guó)國(guó)標(biāo)的標(biāo)準(zhǔn)零件庫(kù)。據(jù)資料顯示,我國(guó)有很多企業(yè)引進(jìn)國(guó)外的CAD系統(tǒng),但大部分未得到充分利用、未能全面用于產(chǎn)品設(shè)計(jì),企業(yè)對(duì)CAD系統(tǒng)的巨額投資,并沒(méi)有真正達(dá)到提高產(chǎn)品的設(shè)計(jì)質(zhì)量,縮短產(chǎn)品設(shè)計(jì)周期的目的,也沒(méi)有帶來(lái)本來(lái)應(yīng)有的效益。究其原因,是未對(duì)CAD系統(tǒng)應(yīng)用設(shè)計(jì)方面和管理方面進(jìn)行二次開(kāi)發(fā)。據(jù)抽樣調(diào)查,國(guó)內(nèi)己引進(jìn)的CAD系統(tǒng)能達(dá)到利用率高而且效益比較好的企業(yè)和事業(yè)單位在20%-30%左右,所以沒(méi)有進(jìn)行用戶化、專業(yè)化的二次開(kāi)發(fā)這在一定程度上是沒(méi)有對(duì)真正意義上的CAD有效運(yùn)用。所以,為了適應(yīng)特定企業(yè)的特定需求,形成企業(yè)自己的特色產(chǎn)品,使SolidWorks在我國(guó)的企業(yè)中有效的發(fā)揮最大作用,并且使常用的或是重復(fù)的任務(wù)自動(dòng)化,提高效率,就必須對(duì)其進(jìn)行用戶化和專業(yè)化的二次開(kāi)發(fā)工作。伴隨著CAD技術(shù)的不斷推廣以及科技的發(fā)展,同時(shí)市場(chǎng)對(duì)CAD技術(shù)也提出越來(lái)越高的要求。所以從CAD本身技術(shù)的發(fā)展看,其將向參數(shù)化、智能化、集成化和標(biāo)準(zhǔn)化趨勢(shì)發(fā)展。(1)參數(shù)化由于大多數(shù)的產(chǎn)品設(shè)計(jì)工作大多都是在原有設(shè)計(jì)基礎(chǔ)上進(jìn)行改進(jìn),傳統(tǒng)的CAD繪圖軟件要對(duì)已有的圖面的修改只能是刪除原有的線條后重新畫(huà)上,而參數(shù)化設(shè)計(jì)將能徹底解決這類問(wèn)題并且極大地提高產(chǎn)品的設(shè)計(jì)效率。通過(guò)尺寸驅(qū)動(dòng)的方法,既能為設(shè)計(jì)人員提供準(zhǔn)確、直觀的圖形反饋,又能隨時(shí)對(duì)設(shè)計(jì)對(duì)象加以修改。目前,先進(jìn)的三維CAD軟件都增加了零件的參數(shù)化和變量化設(shè)計(jì)模塊,設(shè)計(jì)過(guò)程中所涉及到的參數(shù)都可以被當(dāng)作變量,并可建立相互間的關(guān)系和約束,增加邏輯程序,使產(chǎn)品的設(shè)計(jì)圖形可以隨著某個(gè)結(jié)構(gòu)尺寸的修改而自動(dòng)修改圖形。這些變量間的關(guān)系可以逾越CAD軟件的不同模塊,以實(shí)現(xiàn)設(shè)計(jì)數(shù)據(jù)的相關(guān)聯(lián),參數(shù)化是實(shí)現(xiàn)機(jī)械設(shè)計(jì)零件自動(dòng)化的前提和基礎(chǔ)。(2)智能化CAD軟件作為一種輔助設(shè)計(jì)工具,其核心目標(biāo)是幫助設(shè)計(jì)人員更容易的設(shè)計(jì)出更好、更具市場(chǎng)競(jìng)爭(zhēng)力的產(chǎn)品,這無(wú)疑要求CAD系統(tǒng)在實(shí)現(xiàn)控制設(shè)計(jì)過(guò)程、優(yōu)化和智能設(shè)計(jì)等,同時(shí)還應(yīng)具備豐富的圖形處理功能,實(shí)現(xiàn)產(chǎn)品的“結(jié)構(gòu)描述”與“圖形描述"之間的轉(zhuǎn)換。所以,在以幾何模型為主的現(xiàn)代CAD技術(shù)的基礎(chǔ)上,發(fā)展面向設(shè)計(jì)過(guò)程的智能化得CAD技術(shù)是一種必然趨勢(shì)。(3)集成化集成化是當(dāng)今CAD技術(shù)發(fā)展的另一大趨勢(shì),在集成了計(jì)算機(jī)軟件、硬件、數(shù)據(jù)庫(kù)、外圍設(shè)備、網(wǎng)絡(luò)及各個(gè)應(yīng)用領(lǐng)域的技術(shù)的同時(shí),還不斷和CAM、CAFP、MIS、MRP等系統(tǒng)集成。(4)標(biāo)準(zhǔn)化隨著CAD技術(shù)的不斷發(fā)展和與日趨成熟,制定不同產(chǎn)品的設(shè)計(jì)、評(píng)測(cè)和數(shù)據(jù)交換標(biāo)準(zhǔn)顯得尤為重要。目前,在主機(jī)和工作站上用于數(shù)據(jù)交換的圖形文件標(biāo)準(zhǔn)有:AutoCAD系統(tǒng)的DXF文件、美國(guó)標(biāo)準(zhǔn)IGES及國(guó)際數(shù)據(jù)標(biāo)準(zhǔn)STEP等。同時(shí)國(guó)家還將逐步建立圖文并茂、參數(shù)化的標(biāo)準(zhǔn)零件件庫(kù),替代現(xiàn)行的的標(biāo)準(zhǔn)手冊(cè)。同時(shí)一些對(duì)于我們來(lái)說(shuō),經(jīng)常用到的液壓元件如:法蘭盤、螺塞用墊片等,我們?cè)谟肧olidWorks畫(huà)圖,顯然每次用到每次現(xiàn)畫(huà),顯得總是那么麻煩,即便是特別熟悉SolidWorks的作圖者,也會(huì)產(chǎn)生反感。再者,即使你每次都能使用SolidWorks畫(huà)出其形狀,但對(duì)于該液壓元件的標(biāo)注尺寸,往往會(huì)使人感到頭疼,每次還得翻閱資料也會(huì)浪費(fèi)不少的時(shí)間。因此,鑒于SolidWorks能進(jìn)行二次開(kāi)發(fā)的功能,從而將一些常用的液壓元件,首先用SolidWorks會(huì)出其圖形,然后提取出控制該圖形的尺寸屬性,并將其賦值成變量。再利用MicrosoftAccess建立數(shù)據(jù)庫(kù),當(dāng)然數(shù)據(jù)庫(kù)中的數(shù)據(jù)均來(lái)自類似于《機(jī)械設(shè)計(jì)手冊(cè)》之類的權(quán)威資料。最后利用SolidWorks的API對(duì)象的調(diào)用方法,將Access中的數(shù)據(jù)讀入到上面的尺寸變量中,然后利用尺寸驅(qū)動(dòng)的措施,來(lái)完成液壓元件校準(zhǔn)件的繪制。用SolidWorks建立一些常用液壓元件的標(biāo)準(zhǔn)庫(kù),不僅使得繪圖者可以輕松地調(diào)入零件,而且還促進(jìn)了零件的標(biāo)準(zhǔn)化進(jìn)程,因此說(shuō)本論文的意義頗大。1.2相關(guān)領(lǐng)域的發(fā)展現(xiàn)狀1.2.1國(guó)外研究的現(xiàn)狀(1)1982年,美國(guó)阿亨工業(yè)大學(xué)在Baek的領(lǐng)導(dǎo)下,研制出了適合用于設(shè)計(jì)液壓控制閥塊的程序包。該軟件包的硬件環(huán)境ATM_ClassicModel7870其功能具有自動(dòng)設(shè)計(jì)閥塊上的孔道,并校核孔道,能夠輸出符合DIN標(biāo)準(zhǔn)閥塊視圖和任何剖面圖等。
(2)1983年,德國(guó)巴斯大學(xué)在PDP計(jì)算機(jī)上,研制出了VOLE程序,可以繪制液壓閣塊元件的立體模型圖,孔道的實(shí)體圖等,設(shè)計(jì)人員可以用來(lái)校驗(yàn)所設(shè)計(jì)出的閥塊油路的連接狀況。
(3)1985年,坦佩雷工業(yè)大學(xué)在HPl000/A700型機(jī)械上開(kāi)發(fā)出適用于插裝閥塊設(shè)計(jì)的CAD軟件,孔道的自動(dòng)設(shè)計(jì)與校核同時(shí)進(jìn)行,可以修改孔徑、線框模型消隱、孔表信息數(shù)據(jù)輸出、刀具選擇及NC代碼生成功能。
(4)1989年,美國(guó)Hamburg-Harbcrg技術(shù)大學(xué)基于PROREN支撐的軟件以及基于AICS造型器進(jìn)行了三維閥塊的設(shè)計(jì)。
(5)1991年,英國(guó)Grenoble大學(xué)把思想引入到閥塊的設(shè)計(jì)中,指出了液壓閥塊的設(shè)計(jì)問(wèn)題既是一個(gè)空間部署問(wèn)題,以滿足液壓的元件安裝需要,也是一個(gè)線路設(shè)計(jì)的問(wèn)題,以此設(shè)計(jì)最佳的孔道。由此,把人工智能中的空間部署理論應(yīng)用到閥塊設(shè)計(jì),在AppleMacintosh上開(kāi)發(fā)了一套用于產(chǎn)生式規(guī)則的智能設(shè)計(jì)系統(tǒng)。
(6)1997年,香港理工的W.Xiang等人進(jìn)一步完善了液壓閥塊在CAD、CAPP、CNC等方面的研究,使得液壓閥塊在CAD、APP、CNC等方面的研究逾加成熟。
(7)美國(guó)Vest公開(kāi)發(fā)了的液壓設(shè)計(jì)從原理上提出一裝配體的一整套解決方案:SDTools和HyDraw軟件使用“快捷目錄”技術(shù)方便準(zhǔn)確地繪制出液壓原理圖;ADTools是一個(gè)能繪制2D裝配的軟件:在AutoCAD上開(kāi)發(fā)的MDTools軟件是嵌入式規(guī)則進(jìn)行孔道聯(lián)通和校驗(yàn);AATools(AutomatedAssemblyTools)軟件是根據(jù)原理圖和閥塊設(shè)計(jì)動(dòng)態(tài)生成3D裝配圖以及2D正視圖。
(8)1997~2001年,澳門大學(xué)的Wong,P.K.與香港理工大學(xué)的Chuen,C.W.等運(yùn)用面向?qū)ο蠡姆椒?gòu)造了閥塊模型并采用了特征技術(shù)來(lái)組織和管理閥塊的CAD/CAM產(chǎn)品信息,可以方便地定義以及修改元件和回路:在AutoCAD上開(kāi)發(fā)的原有軟件可以根據(jù)一些設(shè)計(jì)規(guī)則進(jìn)行元件布局的調(diào)整,并且在李氏迷宮算法的基礎(chǔ)上研究出了三維路徑連通算法。
(9)法國(guó)Eaton公司開(kāi)發(fā)的VickersLibraryofSICV軟件是一個(gè)包含了一千多種元件的符號(hào)庫(kù),幫助專業(yè)工化的程師在AutoCAD上進(jìn)行泵、馬達(dá)、閥和閥塊等的方案設(shè)計(jì)及零部件工程圖形設(shè)計(jì),并把設(shè)計(jì)數(shù)據(jù)和加工指令Nc代碼相連接,具有CAD/CAM一體化的特性[1]。1.2.2國(guó)內(nèi)發(fā)展水平上海交通大學(xué)在鐘廷修教授的帶領(lǐng)下,從80年代初期就開(kāi)始了液壓閥塊CAD技術(shù)的研究,相繼開(kāi)發(fā)了諸如HMCAD3.70c、CVC4.0等實(shí)用性強(qiáng)的軟件,這些軟件已在上海液壓總公司等十幾家單位使用,最近交通大學(xué)又同上海704研究所進(jìn)行合作,進(jìn)行新一代液壓閥塊的智能CAD系統(tǒng)的開(kāi)發(fā)研究。浙江大學(xué)流體傳動(dòng)與控制研究所在教授路雨祥的帶領(lǐng)下,于1989年成功研制出了插裝閥液壓系統(tǒng)設(shè)計(jì)的FPTC-CAD系統(tǒng)。該系統(tǒng)通過(guò)液壓系統(tǒng)原理圖生成模塊、液壓系統(tǒng)總裝圖模塊、插裝閥設(shè)計(jì)模塊等部分組成。在三維插裝閥液壓系統(tǒng)的閥塊CAD系統(tǒng)中,以AutoCAD作為基礎(chǔ)軟件,利用Lisp語(yǔ)言對(duì)該繪圖軟件進(jìn)行二次開(kāi)發(fā),采用變參型技術(shù)建立了三維閥塊立體的構(gòu)筑工具庫(kù),用以實(shí)現(xiàn)閥塊的三維顯示,利用“知識(shí)嵌入”方法從而解決了從立體圖轉(zhuǎn)化成工程零件圖過(guò)程中不好判斷判斷推理難點(diǎn)。(3)大連理工大學(xué)對(duì)液壓閥塊的CAD、CAPP成功開(kāi)發(fā)了集成化的軟件包,設(shè)計(jì)了七個(gè)子系統(tǒng),分別是:計(jì)算機(jī)輔助閥塊設(shè)計(jì)的子系統(tǒng)、閥塊三維圖形顯示以及十字剖面顯示的子系統(tǒng)、計(jì)算機(jī)動(dòng)畫(huà)模擬閥塊數(shù)控加工的子系統(tǒng)、數(shù)控加工機(jī)床與計(jì)算機(jī)接口通訊程序設(shè)計(jì)的子系統(tǒng)以及編輯的子系統(tǒng)。在計(jì)算機(jī)輔助閥塊設(shè)計(jì)的子系統(tǒng)中,將插裝閥孔道設(shè)計(jì)問(wèn)題歸結(jié)為插裝閥閥塊內(nèi)部任意兩孔道在同面、對(duì)面、鄰面等三種情況進(jìn)行分析和處理。在孔道的設(shè)計(jì)中,采用了優(yōu)化設(shè)計(jì)的思想,使用了分層序列法、搜索法等優(yōu)化方法。在孔道的校核中,采用將插裝閥塊內(nèi)任意的兩孔位置及其相互間的關(guān)系以兩孔同面、兩孔對(duì)面、兩孔鄰面為基礎(chǔ)而分解成平行、垂直和相交等情況分別進(jìn)行不同處理。設(shè)計(jì)的結(jié)果可以通過(guò)三維實(shí)體圖形顯示在屏幕上,該軟件系統(tǒng)不能處理斜孔的問(wèn)題,(4)首鋼液壓機(jī)械廠和大連理工大學(xué)聯(lián)合開(kāi)發(fā)了二通插裝閥塊三維CAD軟件系統(tǒng)091。(4)北京自動(dòng)化研究所在386微機(jī)上開(kāi)發(fā)出了液壓閥塊CAD軟件,該軟件由五個(gè)模塊組成:交互式閥塊的設(shè)計(jì)、孔道信息的輸入、孔道的校核、閥塊的工程圖紙生成和設(shè)計(jì)及校驗(yàn)結(jié)果的輸出。(5)東南大學(xué)在液壓閥塊的設(shè)計(jì)中,用數(shù)據(jù)結(jié)構(gòu)中的樹(shù)形來(lái)描述液壓系統(tǒng)圖,使連通關(guān)系包含到樹(shù)的結(jié)構(gòu)中,大大提高了程序的效率。
(6)安徽工業(yè)學(xué)院從計(jì)算幾何理論上提出了三維空間孔道的精確校核。通過(guò)先建立兩孔的空間曲面方程,然后聯(lián)立求解曲面的方程,得到交點(diǎn),最后判斷交點(diǎn)是否在兩孔上,若在孔上,則相交,否則不相交??啄P陀蓤A柱體和120度頂角的圓錐體組成,在這個(gè)數(shù)學(xué)模型中,沒(méi)有考慮到二通插裝閥、螺紋插裝閥等異形孔,適用的范圍很是有限[1]。2設(shè)計(jì)相關(guān)知識(shí)2.1SolidWorks的概述
SolidWorks的全球用戶已超過(guò)20萬(wàn),國(guó)外制造公司招聘時(shí)都大多數(shù)要求應(yīng)聘人具備SolidWorks的操作能力。國(guó)際上很多頂尖的名校都把SolidWorks定為大學(xué)本科學(xué)生的必修課,如麻省理工學(xué)院、英國(guó)劍橋大學(xué)等。96%的西方企業(yè)會(huì)要求員工會(huì)使用SolidWorks軟件,SolidWorks連續(xù)幾年被美國(guó)一些優(yōu)秀雜志評(píng)為不錯(cuò)的CAD軟件。
SolidWorks是一種基于Windows的CAD/CAE/CAM/PDM桌面集成系統(tǒng),是美國(guó)SolidWorks公司在總結(jié)了大型機(jī)械CAD軟件的基礎(chǔ)上,在Windows平臺(tái)下實(shí)現(xiàn)的第一個(gè)機(jī)械三維CAD軟件。它采用非全約束的特征建模技術(shù),其設(shè)計(jì)過(guò)程的全相關(guān)性,可以在設(shè)計(jì)過(guò)程的任何階段對(duì)產(chǎn)品進(jìn)行修改設(shè)計(jì)。2.2SolidWorks的功能SolidWorks是一種基于特征的參數(shù)化實(shí)體造型系統(tǒng),并且二維和三維是互相關(guān)聯(lián)的,。用戶可以很方便地完成復(fù)雜三維實(shí)體的造型和編輯、修改。在設(shè)計(jì)過(guò)程中,可以隨意修改三維實(shí)體或任一視圖的尺寸,更改后可以使三維實(shí)體和相關(guān)聯(lián)的二維視圖自動(dòng)更新。SolidWork的全參數(shù)化的設(shè)計(jì),在裝配環(huán)境里對(duì)零件進(jìn)行設(shè)計(jì)的修改,會(huì)引起整個(gè)裝配體的自動(dòng)改變。在裝配設(shè)計(jì)中,也可在裝配環(huán)境里進(jìn)行零件設(shè)計(jì):可以對(duì)已有零件添加新的特征或相對(duì)于裝配體部件進(jìn)行新的零件設(shè)計(jì)。SolidWorks的帶有約束的裝配以及封裝特征,使大型裝配既迅速又方便。另外,裝配管理員的配合也顯示出了各個(gè)裝配關(guān)系,便于查詢和修改。繪圖工程繪圖系統(tǒng)Drawing大多用于三維模型的工程圖紙的繪制與輸出,也可同時(shí)編輯多張圖紙。當(dāng)設(shè)計(jì)人員設(shè)在計(jì)圖紙文件時(shí),可以對(duì)PART文件上的特征歷史樹(shù)的總結(jié)點(diǎn),用鼠標(biāo)點(diǎn)取移動(dòng)到圖紙文件上,圖紙文件會(huì)自動(dòng)生成三視圖。繪制的圖紙上也可以自動(dòng)標(biāo)注尺寸信息。圖紙與模型之間是相互關(guān)聯(lián)的,當(dāng)模型上的尺寸或造型發(fā)生變化時(shí),圖紙也會(huì)相應(yīng)改變。視圖包括標(biāo)準(zhǔn)視圖、投影視圖、局部視圖以及剖面視圖,是零件或裝配體在圖紙上的一個(gè)投影。在視圖上可以增加或刪除,符合國(guó)標(biāo)的工程標(biāo)注。CAD系統(tǒng)隨時(shí)維護(hù)三維模型與二維繪圖的一致性。注釋及輔助線段、圓注釋和輔助的線形、圓用于給圖紙?jiān)黾右恍┮晥D中未給定的信息,如加工注意點(diǎn)、材料的選擇等。數(shù)據(jù)轉(zhuǎn)換接口由于CAD技術(shù)的不斷普以及應(yīng)用,許多企業(yè)都使用了多種CAD/CAE/CAM/軟件,而各種CAD軟件之間的數(shù)據(jù)轉(zhuǎn)換以及傳送始終是個(gè)令技術(shù)人員頭疼的問(wèn)題,盡管許多軟件都提供各種各樣的數(shù)據(jù)接口,但傳送的結(jié)果往往難盡人意;而SolidWorks在這方面可以說(shuō)稍具有大家風(fēng)范。它的數(shù)據(jù)接口有以下幾個(gè)特點(diǎn):
(1)是它支持的標(biāo)準(zhǔn)形式比較多:支持的標(biāo)準(zhǔn)有IGES,DXF,DWG,SAT(ACSI),STEP,STL,ASC或二進(jìn)制格式VDAFS(VDA),VI洲L,Parasolid。
(2)是轉(zhuǎn)換成功率提高很多,SolidWorks和I--DEAS,ADAMS,ANSYS,Pro/Engineer,AutoCAD軟件之間迸行轉(zhuǎn)換傳遞,都非常成功。
(3)SolidWorks創(chuàng)新的特征識(shí)別技術(shù)。標(biāo)準(zhǔn)格式數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換器讓人們可以使用不同CAD系統(tǒng)設(shè)計(jì)的幾何信息,但經(jīng)過(guò)這樣轉(zhuǎn)換的幾何模型不帶一些特征,也沒(méi)有設(shè)計(jì)歷史,如果要對(duì)它們進(jìn)行編輯修改是很麻煩的,SolidWorks創(chuàng)新的特征識(shí)別技術(shù)把智能用于數(shù)據(jù)的轉(zhuǎn)換,將靜態(tài)的幾何模型特征化和參數(shù)化??芍苯訉?duì)標(biāo)準(zhǔn)數(shù)據(jù)格式文件(STEP,IGES,SAT,VDAFS,Parasolid)進(jìn)行特征識(shí)別。用戶化SolidWorks的API為用戶提供了自由的、功能完整的開(kāi)發(fā)工具。開(kāi)發(fā)工具包括MicrosoftVisualBasicforApplication(VBA)、VisualC++,以及其他支持的OLE的開(kāi)發(fā)程序。幫助文件SolidWorks2010配有一套強(qiáng)大的、基于HTML的幫助文件系統(tǒng)。包括超級(jí)文本鏈接、動(dòng)畫(huà)示教、以及設(shè)計(jì)向?qū)Ш托g(shù)語(yǔ)。2.3二次開(kāi)發(fā)理論要對(duì)SolidWorks軟件進(jìn)行二次開(kāi)發(fā),二次開(kāi)發(fā)人員大多會(huì)想通過(guò)修改系統(tǒng)源程序來(lái)滿足二次開(kāi)發(fā)的要求,但這幾乎是不可能的。原因是商品化軟件開(kāi)發(fā)商出于保護(hù)軟件的知識(shí)產(chǎn)權(quán)和技術(shù)機(jī)密的緣由,不會(huì)將軟件系統(tǒng)源代碼全部提供給軟件銷售商,銷售商在銷售軟件產(chǎn)品時(shí)僅提供了打包封裝后的執(zhí)行代碼,所以期望全面分析、了解該軟件的設(shè)計(jì)原理程序編制流程,通過(guò)修改SolidWorks軟件的代碼來(lái)滿足軟件的個(gè)性化功能是根本不現(xiàn)實(shí)的。一種行之有效的方式便是利用軟件提供的可擴(kuò)性的接口來(lái)對(duì)SolidWorks軟件進(jìn)行二次開(kāi)發(fā)。SolidWorks系統(tǒng)具有非常開(kāi)放的體系結(jié)構(gòu),支持OLEAutomation技術(shù),為用戶提供了強(qiáng)大的二次開(kāi)發(fā)數(shù)據(jù)接口。所以凡是支持OLE編程的開(kāi)發(fā)工具,如VB都可用于SolidWorks的二次開(kāi)發(fā),這樣可以利用系統(tǒng)提供的函數(shù)集和對(duì)象庫(kù)來(lái)創(chuàng)建出用戶定制的、專用的SolidWorks功能模塊。本課題將采用操作簡(jiǎn)便、易于學(xué)習(xí)的VB作為開(kāi)發(fā)工具,借助關(guān)系型數(shù)據(jù)庫(kù)Access進(jìn)行基于SolidWorks的二次開(kāi)發(fā)。SolidWorksAPI由大量的對(duì)象、方法、事件等組成,本節(jié)將先介紹使用SolidWorksAPI進(jìn)行二次開(kāi)發(fā)的術(shù)語(yǔ),然后將對(duì)SolidWorksAPI的對(duì)象進(jìn)行概述。2.4SolidWorksAPI二次開(kāi)發(fā)中的術(shù)語(yǔ)①對(duì)象(Object)對(duì)象就是我們?cè)诳陀^世界中所要研究的事、物、概念等,VB中的對(duì)象大多是私有數(shù)據(jù)以及可以對(duì)這些數(shù)據(jù)和施加的操作結(jié)合在一起構(gòu)成的獨(dú)立實(shí)體,即對(duì)象不僅可以表示結(jié)構(gòu)化為的數(shù)據(jù),還可以表示為抽象的事件、規(guī)則以及復(fù)雜工程實(shí)體??偟膩?lái)說(shuō)就是對(duì)象本身是有用數(shù)據(jù)來(lái)描述的屬性和行為。②類(Class)類是對(duì)一組對(duì)象的抽象概括和歸納,更明確地說(shuō),類是對(duì)一組具有相同數(shù)據(jù)成員和相同操作成員對(duì)象的定義和說(shuō)明,并且每個(gè)對(duì)象都是某個(gè)類的一個(gè)具體實(shí)例。③面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)可以說(shuō)是一種新的程序設(shè)計(jì)范例。面向?qū)ο蟮慕Y(jié)構(gòu)特點(diǎn)是:第一,程序一般是由類的定義和類的使用兩部分組成,在主程序中定義中各對(duì)象并規(guī)定它們之間傳遞信息的規(guī)律;第二,程序中的一切操作都是通過(guò)對(duì)象來(lái)發(fā)送信息來(lái)實(shí)現(xiàn)的,當(dāng)對(duì)象接收到消息后將會(huì)啟動(dòng)有關(guān)方法來(lái)完成的操作。面向?qū)ο蟮乃枷氡容^符合人們對(duì)客觀事物的認(rèn)識(shí)過(guò)程,同時(shí)還可以使計(jì)算機(jī)程序的處理過(guò)程更接近人們對(duì)客觀事物的處理過(guò)程。④屬性和方法方法是一個(gè)類的對(duì)象所具有相同的行為,當(dāng)某個(gè)行為作用于對(duì)象時(shí),我們就稱對(duì)象執(zhí)行了一個(gè)方法。方法有兩種:一種是提供了對(duì)象與外界的接口;另一種便是實(shí)現(xiàn)自身的數(shù)據(jù)操作。⑤數(shù)據(jù)的抽象抽象是通過(guò)特定的實(shí)例獲取共同性質(zhì)以后形成概念的過(guò)程,抽象是對(duì)系統(tǒng)的簡(jiǎn)化描述和規(guī)范描述,它強(qiáng)調(diào)了系統(tǒng)中的一部分細(xì)節(jié)與特性。⑥COMCOM是一個(gè)說(shuō)明如何建立動(dòng)態(tài)交替更新組件的規(guī)范,它提供了客戶和組件之間能夠保證相互操作應(yīng)該實(shí)現(xiàn)的標(biāo)準(zhǔn)。COM規(guī)范就是為了組件架構(gòu)設(shè)置標(biāo)準(zhǔn)的文檔,COM組件由以win32動(dòng)態(tài)鏈接庫(kù)或可執(zhí)行文件形式發(fā)布的可執(zhí)行代碼所組成。正是由于有了COM,軟件的發(fā)人員可以在應(yīng)用程序發(fā)行之后仍可對(duì)它進(jìn)行修改或給它加上一些新的特性,這將大大方便了其使用者。因此應(yīng)用程序能夠在更高的程度上被定制,使用起來(lái)將更加靈活、更具動(dòng)態(tài)性。⑦ActiveX控件ActiveX是Microsoft新推出的一項(xiàng)技術(shù),它是以COM為基礎(chǔ),其中包括了OLE技術(shù)以及應(yīng)用于Internet的多種技術(shù)。ActiveX是一種面向?qū)ο蠡慕M件系統(tǒng),其中包括組件軟件的各個(gè)方面。ActiveX控件最常用的三種:控件、自動(dòng)化服務(wù)器和文檔,ActiveX控件作為一種可重復(fù)使用的組件,相當(dāng)于一個(gè)封裝好的代碼模塊,通過(guò)其屬性、事件和應(yīng)用程序進(jìn)行通信。2.5VB對(duì)SolidWorks開(kāi)發(fā)的作用2.5.1SolidWorksAPI應(yīng)用程序接口,是基于ActiveAutomation的編程接口,凡支持COM編程的開(kāi)發(fā)工具均可對(duì)其二次開(kāi)發(fā)COM不僅定義了組件程序之間進(jìn)行交流的標(biāo)準(zhǔn),而且也提供了組件程序運(yùn)行所需要的環(huán)境。對(duì)象鏈接與嵌入的OLE技術(shù)是COM技術(shù)的應(yīng)用,它使程序之間能夠通過(guò)數(shù)據(jù)嵌入或連接的方式共享數(shù)據(jù)和資源,SolidWorks支持COM技術(shù)標(biāo)準(zhǔn),同時(shí)也支持OLE技術(shù)標(biāo)準(zhǔn)。作為一個(gè)人COM/OLE服務(wù)器,SolidWorks提供了大量的API/COMOLE對(duì)象以及這些對(duì)象所擁有的方法和屬性的操作,可以實(shí)現(xiàn)SOlidWorks的功能能定制與擴(kuò)展,滿足用戶的專業(yè)需求。2.5.2SolidWorks的對(duì)象模型屬于多層次的對(duì)象網(wǎng)絡(luò)(其結(jié)構(gòu)如圖1)。其中SolidWorks對(duì)象位于最頂端,他為VB對(duì)SolidWorks工作環(huán)境進(jìn)行訪問(wèn)處理提供了接口。通過(guò)此對(duì)象可以對(duì)SolidWorks工作環(huán)境進(jìn)行添加菜單、添加工具條、打開(kāi)文件、新建文件、退出SOlidWorks系統(tǒng)等操作。用VB調(diào)用SolidWorks的API函數(shù),還可以完成零件的建造和修改;實(shí)現(xiàn)零件各特征的建立、修改、刪除和壓縮等各項(xiàng)控制;提取零件特征信息,如特征尺寸的設(shè)置與提取,特征所在面的信息提取及各種幾何和拓?fù)湫畔ⅰ?設(shè)計(jì)程序及結(jié)構(gòu)3.1設(shè)計(jì)流程零件分析零件分析零件造型輔助功能錄制宏程序變量分析替換,編程程序調(diào)試否結(jié)束是其中與數(shù)據(jù)庫(kù)連接部分程序如下圖:3.2設(shè)計(jì)結(jié)構(gòu)本設(shè)計(jì)的結(jié)構(gòu)周要有以下幾部分組成:讀取數(shù)據(jù)庫(kù),零件的選擇,零件的打開(kāi)。讀取數(shù)據(jù)部分是運(yùn)用VBA進(jìn)行編程的。里面的數(shù)據(jù),運(yùn)用SQL語(yǔ)句進(jìn)行查詢等操作。零件的預(yù)覽是先讀取數(shù)據(jù)庫(kù)里的有關(guān)零件的位置。然后將零件的在預(yù)覽框中顯示。以便于選擇的直觀性,且不容易出錯(cuò)。零件的打開(kāi)是為了實(shí)現(xiàn)對(duì)所選零件的一些修改,零件的尺寸都是相關(guān)聯(lián)的,修改簡(jiǎn)便。4建立數(shù)據(jù)庫(kù)MicrosoftOfficeAccess是MicrosoftOffice系列辦公軟件中用來(lái)專門管理數(shù)據(jù)庫(kù)的應(yīng)用軟件,它使用標(biāo)準(zhǔn)的SQL(結(jié)構(gòu)化查詢語(yǔ)言)作為它的數(shù)據(jù)庫(kù)語(yǔ)言,從而提供了強(qiáng)大的數(shù)據(jù)處理能力和通用性,使其成為一個(gè)功能強(qiáng)大而且易于使用的桌面關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)和應(yīng)用程序生成器。一個(gè)Access數(shù)據(jù)庫(kù)中可以包含表、查詢、窗體、報(bào)表、宏、模塊以及數(shù)據(jù)訪問(wèn)頁(yè),且Access數(shù)據(jù)庫(kù)使用單一的mdb格式文件管理所有的信息,這種針對(duì)數(shù)據(jù)庫(kù)集成的最優(yōu)文件結(jié)構(gòu)不僅包含數(shù)據(jù),也包含了它的支持對(duì)象。此外,Access2007還利用office套件共享的編程語(yǔ)言VBA(VisualBasicforApplication)進(jìn)行高級(jí)操作控制和復(fù)雜的數(shù)據(jù)操作。Access適用于相對(duì)較小、結(jié)構(gòu)較為簡(jiǎn)單、事物簡(jiǎn)單、開(kāi)銷要求較小的單機(jī)式數(shù)據(jù)庫(kù)。建立表格采用了微軟的Acess2000為開(kāi)發(fā)工具。對(duì)本次設(shè)計(jì)共建立了四個(gè)表,表中的數(shù)據(jù)均參考于《機(jī)械設(shè)計(jì)手冊(cè)》,設(shè)計(jì)的表如下:(1)法蘭盤(2)螺塞用墊片(3)內(nèi)六角螺塞(4)外六角螺塞5設(shè)計(jì)的具體實(shí)現(xiàn)5.1設(shè)計(jì)思路和方法在SolidWorks中參數(shù)化,參數(shù)化建模主要通過(guò)三種方法實(shí)現(xiàn):①利用已有的零件模型,保持其結(jié)構(gòu)不變的情況下,將零件的尺寸標(biāo)注視為變量,賦予不同的尺寸值,從而獲得一系列結(jié)構(gòu)相同而尺寸不同的相似零件,稱為尺寸驅(qū)動(dòng)法;②用編程實(shí)現(xiàn)參數(shù)化設(shè)計(jì),即用戶根據(jù)需要直接用程序生成需要的模型,稱為程序驅(qū)動(dòng)建模法;③混合驅(qū)動(dòng)法,即用尺寸驅(qū)動(dòng)和程序驅(qū)動(dòng)兩種方法建立模型,如用尺寸驅(qū)動(dòng)法建立模型草圖,用程序驅(qū)動(dòng)法建立模型特征。本課題使用了三種參數(shù)化建模方法即:尺寸驅(qū)動(dòng)法。由于尺寸驅(qū)動(dòng)法是通過(guò)修改CAD系統(tǒng)建模時(shí)自動(dòng)生成的設(shè)計(jì)變量來(lái)驅(qū)動(dòng)零件,所以程序的代碼非常簡(jiǎn)捷。SolidWorks在零件建模時(shí),將根據(jù)建模的過(guò)程自動(dòng)創(chuàng)建設(shè)計(jì)變量,并給每個(gè)變量賦以相應(yīng)的名稱,同時(shí)設(shè)計(jì)人員還可以根據(jù)自己的設(shè)計(jì)思想對(duì)名稱進(jìn)行重新定義,在參數(shù)化建模時(shí)尺寸驅(qū)動(dòng)程序只需修改這些變量的值。參數(shù)化設(shè)計(jì)模型針對(duì)要建立的實(shí)體,先分析其結(jié)構(gòu),使所建立的特征結(jié)構(gòu)盡可能的簡(jiǎn)單,參數(shù)尺寸盡可能少。用SlidWorks建立模型,并利用宏錄制其建模過(guò)程,建立宏文件(即內(nèi)部編程)。然后復(fù)制并粘貼代碼到VB中,對(duì)代碼做一定的修改,用變量代替代碼中的關(guān)鍵數(shù)據(jù)。這些變量數(shù)據(jù)來(lái)自于MicrosoftAccess數(shù)據(jù)庫(kù)中內(nèi)相應(yīng)零件的數(shù)據(jù)表,通過(guò)程序驅(qū)動(dòng)變量,實(shí)現(xiàn)模型的建立與修改。5.2獲取零件的宏代碼參數(shù)化設(shè)計(jì)一般是指設(shè)計(jì)圖形拓?fù)潢P(guān)系不變,尺寸形狀由一組參數(shù)進(jìn)行約束,設(shè)計(jì)的結(jié)果受到尺寸驅(qū)動(dòng),不同的尺寸參數(shù)值驅(qū)動(dòng)產(chǎn)生不同大小的圖形。參數(shù)化設(shè)計(jì)一般用于零件或部件的形狀比較定型,用一組參數(shù)約束該幾何圖形的一組結(jié)構(gòu)尺寸序列,參數(shù)與設(shè)計(jì)對(duì)象的控制尺寸有顯式對(duì)應(yīng),當(dāng)斌予不同的參數(shù)序列值時(shí),就可驅(qū)動(dòng)達(dá)到新的目標(biāo)幾何圖形,其設(shè)計(jì)結(jié)果是包含有設(shè)計(jì)信息的模型。全尺寸的約束是將尺寸與形狀聯(lián)合起來(lái)考慮,通過(guò)尺寸約束來(lái)實(shí)現(xiàn)對(duì)幾何形狀的控制,造型必須以完整的尺寸參數(shù)為出發(fā)點(diǎn)(全約束),既不能漏注尺寸(欠約束)以螺塞用墊片為例,選擇【工具】/【宏】/【錄制】,完成一個(gè)墊片的繪制,停止錄制宏,并保存為‘螺塞用墊片’。然后點(diǎn)擊按鈕‘編輯宏‘中打開(kāi)螺塞用墊片,依據(jù)在繪制螺塞用墊片時(shí)的步驟,提取出控制其形狀的尺寸屬性,并將其分別定義為:R1,R2,H。代碼如下:SubMain()Set