LISP語言在AD道路設(shè)計(jì)方案中各種應(yīng)用_第1頁
LISP語言在AD道路設(shè)計(jì)方案中各種應(yīng)用_第2頁
LISP語言在AD道路設(shè)計(jì)方案中各種應(yīng)用_第3頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三章 LISP 語言在 CAD 道路設(shè)計(jì)中地各種應(yīng)用3.1 繪制平面任意函數(shù)曲線地 AutoLISP 程序設(shè)計(jì)在各個(gè)工程設(shè)計(jì)領(lǐng)域中 ,經(jīng)常要繪制一些曲線 ,特別是平面曲線 ,如水工結(jié)構(gòu)地溢流曲線 . 機(jī)械設(shè)計(jì)地齒輪漸開曲線等.在 AutoCAD 繪圖軟件中 ,可以將曲線上地點(diǎn)先計(jì)算好,再用線 .多義線 .樣條曲線等方法繪制 ,這種方法需要進(jìn)行大量計(jì)算,工作量較大 ,如果用 EXCEL 軟件來輔助計(jì)算 ,可以減輕工作量; 另外,可以針對具體地曲線類型,用 AutoCAD 內(nèi)嵌地 AutoLISP 語言,實(shí)現(xiàn)邊計(jì)算邊繪制地功能 .用這種方法繪制雖然快捷,但對于不同地曲線,則需編寫同地AutoLI

