教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 扩展实体数据在给排水工程CAD中的应用

扩展实体数据在给排水工程CAD中的应用

上传者:网友
|
翻新时间:2013-12-18

扩展实体数据在给排水工程CAD中的应用

扩展实体数据在给排水工程CAD中的应用 扩展实体数据在给排水工程CAD中的应用 扩展实体数据在给排水工程CAD中的应用 【摘要】本文从扩展数据在实体中的存贮方式、扩展实体数据的插入和查询以及应用扩展实体数据实现管配件的插入、图形的删除及修改等方面,介绍了应用扩展实体数据库进行给排水工程CAD绘制的方法和技巧,并给出几个通过实际工程验证的实用小程序,提出工程设计人员在工程图绘制过程中,自行编写小程序可以扩充商业软件的功能,提高绘图效率的结论。

1概述

在计算机迅速普及的今天,CAD已不再是新鲜名词。尤其是在工程设计领域,手工画图已逐渐被CAD软件所代替。在我国应用最广泛、最普及的CAD工具是AutoCAD软件包,该软件包以其界面友好、使用方便、功能强大的特点,被广大工程设计人员所接受。在给水排水工程领域,由于各设计单位的设计标准和设计方法的不同,造成各软件公司所开发的CAD软件不能被设计单位所广泛接受。尤其是软件公司的软件开发人员,在我国大多是计算机应用比较熟练的非专业人员或实际工作经验很少的专业技术人员,由于他们专业知识和工作经历的限制,造成所开发的专业软件存在这样或那样的不足,从而限制了专业软件的实用性。因此,尽管市场上的商业专用软件很多,但能够切实满足工程设计需要的软件并不多,甚至许多单位购置的软件根本就不能发挥其应有的作用。通过多年的CAD软件开发经验,作者认为,工程设计人员掌握一定的CAD技术处理技巧,可以在直接应用AutoCAD软件或其它商业软件进行工程设计的同时,自行编写一些实用的小程序,不但可以提高工程设计效率,而且还可以通过日积月累,使所编写的小程序在本单位内应用。

在给水排水工程领域,最常处理的图形就是管线。管线是连接水源到水厂、水厂到用户、各构筑物间的有向图,一根管线的变动,必然引起其它设施的改变。同样,各构筑物采用平、立、剖三视图进行工程图的表达,一个视图的改变,也引起其它视图相应的改变。以前我们都是通过单个图形分别修改的方法来实现,不但效率低,而且容易产生错误。本人通过在WDOC软件开发中的应用,认为扩展实体数据库的应用,可以有效地解决这些问题,并且能够提高绘图效率。

2扩展实体数据的插入与查询

2.1扩展数据在实体中的存贮方式

假设一条管线,起点号是8,坐标是(5.05.00.0),终点号是18,坐标是(10.010.00.0),管段号是1,这条管线的图形数据库为:

