郭曉靜
(成都文理學(xué)院 建筑學(xué)院,四川 成都 610401)
用管道輸送石油常需跨越山地、河流、公路等。傳統(tǒng)設(shè)計(jì)一般是在跨越兩邊設(shè)立塔架,通過(guò)主索、抗風(fēng)索、吊索將輸油管道拉起,完成跨越。每一個(gè)跨越根據(jù)不同的結(jié)構(gòu)受力和施工條件,繪制施工圖,這將耗費(fèi)大量的時(shí)間和精力。本文提出以AutoCAD為平臺(tái),運(yùn)用AutoLISP語(yǔ)言,整合基本數(shù)據(jù),自動(dòng)繪制跨越式輸油管施工圖。
根據(jù)地形勘測(cè),已先行確定地形線、輸油管位置、后錨墩及抗風(fēng)索錨墩位置等,如圖1。
圖1 地形線、輸油管位置、后錨墩及抗風(fēng)索錨墩位置
在自動(dòng)繪圖程序中,用戶數(shù)據(jù)都是通過(guò)AutoCAD界面的DCL對(duì)話框輸入的。如主索和抗風(fēng)索的直徑間距和矢跨高、外界的荷載和溫度等。
button(按鈕)和edit_box(編輯框)是本程序中最主要的兩個(gè)DCL對(duì)話框控件[1-2]。用戶點(diǎn)擊button(按鈕)選擇下一步操作,如圖2(a);用戶在edit_box(編輯框)窗口輸入或編輯數(shù)據(jù),如圖2(b)。
圖2 button(按鈕)和edit_box(編輯框)
在用戶數(shù)據(jù)中,有一種給出方式比較獨(dú)特。在圖1(a)中的輸油管端點(diǎn)位置、后錨墩及抗風(fēng)索錨墩頂點(diǎn)位置都是已經(jīng)確定的,需要用戶從AutoCAD界面讀取它們。過(guò)去一般用圖層管理的辦法,求不同圖層的交點(diǎn)得到上述控制點(diǎn)的位置。但是此種方法必須在AutoCAD界面重新設(shè)置多個(gè)圖層,以區(qū)別各個(gè)交點(diǎn),較為復(fù)雜。
本程序采用用戶和AutoCAD交互式輸入的方式,由DCL對(duì)話框提示用戶捕捉控制點(diǎn),如圖3(a)。用戶對(duì)控制點(diǎn)進(jìn)行圈選[1],AutoLISP數(shù)據(jù)接口程序?qū)⒌玫娇刂泣c(diǎn)的坐標(biāo),并計(jì)算出相關(guān)點(diǎn)之間的距離。DCL對(duì)話框還提供用戶對(duì)捕捉點(diǎn)正確性的驗(yàn)證界面如圖2(a),用戶通過(guò)點(diǎn)擊button(按鈕),使捕捉過(guò)程可跟蹤、可重復(fù)、可修改。點(diǎn)捕捉語(yǔ)句和坐標(biāo)計(jì)算語(yǔ)句如下:
(setq en1 (entsel "圈選控制點(diǎn):"))
(setq pt1 (cdr (assoc 10 (entget (car en11)))))
(setq pt1x (car pt1))
大部分的用戶數(shù)據(jù)是已知數(shù)據(jù)或經(jīng)驗(yàn)數(shù)據(jù),需要用戶通過(guò)DCL對(duì)話框的編輯框輸入,并自動(dòng)保存在AutoCAD棧區(qū)變量中[3]。以下給出,主索吊索間距設(shè)置語(yǔ)句和修改界面如圖2(b)。
(set_tile "kd1" "4000")
(setq d1 (atoi (get_tile "kd1")))
本程序的數(shù)據(jù)流程比較復(fù)雜,為使操作步驟清楚,便于數(shù)據(jù)修改,本軟件包使用AutoCAD的menuload命令在AutoCAD平臺(tái)下創(chuàng)建了新菜單。程序中所有繪圖任務(wù)被分為六步工作,組合進(jìn)一個(gè)自行開(kāi)發(fā)的下拉菜單[4-5],如圖3。下拉菜單調(diào)用的部分語(yǔ)句如下:
***POP1
[pipe-laying]
[->1用戶數(shù)據(jù)輸入]
[a控制點(diǎn)捕捉]^C^C^P(load"d:/lsp/os.lsp")(c:os)
圖3 操作步驟圖
綜合比較運(yùn)行速度、界面生成、編程實(shí)現(xiàn)難易等各方面
因素,利用AutoCAD軟件的二次開(kāi)發(fā)工具AutoLISP語(yǔ)言,開(kāi)發(fā)了跨越式輸油管自動(dòng)設(shè)計(jì)與繪圖程序。本程序解決了計(jì)算和繪圖效率問(wèn)題。用戶只需通過(guò)DCL對(duì)話框輸入少量數(shù)據(jù),整個(gè)計(jì)算繪圖過(guò)程由程序自動(dòng)完成,有較強(qiáng)的實(shí)用性和通用性。
[ID:009693]