2、SP 程序 ,檢查無誤后才能運(yùn)行 ,仍顯繁瑣 .能否用統(tǒng)一地程序 ,來實(shí)現(xiàn)各種平面函數(shù)曲線 地繪制 ,我們嘗試?yán)?AutoCAD 中強(qiáng)大地表達(dá)式計(jì)算功能來實(shí)現(xiàn)這一目地 .3.1.1 平面函數(shù)曲線地類型和繪制方法平面函數(shù)曲線即是有簡單函數(shù)表達(dá)式地曲線類型,可考慮經(jīng)常遇到地 4 類:( 1)直角坐標(biāo)下形如y=f(x) 地曲線;(2) 直角坐標(biāo)下地參數(shù)方程曲線;(3) 極坐標(biāo)下形如r=f(地曲線;( 4)極坐標(biāo)下地參數(shù)方程曲線.其中,只需增加一個(gè)平凡方程x=x,參數(shù)方程(2)就可以包括相應(yīng)地直接表達(dá)形式(1),同樣(4) 可以包括( 3) .同時(shí) ,極坐標(biāo)形式可以通過:x=rcos 0y=rsi

3、n 0轉(zhuǎn)換為直角坐標(biāo)表達(dá) .因此從本質(zhì)上說 ,4 種類型都可以互相轉(zhuǎn)換 ,把它們分類地目地是盡量采 用函數(shù)地通常表達(dá)形式 ,以便于使用 .繪制時(shí) ,參照曲線地手工繪制方法,需要給出曲線上地多個(gè)點(diǎn) ,然后將它們連接起來 .若給出地點(diǎn)間隔很小 ,直接用折線段相連就可很好模擬該曲線 ,如 果間隔較大 ,可以用樣條曲線連接,使之比較光滑 .假設(shè)我們計(jì)算出足夠多地點(diǎn),簡單用折線連接即可 ,為使該曲線成為一個(gè)整體,可用多義線地方式連接 .關(guān)鍵地問題是 ,如何計(jì)算出曲線上點(diǎn)地坐標(biāo).由于曲線地函數(shù)表達(dá)式各種各樣,不可能用統(tǒng)一地式子來表示 .可以考慮從外部輸入表達(dá)式,然后針對該表達(dá)式進(jìn)行計(jì)算,給出相應(yīng)結(jié)果 ,就

4、能夠解決點(diǎn)坐標(biāo)地計(jì)算問題.但這個(gè)功能地實(shí)現(xiàn)比較困難,幸好 AutoCAD 為我們提供了CAL 命令 ,可以對任意地表達(dá)式進(jìn)行計(jì)算.該命令由函數(shù)庫文件geomcal.arx 提供 ,支持科學(xué) /工程計(jì)算器上地大多數(shù)標(biāo)準(zhǔn)函數(shù),如三角函數(shù) .指數(shù).對數(shù)等 .若表達(dá)式中有變量 ,而該變量在程序中已設(shè)定了值 ,則按該值進(jìn)行計(jì)算 .由于該函數(shù)不是LISP 內(nèi)部函數(shù) ,為使之可用 ,需要用ARXLOAD命令載入文件geomcal.arx,或者在命令行先輸入CAL命令,由系統(tǒng)自動(dòng)載入,這樣,程序中就可以使用該函數(shù)了總地程序定義為c:curve(),以便在AutoCAD命令行中與通常地命令一樣使用 .程序地總調(diào)

5、用部分為:(arxload geomcal.arx) ;載入提供表達(dá)式計(jì)算功能地 ARX 文件(vl- arx- import c:cal) ;讓命令 c:cal 能夠使用(princ (1) 直角坐標(biāo)下曲線 y=f(x).n)(princ (2) 直角坐標(biāo)下參數(shù)曲線 x=f(i),y=g(i).n)(princ (3) 極坐標(biāo)下曲線 r=f(theta).n)(princ (4) 極坐標(biāo)下參數(shù)曲線 theta=f(i),r=g(i).n)(setq ichoice (getint 選擇繪制曲線類型: ) ;選擇曲線類型(if (= ichoice1)(curve1);調(diào)用曲線繪制類型1(if

6、 (= ichoice2)(curve2);調(diào)用曲線繪制類型2(if (= ichoice3)(curve3);調(diào)用曲線繪制類型3(if (= ichoice 4) (curve4) ;調(diào)用曲線繪制類型 4 根據(jù)用戶選擇地曲線類型,轉(zhuǎn)到相應(yīng)地曲線類型繪制函數(shù)中,依次為直角坐標(biāo)下地普通函數(shù).參數(shù)方程 ,極坐標(biāo)下地普通函數(shù)和參數(shù)方程.3.1.2 直角坐標(biāo)下函數(shù) y=f(x) 地曲線繪制直角坐標(biāo)下繪制函數(shù)曲線y=f(x)定義為AutoLISP子程序curvel,該子程序沒有傳入傳出參數(shù) .程序地第一個(gè)步驟是讀入有關(guān)地參數(shù)和控制變量.首先讀入 y=f(x) 地表達(dá)式 ,然后輸入自變量 x 地變化范圍

7、low,up, 接著根據(jù)模擬精度 ,輸入曲線剖分?jǐn)?shù)目 steps,x 地變化步長即為 step=(up- low)/steps, 該步驟相應(yīng)地 AutoLISP 程序如下:(setq funy (getstring y=f(x) 地表達(dá)式 :) (setq low(getreal x 地下限值 :)(setq up (getreal x 地上限值 :)(setq steps (getint 剖分?jǐn)?shù)目 :)(setq step (/ (- up low) steps)接下來就開始曲線地繪制,首先啟動(dòng)繪制多義線地命令,接著自變量x從下限值開始,由f(x)地表達(dá)式計(jì)算y坐標(biāo)值,將該點(diǎn)地坐標(biāo)輸入到命令

8、行,得到曲線地起點(diǎn),然后自變量x遞增一個(gè)步 長,計(jì)算下一個(gè)坐標(biāo)點(diǎn) ,曲線連接到該點(diǎn) ,如此直到剖分?jǐn)?shù)目結(jié)束,就完成了整個(gè)曲線地繪制,最后用一個(gè)空格退出多義線命令.相應(yīng)地 AutoLISP 程序如下:(command pline) ;啟動(dòng)多義線命令(setq ii 0) ;循環(huán)變量 ii 設(shè)初值(setq x low) ;自變量 x 設(shè)初值(while (= ii steps) ;控制循環(huán)數(shù)目(setq y (c:cal funy) ;對表達(dá)式進(jìn)行計(jì)算 ,得到 y 坐標(biāo)值(command (list x y) ;輸入計(jì)算出地點(diǎn)坐標(biāo)(setq ii (+ 1 ii) ;循環(huán)變量 ii 增加 1(s

9、etq x (+ x step) ;自變量 x 遞增一個(gè)步長(command ) ;退出多義線命令3.1.3 直角坐標(biāo)下參數(shù)方程曲線繪制直角坐標(biāo)下參數(shù)方程與直接函數(shù)表達(dá)不同地是 ,引入?yún)⒆兞?,坐標(biāo) x 和 y 都表達(dá)為該參變 量地函數(shù) ,這樣 ,能夠表示地函數(shù)更靈活多樣 ,形式如下:在曲線繪制時(shí) ,只需要將變量改為參變 量,坐標(biāo)計(jì)算時(shí)對x.y坐標(biāo)都用表達(dá)式計(jì)算即可,相應(yīng)地AutoLISP程序如下:(setq ii 0) ;循環(huán)變量 ii 設(shè)初值(setq i low) ;參變量 i 設(shè)初值(while (= ii steps) ;循環(huán)控制(setq x (c:cal funx) ;由 x=f

10、(i) 計(jì)算坐標(biāo) x(setq y (c:cal funy) ;由 y=g(i) 計(jì)算坐標(biāo) y(command (list x1 y1) ;向命令行輸入點(diǎn)坐標(biāo)(setq ii (+ 1 ii) ;循環(huán)變量 ii 增加 1(setq i (+ i step) ;參變量 i 遞增一個(gè)步長極坐標(biāo)下函數(shù)r = f( 曲線繪制極坐標(biāo)下函數(shù)r = f( 0)地不同之處在于輸入點(diǎn)地坐標(biāo)時(shí),需要用極坐標(biāo)輸入方式,如2030,表示極徑為 20,角度為 30,可以將得到地坐標(biāo)值轉(zhuǎn)換為字符串,再用角度符號(hào) “”連接起來 ,輸入到命令行 .也可以用另外一個(gè)簡便方法 ,即利用極坐標(biāo)和直角坐標(biāo)之間地轉(zhuǎn)換關(guān)系 ,變換到 直

11、角坐標(biāo)后輸入到命令行,該方法對應(yīng)地 AutoLISP 程序如下:(setq ii 0) (setq e low) ;設(shè)置極角 0 地初始值(while (= ii steps) (setq r (c:cal funy) ;計(jì)算極徑 r(setq x (c:cal r*cos(e);由極徑r和極角0轉(zhuǎn)換為直角坐標(biāo)下地x值(setq y (c:cal r*sin(e);由極徑r和極角0轉(zhuǎn)換為直角坐標(biāo)下地y值(command (list x y) (setq ii (+ 1 ii) (setq e (+ e step) ;對極角遞增一個(gè)步長3.1.5 極坐標(biāo)下參數(shù)方程曲線繪制極坐標(biāo)下參數(shù)方程曲線地繪

12、制,同直角坐標(biāo)下地參數(shù)方程曲線繪制是類似地,即增加一個(gè)用參變量表達(dá)地極角0地計(jì)算 ,相應(yīng)地 AutoLISP 程序如下:(setq ii 0) (setq i low) ;設(shè)置參變量 i 初值為下限值(while (= ii steps) (setq e (c:cal funx) ;由表達(dá)式計(jì)算極角 0(setq r (c:cal funy) ;由表達(dá)式計(jì)算極徑 r(setq x (c:cal r*cos(e) (setq y (c:cal r*sin(e) (command (list x y) (setq ii (+ 1 ii) (setqi (+ i step) ;參變量遞增一個(gè)步長3.

13、1.6 總結(jié)利用 AutoCAD 地表達(dá)式計(jì)算功能 ,編寫出繪制平面函數(shù)曲線地 AutoLISP 程序 ,根據(jù)外部 輸入地函數(shù)表達(dá)式 ,迅速繪制出函數(shù)曲線 ,且可以靈活控制曲線地模擬精度 , 避免了以往每繪 制一種曲線都要重新編寫程序地麻煩,使用起來十分方便 .可以參照本文地做法 ,繪制三維空間曲線或其他更復(fù)雜地曲線 ,或?qū)⒈磉_(dá)式計(jì)算功能應(yīng)用到其他設(shè)計(jì)環(huán)境中.3.2 基于 AutoCAD 地線路緩和曲線地自動(dòng)繪制3.2.1 背景鐵路與公路地線路在定線中,由于受地形 .地物或其他因素限制 ,需要改變方向 .在改變方向處 ,相鄰兩直線間要求用曲線連接起來,以保證行車順暢安全這種曲線稱平面曲線.鐵路

14、與公路線上采用地平面曲線主要有圓曲線和緩和曲線,如圖 1所示 .圓曲線是具有一定曲率半徑地圓??;緩和曲線是連接直線與圓曲線地過渡曲線,其曲率半徑p由無窮大(直線地半徑)逐漸變化為圓曲線半徑R.在鐵路干線線路中都要加設(shè)緩和曲線由于緩和曲線上各點(diǎn)地曲率半徑及圓心均為變數(shù) ,所以在繪制線路平面圖時(shí),利用繪圖工具無法準(zhǔn)確.有效地繪制出緩和曲線.目前大多數(shù)采用曲線板近似描繪緩和曲線;或者是在AutoCAD 中,用多段線近似代替緩和曲線 .這些方法作圖不準(zhǔn)確 ,而且作圖效率低 .筆者在實(shí)踐中 ,利用 AutoLISP 編程 ,實(shí)現(xiàn)了 基于 AutoCAD 地緩和曲線加圓曲線地自動(dòng)繪制 .3.2.2 緩和曲

15、線地主點(diǎn)及要素1. 緩和曲線地形成圖2( b)是沒有加設(shè)緩和曲線地圓曲線緩和曲線是在不改變直線段方向和保持圓曲線半徑不變地條件下 ,插入到圓曲線與直線段之間地平面曲線 .為了在圓曲線與直線之間加入一 段緩和曲線10,原來地圓曲線需要在垂直于其切線地方向上移動(dòng)一段距離p (見圖2(a),因而圓心就由O移動(dòng)到01,而原來地半徑R保持不變.2. 緩和曲線地主點(diǎn)ZH 直緩點(diǎn) ,即直線與緩和曲線地分界 .點(diǎn);HY 緩圓點(diǎn) ,即緩和曲線與圓曲線地分界點(diǎn);QZ 曲中點(diǎn) ,即圓曲線地中點(diǎn);YH 圓緩點(diǎn) ,即圓曲線與緩和曲線地分界點(diǎn);HZ 緩直點(diǎn) ,即緩和曲線與直線地分界點(diǎn);JD 兩直線延長線地交點(diǎn) .3. 緩

16、和曲線地綜合要素T切線長,即交點(diǎn)至直緩點(diǎn)或緩直點(diǎn)地直線長度;R 圓曲線半徑;L曲線(圓曲線+緩和曲線)地長度;01緩和曲線地長度;E0外矢距,即交點(diǎn)至曲線中點(diǎn)地距離(JD至QZ地距離)a向角,即直線轉(zhuǎn)向角;0 3 和曲線地切線角,即緩圓點(diǎn)HY(或圓緩點(diǎn)YH)切線與直緩點(diǎn)(或緩直點(diǎn)HZ )切 線地交角,亦即圓曲線HIYH 兩端各延長201部分所對應(yīng)地圓心角;m切垂距,即ZH (或HZ)至自圓心01向ZH點(diǎn)或HZ點(diǎn)地切線作垂線垂足地距離.p圓曲線移動(dòng)量,即垂線長與圓曲線半徑R之差在上述要素中,aR,l0為已知要素(可根據(jù)實(shí)際測定或在線路設(shè)計(jì)時(shí)選定),其他要素需根據(jù)a,R,l0求得.它們地關(guān)系為4緩

17、和曲線方程式由于緩和曲線地曲率半徑p從直線地曲率半徑*(無窮大)逐漸變化到圓曲線地曲率半徑R,在曲線上任一點(diǎn) P地曲率半徑p與曲線地長度I成反比,如圖3所示,以公式表示為式中 C為常數(shù),稱曲率半徑變更率.設(shè)3為緩和曲線上任一點(diǎn)地切線角,x,y為這一點(diǎn)地坐標(biāo),p為這一點(diǎn)上曲線地曲率半徑,l為從ZH點(diǎn)到這點(diǎn)地緩和曲線長(見圖 3).則有圖3緩和曲線上任 一點(diǎn)地坐標(biāo)5.緩和曲線常數(shù)m切垂距,即ZH (或HZ)至自圓心.01向ZH點(diǎn)或HZ點(diǎn)地切線作垂線垂足地距離.p圓曲線移動(dòng)量,即垂線長與圓曲線半徑R之差.圓曲線加緩和曲線地繪制1. 繪制緩和曲線假設(shè)兩直線地轉(zhuǎn)角為逆時(shí)針方向,則自原點(diǎn)(ZH)至交點(diǎn)(J

18、D)為第1條直線;自交點(diǎn)(JD)至緩直點(diǎn)(HZ )為第2條直線.前面已經(jīng)建立了緩和曲線地方程式和緩和曲線常數(shù)地計(jì) 算式.緩和曲線方程式地坐標(biāo)系為直角坐標(biāo)系,其坐標(biāo)原點(diǎn)為直緩點(diǎn)(ZH),x軸與直緩點(diǎn)(ZH )地切線方向一致.為了根據(jù)方程式計(jì)算緩和曲線上地點(diǎn)地坐標(biāo)并繪制緩和曲線,需要使AutoCAD 地坐標(biāo)系與緩和曲線地坐標(biāo)系重合.為此,單擊“ UCS工具欄中地 對象UCS按鈕,并在靠近交點(diǎn)(JD處拾取第2條直線,此時(shí)UCS坐標(biāo)系地原點(diǎn)位于交點(diǎn),且x軸與第2條直 線重合,方向由交點(diǎn)(JD)指向緩直點(diǎn)(HZ),如圖5所示(此操作在執(zhí)行程序前完成).然后再將UCS坐標(biāo)系繞z軸旋轉(zhuǎn)- a角,此時(shí)UCS地

19、x軸與第1條直線重合,且其方向與緩和曲線所在 坐標(biāo)系地x軸方向一致,如圖6所示;再將UCS坐標(biāo)系地原點(diǎn)平移到直緩點(diǎn)(ZH ),直緩點(diǎn) 在當(dāng)前UCS中地坐標(biāo)為(-TL,0).此時(shí)UCS與緩和曲線地坐標(biāo)系完全重合,如圖7 所示.于是可以利用緩和曲線方程式,計(jì)算緩和曲線上地點(diǎn)地坐標(biāo),并利用樣條曲線命令將各點(diǎn)連成光滑地曲線.此過程可以通過循環(huán) 語句來完成.AutoLISP程序代碼如下:(defunc:hhqx(/RL0alphaqxm p TL E0 X0 y0 alpha1 L L2 L5 P0 hhqx1 hyx hyy yhx yhy qzx qzy p1) (setq R (getreal n

20、 輸入圓曲線地曲率半徑R:)(setqr L0 (getreal n 輸入緩和曲線長度 L0:)(setq alpha (getreal n 輸入轉(zhuǎn)向角 a:)(setq alpha1 (/ (* alpha pi) 180);求緩和曲線常數(shù):m,TL,p,0 x,0 y(setq m (- (/ L0 2) (/ (* L0 L0 L0) (* 240 (* R R)(setq p (/ (* L0 L0) (* 24 R) (setq TL (+ m (* (+ R p) (/ (sin(/ alpha1 2) (cos(/ alpha1 2) (setq x0 (- L0 (/ (* L

21、0 L0 L0) (* 40 R R) y0 (/ (* L0 L0) (* 6 R); 計(jì)算緩圓點(diǎn)地坐標(biāo)(comma nd ucs _z (- 0 alpha)(comma nd ucs or (list (- 0 TL) 0)(setq L 0.)(command spline)(while ( L L0) (setq L2 (* L L) L5 (* L2 L2 L)(setq x (- L (/ L5 (* 40 R R L0 L0) y (/ (* L2 L) (* 6 R L0)(command (list x y) (setq L (+ L 5) )(setq x x0 y y0

22、 p0 (list x y)(command )(setq hhqx1 (ssget L)2. 圓曲線地繪制圓曲線為部分圓弧 ,可以用畫圓弧命令中地 “三點(diǎn)式 ”來繪制 .建立圖 8 所示地坐標(biāo)系 (首先 恢復(fù)到上一個(gè) UCS,然后繞Z軸旋轉(zhuǎn)-a /2)則圓曲線在坐標(biāo)系中對稱于Y軸,圓弧地兩端點(diǎn)(HY 點(diǎn)和 YH 點(diǎn))和曲線中點(diǎn)( QZ 點(diǎn))坐標(biāo)可按下列公式計(jì)算:(setq hyx (- 0 (- (* (- TL x0) (cos (abs(/ alpha1 2)(* y0 (sin (abs(/ alpha1 2)(setq hyy (+ (* (- TL x0) (sin (abs(/

23、alpha1 2)(* y0 (cos (abs(/ alpha1 2)(setq E0 (- (/ (+ R p) (cos(/ alphal 2) R);計(jì)算緩和曲線常數(shù) E0 地值(setq qzx 0 qzy E0); 計(jì)算曲中點(diǎn)地坐標(biāo)(setq yhx (- 0 hyx) yhy hyy); 計(jì)算圓緩點(diǎn)地坐標(biāo)(setq p3 (list hyx hyy) p2 (list qzx qzy) p1 (list yhx yhy) (command arc p1 p2 p3); 畫圓曲 線(command mirror hhqx1 (list 0 0) p2 N); 用鏡像地方法繪制從圓緩

24、點(diǎn)到緩直點(diǎn)地緩 和曲線 .3.3 利用 AutoLISP 語言繪制帶緩和曲線地鐵路曲線平面圖3.3.1 應(yīng)用背景在鐵路工務(wù)部門地日常鐵路設(shè)計(jì).施工 .維護(hù)工作中 ,經(jīng)常需要繪制鐵路線路平面圖,而鐵路線路平面圖繪制地難點(diǎn)在于繪制帶緩和曲線地鐵路曲線.由于緩和曲線地坐標(biāo)位置是通過高次方程計(jì)算得來 ,具有非線性地特點(diǎn) ,因此很難在圖紙上繪制出準(zhǔn)確地位置 .無論是使用手 工制圖或在計(jì)算機(jī)上通過 AutoCAD 制圖 ,技術(shù)人員通常是通過近似位置地方法繪制,這種方法不光需要花費(fèi)大量地時(shí)間用于曲線要素.曲線起訖里程地計(jì)算 ,而且線位坐標(biāo)也不準(zhǔn)確.AutoCAD不但具有完善地繪圖功能良好地用戶界面,而且允許

25、用戶進(jìn)行二次開發(fā)基于AutoCAD 自帶地 Visual LISP(VLISP )編程軟件環(huán)境下 ,利用 AutoLISP 語言進(jìn)行二次開發(fā) , 可以實(shí)現(xiàn)帶緩和曲線地鐵路曲線平面圖自動(dòng)繪制 .3.3.2 AutoLISP 程序開發(fā)思路根據(jù)帶緩和曲線地鐵路曲線特點(diǎn) ,本著為使用者創(chuàng)造一個(gè)良好地人機(jī)交互環(huán)境,本程序在每一個(gè)步驟都設(shè)計(jì)了文字提示 ,用戶只需按照 Auto-CAD 文本框中地提示輸入已知參數(shù) ,就能 完成整個(gè)繪制過程 .整個(gè)計(jì)算過程采用模塊化設(shè)計(jì)思想 ,以消息觸發(fā)方式編程 ,將程序分成 3 個(gè) 子程序模塊 ,使整個(gè)程序結(jié)構(gòu)合理且易于維護(hù) .3.3.3 曲線基本方程式1. 緩和曲線常數(shù)計(jì)

26、算R 曲線半徑;lo 緩和曲線長;a曲線偏角;3 o和曲線地切線角,即HY (或YH )點(diǎn)地切線與ZH (或HZ )點(diǎn)切線地交角;So緩和曲線地總偏角;m切垂距,即ZH (或HZ )都圓心O向切線所做垂線垂足地距離;p 圓曲線內(nèi)移量 ,為垂線長與圓曲線半徑 R 之差.2. 曲線要素計(jì)算T 切線長;L 曲線長;Eo 外矢距;q 切曲差 .3. 坐標(biāo)計(jì)算以ZH (或HZ )為坐標(biāo)原點(diǎn),切線為x軸,垂直切線方向?yàn)閥軸:3.4 自動(dòng)繪制緩和曲線加圓曲線地方法探討3.4.1 問題地提出鐵路線路由于受地形 .地物或其他因素地限制,往往需要改變方向 .在線路改變方向處 ,相鄰兩條直線間要求用曲線連接起來,這

27、種曲線稱為平面曲線,它主要分為圓曲線和緩和曲線.圓曲線是具有一定曲率半徑地圓弧,緩和曲線是連接直線與圓曲線地過渡曲線,其曲率半徑由無窮大直線地半徑 (逐漸變化為圓曲線半徑 .鐵路線路平面圖上要繪出圓曲線和緩和曲線.在手工繪圖時(shí)代 ,曲線采用標(biāo)有半徑地曲線板和直尺畫出 ,誤差很大 ,但在計(jì)算機(jī)繪圖時(shí)代 ,經(jīng)常 需要精確地繪出線路地圓曲線和緩和曲線 ,以便準(zhǔn)確地算出線路中心至地面上某點(diǎn)地距離以 及復(fù)線地段兩條曲線間地距離,這對于選線和優(yōu)化設(shè)計(jì)有很重要地作用.3.5AutoCAD 在公路路線繪圖中地應(yīng)用3.5.1 背景近年來 AutoCAD 技術(shù)飛速發(fā)展 ,在公路設(shè)計(jì)中地應(yīng)用十分廣泛,文章就繪制公路

28、緩和曲線及里程樁地標(biāo)注和加文字注解等幾方面進(jìn)行闡述.我們采用 AutoCAD 來進(jìn)行公路設(shè)計(jì) .我們利用測量得出數(shù)據(jù) A 點(diǎn)坐標(biāo)為 X=213.7748,Y=92.1117 ; B 點(diǎn)坐標(biāo)為 X=313.7748,Y=92.1117 ; C 點(diǎn) 坐 標(biāo) 為 X=399.6787,Y=143.3026, 繪 制 路 線 導(dǎo) 線 . 利 用 測 量 得 出 數(shù) 據(jù) 1 點(diǎn) 坐 標(biāo) X=232.9548,Y=92.1117 ; 2點(diǎn)坐標(biāo) X=285.3608,Y=94.4667 ; 3點(diǎn)坐標(biāo) X=311.8101,Y=99.2371 ; 4 點(diǎn)坐標(biāo) X=336.9780,Y=108.6801 ; 5

29、點(diǎn)坐標(biāo) X=383.6319,Y=133.7401 繪制與路線導(dǎo)線相切地 緩和曲線 .繪制完地成圖如圖 1.3.5.2 含緩和曲線地平曲線繪制分析:由于 AutoCAD 不能直接繪制緩和曲線 ,在 AutoCAD 中既可以用 Pline (多義線) 命令繪制通過12345點(diǎn)地折線,然后,再用Pedit (多義線編輯)命令選擇其中“S(樣條曲線化) ”命令選項(xiàng) ,這樣可以把折線變成光滑地樣條曲線.另外 ,也可以采用真樣條曲線命令繪制 .而 AutoCAD 中地真樣條曲線最接近公路平曲線地形狀,在常用比例尺地情況下 ,肉眼分辨不出兩者在圖紙上地區(qū)別 ,所以我們采用真樣條曲線命令 Spline 繪制

30、緩和曲線 .下面我們分兩步 來完成含緩和曲線地平曲線地繪制 . 繪制路線導(dǎo)線利用Pline (多義線)命令繪制,在命令行輸入Pline命令 ,根據(jù)命令行提示依次輸入點(diǎn)地坐標(biāo) 繪制步驟如下:命令: _pline指定起點(diǎn):213.7748,92.1117指定下一個(gè)點(diǎn)或圓弧(A)/半寬(H )/長度(L )/放棄(U )/寬度(W ): 313.7748,92.1117 指定下一個(gè)點(diǎn)或圓弧( A) /閉合( C) /半寬( H) /長度( L) /放棄( U) /寬度( W): 399.6787,143.3026結(jié)束后得到圖 1 中地 ABC 折線 . 繪制通過 1.2.3.4.5 主點(diǎn)與路線導(dǎo)線相

31、切地含緩和曲線地平曲線.使用真樣條曲線命令繪制含緩和曲線地平曲線 .基本步驟如下:命令: spline指定第一個(gè)點(diǎn)或?qū)ο螅?O ):232.9548,92.1117指定下一點(diǎn): 285.3608,94.4667指定下一點(diǎn)或閉合( C) 指定下一點(diǎn)或閉合( C) 指定下一點(diǎn)或閉合( C) 指定下一點(diǎn)或閉合( C)/擬合公差( F) 起點(diǎn)切向 /擬合公差( F) 起點(diǎn)切向 /擬合公差( F) 起點(diǎn)切向 /擬合公差( F) 起點(diǎn)切向 311.8101,99.2371336.9780,108.6801383.6319,133.7401指定起點(diǎn)切向: 232.9548,92.1117指定端點(diǎn)切向: 38

32、3.6319,133.7401在這里我們要注意起點(diǎn)切向和端點(diǎn)切向地選擇,它們分別是 1 點(diǎn)坐標(biāo)和 5 點(diǎn)坐標(biāo) .到此我們已把含緩和曲線地平曲線部分繪制完成3.5.3 里程樁地標(biāo)注和圖形地文字注解我們要在 1.2.3.4.5 點(diǎn),5 個(gè)主點(diǎn)繪制 5個(gè)曲線主點(diǎn)樁 ,可以分為以下幾個(gè)步驟進(jìn)行1. 繪制曲線路段地法線 我們可以利用偏移命令(Ofset)把緩和曲線向曲線彎道內(nèi)側(cè)作偏移,偏移距離為5個(gè)單位 .步驟如下:命令: _offset指定偏移距離或 通過( T) 通過 :5選擇要偏移地對象或 退出 : 我們用點(diǎn)命令(Point)繪制出12345點(diǎn). 把對象捕捉模式中地垂足捕捉模式和結(jié)點(diǎn)捕捉模式選中.

33、2. 曲線主點(diǎn)樁和里程標(biāo)注利用繪圖菜單下地文字命令中地單行文字命令 ,以 1 點(diǎn)樁號(hào)標(biāo)注為例 ,具體操作步驟如 下:命令: _dtext指定文字地旋轉(zhuǎn)角度 0 :90輸入文字: k10+119.067注意 ,文字地起點(diǎn)選在適當(dāng)?shù)匚恢?,旋轉(zhuǎn)角度選擇合適地角度 .2.3.4.5 點(diǎn)地樁號(hào)標(biāo)注與其 相同 .標(biāo)注效果中地 1.2.3.4.5 點(diǎn)上面地文字標(biāo)注 .以上事例為 AutoCAD 在公路設(shè)計(jì)中地一個(gè) 例子 ,我們應(yīng)該更加努力地去思考和研究如何利用CAD 去解決公路設(shè)計(jì)中地現(xiàn)實(shí)問題 .3.6 Visual lisp 程序在土方斷面圖繪制上地應(yīng)用3.6.1 前沿與介紹AutoCAD 是使用十分廣

34、泛地計(jì)算機(jī)輔助設(shè)計(jì)繪圖軟件 ,面世以來 ,其豐富地繪圖功能 ,強(qiáng) 大地編輯功能和良好地用戶界面深受廣大工程設(shè)計(jì)制圖人員地普遍歡迎.然而大量重復(fù)性工作又使得工程設(shè)計(jì)制圖人員為之頭疼 .CAD 系統(tǒng)提供軟件地界面 .環(huán)境.核心算法 .數(shù)據(jù)庫及設(shè) 計(jì)需要相關(guān)地 .較專業(yè)地支持軟件 ,而在工程測量中 CAD 無法方便地繪制工程所需地?cái)嗝鎴D . 示意圖等 .Visual lisp 是由 Autodesk 公司開發(fā)地一種 lisp 程序語言 ,Visual lisp 功能非常強(qiáng)大 ,除了本 身提供豐富地功能函數(shù)外,還可以使用 Activex 進(jìn)行組件方式地編程 ,充分使用第三方所提供地ActiveX,使得

35、Visual lisp幾乎是無所不能,如可以進(jìn)行數(shù)據(jù)庫訪問.生成Word文檔.Excel報(bào) 表等等 .Visual lisp 是個(gè)可視化地確 LISP 語言開發(fā)環(huán)境 ,適合開發(fā)小型規(guī)模地應(yīng)用程序軟件.3.6.2 程序設(shè)計(jì)與實(shí)現(xiàn)1.簡介該程序地運(yùn)行是以 AutoCAD2005 為平臺(tái) ,利用 Visual lisp 語言進(jìn)行地程序開發(fā) ,讀取我院 自行開發(fā)地?cái)嗝娣ㄍ练搅坑?jì)算程序地?cái)嗝鏀?shù)據(jù),實(shí)現(xiàn)斷面序號(hào) .斷面樁號(hào) .原現(xiàn)斷面圖地快速自動(dòng)繪制 .2.斷面數(shù)據(jù)格式394 斷面?zhèn)€數(shù)1,0.0,6,4 斷面序號(hào) ,斷面樁號(hào) ,原斷面?zhèn)€數(shù) ,現(xiàn)斷面?zhèn)€數(shù)18.59,307.6 高程 ,距離(原斷面 min

36、)18.74,317.0高程 ,距離17.56,317.017.56,326.019.11,326.019.11,330.0高程 ,距離(原斷面 max)19.11,330.0高程 ,距離(現(xiàn)斷面 max)19.50,329.6高程 ,距離19.50,307.518.59,307.6高程 ,距離(現(xiàn)斷面 min)2,8.0,2,2斷面序號(hào) ,斷面樁號(hào) ,原斷面?zhèn)€數(shù) , 現(xiàn)斷面?zhèn)€數(shù)18.59,310.018.59,331.019.50,331.019.50,310.03. 設(shè)計(jì)思路4. 源程序(DEFUN C:dmv ()(setvar cmdecho 0)(setq fd (open (get

37、filed 打開數(shù)據(jù) dat 16) R) (setq n (READ-LINE FD) n (read n) a 0 jgjs nil pt1 nil pt2 nil abc nil )(setq i 0 j 0 )(SETQ ABC (GETINTn 注記樁號(hào) (2)都要注記 (3)(if (= abc nil) (setq abc 1)(alert 距離比例尺為 1:1000,高程比例要自己設(shè)定 )(setq bl (getint n 請輸入高程比例尺 )(if (= bl nil) (setq bl 500)(setq jg (getint n 請輸入斷面間隔 )(if (= jg nil) (setq jg 30)(setq ptO (getpoint n 請輸入斷面圖地基點(diǎn) :)(if (= ptO nil) (setq ptO (list 0 0) (setq ptO (getpoint)(setq bl n (/1000 bl)(while (and (= i 0) (= i n) (setq xx (READ-LINE FD)(setq xx1 (

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論