999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VBA的AutoCAD中間圓弧命令開發(fā)

2015-05-05 08:33:02畢亞東
長沙大學(xué)學(xué)報(bào) 2015年5期
關(guān)鍵詞:二次開發(fā)

畢亞東

(安徽國防科技職業(yè)學(xué)院機(jī)械工程系,安徽 六安 237011)

基于VBA的AutoCAD中間圓弧命令開發(fā)

畢亞東

(安徽國防科技職業(yè)學(xué)院機(jī)械工程系,安徽 六安 237011)

利用AutoCAD軟件強(qiáng)大的二次開發(fā)功能,對在工程制圖中常見的中間圓弧繪制問題進(jìn)行研究,推導(dǎo)出解決繪制該圓問題的數(shù)學(xué)模型.并設(shè)計(jì)了程序框圖,使用VBA編程語言,編寫出命令程序和用戶界面.通過實(shí)例驗(yàn)證,得出該命令使用方便,并能快捷地繪制中間圓弧.與常規(guī)輔助線繪制方法相比,繪圖效率大大提高,減輕繪圖人員的工作負(fù)擔(dān),提高了工作效率.該命令也擴(kuò)充了AutoCAD繪圓功能.

VBA;中間圓弧;二次開發(fā)

作為通用型、開放式設(shè)計(jì)繪圖軟件AutoCAD,憑借其功能強(qiáng)大、操作簡單和繪圖精度高的特色,在工程界得到廣泛應(yīng)用.版本也從R1.0升級現(xiàn)在的2014版,在多方面功能上有了巨大的提升和完善.遺憾的是在使用最為廣泛工程制圖領(lǐng)域,尤其在機(jī)械制圖中,“中間圓弧”的繪制命令始終沒有出現(xiàn).

目前,繪制此類圓弧的方法是利用幾何作圖原理,采用輔助直線和輔助圓弧求得圓心,之后再用基本畫圓命令繪制.此過程操作繁瑣,計(jì)算多,工程技術(shù)人員繪圖效率低,計(jì)算錯誤率較高.

AutoCAD 作為開放性制圖軟件,為用戶提供了良好的二次開發(fā)環(huán)境,可以用 Visual Lisp、ActiveX 和VBA、 ObjectARX 等工具進(jìn)行二次開發(fā).VBA 采用先進(jìn)的面向?qū)ο蟮木幊淘?使用戶能開發(fā)出高效、簡潔的AutoCAD 應(yīng)用程序[1-3].

1 問題提出

根據(jù)機(jī)械制圖技術(shù)標(biāo)準(zhǔn),按照已知定形、定位尺寸的數(shù)目將平面圖形的線段分為三類,見表1.

表1 圓弧分類

對照圖1,已知圓弧和聯(lián)接圓弧在AutoCAD中都能找到相應(yīng)的繪圖命令,中間圓弧卻沒有直接繪制命令.

圖1 AutoCAD中的繪圓命令

2 關(guān)鍵問題研究

中間圓弧的特點(diǎn)是半徑已知,圓心未知,尋找圓心是解決這個問題的關(guān)鍵點(diǎn).依照目前常見的該圓繪制的方法,確定的編程思路為:使用VBA編程語言調(diào)用AutoCAD相關(guān)繪圖函數(shù),利用幾何作圖的原理,分別畫出輔助直線和輔助圓,在用AutoCAD函數(shù)查詢二者的交點(diǎn),即為圓心.通過實(shí)踐發(fā)現(xiàn)這種編程思路開發(fā)的命令,繪圖精度受系統(tǒng)精度變量設(shè)置的影響,求得圓心的精度不高,在精確繪圖應(yīng)用場合有一定的局限性;再者由于命令運(yùn)行中需多次調(diào)用AutoCAD函數(shù),完成輔助線的繪制、隱藏和刪除,輔助線交點(diǎn)的查詢等操作,延長了命令的響應(yīng)速度.為了提高命令響應(yīng)速度和繪圖精度,本文改變編程思路,首先通過VBA編程語言建立輔助直線和輔助圓的數(shù)學(xué)表達(dá)式,將二者聯(lián)立,建立求取圓心數(shù)學(xué)計(jì)算模型,通過對數(shù)學(xué)模型的求解得到圓心,再調(diào)用AutoCAD基本畫圓函數(shù)繪圓.

從表1中可以看出,中間圓弧會給定水平或者垂直中一個方向的定位尺寸,以下分別進(jìn)行討論建立求取圓心的數(shù)學(xué)模型.

2.1 給定水平方向定位

圖2 給定水平方向定位尺寸

