在機(jī)械設(shè)汁過程中,使用標(biāo)準(zhǔn)件可以提高設(shè)計效率、縮短產(chǎn)品的開發(fā)周期、提高企業(yè)的竟?fàn)幜?使用標(biāo)準(zhǔn)件最有效的途徑就是利用軟件系統(tǒng)開發(fā)三維標(biāo)準(zhǔn)件庫,供使用者方便地調(diào)用,國外一些企業(yè)和國家很多行業(yè)都在開發(fā)標(biāo)準(zhǔn)件庫系統(tǒng),如汽車、模具、飛機(jī)制造行業(yè)等,但這些標(biāo)準(zhǔn)件庫不是不符合國內(nèi)的標(biāo)準(zhǔn)就是面向具體的行業(yè),實(shí)用性和通用性較差,而基于機(jī)械設(shè)計手冊的標(biāo)準(zhǔn)件庫開發(fā),其標(biāo)準(zhǔn)件種類齊全,通過尺寸驅(qū)動、可擴(kuò)展的數(shù)據(jù)庫,從而避免或減少重復(fù)勞動達(dá)到縮短產(chǎn)品開發(fā)周期的目的.實(shí)現(xiàn)標(biāo)準(zhǔn)件庫有多種CAD平臺.其中SolidWorks是基Windows平臺的三維設(shè)計軟件,它的設(shè)計數(shù)據(jù)包括尺寸、幾何關(guān)系、約束關(guān)系和裝配關(guān)系可以隨著用戶的需求而更改。文中在SolidWorks環(huán)境下,開發(fā)出了用戶界面友好、可擴(kuò)充、便用方便的牙嵌離合器標(biāo)準(zhǔn)件庫。
1開發(fā)方法
由于SolidWorks其參數(shù)化和特征造型技術(shù)方便、快捷,且參數(shù)化的實(shí)體能夠通過對尺寸的改變來進(jìn)行編輯,實(shí)現(xiàn)參數(shù)驅(qū)動,據(jù)此,在標(biāo)準(zhǔn)件建庫過程中,采用參數(shù)化方法.參數(shù)化設(shè)計主要有程序驅(qū)動法和尺寸驅(qū)動法兩種,程序驅(qū)動法是將設(shè)計過程的所有關(guān)系式融人應(yīng)用程序中,然后在程序的控制下,順序執(zhí)行這些設(shè)計表達(dá)式,通過與用戶的交互完成設(shè)計工作。
采用C++作為開發(fā)工具在SolidWorks環(huán)境下開發(fā)標(biāo)準(zhǔn)件庫應(yīng)用程序,標(biāo)準(zhǔn)件庫的特點(diǎn)是零件的尺寸參數(shù)是國家標(biāo)準(zhǔn),不允許隨便修改,繪制的零件圖必須與國家標(biāo)準(zhǔn)相符合。根據(jù)這種特點(diǎn),開發(fā)標(biāo)準(zhǔn)件庫可以采用參數(shù)驅(qū)動法,但是在實(shí)際應(yīng)用過程中,零件的其拓?fù)浣Y(jié)構(gòu)不易正確掌握,導(dǎo)致零件重構(gòu)時經(jīng)常發(fā)生錯誤,出現(xiàn)過定義,定義沖突無法求解的問題因此采用一種程序驅(qū)動法的改進(jìn)方法,參數(shù)化程序驅(qū)動法.這種方法將數(shù)據(jù)庫技術(shù)與程序驅(qū)動法結(jié)合起來,將程序驅(qū)動法與用戶交互的參數(shù)獲得途徑改變?yōu)閺臄?shù)據(jù)庫中讀取指定的數(shù)據(jù),當(dāng)然其開發(fā)難度比參數(shù)驅(qū)動法略高,但是程序驅(qū)動法的繪制過程與人工在SolidWorks一下繪制零件的過程完全相同,不必去考慮零件的拓?fù)浣Y(jié)構(gòu),在一定程度上可以簡化程序開發(fā)者的開發(fā)難度。其次在標(biāo)準(zhǔn)零件的繪制過程中可以詳細(xì)了解零件的繪斜方法,可以使表準(zhǔn)件庫不僅用于企業(yè)設(shè)計生產(chǎn)環(huán)境,而且可以應(yīng)用在學(xué)校教學(xué)等教學(xué)環(huán)節(jié)中,無疑擴(kuò)寬了標(biāo)準(zhǔn)件庫的應(yīng)用范圍。
標(biāo)準(zhǔn)件庫作為面向用戶的應(yīng)用軟件,除了要能夠?qū)崿F(xiàn)標(biāo)準(zhǔn)件的建模過程,還有提供給用戶一個與國家機(jī)械標(biāo)準(zhǔn)進(jìn)行交互的界面,在本論文中實(shí)現(xiàn)了國家標(biāo)準(zhǔn)數(shù)據(jù),用戶需求和建模的有機(jī)結(jié)合,通過交互式的界面實(shí)現(xiàn)標(biāo)準(zhǔn)數(shù)據(jù)的選擇.通過后臺程序?qū)⒂脩暨x擇的標(biāo)準(zhǔn)數(shù)據(jù)傳遞給建模函數(shù),實(shí)現(xiàn)可交互的自動建模過程,數(shù)據(jù)流如圖1所示。
2 SolidWorks環(huán)境下的API函數(shù)建模
SolidWorks中常用的主要API對象有SolidWorks, ModelDoc, AssemblyDoc, DrawingDoc, Sketch, Dimension等,SolidWorks對象位于應(yīng)用程序的底層,可以實(shí)現(xiàn)應(yīng)用程序的最基本的操作,如創(chuàng)建、打開、關(guān)閉和退出SolidWorks文檔,設(shè)置當(dāng)前的活動文檔,并可數(shù)對SolidWorks的系統(tǒng)環(huán)境進(jìn)行設(shè)置.Dimension對象用于設(shè)置尺寸標(biāo)注值和公差標(biāo)注等內(nèi)容.Sketch對象允許獲取關(guān)于輪廓線的基本信息,ModelDoc對象屬于模型層,是SolidWorks的子對象.用ModelDoc對象可以實(shí)現(xiàn)視圖設(shè)置,輪廓線修改,參數(shù)控制,對象選擇/打開和保存文檔、創(chuàng)建編輯特征參量、創(chuàng)建框架等與實(shí)體模型相關(guān)的各類操作,ModelDoc對象包括PartDoc, AssemblyDoc和DrawingDoc等3個常用的對象. SolidWorks的對象之間的關(guān)系如圖2所示。
采用SolidWorks API 數(shù)建模的步驟是:①用SolidWorks中的宏錄制工具錄制整個牙嵌離合器的建模過程;②將VB Script的程序轉(zhuǎn)換為VC++代碼.
2.1 SolidWorks VBA宏的代碼的錄制
在二次開發(fā)的過程中,可以利用宏錄制,生成部分源代碼.SolidWorks錄制"宏"一般包括以下一系列步驟:首先是進(jìn)入"工具->宏->錄制",然后執(zhí)行一系列操作,在執(zhí)行"工具->宏->停止"操作,最后再進(jìn)行"工具->宏->編輯"操作即可到VBA下打開宏的源代碼.
2.2 VBA宏代碼向VC代碼的轉(zhuǎn)換
因?yàn)樵赟olidWorks中錄制的代碼都是VBA代碼要實(shí)現(xiàn)在VC++環(huán)境下的二次開發(fā),因此必須將錄制的VBA代碼轉(zhuǎn)換成VC代碼格式,如:
2.3牙嵌離合器的API函數(shù)建模
牙嵌離合器是一種軸對稱模型,本文中采用先在基準(zhǔn)面內(nèi)繪制草圖,再選擇SolidWorks中的旋轉(zhuǎn)操作形成牙嵌離合器的建模方法,如前所述的VBA宏的錄制過程是為了解決繪制牙嵌離合器時如何選擇API繪圖函數(shù)的問題.通過對照VBA宏代碼,在SolidWorks API函數(shù)的幫助文檔中查找對應(yīng)于VC++環(huán)境的API函數(shù),實(shí)現(xiàn)建模過程。
SolidWorks的草圖繪制要在基準(zhǔn)面或者參考基準(zhǔn)面內(nèi)進(jìn)行,本文在前視基準(zhǔn)面中通過繪制一條中心線和由若干條直線段組成的折線構(gòu)成草圖,其中折線作為旋轉(zhuǎn)操作的對象,中心線作為旋轉(zhuǎn)操作的軸線,如圖3所示繪制完草圖后通過對旋轉(zhuǎn)軸和旋轉(zhuǎn)對象的選擇,實(shí)現(xiàn)旋轉(zhuǎn)操作,如圖4所示。
最后根據(jù)國家機(jī)械標(biāo)準(zhǔn)手冊,對旋轉(zhuǎn)操作的實(shí)體對象做拉伸一切除(FeatureCut4函數(shù)),圓角(Feature ChamferType 函數(shù))等操作實(shí)現(xiàn)牙形、鍵槽等特征,完成牙嵌離合器的建模,如圖5所示。
在建模過程中要注意參數(shù)化方法,就是用變量作為繪圖函數(shù)參數(shù)傳遞的媒介.將用戶在界面中選擇的標(biāo)準(zhǔn)件庫的參數(shù)傳遞給繪圖函數(shù)參數(shù),實(shí)現(xiàn)參數(shù)化的建模過程。
3數(shù)據(jù)庫的選擇和建立
采用Access數(shù)據(jù)庫創(chuàng)建牙嵌離合器數(shù)據(jù)庫,與Access數(shù)據(jù)庫的聯(lián)接是通過在ODBC數(shù)據(jù)派管理器中創(chuàng)建數(shù)據(jù)源,VC++中建立CRecordSet的派生類CCCJX建立與數(shù)據(jù)庫的鏈接實(shí)現(xiàn)的,數(shù)據(jù)庫中存放牙嵌離合器的國標(biāo)參數(shù),形成(Visual C++)+Access+SolidWorks API的技術(shù)方案,在這種技術(shù)方案中Access起的作用不僅僅是存儲標(biāo)準(zhǔn)件庫的數(shù)據(jù),而且通過用戶的選擇為SolidWorks繪圖函數(shù)提供標(biāo)準(zhǔn)參數(shù),是參數(shù)化程序驅(qū)動法的建�;A(chǔ),本文中在牙嵌離合器數(shù)據(jù)庫中創(chuàng)建了4個表,分別是"矩形牙花鍵孔"、"矩形牙雙鍵孔"、"正梯形牙花鍵孔"和"正梯形牙雙鍵孔",在數(shù)據(jù)庫中每個表存儲不同規(guī)格的牙嵌離合器數(shù)據(jù),如圖6所示。數(shù)據(jù)表中的每一行就是一個標(biāo)準(zhǔn)零件的參數(shù),建模程序通過讀取數(shù)據(jù)庫中表的數(shù)據(jù)行得相應(yīng)零件到建模參數(shù)。
4創(chuàng)建交互式界面
在SolidWorks運(yùn)行環(huán)境中建立自己的標(biāo)準(zhǔn)件菜單,通過菜單調(diào)用標(biāo)準(zhǔn)件對話框,如圖7所屬菜單中單向雙鍵孔和雙向花鍵孔選項(xiàng),可以使用戶根據(jù)需要選擇相應(yīng)的標(biāo)準(zhǔn)件,在對話框的初始化涵數(shù)中,初始化對話框中的列表框,導(dǎo)人數(shù)據(jù)庫中的標(biāo)準(zhǔn)化數(shù)據(jù),對話框作為應(yīng)用程序與用戶交互的主界面,提供給用戶選擇所需標(biāo)準(zhǔn)件的功能,用戶可以在數(shù)據(jù)列表框中選擇數(shù)據(jù),也可以在下拉選擇框中調(diào)用不同的數(shù)據(jù)表,如圖8所示,實(shí)現(xiàn)與國家機(jī)械標(biāo)準(zhǔn)數(shù)據(jù)的交互。
用戶在交互界面中選擇不同的標(biāo)準(zhǔn)件數(shù)據(jù),通過后臺程序?qū)⒂脩舻倪x擇傳遞給繪圖程序,實(shí)現(xiàn)動態(tài)的牙嵌離合器建模過程可以提高設(shè)計效率,避免出現(xiàn)錯誤,提高設(shè)計的標(biāo)準(zhǔn)化程度。
5結(jié)論
開發(fā)面向機(jī)械設(shè)計手冊的基于SolidWorks的牙嵌離合器標(biāo)準(zhǔn)件庫,這種標(biāo)準(zhǔn)件庫具有符合機(jī)械設(shè)計者思維模式,所得實(shí)體模塑可以被直接用于實(shí)體造型,裝配等領(lǐng)域,具有用戶交互使用界面友好,易于擴(kuò)充的特點(diǎn),用戶使用該牙嵌離合器標(biāo)準(zhǔn)件庫可以進(jìn)行零件的查詢、調(diào)用,提高了設(shè)計效率.同時依據(jù)此標(biāo)準(zhǔn)件庫的設(shè)計方法可以進(jìn)行其他標(biāo)準(zhǔn)件他參數(shù)化,形成具有一定規(guī)模的標(biāo)準(zhǔn)件倉庫,為使用者提供更加廣泛的技術(shù)支持,使設(shè)計者可以提高設(shè)計效率,將時間充分應(yīng)用在具有創(chuàng)造性的生產(chǎn)過程中。
|