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

基于VBA的AutoCAD二次開發站場道岔繪制

2013-09-04 00:47:10黃冠濤吳德芳趙加奎
機械工程與自動化 2013年6期
關鍵詞:可視化定義

黃冠濤,吳德芳,趙加奎

(中鐵二院 昆明勘察設計研究院有限責任公司,云南 昆明 650200)

0 引言

在鐵路站場平面布置圖的繪制過程中,道岔繪制是一個重要的組成部分,所耗費的時間也多,因此提高道岔繪制速度可大大提高工作效率。在傳統的道岔繪制過程中,主要是采用查表法進行手工繪制。對于一般的道岔(如單開道岔),可以根據道岔表[1]的參數手動快速繪制出,對于復雜道岔(如岔后縮短曲線、切線不平行無緩和曲線的反向縮短曲線)也可以通過查表法進行手動繪制,但是存在著兩個缺陷:一是復雜道岔參數多,需要繪制輔助線;二是查表法存在局限性,如果表中沒有需要的數據只能根據公式進行手工計算,然后再根據輔助線進行繪制,這種繪制方法操作時間長,工作量大。針對這種情況,本文提出了在Auto-CAD的平臺上用VBA對其進行二次開發,對需要的數據進行參數化,自動繪制復雜道岔,并以岔后縮短曲線為例對本方法進行驗證。

1 道岔選擇

在實際鐵路站場平面布置圖中道岔的類型很多,諸如單開道岔、對稱道岔、交叉渡線等。對于這些簡單的道岔可以直接根據道岔的型號和類型在AutoCAD里面繪制,體現不出復雜道岔自動化繪制的優勢,因此,本文選擇稍微復雜的道岔——后縮短曲線作為案例對象。

2 VBA編程設計思路

為了在復雜道岔繪制過程中使用方便,本設計采用可視化參數繪圖的原則進行設計。可視化參數繪圖的設計流程如圖1所示。

3 可視化參數繪圖界面

為提高本設計方案的可操作性,根據道岔的特點以及所需的相關參數設計對應的可視化界面,如圖2所示。

圖1 可視化參數繪圖的設計流程

圖2 道岔繪制可視化界面圖

4 代碼實現

針對岔后縮短曲線的特點,首先對岔后縮短曲線進行抽象化處理,定義出各相關點,如圖3所示。

圖3中,a點為岔心,k點為岔后直線上任一點,其他點都是由輸入的參數根據《鐵路工程設計技術手冊-站場及樞紐》中的相關公式進行計算確定的。

圖3 岔后縮短曲線抽象示意圖

最后編制的相關代碼如下:

Sub繪制岔后縮短曲線_Click()

Dim pa(0To 2)As Double'道岔岔心

Dim pb(0To 2)As Double'切點一

Dim pc(0To 2)As Double'交點一

Dim pd(0To 2)As Double'切點二

Dim pe(0To 2)As Double'切點三

Dim pf(0To 2)As Double'交點二

Dim pg(0To 2)As Double'切點四

Dim ph(0To 2)As Double'圓心二

Dim pi(0To 2)As Double'圓心一

Dim pj(0To 2)As Double'直線點,與pf對應

Dim pk(0To 2)As Double'岔后直線任一點

Dim dch As Double'定義道岔號

Dim R1As Double'定義第一個圓半徑

Dim R2As Double'定義第二個圓半徑Dim jzx As Double'定義夾直線

Dim chzx As Double'定義岔后直線

Dim xjj As Double'定義線間距

Dim Angpapk As Double'定義ak線角度,即基礎線的旋轉角度

Dim dcj As Double'定義道岔角度

Dim ppi As Double'定義pi值

ppi= Atn(1)*4

If Txt1.Text=""Or Txt1.Text=""Or Txt2.Text=""Or Txt3.Text=""Or Txt4.Text=""Or Txt5.Text= ""Or Txt6.Text=""Then

MsgBox("請確認輸入數據!")'防止輸錯數據

End

Else

dch= Txt1.Text

R1= Txt2.Text

R2= Txt3.Text

jzx= Txt4.Text

chzx= Txt5.Text

xjj= Txt6.Text

Me.Hide

End If

Dim cc As Variant

cc= ThisDrawing.Utility.GetPoint(,vbCrLf & "選擇岔心:")'選擇相對初始點

pa(0)=cc(0)

pa(1)=cc(1)

pa(2)=cc(2)

cc= ThisDrawing.Utility.GetPoint(,vbCrLf & "選擇岔后直線上任一點:")'選擇相對終點

pk(0)=cc(0)

pk(1)=cc(1)

pk(2)=cc(2)

