CAD技术在水利水电工程中的应用.doc_第1页
CAD技术在水利水电工程中的应用.doc_第2页
CAD技术在水利水电工程中的应用.doc_第3页
CAD技术在水利水电工程中的应用.doc_第4页
CAD技术在水利水电工程中的应用.doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CAD 技术在水利水电工程中的应用1 概述美国 Autodesk 公司开发的 AutoCAD 系统自 1982 年推出以来,以其使用方便、功能强大和系统开放性一直独领风骚。成为各工程领域首选的CAD 系统。水利水电工程领域利用AutoCAD 平台进行二次开发也取得了一系列成果,如 90 年代以来连续开发的水电站地面厂房 CAD 系统、重力坝 CAD 系统、隧洞 CAD 系统、水机油汽水 CAD 系统、地质柱状图 CAD 等均取得了较好的应用成效。 但水电工程设计的复杂性决定了任何现成的 CAD 软件都有其局限性,设计过程中许多咨询题还只能用原始的方法解决。本文通过几个实例对 AutoCAD 二

2、次开发常用的 Lisp 语言在水电工程设计中的应用进行了初步探讨,期望能够起到抛砖引玉的作用。VisualLisp 语言是 AutoCADR14 版本以后提供的全新的开发环境, 是嵌于 AutoCAD 内部,将 Lisp 语言与 AutoCAD 相结合的产物,是一种智能型语言。利用 AutoLisp 能够灵活方便地增加 AutoCAD 新命令,几乎无限地扩展 AutoCAD 新功能,2 应用实例2 .1 坐标画线利用已知坐标点画线是设计工作中经常遇到的咨询题,如河道、堤防等实测断面、水位流量关系曲线、堰面曲线等数据的处理,均可归结为坐标画线咨询题。关于堰面曲线等有函数方程的曲线能够利用EXCE

3、L 按照期望的步长自动生成一系列坐标点。 关于测量常用的起点距-高程形式的数据,也能够利用 EXCEL 转化成坐标点形式。( 1)利用脚本文件 (.SCR)利用任何文本编辑器如Note、Uedit、Word、Excel 等建立纯文本文件EX1.SCR,注意文本文件后缀必须为.SCR,坐标之间用半角逗号分开, 文件中不承诺显现空格,文件最后一行必须为空回车。文件建立时,能够直截了当把 EXCEL 或其他文件中的坐标表利用拷贝、粘贴功能加入脚本文件中。Pline345.66,238.65213.45,124.56128.44,235.66文件储存后,执行 AutoCAD 中“工具”下的“运行脚本”

