濟(jì)業(yè)2014-46 既有鐵路平面曲線擬合軟件_第1頁
濟(jì)業(yè)2014-46 既有鐵路平面曲線擬合軟件_第2頁
濟(jì)業(yè)2014-46 既有鐵路平面曲線擬合軟件_第3頁
濟(jì)業(yè)2014-46 既有鐵路平面曲線擬合軟件_第4頁
濟(jì)業(yè)2014-46 既有鐵路平面曲線擬合軟件_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、既有鐵路平面曲線擬合軟件2.3介紹及使用說明既有鐵路平面曲線擬合軟件說明報(bào)告編制: 陳禮坤審核: 賈克永審定: 趙振剛共 25 頁中鐵工程設(shè)計(jì)咨詢集團(tuán)有限公司濟(jì)南設(shè)計(jì)院2015年01月 濟(jì)南1. 軟件開發(fā)背景既有鐵路經(jīng)過長期運(yùn)營后會(huì)發(fā)生不規(guī)則變形,影響行車速度和行車安全,為進(jìn)行曲線整正,需要根據(jù)以各測點(diǎn)的撥距值的平方和最小或絕對值之和最小作為設(shè)計(jì)條件,擬合出最佳的平面曲線,計(jì)算出各個(gè)點(diǎn)的撥距量?,F(xiàn)階段采用的有偏角法和坐標(biāo)法,其中偏角法源于漸伸線法計(jì)算原理,是以弦長代替弧長,具有一定的近似性誤差且沒有理論嚴(yán)密的計(jì)算公式,使得誤差具有隱蔽性。并且偏角法在實(shí)施過程中,必須將儀器架設(shè)在既有線上,隨著火

2、車運(yùn)行速度和運(yùn)行密度的提高,現(xiàn)場的作業(yè)條件已經(jīng)很難滿足這樣的測量要求,這樣就造成外業(yè)測量工作的難以實(shí)施和效率的低下。相對于傳統(tǒng)的漸伸線法,坐標(biāo)法具有理論嚴(yán)密、測量計(jì)算成果精度高等優(yōu)點(diǎn),既有的相關(guān)算法對于數(shù)據(jù)點(diǎn)的間距以及數(shù)據(jù)采集格式有較高的要求,部分軟件沒有曲線自動(dòng)擬合功能。并且在對緩和曲線以及半徑進(jìn)行自動(dòng)最佳匹配時(shí),存在對半徑和緩和曲線長初始值依賴性較高、收斂速度慢、適用范圍窄的特點(diǎn),現(xiàn)實(shí)中,也沒有合適的免費(fèi)軟件可供使用,通過了解濟(jì)南鐵路局既有線測量隊(duì)以及其他設(shè)計(jì)院在曲線撥距整正方面使用的軟件和測量作業(yè)模式,可以考慮編寫具有自主知識產(chǎn)權(quán)的平面曲線擬合軟件,以適應(yīng)測量形勢的發(fā)展。這里有兩張撥距施

3、工現(xiàn)場的圖片,可以看出撥距施工的難度,那么怎樣才能更好的擬合出最佳的平面曲線,獲得各個(gè)點(diǎn)的最小撥距值,減少實(shí)際施工工作量,就顯得尤為重要了。2. 軟件主要功能2.1、軟件可以根據(jù)既有鐵路曲線上測量的點(diǎn)坐標(biāo)(包含緩和曲線、圓曲線和曲線兩端直線點(diǎn)坐標(biāo)),通過自動(dòng)模式或者手動(dòng)模式,擬合出最佳平面曲線,得到每個(gè)點(diǎn)對應(yīng)曲線上點(diǎn)的坐標(biāo)、里程、撥距量,并給出撥距量是否合格的評判結(jié)果。既有線測量的位置可以自由選擇(內(nèi)、外軌以及線路中心)。2.2、可以生成CSV格式的既有曲線撥距成果表,畫出DXF格式的曲線線位文件、以及曲線信息數(shù)據(jù)(線路HRCAD設(shè)計(jì)軟件支持的dat格式)。2.3、支持緩和曲線長為0的曲線以及

