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