4、 ,在显示的窗口中查找并选中 EX1.SCR,屏幕上会赶忙显示所绘线条。(2)利用 LSP 程序建立坐标表文件 EX2.DAT ,后缀任意,能够依次输入多段曲线,中间用曲线名称分开,程序自动绘制多条曲线并可标注坐标表。“曲线 1”213.45,124.56128.44,235.66345.66,231.78“曲线 2”433.34,567.23434.12,464.12利用 AutoCAD 中“工具” 菜单下的 “VisulLisp 编辑器” 建立 DRLINE.LSP 文件如下(defunC:drline()(if fn(setq fn (getfiled 坐标点文件名 fn 2)(setq

5、 fn (getfiled 坐标点文件名 2)(setq f (open fn r)(setq p0 (getpoint n 画线起点 :)(setq bz 0 mm 1)(command pline)(while (/= bz 1)(setq md (read-line f)(if (/= md nil)(setq zbb (read md)(setq bz 1)(setq dx (car zbb) dy (cadr zbb)(setq p1 (list (+ dx (car p0)(+ dy (cadr p0)(command p1)(setq mm (1+ mm)(command )(c

6、lose f)文件存盘后,加载运行,相当于新增加了坐标画线命令DRLINE ,按提示选中存放坐标表的文件即可实现自动绘制曲线。2 .2 地势切剖面水电工程设计中经常遇到在地势图上切剖面的咨询题,借助 VisualLisp能够实现快速切剖面。(1)初始地势图处理把带 z 坐标的地势平面图进行变换, 变换后 z 坐标值成为层名, 为加快切剖面运行速度, 把“LWPOLYLINE ”和”SPLINE”均转化为” LINE“线,程序如下(defunc:pltol(); LWPOLYLINE 转化为 LINE (setqn 0)(setqe (ssgetX (list (cons 0 LWPOLYLIN

7、E)(setqsh (sslength e)(if e(while ( n sh)(setq e1 (ssname e n)(command pedit e1 d )(setq x (entget e1)(setq ngc (atof (setq la (fld 8 x)(command explode e1)(setq n (+ n 1) ) )(defun fld(num lst)(cdr (assoc num lst)(defunc:spltol (); SPLINE 转化为 LINE (setqn 0)(setqe (ssget X (list (cons 0 SPLINE) (set

8、qsh (sslength e)(if e(while ( nm 5)(if(= (car (nth nm x) 10)(progn(setq b1 (nth nm x)(setqx1 (cadr b1)(setqy1 (caddr b1)(setqz1 (cadddr b1)(setqglb (list x1 y1)(commandglb) )(setq nm (- nm 1)(command )(setq n (+ n 1)( 2)切剖面输入剖面编号,在平面地势图上指定两点确定剖面剖切线位置,指定剖面图起点,利用 AutoCAD 的 inters 函数搜索剖切线与地势图的全部交点,自动运算

9、交点坐标,运算交点与剖面位置起点的距离,按各交点高程和与起点的距离形成剖面图各点坐标,即可用本文实例1 坐标画线生成地势图的剖面。(defundxtent1 ()(setqn 0 xdzb nil)(setqxds 0)(setqsh (sslength e1)(while ( dxtgcgc 10)(progn(setq pst (fld 10 x)(setq pet (fld 11 x)(setq zb (list gc(list (car pst) (cadr pst)(list (car pet) (cadr pet)(setq xdzb (cons zb xdzb)(setq xds

10、 (+ xds 1)(setq n (+ n 1)(defunc:dxtsec()(setqpmh (+ pmh 1)(setqpmh (getstring n 剖面号 )(setqpt1 (getpoint n 剖切位置起点 :)(setqpt2 (getpoint pt1 n 剖切位置终点 :)(setqpt3 (getpoint n 剖面图布置 :)(setqp01 pt3)(setqe1 (ssget F (list pt1 pt2);利用 AutoCAD 的目标选择“ F”方式选取与剖切线相交的地势线。(dxtent);猎取与剖切线相交地势线的坐标(setqmxgc -100)(se

11、tqmngc 10000)(setqm 0 pmp nil)(setqn xds i 0)(while ( i n)(setq crosp(inters pt1 pt2 (nth 1 (nth ixdzb) (nth 2 (nth i xdzb)1);求剖切线与地势线的交点(if (/= crosp nil)(progn(setqdxtgcgc (nth 0 (nth i xdzb)(setqmxgc (max mxgc dxtgcgc)(setqmngc (min mngc dxtgcgc)(setqdst (distance pt1 crosp);剖切线起点与交点的距离(setqdst (

12、* (/ blcz dxthtbl) dst)(setqpmp (cons (list m dst dxtgcgc) pmp)(setqm (+ m 1)(setq i (+ i 1)2.3 沿曲线标注在设计中会遇到沿给定曲线进行标注咨询题,如平面布置图中的开挖线符号沿开挖轮廓的标注,剖面图中岩石符号沿轮廓线标注、点筋标注、沿任意曲线进行汉字标注等。此类咨询题要紧应用AutoCAD 的 Measure或divide 命令来解决。两个命令的要紧差不是前者按指定的长度在曲线上标注,后者按给定的分段数等分曲线并在等分点处进行标注。要标注的轮廓曲线最好用 pline 线,要标注的符号预先做成图块,图块

13、采纳单位块,执行measure或 divide 命令,选取要标注的曲线,指定标注符号,分段长度或分段数即可完成标注,当发觉标注的符号太密或太疏时,能够执行erase命令选择 P 进行删除,比例不合适或符号方向不正确,能够利用特性编辑器,选中所有标注符号,对标注符号的比例和旋转角度进行调整,直到中意为止。关于更高级的应用,能够编制LSP 程序,实现符号和文字沿任意曲线标注。2.4 表格生成AutoCAD 本身没有表格处理功能,设计图纸中工程量表、钢筋表等涉及到表格生成的咨询题能够采纳以下方法处理:(1)直截了当把 Word 或 Excel 文件中的表格直截了当粘贴到 CAD 图形中,修改时只要双

14、击图中的表格即可进入 Word 或 Excel 中进行编辑修改,修改完成后退出即可返回到 AutoCAD 中连续进行设计,该法优点是方便,快捷,易于把握,能够充分利用 Excel 的强大运算功能。缺点是表格在 Aut oCAD 中并不是一个一般图元,无法利用 CAD 功能对表格的字高、颜色和线宽进行编辑。( 2)编制 LSP 程序,依次输入表格标题、表格行数、表格列数、表格行高和列宽以及表格插入点等参数,能够自动生成表格,表格中差不多按仿 Excel 形式填入了文字,能够用字处理软件对表格中文字进行编辑修改。(defunC:mtab()(setqtb1 nil tb2 nil tb3 nil)

15、(setqrows (getint 表格行数 )(setqcols (getint 表格列数 )(setqrowh (getreal 行高 )(setqcolw (getreal 列宽 )(setqp1 (getpoint n 表格左上角点位置 :)(commandpline p1 w 0.5 0.5(setqp2 (list (+ (car p1) (* cols colw) (cadr p1)(setqp4 (list (car p2) (- (cadr p2) (* rows rowh)(setqp3 (list (car p1) (- (cadr p2) (* rows rowh)C

16、)(setqn 1)(while( n rows);绘水平线表格(command pline (list (car p1) (- (cadrp1) (* n rowh)w0 0(list (car p2) (- (cadr p2) (* rowh n) )(setq n (+ n 1)(setqn 1)(while( n cols) ;绘垂直表格线(commandpline (list (+ (car p1) (* n colw) (cadr p1) w00 (list (+ (car p1) (* n colw) (cadr p3) )(setq n (+ n 1)(commandtext

17、m (list (+ (car p1) (* 0.5 cols colw)(+(cadr p1) 5)3 0 TITLE)(setq n 0)(while( n rows)(setq m 0)(while ( m cols)(cond(= m 26) (setq bzstr (strcat (chr (+ 64 (/ m 26)(chr (+ 65 (- m (* 26(/ m 26)(command textm(list (+ (car p1) (* 0.5 colw) (* mcolw) ;表格内容标注(- (cadr p1) (* 0.5 rowh) (* nrowh)(getvarTE

18、XTSIZE)0 (strcat bzstr (itoa (+ n 1)(setq m (+ m 1)(setqn (+ n 1)( 3)生成钢筋表钢筋表和材料表生成是施工图设计中比较繁琐的一项工作,专门容易出错,此处介绍利用程序进行钢筋表和材料表自动生成的方法。利用造字程序增加 I、II 级钢筋的直径标注符号和,以后在其它电脑上只要把EUDC.TTE 和 E见下表,增加 3 个命令:生成钢筋表、钢筋表添加和自动生成材料表。生成钢筋表时按指定表格位置生成钢筋表表头,按照提示输入钢筋编号(能够不连续)、钢筋等级和直径如20、16,交互绘制钢筋简图和标注长度(标注长度能够输入多种形式如50200

19、表示长度等差变化; 30,40,50 表示一个编号多个钢筋长度, ),钢筋根数,构件组数,程序自动完成表格其余各项(总长度、重量,关于I 级钢筋长度中自动计入弯钩长度)的填写,备注栏中自动填入等差变化钢筋的等差值。采集钢筋表中直径、等级和总长信息,通过自动分类汇总,生成钢筋表的材料表。2.6 高程小数位数处理尺寸标注小数位数专门容易调整,但诸如高程、表格中数字要调整则专门困难,借助 LSP 程序的调整专门方便,只要选取需要调整的数字,按照提示输入需要保留的小数位数,则程序自动对所有选种数字进行修改。(defunentsgc()(setqn 0)(setqsh (sslength e1)(whi

20、le(= c 0)(= c 9)(progn(if (or (= c +) (= c -)(setq bgc (substr agc 2)(setq bgc agc)(setq cgc (atof bgc)(setq zh (rtos cgc 2 gcws)(if(or (= c +) (= c -)(setqzh (strcat c zh)(setq x (subst (cons 1 zh) (assoc 1 x) x)(entmod x)(setq n (+ n1)(defunc:yxws()(setqe1 (ssget)(setvar dimzin 0)(setqgcws (getint

21、 保留小数位数 :)(ife1 (entsgc) (print n not found)(setqx nil)2.7 应用软件前、后处理由于软件升级滞后,一些常用软件后处理功能专门弱或没有,能够利用 LSP 程序结合 AutoCAD 增加或简化前后处理功能。 下面结合平面渗流分析程序 STSE 软件对其前、后处理功能的实现进行介绍:( 1)前处理STSE 为平面渗流有限元程序, 单元划分和单元、节点编号工作量最大,能够借助其它通用有限元软件的前处理功能如Ansis、Algor 、SAP84 等进行初步处理, 生成单元、节点编号和节点坐标, 而后按照 STSE 数据文件的格式要求对数据文件进行编

22、辑。(2)后处理后处理成果要紧为:单元网格图,浸润线和等势线。单元网格图中有节点和单元编号,不同渗透系数的单元采纳不同的颜色,以便按照网格图直观地判定数据文件中几何参数和材料特性的正误;第一分析 STSE 的输出结果文件的格式, 搜索并选择其中要紧参数如单元总数、节点总数和材料总数,把节点坐标和单元信息分不储备,通过对单元循环生成单元网格图。(defunc:seepmesh()(iffn(setqfn (getfiled 渗流结果文件名 fn 2)(setqfn (getfiled 渗流结果文件名 2)(setqf (open fn r)(setqmd (read-line f)(while

23、(/= (substr md 25 8) 单元总数 )(setq md (read-line f);定位单元总数(setqdyzs (atoi (substr md 58 5);读单元总数(setqmd (read-line f)(setqjdzs (atoi (substr md 58 5) ;读节点总数(setqmd (read-line f)(setqclh (atoi (substr md 58 5);读材料总数(setqm 0)(repeat clh(setq m (+ 1 m)(setq tcm (strcat zclh (itoa m)(command layer m tcm c

24、 (itoa m) tcm);按材料种类生成图层名称(setqm 0 n 0)(repeatdyzs;对单元循环, dycfb 中存放单元信息(setqm (+ m 1)(setqclh (nth 0 (nth m dycfb)(setqjdh1 (nth1(nthmdycfb)(setqjdh2 (nth2(nthmdycfb)(setqjdh3 (nth3(nthmdycfb)(setqjdh4 (nth4(nthmdycfb)(command layer s (strcat zclh (itoa clh)(commandpline;绘制单元网格(nth jdh1 jdzbb)(nth j

25、dh2 jdzbb)(nth jdh3 jdzbb)(nthjdh4jdzbb)c)(setqbzdzb (mapcar + (nth jdh1 jdzbb)(nth jdh2 jdzbb)(nthjdh3jdzbb)(nthjdh4 jdzbb)(setqbzdzb (list(/ (car bzdzb) 4.0) (/ (cadr bzdzb) 4.0)(command textmbzdzb 0.5 0(itoam);标注单元号(setqm 0)(repeatjdzs(setq m (+ m1)(setq bzdzb (nth m jdzbb)(setq bzdzb (list (+ (c

26、ar bzdzb) 0.0) (+ (cadr bzdzb) 0.0)(command text m bzdzb 0.5 0(itoam);标注节点号(closef)限于篇幅,等势线和浸润线生成程序不再赘述。同样,对工程设计中遇到的其它软件如: STAB 边坡稳固分析、 SAP84 的输出文件均可进行类似后处理工作。3 结语AutoCAD 软件应用差不多在设计单位普及,VisualLisp 的显现关于提升 Lisp 语言的编程效率和 AutoCAD 应用水平具有重要意义。本文涉及的几个实例差不多在实际工作中发挥专门大作用,充分讲明在工程设计当中结合本专业要求开发一些简单有用的 Lisp 小程序

27、能够有效减轻设计人员的劳动强度,使 AutoCAD 不仅仅是绘图工具,而真正成为设计人员得心应手的高效设计平台。作者简介耿振云 男 高级工程师 中水北方勘测设计研究有限责任公司天津 30022231.1.1脚本文件简介脚本文件类似于Dos 操作系统中的批处理文件,它能够将不同的AutoCAD 命令组合起来,并按确定的顺序自动连续地执行。脚本文件是文本文件,扩展名为“ .SCR”,用户可使用任一文本编辑器来创建脚本文件。因为脚本文件可使一些命令序列自动执行,因此常用来产生、编辑或观看图形,如幻灯放映、初始的图形设置等。但脚本文件不能使用对话框或菜单,当从脚本文件中发出打开对话框命令时,AutoC

28、AD 运行该命令的命令栏含义而不是打开对话框。如第 29 章中所述,用户能够通过命令行的开关设置,使AutoCAD 在启动时自动调用脚本。此外,用户也能够在AutoCAD 中运行脚本,其调用方式为:菜单:【Tools(工具)】【 RunScript (运行脚本)】命令行: script(或不名 scr)注意AutoCAD的“ undo”命令将每个脚本当作一个组,能够用单个“ undo”命令舍弃一组脚本的操作。讲明“script”命令可透亮地使用。31.1.2实例 1使用脚本文件绘制并显示图形Step1创建脚本文件“ exam_draw.scr”(1) 使用 Windows 附件中的“记事本”程

29、序创建一个新文件。(2) 在该文件中添加如下内容,如图 31-1 所示。注意其中调用“ exam_vIEw.scr”文件的路径应按照实际情形而定。(3) 以“ exam_draw.scr”为名储存该文件。(1) 使用 Windows 附件中的“记事本”程序创建一个新文件。(2) 在该文件中添加如下内容(3) 以“ exam_view.scr”为名储存该文件。Step3运行脚本文件进入 AutoCAD 系统,调用“ script”命令弹出“ SelectScriptFile(选择脚本文件)”对话框,定位并打开步骤一中创建的“ exam_draw.scr” 文件。该文件的运行结果是在屏幕中间绘制一条直线和一个圆,而且直线和圆绕中心不停地转动。实例讲明1. 从实例中我们能够看到,脚本文件的内容实际上确实是在 Aut oCAD 命令提示行中所用的命令的一个有序集合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论