4、緩和曲線不等長的曲線計(jì)算。2.4、如果導(dǎo)入的數(shù)據(jù)格式不正確或者沒有正確選取直線邊以及起始里程點(diǎn),程序會(huì)給出錯(cuò)誤提示。在軟件自動(dòng)模式參數(shù)設(shè)置里面,可以固定緩和曲線長,程序自動(dòng)匹配最佳半徑,也可以固定半徑,程序自動(dòng)匹配最佳緩長。2.5、支持設(shè)定單個(gè)點(diǎn)以及多個(gè)點(diǎn)的撥距限差值,程序在計(jì)算過程中,將按照設(shè)置的限差值進(jìn)行曲線自動(dòng)擬合以及質(zhì)量結(jié)果評判,擬合出滿足要求的曲線數(shù)據(jù)。3. 軟件界面及操作按鈕說明3.1 軟件界面如下:左側(cè)主要是參數(shù)設(shè)置區(qū)域,右側(cè)表格區(qū)域是顯示計(jì)算出的相關(guān)點(diǎn)的坐標(biāo)、里程數(shù)據(jù)以及曲線的各個(gè)曲線要素,允許顯示120行數(shù)據(jù)?,F(xiàn)在先從左側(cè)參數(shù)設(shè)置區(qū)域開始介紹。3.2 在左上角的參數(shù)設(shè)置程序框

5、內(nèi),有四個(gè)彈出按鈕,點(diǎn)擊,彈出如下對話框:項(xiàng)目相關(guān)信息將在曲線撥距成果表中顯示。點(diǎn)擊,彈出如下對話框:可以選擇是50軌還是60軌,其中50軌的單軌頂面寬70mm ,60軌的單軌頂面寬73mm,43軌和50軌的單軌頂面寬式一樣的。點(diǎn)擊,彈出如下對話框: 可以選擇你所測量的位置是內(nèi)、外軌中心還是線路中心。點(diǎn)擊按鈕,點(diǎn)開后如下彈出如下對話框:可以在對話框里面根據(jù)點(diǎn)名指定兩端固定的直線邊和確定起始里程,也可以在導(dǎo)入的數(shù)據(jù)文件中,采用標(biāo)識符來進(jìn)行直線邊固定和確定起始里程。如果同時(shí)進(jìn)行了兩種直線邊設(shè)置方法,程序會(huì)優(yōu)先以對話框的設(shè)置為準(zhǔn)。在待導(dǎo)入的測量數(shù)據(jù)文件中,第一條直線邊兩個(gè)點(diǎn)在第四列以ZG1和ZG2表

6、示,第二條直線邊兩個(gè)點(diǎn)在第四列以ZG3和ZG4表示,里程在對應(yīng)里程點(diǎn)的第四列以ZL加里程表示。具體格式見下表,如果起始里程點(diǎn)和ZG1是同一個(gè)點(diǎn),那么將第一行的ZL179780改為“ZG1ZL179780”就可以了。120803.0819567.712ZL179780220788.86119581.809179800320774.64619595.823179820420760.49719609.868179840520746.19219623.932ZG1620732.02519637.946ZG2720717.7119652.04179900820703.52219666.099-100Z0

7、50920689.25919680.1541799405819802.07820006.245ZG35919782.12720005.5611809406319702.17820002.6341810206419682.24820001.9411810406519662.28620001.239ZG4 在上面的文件中的中,如果需要設(shè)定單個(gè)或者多個(gè)點(diǎn)的撥距限差值,例如:如果想讓自動(dòng)擬合出來的最佳曲線,在某個(gè)點(diǎn)的右撥距量不超過50mm。那么將第四列的點(diǎn)值設(shè)置成-100Z050;“Z”前面的-100為默認(rèn)的左側(cè)撥距限差值為100mm,Z后面的“050” 意思是自設(shè)的右側(cè)撥距限差值為50mm。3.3在

8、模式選擇程序框里,可單選計(jì)算模式,有手動(dòng)模式和自動(dòng)模式兩種方式,其中默認(rèn)是自動(dòng)模式。若要切換成手動(dòng)模式,請點(diǎn)擊前面的。3.4 在自動(dòng)模式程序框里面,第一個(gè)按鈕,計(jì)算曲線的大偏角以及半徑初始值,在沒有臺賬,或者不知道此條曲線初始半徑的情況下,可以點(diǎn)此按鈕,計(jì)算曲線的初始半徑以及曲線大偏角,根據(jù)初始半徑值來設(shè)置“半徑搜索范圍”。需要按照中鐵咨詢新規(guī)則中的第二篇(測繪)中的P81頁的取值要求來設(shè)置“半徑搜索步長”。這樣既可以滿足半徑取整要求,擬合出更合適的平面曲線,同時(shí)減少計(jì)算時(shí)間。在計(jì)算大半徑曲線(半徑>=10000m)以及小半徑曲線(半徑<=300m)曲線最好先進(jìn)行此項(xiàng)計(jì)算。第二個(gè)按

