首页 > 范文大全 > 正文

采用Visual 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.