简论给排水CAD计算绘图一体化摘要由于现有的软件包不一定符合用户的设计习惯,其计算功能也偏于简单,以至于不能满足给排水专业设计的特定要求,致使多数设计人员重新回到AutoCAD平台。因此,目前需要开发符合设计习惯的计算绘图一体化程序。关键词计算绘图一体化给排水CADADS开发系统国内已有诸多家单位相继推出了在AutoCAD基础上开发的给排水设计软件包,但是,熟悉和掌握作为通用图形平台的AutoCAD,仍是每个应用计算机进行设计的人员的基本技能。由于现有的软件包不一定符合用户的设计习惯,其计算功能也偏于简单,以至于不能满足给排水专业设计的特定要求,致使多数设计人员重新回到AutoCAD平台。因此,我们需要开发符合设计习惯的计算绘图一体化程序。下面,笔者根据给水排水工程计算机辅助设计的特点,探讨了计算一体化程序及方法,介绍了ADS开发系统及工作流程,并以建筑给排水工程设计为例提供了水力计算与系统图绘制的ADS例程。一、给排CAD的特点用AutoCAD从事给水排水工程设计,在绘图方面,其应用一般是复制条件图、绘制工艺图等,本专业重复绘图相对较少。从计算上看,除个别情况外,通常计算简捷而成熟手册众多、计算无处不有。诸如各种水量、流量计算给排水管线水力计算水箱、水池容积计算管网平差计算等经验数据大量用于设计,而专门的计算程序所得结果数据亦难以直接用于绘图。由此可知,在设计中引入CAD,把计算融入绘图应是给排水专业计算机应用的方向之一。二、给排CAD计算绘图一体化程序的主导思想、目的与意义1.计算绘图一体化的主导思想,在于交叉进行计算与绘图,提高自动化程度,提高计算的精度与速度,避免数据的重复输入,从而提高设计效率。在CAD平台上自动提取计算数据,用户参与意见并将计算结果直接用于绘图、标注或再计算。若将要解决的某个问题作为一个单元模块分步编程、集成应用,可提高程序的实用性、适应性、灵活性。2.给排CAD计算绘图一体化的目的与意义。给排CAD计算绘图一体化的实现,有赖于给排水专业人员和计算机人员的进一步协作。选择合适的高级语言、采用适当的程序结构、正确的计算方法且运用数据共享和通讯技术,这需要经过长期实践才能完成。实现计算绘图一体化功能,应把设计任务模块从上到下细分,以一个设计任务为单元编程,在特定的语言环境中经编辑、编译、调试等步骤,来完成计算绘图一体化程序的设计。三、其实现方法1.开发环境。AutoCAD中常用二次开发的AutoLISP应用语言是一种解释性语言。因图形处理功能强而备受使用者欢迎,不足之处是当图形内容多、计算量大时处理速度慢。为提高计算速度与精度,宜选择ADSAutoCADDevelopmentSystem开发系统、ARXAutoCADRuntimeeXtension开发环境或与DXFDrawingeXchangeFormat进行交换的其他高级语言。其中ADS是Auto-CAD的C语言环境,既能充分利用C语言固有的强大功能,又向开发者提供了丰富的应用程序,接口例程功能完整、接口简单、效率高、速度快、便于多模块组合。用ADS开发的应用程序在R11以上的版本运行,即可与AutoCAD13.0版本以上提供的ARX具有相同的开发环境使用C语言环境编程。故ADS程序具有较好的移植性、延续性、通用性。2.ADS程序的组成及工作流程。ADS程序除输入输出语句外,与C语言程序类似而图形处理功能部分与AutoLISP语言相关。由于它并非最低层代码且必须由AutoLISP解释器加载,因此一个完整的ADS应用程序除包含用户为解决某个问题而设计外部函数外,还必须能支持并且使用ADS环境所定义的与AutoLISP的接口程序。这个接口程序要求按一定的次序,使用确定的值来调用确定的ADS库函数。值得一提的是,外部函数是用户编程的主要内容,而接口程序是定制ADS应用程序的基本平台。四、程序举例以建筑给水系统水力计算为例,输入给水当量即得设计秒流量。选定管材、管径便可计算流速、校验结果。若符合设计要求,可按图形提取管长,计算沿程水头损失,并将计算结果赋给对应管段,为系统图的绘制及标注做好准备。然后,计算局部水头损失。最后,输入高差及流出水头等获得系统所需水压总值。由外部函数SLSJ有序地调用设计依据确定、计算管径的寻找、计算、绘图、标注以及管网类型选择等不同功能的模块函数,完成实例中计算、绘图一体化设计。具体如下:1.编译。将程序SLJS.C拷贝至AutoCAD,环境ADS目录下用W90SAMP.BAT编译产生SLJS.EXP文件或用BorlandC编译产生可执行文件SLJS.EXE。2.装载与装载AutoLISP程序一样有2种方法。(1)修改AutoCAD的标准菜单文件ACAD.MNU,使其置于AutoCAD的下拉式菜单或屏幕菜单中执行,也可放入用户自制的实用菜单内执行。(2)在Command行用格式为XLOAD“SJLS.EXP”的命令载入。3.执行及结果。点取菜单或执行SJLS命令,绘制某住宅楼给水系统图,并计算该系统所需压力值,也可用此程序对成图后的给水系统进行计算或标注。若将计算结果按表格方式输出,即得计算书对复杂管道系统的水力计算,再将以前的计算结果作为下次计算的基础数据,便可分步完成全部的计算与绘图。但是,应进一步扩充和完善程序。五、结论一是计算绘图一体化程序,较好地解决了经验数据的采用多、计算对精度要求不高的做法,克服了专门计算程序的结果数据难以直接用于绘图和标注的问题;二是在计算绘图一体化程序中,把能用公式表达的手册内容自然地纳入了计算机,从而节省查阅手册的时间,提高设计效率;三是ADS应用程序容易移植、修改、扩充,采用模块化编程方法便于将解决问题的多个模块进行组合,具有一定的灵活性且保密性好。