9、鈕,點(diǎn)開后彈出如下參數(shù)設(shè)置對話框:一般設(shè)置里面是的半徑搜索步長是每次半徑的更新值,緩長搜索范圍最大支持500m??梢栽诟呒壴O(shè)置中,固定半徑,進(jìn)行緩長擬合,也可以固定緩長進(jìn)行半徑擬合,對話框中的編輯框的數(shù)據(jù)均是默認(rèn)的設(shè)置,一般情況下,默認(rèn)的設(shè)置就可以滿足我們的計(jì)算需要了。3.5 在表格的右下方是操作按鈕,主要用于數(shù)據(jù)的導(dǎo)入、導(dǎo)出和計(jì)算處理的。其中:點(diǎn)此按鈕,軟件讀入數(shù)據(jù)文件,文件格式如下:11580.7051999.609zl45036021600.6681999.027zg131620.6411998.41345040041640.6641997.82245042051660.6021997.

10、213zg261670.6371996.9445045071680.5761996.61645046081700.581996.03345048091720.5731995.423450500101740.571994.846 450520402350.4612083.034zg3412369.6742088.654451160422408.0152099.881451200432455.9722113.933zg4616219722.1620003.361810006319702.17820002.6341810206419682.24820001.9411810406519662.2862

11、0001.239ZG4 數(shù)據(jù)文件共有四列,分別對應(yīng)著“點(diǎn)名,北坐標(biāo),東坐標(biāo),備注”。第一列和第四列支持任意字符,曲線上的坐標(biāo)數(shù)據(jù)宜采用全站儀導(dǎo)線法測量獲取。數(shù)據(jù)總數(shù)應(yīng)不少于13行。其中圓曲線上至少3個(gè)點(diǎn),如果曲線較短,應(yīng)該多測幾個(gè)點(diǎn)。 第一行和第二行以及最后兩行的直線點(diǎn)是曲線兩切線上的A、B、C、D點(diǎn):示意圖如下: A、B、C、D四個(gè)點(diǎn)必須分別選在曲線兩端的直線上。AB、CD的長度以100200米為宜,靠近曲線的B、C兩點(diǎn)必須設(shè)在曲線起、終點(diǎn)外方約4080米的直線上,如果夾直線很短(技規(guī)中規(guī)定不小于20米,但實(shí)際上有的曲線不能達(dá)到這個(gè)規(guī)定)直線不明顯示,應(yīng)在現(xiàn)場仔細(xì)判定,必要時(shí)可多測量幾個(gè)點(diǎn)。

12、 文件后綴名為“XY”。文件支持“,”以及空格、制表符隔開的數(shù)據(jù),每行之間允許有空行。:點(diǎn)此按鈕,軟件根據(jù)導(dǎo)入的數(shù)據(jù),計(jì)算出曲線要素以及每個(gè)點(diǎn)對應(yīng)的曲線上點(diǎn)的坐標(biāo)、里程、撥距量等撥距計(jì)算成果。并在右側(cè)顯示出來,具體結(jié)果見下表,其中:第一列“點(diǎn)名”是導(dǎo)入的原始數(shù)據(jù)的點(diǎn)名;第二列“里程”是計(jì)算后測量點(diǎn)投影到擬合曲線上對應(yīng)點(diǎn)的里程;第三列“北坐標(biāo)(X)”和第四列“東坐標(biāo)(Y)”是計(jì)算后測量點(diǎn)投影到擬合曲線上在曲線上的坐標(biāo)值。第五列“內(nèi)撥(mm)”和第六列 “外撥(mm)”表示的測量點(diǎn)到擬合曲線的距離,點(diǎn)在曲線外側(cè),需要往線路內(nèi)側(cè)移動(dòng),就是內(nèi)撥,反之,就是外撥,第七列“是否超限(mm)”是撥距量是否合

13、格的評判標(biāo)準(zhǔn),如果不合格,就會(huì)給出提示。第八列“曲線要素”是給出了擬合曲線的曲線成果表:其中第二行“Aa”表示曲線大偏角,左偏為負(fù),右偏為正, 第三行“R”表示半徑,第四行 “L1”、“ L2”分別代表第一緩長和第二緩長,第五行 “T1”和“T2”分別代表第一和第二切線長。第六行“l(fā)”表示曲線全長,第七到第十行“ZHLC”、“HYLC”、“YHLC”、“HZLC”分別代表直緩里程、緩圓里程、圓緩里程、緩直里程。第十一行“BoJu” 表示所有點(diǎn)的撥距值總和,第十三和第十四行數(shù)據(jù)時(shí)項(xiàng)目信息,其中“CurNO” “Pro” “Actor” “Check”分別表示曲線編號、項(xiàng)目名稱、計(jì)算者、復(fù)核者,并