2.1.1 求輔助直線方程

得定位基準(zhǔn)直線方程為:

y=Ay

(1)

偏移后輔助直線方程為:

y=Ay+D

(2)

2.1.2 求輔助圓方程

輔助圓半徑設(shè)為R,其值與中間圓弧和已知圓弧的相切關(guān)系有關(guān).

內(nèi)切時:

R=Rc-Ro

(3)

外切時:

R=Rc+Ro

(4)

輔助圓的方程為:

(5)

2.1.3 建立圓心求解模型

(2)代入(5)得中間圓弧圓心方程:

(6)

2.1.4 求解圓心坐標(biāo)

由式(6)可得方程判別式為:

Δ=R2-(Ay+D-Oy)2

當(dāng)Δ<0時,方程無實(shí)數(shù)解,表明輸入條件有誤.

當(dāng)Δ≥0時,圓心1坐標(biāo)為:

圓心2坐標(biāo)為:

其中,在Δ=0圓心1、2為同一點(diǎn).

2.2 給定垂直方向定位

此情況下,中間圓弧圓心求取的數(shù)學(xué)模型建立與求解方法與水平方向類似,不再贅述,直接給出判別式和圓心坐標(biāo).

方程判別式為:

Δ=R2-(Ax+D+Ox)2

當(dāng)Δ<0時,方程無實(shí)數(shù)解,表明輸入條件有誤.

當(dāng)Δ≥0時,圓心1坐標(biāo)為:

圓心2坐標(biāo)為:

其中,在Δ=0圓心1、2為同一點(diǎn).

2.3 程序框圖[4,5]

該命令的編程順序是,給定已知圓弧、定位基準(zhǔn)線、偏距、中間弧半徑和相切類型,程序自動判斷水平或垂直情況,建立相應(yīng)數(shù)學(xué)模型,并求解圓心坐標(biāo),程序再調(diào)用AutoCAD中“circle”命令,以“圓心、半徑”方式,使用圓心坐標(biāo)1畫圓,并提示是否接受此圓,接受(Y)結(jié)束命令,否則使用圓心坐標(biāo)2畫圓,結(jié)束命令.程序框圖見圖3.

圖3 程序框圖

3 命令程序設(shè)計(jì)[6,7]

中間圓弧命令主要有三部分組成.其中第一部分是編制一個共用函數(shù)“qjd”,用于判斷相切關(guān)系和計(jì)算圓心坐標(biāo);第二部分是主程序,用于調(diào)用“qjd”函數(shù)和完成畫圓動作;第三部分是命令輸入窗體,用于接受條件輸入并傳遞給主程序.

3.1 創(chuàng)建共用函數(shù)“qjd”

//聲明兩個數(shù)組變量用于存儲連接圓圓心坐標(biāo).

Dimj_pt1(0To2)AsDouble

Dimj_pt2(0To2)AsDouble

//創(chuàng)建一個共用函數(shù)“qjd”.

PublicSubqjd(ByRefAAsDouble,ByRefBAsDouble,ByRefCAsDouble,ByRefcentre_xAsDouble,ByRefcentre_yAsDouble,ByRefrAsDouble)

DimdeltaAsDouble

DimA_fAsDouble

DimB_fAsDouble

DimC_fAsDouble

//判斷出水平方向定位,計(jì)算判別式Δ值及圓心坐標(biāo),并賦值給圓心坐標(biāo)數(shù)組.

IfA= 0AndB<> 0Then

delta=r^2 - (C/B+centre_y)^2

Ifdelta>= 0Then

j_pt1(0) =centre_x+Sqr(delta)

j_pt2(0) =centre_x-Sqr(delta)

j_pt1(1) = -C/B

j_pt2(1) = -C/B

j_pt1(2) = 0

j_pt2(2) = 0

EndIf

EndIf

//判斷出垂直方向定位,計(jì)算判別式Δ值及圓心坐標(biāo),并賦值給圓心坐標(biāo)數(shù)組.

IfA<> 0AndB= 0Then

delta=r^2 - (C/A+centre_x)^2

Ifdelta>= 0Then

j_pt1(0) = -C/A

j_pt2(0) = -C/A

j_pt1(1) =centre_y+Sqr(delta)

j_pt2(1) =centre_y-Sqr(delta)

j_pt1(2) = 0

j_pt2(2) = 0

EndIf

EndIf

EndSub

3.2 主程序

PublicSubzj_centre()

//調(diào)用函數(shù)“qjd”計(jì)算圓心坐標(biāo)

IfD= 0Then

Callqjd(A_1,B_1,C_1,X,Y,rx)

