AutoCAD模塊化在通用件庫開(kāi)發(fā)中的應用
本文通過(guò)作者開(kāi)發(fā)的一個(gè)傳動(dòng)件輔助繪圖軟件,介紹了一種零部件模塊化設計方法,給出了具體的模塊化拆分例子,并介紹了這種開(kāi)發(fā)程序的一些關(guān)鍵要點(diǎn),對進(jìn)行AutoCAD二次圖形開(kāi)發(fā)很有幫助。
一、引言
筆者所在公司主產(chǎn)品是傳動(dòng)件,主要有齒輪、鏈輪、同步帶輪和皮帶輪等。有時(shí)一天需要加工數十種不同的產(chǎn)品,制圖的工作量很大。如果完全滿(mǎn)足車(chē)間生產(chǎn)需要,需要配備3~4名制圖員。采用傳統方式繪圖,完成一個(gè)簡(jiǎn)單的傳動(dòng)件需要0.5小時(shí)左右,而復雜的非標產(chǎn)品(如有端面槽、錐孔結構)則需要0.75~1小時(shí)。另外一些大規格的鏈輪需要在加工中心銑齒完成,需要齒形圖編制CNC程序,因此精確畫(huà)出齒形就更重要。
鑒于公司95%以上傳動(dòng)件結構有很多類(lèi)似的地方,為了提高制圖效率,開(kāi)發(fā)一款傳動(dòng)件制圖的專(zhuān)用軟件很有必要。
二、模塊化編程的原因
公司試生產(chǎn)時(shí),主要產(chǎn)品是鏈輪,筆者用VBA做了一個(gè)鏈輪繪圖程序。隨著(zhù)生產(chǎn)規模的擴大,同步帶輪、齒輪和皮帶輪產(chǎn)品越來(lái)越多,需要在程序中增加繪制相關(guān)特征等功能。導致程序代碼過(guò)多、結構復雜、修改困難,程序運行易出錯。這種情況下,筆者嘗試模塊化編程,將相似的程序塊和功能塊分離出來(lái),做成公用的模塊,供不同的傳動(dòng)件程序調用。
三、模塊化拆分
模塊化拆分最為關(guān)鍵,一是將圖形拆分成不同的功能塊,二是將程序公用代碼做成模塊。
1、圖形模塊化
圖1是一個(gè)典型的鏈輪傳動(dòng)件圖樣,可以按圖2拆成四部分:①齒形模塊;②輪轂模塊;③輻板(減輕孔)模塊;④孔模塊。我們生產(chǎn)的絕大部分傳動(dòng)件(鏈輪、齒輪、皮帶輪和同步帶輪等)都可以拆分成這4個(gè)模塊中的全部或部分模塊。由于不同傳動(dòng)件的齒形差異,所以齒形模塊這部分是不可以共用的。輪轂模塊中的輪轂是廣義的輪轂,包含兩邊沒(méi)有輪轂(齒板)和輪轂低于平面等形狀的圖形。輻板模塊是選用模塊?装笨啄K和成孔模塊(臺階孔、鍵槽孔和錐孔等)兩部分,可進(jìn)行選擇。
圖1 鏈輪圖
圖2 鏈輪的模塊化拆分
經(jīng)過(guò)這樣拆分后,僅有齒形模塊為專(zhuān)用模塊。不同的傳動(dòng)件制圖時(shí),要先選用相應的齒形模塊,然后根據需要調用公共模塊,即可組合實(shí)現不同的圖形。
2、公用代碼模塊
畫(huà)圖時(shí), 要設置不同的線(xiàn)型: 粗實(shí)線(xiàn)、細實(shí)線(xiàn)、中心線(xiàn)和虛線(xiàn)等,這個(gè)部分可以設成一個(gè)公用圖層模塊(SetLayers),通過(guò)這個(gè)模塊調用不同線(xiàn)型。另外,筆者對C A D計算點(diǎn)、距離和畫(huà)圓弧等功能進(jìn)行了擴展,并加入了一些計算弦長(cháng)、圓弧角等功能函數,將這塊做成了公用函數模塊(WhlsFun);旧纤械膫鲃(dòng)件(皮帶輪除外)都有齒頂圓、節圓(分度圓)、齒根圓、節距和齒數等參數,這部分定義成公用參數模塊(WhlsData),參數類(lèi)型都是Global。
四、程序設計及實(shí)現
1、程序結構
程序模塊如圖3所示。程序結構、各個(gè)模塊之間的相互關(guān)系如圖4。
圖3 程序模塊
圖4 程序結構
程序運行流程:通過(guò)ThisDrawing中的Wheels函數調用frmMain,通過(guò)選擇進(jìn)入不同的傳動(dòng)件界面,其中WhlsHub和ThrHoe這兩個(gè)模塊因為大多數零件都要調用,所以直接在傳動(dòng)件窗體中調用賦值。如果需要輻板設計和成孔設計,則將相應的信息傳遞到ConWhls模塊中,然后調用相應的模塊,完成后,通過(guò)ConWhls返回相應的傳動(dòng)件模塊,完成傳動(dòng)件設計。點(diǎn)“畫(huà)圖”按鈕,選擇左右視圖的插入點(diǎn),完成圖形繪制。
2、程序運行界面
按圖5~圖8運行界面流程,輸入相應的參數,最后返回鏈輪設計窗體,點(diǎn)擊“畫(huà)圖”按鈕即可完成圖1所示的鏈輪圖形的繪制。其他齒輪、皮帶輪、同步帶輪的設計界面(如圖9~圖11)類(lèi)似,不做逐一介紹。圖12為生成的傳動(dòng)件參數表。
圖5 選擇傳動(dòng)件類(lèi)型 圖6 進(jìn)入鏈輪設計窗體
圖7 進(jìn)入成孔設計窗體 圖8 進(jìn)入輻版設計窗體
圖9 齒輪設計窗體 圖10 同步帶輪設計窗體
圖11 皮帶輪設計窗體 圖12 參數表
3、程序設計思路和要點(diǎn)
公司產(chǎn)品中,齒板、單邊輪轂和雙邊輪轂三種結構最常見(jiàn),孔多數為直孔。所以,除了齒型參數外,輪轂結構、直孔尺寸輸入也放在傳動(dòng)件窗體上(frmSprocket、frmGear、frmPulley和frmTimePulley)。點(diǎn)擊“參數計算”按鈕后,調用“WhlsHub”、“ThrHole”模塊,將相應參數賦值。這樣不需要調用其他窗體即可完成大多數的傳動(dòng)件繪圖。
“ConWhls”模塊中主要設置了三個(gè)參數:“IntegerPartType”用于保存傳動(dòng)件模塊信息,參數“Bool chkList(0 to 3)”保存需要調用模塊的信息,“Bool DesignList(0 to 3)”保存已經(jīng)設計過(guò)后的模塊信息。
進(jìn)行輻板、成孔設計時(shí),先將傳動(dòng)件模塊信息、需要調用模塊信息保存到“ConWhls”模塊“PartType”、“chkList”中,然后再進(jìn)入相關(guān)模塊設計。設計完成后,將數據保存過(guò)的模塊列表保存到“ConWhls”模塊“DesignList”中,然后根據“PartType”值返回不同的傳動(dòng)件窗體,完成給各個(gè)模塊設計。畫(huà)圖時(shí),在傳動(dòng)件窗體中先完成齒形,然后調用“ConWhls”中的“DrawViews”過(guò)程,根據“DesignList”值調用各個(gè)模塊的畫(huà)圖過(guò)程,再調用“WhlsHub.DrawHubView”過(guò)程,并判斷是否需要調用“ThrHole.DrawThrHoleView”過(guò)程。
為了保證各個(gè)模塊能吻合到一起,要將左右視圖的插入點(diǎn)和各個(gè)模塊視圖插入點(diǎn)保持一致,左視圖所有模塊的插入點(diǎn)為圓中心(ptCen),右視圖所有模塊的插入點(diǎn)為左端面的中心點(diǎn)(ptCenR),另外設置一個(gè)參數View,“View=0”調用左視圖,“View=1”調用右視圖,這樣通過(guò)過(guò)程DrawViews(ptCen,0)、DrawViews(ptCenR,1)可以分別畫(huà)各個(gè)模塊的左、右視圖。
五、使用效果
本程序能方便地實(shí)現多種傳動(dòng)件(鏈輪、齒輪、同步同輪、V型帶輪、平皮帶輪和多楔帶輪)的設計,而且可以很容易地實(shí)現程序的擴展,如產(chǎn)品類(lèi)型擴展到漸開(kāi)線(xiàn)花鍵,結構擴展到軸類(lèi)零件。
傳動(dòng)件程序推廣使用后,公司95%以上的產(chǎn)品只需8~12分,即可完成圖形的繪制(包括標注等時(shí)間,繪圖只需要0.5~1分)。一個(gè)人即可完成原先3~4人的工作量,為公司節省了大量的人力、物力,達到滿(mǎn)意的效果。
由于齒型都是按照標準繪制,鏈輪的齒形圖可直接導入GibbsCAM中編制銑齒程序;剖視面(右視面)可直接用來(lái)編制數控車(chē)床程序,這都減少了CNC編程的制圖準備時(shí)間。
六、結語(yǔ)
模塊化編程,尤其適合大型程序的編制,編程工作量減小,修改也方便快捷。將程序做成不同的模塊,可讀性增強;代碼量減少了約30%~50%,代碼重用率高。將相似的零件結構拆成不同的模塊繪制,也是一種新穎的編程思路。