14、且一次設(shè)定,不論計(jì)算多少個(gè)曲線,只要不關(guān)閉軟件,就一直是你設(shè)定的信息,保持項(xiàng)目設(shè)置信息的一致性。:點(diǎn)此按鈕,將撥距成果保存成CSV數(shù)據(jù)格式文件,表格的數(shù)據(jù)內(nèi)容和前面表格顯示的結(jié)果一致,做到所見即所得,下面是保存計(jì)算結(jié)果后,直接打開的文件。:點(diǎn)此按鈕,將擬合出來的最佳曲線保存成DXF數(shù)據(jù)格式文件,這種Autodesk公司的繪圖交換文件可在AutoCAD里面直接打開,打開后的數(shù)據(jù)結(jié)果如下所示:點(diǎn)此按鈕,保存成HRCAD線路設(shè)計(jì)軟件所支持的.dat數(shù)據(jù)格式文件,提供此數(shù)據(jù)接口,方便與線路設(shè)計(jì)部門的數(shù)據(jù)交換。數(shù)據(jù)格式如下::退出當(dāng)前程序,和右上角的的功能一致,執(zhí)行退出操作。4. 軟件核心算法4.1在程

15、序設(shè)計(jì)過程中,關(guān)鍵是如何自動(dòng)進(jìn)行最佳曲線的擬合,為此采用改進(jìn)的遺傳算法,在自動(dòng)匹配緩和曲線和半徑的過程中,根據(jù)不同的計(jì)算階段采用不同的適應(yīng)度函數(shù),兼顧計(jì)算效率和計(jì)算精度。主要分為下面?zhèn)z個(gè)步驟:步驟一:采用最小二乘法以曲線中部一定范圍的數(shù)據(jù)來初始化既有線路的半徑R,對緩長L不進(jìn)行初始化,下一步中將進(jìn)行全面匹配(0m-500m),對觀測精度較低或者實(shí)際線路變形較大的時(shí)候,現(xiàn)有的一些算法將在初始化緩長時(shí)會(huì)與實(shí)際緩長產(chǎn)生較大誤差,在我的算法中對緩長不進(jìn)行初始化,雖然增大了初始群體的數(shù)量,但避免對緩長的優(yōu)化陷入局部最優(yōu)的情況。提高了算法的適應(yīng)性。同時(shí)根據(jù)半徑R和搜索步長RB確定初始群體P(0)的個(gè)數(shù)M。

16、步驟二:利用GA算法來更新半徑和緩和曲線長,其中半徑的搜索步長既可以采取默認(rèn),也可以根據(jù)實(shí)際工作要求,通過提供的外部數(shù)據(jù)交換接口(編輯框)進(jìn)行自定義,支持(0m-1000m)任意數(shù)據(jù),在進(jìn)行最佳的(R, L)匹配時(shí),通過兩代進(jìn)化計(jì)算,以各測點(diǎn)的撥距值i 的平方和最小或絕對值之和最小作為目標(biāo)函數(shù),自動(dòng)擬合出最佳的平面曲線,其中在每代的迭代計(jì)算中,采取不同的目標(biāo)函數(shù)和計(jì)算方向,通過選擇和變異算子,快速篩選出部分符合條件的設(shè)計(jì)曲線,在得到的下一代數(shù)據(jù)中,再根據(jù)精確算法,計(jì)算出每一點(diǎn)的撥距量,篩選出最佳半徑和緩和曲線長的設(shè)計(jì)曲線。既兼顧效率和精度,同時(shí)由于在計(jì)算過程中,采用了逐點(diǎn)計(jì)算。還能滿足單個(gè)控制

17、點(diǎn)對撥距量的特殊要求。4.2 主要算法框圖如下所示:確定半徑的搜步長和撥距限差并編碼實(shí)現(xiàn)以半徑R和緩長L組合的個(gè)體來構(gòu)造初始化群體以5000-為適應(yīng)度函數(shù)計(jì)算種群的適應(yīng)度并尋找出群體中的最優(yōu)值,即尋找出種群中滿足適應(yīng)度函數(shù)的最佳R和 L。是否獲得滿足適應(yīng)度函數(shù)值最大的(R L)重新選擇部分半徑和緩長組合成的群體得到新種群并且采取精確的算法來計(jì)算每點(diǎn)撥距值NOYES結(jié)束5、編程實(shí)現(xiàn)5.1在撥距成果計(jì)算過程中,主要新增FReadCouSave類和LineCal類,其中FReadCouSave類負(fù)責(zé)數(shù)據(jù)的讀入,LineCal類主要實(shí)現(xiàn)數(shù)據(jù)的計(jì)算,包含了多個(gè)成員函數(shù),以實(shí)現(xiàn)不同的功能,其中部分代碼如下