Angpapk= ThisDrawing.Utility.AngleFromXAxis(pa,pk)'計算出ak線與X軸的夾角

pa(2)=0'定義a點的Z坐標為0

pk(2)=0'定義k點的Z坐標為0

'Call ThisDrawing.ModelSpace.AddLine(pa,pk)'繪制ak直線

If dch= 6Then

dcj=9.4622222222*ppi/180

ElseIf dch = 7Then

dcj=8.13*ppi/180

ElseIf dch = 9Then

dcj=6.3402777778*ppi/180

ElseIf dch = 12Then

dcj=4.7636111111*ppi/180

ElseIf dch = 18Then

dcj=3.1797222222*ppi/180

Else

MsgBox("道岔角度輸入有誤,請重新輸入!")

End

End If

'計算相關參數-EXCLE

Dim beta,T1,T2,fi,x1,y1,x2,y2,L,temp As Double

beta= Atn(jzx/(R1+ R2))

temp= (R1*Cos(dcj)+chzx*Sin(dcj)+ R2-xjj)* Cos(beta)/(R1+ R2)

fi= Atn(-temp/Sqr(-temp*temp+1))+2* Atn(1)-beta-dcj'計算fi角

T1= R1* (Sin(fi/2)/Cos(fi/2))

T2= R2* (Sin((fi+dcj)/2)/Cos((fi+dcj)/2))

x1= (chzx+ T1)* Cos(dcj)

y1= (chzx+ T1)*Sin(dcj)

x2=x1+ (T1+T2+jzx)*Cos(dcj+fi)

y2=xjj-y1

L=x2+T2

Dim tmp As Variant

Angpapk= ThisDrawing.Utility.AngleFromXAxis(pa,pk)

'求b點坐標

tmp= ThisDrawing.Utility.PolarPoint(pa,dcj+ Angpapk,chzx)

pb(0)=tmp(0)

pb(1)=tmp(1)

pb(2)=0

'求c點坐標

tmp= ThisDrawing.Utility.PolarPoint(pa,dcj+ Angpapk,chzx+T1)

pc(0)=tmp(0)

pc(1)=tmp(1)

pc(2)=0

'求g點坐標

Dim aa As Double

aa=L/Sqr(L*L+xjj*xjj)

pg(0)=pa(0)+Sqr(L* L+xjj*xjj)* Cos(Angpapk+Atn(-aa/Sqr(-aa*aa+1))+2* Atn(1))

pg(1)=pa(1)+ Sqr(L* L+xjj*xjj)* Sin(Angpapk+Atn(-aa/Sqr(-aa*aa+1))+2* Atn(1))

pg(2)=0

'求f點坐標

tmp= ThisDrawing.Utility.PolarPoint(pg,ppi+ Angpapk,T2)

pf(0)=tmp(0)

pf(1)=tmp(1)

pf(2)=0

'求j點坐標

tmp= ThisDrawing.Utility.PolarPoint(pf,Angpapk,100)

pj(0)=tmp(0)

pj(1)=tmp(1)

pj(2)=0

'求i點坐標

tmp= ThisDrawing.Utility.PolarPoint(pb,ppi/2 + dcj+Angpapk,R1)

pi(0)=tmp(0)

pi(1)=tmp(1)

pi(2)=0

'計算ac與cf線的夾角

Dim Angpcpa,Angpcpf,Angpipb,AngJJ1,Angpipd As Double

'pc到pa的角度

Angpcpa= ThisDrawing.Utility.AngleFromXAxis(pc,pa)

'pc到pf的角度

Angpcpf= ThisDrawing.Utility.AngleFromXAxis(pc,pf)

'求d點坐標

tmp= ThisDrawing.Utility.PolarPoint(pc,Angpcpf,T1)

pd(0)=tmp(0)

pd(1)=tmp(1)

pd(2)=tmp(2)

'pi到pb的角度

Angpipb= ThisDrawing.Utility.AngleFromXAxis(pi,pb)

'算出PaPcPf的角度

AngJJ1=ppi*2-Angpcpa+Angpcpf

'繪制直線ab及圓弧bd

Angpipd= ThisDrawing.Utility.AngleFromXAxis(pi,pd)

Call ThisDrawing.ModelSpace.AddLine(pa,pb)

Call ThisDrawing.ModelSpace.AddArc(pi, R1, Angpipb,Angpipd)

'求e點坐標

tmp= ThisDrawing.Utility.PolarPoint(pd,Angpcpf,jzx)

pe(0)=tmp(0)

pe(1)=tmp(1)

pe(2)=tmp(2)

'計算ef與fg之間的角度

