李明華
一、引言
軸是一種非標(biāo)準(zhǔn)件,普遍采用的設(shè)計(jì)方法是按照給定的條件,按照公式進(jìn)行計(jì)算設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì),在設(shè)計(jì)過(guò)程中要查閱大量的圖表并進(jìn)行大量的計(jì)算,這些設(shè)計(jì)過(guò)程基本是帶有人為因數(shù)的、經(jīng)驗(yàn)性的?;谝陨锨闆r,我們?cè)O(shè)計(jì)了一種軸自動(dòng)設(shè)計(jì)系統(tǒng),用戶只要給出必要的參數(shù)和實(shí)際的工作狀況,可完成軸的設(shè)計(jì),設(shè)計(jì)出滿足用戶的合理的零件。由于計(jì)算機(jī)運(yùn)算的高速性和不受外界環(huán)境影響的準(zhǔn)確性,提高了產(chǎn)品設(shè)計(jì)得質(zhì)量和可靠性,防止產(chǎn)品設(shè)計(jì)過(guò)程中人為因素造成產(chǎn)品設(shè)計(jì)缺陷。毫無(wú)疑問(wèn),這大大減少了設(shè)計(jì)工作人員的工作量,同時(shí)自動(dòng)設(shè)計(jì)系統(tǒng)圖形自動(dòng)生成功能的實(shí)現(xiàn)也為自動(dòng)制造打下必要的基礎(chǔ)。用VB進(jìn)行調(diào)用,以數(shù)據(jù)庫(kù)技術(shù)進(jìn)行兩種編程語(yǔ)言之間大量數(shù)據(jù)的傳遞,以VB驅(qū)動(dòng)AutoCAD使其自動(dòng)的產(chǎn)生設(shè)計(jì)零件圖,這是我們?cè)谧詣?dòng)設(shè)計(jì)系統(tǒng)研制中采用的技術(shù)。將AutoCAD當(dāng)成自己VB程序中的一個(gè)圖形窗口,對(duì)其進(jìn)行調(diào)用、繪圖、編輯等操作。用V B進(jìn)行AutoCAD二次開(kāi)發(fā),不論是用于理論研究,實(shí)現(xiàn)自己的設(shè)想,還是用于工程設(shè)計(jì),開(kāi)發(fā)面向?qū)嶋H工程問(wèn)題的軟件,均是十分有效的手段和方法。
二、軸自動(dòng)設(shè)計(jì)圖形生成系統(tǒng)的基本技術(shù)
軸的設(shè)計(jì)包括結(jié)構(gòu)設(shè)計(jì)和工作能力計(jì)算兩方面的內(nèi)容。軸的結(jié)構(gòu)設(shè)計(jì)是根據(jù)軸上零件的安裝、定位以及軸的制造工藝等方面的要求,合理地確定軸的形式和尺寸。軸的結(jié)構(gòu)設(shè)計(jì)不合理,會(huì)影響軸的工作能力和軸上零件裝配的困難等。因此,軸的結(jié)構(gòu)設(shè)計(jì)是軸設(shè)計(jì)中的重要內(nèi)容。軸的工作能力計(jì)算指的時(shí)軸的強(qiáng)度、剛度和振動(dòng)穩(wěn)定性等方面的計(jì)算。多數(shù)情況下,軸的工作能力主要取決于軸的強(qiáng)度。這時(shí)只需對(duì)軸進(jìn)行強(qiáng)度計(jì)算,以防止斷裂或塑性變形。在多窗口界面中,所有窗體都以桌面為托,好像由多個(gè)程序運(yùn)行一樣,窗口管理比較麻煩,采用MDI多文檔界面會(huì)將窗口的管理程度降到最低。在多文檔界面中,有且只有一個(gè)主文檔窗體(MDI主窗體),它的窗體區(qū)域不能放置除菜單類組件以外的任何控件,但可以擁有多個(gè)子窗體(MDI子窗體),也就是說(shuō)MDI子窗體不能獨(dú)立存在,并且不能為模式窗體,它們只能在MDI主窗體的窗體區(qū)域內(nèi)活動(dòng);子窗體最大化時(shí)其標(biāo)題欄和菜單欄能和主窗體合并;最小化時(shí)子窗體并不會(huì)縮至任務(wù)條上,而是縮小至主窗體的左下角;關(guān)閉主窗體時(shí),所有子窗體都能自動(dòng)關(guān)閉。充分使用好MDI界面會(huì)使用戶覺(jué)得窗口控制更加簡(jiǎn)單。
三、在VB編程中對(duì)于AutoCAD 的嵌入
1.AutoCAD對(duì)象模型樹(shù)。AutoCAD對(duì)象分為以下類型:
▲圖像對(duì)象,例如直線(Lines)、球體(Sphere)、文本(Text)和尺寸(Dimensions)等。
▲樣式設(shè)置對(duì)象,例如線型(linetypes)和尺寸標(biāo)注樣式(DimStyles)等。
▲組織結(jié)構(gòu),例如圖層(Layers)、組(Groups)和塊(Blocks)等。
▲圖形顯示對(duì)象,例如視圖(View)和文檔(Document)。
所有的這些AutoCAD對(duì)象根據(jù)它們的不同功能,具有一定的層次和隸屬關(guān)系。最上面一層是AutoCAD應(yīng)用程序?qū)ο螅ˋpplication),它是對(duì)象模型的基礎(chǔ),成為根對(duì)象。通過(guò)Application對(duì)象的屬性和方法可以獲取版本信息,改變AutoCAD窗體界面大小和退出AutoCAD應(yīng)用程序等。通過(guò)ModelSpace對(duì)象,可以在模型空間創(chuàng)建Line,Arc等圖形實(shí)體。
2.VB調(diào)用AutoCAD的基本框架。VB調(diào)用AutoCAD的基本框架,所有的其他操作,都建立在這個(gè)框架的基礎(chǔ)上,因篇幅關(guān)系,僅介紹主要技術(shù)環(huán)節(jié):其中聲明公共變量,“obj_acad,obj_doc,obj_modelspace”,obj_acad:Application對(duì)象,AutoCAD軟件本身;obj_doc:Document對(duì)象,當(dāng)前的圖形文件;obj_model space:Model Space對(duì)象,當(dāng)前圖形文件的模型空間。聲明公共變量“boo as boolean”,如果boo為true,則表示我們獲得了Application對(duì)象、Document對(duì)象、Model Space對(duì)象,可以執(zhí)行繪圖或者其他的操作。GetActiveOleObjects、GetActiveOleObject是VB提供的獲取“Application對(duì)象”的函數(shù)。前者表示通過(guò)已啟動(dòng)的AutoCAD獲得Application對(duì)象,后者表示通過(guò)打開(kāi)一個(gè)新的AutoCAD程序獲得Application對(duì)象。程序里用了一個(gè)VB的異常處理語(yǔ)句“On Error Resume Next”,表示如果AutoCAD已啟動(dòng),則執(zhí)行GetActiveObject直接獲得Automation對(duì)象,CreateOleObject函數(shù),AutoCAD打開(kāi)。
四、軸自動(dòng)設(shè)計(jì)軟件系統(tǒng)的圖形生成
1.生成CAD圖像的設(shè)計(jì)思想。首先建立中間軸的樣本,規(guī)劃出軸中要用到的所有的點(diǎn)(圖中只寫(xiě)出部分點(diǎn))。如圖4-1所示。
圖4-1 軸的樣板圖樣
然后是圖紙的整體規(guī)劃,根據(jù)圖在圖紙中的位置計(jì)算出第一個(gè)點(diǎn)的坐標(biāo),后面的點(diǎn)都根據(jù)第一個(gè)點(diǎn)和中間軸的相關(guān)尺寸推算出來(lái)的。然后根據(jù)添加直線、圓弧等方法就可以在AutoCAD中生成軸的輪廓圖如圖4-1中的輪廓。
接下來(lái)是添加剖面線,這里要注意的是要采用AppendOuterLoop的方法向填充對(duì)象添加填充邊界前必須先定義OuterLoop,否則將會(huì)提示出錯(cuò)。
然后采用創(chuàng)建填充對(duì)象的方法AddHatch創(chuàng)建填充對(duì)象。
向軸的AutoCAD圖中添加技術(shù)要求,代碼如下:
Set obj_text(0) = obj_modelspace.addtext("技術(shù)要求:", p127, 7)
Set obj_text(1) = obj_modelspace.addtext("1.調(diào)質(zhì)200—250HBS", p128, 7)
參見(jiàn)3.6尺寸和公差一節(jié)我們可以添加尺寸標(biāo)注與公差,此例中標(biāo)注尺寸的代碼如下:
而對(duì)于幾何公差,我們需要先建立基準(zhǔn)A方法同軸的輪廓的繪制,也是先在基準(zhǔn)的位置確定點(diǎn)的坐標(biāo),然后添加直線、圓以及文字。
第二步是程序的調(diào)試。
第三步是程序的關(guān)聯(lián)。通過(guò)在模塊中定義變量,然后再把這些變量傳遞給圖形生成模塊。
2.軸自動(dòng)設(shè)計(jì)系統(tǒng)的運(yùn)行.軸自動(dòng)設(shè)計(jì)軟件系統(tǒng)是常用零部件自動(dòng)設(shè)計(jì)系統(tǒng)的一部分,其運(yùn)行情況如下:
(1)輸入中間軸的轉(zhuǎn)速和功率,計(jì)算軸的最小直徑;(2)軸的結(jié)構(gòu)設(shè)計(jì);(3)計(jì)算軸上的彎扭矩;(4)生成AUTOcad圖像。
五、結(jié)語(yǔ)
軸自動(dòng)設(shè)計(jì)系統(tǒng)的圖形生成功能開(kāi)發(fā)實(shí)現(xiàn)了零部件CAD圖的成功生成,在真正意義上完成了自動(dòng)設(shè)計(jì)。特別是系統(tǒng)的實(shí)現(xiàn)了結(jié)構(gòu)設(shè)計(jì)、繪圖設(shè)計(jì)、尺寸標(biāo)注、添加文本、尺寸公差及幾何公差等方面的控制方法,完善了自動(dòng)設(shè)計(jì)系統(tǒng),在一定程度上提高了自動(dòng)設(shè)計(jì)系統(tǒng)的自動(dòng)化程度。
參考文獻(xiàn):
[1]楊星,趙曉東.AutoCAD2004二次開(kāi)發(fā)(VB版)及在海工模型試驗(yàn)數(shù)據(jù)處理中的應(yīng)用.第1版.北京:海洋出版社,2005.12.
[2]劉磊,李貴三. 軸強(qiáng)度設(shè)計(jì)中相關(guān)數(shù)據(jù)自動(dòng)查取算法與自動(dòng)計(jì)算程序設(shè)計(jì). 蘇州大學(xué)機(jī)電工程學(xué)院,蘇州大學(xué)學(xué)報(bào),第29卷第2期,2009年4月.
[3]相昌盛.帶傳動(dòng)自動(dòng)設(shè)計(jì)軟件系統(tǒng)的圖形生成功能開(kāi)發(fā), 2010年淮海工學(xué)院優(yōu)秀畢業(yè)論文摘要,2010年6月.
[4]牛又奇,孫建國(guó).新編Visual Basic程序設(shè)計(jì)教程.第1版.蘇州:蘇州大學(xué)出版社,2002.
[5]王棟. Visual Basic 程序設(shè)計(jì)實(shí)用教程.第2版.北京:清華大學(xué)出版社.2002.
[6]李貴三.工程應(yīng)用程序設(shè)計(jì)基礎(chǔ).遼寧:遼陽(yáng)石油化工高等??茖W(xué)校,1996.
[7]張晉西.Visual Basic與 AutoCAD二次開(kāi)發(fā).第1版.北京:清華大學(xué)出版社.2002.
[8]成大先.機(jī)械設(shè)計(jì)手冊(cè).第1版.北京:化學(xué)工業(yè)出版社,2004.
指導(dǎo)老師:李貴三 教授。