((-1<Entityname:1f92f48>)(0″LINE″)(5.″519″)(100.″AcDbEntity″)(67.0)(8.″0″)(100.″AcDbLine″)(105.05.00.0)(1110.010.00.0)(2100.00.01.0)(-3(″PIPE1″(1002.″{″)(1000.″8,18″)(1002.″}″)))

其中扩展数据为:(-3(″PIPEI″(1002.″{″)(1000.″8,18″)(1002.″}″))),″PIPEI″表示以PIPE为前导的管线,管线号为1;″8,18″表示管线的起点号为8,终点号为18。

扩展实体数据内容在实体数据库中是以-3码为前导的一个表项。在一个实体中可以加入扩展实体数据的大小为16383字节。用于描述非图形数据的扩展实体数据库有关组码为:

组码 意义

1000

1001

1002

1003

1004

1005

1010

1011

1012

1013

1040

1041

1042

1070

1071 ASCII码字串,长度小于255个字符位

已登记的应用名,长度小于31个字符位

控制字串

层名

长字节,长度小于127字符

实体索引名

点位

3D地坪空间位置

3D地坪空间位移

3D地坪空间方向

浮点数

距离值

比例系数;

16位整数

32位整数

2.2扩展实体数据的插入

使用扩展实体数据,必须用AutoLISP程序实施对实体数据库的访问和修改。首先要自行定义扩展实体数据库信息表,然后再加入到指定的实体中。此处只是给出扩展实体数据库插入的AutoLISP程序主要内容,有兴趣的读者可以自行加入所需要的信息表,以把这一程序的功能进行扩展。

对最后画的一个实体加入扩展的实体数据表的AutoLISP程序为:

(defunexadd(nametyp/sselnel);name:扩展实体数据登记名,typ:扩展实体数据内容。

(setqss(cons-3(list(consname(cons(cons1002″{″)(cons(cons1000typ)(list(cons1002″}″)))))));定义扩展实体数据库el(entget(entlast));提取最近画的一个实体的图形数据库

nel(consssel);把扩展实体数据信息加入到实体数据库中)(regappname)(entmodnel))

如果对上述函数修改一下,可适用于对任意所选择实体加入扩展实体数据信息:

(defunexaddl(nametyped/sselnel);ed:所选择实体,把上述程序的el(entget(entlast))改为el(entgeted)即可。)

利用上述二个小程序,就可以实现对所画的最后一个实体或任一所选择的图形实体加入扩展实体数据,其特点是比用属性建立非图形信息的速度更快、更灵活、更小的数据体积,而且可以进行图形索引。

2.3扩展实体数据的查询

在对图形实体插入扩展实体数据后,还要对所插入数据信息进行查询、修改和应用。此处只给出扩展实体数据查询和数据提取的AutoLISP程序。

查找扩展数据登记名的程序:(defunexname(ed/cxl)(setqcxl(cdr(assoc-3(entgeted`(″*″)))))(ifcxl(car(nth0cxl))))

本程序应用,就可以对任何一个所选择的实体,找出它的扩展实体数据登记名。如管段号、节点号等。

对任意选择实体,提取扩展实体数据的程序:

(defunexsub(edname/sstypnamecxlcncalctcbl)(setqtyp(cons1"不是所选择实体");如果选择实体与所指定的扩展数据名不一致,则提示错误。

name(strcasename)cxl(cdr(assoc-3(entgeted`(″*″)))))(ifcxl(progn(setqcn0)(while(setqcal(nthcncxl))

(if(=name(carcal))

(progn(setqct0cal(cdrcal))

(while(setqcbl(nthctcal))

(if(=(carcbl)1000)(setqtypcblct10000cn10000))

(setqct(+ct1)))))(setqcn(+cn1)))))(cdrtyp))

上述两个程序的应用,就可以实现对所绘实体的扩展数据信息进行提取。

我们知道,AutoLISP是嵌入AutoCAD中的功能扩展程序,如同使用AutoCAD函数一样,易学易用。应用AutoCAD进行工程设计的技术人员,应该学会用AutoLISP编写简单的程序,以方便工程图形的绘制。从上述的程序中也可以看出AutoLISP编写的完成某一功能的程序,小到一至二句,多到十几句,即可实现所要完成的工作。

3扩展实体数据在给排水CAD中的应用

3.1管配件插入:

例如一条已经画好的管线,管径为DN100,使插入的管配件也具有DN100的特性。假设管配件是阀门,为已经做好的图块。我们可以在插入的过程中不需要关心管径是多少,直接插入阀门信息,从而提高绘图效率。应用扩展实体数据库的程序为:

(defunc:inval(/sspededanametypp1p2ang)

setqss(entsel)p(car(cdrss))ed(carss)eda(entgeted)

name(exnameed);提取扩展实体数据的名称

typ(exsubedname);提取扩展实体数据信息,即管径信息

p1(cdr(assoc10eda);管线的起点坐标

p2(cdr(assoc11eda);管线的终点坐标

ang(anglep1p2);管线角度

(command″break″p″F″(polarpangBL)(polarp(+piang)BL);断开线的距离

″insert″″阀门″p(*2BL)″″ang);插入阀门(exaddnametyp);对插入的阀门加入扩展实体数据,即管径。

这一小程序在加载以后,如同AutoCAD函数一样,只要在命令状态下运行inval,系统提示选择实体时,在插入阀门的位置上点取管线,就会自动把管线先断开,再插入阀门,并且所插入的阀门具有DN100的特牲。

3.2管线删除

对于上面所插入阀门的管线,由于阀门的插入而变为二条线,三个实体(二条线加一个阀门),如果由于各种原因需要删除,按照AutoCAD命令,则需要分别对这三个实体加以删除。对于工程图,由于图形复杂,经常会产生误操作或漏操作的问题,给工程设计人员带来许多困难。而扩展实体数据库的应用,可以为工程图的绘制带来许多方便。

(defunc:deled()

(setqss(entsel)ed(carss)s(ssget"x")n0name(exnameed)typ(exsubedname))

(while(setqes(ssnamens))(setqname1(exnamees))

(if(=namename1)(progn(setqtyp1

(exsubesname))(if(=typ1typ)(entdeles))))

(setqn(+n1))))

这一小程序在加载后,运行deled,按照提示选择要删除的实体,即可删除与这一实体具有相同扩展数据的所有实体,快速而准确。

3.3扩展实体数据修改

给水管网图是由管线、节点、水泵、水塔、阀门等组成,所有设施之间并不是相互独立,而是有机的联系在一起。某一设施的修改,必然带动其它与之有关联的设施和变动。例如,对于给水管网水力计算成果图,当节点号修改时,要影响与之相连的所有管线的起止节点号的变动、管线上水流方向扩展实体数据的变动以及节点标注信息的变动。一般情况下,一个节点号的变化,要引起几个甚至几十个图形实体的变化。采用扩展实体数据绘图,这一变化可以通过程序方便地实现。此处只给出修改一个扩展实体数据的小程序,读者可以扩充这一小程序,以通过遍历整个图形数据库的方式,分别查找要修改的实体,并加以修改。

(defunchent(edstyp/sbcxlss);

(setqsb(entgeteds′(″*″))cxl(cdr(assoc-3sb))

ss(list(cons(exnameeds)ss)))(netmod(subst(cons-3ss))

(cons-0cxl)sb))(entupdeds))

从上述介绍可以看出,应用扩展实体数据,可以弥补仅以AutoCAD绘图函数绘图的不足,从而使所绘的工程图有速度更快、更准确的特点。

4结论

以上仅是作者在给水管网优化设计计算与非稳定状态水力模拟软件-WDOC开发过程中采用的几个小技巧,在应用中发现有极大的实用价值,不仅提高了绘图的速度,而且还可使互不相关的实体之间建立相互联系。在绘图过程中,可以实现对一个实体的绘制及修改,自动实现与之相关的其它实体的绘制及修改。工程设计人员如果是有心人,可以在完成实际工程的过程中,对一些图形复杂、关联性强的实体,自行通过编写几句或十几句AutoLISP程序来加以实现,日积月累,把编写的小程序集成起来,不但可以解决商业软件与工程实用化相脱节的矛盾,而且还可以提高制图效率。

作者在给水排水工程CAD软件的开发和使用中,通过多年的积累,也编写了一些小程序,相当实用。有兴趣的读者可以与作者联系,相互交流,扩大实用小程序的应用范围 .

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

铅笔、橡皮、削笔刀和笔盒
小小运动会
小鹿与乌龟
08奥运 百年梦圆
音乐课前
掌声
金鱼
扔沙包
蚂蚁搬东西
狐假虎威续编
龟兔赛跑
我敬爱的老师
金黄宝塔
我的自画像
寻找秋天
2009年最新入党志愿书
公务员入党志愿书
入党志愿书的写作内容是什么?
XX大学生入党志愿书范文
战士入党志愿书
2008入党志愿书
中学生入党志愿书
财务人员入党志愿书
什么是入党志愿书
2008入党志愿书范文
发展对象入党志愿书
入党志愿书范文
入党志愿书写作指导
08年入党志愿书
高中生入党志愿书
浅议存货审计(1)
传统的财务管理模式适应电子商务环境的对策(1)
开展政府投资效益审计的几点思考(1)
浅谈采购比价审计(1)
商品促销的会计处理与增值税纳税筹划(1)
会计电算化中常见的作假手法(1)
试论环境会计的目标与经济后果(1)
浅议物流企业应收账款管理(1)
新旧会计准则企业所得税会计处理的比较(1)
浅析新会计准则对会计信息生产及披露成本的影响(1)
金融企业的违纪行为及其审计方法(1)
整合资源推进审计工作科学化发展(1)
浅谈现金流量表编制方法(1)
会计信息系统的安全需求(1)
会计电算化系统舞弊的防范与控制(1)
《活化石》教学设计之一
《父亲和鸟》教学设计之一
《农业的变化真大》教学设计
《我是什么》教学实录、说课设计、综合资料2
《浅水洼里的小鱼》第二课时教学设计2
《回声》教学设计
《活化石》教学设计之二
《我是什么》教学实录、说课设计、综合资料4
《秋天的图画》教学建议
《我是什么》教学实录、说课设计、综合资料1
《我是什么》教学实录、说课设计、综合资料3
《太空生活趣事多》教学设计
《浅水洼里的小鱼》第二课时教学设计3
《回声》教学实录
《浅水洼里的小鱼》第二课时教学设计1