• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于AutoCAD VBA的參數(shù)化輔助軸設(shè)計(jì)系統(tǒng)

      2014-02-07 01:21:54
      機(jī)電工程技術(shù) 2014年6期
      關(guān)鍵詞:校核彎矩載荷

      王 鵬

      (廣州廣日電梯工業(yè)有限公司,廣東廣州 511447)

      0 前言

      AutoCAD是目前使用廣泛的通用交互式計(jì)算機(jī)輔助繪圖與設(shè)計(jì)軟件包,其特點(diǎn)是通用性強(qiáng),具有多種工業(yè)標(biāo)準(zhǔn)和開放的體系結(jié)構(gòu),具有強(qiáng)大的二次開發(fā)功能。這些特點(diǎn)使得它在船舶、建筑、機(jī)械、電子、服裝等多個(gè)領(lǐng)域得到了極為廣泛的應(yīng)用[1]。

      在機(jī)械產(chǎn)品設(shè)計(jì)中要頻繁使用通用零件軸,如果用傳統(tǒng)的方法對(duì)軸進(jìn)行設(shè)計(jì),由于參數(shù)太多,計(jì)算復(fù)雜,繪圖繁瑣,不僅設(shè)計(jì)效率低,而且容易出錯(cuò)。目前各類CAD軟件在機(jī)械設(shè)計(jì)中的應(yīng)用日益廣泛,利用參數(shù)化輔助設(shè)計(jì)的方法來研究機(jī)械零件的設(shè)計(jì)問題,已經(jīng)成為現(xiàn)在機(jī)械設(shè)計(jì)中十分流行的研究方法[2]。因此,應(yīng)用AutoCAD軟件平臺(tái)開發(fā)軸的參數(shù)化輔助設(shè)計(jì)系統(tǒng)不僅具有很高的實(shí)用價(jià)值,而且對(duì)機(jī)械設(shè)計(jì)現(xiàn)代方法的研究是一項(xiàng)有益的探索。

      系統(tǒng)應(yīng)用內(nèi)嵌于AutoCAD軟件平臺(tái)的VBA技術(shù)進(jìn)行二次開發(fā),開發(fā)出了軸設(shè)計(jì)CAD系統(tǒng),主要采用參數(shù)化設(shè)計(jì)方法,基于特征的實(shí)體造型理論,應(yīng)用數(shù)據(jù)庫的支持和尺寸驅(qū)動(dòng)原理,使軸的尺寸變化自動(dòng)轉(zhuǎn)化成幾何形狀的變化,并直接輸出圖形,從而大大提高了設(shè)計(jì)的質(zhì)量和繪圖的效率。

      1 AutoCAD ActiveX及VBA技術(shù)

      ActiveX技術(shù)來源于OLE(Object Linking and Embedding)技術(shù)。AutoCAD ActiveX使用戶能夠從AutoCAD的內(nèi)部或外部以編程方式來操作Auto-CAD,使許多不同的編程語言和環(huán)境及其他應(yīng)用程序可以訪問被顯示的對(duì)象。對(duì)象是所有ActiveX應(yīng)用程序的主要構(gòu)造塊,每一個(gè)顯示的對(duì)象均精確代表一個(gè)AutoCAD組件。AutoCAD ActiveX接口中有許多不同類型的對(duì)象[3]。在AutoCAD中實(shí)現(xiàn)ActiveX接口有兩大優(yōu)點(diǎn):更多的編程環(huán)境可以編程訪問AutoCAD圖形;與其他Windows應(yīng)用程序共享數(shù)據(jù)變得更加容易。利用該項(xiàng)技術(shù)來進(jìn)行AutoCAD二次開發(fā),控制AutoCAD的環(huán)境,或同外部程序進(jìn)行“對(duì)話”,或編寫基于AutoCAD的數(shù)據(jù)庫程序,有著顯著的優(yōu)越性。ActiveX Automation技術(shù)為AutoCAD的二次開發(fā)提供了一個(gè)嶄新的天地[4]。

      VBA(Visual Basic for Application)是AutoCAD內(nèi)嵌的一種程序語言。它基于Visual Basic版本,是完全面向?qū)ο篌w系結(jié)構(gòu)的一種編程語言,有著與VB幾乎相同的開發(fā)環(huán)境和語法。允許VBA環(huán)境與AutoCAD同時(shí)運(yùn)行,并通過ActiveX接口提供對(duì)AutoCAD的編程控制[5]。

      2 系統(tǒng)的參數(shù)化理論設(shè)計(jì)方法

      自20世紀(jì)80年代以來,基于特征的設(shè)計(jì)方法已被廣泛接受,也提出了不少特征的定義。更為嚴(yán)格的定義:特征就是一個(gè)包含工程含義或意義的幾何原型外形[6]。特征在此已經(jīng)不是普通的體素,而是一個(gè)封裝了各種屬性(attribute)和功能(function)的功能要素。由此,可以利用較高層次的語義豐富的特征來代替簡單的原始的幾何元素作為基本元素,通過一定的組合法則來建模,這就是特征造型,特征的表示和建立就成為其中的關(guān)鍵。

      軸類零件的結(jié)構(gòu)特點(diǎn)是:不同的軸有不同的結(jié)構(gòu),但它們有共同的結(jié)構(gòu)特征,如都由幾節(jié)大小不同的圓柱段、倒角、鍵槽等組成。這些結(jié)構(gòu)都很簡單,但又有很大的相似性??梢岳脜?shù)化的理論設(shè)計(jì)方法,基于特征實(shí)體的造型方法去研究軸的參數(shù)化設(shè)計(jì),并根據(jù)用戶輸入的相關(guān)軸段尺寸來驅(qū)動(dòng)系統(tǒng)運(yùn)行,使軸的設(shè)計(jì)可以通過修改參數(shù)來確定,從而實(shí)現(xiàn)了軸類零件的計(jì)算機(jī)輔助設(shè)計(jì)。

      3 系統(tǒng)的總體構(gòu)成

      考慮到計(jì)算機(jī)輔助軸的設(shè)計(jì)過程具有如下特點(diǎn)及難點(diǎn):設(shè)計(jì)前已知數(shù)據(jù)少;使用大量的設(shè)計(jì)及校核資料;結(jié)構(gòu)復(fù)雜,結(jié)構(gòu)信息難于合理存儲(chǔ)傳遞。將軸的輔助設(shè)計(jì)系統(tǒng)分為以下幾個(gè)模塊。

      (1)結(jié)構(gòu)設(shè)計(jì)模塊。提供逐段進(jìn)行結(jié)構(gòu)設(shè)計(jì)的方便友好的交互界面,隨人機(jī)交互的進(jìn)行,系統(tǒng)進(jìn)行參數(shù)化繪圖并合理存儲(chǔ)軸的局部信息。

      (2)數(shù)據(jù)處理與查詢模塊。由于軸的設(shè)計(jì)及校核涉及到大量的表格數(shù)據(jù),為便于存儲(chǔ)、計(jì)算和檢索,系統(tǒng)利用Access數(shù)據(jù)庫存儲(chǔ)與設(shè)計(jì)及校核相關(guān)的數(shù)據(jù)。

      (3)力學(xué)計(jì)算模塊。將加載于轉(zhuǎn)動(dòng)件上的力轉(zhuǎn)換為加載于軸上的力,并計(jì)算該力作用下產(chǎn)生的支反力、彎矩和轉(zhuǎn)矩等。

      (4)強(qiáng)度校核模塊。按照彎扭合成強(qiáng)度條件,利用數(shù)據(jù)處理與查詢模塊所獲取的參數(shù)和力學(xué)計(jì)算模塊得出的數(shù)據(jù),計(jì)算軸上受載荷處的彎矩、扭矩、當(dāng)量彎矩和計(jì)算應(yīng)力。并按照強(qiáng)度校核理論,計(jì)算軸上危險(xiǎn)點(diǎn)處的安全系數(shù),進(jìn)行強(qiáng)度校核,并判斷設(shè)計(jì)是否合格。

      (5)參數(shù)化繪圖模塊。根據(jù)數(shù)據(jù)處理與查詢模塊提供的參數(shù)進(jìn)行參數(shù)化繪圖,并輸出圖形文件。提供用戶布置載荷的接口。

      4 計(jì)算機(jī)輔助軸設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)

      4.1 設(shè)計(jì)流程

      系統(tǒng)在應(yīng)用界面設(shè)計(jì)上,采用了按設(shè)計(jì)順序步驟逐步依次運(yùn)行。主要采用窗體的形式來完成系統(tǒng)的運(yùn)行。系統(tǒng)執(zhí)行的流程圖如圖1所示。

      圖1 系統(tǒng)流程圖

      4.2 系統(tǒng)的界面設(shè)計(jì)

      系統(tǒng)的操作界面主要包括:引導(dǎo)界面、輔助設(shè)計(jì)界面、結(jié)構(gòu)設(shè)計(jì)界面、支承布置界面和載荷計(jì)算及強(qiáng)度校核界面,在此列出結(jié)構(gòu)設(shè)計(jì)界面(如圖2所示)和載荷計(jì)算及強(qiáng)度校核界面(如圖3所示)。

      圖2 結(jié)構(gòu)設(shè)計(jì)界面圖

      4.3 關(guān)鍵問題的解決方案

      4.3.1 數(shù)據(jù)庫的連接與查詢

      軸的輔助設(shè)計(jì)系統(tǒng)中,由于涉及到大量的數(shù)據(jù)處理與查詢,因此建立了Access數(shù)據(jù)庫以方便系統(tǒng)管理相關(guān)數(shù)據(jù)。

      圖3 載荷計(jì)算及強(qiáng)度校核界面圖

      常用的數(shù)據(jù)庫訪問技術(shù)有:數(shù)據(jù)訪問對(duì)象DAO(Data Access Objects)技術(shù),遠(yuǎn)程數(shù)據(jù)對(duì)象RDO(Remote Data Objects)技術(shù)和Active數(shù)據(jù)對(duì)象ADO(ActiveX Data Objects)技術(shù)。ADO的對(duì)象模型是所有數(shù)據(jù)訪問接口對(duì)象模型中最簡單的一種,它的優(yōu)勢在于它可用于各種程序設(shè)計(jì)語言,所以ADO技術(shù)成為數(shù)據(jù)庫訪問功能的新突破,開發(fā)的系統(tǒng)使用的是ADO訪問技術(shù)。

      在使用ADO對(duì)象之前,需要在VBA集成開發(fā)環(huán)境中,引用ADO的對(duì)象模型。連接數(shù)據(jù)庫、打開記錄集的實(shí)現(xiàn)程序代碼如下:

      '工程文件路徑

      Dim strPath As String

      Dim adoCon As Connection '連接對(duì)象

      Dim adoRs As Recordset '記錄集對(duì)象

      '首先獲得當(dāng)前的工程路徑

      strPath=ThisDrawing.Application.VBE.

      ActiveVBProject.FileName

      '連接數(shù)據(jù)庫

      Set adoCon=New Connection

      adoCon.CursorLocation=adUseClient

      adoCon.Open"Provider=Microsoft.Jet.

      OLEDB.4.0;DataSource=" & Left(strPath,Len(strPath)-8)&"data.mdb;"

      '打開記錄集,查詢表jianhb

      Set adoRs=New Recordset

      adoRs.Open"SELECT*FROM jianhb",ado-Con,adOpenForwardOnly,adLockReadOnly,

      adCmdText

      adoRs.MoveFirst

      在使用記錄集時(shí),在各個(gè)記錄集之間切換還可以使用記錄集的Move、Move-First、 MoveNext、 MovePrevious、MoveLast方法。

      在連接數(shù)據(jù)庫獲取數(shù)據(jù)完成之后,必須使用Close方法來關(guān)閉記錄集和數(shù)據(jù)庫連接對(duì)象,其程序代碼如下:

      adoRs.Close '關(guān)閉記錄集對(duì)象

      adoCon.Close '關(guān)閉連接對(duì)象

      鏈接好數(shù)據(jù)庫之后,需要從數(shù)據(jù)庫中獲取符合條件的參數(shù),采用For…Next循環(huán)語句實(shí)現(xiàn)了對(duì)所需查詢的表的遍歷,同時(shí)使用If…End if語句來選取符合查詢條件的參數(shù),方便參數(shù)化設(shè)計(jì)。

      4.3.2 參數(shù)化繪圖

      參數(shù)化繪圖部分主要包括:圖層的建立、繪制圖形和尺寸標(biāo)注三個(gè)方面。

      (1)圖層的建立。其關(guān)鍵代碼如下:

      ‘創(chuàng)建“中心線”圖層,設(shè)置其線型,線寬,顏色

      Public NewLayerName As String

      Public LayerObject As AcadLayer

      NewLayerName="中心線"

      Set LayerObject=

      ThisDrawing.Layers.Add(NewLayerName)

      On Error GoTo ERRORHANDLER

      linetypeName="CENTER"

      ThisDrawing.Linetypes.Load linetypeName,"acadiso.lin"

      ERRORHANDLER:

      LayerObject.color=acWhite

      LayerObject.Linetype="CENTER"

      LayerObject.Lineweight=acLnWt015

      ThisDrawing.ActiveLayer=LayerObject

      (2)圖形繪制。其中直線和圓弧繪制的關(guān)鍵代碼如下:

      ‘直線

      Dim Line As AcadLine:

      Set Line = ThisDrawing.ModelSpace.AddLine(end1,end2)

      ‘圓弧

      Dim arcObj As AcadArc

      SetarcObj1 = ThisDrawing.ModelSpace.AddArc(center1,r,sangle,endang)

      其中end1,end2,為線段端點(diǎn);center1,center2為圓弧圓心;r為圓弧半徑;sangle為圓弧起始角度;endang為圓弧終止角度。

      (3)尺寸標(biāo)注。在系統(tǒng)中,標(biāo)注主要采用對(duì)齊標(biāo)注的方法,這種方法方便快捷,比較容易使用,對(duì)齊標(biāo)注的定義程序代碼如下:

      Dim dimObj As AcadDimAligned

      Set dimObj=ThisDrawing.ModelSpace.AddDimAligned(end1,end2,location)

      其中end1,end2為標(biāo)注端點(diǎn),location為標(biāo)注文字的對(duì)齊點(diǎn)。其他標(biāo)注相關(guān):

      ‘設(shè)置小數(shù)分隔符

      dimObj.DecimalSeparator= “.“

      ‘顯示直徑符號(hào)Φ

      dimObj.TextOverride=“%%C<>“

      dimObj.Update

      4.3.3 參數(shù)化載荷計(jì)算及強(qiáng)度校核

      在用戶輸入?yún)?shù)和數(shù)據(jù)庫連接完成之后,系統(tǒng)將進(jìn)行參數(shù)化的載荷計(jì)算及強(qiáng)度校核。

      (1)最小直徑的估算是進(jìn)行結(jié)構(gòu)設(shè)計(jì),載荷計(jì)算及強(qiáng)度校核之前必不可少的,在估算最小直徑時(shí)需要獲得功率P、轉(zhuǎn)速n以及根據(jù)材料選取的系數(shù)A0。

      計(jì)算過程由程序自動(dòng)完成,其主要代碼為:

      dmin=A0*((P/n)^(1/3))

      Textdmin.Text=dmin

      同時(shí),用戶在進(jìn)行結(jié)構(gòu)設(shè)計(jì)時(shí)要保證軸段的直徑大于所估算的最小直徑,否則系統(tǒng)將提示錯(cuò)誤。

      (2)在進(jìn)行載荷計(jì)算之前,必須先由用戶布置軸的支承點(diǎn)和受載荷點(diǎn),否則無法進(jìn)行載荷計(jì)算。軸的支承點(diǎn)需要布置2個(gè),受載荷點(diǎn)只需要布置1個(gè),其程序?qū)崿F(xiàn)的方法主要為鼠標(biāo)獲取點(diǎn)的坐標(biāo),調(diào)用GetPoint函數(shù)。其關(guān)鍵代碼如下:

      '獲取點(diǎn)的位置

      ptPick=ThisDrawing.Utility.GetPoint(,“指定點(diǎn):”)

      在布置支承點(diǎn)和受載荷點(diǎn)時(shí)系統(tǒng)會(huì)彈出對(duì)話框,提示用戶在指定的位置來布置,以方便系統(tǒng)獲取計(jì)算載荷時(shí)所需的力臂長度。

      (3)在常規(guī)的軸設(shè)計(jì)當(dāng)中,進(jìn)行載荷計(jì)算時(shí)都需要構(gòu)建力學(xué)模型,以方便軸的計(jì)算。在開發(fā)的系統(tǒng)當(dāng)中,進(jìn)行載荷計(jì)算時(shí)同樣要構(gòu)建力學(xué)模型,但是這里的力學(xué)模型需要進(jìn)行轉(zhuǎn)化,轉(zhuǎn)化成程序代碼的形式反映出來。所需計(jì)算的參數(shù)有切向支反力,切向彎矩,徑向支反力,徑向彎矩,扭矩,總彎矩等。

      (4)在軸上載荷都計(jì)算完成之后,為了校核軸的強(qiáng)度,需要根據(jù)公式計(jì)算軸的計(jì)算彎矩,得出計(jì)算彎曲應(yīng)力之后,即可針對(duì)危險(xiǎn)截面(即計(jì)算彎矩大而直徑可能不足的截面)作強(qiáng)度校核計(jì)算。系統(tǒng)是按彎扭合成應(yīng)力校核軸的強(qiáng)度,得出計(jì)算彎曲應(yīng)力之后,系統(tǒng)跟據(jù)用戶所選擇的材料熱處理方法查詢許用彎曲應(yīng)力[σ-1],并與計(jì)算彎曲應(yīng)力進(jìn)行比較,判斷軸的結(jié)構(gòu)設(shè)計(jì)是否合理。

      4.4 運(yùn)行結(jié)果

      (1)打開AutoCAD軟件,選擇【工具/宏/加載工程】。

      (2)在彈出的對(duì)話框里找到存放系統(tǒng)的目錄,選中“計(jì)算機(jī)輔助軸設(shè)計(jì)系統(tǒng).dvb”工程文件,并單擊“打開”按鈕。

      (3)系統(tǒng)彈出Microsoft Visual Basic編輯器,選中User窗體,單擊運(yùn)行按鈕或者按下F5鍵系統(tǒng)便開始運(yùn)行。

      (4)系統(tǒng)運(yùn)行,由用戶根據(jù)系統(tǒng)提示進(jìn)行軸的計(jì)算機(jī)輔助設(shè)計(jì)。運(yùn)行結(jié)果如圖4、圖5所示。

      圖4 載荷計(jì)算結(jié)果

      圖5 強(qiáng)度校核結(jié)果

      5 結(jié)論

      (1)基于AutoCAD VBA的二次開發(fā),可以為計(jì)算機(jī)輔助設(shè)計(jì)帶來了很大的靈活性,進(jìn)一步增強(qiáng)程序的功能和代碼重用性,應(yīng)用上述技術(shù)開發(fā)專用CAD系統(tǒng)是一種行之有效、方便實(shí)用的設(shè)計(jì)方法。

      (2)系統(tǒng)基本滿足了軸設(shè)計(jì)過程當(dāng)中的基本要求,用戶只需根據(jù)輸入的參數(shù),即可由系統(tǒng)自動(dòng)完成輔助結(jié)構(gòu)設(shè)計(jì)及強(qiáng)度的校核,并輸出零件圖形。為設(shè)計(jì)人員提供了方便的設(shè)計(jì)手段。

      [1]李長勛.AutoCAD ActiveX二次開發(fā)技術(shù)[M].北京:國防工業(yè)出版社,2005.

      [2]肖剛,李學(xué)志,李俊源.機(jī)械CAD原理與實(shí)踐:第2版[M].北京:清華大學(xué)出版社,2006.

      [3]張帆.AutoCAD VBA開發(fā)精彩實(shí)例教程[M].北京:清華大學(xué)出版社,2004.

      [4]張帆.AutoCAD VBA二次開發(fā)教程[M].北京:清華大學(xué)出版社,2006.

      [5]李慶興,李繼升,范順成,等.基于AutoCAD VBA平臺(tái)的機(jī)械零件工作圖參數(shù)化及自動(dòng)生成系統(tǒng)[J].機(jī)械設(shè)計(jì),2008,25(1):68-70.

      [6]王彩英.基于特征的軸類零件參數(shù)化設(shè)計(jì)的研究[J].機(jī) 電 產(chǎn) 品 開 發(fā) 與 創(chuàng) 新 ,2008,21 (5):131-133.

      猜你喜歡
      校核彎矩載荷
      發(fā)電機(jī)進(jìn)相試驗(yàn)失磁保護(hù)與低勵(lì)限制配合關(guān)系的校核
      交通運(yùn)輸部海事局“新一代衛(wèi)星AIS驗(yàn)證載荷”成功發(fā)射
      水上消防(2022年2期)2022-07-22 08:45:00
      通行費(fèi)校核分析方法探究
      零彎矩設(shè)計(jì)理論在連續(xù)梁橋中的應(yīng)用研究
      滾轉(zhuǎn)機(jī)動(dòng)載荷減緩風(fēng)洞試驗(yàn)
      CFRP-PCPs復(fù)合筋連續(xù)梁開裂截面彎矩計(jì)算方法研究
      鋼-混疊合連續(xù)梁負(fù)彎矩區(qū)計(jì)算分析
      板孔式有彎矩平衡梁應(yīng)用技術(shù)及研究
      一種基于白噪聲響應(yīng)的隨機(jī)載荷譜識(shí)別方法
      基于Mathematica的失磁保護(hù)與低勵(lì)限制配合的校核
      德庆县| 专栏| 巴林左旗| 古丈县| 临泽县| 张家界市| 明溪县| 西安市| 辽中县| 灌南县| 雷山县| 漳平市| 曲阜市| 桑植县| 柯坪县| 桃园市| 民丰县| 册亨县| 万山特区| 云浮市| 舒城县| 交城县| 台东市| 海晏县| 四会市| 塘沽区| 南部县| 固镇县| 麦盖提县| 遂平县| 成都市| 韶山市| 高青县| 久治县| 稻城县| 寿光市| 鄂伦春自治旗| 酒泉市| 洛阳市| 建湖县| 新化县|