国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用VisualLisp語言實現(xiàn)CAD中軸線任意點(diǎn)的中邊樁計算

2011-04-03 01:39陳俊樣劉新華
浙江水利科技 2011年3期
關(guān)鍵詞:方位角二次開發(fā)軸線

張 煒,陳俊樣,劉新華

(1.永嘉縣水利水電勘測設(shè)計院,浙江 溫州 325100;2.金華市婺州土地勘測規(guī)劃院,浙江 金華 323000)

1 問題的提出

樁號的定位及標(biāo)注過程中主要遇到以下幾個問題:①在初設(shè)階段,需要分段確定地理位置 (如道路工程中經(jīng)過河流山川需要設(shè)計橋涵隧洞等),當(dāng)確定設(shè)計軸線后對地段的樁號進(jìn)行確定;②在工程施工階段,局部需要變更(如遇到地質(zhì)情況變化較大,需要對局部地段進(jìn)行工程位置的說明);③在竣工階段,工程資料整理及技術(shù)報告的編制需要準(zhǔn)確確定實地位置,坐標(biāo)可以表示絕對位置,但不直觀,采用樁號的表示更加形象直觀。

以上3種情況都需要對實地位置進(jìn)行快速確定樁號,便于對工程進(jìn)行直觀形象的描述。傳統(tǒng)的方法采用計算器進(jìn)行計算,則參數(shù)多計算繁瑣,數(shù)據(jù)的輸入和輸出過程容易出錯;采用EXCEL軟件編程進(jìn)行計算雖然比較方便,但不能自動判斷樁號點(diǎn)位置的線段類型(直線、圓曲線等)無法實現(xiàn)數(shù)據(jù)的全過程電腦計算智能化。在AutoCAD中軟件所帶的功能操作繁瑣,同樣無法實現(xiàn)計算自動化。利用Lisp語言基于傳統(tǒng)的數(shù)學(xué)理論基礎(chǔ)上對CAD進(jìn)行二次開發(fā),實現(xiàn)中邊樁、坐標(biāo)數(shù)據(jù)一次性輸出的智能化程序。

2 程序設(shè)計原理

Lisp程序語言作為最早的函數(shù)式程序設(shè)計語言,主要特點(diǎn)是語言的簡明性和獨(dú)特的表達(dá)能力,集成了大量的平面、立體幾何的算法,并且在CAD中能夠方便地調(diào)用大量的CAD命令來彌補(bǔ)語言中某些繁瑣的步驟,可以將多個CAD命令變成1個程序集,逐漸成為CAD二次開發(fā)最為重要的程序語言之一[1]。利用Lisp語言對對CAD進(jìn)行二次開發(fā),旨在拋磚引玉,希望更多的測量技術(shù)人員能夠利用Lisp語言去解決更多測量問題,使測量技術(shù)實現(xiàn)智能化,計算自動化。

2.1 介紹3個重要的函數(shù)[2]

2.1.1 函數(shù)1-vlax-curve-getDistAtPoint curve-objdist

該函數(shù)的主要功能是計算出在曲線上選定點(diǎn)至曲線起始點(diǎn)的長度L,所包含的曲線包括樣條曲線、橢圓、圓弧、直線 (可以當(dāng)做曲線的特殊形式)等,曲線必須以多段線的形式出現(xiàn)。

2.1.2 函數(shù)2-vlax-curve-getClosestPointTo curve-obj givenPnt[extend]

該函數(shù)的主要功能是計算出指定點(diǎn)至曲線上的最近點(diǎn)(垂足),根據(jù)該函數(shù)及2點(diǎn)的距離公式即可求出指定點(diǎn)至曲線的邊樁距dx。

2.1.3 函數(shù)3-vlax-curve-getFirstDeriv obj param

該函數(shù)的主要功能是計算出曲線上選定點(diǎn)的一階導(dǎo)數(shù)(斜率),根據(jù)該點(diǎn)的斜率可以求出該點(diǎn)的法線方位角。

圖1 程序設(shè)計原理圖

2.2 程序設(shè)計原理

程序設(shè)計原理見圖1:首先根據(jù)函數(shù)1求出,A、B、C三點(diǎn)的軸線樁里程分別為DK1、DK2、DK3;利用函數(shù)2分別求出 A、B、C 3點(diǎn)在軸線上垂足坐標(biāo)A′、B′、C′;利用函數(shù)3分別求出垂足坐標(biāo)A′、B′、C′的斜率,根據(jù)該點(diǎn)的斜率求出法線方位角,同時求出待定點(diǎn)至投影點(diǎn)的方位角與法線方位角比較,若為正則表示為右邊樁,反之類推;利用2點(diǎn)間的距離公式分別求出A、B、C三點(diǎn)的垂距S1、S2、S3;根據(jù)以上3步得出A、B、C 3點(diǎn)的樁號分別為:A點(diǎn)里程DK1左偏S1;B點(diǎn)DK2左偏S1=0即為中樁,里程為DK2;C點(diǎn)里程DK3右偏S3。