Else

C1 =C+D*Sqr(A_1^2 +B_1^2)

C2 =C-D*Sqr(A_1^2 +B_1^2)

Callqjd(A_1,B_1,C1,X,Y,rx)

Callqjd(A_1,B_1,C2,X,Y,rx)

//調(diào)用AutoCAD函數(shù)畫圓

SetCen1 =ThisDrawing.ModelSpace.AddCircle(j_pt1,r)

pd1 =ThisDrawing.Utility.GetString(0,vbCrLf& "[接受(Y)/不接受(N)] : ")

//判別坐標(biāo)1畫出的圓是否是需要的圓

Ifpd1 =NullThenpd1 = "Y"

Ifpd1 = "Y"Then

Else

Cen1.Delete

SetCen2 =ThisDrawing.ModelSpace.AddCircle(j_pt2,r)

EndIf

EndIf

3.3 命令窗體設(shè)計(jì)

中間圓繪制命令需要輸入的條件較多,參考AutoCAD其他命令使用習(xí)慣,為命令設(shè)計(jì)了對話框式窗體(圖4),在窗體中添加輸入條件含義提示圖,便于用戶掌握、使用.

圖4 創(chuàng)建中間圓弧窗體

4 繪圖實(shí)例

通過以下實(shí)例(圖5),對命令的正確性和可靠性進(jìn)行驗(yàn)證[8].在圖5中R15和R30兩個圓弧是中間聯(lián)接線段,繪制R15圓時,在圖4“創(chuàng)建中間圓”對話框中,輸入圓心偏距D為-12,中間圓半徑R為15,內(nèi)切,選擇相切圓為R86圓弧,選擇基準(zhǔn)線為水平點(diǎn)畫線,單擊“確定”按鈕,即可繪制出R15整圓,之后在繪制出與R15相切夾角為120°直線,再用“修剪”命令,去除多余圓弧,完成繪制.繪制R30圓弧時,D為-15,R為30,內(nèi)切,選擇相切圓為R99圓弧,其余操作與R15相似.中間圓繪制命令快速、準(zhǔn)確地繪制了圖5中R15和R30圓,驗(yàn)證了命令的性能.

圖5 繪圖實(shí)例

5 結(jié)束語

文章利用AutoCAD豐富的二次開發(fā)功能,選用VBA語言,開發(fā)了一條實(shí)用的繪制中間圓命令.該命令具有使用方便、繪圖效率高和界面簡潔的特點(diǎn),為廣大工程設(shè)計(jì)人員提供了繪制中間圓的便利方法,減少了繪圓操作,提高了繪圖效率.文章完整地給出了命令開發(fā)的思路、程序設(shè)計(jì)的框圖和主要程序,對AutoCAD二次開發(fā)者有一定的參考作用.

[1]翟震,張濤.AutoCAD的二次開發(fā)技術(shù)[J].鄭州工業(yè)大學(xué)學(xué)報(bào),1998,(1):76-80.

[2]武妍. 基于VBA的AutoCAD二次開發(fā)系統(tǒng)的研究與應(yīng)用[D].太原: 太原理工大學(xué)碩士學(xué)位論文,2008.

[3]劉祖萍. 基于VBA的AutoCAD圖形數(shù)據(jù)庫管理技術(shù)研究[D].成都:西南交通大學(xué)碩士學(xué)位論文,2004.

[4]黃巍,馬詠梅,謝梅英. 基于AutoCADVBA與VisualLisp的傳動零件設(shè)計(jì)[J]. 機(jī)械傳動,2008,(6):72-74,132.

[5]蘇艷萍,王鴻鈞. 基于VisualLisp機(jī)械零件圖形尺寸參數(shù)化標(biāo)注設(shè)計(jì)[J]. 機(jī)械傳動,2008,(4):107-109,120.

[6]陳冬青,袁曉梅.AutoCAD二次開發(fā)技術(shù)在帶傳動設(shè)計(jì)中的應(yīng)用[J].江蘇大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,(S1):41-44.

[7]魏瑞濤.用VisualBasic進(jìn)行AutoCAD二次開發(fā)方法介紹[J].制造業(yè)自動化,2011,(6):29-30.

[8]趙衛(wèi)東,柳先輝,衛(wèi)剛.CAD軟件二次開發(fā)平臺實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2003,(4):512-516.

(責(zé)任編校:晴川)

Development of AutoCAD Intermediate Circular Arc Command Based on VBA

BI Yadong

(Department of Mechanical Engineering, Anhui Vocational College of Defense Technology, Liu’an Anhui 237011, China)