Dim Angpfpe,Angpfpg,Angphpe,Angphpg,AngJJ2As Double

'pf到pe的角度

Angpfpe= ThisDrawing.Utility.AngleFromXAxis(pf,pe)'pc到pf的角度

Angpfpg= ThisDrawing.Utility.AngleFromXAxis(pf,pg)

'算出PePfPg的角度

AngJJ2=ppi*2-Angpfpe+Angpfpg

'計算h點坐標

tmp=ThisDrawing.Utility.PolarPoint(pe,2.5* ppi-AngJJ2+Angpapk,R2)

ph(0)=tmp(0)

ph(1)=tmp(1)

ph(2)=tmp(2)

'計算hg與he的角度

'ph到pe的角度

Angphpe= ThisDrawing.Utility.AngleFromXAxis(ph,pe)

'pc到pf的角度

Angphpg= ThisDrawing.Utility.AngleFromXAxis(ph,pg)

'繪制直線de和圓弧eg及gj

Call ThisDrawing.ModelSpace.AddLine(pd,pe)

Call ThisDrawing.ModelSpace.AddArc(ph,R2,Angphpg,Angphpe)

Call ThisDrawing.ModelSpace.AddLine(pg,pj)

End Sub

5 結果驗證

筆者從《鐵路工程設計技術手冊-站場及樞紐》一書中的岔后縮短曲線數據表中挑選了有代表性的10個曲線案例與利用VBA編程自動繪制的岔后縮短曲線進行對比,結果發現,二者完全吻合。由此證明本方法完全可以滿足岔后縮短曲線的繪制,并且還不受書中數據表有限的限制。

[1] 鐵道第四勘察設計院.鐵路工程設計技術手冊——站場及樞紐[M].北京:中國鐵道出版社,2009.

[2] 張國寶.AutoCAD2000VBA開發技術[M].北京:清華大學出版社,2000.

[3] 王若慧.基于VBA的AutoCAD二次開發及應用實例[J].自動化技術與應用,2007,26(9):30-33.

猜你喜歡
可視化定義
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風格”
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 亚洲精选高清无码| 国产精品久久久久久久久| 九九久久99精品| 亚洲人成网站在线播放2019| 亚洲精品不卡午夜精品| 欧美性久久久久| 夜夜高潮夜夜爽国产伦精品| 亚洲另类国产欧美一区二区| jijzzizz老师出水喷水喷出| 亚洲色图欧美视频| 欧美日韩资源| 国产亚洲男人的天堂在线观看| 国产福利在线观看精品| 黄色片中文字幕| 久久久精品国产SM调教网站| 国产免费观看av大片的网站| 久久这里只有精品66| 99精品影院| 91免费国产高清观看| 人妻无码一区二区视频| 2021国产在线视频| 色哟哟国产精品一区二区| 亚洲国模精品一区| 国产精品九九视频| 在线视频97| 亚洲综合片| 一级爆乳无码av| 日本国产在线| 欧美色综合久久| 久久香蕉国产线| 国产女主播一区| 国产在线自揄拍揄视频网站| 成人看片欧美一区二区| 国产精品视频白浆免费视频| 区国产精品搜索视频| 国产噜噜噜视频在线观看| 最新国产麻豆aⅴ精品无| 日韩A∨精品日韩精品无码| 美女无遮挡免费视频网站| 久久综合激情网| 特级毛片8级毛片免费观看| 免费一级毛片不卡在线播放 | 欧洲精品视频在线观看| 中文无码日韩精品| 亚洲无码电影| 国产精彩视频在线观看| 国产成人综合在线观看| 成人国产免费| 情侣午夜国产在线一区无码| 久久久久国产精品嫩草影院| 国产亚洲精品自在久久不卡 | 亚洲国产成人精品一二区| 理论片一区| 婷婷六月天激情| 色吊丝av中文字幕| 久久黄色毛片| 一级毛片网| 91po国产在线精品免费观看| 19国产精品麻豆免费观看| 国产女人爽到高潮的免费视频| 任我操在线视频| 91精品国产麻豆国产自产在线| 国产三区二区| 久久亚洲天堂| 老色鬼久久亚洲AV综合| 好吊色妇女免费视频免费| 三级欧美在线| 国产欧美日韩va另类在线播放| 亚洲人成网址| 澳门av无码| 日韩国产另类| 极品国产在线| 欧洲一区二区三区无码| 福利在线一区| 极品国产在线| 亚洲视频四区| 国产成人福利在线视老湿机| 中国一级毛片免费观看| 国产又大又粗又猛又爽的视频| 波多野结衣一区二区三区四区视频| 国产青青草视频| 久久人人97超碰人人澡爱香蕉 |