2.3 程序應(yīng)用

該程序適用于直線、圓曲線、緩和曲線(緩和曲線采用積木法繪制)等各類曲線的中邊樁樁號的計算與標(biāo)注。只要是在CAD繪圖軟件中繪制的軸線就可以進(jìn)行計算標(biāo)注,對于中斷的軸線僅需在第2段軸線上加上起始樁號即可。程序的最大優(yōu)點(diǎn)是隨時調(diào)用,成果及時顯示,無需人工進(jìn)行計算,但程序運(yùn)行需要注意軸線必須是連續(xù)的多段線 (PL線)。

2.4 程序設(shè)計代碼

(defun c:zhbz);樁號標(biāo)注

(setq htbl(getint″ 請指定繪圖比例尺 1∶<1000>″))

(setq pline(entsel″ 請選擇需要標(biāo)注樁號的軸線″))

(setq qdzh(getreal″ 請輸入起始樁號值∶<0>″))

(setq pointzh(getpoint″ 請指定需要標(biāo)注的樁號位置″))

(while pointzh)

(setq zb2(getpoint pointzh))

(setq pointzh1(vlax-curve-getclosestpointto aa pointzh));標(biāo)注樁號位置在軸線上投影點(diǎn)

(setq bzj(distance pointzh pointzh1));根據(jù)函數(shù)求邊樁距,判斷點(diǎn)是否在軸線上

(setq zh(+qdzh(vlax-curve-getDistAtPoint aa pointzh1)));求出標(biāo)注點(diǎn)的中心樁號

(if(>=bzj 0.005)(bzjs);邊樁計算子程序

(zzjs));中樁計算子程序)根據(jù)邊樁距是否為零判斷標(biāo)注點(diǎn)的左中右樁號

(setq pointzh(getpoint″ 請指定需要標(biāo)注的樁號位置″))

);endwhile)

(prompt″ 請輸入<<zhbz>>命令來運(yùn)行本程序″)

3 程序運(yùn)行實例

啟動AutoCAD軟件,命令行輸入 “Appload”加載程序:“任意點(diǎn)樁號標(biāo)注.lsp”,輸入zhbz命令——指定繪圖比例尺 (默認(rèn)為1∶1000,若需要更改僅需改變比例尺分母即可。)——選擇需要標(biāo)注的中樁線——指定樁號起始值(主要考慮局部軸線起點(diǎn)樁號不為零)——指定標(biāo)注樁號的位置——若結(jié)束按空格或回車 (注:軸線的關(guān)鍵點(diǎn)轉(zhuǎn)折點(diǎn)等需要事先用多段線連接起來)(見圖2)。

圖2 程序運(yùn)行圖

4 結(jié) 語

此程序極大地減少了內(nèi)業(yè)計算的工作量,盡可能避免人工計算出錯的可能性,從而大大提高了工作效率。特別適合河道軸線樁號的放樣及道路工程軸線的放樣。Visuallisp語言作為CAD軟件的一種內(nèi)嵌二次開發(fā)語言,必然會創(chuàng)造出更多更好的程序,為我們的測量工作提供更快更好的發(fā)展平臺。

[1]李青岳,陳永奇.工程測量學(xué) [M].2版.北京:北京測繪出版社,1995.

[2]吳永進(jìn),林美櫻.AutoLISP&DCL基礎(chǔ)篇[M].北京:中國鐵道出版社,2002.

猜你喜歡
方位角二次開發(fā)軸線
考慮橋軸線方位角影響的曲線箱梁日照溫差效應(yīng)
曲軸線工件劃傷問題改進(jìn)研究
空鐵聯(lián)運(yùn)+城市軸線,廣州北“珠江新城”崛起!
大咖妙語論道!于軸線之上開啟廣州城央最宜居的大未來!
近地磁尾方位角流期間的場向電流增強(qiáng)
西門子Operate高級編程的旋轉(zhuǎn)坐標(biāo)系二次開發(fā)
淺談Mastercam后處理器的二次開發(fā)
現(xiàn)代園林景觀設(shè)計中軸線控制手法應(yīng)用研究
基于停車場ETC天線設(shè)備的定位算法實現(xiàn)
西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)