城市燃气管网水力计算软件的开发.pdf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 城市 燃气 管网 水力 计算 软件 开发
- 资源描述:
-
第 3 0卷第 4期 2 0 1 0年 4月 煤 气 与 热 力 GAS & HEAT Vo 1 3 0 No 4 Apr 2 01 0 城市燃气管 网水力计算软件的开发 丁国玉 , 田贯三 , 安俊卿 , 王 磊 ( 1 北京市城 市规划设计研 究院,北京 1 0 0 0 4 5 ;2 山东建筑大学 热能工程学院, 山东 济南 2 5 0 1 0 1 ;3 德州市建筑规划勘察设计研 究院, 山东 济南 2 5 0 1 0 1 ) 摘要 : 以 A u t o C A D为平台, 采用 V B二次开发技 术实现燃气管 网管段 节点坐标的读取 , 自 动生成燃 气管网水力计算图; 采用 V C+可视化编程语言 , 编制 了城 市燃气管网水力计算软件 。 关键词: 燃气管网; 水力计算; 软件 中图分类号 :T U 9 9 6 文献标识码 :A 文章编号 :1 0 0 0 4 4 1 6 ( 2 0 1 0 ) 0 4 0 A 3 1 0 3 De v e l o p me nt o f Hy d r a u l i c Ca l c u l a t i o n S o f t wa r e f o r Ci t y Ga s Ne t wo r k DI NG Gu o y u,T I AN Gu a n s a n, AN J u n q i n g, WANG L e i Abs t r ac t : Ba s e d o n Au t o CAD,t h e r e a di ng o f s e c t i o n n o d e c o o r d i n a t e s o f g a s n e t wo r k i s r e a l i z e d b y VB s e c o n d a r y d e v e l o p me n t t e c h n o l o g y,a n d t h e h y d r a u l i c c a l c ul a t i o n d r a wi n g o f g a s n e t wo r k i s a u t o ma t i c a l l y g e n e r a t e d T h e h y d r a u l i c c a l c u l a t i o n s o f t w a r e f o r c i t y g a s n e t w o r k i s p r o g r a mme d b y VC + v i s u a l p r o gra mmi n g l a n g u a g e Ke y wo r d s: g a s n e t wo r k;h y d r a u l i c c a l c u l a t i o n; s o f t wa r e 随着城市的发展 , 燃气管网的规模越来越大 , 结 构越来越复杂 , 水力计算需要处理的数据越来越多 , 准确 、 快速地生成水力计算图, 实现水力计算与 A u t o C A D图形的无缝结合成为提高燃气管 网水力计算 效率的重要途 径。本 文 以 A u t o C AD为 平 台, 采用 V B二次开发技术 , 采用 V C+ 6 0可视化编程语 言编制了燃气管 网水力计算软件 , 大大减小 了燃气 管网水力计算的工作量, 提高了工作效率。 1 A u t o C A D的 V B二 次开发机理 A u t o C A D作为一种具有高度开放结 构的 C A D 平台软件 , 提供 了强大的二次开发环境。 目前 , A u t o C A D二 次 开 发 工 具 主 要 有 O b j e c t A R X、 V i s u a l L I S P 、 V B等编程语言 j , 考虑到程序 的易用性 、 普及 性以及与其他图形软件的接口等因素, 本文采用 V B 对 A u t o C A D进行二次开发 , 实现燃气管 网水力计算 图的 自动生成 。 A c t i v e X O b j e c t 技术 A c t i v e X是微软的一项技术标准 , 在 Wi n d o w s 系 统的统一管理下协调不 同的应用程序, 实现程序 间 的相互通信、 相互控制, V B通过引用应用程序提供 的 A c t i v e X O b j e c t , 实 现应 用 程 序 的二 次 开 发 J 。 A c t i v e X O b j e c t 是 由一系列对象按一定 的层次组成 的一种对象结构 , 每一个对象代表了 A u t o C A D中一 个明确的功能, 如绘制 图形对象、 定义块和属性等。 A c t i v e X具备 的绝大多数 A u t o C A D功能 , 均以方法 和属性的方式被 封装在 A c t i v e X对象 中, 通过引用 各种对象 的方法 、 属性 , 实 现对 A u t o C A D的二次开 发 。 A c t i v e X对象模型 A u t o C A D A c ti v e X提供了各种封装有 A u t o C A D 功能的对象 , 所有的对象都具有一定的层次关系 , 根 据其在 A u t o C A D 中的功 能, 可 以采用树 形结构 表 基 金项 目 :国家“ 十一五” 科技支撑计划项 目( 2 0 0 6 B A J 0 3 B 0 1 ) A 31 第3 0卷第4 期 煤 气 与 热 力 示 , 称之为对象模型 ( O b j e c t Mo d e 1 ) , 本文在 A u t o C A D二次开发中所用的主要对象模型见图 1 。 图 1 A u t o C A D A c t iv e X对象模 型 A p p l i c a t i o n对象 :A u t o C A D A c t i v e X 中的根对 象 , 是所有对象的基础 , 处于最高层。为了得到一个 特定对象必须从 A p p l i c a t i o n 对象进行逐级引用。 D o c u m e n t s对象 : A u t o C A D控制 图形 文件 的直 接对象 , 可 以通过 A p p l i c a t i o n的 A c t i v e D o c u m e n t s 的属性返 回。在 D o c u me n t s 对象中 A u t o C A D引入了 集合的概念 , 与 V B中的集合一样 , 这些集合都支持 A d d 、 I t e m方法与 C o u n t 属性 。A d d方法可以向该集 合中添加一个对象 , I t e m( X ) 可以得到该集合 中的第 x 个对象 , C o u n t 属性可以得到该集合 中对象的个数 等。 D o c u m e n t s 对象下面有 M o d e l S p a c e ( 模型空间) 及 L a y e r s ( 图层 ) 等一 系列对 象集合。Mo d e l S p a c e 是图形文件 中的 图形实体集合 , 如 L i n e ( 直线 ) , 每 个实体均可通过相应对象的属性进行操作 , 改变或 得到相应的参数 , 如直线坐标。L a y e r s 是 图层集合 , 通过对 L a y e r s 对象 的引用可以得到 图层集合 的子 对象 , 如 L a y e r 。 2 管段节点坐标的提取 在 A u t o C A D绘图前期, 建立一个名为“ G a s N e t ” 的图层 , 所有燃气管网的绘制都在这个图层 中进行 ; 管网绘制完成后 , 遍历 图层集 合 , 得到 “ G a s N e t ” 图 层 ; 遍历“ G a s N e t ” 图层 中所有图形实体, 得到管段对 象 ( L i n e ) , 读取管段节点坐标 , 并将管段节点坐标存 入管段链表_ 3 中。其开发步骤如下 : 启动 V B , 建立项 目文件 , 引入 A t u o C A D对 象库: 在 V B编程环境中, 选择“ 工程” 引用” 命 令 , 打开“ 引用” 对话框 , 选择 A u t o C A D 2 0 0 4 T y p e L i b r a r y复选框。 在项 目中添加窗体、 控件等 , 并编写相应程 序代码。 a 引入 A t u o C A D应用程序对象。A u t o C A D A c t i v e X中对象的引用是通过对象变量完成的, 首先声 明变量类型, 然后用 S e t 语句将对象引用赋给变量 , 部分代码如下 : D i m A c a d a p p a s A c a d A p p l i c a t i o n 声 明 A u t o - C A D应用程序对象 S e t A c a d a p p=C r e a t e O b j e c t f ” A u t o C A D A p p l i c a t i o n ” ) 启动 A u t o C A D b 引用 A u t o C A D应 用程序对 象的下级 对象。 通过 A u t o C A D应用程序对象 ( A p p l i c a t i o n ) 的属性和 方法 , 逐级访问下级对象 , 如下面语句通过 A u t o C A D 应用程序对象变量 ( A c a d a p p ) 的 A c t i v e D o c u m e n t 属 性访 问 Mo d e l S p a c e , 再 通过 Mo d e l S p a c e对 象 的 A d d方法, 得到所有模型空问中所有直线的集合。 D i m S S l i n e A s A c a d S e l e c t i o n S e t 定义选择集 S e t S S l i n e=Ac a d a pp Ac t i v e Do c u me n t S e l e c t i o n S e t s A d d ( ” L i n e ” ) C 遍历所有直线 , 得到“ G a s N e t ” 图层 中的管段 ( L i n e ) 坐标。 D i m r e t p t A s V a ri a n t , r e t e p A s V a ri a n t 定义两 个变体数据用以存放起点、 终点坐标 D i m r e t o b j A s A c a d L i n e 定义直线对象 F o r E a c h r e t o b j I n S S l i n e 遍历所有直线 I f r e t o b j L a y e r =“ G a s N e t ”T h e n 判断直线是否 在“ G a s N e t ” 图层中 r e t p t=r e t o b j S t a r t P o i n t 得到起点坐标 t x t fi l e w r i t e r e t p t ( 0 ) 输出起点 x轴坐标 t x t fi t e w r i t e ( ” ) 输出空格 t x t f i l e w r i t e r e t p t ( 1 ) 输出起点 Y轴坐标 r e t e p= r e t o b j E n d P o i n t 得到终点坐标 t x t fi l e w r i n e ( ” ) 输出空格 t x t fi l e w r i t e r e t e p ( 0 ) 输出终点 x轴坐标 t x t f i l e w r i t e ( ” ) 输出空格 t x t fi l e w r i t e l i n e r e t e p ( 1 ) 输出终点 Y轴坐标 En d I f Ne x t d 释放 A u t o C A D对象。当不再使用被引用的展开阅读全文

链接地址:https://www.wdfxw.net/doc65708527.htm