版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 使用LISP語言實(shí)現(xiàn)在平面圖中自動畫出橋梁的墩柱標(biāo)識</p><p> 摘 要:以往在平面圖中畫墩柱標(biāo)識是一件費(fèi)時費(fèi)力,生產(chǎn)力低下的工作,本文討論了如何使用LISP語言實(shí)現(xiàn)該項(xiàng)工作,以極大的節(jié)省時間,提高共效率。 </p><p> 關(guān)鍵詞: LISP橋梁墩柱 </p><p> 中圖分類號:TU997 文獻(xiàn)標(biāo)識碼: A </p&g
2、t;<p><b> 1.以前工作狀況 </b></p><p> 在平面圖中畫橋梁墩柱的標(biāo)識是一件大量的繁瑣的重復(fù)性的工作,以往的做法是: </p><p> 依據(jù)路基寬度確定墩柱的間距和位置,依據(jù)橋梁的斜交角度確定是雙柱墩還是三柱墩,然后把每一種角度的墩柱標(biāo)識各做成一個塊(如圖一),再分別一個一個的粘貼進(jìn)平面圖,再旋轉(zhuǎn)該塊而成(如圖二)。非常繁
3、瑣而且需要大量的時間。(當(dāng)然以上方法僅適用于普通橋梁的標(biāo)準(zhǔn)墩柱標(biāo)識,對于特殊要求的墩柱型式還是以橋梁組提供的為準(zhǔn)。以下LISP語言實(shí)現(xiàn)的也僅是畫出標(biāo)準(zhǔn)墩柱標(biāo)識。) </p><p><b> 圖一 </b></p><p><b> 圖二 </b></p><p> 2.LISP語言及編程方法 </p>
4、<p> LISP語言的先天特性就是可以處理AutoCAD中大量重復(fù)性的工作,以節(jié)省時間和提高效率,下面我們就來看看該怎么實(shí)現(xiàn)這個自動畫墩柱的程序呢? </p><p> 我一直認(rèn)為編程最好的方法就是分解法,把要實(shí)現(xiàn)的目標(biāo)分解成若干個模塊,然后一步一步的去實(shí)現(xiàn)。這有利于減少整個工作的難度,有利于增加或者減少程序功能,有利于出現(xiàn)問題時的溯源以便于查錯糾錯,而且可以提高不少工作效率。 </p&g
5、t;<p> 這個程序也是這樣,首先我依據(jù)需求和平時做這項(xiàng)工作的特性,理出大致的程序結(jié)構(gòu),分別為: </p><p> {主程序:負(fù)責(zé)調(diào)用記錄系統(tǒng)變量和恢復(fù)系統(tǒng)變量,調(diào)用功能實(shí)現(xiàn)子模塊; </p><p> 判斷程序:判斷各變量狀態(tài); </p><p> 功能實(shí)現(xiàn)子程序:使用判斷程序和畫出墩柱程序,依據(jù)各種狀態(tài)按要求實(shí)現(xiàn)程序功能; </p
6、><p><b> 畫出墩柱程序。} </b></p><p> 3.自動畫橋墩的具體實(shí)現(xiàn) </p><p><b> 3.1主程序: </b></p><p> 這里記錄了各個系統(tǒng)變量狀態(tài),由于本程序需要使用visual函數(shù),所以需要預(yù)先加載visual函數(shù)接口,調(diào)用了所需的AutoCAD線型
7、,調(diào)用了功能實(shí)現(xiàn)子程序,且程序運(yùn)行結(jié)束后需恢復(fù)各系統(tǒng)變量。程序?qū)崿F(xiàn)如下: </p><p> (defun c:qd() </p><p> (setvar "cmdecho" 0) </p><p> (command "undo" "be") </p><p> (set
8、q osmode (getvar "osmode")) </p><p> (setvar "osmode" 0) </p><p> (vl-load-com) </p><p> (if(not(tblsearch "ltype" "dashed"))(command &quo
9、t;-linetype""load" "dashed" "" "")) </p><p> (setq f (ssget '((0 . "LWPOLYLINE")))) </p><p> (get_length f) </p><p> (c
10、ommand "_copy" f "" '(0 0 ) '(0 0)) </p><p> (command "_erase" f "") </p><p> (command "_ucs" "w") </p><p> (s
11、etvar "osmode" osmode) </p><p> (command "undo" "e") </p><p><b> (princ) </b></p><p><b> ) </b></p><p> 3.2畫出墩
12、柱程序: </p><p> 使用功能實(shí)現(xiàn)子程序所確定的位置畫出墩柱。 </p><p> (defun DrawC(yuanx / ) </p><p> (entmake (list (cons 0"CIRCLE") </p><p> (cons 100 "AcDbEntity") <
13、;/p><p> (cons 100 "AcDbCircle") </p><p> (cons 8 "橋墩") </p><p> (cons 6 "DASHED") </p><p> (cons 48 0.01) </p><p> (list 1
14、0 (car yuanx) (cadr yuanx) 0.0) </p><p> (cons 40 0.8) </p><p> (cons 62 5) </p><p><b> )) </b></p><p> (entmake (list (cons 0"CIRCLE") </p
15、><p> (cons 100 "AcDbEntity") </p><p> (cons 100 "AcDbCircle") </p><p> (cons 8 "橋墩") </p><p> (cons 6 "DASHED") </p>&l
16、t;p> (cons 48 0.01) </p><p> (list 10 (car yuanx) (cadr yuanx) 0.0) </p><p> (cons 40 0.85) </p><p> (cons 62 5) </p><p><b> )) </b></p><
17、p><b> ) </b></p><p> 3.3判斷程序和功能實(shí)現(xiàn)子程序: </p><p> 由于本程序?qū)儆诒容^單一和簡單的功能實(shí)現(xiàn)集,所以在后來的調(diào)試完成時,我把判斷程序和功能實(shí)現(xiàn)子程序合并成了一個模塊。 </p><p> 在該模塊中,使用主程序所確定的選擇集,首先需要用戶輸入路基的寬度,以確定可使用半幅橋梁墩柱的總寬度
18、。 </p><p> 依據(jù)索引值取出選擇集中的圖元,然后再把圖元轉(zhuǎn)對象,取得該對象的長度、起始坐標(biāo)值、終止坐標(biāo)值以及該對象的寬度。對象寬度用以判斷該多義線是否為橋梁邊線。再依據(jù)FlagK值確定該對象是否需要在下面的轉(zhuǎn)字符串語句中剔除。 </p><p> 把經(jīng)過以上步驟取出的對象坐標(biāo)按格式轉(zhuǎn)字符串并連接起來,形成所有符合條件的對象的坐標(biāo)記錄字符串。 </p><p
19、> 然后進(jìn)入判斷并畫出墩柱部分,在這里,我們需要判斷所取得對象是否是處在橋臺位置,若是,則使用空的(progn)語句忽略該對象,若不是,則需判斷該對象與主線交叉角度是否大于等于30°,若大于等于30°則使用三柱墩的型式并計(jì)算出每個墩柱的坐標(biāo)位置,若不是則使用雙柱墩的型式并計(jì)算出每個墩柱的坐標(biāo)位置,在這里,還需進(jìn)一步判斷該對象是整幅橋梁還是左右幅形式的橋梁,以決定在該對象上所需畫出總的墩柱個數(shù)。然后調(diào)用畫出墩柱
20、程序生成墩柱。 </p><p> 整個功能模塊的代碼簡略如下: </p><p> (defun get_length(dyx / ls ls1 ls2 NC FlagK ljkd shum JISHU NXS obj ent nqd nzd ncd njd YX1 YX2 YX3 YX4 YX5 YX6) </p><p> (setq ljkd (get
21、real "\n請輸入路基寬度:")) </p><p><b> ………… </b></p><p><b> ) </b></p><p> 4.具體使用和總結(jié) </p><p> 使用本程序只需用戶在AutoCAD中預(yù)先加載本程序,輸入qd命令,框選所有的已生成的橋
22、梁多義線,根據(jù)提示輸入路基寬度即可自動畫出所需的所有的墩柱標(biāo)識。使得原本需要一天甚至更長時間才能完成的工作,在幾分鐘甚至一分鐘之內(nèi)完成,極大的節(jié)省了勞動時間,提高了勞動效率。 </p><p> 以上,程序若有錯漏,敬請指正。 </p><p><b> 參考文獻(xiàn): </b></p><p> 1、《AutoLISP語言程序設(shè)計(jì)》郭秀娟,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 總平面圖中的常用圖例
- 橋梁墩柱修補(bǔ)方案
- 淺談橋梁高墩柱的施工
- 橋梁墩柱施工方案
- 橋梁墩柱施工方案
- visual lisp 在 cad 繪制地籍圖中的應(yīng)用
- 平面圖中關(guān)于丁國力猜想的證明.pdf
- 柱布置平面圖.dwg
- 橋梁墩柱施工技術(shù)交底
- 橋梁墩柱專項(xiàng)施工方案
- 凱撒密碼--c語言實(shí)現(xiàn)
- 柱布置平面圖.dwg
- 柱布置平面圖.dwg
- 市政橋梁墩柱施工方案
- 橋梁墩柱施工質(zhì)量通病的防治
- 無限平面圖中的哈密頓圈.pdf
- 橋梁墩柱及系梁技術(shù)交底
- 橋梁墩柱首件施工方案
- 感知機(jī)算法的c語言實(shí)現(xiàn)
- 感知機(jī)算法的c語言實(shí)現(xiàn)
評論
0/150
提交評論