18、:if(pDlg->m_PanDclwz<0)/外軌m_x1=pDlg->m_x1-pDlg->m_PanDclwz*cos(m_JD1+zypj*3.141592654/2); m_x2=pDlg->m_x2-pDlg->m_PanDclwz*cos(m_JD1+zypj*3.141592654/2);m_y1=pDlg->m_y1-pDlg->m_PanDclwz*sin(m_JD1+zypj*3.141592654/2); m_y2=pDlg->m_y2-pDlg->m_PanDclwz*sin(m_JD1+zypj*3.141

19、592654/2); m_x3=pDlg->m_x3-pDlg->m_PanDclwz*cos(m_JD2+zypj*3.141592654/2); m_x4=pDlg->m_x4-pDlg->m_PanDclwz*cos(m_JD2+zypj*3.141592654/2); m_y3=pDlg->m_y3-pDlg->m_PanDclwz*sin(m_JD2+zypj*3.141592654/2); m_y4=pDlg->m_y4-pDlg->m_PanDclwz*sin(m_JD2+zypj*3.141592654/2);m_x1qs=ato

20、f(pDlg->Res4.GetAt(pDlg->m_lcdh)*4+1)-pDlg->m_PanDclwz*cos(m_JD1+zypj*3.141592654/2); m_y1qs=atof(pDlg->Res4.GetAt(pDlg->m_lcdh)*4+2)-pDlg->m_PanDclwz*sin(m_JD1+zypj*3.141592654/2);else if(pDlg->m_PanDclwz>0)/內(nèi)軌m_x1=pDlg->m_x1+pDlg->m_PanDclwz*cos(m_JD1-zypj*3.141592654

21、/2); m_x2=pDlg->m_x2+pDlg->m_PanDclwz*cos(m_JD1-zypj*3.141592654/2);m_y1=pDlg->m_y1+pDlg->m_PanDclwz*sin(m_JD1-zypj*3.141592654/2); m_y2=pDlg->m_y2+pDlg->m_PanDclwz*sin(m_JD1-zypj*3.141592654/2); m_x3=pDlg->m_x3+pDlg->m_PanDclwz*cos(m_JD2-zypj*3.141592654/2); m_x4=pDlg->m_

22、x4+pDlg->m_PanDclwz*cos(m_JD2-zypj*3.141592654/2); m_y3=pDlg->m_y3+pDlg->m_PanDclwz*sin(m_JD2-zypj*3.141592654/2); m_y4=pDlg->m_y4+pDlg->m_PanDclwz*sin(m_JD2-zypj*3.141592654/2);m_x1qs=atof(pDlg->Res4.GetAt(pDlg->m_lcdh)*4+1)+pDlg->m_PanDclwz*cos(m_JD1-zypj*3.141592654/2); m_

23、y1qs=atof(pDlg->Res4.GetAt(pDlg->m_lcdh)*4+2)+pDlg->m_PanDclwz*sin(m_JD1-zypj*3.141592654/2); JDX=(m_y2-m_y1)*m_x1/(m_x2-m_x1)-(m_y4-m_y3)*m_x3/(m_x4-m_x3)+m_y3-m_y1) /(m_y2-m_y1)/(m_x2-m_x1)-(m_y4-m_y3)/(m_x4-m_x3); JDY=(m_y2-m_y1)*(JDX-m_x1)/(m_x2-m_x1)+m_y1;/計(jì)算交點(diǎn)X、Y坐標(biāo)pDlg->m_sx=m_x1;p

24、Dlg->m_mx=m_x4;pDlg->m_sy=m_y1;pDlg->m_my=m_y4;double Fa1=0.0,Fa2=0.0,Fa3=0.0,Fa4=0.0,Fa5=0.0,Faxx1=0.0,Fayy1=0.0,Faxx2=0.0,Fayy2=0.0;/Fa:方位角的意思CStringArray FaDH;/存點(diǎn)號的CStringArray數(shù)組int FaHH300=0;/存行號的數(shù)組,賦初值0 intFai=0;CString Biaosf("CLK");FaDH.SetSize(300,-1);/給CStringArray數(shù)組分配內(nèi)存大

