APP下载

AutoLISP在河道CAD中的应用

2011-10-26郑州市水利建筑勘测设计院牛国凯

河南科技 2011年11期
关键词:轴线调试河道

郑州市水利建筑勘测设计院 牛国凯 郭 艳

AutoLISP在河道CAD中的应用

郑州市水利建筑勘测设计院 牛国凯 郭 艳

AutoCAD是当今世界上应用最为广泛的微机CAD软件,它的应用遍及工业、交通、地质和气象等众多领域。目前,AutoCAD在水利工程中的应用主要表现在两个方面:一方面是以机代手,进行屏幕设计;另一方面是针对具体的工程设计(具体形式如河道、沟渠、水闸、涵洞等)进行二次开发,实现参数化设计。

一、AutoCAD在水利工程中的应用

AutoCAD强大的绘图功能使得计算机绘制工程图得到进一步完善。目前对AutoCAD应用最广的是以机代手,进行屏幕设计,省略了人工描图过程,从而大大提高了设计速度,且设计图纸美观、修改方便。

对于熟练掌握AutoCAD且设计经验丰富的设计者,往往能够将具有相近形式和条件的设计图进行归类。例如,涵洞可分为洞径0.8m、1.0m、1.2m等几种类型,事先绘出设计图纸,形成图形库。当设计需要时,只需把满足条件的图纸从图形库中调出,修改具体的尺寸、高程等数据,即可使用。也就是说,在应用AutoCAD阶段,建立图纸模型库是提高设计速度的一个好方法。若要使设计速度得到进一步提高,则可以对AutoCAD进行二次开发:利用AutoLISP语言编程,用DCL语言进行对话框设计,从而形成AutoCAD的二次开发软件包,实现参数化设计。

二、AutoLISP简介

AutoCAD的二次开发工具包括AutoLISP、ADSDCL、ASE等工具。其中,AutoLISP语言简学易懂,DCL对话框美观实用,因而受到人们的青睐,并得到广泛应用。

AutoLISP语言是一种嵌入在AutoCAD内部的LISP编程语言。LISP(List Processing Language)是一种计算机表处理语言,在人工智能学科领域得到广泛应用。LISP语言的特点是程序和数据都采用符号表达式的形式,也就是说,一个LISP程序可以把另一个LISP程序作为它的数据进行处理。因此,使用LISP语言编程灵活方便,就像是进行一个个的函数调用。

三、AutoLISP语言编程实例

1.工程概况。十八里河发源于新郑市小乔乡孟庄南沟,河道全长24.8km,流域面积112.3km2,其中郑州市区段长10.5km,是郑州市重要的排洪河道。随着经济的快速发展和人民生活水平的日益提高,人们对河道的功能也提出了更高要求。郑州市十八里河生态治理工程在满足防洪除涝标准的前提下,达到了合理开发利用、提高土地利用率、治理河道、防洪除涝、改善人居生态环境和提高城市品位的目的。

2.工程设计。根据《防洪标准》(GB50201-94)、《水利水电工程等级划分及洪水标准》(SL252-2000)和《堤防工程设计规范》(GB50286-98)等有关规范的规定,十八里河河道治理工程属于三等工程,堤防级别为二级。根据《郑州市城市防洪规划》的要求,结合城市发展需求,十八里河河道治理防洪标准按照50年一遇的标准设计,除涝标准按照5年一遇的标准设计。为减少土方外运量,在河道两岸修筑微地形,微地形隔一定距离设置排水口,以方便两岸排涝。十八里河除了要具有一般河道的防洪、除涝等功能外,还应具有生态和景观功能。因此,本次河道轴线的确定以河道现状中心线为准,宜弯则弯,原则上不进行裁弯取直或改道改线处理。结合十八里河的河道特点,河道行洪断面设计采用梯形断面方案。在满足行洪断面要求的基础上,为适应生态和景观的要求,对单一梯形断面采取子槽开挖、边坡植草、局部防护等措施,以使治理后的河道断面自然、美观、顺畅、和谐。

3.AutoLISP语言编程及河道平面设计图的绘制。在进行河道平面图设计时,首先在测量的平面带状地形图上勾勒出河道中心轴线,并依次描绘出设计河底线、设计上口线、设计堤顶线等要素。在河道轴线上的每一个拐点处、设定桩号间距确定的整桩号处、圆弧连接的端点和中点处(若河道轴线中包含圆弧段)等关键点,标示出该点的桩号、序号、X坐标、Y坐标、圆弧段圆心坐标和圆弧半径。本程序可实现上述功能,通过对河道中心轴线CAD实体的获取,分析其数据表,进行数学计算,绘制相应图形添加到CAD图形中,最后生成一个记事本文件。下面汇总列出程序代码片段:

绘制出的CAD图片段如图1所示。

图1 图片段

生成的记事本片段如表1所示。

表1 记事本片段

四、AutoLISP的调试方法

新编写的程序并不是完全按照用户编写的意图来执行的。因此,在获得错误结果或发生程序终止的情况下,就需要对程序进行调试。而在AutoLISP程序调试中,一般使用Visual LISP提供的调试器进行调试,且调试方法不唯一。以下,给出2种简单的调试方法,即全局变量调试法和内部函数调试法。

1.全局变量调试法。在AutoLISP程序中,使用的变量分为局部变量和全局变量2种。局部变量仅仅存在于定义该变量的函数中,只有在该函数的运行过程中,变量才能使用。而全局变量则不同,只要未退出AutoCAD环境,已使用过的全局变量始终保存在内存中,随时可以查询、修改这些变量的值,所以在程序的调试阶段,可以把程序中的某些关键变量定义成全局变量,在程序运行结束后,无论是正常退出还是出错退出,依然可以使用这些全局变量。如,用AutoLISP的PRINC函数可以查询变量的值,用SETQ函数可以修改变量的值。变量定义成全局变量后,在程序出错中断运行时,可以通过检查各个变量的值,了解程序运行的情况,确定问题出在什么地方。

2.内部函数调试法。AutoLISP内部带有一个调试跟踪函数,使用格式为:TRACE函数名。这个函数的作用是给指定的函数设置跟踪标志。设置跟踪标志后,调用函数时系统会给出提示。在函数运行结束返回时,系统会给出返回结果。在使用TRACE函数时,首先要把需要调试的程序段单独定义成一个函数,然后在主程序段中调用。AutoLISP定义函数有2种形式:DEFUN函数名和DEFUNC函数名。

目前,AutoCAD软件已经在水利工程设计中得到广泛应用。因此,如何在以机代手、屏幕设计的基础上更好地实现AutoCAD的二次甚至三次开发,是水利专业技术人员今后的一个重要的发展方向和研究领域。

猜你喜欢

轴线调试河道
曲轴线工件划伤问题改进研究
一般性拱轴线偏差对拱桥内力和稳定性的影响
河道里的垃圾
基于航拍无人机的设计与调试
山溪性河道植物选择与应用
治理城市黑臭河道的方法
南京市鼓楼区黑臭河道的治理
FOCAS功能在机床调试中的开发与应用
基于回归分析的水电机组轴线曲折预判断分析
无线通信中频线路窄带临界调试法及其应用