CAD在水利水电工程中的应用_第1页
CAD在水利水电工程中的应用_第2页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

1、CAD 技术在水利水电工程中的应用作者:不祥 上传:不祥 来源:水工网 2006-01-13 00:371概述美国 Autodesk 公司开发的 AutoCAD 系统自 1982 年推出以来,以其使用方便、功能 强大和系统开放性一直独领风骚。成为各工程领域首选的CAD 系统。水利水电工程领域利用 AutoCAD 平台进行二次开发也取得了一系列成果,如90 年代以来陆续开发的水电站地面厂房CAD 系统、重力坝 CAD 系统、隧洞 CAD 系统、水机油汽水 CAD 系统、地质柱状图 CAD 等均取得了较好的应用效果。但水电工程设计的复杂性 决定了任何现成的 CAD 软件都有其局限性,设计过程中许多

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

3、可归结为坐标画线问题。对于堰面曲线等 有函数方程的曲线可以利用EXCEL 按照期望的步长自动生成一系列坐标点。对于测量常用的起点距-高程形式的数据,也可以利用EXCEL 转化成坐标点形式。(1)利用脚本文件(.SCR)利用任何文本编辑器如 Note、Uedit、Word、Excel 等建立纯文本文件 EX1.SCR 注 意文本文件后缀必须为.SCR,坐标之间用半角逗号分开,文件中不允许出现空格,文件 最后一行必须为空回车。文件建立时,可以直接把EXCEL或其他文件中的坐标表利用拷贝、粘贴功能加入脚本文件中。Pli ne345.66,238.65213.45,124.56128.44,235.6

