国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

王 鵬

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

0 前言

AutoCAD是目前使用廣泛的通用交互式計(jì)算機(jī)輔助繪圖與設(shè)計(jì)軟件包,其特點(diǎn)是通用性強(qiáng),具有多種工業(yè)標(biāo)準(zhǔn)和開(kāi)放的體系結(jié)構(gòu),具有強(qiáng)大的二次開(kāi)發(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ò)。目前各類(lèi)CAD軟件在機(jī)械設(shè)計(jì)中的應(yīng)用日益廣泛,利用參數(shù)化輔助設(shè)計(jì)的方法來(lái)研究機(jī)械零件的設(shè)計(jì)問(wèn)題,已經(jīng)成為現(xiàn)在機(jī)械設(shè)計(jì)中十分流行的研究方法[2]。因此,應(yīng)用AutoCAD軟件平臺(tái)開(kā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)行二次開(kāi)發(fā),開(kāi)發(fā)出了軸設(shè)計(jì)CAD系統(tǒng),主要采用參數(shù)化設(shè)計(jì)方法,基于特征的實(shí)體造型理論,應(yīng)用數(shù)據(jù)庫(kù)的支持和尺寸驅(qū)動(dòng)原理,使軸的尺寸變化自動(dòng)轉(zhuǎn)化成幾何形狀的變化,并直接輸出圖形,從而大大提高了設(shè)計(jì)的質(zhì)量和繪圖的效率。

1 AutoCAD ActiveX及VBA技術(shù)

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

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

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

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

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

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

考慮到計(jì)算機(jī)輔助軸的設(shè)計(jì)過(guò)程具有如下特點(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ù)處理與查詢(xún)模塊。由于軸的設(shè)計(jì)及校核涉及到大量的表格數(shù)據(jù),為便于存儲(chǔ)、計(jì)算和檢索,系統(tǒng)利用Access數(shù)據(jù)庫(kù)存儲(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ù)處理與查詢(xún)模塊所獲取的參數(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ù)處理與查詢(xún)模塊提供的參數(shù)進(jìn)行參數(shù)化繪圖,并輸出圖形文件。提供用戶(hù)布置載荷的接口。

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

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

系統(tǒng)在應(yīng)用界面設(shè)計(jì)上,采用了按設(shè)計(jì)順序步驟逐步依次運(yùn)行。主要采用窗體的形式來(lái)完成系統(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)鍵問(wèn)題的解決方案

4.3.1 數(shù)據(jù)庫(kù)的連接與查詢(xún)

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

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

常用的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)有:數(shù)據(jù)訪問(wèn)對(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ù)訪問(wèn)接口對(duì)象模型中最簡(jiǎn)單的一種,它的優(yōu)勢(shì)在于它可用于各種程序設(shè)計(jì)語(yǔ)言,所以ADO技術(shù)成為數(shù)據(jù)庫(kù)訪問(wèn)功能的新突破,開(kāi)發(fā)的系統(tǒng)使用的是ADO訪問(wèn)技術(shù)。

在使用ADO對(duì)象之前,需要在VBA集成開(kāi)發(fā)環(huán)境中,引用ADO的對(duì)象模型。連接數(shù)據(jù)庫(kù)、打開(kāi)記錄集的實(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ù)庫(kù)

Set adoCon=New Connection

adoCon.CursorLocation=adUseClient

adoCon.Open"Provider=Microsoft.Jet.

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

'打開(kāi)記錄集,查詢(xún)表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ù)庫(kù)獲取數(shù)據(jù)完成之后,必須使用Close方法來(lái)關(guān)閉記錄集和數(shù)據(jù)庫(kù)連接對(duì)象,其程序代碼如下:

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

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

鏈接好數(shù)據(jù)庫(kù)之后,需要從數(shù)據(jù)庫(kù)中獲取符合條件的參數(shù),采用For…Next循環(huán)語(yǔ)句實(shí)現(xiàn)了對(duì)所需查詢(xún)的表的遍歷,同時(shí)使用If…End if語(yǔ)句來(lái)選取符合查詢(xún)條件的參數(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)度校核

在用戶(hù)輸入?yún)?shù)和數(shù)據(jù)庫(kù)連接完成之后,系統(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ì)算過(guò)程由程序自動(dòng)完成,其主要代碼為:

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

Textdmin.Text=dmin

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

(2)在進(jìn)行載荷計(jì)算之前,必須先由用戶(hù)布置軸的支承點(diǎn)和受載荷點(diǎn),否則無(wú)法進(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ì)話(huà)框,提示用戶(hù)在指定的位置來(lái)布置,以方便系統(tǒng)獲取計(jì)算載荷時(shí)所需的力臂長(zhǎng)度。

(3)在常規(guī)的軸設(shè)計(jì)當(dāng)中,進(jìn)行載荷計(jì)算時(shí)都需要構(gòu)建力學(xué)模型,以方便軸的計(jì)算。在開(kāi)發(fā)的系統(tǒng)當(dāng)中,進(jìn)行載荷計(jì)算時(shí)同樣要構(gòu)建力學(xué)模型,但是這里的力學(xué)模型需要進(jìn)行轉(zhuǎn)化,轉(zhuǎn)化成程序代碼的形式反映出來(lái)。所需計(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ù)用戶(hù)所選擇的材料熱處理方法查詢(xún)?cè)S用彎曲應(yīng)力[σ-1],并與計(jì)算彎曲應(yīng)力進(jìn)行比較,判斷軸的結(jié)構(gòu)設(shè)計(jì)是否合理。

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

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

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

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

(4)系統(tǒng)運(yùn)行,由用戶(hù)根據(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的二次開(kāi)發(fā),可以為計(jì)算機(jī)輔助設(shè)計(jì)帶來(lái)了很大的靈活性,進(jìn)一步增強(qiáng)程序的功能和代碼重用性,應(yīng)用上述技術(shù)開(kāi)發(fā)專(zhuān)用CAD系統(tǒng)是一種行之有效、方便實(shí)用的設(shè)計(jì)方法。

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

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

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

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

[4]張帆.AutoCAD VBA二次開(kāi)發(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]王彩英.基于特征的軸類(lèi)零件參數(shù)化設(shè)計(jì)的研究[J].機(jī) 電 產(chǎn) 品 開(kāi) 發(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ā)射
通行費(fèi)校核分析方法探究
零彎矩設(shè)計(jì)理論在連續(xù)梁橋中的應(yīng)用研究
滾轉(zhuǎn)機(jī)動(dòng)載荷減緩風(fēng)洞試驗(yàn)
CFRP-PCPs復(fù)合筋連續(xù)梁開(kāi)裂截面彎矩計(jì)算方法研究
鋼-混疊合連續(xù)梁負(fù)彎矩區(qū)計(jì)算分析
板孔式有彎矩平衡梁應(yīng)用技術(shù)及研究
一種基于白噪聲響應(yīng)的隨機(jī)載荷譜識(shí)別方法
基于Mathematica的失磁保護(hù)與低勵(lì)限制配合的校核