郭晓静
(成都文理学院 建筑学院,四川 成都 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]