4、6文件保存后,执行 AutoCAD 中“工具”下的“运行脚本”,在显示的窗口中查找并 选中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 文件如下(defu nC:drli ne()(if fn(setq f

5、n (getfiled (setq fn (getfiled )(setq f (open fn r)(setq p0 (getpo int n (setq bz 0 mm 1)坐标点文件名fn 2)坐标点文件名.2)画线起点:)(comma nd pli ne) (while (/= bz 1)(setq md (read-l ine 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)(comma

6、nd p1) (setq mm (1+ mm)(comma nd )(close f)文件存盘后,加载运行,相当于新增加了坐标画线命令 坐标表的文件即可实现自动绘制曲线。2 .2 地形切剖面水电工程设计中经常遇到在地形图上切剖面的问题,借助速切剖面。(1)初始地形图处理把带 z 坐标的地形平面图进行变换,变换后z 坐标值成为层名,为加快切剖面运行速度,把“ LWPOLYLINE 和” SPLINE 均转化为” LINE “线,程序如下DRLINE 按提示选中存放VisualLisp可以实现快(setqsh (ssle ngth e)(defu nc:pltol();LWPOLYLINE 转化为

7、LINE(setq n 0)(setqe (ssgetX (list (co ns 0 LWPOLYLINE)(setqsh (ssle ngth e)(if e(while ( n sh)(setq e1 (ss name e n)(comma nd pedit e1 d”)(setq x (en tget e1)(setq ngc (atof (setq la (fld 8 x)(comma nd explode e1) (setq n (+ n 1)(defun fld(num lst)(cdr (assoc num lst)(defu nc:spltol ();SPLINE 转化为LI

8、NE(setq n 0)(setqe (ssget X (list (co ns 0 SPLINE)(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)(comma ndglb)(setq nm (- nm 1)(comma nd )dzs1(fld 74(setq xdzb (cons zb xdzb)(2) 切剖面输入剖面编号,在平面地形图上指定两点确定剖面

9、剖切线位置,指定剖面图起点,利用 AutoCAD 的 inters 函数搜索剖切线与地形图的全部交点,自动计算交点坐标,计算 交点与剖面位置起点的距离,按各交点高程和与起点的距离形成剖面图各点坐标,即可 用本文实例 1 坐标画线生成地形图的剖面。(defu ndxte nt1 ()(set qn 0 xdzb n il)(setqxds 0)(setqsh (ssle ngth e1)(while ( dxtgcgc 10)(progn(setq pst (fld 10 x)(setq pet (fld 11 x)(setq zb (list gc(list (car pst) (cadr p

10、st)(list (car pet) (cadr pet)(setq xds (+ xds 1)(defu nc:dxtsec(setqpmh (+ pmh 1)(setqp01 pt3)取与剖切线相交的地形线。(dxte nt);获取与剖切线相交地形线的坐标(setqmxgc -100)(setqm ngc 10000)(setqm 0 pmp nil)(set qn xds i 0)(while ( i n)(setq crosp|(in ters pt1 pt2 (nth 1 (nth ixdzb) (nth 2 (nth i xdzb) 1);求剖切线与地形线的交点(if (/= cr

11、osp n il)(prog n(setqdxtgcgc (nth 0 (nth i xdzb) (setqmxgc (max mxgc dxtgcgc)(setq mngc (min mngc dxtgcgc)(setq n (+ n 1)()(setqpmh (getstri ng n剖面号)(setqptl (getpo int n剖切位置起点:)(setqpt2剖切位置终点:)(setqpt3 (getpo int n剖面图布置:)(setqel (ssget F (list ptl pt2);利用 AutoCAD 的目标选择“ F方式选(setqdst (dista nee pt1

12、crosp);剖切线起点与交点的距离(setqdst (* (/ blcz dxthtbl) dst)(setqpmp (cons (list m dst dxtgcgc) pmp)(setqm (+ m 1)(setq i (+ i 1)2.3沿曲线标注在设计中会遇到沿给定曲线进行标注问题, 如平面布置图中的开挖线符号沿开挖轮 廓的标注,剖面图中岩石符号沿轮廓线标注、点筋标注、沿任意曲线进行汉字标注等。 此类问题主要应用AutoCAD 的 Measure 或 divide 命令来解决。两个命令的主要差别是前者按指定的长度在曲线上标注,后者按给定的分段数等分曲线并在等分点处进行标注。 要标注的

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

14、l文件中的表格直接粘贴到CAD 图形中,修改时只要双击图中的表格即可进入 Word 或 Excel 中进行编辑修改,修改完成后退出即可返回到 AutoCAD 中继续进行设计,该法优点是方便,快捷,易于掌握,可以充分利用Excel 的强大计算功能。缺点是表格在AutoCAD 中并不是一个普通图元,无法利用CAD 功能对表格的字高、颜色和线宽进行编辑。(2) 编制 LSP 程序,依次输入表格标题、表格行数、表格列数、表格行高和列宽以及表格插入点等参数,可以自动生成表格,表格中已经按仿Excel 形式填入了文字,可以用字处理软件对表格中文字进行编辑修改。(setq n (+ n 1)(defu nC

15、:mtab()(setqtbl nil tb2 nil tb3 nil)(commandpline pl 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)(set qn 1)(while( n rows);绘水平线表格(comma nd pli ne (list (car p1) (- (cadrp1) (* n rowh) w

16、0 0(list (car p2) (- (cadr p2) (* rowh n)(setq n (+ n 1)(set qn 1)(while( n cols);绘垂直表格线(commandpline (list (+ (car p1) (* n colw) (cadr p1) w0 0 (list什(car p1) (* n colw) (cadrp3)llll(comma ndtext m (list (+ (car p1) (* 0.5 cols colw)(setqrows (geti nt 表格行数)(setqcols (geti nt 表格列数)(setqrowh (getrea

17、l 行高)(setqcolw (getreal 列宽)(setqpl (getpo int n表格左上角点位置:)(+(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) (* m colw);表格内容标注(-(cadr p1) (* 0.5 rowh)

18、 (* n rowh)(getvarTEXTSIZE) 0 (strcat bzstr (itoa (+ n 1)(setq m 什 m 1)(setq n (+ n 1)(3) 生成钢筋表钢筋表和材料表生成是施工图设计中比较繁琐的一项工作,很容易出错,此处介绍利用程序进行钢筋表和材料表自动生成的方法。利用造字程序增加I、II 级钢筋的直径标注符号和,以后在其它电脑上只要把EUDC.TTE 和 E见下表,增加 3 个命令:生成钢筋表、钢筋表添加和自动生成材料表。(setq cgc (atof bgc)生成钢筋表时按指定表格位置生成钢筋表表头,根据提示输入钢筋编号(可以不连续)、钢筋等级和直径如

19、丸、出,交互绘制钢筋简图和标注长度(标注长度可以输入多种形式如 50200 表示长度等差变化;30,40,50 表示一个编号多个钢筋长度,), 钢筋根数,构件组数,程序自动完成表格其余各项(总长度、重量,对于I 级钢筋长度中自动计入弯钩长度)的填写,备注栏中自动填入等差变化钢筋的等差值。采集钢筋表中直径、等级和总长信息,经过自动分类汇总,生成钢筋表的材料表。2.6高程小数位数处理尺寸标注小数位数很容易调整,但诸如高程、表格中数字要调整则很困难,借助 LSP 程序的调整很方便,只要选取需要调整的数字,根据提示输入需要保留的小数位 数,则程序自动对所有选种数字进行修改。(defu nen tsgc

20、()(setq n 0)(setqsh (ssle ngth e1)(while(= c 0)(= c 9)(prog n(if (or (= c +) (= c -)(setq bgc (substr agc 2)(setq bgc agc)(setq zh (rtos cgc 2 gcws)(setq tcm (strcat zclh (itoa m)(if(or (= c +) (= c -)(setqzh (strcat c zh)(setq x (subst (c ons 1 zh) (assoc 1 x) x)(en tmod x)(setq n什n1)(defu nc:yxws(

21、)(setqel (ssget)(setvar dimz in 0)(setqgcws (getint 保留小数位数:)(ife1 (en tsgc) (prin t n not fou nd)(setqx nil)2.7应用软件前、后处理由于软件升级滞后,一些常用软件后处理功能很弱或没有,可以利用LSP 程序结合AutoCAD 增加或简化前后处理功能。下面结合平面渗流分析程序STSE 软件对其前、后处理功能的实现进行介绍:(1) 前处理STSE 为平面渗流有限元程序,单元划分和单元、节点编号工作量最大,可以借助其它通用有限元软件的前处理功能如An sis、Algor、SAP84 等进行初步处

22、理,生成单元、节点编号和节点坐标,而后按照STSE 数据文件的格式要求对数据文件进行编辑。(2) 后处理后处理成果主要为:单元网格图,浸润线和等势线。单元网格图中有节点和单元编 号,不同渗透系数的单元采用不同的颜色,以便根据网格图直观地判断数据文件中几何 参数和材料特性的正误;首先分析 STSE 的输出结果文件的格式,搜索并筛选其中主要参数如单元总数、节 点总数和材料总数,把节点坐标和单元信息分别存储,通过对单元循环生成单元网格 图。(defu nc:seepmesh()(iffn(setqfn (getfiled 渗流结果文件名fn 2)(setqfn (getfiled 渗流结果文件名 .

23、2)(setqf (open fn r)(setqmd (read-li ne f)(while (/= (substr md 25 8)单元总数)(setq md (read-li ne f);定位单元总数(setqdyzs (atoi (substr md 58 5);读单元总数(setqmd (read-li ne f)(setqjdzs (atoi (substr md 58 5);读节点总数(setqmd (read-li ne f)(setqclh (atoi (substr md 58 5);读材料总数(setqm 0)(repeat clh(setq m (+ 1 m)(com

24、ma nd layer m tcm c (itoa m) tcm)(setq tcm (strcat zclh (itoa m);按材料种类生成图层名称(setqm 0 n 0)(repeatdyzs;对单元循环,dycfb 中存放单元信息(setqm什m 1)(setqclh (nth 0 (nth m dycfb)(setqjdhl (n th 1 (nth m dycfb)(setqjdh2 (nth 2 (nth m dycfb)(setqjdh3 (nth 3 (nth m dycfb)(setqjdh4 (nth 4 (nth m dycfb)(comma nd layer s (

25、strcat zclh (itoa clh)(comma ndpl in e;绘制单元网格(nth jdh1 jdzbb)(nth jdh2 jdzbb)(nth jdh3 jdzbb)(n thjdh4 jdzbb) c)(setqbzdzb (mapcar + (nth jdh1 jdzbb)(nth jdh2 jdzbb)(n thjdh3 jdzbb) (nth jdh4 jdzbb)(setqbzdzb (list (/ (car bzdzb) 4.0) (/ (cadr bzdzb) 4.0)(command text m bzdzb 0.5 0(itoa m);标注单元号(set

26、qm 0)(repeatjdzs(setq m (+ml)(setq bzdzb (n th mjdzbb)(setq bzdzb (list (+ (car bzdzb) 0.0)什(cadr bzdzb) 0.0)(comma nd text m bzdzb 0.5O(itoam);标注节点号(closef)限于篇幅, 等势线和浸润线生成程序不再赘述。 同样, 对工程设计中遇到的其它软 件如: STAB边坡稳定分析、SAP8 4 的输出文件均可进行类似后处理工作。3结语AutoCAD 软件应用已经在设计单位普及,VisualLisp 的出现对于提高 Lisp 语言的编程效率和 AutoCA

27、D 应用水平具有重要意义。本文涉及的几个实例已经在实际工作中发 挥很大作用,充分说明在工程设计当中结合本专业要求开发一些简单实用的Lisp 小程序可以有效减轻设计人员的劳动强度,使AutoCAD 不仅仅是绘图工具,而真正成为设计人员得心应手的高效设计平台。作者简介耿振云 男高级工程师中水北方勘测设计研究有限责任公司天津 30022231.1.1 脚本文件简介脚本文件类似于 Dos 操作系统中的批处理文件,它可以将不同的AutoCAD 命令组合起来,并按确定的顺序自动连续地执行。脚本文件是文本文件,扩展名为“ .SCR,用户可使用任一文本编辑器来创建脚本文件。因为脚本文件可使一些命令序列自动执行

28、,所以常用来产生、编辑或观看图 形,如幻灯放映、初始的图形设置等。但脚本文件不能使用对话框或菜单,当从脚本文 件中发出打开对话框命令时,AutoCAD 运行该命令的命令栏含义而不是打开对话框。如第 29 章中所述,用户可以通过命令行的开关设置,使AutoCAD 在启动时自动调用脚本。此外,用户也可以在AutoCAD 中运行脚本,其调用方式为:菜单:【Tools (工具)】T【Run Script(运行脚本)】命令行:script (或别名 scr)注意 AutoCAD 的“ undo”命令将每个脚本当作一个组,可以用单个“undo”命令放弃一组脚本的操作。说明“script ”命令可透明地使用

29、。31.1.2 实例 1 使用脚本文件绘制并显示图形Step 1 创建脚本文件exam_draw.scr”(1)使用 Windows 附件中的“记事本”程序创建一个新文件。(2)在该文件中添加如下内容,如图31-1 所示。注意 其中调用“ exam_vlEw.scr ”文件的路径应根据实际情况而定。(3)以“ exam_draw.scr ”为名保存该文件。Step 2 创建脚本文件“ exam_view.scr ”(1)使用 Windows 附件中的“记事本”程序创建一个新文件。(2)在该文件中添加如下内容(3)以“ exam_view.scr ”为名保存该文件。Step 3 运行脚本文件进入 AutoCAD 系统,调用“ script ”命令弹出“ Select Script File (选择 脚本文件)”对话框,定位并打开步骤一中创建的“exam_draw.scr ”文件。该文件的运行结果是在屏幕中间绘制一条直线和一个圆,而且直线和圆绕中心不停地转动。实例说明1.从实例中我们可以看到,脚本文件的

温馨提示

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

评论

0/150

提交评论