本文从扩展数据在实体中的存贮方式、扩展实体数据的插入和查询以及应用扩展实体数据实现管配件的插入、图形的删除及修改等方面,介绍了应用扩展实体数据库进行给排水工程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));提取最近画的一个实体的图形数据库 本篇文章共3页,此页为
|