资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
CAD技术在水利水电工程中的应用摘要:AutAD是广大工程设计人员普遍使用的通用绘图软件,结合专业特点,通过对AutAD系统的二次开发可以开发出满足各种用途的专业软件,即使对于普通设计人员也可以通过AutAD内嵌的VisualLisp语言方便地增加AD命令,扩充完善适合本专业的新功能,从而极大地提高工作效率,本文通过几个应用实例对AutAD在水工设计上的应用进行了探讨。关键词:AD技术应用水利水电工程AutADVisualLisp语言1概述美国Autdesk公司开发的AutAD系统自1982年推出以来,以其使用方便、功能强大和系统开放性一直独领风骚。成为各工程领域首选的AD系统。水利水电工程领域利用AutAD平台进行二次开发也取得了一系列成果,如90年代以来陆续开发的水电站地面厂房AD系统、重力坝AD系统、隧洞AD系统、水机油汽水AD系统、地质柱状图AD等均取得了较好的应用效果。但水电工程设计的复杂性决定了任何现成的AD软件都有其局限性,设计过程中许多问题还只能用原始的方法解决。本文通过几个实例对AutAD二次开发常用的Lisp语言在水电工程设计中的应用进行了初步探讨,希望能够起到抛砖引玉的作用。VisualLisp语言是AutADR14版本以后提供的全新的开发环境,是嵌于AutAD内部,将Lisp语言与AutAD相结合的产物,是一种智能型语言。利用AutLisp可以灵活方便地增加AutAD新命令,几乎无限地扩展AutAD新功能,2应用实例2.1坐标画线利用已知坐标点画线是设计工作中经常遇到的问题,如河道、堤防等实测断面、水位流量关系曲线、堰面曲线等数据的处理,均可归结为坐标画线问题。对于堰面曲线等有函数方程的曲线可以利用EXEL按照期望的步长自动生成一系列坐标点。对于测量常用的起点距-高程形式的数据,也可以利用EXEL转化成坐标点形式。(1)利用脚本文件(.SR)利用任何文本编辑器如Nte、Uedit、rd、Exel等建立纯文本文件EX1.SR,注意文本文件后缀必须为.SR,坐标之间用半角逗号分开,文件中不允许出现空格,文件最后一行必须为空回车。文件建立时,可以直接把EXEL或其他文件中的坐标表利用拷贝、粘贴功能加入脚本文件中。Pline345.66,238.65213.45,124.56128.44,235.66文件保存后,执行AutAD中“工具”下的“运行脚本”,在显示的窗口中查找并选中EX1.SR,屏幕上会立即显示所绘线条。(2)利用LSP程序建立坐标表文件EX2.DAT,后缀任意,可以依次输入多段曲线,中间用曲线名称分开,程序自动绘制多条曲线并可标注坐标表。“曲线1”213.45,124.56128.44,235.66345.66,231.78“曲线2”433.34,567.23434.12,464.12利用AutAD中“工具”菜单下的“VisulLisp编辑器”建立DRLINE.LSP文件如下(defun:drline()(iffn(setqfn(getfiled坐标点文件名fn2)(setqfn(getfiled坐标点文件名2)(setqf(penfnr)(setqp0(getpintn画线起点:)(setqbz01)(andpline)(hile(/=bz1)(setqd(read-linef)(if(/=dnil)(setqzbb(readd)(setqbz1)(setqdx(arzbb)dy(adrzbb)(setqp1(list(+dx(arp0)(+dy(adrp0)(andp1)(setq(1+)(and)(lsef)文件存盘后,加载运行,相当于新增加了坐标画线命令DRLINE,按提示选中存放坐标表的文件即可实现自动绘制曲线。2.2地形切剖面水电工程设计中经常遇到在地形图上切剖面的问题,借助VisualLisp可以实现快速切剖面。(1)初始地形图处理把带z坐标的地形平面图进行变换,变换后z坐标值成为层名,为加快切剖面运行速度,把“LPLYLINE”和”SPLINE”均转化为”LINE“线,程序如下(defun:pltl();LPLYLINE转化为LINE(setqn0)(setqe(ssgetX(list(ns0LPLYLINE)(setqsh(sslengthe)(ife(hile(nsh)(setqe1(ssnaeen)(andpedite1d)(setqx(entgete1)(setqng(atf(setqla(fld8x)(andexpldee1)(setqn(+n1)(defunfld(nulst)(dr(assnulst)(defun:spltl();SPLINE转化为LINE(setqn0)(setqe(ssgetX(list(ns0SPLINE)(setqsh(sslengthe)(ife(hile(nsh)(setqx(entget(setqe1(ssnaeen)(setqnla(ita(fix(addr(fld10x)(if(=(fld0x)SPLINE)(prgn(andlayernnla6nlasnla)(andline)(setqn(lengthx)dzs(fld73x)dzs1(fld74x)(hile(n5)(if(=(ar(nthnx)10)(prgn(setqb1(nthnx)(setqx1(adrb1)(setqy1(addrb1)(setqz1(adddrb1)(setqglb(listx1y1)(andglb)(setqn(-n1)(and)(setqn(+n1)(2)切剖面输入剖面编号,在平面地形图上指定两点确定剖面剖切线位置,指定剖面图起点,利用AutAD的inters函数搜索剖切线与地形图的全部交点,自动计算交点坐标,计算交点与剖面位置起点的距离,按各交点高程和与起点的距离形成剖面图各点坐标,即可用本文实例1坐标画线生成地形图的剖面。(defundxtent1()(setqn0xdzbnil)(setqxds0)(setqsh(sslengthe1)(hile(nsh)(setqx(entget(ssnaee1n)(if(=(fld0x)LINE)(prgn(setqdxtgg(fld8x)(setqdxtgg(atidxtgg)(if(dxtgg10)(prgn(setqpst(fld10x)(setqpet(fld11x)(setqzb(listg(list(arpst)(adrpst)(list(arpet)(adrpet)(setqxdzb(nszbxdzb)(setqxds(+xds1)(setqn(+n1)(defun:dxtse()(setqph(+ph1)(setqph(getstringn剖面号)(setqpt1(getpintn剖切位置起点:)(setqpt2(getpintpt1n剖切位置终点:)(setqpt3(getpintn剖面图布置:)(setqp01pt3)(setqe1(ssgetF(listpt1pt2);利用AutAD的目标选择“F”方式选取与剖切线相交的地形线。(dxtent);获取与剖切线相交地形线的坐标(setqxg-100)(setqng10000)(setq0ppnil)(setqnxdsi0)(hile(in)(setqrsp(interspt1pt2(nth1(nthixdzb)(nth2(nthixdzb)1);求剖切线与地形线的交点(if(/=rspnil)(prgn(setqdxtgg(nth0(nthixdzb)(setqxg(axxgdxtgg)(setqng(inngdxtgg)(setqdst(distanept1rsp);剖切线起点与交点的距离(setqdst(*(/blzdxthtbl)dst)(setqpp(ns(listdstdxtgg)pp)(setq(+1)(setqi(+i1)2.3沿曲线标注在设计中会遇到沿给定曲线进行标注问题,如平面布置图中的开挖线符号沿开挖轮廓的标注,剖面图中岩石符号沿轮廓线标注、点筋标注、沿任意曲线进行汉字标注等。此类问题主要应用AutAD的easure或divide命令来解决。两个命令的主要差别是前者按指定的长度在曲线上标注,后者按给定的分段数等分曲线并在等分点处进行标注。要标注的轮廓曲线最好用pline线,要标注的符号预先做成图块,图块采用单位块,执行easure或divide命令,选取要标注的曲线,指定标注符号,分段长度或分段数即可完成标注,当发现标注的符号太密或太疏时,可以执行erase命令选择P进行删除,比例不合适或符号方向不正确,可以利用特性编辑器,选中所有标注符号,对标注符号的比例和旋转角度进行调整,直到满意为止。对于更高级的应用,可以编制LSP程序,实现符号和文字沿任意曲线标注。2.4表格生成AutAD本身没有表格处理功能,设计图纸中工程量表、钢筋表等涉及到表格生成的问题可以采用以下方法处理:(1)直接把rd或Exel文件中的表格直接粘贴到AD图形中,修改时只要双击图中的表格即可进入rd或Exel中进行编辑修改,修改完成后退出即可返回到AutAD中继续进行设计,该法优点是方便,快捷,易于掌握,可以充分利用Exel的强大计算功能。缺点是表格在AutAD中并不是一个普通图元,无法利用AD功能对表格的字高、颜色和线宽进行编辑。(2)编制LSP程序,依次输入表格标题、表格行数、表格列数、表格行高和列宽以及表格插入点等参数,可以自动生成表格,表格中已经按仿Exel形式填入了文字,可以用字处理软件对表格中文字进行编辑修改。(defun:tab()(setqtb1niltb2niltb3nil)(setqrs(getint表格行数)(setqls(getint表格列数)(setqrh(getreal行高)(setql(getreal列宽)(setqp1(getpintn表格左上角点位置:)(andplinep1
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号