本發(fā)明涉及一種視距分析方。特別是涉及一種基于AutoCAD的豎向視距分析方法。
背景技術(shù):
視距是保證公路行車安全的一項(xiàng)重要設(shè)計(jì)指標(biāo),是公路工程建設(shè)標(biāo)準(zhǔn)強(qiáng)制性指標(biāo)之一。駕駛?cè)藦陌l(fā)現(xiàn)障礙物開始到?jīng)Q定采取某種措施的這段時(shí)間段內(nèi)汽車沿路面所行駛的最短行車距離,稱為視距。因此,公路沿線的每一車道應(yīng)有足夠的視距,使駕駛員能及時(shí)察覺潛在的危險(xiǎn),并做出正確反應(yīng),保證行車安全。視距安全評(píng)價(jià)技術(shù)是道路安全保障技術(shù)的重要組成部分,是對(duì)處于設(shè)計(jì)、施工及運(yùn)營中的公路工程項(xiàng)目、交通工程項(xiàng)目或任何與公路用戶有關(guān)的工程項(xiàng)目正式地進(jìn)行視距檢查與評(píng)價(jià),以發(fā)現(xiàn)項(xiàng)目潛在的視距不足路段和消除由此引起的安全隱患的一種安全保障技術(shù)。
行車視距可分為停車視距、會(huì)車視距、超車視距為了保證行車安全,應(yīng)使駕駛員能看到前方一定距離的道路路面,以便及時(shí)發(fā)現(xiàn)路面上有障礙物或?qū)ο騺碥?,使汽車在一定的車速下能及時(shí)制動(dòng)或避讓,從而避免事故。
行車視距檢驗(yàn)的常規(guī)方法主要有最大橫凈距計(jì)算方法和幾何作圖法(繪制視距包絡(luò)圖)等,這些方法簡(jiǎn)便實(shí)用,前者能檢驗(yàn)曲線上某一位置處平面視距是否滿足要求,后者可以較精確的確定平曲線(或豎曲線)上影響視距的范圍。用幾何作圖法不但能確定最大橫凈距,還可以確定任意平曲線上任意樁號(hào)的橫凈距,而解析法只能確定圓曲線的最大橫凈距,因此,從普遍適用性來看幾何作圖法更有優(yōu)越性。
手工繪制視距包絡(luò)圖繁瑣復(fù)雜,計(jì)算工作量大,需要人工繪制多條視距線,繪圖速度慢,效率低,累計(jì)誤差影響行車視距檢查的準(zhǔn)確性。若通過編程軟件,與AutoCAD在同一處理空間運(yùn)行,實(shí)現(xiàn)指定參數(shù)后自動(dòng)完成視距包絡(luò)圖的繪制,可節(jié)省大量工作時(shí)間,提供工作效率。
國內(nèi)對(duì)平面視距的檢驗(yàn)已經(jīng)有了較多的研究,理論和方法也比較成熟;而對(duì)于豎向視距的檢驗(yàn)分析,仍未提供出一種較為有效的檢驗(yàn)方法,主要原因在于,眼高軌跡線、物高軌跡線、設(shè)計(jì)縱斷面線為三條獨(dú)立的空間曲線,很難求點(diǎn)視距包絡(luò)線的解析解。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是,提供一種實(shí)現(xiàn)了指定控制參數(shù)后自動(dòng)完成視距包絡(luò)圖繪制的基于AutoCAD的豎向視距分析方法。
本發(fā)明所采用的技術(shù)方案是:一種基于AutoCAD的豎向視距分析方法,包括如下步驟:
1)初始化CAD軟件的繪圖環(huán)境,包括:設(shè)置當(dāng)前圖層、關(guān)閉CAD繪圖環(huán)境中的正交和捕捉以及將CAD變量指針指向模型空間;
2)在交互界面輸入如下參數(shù):正向檢驗(yàn)/逆向檢驗(yàn)、眼高、物高、行車視距、視距擬合精度和視線生成間距;
3)交互式選取需要檢驗(yàn)的豎曲線,所述豎曲線的線型實(shí)體為多段線,進(jìn)入下一步驟,若得到的線型實(shí)體非多段線,結(jié)束程序,并提示:請(qǐng)轉(zhuǎn)化為多段線,然后進(jìn)入下一步驟;
4)得到豎曲線的起點(diǎn)qpt0和豎曲線總長度的參數(shù);
5)計(jì)算循環(huán)次數(shù)T,循環(huán)次數(shù)T=fix[(豎曲線總長度-行車視距)/視距擬合精度],并循環(huán)如下內(nèi)容:
(1)采用cal-pt函數(shù),根據(jù)豎曲線的起點(diǎn)qpt0和行車視距兩個(gè)參數(shù)得到豎曲線上的另一點(diǎn)zpt0;
(2)根據(jù)豎曲線的起點(diǎn)qpt0,獲得該起點(diǎn)對(duì)應(yīng)的眼高點(diǎn)eye_p0,眼高點(diǎn)eye_p0與起點(diǎn)qpt0的推導(dǎo)關(guān)系為:X坐標(biāo)相同,眼高點(diǎn)eye_p0的Y坐標(biāo)=起點(diǎn)qpt0的Y坐標(biāo)+眼高;
(3)根據(jù)豎曲線上的另一點(diǎn)zpt0,獲得另一點(diǎn)zpt0對(duì)應(yīng)的物高點(diǎn)ent_p0,物高點(diǎn)ent_p0與另一點(diǎn)zpt0的推導(dǎo)關(guān)系為:X坐標(biāo)相同,物高點(diǎn)ent_p0的Y坐標(biāo)=另一點(diǎn)zpt0的Y坐標(biāo)+物高;
(4)得到第一組直線L1的起點(diǎn)為眼高點(diǎn)eye_p0,第一組直線L1的終點(diǎn)為物高點(diǎn)ent_p0;
(5)根據(jù)豎曲線的起點(diǎn)qpt0和視距擬合精度兩個(gè)參數(shù),通過cal-pt函數(shù)得到豎曲線上的第一點(diǎn)qpt1;
(6)根據(jù)第一點(diǎn)qpt1和行車視距兩個(gè)參數(shù),通過cal-pt函數(shù)得到豎曲線上的第二點(diǎn)zpt1;
(7)根據(jù)豎曲線上的第一點(diǎn)qpt1,獲得第一點(diǎn)qpt1對(duì)應(yīng)的眼高點(diǎn)eye_p1,眼高點(diǎn)eye_p1與第一點(diǎn)qpt1的推導(dǎo)關(guān)系為:X坐標(biāo)相同,眼高點(diǎn)eye_p1的Y坐標(biāo)=點(diǎn)第一點(diǎn)qpt1的Y坐標(biāo)+眼高;
(8)根據(jù)豎曲線的第二點(diǎn)zpt1,獲得第二點(diǎn)zpt1對(duì)應(yīng)的物高點(diǎn)ent_p1,物高點(diǎn)ent_p1與第二點(diǎn)zpt1的推導(dǎo)關(guān)系為:X坐標(biāo)相同,物高點(diǎn)ent_p1的Y坐標(biāo)=第二點(diǎn)zpt1的Y坐標(biāo)+物高;
(9)得到第一組直線L1:起點(diǎn)為眼高點(diǎn)(eye_p0),終點(diǎn)為物高點(diǎn)(ent_p0);
(10)得到第二組直線L2的起點(diǎn)為眼高點(diǎn)eye_p1,第二組直線L2的終點(diǎn)為物高點(diǎn)ent_p1;
(11)求第一組直線L1與第二組直線L2的交點(diǎn),所述交點(diǎn)行車視線交點(diǎn);
(12)重新定義豎曲線的起點(diǎn)qpt0:qpt0=qpt1;
(13)循環(huán)T次,依次得到所有的眼高點(diǎn)、物高點(diǎn)、行車視線交點(diǎn),并將所述的眼高點(diǎn)、物高點(diǎn)、行車視線交點(diǎn)分別依次存入眼高點(diǎn)列表eyelst、物高點(diǎn)列表entlst和行車視線交點(diǎn)itlst點(diǎn)列表中;
6)采用CAD軟件中的Pline命令分別讀取眼高點(diǎn)列表eyelst、物高點(diǎn)列表entlst和行車視線交點(diǎn)itlst列表中的各點(diǎn)數(shù)據(jù),得到豎曲線的眼高線、物高線和視距包絡(luò)線。
將步驟2)所述的參數(shù)設(shè)置為一定的取值范圍和默認(rèn)值,本模塊眼高允許范圍X為0<X≤5,默認(rèn)值為1.2;物高允許范圍Y為0<Y≤5,默認(rèn)值為0.1;行車視距允許范圍Z為0<Z≤2000,默認(rèn)值為110;視距擬合精度允許范圍T為0<T≤1,5,默認(rèn)值為2;視線生成間距允許范圍W為5<W≤10,默認(rèn)值為20。
將步驟5)第(1)所述的cal-pt函數(shù)為:已知曲線上的一點(diǎn)pt及曲線本身,推算曲線上與點(diǎn)pt的X坐標(biāo)相距長度為Dist的另外一點(diǎn)cal-pt,具體開發(fā)步驟如下:
(1)獲得曲線pl;
(2)獲得曲線上pt點(diǎn)的X坐標(biāo)pt_x;
(3)根據(jù)X坐標(biāo)pt_x與Dist,得到與pt點(diǎn)在x方向相距為Dist的點(diǎn)npt_x,推導(dǎo)關(guān)系為npt_x與pt_x的Y坐標(biāo)相同,npt_x的X坐標(biāo)=pt_x的X坐標(biāo)+Dist
(4)根據(jù)npt_x點(diǎn),生成垂直構(gòu)造線xline;
(5)獲得曲線pl和垂直構(gòu)造線xline的交點(diǎn),所述交點(diǎn)即為曲線上的另一點(diǎn)cal-pt。
在步驟5)的第(1)步~第(12)的循環(huán)過程中,每間隔長度為視線生成間距時(shí),便將第一組直線L1和第二組直線L2繪制出來,以便設(shè)計(jì)者對(duì)行車視線進(jìn)行檢驗(yàn)。
本發(fā)明的一種基于AutoCAD的豎向視距分析方法,采用AUTOCAD內(nèi)置的lisp語言進(jìn)行編程,通過分別繪制豎曲線的眼高軌跡線、物高軌跡線,繪制出豎曲線的豎向視距包絡(luò)線和行車視線,以便檢驗(yàn)豎曲線上的跨線橋等障礙物是否影響行車視距。本發(fā)明適用于基于CAD模式下開發(fā)的所有路線設(shè)計(jì)軟件,點(diǎn)擊設(shè)計(jì)軌跡線即可得到視距包絡(luò)線,不僅直觀并且計(jì)算精度高。實(shí)現(xiàn)了指定控制參數(shù)后自動(dòng)完成視距包絡(luò)圖的繪制。本發(fā)明的方法易學(xué)易用,執(zhí)行速度快,靈活性強(qiáng),適合于工程設(shè)計(jì)。
附圖說明
圖1是本發(fā)明一種基于AutoCAD的豎向視距分析方法的流程圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例和附圖對(duì)本發(fā)明的一種基于AutoCAD的豎向視距分析方法做出詳細(xì)說明。
本發(fā)明的一種基于AutoCAD的豎向視距分析方法,根據(jù)已有的1:1比例的縱斷面設(shè)計(jì)線,通過分別繪制豎曲線的眼高軌跡線、物高軌跡線,可以很方便的繪制出豎曲線的豎向視距包絡(luò)線和行車視線,以便檢驗(yàn)豎曲線上的跨線橋等障礙物是否影響行車視距,消除由此引起的安全隱患,提高行車安全。
豎向視距分析模塊通過vlisp語言對(duì)CAD進(jìn)行二次開發(fā),以圖中已繪制完成的1:1豎曲線為基礎(chǔ),分別從正向、逆向兩個(gè)方向出發(fā),進(jìn)行視距的檢驗(yàn)。如圖1所示,本發(fā)明的一種基于AutoCAD的豎向視距分析方法,包括如下步驟:
1)初始化CAD軟件的繪圖環(huán)境,包括:設(shè)置當(dāng)前圖層、關(guān)閉CAD繪圖環(huán)境中的正交和捕捉以及將CAD變量指針指向模型空間;
2)在交互界面輸入如下參數(shù):正向檢驗(yàn)/逆向檢驗(yàn)、眼高、物高、行車視距、視距擬合精度和視線生成間距;
所述的參數(shù)也可設(shè)置為一定的取值范圍和默認(rèn)值,本模塊眼高允許范圍X為0<X≤5,默認(rèn)值為1.2;物高允許范圍Y為0<Y≤5,默認(rèn)值為0.1;行車視距允許范圍Z為0<Z≤2000,默認(rèn)值為110;視距擬合精度允許范圍T為0<T≤1,5,默認(rèn)值為2;視線生成間距允許范圍W為5<W≤10,默認(rèn)值為20。
3)交互式選取需要檢驗(yàn)的豎曲線,所述豎曲線的線型實(shí)體為多段線,進(jìn)入下一步驟,若得到的線型實(shí)體非多段線,結(jié)束程序,并提示:請(qǐng)轉(zhuǎn)化為多段線,然后進(jìn)入下一步驟;
4)得到豎曲線的起點(diǎn)qpt0和豎曲線總長度的參數(shù);
5)計(jì)算循環(huán)次數(shù)T,循環(huán)次數(shù)T=fix[(豎曲線總長度-行車視距)/視距擬合精度],并循環(huán)如下內(nèi)容:
(1)采用cal-pt函數(shù),根據(jù)豎曲線的起點(diǎn)qpt0和行車視距兩個(gè)參數(shù)得到豎曲線上的另一點(diǎn)zpt0;
所述的cal-pt函數(shù)為:已知曲線上的一點(diǎn)pt及曲線本身,推算曲線上與點(diǎn)pt的X坐標(biāo)相距長度為Dist的另外一點(diǎn)cal-pt,具體開發(fā)步驟如下:
(1)獲得曲線pl;
(2)獲得曲線上pt點(diǎn)的X坐標(biāo)pt_x;
(3)根據(jù)X坐標(biāo)pt_x與Dist,得到與pt點(diǎn)在x方向相距為Dist的點(diǎn)npt_x,推導(dǎo)關(guān)系為npt_x與pt_x的Y坐標(biāo)相同,npt_x的X坐標(biāo)=pt_x的X坐標(biāo)+Dist
(4)根據(jù)npt_x點(diǎn),生成垂直構(gòu)造線xline;
(5)獲得曲線pl和垂直構(gòu)造線xline的交點(diǎn),所述交點(diǎn)即為曲線上的另一點(diǎn)cal-pt。
(2)根據(jù)豎曲線的起點(diǎn)qpt0,獲得該起點(diǎn)對(duì)應(yīng)的眼高點(diǎn)eye_p0,眼高點(diǎn)eye_p0與起點(diǎn)qpt0的推導(dǎo)關(guān)系為:X坐標(biāo)相同,眼高點(diǎn)eye_p0的Y坐標(biāo)=起點(diǎn)qpt0的Y坐標(biāo)+眼高;
(3)根據(jù)豎曲線上的另一點(diǎn)zpt0,獲得另一點(diǎn)zpt0對(duì)應(yīng)的物高點(diǎn)ent_p0,物高點(diǎn)ent_p0與另一點(diǎn)zpt0的推導(dǎo)關(guān)系為:X坐標(biāo)相同,物高點(diǎn)ent_p0的Y坐標(biāo)=另一點(diǎn)zpt0的Y坐標(biāo)+物高;
(4)得到第一組直線L1(即第一條行車視線)的起點(diǎn)為眼高點(diǎn)eye_p0,第一組直線L1的終點(diǎn)為物高點(diǎn)ent_p0;
(5)根據(jù)豎曲線的起點(diǎn)qpt0和視距擬合精度兩個(gè)參數(shù),通過cal-pt函數(shù)得到豎曲線上的第一點(diǎn)qpt1;
(6)根據(jù)第一點(diǎn)qpt1和行車視距兩個(gè)參數(shù),通過cal-pt函數(shù)得到豎曲線上的第二點(diǎn)zpt1;
(7)根據(jù)豎曲線上的第一點(diǎn)qpt1,獲得第一點(diǎn)qpt1對(duì)應(yīng)的眼高點(diǎn)eye_p1,眼高點(diǎn)eye_p1與第一點(diǎn)qpt1的推導(dǎo)關(guān)系為:X坐標(biāo)相同,眼高點(diǎn)eye_p1的Y坐標(biāo)=點(diǎn)第一點(diǎn)qpt1的Y坐標(biāo)+眼高;
(8)根據(jù)豎曲線的第二點(diǎn)zpt1,獲得第二點(diǎn)zpt1對(duì)應(yīng)的物高點(diǎn)ent_p1,物高點(diǎn)ent_p1與第二點(diǎn)zpt1的推導(dǎo)關(guān)系為:X坐標(biāo)相同,物高點(diǎn)ent_p1的Y坐標(biāo)=第二點(diǎn)zpt1的Y坐標(biāo)+物高;
(9)得到第一組直線L1:起點(diǎn)為眼高點(diǎn)(eye_p0),終點(diǎn)為物高點(diǎn)(ent_p0);
(10)得到第二組直線L2(即第二條行車視線)的起點(diǎn)為眼高點(diǎn)eye_p1,第二組直線L2的終點(diǎn)為物高點(diǎn)ent_p1;
(11)求第一組直線L1(eye_p0,ent_p0)與第二組直線L2(eye_p1,ent_p1)的交點(diǎn),所述交點(diǎn)行車視線交點(diǎn);
(12)重新定義豎曲線的起點(diǎn)qpt0:qpt0=qpt1;
(13)循環(huán)T次,依次得到所有的眼高點(diǎn)、物高點(diǎn)、行車視線交點(diǎn),并將所述的眼高點(diǎn)、物高點(diǎn)、行車視線交點(diǎn)分別依次存入眼高點(diǎn)列表eyelst、物高點(diǎn)列表entlst和行車視線交點(diǎn)itlst點(diǎn)列表中;
在第(1)步~第(12)的循環(huán)過程中,每間隔長度為視線生成間距時(shí),便將第一組直線L1和第二組直線L2繪制出來,以便設(shè)計(jì)者對(duì)行車視線進(jìn)行檢驗(yàn)。
6)采用CAD軟件中的Pline命令分別讀取眼高點(diǎn)列表eyelst、物高點(diǎn)列表entlst和行車視線交點(diǎn)itlst列表中的各點(diǎn)數(shù)據(jù),得到豎曲線的眼高線、物高線和視距包絡(luò)線。