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

基于VBA的AutoCAD中間圓弧命令開發

2015-05-05 08:33:02畢亞東
長沙大學學報 2015年5期
關鍵詞:二次開發

畢亞東

(安徽國防科技職業學院機械工程系,安徽 六安 237011)

基于VBA的AutoCAD中間圓弧命令開發

畢亞東

(安徽國防科技職業學院機械工程系,安徽 六安 237011)

利用AutoCAD軟件強大的二次開發功能,對在工程制圖中常見的中間圓弧繪制問題進行研究,推導出解決繪制該圓問題的數學模型.并設計了程序框圖,使用VBA編程語言,編寫出命令程序和用戶界面.通過實例驗證,得出該命令使用方便,并能快捷地繪制中間圓弧.與常規輔助線繪制方法相比,繪圖效率大大提高,減輕繪圖人員的工作負擔,提高了工作效率.該命令也擴充了AutoCAD繪圓功能.

VBA;中間圓弧;二次開發

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

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

AutoCAD 作為開放性制圖軟件,為用戶提供了良好的二次開發環境,可以用 Visual Lisp、ActiveX 和VBA、 ObjectARX 等工具進行二次開發.VBA 采用先進的面向對象的編程原理,使用戶能開發出高效、簡潔的AutoCAD 應用程序[1-3].

1 問題提出

根據機械制圖技術標準,按照已知定形、定位尺寸的數目將平面圖形的線段分為三類,見表1.

表1 圓弧分類

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

圖1 AutoCAD中的繪圓命令

2 關鍵問題研究

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

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

2.1 給定水平方向定位

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

2.1.1 求輔助直線方程

得定位基準直線方程為:

y=Ay

(1)

偏移后輔助直線方程為:

y=Ay+D

(2)

2.1.2 求輔助圓方程

輔助圓半徑設為R,其值與中間圓弧和已知圓弧的相切關系有關.

內切時:

R=Rc-Ro

(3)

外切時:

R=Rc+Ro

(4)

輔助圓的方程為:

(5)

2.1.3 建立圓心求解模型

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

(6)

2.1.4 求解圓心坐標

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

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

當Δ<0時,方程無實數解,表明輸入條件有誤.

當Δ≥0時,圓心1坐標為:

圓心2坐標為:

其中,在Δ=0圓心1、2為同一點.

2.2 給定垂直方向定位

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

方程判別式為:

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

當Δ<0時,方程無實數解,表明輸入條件有誤.

當Δ≥0時,圓心1坐標為:

圓心2坐標為:

其中,在Δ=0圓心1、2為同一點.

2.3 程序框圖[4,5]

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

圖3 程序框圖

3 命令程序設計[6,7]

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

3.1 創建共用函數“qjd”

//聲明兩個數組變量用于存儲連接圓圓心坐標.

Dimj_pt1(0To2)AsDouble

Dimj_pt2(0To2)AsDouble

//創建一個共用函數“qjd”.

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

DimdeltaAsDouble

DimA_fAsDouble

DimB_fAsDouble

DimC_fAsDouble

//判斷出水平方向定位,計算判別式Δ值及圓心坐標,并賦值給圓心坐標數組.

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

//判斷出垂直方向定位,計算判別式Δ值及圓心坐標,并賦值給圓心坐標數組.

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()

//調用函數“qjd”計算圓心坐標

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)

//調用AutoCAD函數畫圓

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

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

//判別坐標1畫出的圓是否是需要的圓

Ifpd1 =NullThenpd1 = "Y"

Ifpd1 = "Y"Then

Else

Cen1.Delete

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

EndIf

EndIf

3.3 命令窗體設計

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

圖4 創建中間圓弧窗體

4 繪圖實例

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

圖5 繪圖實例

5 結束語

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

[1]翟震,張濤.AutoCAD的二次開發技術[J].鄭州工業大學學報,1998,(1):76-80.

[2]武妍. 基于VBA的AutoCAD二次開發系統的研究與應用[D].太原: 太原理工大學碩士學位論文,2008.

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

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

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

