lisp 吴永进_采用Visual Lisp软件提高长输管道施工图设计效率

摘 要 利用AutoCAD内嵌的Visual Lisp进行二次开发,编写了长输管道管沟开挖土石方量的计算程序,取得了预期的效果。本文提出了读取施工图数据,逐段计算土石方量、回填细土量的方法,介绍了关键技术。关键词: AutoLISP语言 程序设计 线路施工图中图分类号: S611

文献标识码: A一、前 言AutoLISP语言是嵌入在AutoCAD内部的LISP编程语言,它是LISP语言和AutoCAD有机结合的产物。利用AutoLISP语言编程可以实现对AutoCAD当前图形数据库的直接访问、修改,为提供交互设计提供了途径。Visual Lisp作为集成在AutoCAD内部的可视化编程环境,它可以对AutoLISP程序进行编辑、调试、纠错、编译,可以帮助用户迅捷的建立解决方案。对于长输管道设计来说,线路施工图设计是一项极为重要的工作。同时,繁琐、重复、机械的绘图及工程量统计占用了设计人员大量的时间,使设计工作枯燥乏味。作者借助Visual Lisp编程环境进行二次开发,编写了长输管道土石方计算程序,方便的实现了线路施工图设计过程中土石方量的准确统计,从而提高了工作效率。二、问题的提出按目前的作图要求,长输油气管道线路每1km即出版1张图纸。在公路穿越、铁路穿越、河流大中型穿越、隧道穿越等重要地段,管道单独设计、单独出图。每一张线路施工图都需要根据工程地质、地形地貌、管沟挖深、冻土深度并按照规范中的管沟开挖型式计算开挖的土石方量。管沟断面图设计完成后,设计人员再根据水平连续里程、地面标高、管底标高和管沟挖深信息来计算相应的土石方量。在实际作图过程中,水平连续里程一般是每20m即有1个数据点,再加上变坡点数据,每张图纸约10m~15m就有一个埋深控制点,因此,一张图纸(代表实际水平长度1km)就会产生约65~100个埋深控制点。由于管沟开挖的断面一般为梯型(或复合梯形),那么管沟开挖土石方量应该是上述数据点产生的不小于64个横截面为梯形的柱体之和。如果是逐个手工计算的话,结合工程地质,即使是熟练的设计人员,这也会是个耗时、易错的工作。如果将整张图纸只分几段来计算,必然又会造成计算偏差过高。本文利用Visual Lisp开发工具和DCL对话框技术,开发适用于长输管道的管沟开挖土石方量计算程序,为设计提供方便。三、程序的编制计算程序分为三部分:一个是名为tsf-fi.lsp的主程序,它包含了土石方计算的算法;另一个是名为tsf.dcl的主对话框程序,它为主程序提供了一个便于人机交互的界面;第三个是名为“管沟参数配置文件.txt”的文本文件,它根据不同工程或同一工程的不同要求而设定,共有5个参数(管道外径、土方管沟底宽、土方边坡比、石方管沟底宽、石方边坡比),其设置应参照《输油管道工程技术规范》(GB 50253―2003)或《输气管道工程设计规范》(GB 5021―2003)中“管道敷设”章节的要求规定。本文主要讲述主程序设计。主程序设计的基本思路是读取线路施工图上的“水平连续里程”行数据和“管沟挖深”行数据,生成两个数据序列。从第一组数据开始,相邻的两组数据构成了一个柱体的基本要素:“管沟挖深”行的相邻数据代表柱体两个横截面的高度,“水平连续里程”行的相邻数值之差代表了柱体的长度,而管道外径、土方管沟底宽、土方边坡比、石方管沟底宽、石方边坡比这些参数已由“管沟参数配置文件”定义。这样,设计人员结合工程地质情况,指定各土石方等级层的厚度,一个柱体的体积就确定了,之后程序进行循环,计算所有柱体的体积,再进行求和就是总的土石方量。生成埋深数据数组ptlist的关键语句如下:…… (setq n 0) (setq ptlist '()) (repeat (sslength ss)

(setq ssn (ssname ss n))

(setq ssdata (entget ssn))

(if (= (cdr (assoc 0 ssdata)) "TEXT")

(progn

(setq sz (read (cdr (assoc 1 ssdata))))

(setq ptlist (cons sz ptlist))

)

)

(setq n (1+ n)))……采用相同的方法,可以生成里程数据数组lclist。在分段的区间内,如果土层下仅含有一种石方,本程序采用以下语句来分别计算管沟的土方量、石方量和回填细土量:…… (repeat len_aver

(if (< depsoil (nth j aver))(progn (setq deprock1 (- (nth j aver) depsoil)) ;分段的石方厚度 (setq vol_rock (* (* (+ rock_ditch (* deprock1 rockslope)) deprock1) (nth j len))) ;石方体积 (setq width1 (+ rock_ditch (* 2 rockslope deprock1))) (setq vol_ditch (* (* (+ width1 (* depsoil slope)) depsoil) (nth j len))) ;土方体积 (setq sumrock1 (+ sumrock1 vol_rock)) (setq sumvol (+ sumvol vol_ditch)) (if (

)

(setq sumxitu (+ sumxitu vol_xitu));细土体积

)

(progn

(setq vol_ditch (* (* (+ wid_ditch (* (nth j aver) slope)) (nth j aver)) (nth j len))) (setq sumvol (+ sumvol vol_ditch))

) )

(setq j (1+ j))

)……在一个分段的柱体体积计算之后,再进行循环、求和,就是一张施工图纸所要计算的土石方量。程序同时具备了新建图层、并将土石方量写入图纸中指定位置的功能,进一步减少设计人员的工作量。四、结束语本程序用AutoCAD2004进行开发,在AutoCAD2005~AutoCAD2008各版本下进行了验证,运行正常。该计算程序具有适应性强、高效、兼容性好的特点,在庆铁线改造工程、铁锦复线管道工程和四平―白山天然气管道工程等长输管道工程中得到了应用,大大提高了土石方量计算的精度和效率,具有一定的实用价值。参 考 文 献[1] 吴永进,林美樱.AutoLISP&DCL基础篇.中国铁道出版社.2003.

持续雄踞台湾AutoCAD图书销售排行榜第一名 台湾翔虹AutoCAD技术中心2位专家的年度巨作 语言生动风趣,零压力的阅读享受和学习体验 AutoLISP+DCL+VisualLISP是AutoCAD二次开发的最佳搭档 最新的AutoLISP+DCL+VisualLISP二次开发技术,提高工作效率 《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》重点讲解autolisp、dcl、visuallisp三合一的autocad二次程序开发技术。《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》分为4篇,共35章。第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章)为62个精选实用autolisp程序设计范例,通过精讲62个autolisp程序设计范例,让读者将autolisp知识融会贯通。第3篇(第12~21章)为autolisp与dcl对话框整合应用,主要介绍了dcl的基础知识、dcl对象属性的定义速查、autolisp掌控dcl的关键技巧;还介绍了编辑框、按钮和文字、切换开关、单选按钮、列表框、下拉菜单、图像,图像按钮及滑动条的设计技巧;另外介绍了新手常犯错误分析及应对技巧。第4篇(第22~35章)为visuallisp程序设计应用与整合,主要介绍visuallisp的基本环境、重要函数和程序调试;还介绍了autocadactivex对象控制以及visuallisp在e2d、3d、文字编辑、图层管理、块与属性管理、options选项控制、excel及word中的应用;最后介绍了visuallisp应用程序的创建与维护。 《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》语言风趣生动,内容全面,是一本不可多得的完全学习指南。它可以帮助读者扎扎实实学好autolisp+dcl+visuallisp程序设计,迅速提升读者的设计效率及绘图品质。《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》非常适合autocad的初、中、高级读者使用。 《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》 第一篇autolisp程序设计基础 第一章autolisp主角潇洒登场 第二章autolisp的关键、基本结构与语法 第三章快速分类浏览autolisp功能函数 第四章新手上路(一)——万丈高楼平地起 第五章新手上路(二)——参数设计关键技巧 第六章对象属性的取得与活用技巧 第七章灵活掌握循环、判断式应用技巧 第八章灵活掌握autolisp子程序的应用技巧 第九章充分掌握选择集与符号表应用技巧 第十章轻松掌握autolisp的读文件与写文件 第二篇62个精选实用autolisp程序设计范例 第十一章62个实用精选autolisp学习范例 第三篇autolisp与dcl对话框整合应用 第十二章dcl对话框设计主角潇洒登场 第十三章轻松、简单、快速地进入dcl天地 第十四章dcl对话框的对象属性定义速查 第十五章autolisp掌控dcl的关键技巧 第十六章autolisp与dcl编辑框、按钮和文字设计技巧 .第十七章autolisp与dcl切换开关和单选按钮设计技巧 第十八章autolisp与dcl列表框和下拉菜单设计技巧 第十九章autolisp与dcl图像及图像按钮设计技巧 第二十章autolisp与dcl滑动条的设计技巧 第二十一章autolisp与dcl设计新手常犯错误分析及应对技巧 第四篇visuallisp程序设计应用与整合 第二十二章visuallisp主角潇洒登场 第二十三章知己知彼:掌握visuallisp的基本环境 第二十四章韩信点兵:活用visuallisp新增的重要函数 第二十五章visuallisp贴心的程序调试功能 第二十六章石破天惊:autocadactivex对象控制 第二十七章轻松掌握visuallisp活用于2d对象 第二十八章轻松掌握visuallisp活用于3d对象 第二十九章轻松掌握visuallisp活用于文字编辑 第三十章轻松掌握visuallisp活用于图层管理 第三十一章轻松掌握visuallisp活用于块与属性管理 第三十二章轻松掌握visuallisp活用于options选项控制 第三十三章轻松掌握visuallisp活用于excel 第三十四章轻松掌握visuallisp活用于word 第三十五章visuallisp应用程序的创建与维护 附录aautolisp函数功能索引 附录bautocad群码代号一览表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值