25、小,需要足夠大的空間 for(i=0;i<300;i+) FaDH.SetAtGrow(i,Biaosf);/將每一個(gè)數(shù)組值賦值為Biaosf("CLK") for(j=1;j<hsz-1;j+)/j此時(shí)是數(shù)據(jù)個(gè)數(shù)循環(huán),注意hszFaxx1=atof(pDlg->Res4.GetAt(j*4+1)-atof(pDlg->Res4.GetAt(j-1)*4+1); Fayy1=atof(pDlg->Res4.GetAt(j*4+2)-atof(pDlg->Res4.GetAt(j-1)*4+2);Fa1=QJD(Fayy1,Faxx1);F

26、axx2=atof(pDlg->Res4.GetAt(j+1)*4+1)-atof(pDlg->Res4.GetAt(j*4+1); Fayy2=atof(pDlg->Res4.GetAt(j+1)*4+2)-atof(pDlg->Res4.GetAt(j*4+2);Fa2=QJD(Fayy2,Faxx2);if(fabs(Fa1-Fa2)<3.141592654)/20140502新加,解決第四象限和第一象限夾角的情況 Fa3=fabs(Fa1-Fa2);/m_JD為大曲線偏角,以弧度為單位,取正,為角度拼音的簡拼 else if(fabs(Fa1-Fa2)&g

27、t;3.141592654&&Fa1>Fa2) Fa3=fabs(2*3.141592654-Fa1+Fa2);else if(fabs(Fa1-Fa2)>3.141592654&&Fa1<Fa2)Fa3=fabs(-2*3.141592654-Fa1+Fa2);5.2對于曲線圖的繪制,采用CadIO的動(dòng)態(tài)鏈接庫。通過OnDxfsave() 函數(shù)調(diào)用其中的一部分類,結(jié)合在LineCal類中已經(jīng)計(jì)算好的曲線數(shù)據(jù),進(jìn)行畫圖數(shù)據(jù)的計(jì)算,最終自動(dòng)繪出DXF格式的曲線圖。具體代碼示例如下:if(m_BZPD2=2)UpdateData(TRUE);/對話

28、框中修改了輸入的值,刷新程序中變量的值。LineCal ALC2;ALC2.CalData(); static char szFilter = "DXF file format(*.dxf) |*.dxf|All Files (*.*)|*.*|"CFileDialog SaveDlg( FALSE, NULL, NULL/*LastFilePath*/, OFN_HIDEREADONLY | OFN_EXPLORER, szFilter, NULL );SaveDlg.m_ofn.lpstrTitle = "Save DXF File As"if(Sa

29、veDlg.DoModal()=IDOK)/ Saving sample dxf file dataCString DxfFileName( SaveDlg.GetPathName() );CDrawing drw;if(SaveDlg.GetFileExt().IsEmpty()DxfFileName += ".dxf"/ Tables Section -/ LTYPE table type -LTYPEltype;OBJHANDLEobjhandle1;/ Layer1ZeroMemory(&layer, sizeof(layer);strcpy(layer.N

30、ame, "Layer1");layer.Color = 2;/1紅色、2黃、3綠、4青,5藍(lán),6紫色,7白色layer.LineTypeObjhandle = objhandle1; / Continuousdrw.AddLayer(&layer);/ Layer2ZeroMemory(&layer, sizeof(layer);strcpy(layer.Name, "Layer2");layer.Color = 1;layer.LineTypeObjhandle = objhandle1; / Continuousdrw.AddLay

31、er(&layer);/ STYLE table type -STYLEstyle;ZeroMemory(&style, sizeof(style);strcpy(style.Name, "Style1");strcpy(style.PrimaryFontFilename, "TIMES.TTF");style.LastHeightUsed = 0.3;style.WidthFactor = 1;objhandle1 = drw.AddTextStyle(&style);result &= drw.SetLayer(&qu

32、ot;Layer3");drw.SetTextStyle("Style1");result &= drw.Text(ALC2.ResHuaTu.GetAt(4), atof(ALC2.ResHuaTu.GetAt(3),atof(ALC2.ResHuaTu.GetAt(2), 7, atof(ALC2.ResHuaTu.GetAt(5);/ZHLC備注內(nèi)容,上面5個(gè)參數(shù)分別表示:文字內(nèi)容、起點(diǎn)X坐標(biāo)(CAD與測量坐標(biāo)系統(tǒng)相反)、起點(diǎn)Y坐標(biāo)、文字大小、文字方向(CAD右手定則)result &= drw.Text(ALC2.ResHuaTu.GetA

33、t(10), atof(ALC2.ResHuaTu.GetAt(9), atof(ALC2.ResHuaTu.GetAt(8), 7, atof(ALC2.ResHuaTu.GetAt(57);/HYLC備注內(nèi)容result &= drw.Text(ALC2.ResHuaTu.GetAt(15), atof(ALC2.ResHuaTu.GetAt(14), atof(ALC2.ResHuaTu.GetAt(13), 7, atof(ALC2.ResHuaTu.GetAt(58);/YHLC備注內(nèi)容result &= drw.Text(ALC2.ResHuaTu.GetAt(21

34、), atof(ALC2.ResHuaTu.GetAt(20),atof(ALC2.ResHuaTu.GetAt(19), 7, atof(ALC2.ResHuaTu.GetAt(16);/HZLC備注內(nèi)容result &= drw.Text(m_quxbianh, atof(ALC2.ResHuaTu.GetAt(45), atof(ALC2.ResHuaTu.GetAt(44), 7, atof(ALC2.ResHuaTu.GetAt(24);/曲線編號result &= drw.Text(ALC2.ResHuaTu.GetAt(27), atof(ALC2.ResHuaT

35、u.GetAt(26), atof(ALC2.ResHuaTu.GetAt(25), 7, atof(ALC2.ResHuaTu.GetAt(24);/大偏角result &= drw.Text(ALC2.ResHuaTu.GetAt(30), atof(ALC2.ResHuaTu.GetAt(29), atof(ALC2.ResHuaTu.GetAt(28), 7, atof(ALC2.ResHuaTu.GetAt(24);/半徑result &= drw.Text(ALC2.ResHuaTu.GetAt(33), atof(ALC2.ResHuaTu.GetAt(32),

36、atof(ALC2.ResHuaTu.GetAt(31), 7, atof(ALC2.ResHuaTu.GetAt(24);/曲線長result &= drw.Text(ALC2.ResHuaTu.GetAt(36), atof(ALC2.ResHuaTu.GetAt(35), atof(ALC2.ResHuaTu.GetAt(34), 7, atof(ALC2.ResHuaTu.GetAt(24);/切線長result &= drw.Text(ALC2.ResHuaTu.GetAt(39), atof(ALC2.ResHuaTu.GetAt(38), atof(ALC2.Re

37、sHuaTu.GetAt(37), 7, atof(ALC2.ResHuaTu.GetAt(24);/緩和曲線長 atof(ALC2.ResHuaTu.GetAt(22)>0; ENTVERTEX vertex5;ZeroMemory(vertex, sizeof(ENTVERTEX)*5);vertex0.Point.x = 1.2125; vertex0.Point.y = 5.1811;vertex1.Point.x = 2.5888; vertex1.Point.y = 4.9520;vertex2.Point.x = 2.7910; vertex2.Point.y = 7.11

38、88;vertex3.Point.x = 4.7204; vertex3.Point.y = 6.6414;vertex4.Point.x = 5.0015; vertex4.Point.y = 8.0484;result &= drw.PolyLine(vertex, 5);*/result &= drw.SetLayer("Layer1");/設(shè)置圖層 intk=0;ENTVERTEX vertex100;/畫上緩和曲線,容器數(shù)據(jù)個(gè)數(shù)的上限if(result>0) MessageBox("保存 DXF Flie 失敗.", &q

39、uot;Error", MB_ICONERROR | MB_OK);elseMessageBox("保存 DXF Flie 成功.", "LineCal", MB_ICONINFORMATION | MB_OK);/if糾錯(cuò)elseAfxMessageBox(" 請先計(jì)算數(shù)據(jù)!");6、軟件使用流程介紹及現(xiàn)場測試6.1、進(jìn)行一個(gè)平面曲線的具體擬合計(jì)算之前,需要先在參數(shù)設(shè)置里面進(jìn)行項(xiàng)目信息、軌道型號、測量位置、直線選擇相關(guān)信息的查看和設(shè)置,可以不做修改,采用默認(rèn)值,也可以按照實(shí)際情況修改,其中直線選擇這個(gè)對話框采用非模態(tài)對話框

40、,可以和主窗口并列顯示,就方便了直線邊的選擇和調(diào)整。這也是在給濟(jì)南鐵路局既有線測量隊(duì)的試用時(shí),他們提出的細(xì)節(jié)改進(jìn)要求。然后可以選擇自動(dòng)模式還是手動(dòng)模式。如果選擇自動(dòng)模式計(jì)算,想得到擬合的最佳曲線的半徑需要精確到米的話,可以在計(jì)算完初始半徑和大偏角后,在“自動(dòng)模式參數(shù)設(shè)置里面”進(jìn)行進(jìn)一步的設(shè)置,這樣可以更有針對性,也會(huì)節(jié)省一些計(jì)算時(shí)間(現(xiàn)場演示搜索步長為1m的曲線計(jì)算)。6.2、軟件在導(dǎo)入數(shù)據(jù)之后,不論采取手動(dòng)模式還是自動(dòng)模式,均只需導(dǎo)入一次數(shù)據(jù),中間可以進(jìn)行不同的參數(shù)調(diào)整,然后可以多次計(jì)算,分別存儲,這樣可以減少一些操作步驟,以實(shí)現(xiàn)程序操作的流程簡潔、清楚。(現(xiàn)場演示,自動(dòng)模式計(jì)算時(shí),在直線邊

41、選擇上的更改)。 具體測試數(shù)據(jù)見后面附表一7、外業(yè)測量流程及注意事項(xiàng)7.1 在每測量一個(gè)曲線之前,均需要按照規(guī)范要求直線每50m,曲線每20m進(jìn)行線路丈量,然后按照丈量的里程點(diǎn)進(jìn)行曲線測量,其中點(diǎn)名可以是任意數(shù)值,應(yīng)該采用全站儀法進(jìn)行導(dǎo)線測量、里程推算和曲線計(jì)算,其他具體測量要求可以參照中鐵咨詢鐵路勘察細(xì)則的第二篇測繪P79至P82的相關(guān)規(guī)定進(jìn)行。7.2本軟件每次導(dǎo)入的數(shù)據(jù)文件不超過300行,采用自動(dòng)模式計(jì)算大半徑曲線數(shù)據(jù)時(shí)(半徑>=10000m)或者長緩和曲線(緩和曲線>=300m)數(shù)據(jù)時(shí),計(jì)算時(shí)間可能稍微長點(diǎn)。如果曲線上有少量粗差大的點(diǎn)(少于總數(shù)的10%),程序在計(jì)算的過程中會(huì)

42、對其進(jìn)行自動(dòng)判斷和剔除,不會(huì)影響最終計(jì)算結(jié)果。但有可能會(huì)需要將“撥距允許值”和“半徑搜索范圍”設(shè)置大些。在極少部分情況下(當(dāng)測量的數(shù)據(jù)質(zhì)量較差時(shí)),采用自動(dòng)模式無法計(jì)算或者計(jì)算不出滿意數(shù)據(jù),可以根據(jù)既有線的臺賬數(shù)據(jù),在選取直線邊后,采用手動(dòng)模式,計(jì)算獲得每一個(gè)點(diǎn)的撥距量。8、總結(jié)非常感謝李總、王總等院領(lǐng)導(dǎo)對本項(xiàng)目的高度重視和具體指導(dǎo),同時(shí)也感謝賈克勇、高強(qiáng)、劉成偉、李厚霖、李耐振在軟件編制過程中的測試和幫助。在給濟(jì)南局既有線測量隊(duì)試用過程中,發(fā)現(xiàn)軟件還存在一些待改進(jìn)的地方(比如對復(fù)心曲線的擬合計(jì)算等),需要進(jìn)一步的完善,如在使用的過程中還有其他建議和要求,請和陳禮坤聯(lián)系(QQ:28524289

43、5,TEL附表一:以2014年12月4號進(jìn)行外業(yè)測量的藍(lán)翔路下穿立交橋?yàn)槔旅娴臄?shù)據(jù)是測量的線位資料(外軌中心)534063886.386495008.4129.284524063885.416495044.929.259514063884.032495097.42229.2504063882.925495139.06729.188494063882.329495162.23229.193484063881.814495181.98229.185474063881.381495198.21929.167464063881.086495209.24329.1474540

44、63880.631495225.59829.118444063880.121495242.5629.109424063879.179495268.35429.101414063878.25495288.29629.103404063877.038495308.8229.089394063875.721495327.08629.093254063875.605495328.62429.428274063874.529495341.4429.433284063871.949495368.04429.439294063871.762495369.8829.44304063869.794495387.

45、33929.445314063867.471495405.85629.459324063864.708495425.78829.468724063860.891495450.37428.361334063859.316495460.00129.466734063858.091495467.02528.367344063856.169495478.08429.454744063854.707495486.01528.37754063850.127495510.55928.37764063846.243495530.83228.366774063843.664495544.21128.355804

46、063842.839495548.50228.354834063838.52495570.78228.36874063833.522495596.57828.363下表是擬合的曲線數(shù)據(jù)以及每個(gè)點(diǎn)對應(yīng)的撥距距離。點(diǎn)名里程北坐標(biāo)(X)東坐標(biāo)(Y)內(nèi)撥(mm)外撥(mm)是否超限(100mm)曲線要素15-89.65244063898.855494992.835441.08Aa=9.312901404063896.517495082.45730R:1500.01345.55354063895.329495127.99530L1=70.0L2=70.01266.70634063894.77749514

47、9.140916.65T1=159.9771T2=159.97711686.43544063894.262495168.86531.71l=319.357017106.63334063893.705495189.05554.86ZHLC=79.667318146.4274063892.226495228.821314.45HYLC=149.667319166.49774063891.144495248.860612.13QZLC=239.345820186.52724063889.797495268.844610.01YHLC=329.024321206.72284063888.1684952

48、88.974310.27HZLC=399.024322226.71884063886.289495308.88165.39BoJu=0.317624246.90814063884.123495328.95427.92CurNO: JD1 Pro: CREC26260.50894063882.511495342.45921.34Actor: CLK Check: LDJ61266.69064063881.738495348.59238.3862286.43444063879.1495368.15918.1863306.58414063876.142495388.090312.1564326.70

49、844063872.922495407.9558.4765346.73184063869.462495427.67520.9766366.71494063865.813495447.322126.2667386.99894063861.986495467.241828.2168406.59314063858.243495486.477235.2369426.64954063854.409495506.163921.4970446.71714063850.574495525.86157.8971466.72064063846.75495545.49624.2378470.41354063846.044495549.121082493.0574063841.7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論