[6]陳冬青,袁曉梅.AutoCAD二次開發技術在帶傳動設計中的應用[J].江蘇大學學報(自然科學版),2006,(S1):41-44.

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

[8]趙衛東,柳先輝,衛剛.CAD軟件二次開發平臺實現技術[J].計算機輔助設計與圖形學學報,2003,(4):512-516.

(責任編校:晴川)

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年高校自然科學研究重點項目“顆粒流潤滑的多尺度動力學與承載機制的研究”(批準號:KJ2015A342);安徽省2014年高等學校質量工程項目“產教融合、校企合作數控技術專業人才培養模式創新與實踐”(批準號:2014jyxm598).

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

TP311

A

1008-4681(2015)05-0036-04

猜你喜歡
二次開發
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
基于C#的AutoCAD建筑構件庫二次開發
江西建材(2018年2期)2018-04-14 08:01:14
西門子Easy Screen對倒棱機床界面二次開發
基于全站儀二次開發的覆冰厚度測量與實現
電測與儀表(2016年9期)2016-04-12 00:29:52
Micaps3.2 版本二次開發入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
基于VB的ANSYS二次開發在變壓器抗短路性能分析中的應用
基于CATIA的橡皮囊成形毛料展開的二次開發
機械工程師(2015年9期)2015-02-26 08:38:10
ANSYS Workbench二次開發在汽車穩定桿CAE分析中的應用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 婷婷亚洲最大| 国内自拍久第一页| 国产日韩欧美成人| 精品国产一区二区三区在线观看| 国产不卡一级毛片视频| 亚洲婷婷丁香| 国产特级毛片| 欧美无遮挡国产欧美另类| 日韩在线2020专区| 日韩大片免费观看视频播放| 在线另类稀缺国产呦| 伊人久久精品无码麻豆精品| 亚洲人成网站18禁动漫无码| 国产精品无码一二三视频| 一本二本三本不卡无码| 不卡的在线视频免费观看| 国产日本视频91| 日韩美毛片| 亚洲一区二区视频在线观看| 在线亚洲小视频| 午夜成人在线视频| 精品欧美一区二区三区久久久| 影音先锋丝袜制服| 黄网站欧美内射| 久久综合久久鬼| 亚洲日韩精品无码专区| 欧美影院久久| 国产精品黄色片| 丁香亚洲综合五月天婷婷| 四虎成人在线视频| 精品夜恋影院亚洲欧洲| 国产精品亚洲一区二区三区在线观看| 91小视频在线观看| 日本不卡在线| 国产手机在线ΑⅤ片无码观看| 久久亚洲天堂| 992Tv视频国产精品| 亚洲天堂777| 午夜啪啪福利| 草逼视频国产| 色噜噜综合网| 久久青草视频| 国产专区综合另类日韩一区 | 四虎国产在线观看| 91精品国产一区| 亚洲无码视频喷水| 手机精品视频在线观看免费| 国产精品无码一区二区桃花视频| 少妇精品在线| 国产xx在线观看| 亚洲成人一区在线| 国产91全国探花系列在线播放| 国产精品亚洲va在线观看| 欧美精品不卡| 国产欧美成人不卡视频| 久久人妻xunleige无码| 欧美不卡视频在线| 色九九视频| 亚洲高清在线天堂精品| 国产精品无码翘臀在线看纯欲| 男女性色大片免费网站| 激情视频综合网| 最新国语自产精品视频在| 有专无码视频| 一级一毛片a级毛片| 久久国产精品夜色| 亚洲国产第一区二区香蕉| 亚洲品质国产精品无码| 高潮爽到爆的喷水女主播视频| 色偷偷综合网| 国产在线拍偷自揄拍精品| 亚洲Av激情网五月天| 亚洲 欧美 偷自乱 图片| 亚洲男人的天堂在线| 国产老女人精品免费视频| 免费在线视频a| 91在线激情在线观看| 人人91人人澡人人妻人人爽| 看国产一级毛片| 亚洲成年网站在线观看| 国产精品丝袜视频| 国产精品偷伦视频免费观看国产 |