基于AutoLISP的跨越式输油管线自动绘制

2020-06-29 10:00郭晓静
四川建材 2020年6期
关键词:对话框控制点绘图

郭晓静

(成都文理学院 建筑学院,四川 成都 610401)

1 数据分析

用管道输送石油常需跨越山地、河流、公路等。传统设计一般是在跨越两边设立塔架,通过主索、抗风索、吊索将输油管道拉起,完成跨越。每一个跨越根据不同的结构受力和施工条件,绘制施工图,这将耗费大量的时间和精力。本文提出以AutoCAD为平台,运用AutoLISP语言,整合基本数据,自动绘制跨越式输油管施工图。

根据地形勘测,已先行确定地形线、输油管位置、后锚墩及抗风索锚墩位置等,如图1。

图1 地形线、输油管位置、后锚墩及抗风索锚墩位置

2 AutoLISP程序的用户数据输入

在自动绘图程序中,用户数据都是通过AutoCAD界面的DCL对话框输入的。如主索和抗风索的直径间距和矢跨高、外界的荷载和温度等。

button(按钮)和edit_box(编辑框)是本程序中最主要的两个DCL对话框控件[1-2]。用户点击button(按钮)选择下一步操作,如图2(a);用户在edit_box(编辑框)窗口输入或编辑数据,如图2(b)。

图2 button(按钮)和edit_box(编辑框)

2.1 捕捉控制点获取相关数据

在用户数据中,有一种给出方式比较独特。在图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))

2.2 相关绘图和计算数据的输入

大部分的用户数据是已知数据或经验数据,需要用户通过DCL对话框的编辑框输入,并自动保存在AutoCAD栈区变量中[3]。以下给出,主索吊索间距设置语句和修改界面如图2(b)。

(set_tile "kd1" "4000")

(setq d1 (atoi (get_tile "kd1")))

3 建立独立的用户菜单文件

本程序的数据流程比较复杂,为使操作步骤清楚,便于数据修改,本软件包使用AutoCAD的menuload命令在AutoCAD平台下创建了新菜单。程序中所有绘图任务被分为六步工作,组合进一个自行开发的下拉菜单[4-5],如图3。下拉菜单调用的部分语句如下:

***POP1

[pipe-laying]

[->1用户数据输入]

[a控制点捕捉]^C^C^P(load"d:/lsp/os.lsp")(c:os)

图3 操作步骤图

4 结 论

综合比较运行速度、界面生成、编程实现难易等各方面

因素,利用AutoCAD软件的二次开发工具AutoLISP语言,开发了跨越式输油管自动设计与绘图程序。本程序解决了计算和绘图效率问题。用户只需通过DCL对话框输入少量数据,整个计算绘图过程由程序自动完成,有较强的实用性和通用性。

[ID:009693]

猜你喜欢
对话框控制点绘图
来自河流的你
“禾下乘凉图”绘图人
GNSS RTK高程拟合控制点选取工具设计与实现
顾及控制点均匀性的无人机实景三维建模精度分析
正常恢复虚拟机
垂涎三尺
Bootlace Worms’Secret etc.
What Is Beauty?
NFFD控制点分布对气动外形优化的影响
浅谈VB的通用对话框《CommonDialog》控件的使用