The paper uses the strong secondary development function of AutoCAD software to study the common issue of drawing intermediate circular arc in engineering drawing, and deduces a mathematical model to solve the problem. It designs the process diagram using VBA programming language, and writes command procedures and user interface. Based on examples, it is indicated that the command is easy to use and could draw intermediate arc conveniently. Compared with the conventional method using auxiliary lines, drawing efficiency is greatly improved, the workload of drawing staff is reduced and their work efficiency is improved. The order also extends the function of AutoCAD drawing circles.

VBA; intermediate circular arc; secondary development

2015-08-03

安徽省2015年高校自然科學(xué)研究重點(diǎn)項(xiàng)目“顆粒流潤滑的多尺度動力學(xué)與承載機(jī)制的研究”(批準(zhǔn)號:KJ2015A342);安徽省2014年高等學(xué)校質(zhì)量工程項(xiàng)目“產(chǎn)教融合、校企合作數(shù)控技術(shù)專業(yè)人才培養(yǎng)模式創(chuàng)新與實(shí)踐”(批準(zhǔn)號:2014jyxm598).

畢亞東(1981— ),男,陜西寶雞人,安徽國防科技職業(yè)學(xué)院機(jī)械工程系講師,碩士.研究方向:機(jī)械設(shè)計(jì)及其理論.

TP311

A

1008-4681(2015)05-0036-04

猜你喜歡
二次開發(fā)
淺談基于Revit平臺的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉(zhuǎn)坐標(biāo)系二次開發(fā)
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
基于C#的AutoCAD建筑構(gòu)件庫二次開發(fā)
江西建材(2018年2期)2018-04-14 08:01:14
西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
基于全站儀二次開發(fā)的覆冰厚度測量與實(shí)現(xiàn)
電測與儀表(2016年9期)2016-04-12 00:29:52
Micaps3.2 版本二次開發(fā)入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
基于VB的ANSYS二次開發(fā)在變壓器抗短路性能分析中的應(yīng)用
基于CATIA的橡皮囊成形毛料展開的二次開發(fā)
ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應(yīng)用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 欧美精品亚洲二区| 波多野结衣一区二区三区88| 欧美在线精品怡红院| 国产成人综合亚洲网址| 婷婷亚洲最大| 97成人在线视频| 国产第二十一页| 国产日韩欧美成人| 国产成人高清精品免费软件| 亚洲欧美精品在线| 久久人搡人人玩人妻精品一| 国产亚洲精品va在线| 国产精品无码影视久久久久久久 | 成年人国产网站| 91人妻在线视频| 亚洲中文字幕在线观看| 在线国产你懂的| 国产精品私拍99pans大尺度| 国产精品污视频| 日本高清免费一本在线观看| 九九久久精品免费观看| 国产青榴视频| h视频在线播放| 亚洲香蕉久久| 日本少妇又色又爽又高潮| 国产高清无码第一十页在线观看| 色老头综合网| 18禁黄无遮挡免费动漫网站| 成人永久免费A∨一级在线播放| 99久久精品免费看国产免费软件 | 亚洲成a人在线观看| 香蕉国产精品视频| 91美女视频在线观看| 五月天综合网亚洲综合天堂网| 白浆视频在线观看| 午夜精品影院| 亚洲妓女综合网995久久| 久久男人资源站| 97视频精品全国免费观看| 久久99国产综合精品女同| 小13箩利洗澡无码视频免费网站| 亚洲国产中文精品va在线播放| 中文字幕2区| 婷婷五月在线| 色网站免费在线观看| 成年女人a毛片免费视频| 日本在线国产| 国产成人av一区二区三区| 色亚洲成人| 热re99久久精品国99热| 亚洲一区色| 黄色免费在线网址| 毛片在线看网站| 亚洲中文字幕久久无码精品A| 亚洲日韩高清无码| 国产成人精品高清在线| 99热6这里只有精品| 亚洲一级毛片在线播放| 最新日本中文字幕| 国产精品自在在线午夜区app| 午夜福利视频一区| 久操线在视频在线观看| 亚洲综合久久一本伊一区| a级毛片网| 18禁影院亚洲专区| 青青草久久伊人| 欧美色图久久| 国产男女XX00免费观看| 亚洲国产天堂在线观看| 制服无码网站| 一级一级一片免费| 国产99视频精品免费视频7| 五月婷婷欧美| 91一级片| 99在线视频精品| 亚洲人在线| 97成人在线观看| 尤物成AV人片在线观看| 中文字幕不卡免费高清视频| 丁香婷婷久久| 18禁色诱爆乳网站| 国产精品网址你懂的|