温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
WPF
管道
检测
报告
软件设计
DOI:10.13876/J.cnki.ydnse.220100第 42 卷 第 3 期2023 年 9 月延安大学学报(自然科学版)Journal of Yanan University(Natural Science Edition)Vol.42 No.3Sep.2023基于WPF的承压管道检测报告软件设计路绍军,贺江红,乔曦(延安大学 物理与电子信息学院,陕西 延安 716000)摘要:在承压管道检测维护过程中,存在工作人员手填报表等带来的不便以及数据录入系统不及时的缺点。为解决承压管道数据录入的全程信息化、自动化,提出了基于WPF开发平台的3D承压管道检测报告管理软件系统,并且引入参数化2D、3D模型仿真方法,通过制定参数动态生成3D物体表面网格,从而生成制定参数的3D模型。结果表明,采用WPF平台的软件结合了美观及实用性,并且参数化2D、3D模型仿真方法无需将2D、3D模型保存进数据库,可以减轻数据库读写及存储压力,提高了软件的可靠性和易用性。关键词:WPF;承压管道;软件设计中图分类号:TP311 文献标识码:A 文章编号:1004-602X(2023)03-0086-06Windows呈现基础(Windows Presentation Foundation,WPF)是为Windows平台开发设计的一门编程框架,基于 C#语言开发,常用语设计桌面软件,采用XAML语言设计界面,用C#代码实现功能,XAML编写的控件对象可以直接在C#代码中调用,可以使软件界面设计与后端开发分开。与传统开发软件模式相比,界面设计专业人员可以更好的设计界面,并与开发人员协同配合1-4,同时它提供了3D图形的支持,并且对3D开发常用的3D摄像机、3D模型等内容都有很好的封装,能在软件界面实现简单的3D效果,并在3D界面中增加平面功能,使软件界面设 计 更 丰 富,为 软 件 使 用 者 提 供 良 好 的 交 互体验5-8。承压管道检测为质量检测机构的一项重要检测任务,在承压管道检测维护过程中,需要对承压管道的基本信息、缺陷位置、3D示意图、2D示意图等出具检测报告,并进行备案,对存在安全隐患的承压管道及时维修或者报废处理。以往检测工作中,工作人员需要手动记录数据、绘制示意图,最后进行编写报告,工作效率低,且数据维护起来效果差,缺少信息化手段。为解决此问题,本文设计了基于WPF的承压管道检测报告软件,对检测的承压管道存放MySQL数据库,方便查询,集成查看承压管道 2D、3D 示意图及详细参数等,并一键生成报告,方便工作人员操作,从而提高工作效率和准确率。1承压管道检测报告软件设计系统整体结构:系统主要由三部分组成,数据库管理系统、2D、3D模型仿真和生成报告系统。数据库管理系统:对经检测的承压管道信息建立数据库,保存设备的使用单位、类型、尺寸、缺陷位置等,并对数据库进行基本的增、删、查、改操作。2D、3D模型仿真:主要利用WPF中2D画布、3D模型相关功能,按照指定参数进行绘图,并标注缺陷位置,完成承压管道2D、3D的基本示意图。生成报告系统:一键生成承压管道检测报告,包含承压管道的基本信息、检测信息以及附承压管道和缺陷位置的2D、3D展示图,形成完整报告。2数据库功能设计数据库采用的是MySQL数据库,MySQL数据库收稿日期:2022-10-11基金项目:延安大学博士科研启动项目(YDBK2019-55)作者简介:路绍军(1979),男,河南许昌人,延安大学副教授,博士。第 3 期路绍军 等:基于WPF的承压管道检测报告软件设计为Oracle旗下的数据库管理系统,具有免费、开源、可扩展性强的特点,操作起来迅速、安全和实用。本数据库模块主要实现功能有承压管道信息库的浏览、查询、插入、删除、修改功能9,每条数据包含了承压管道的类型、尺寸、额定压力等信息,在软件界面添加DataGrid控件,将控件与数据库绑定,可以将数据库中的信息读入控件中,方便操作人员查看数据10。2.1信息需求包含编号、压力管道类型、承压管道高、承压管道周长、额定压力、使用压力、使用单位、单位地址、联系人、电话、裂纹位置、裂纹尺寸、腐蚀位置、起槽位置等。2.2处理要求1)数据的录入:对压力管道的基本情况、检测数据等进行信息录入,并对数据进行存储;2)信息的修改:工作人员可以对压力管道的基本信息、检测数据进行修改操作;3)信息的查询:工作人员可以对压力管道的各类信息进行查询;4)信息的删除:工作人员可以对数据库的某条数据进行删除操作。5)密码保护:工作人员对数据库操作前首先要输入密码,方可进行录入、更新、查询、删除操作。本文采用dbForge studio进行数据管理,建立数据库,并填入一定量的实验数据。在WPF中,用MySQLConnection类进行连接数据库,并用 MySQLDataAdapter 类执行相应增、删、查、改操作的 SQL语句。tb1为数据库中建立的表名,查询执行SQL语句SELECT*FROM tb1,插入执行 SQL 语 句 INSERT INTO tb1,VALUES(column1_value,column2_value,column3_value,column4_value),在输入窗口中分别输入各条目的值;删除执行SQL语句delete from tb1 where编号=*,即删除所指定的行数据;修改执行 SQL 语句 update tb1 set“指定列”=“内容”where id=“指定行”。3参数化2D、3D模型仿真方法的研究相比 Direct3D 以及 OpenGL 等 3D 开发技术,WPF在呈现2D、3D图形则更简洁、美观,开发2D、3D图形场景更便捷,交互性更好。但在大部分基于WPF 3D开发中,都是以导入固定3D模型为主,如开发者利用 3DMAX 等第三方 3D建模软件进行建模,导出.obj 模型文件,利用 Microsoft Expression Blend 软件将.obj 格式的 3D 模型转换为 XAML 文件,导入WPF中即可呈现3D模型。而本文中承压管道的尺寸不统一,每个承压管道的尺寸都由实际测量得到,无法以固定3D模型代替,所以在此研究参数化的2D、3D模型仿真方法。3.1参数化2D模型仿真根据测量承压管道的横截面周长a和高h,即为输入参数,承压管道2D展开图为矩形,可以得出矩形长为圆柱横截面圆的周长a,宽为圆柱的高度h。测量的缺陷点坐标为(x1,y1)。在WPF界面设计中,绘图是以像素为单位,在这里用测量值1 cm对应软件界面中的1个像素。程序流程图如图1所示。首先用 WPF 中画布控件 Canvas 作为展示区域,可设置画布的参数为高和宽:Height=“361”、Width=“422”,画布位置:Margin=“728,36,0,0”、HorizontalAlignment=“Left”、VerticalAlignment=“Top”。然后利用矩形绘图 Rectangle 类进行绘图,矩形 绘 图 Rectangle 类 为 WPF 命 名 空 间 System.Drawing提供的绘制矩形图的类,可以指定位置和大小初始化一个矩形图形,绘制矩形作为承压管道的 2D 展开图,以测量承压管道的横截面周长 a和高 h 作为输入参数,绘制出长为 a、宽为 h 的矩形,代码如下:Rectangle myRect;myRect=new System.Windows.Shapes.Rectangle();图12D仿真程序流程图87延安大学学报(自然科学版)第 42 卷 myRect.Width=a;myRect.Height=h。另外用Rectangle类属性设置画笔颜色为蓝色、填充颜色为浅蓝色,矩形图位置放置在画布中央。同样在承压管道2D图上标注缺陷点也用Rectangle类构造的红色矩形表示,缺陷点的位置由工作人员实际测量得出。得到的图形如图2所示。3.2参数化3D模型仿真3.2.13D模型绘制原理WPF提供的一些开发3D模型的类,可在软件界面中加入3D元素,展示3D图形,但由于WPF功能限制,不能开发出复杂的3D场景,所以只能实现基本的、简单的 3D 模型,如圆柱体、球形、正方体等,绘制3D模型主要用到以下类:Viewport3D:实 现 3D 效 果 主 要 用 到 的 是Viewport3D类,它用来显示3D模型的窗口,使用类似于WPF的其他控件,可以快速在XAML文件中部署,操作简单方便,交互性高,从而使软件界面的2D和3D元素搭配变得非常简单。WPF中3D模型创建与传统的OpenGL、Directx3D方法类似,都是用一定排列样式的三角形组成3D模型的表面。Geometry:设置 3D 图形的坐标点、索引、法向量、纹理映射等。Material:设置3D模型表面的材质。BackMaterial:设置3D模型背面的材质。MeshGeometry3D:用三角形网络构建 3D 物体的表面,包含Positions、TriangleIndices、TextureCoordinates、Normals等属性。其中,Positions:表示组成 3D 模型表面的三角形的各个坐标点集合。TriangleIndices:用来指定哪三个点组成一个三角形。组成三角形的点,如果按逆时针排序,表示物体的正面;如果按顺时针排序,表示物体的反面。TextureCoordinates:给3D模型映射纹理。Normals:构成图形的各个坐标点的法向量。3.2.2引入参数化3D模型仿真本文中用输入参数生成指定尺寸的模型,输入的测量值为压力管道的横截面周长a、高h以及缺陷点坐标(x1,y1),基于输入参数绘制压力管道的3D模型以及标注缺陷点位置。程序流程图如图 3所示。承压管道的外观形状一般比较规则,接近于圆柱体,所以承压管道外观参数主要指罐体的参数,包含罐体的横截面圆形周长及罐体高,本文在3D模型里设置圆柱的横截面圆形周长及圆柱高度来实现绘制指定参数的圆柱体11-12。圆柱体分为顶面、底面及侧面,顶面和底面的圆形用三角形组成,圆形则用围绕圆心的三角形组成,当三角形数量越多,圆形就看起来越圆,当三角形数量为6个、10个以及逼近圆形时,效果如图4A、B、C所示。为使本文中圆柱看起来足够圆,这里指定顶面和底面的圆形包含的三角形数量为50个,每个三角图2承压管道2D仿真图及缺陷点位置图33D模型仿真程序流程图A.6个三角形B.10个三角形C.逼近圆形图4若干个三角形组成的圆形88第 3 期路绍军 等:基于WPF的承压管道检测报告软件设计形顶点夹角为2/50,底面圆的圆心O在三维坐标系中为(0,0,0),设三角形的底边相邻两个顶点分别为A、B,A的坐标为(xA,0,zA),其中xA=R/cos(i),zA=R/sin(i),i为距离 z轴第 i个点。同样求出 B的坐标(xB,0,zB),利用逆序法画出三角形,即按B、O、A的顺序连接三个顶点画出三角形正面,然后循环遍历所有三角形,最终得到整个圆。带入输入参数横截面周长a,可知上述未知量R=a/2,即可得到圆柱体顶底面尺寸。侧面则用上下颠倒的两个三角形组成矩形,三角形的高等于输入参数h,再用矩形组成柱体,随着矩形的数量增加,则柱体越接近圆柱。一定数量的矩形环绕组成曲面,此时三角形的顶点都在顶面和底面圆上,如图5A、B、C所示。同样利用逆序法连接顶点,画出每个三角形,组成圆柱的侧面,顶面、底面、侧面着色后得到横截面周长为a、高为h的圆柱体,如图6所示。由于WPF的3D空间仅支持3D模型,不支持画线,所以承压管道的缺陷点位置用一个小球体标注,球体则用经纬线将球体表面分为若干个矩形,再将每个矩形分为两个三角形,则可以将球体表面分解为若干个三角形,再循环遍历每个三角形,着色后得到整个球体。R为球体半径,保持与圆柱体一定的比例,根据输入参数,设置R=a/20,使球体在圆柱上显示为一个点。球面的顶点坐标(x,y,z)可以表示为x=-Rcossin,y=Rsin,z=-Rcoscos。()0 /2,0 2每个顶点连接球心的=/2-i /n,其中i为第i条纬线,n为纬线的总数。每个顶点连接球心的=2j /m,其中j为第j条经线,m为经线的总数。由此可以遍历出球面的每个顶点,再用索引法,逆序连接三个点,组成三角面,遍历出球面的所有三角形,着色以后最终得到整个球面,如图7所示。用半径极小的球体作为标注点标注圆柱表面的缺陷点。缺陷点在 2D展开图上坐标为(x1,y1),2D展开矩形的侧边长h,底边长为a,则缺陷点在3D空间中圆柱上的对应位置用(x2,y2,z2)表示,呈现效果如图8所示。x2=a2sin(x1a2),y2=y1,z2=a2cos(x1a2)。3.2.33D模型缩放及旋转设计为实现3D模型的旋转、放大、缩小功能,这里主要用摄像机旋转视角来实现,鼠标在水平轴的偏移量来更改摄像机水平绕3D模型的角度,鼠标在垂直轴的偏移量来更改摄像机垂直绕3D模型的角度。实现对3D的放大、缩小主要调整摄像机离3D模型的距离。在WPF应用窗口XAML文件中加入Viewport3D元素及摄像机,摄像机位置设置为(3,6,10),镜头朝向(-3,-6,-10),通过俯视角度可以看到模型的顶部及侧部,视角设为60,摄像机轴朝向为(0,1,0),来保持摄像机竖直放置。摄像机的设置如下:横向旋转操作时,设摄像机距离圆柱轴线距离为Rc,初始位置为(xc,yc,zc),鼠标点击窗口并移动的横轴偏移量为a,则摄像机的下一个位置(x3,y3,z3)表示为x3=xc+Rccos(arccos(xcRc)-aRc),y3=yc+Rcsin(arccos(xcRc)-aRc),z3=zc。同理,当进行纵向旋转时,可以根据纵向的偏移量计算出下一个坐标点,完成纵向旋转操作。4一键生成报告功能设计此功能为实现一键生成指定承压管道的Word版报告,需基于Word做二次开发,将数据库读出的数据填入Word报告模板中,再根据参数绘制承压管道图形的2D、3D图形,将2D、3D图形转换为图片插入到Word中,由此生成完整报告。为将数据库信息准确填入Word报告模板指定位置,在Word报告模板插入书签,用书签定位数据插入位置13-14,如图9所示。例如在 Word中插入使用单位信息,使用单位信息在数据库的第七列,鼠标选定某一行数据后,取第七列(列序号为 6)插入到“使用单位”书签位置:wordDoc.Bookmarks.get_Item(“使 用 单 位”).Range.Text=newRow.GetValue(6).ToString()。同理可以将其他数据填入Word模板的表格中。接下来在Word模板中插入2D、3D展示图。对软件中2D、3D两个区域生成的图像进行截图,主要利用RenderTargetBitmap类将软件指定的2D、3D区域画布部分转化为位图,从而得到2D、3D截图。使用RenderTargetBitmap的构造函数为RenderTargetBitmap(int)target.ActualWidth,(int)target.ActualHeight,96d,96d,PixelFormats.Default)。其中,target.ActualWidth 与 target.ActualHeight为读取软件界面中2D、3D模块的区域尺寸,96 d为生成截图的尺寸。最后进行系统测试。测试电脑配置:CPU 为Intel(R)Core(TM)i5-6200 3.40 GHz、内存为 4 G RAM、显卡为集显HD520。首先填写承压管道的外形信息,即横截面周长、高度以及缺陷点位置信息;再点击插入数据库,在弹出窗口中进一步完善信息,点击确定,将承压管道信息插入数据库;最后点击一键生成Word版报告15。效果如图10所示。图9Word模板中添加书签图10生成的Word版报告90第 3 期路绍军 等:基于WPF的承压管道检测报告软件设计5结论本文采用了参数化2D、3D模型仿真方法,解决了因尺寸差异而无法用少量固定的3D模型仿真每个压力管道。工作人员可以输入实际测量的参数,对于不同尺寸的压力管道电脑自动计算3D模型表面三角网格的组成,迅速生成所需的3D模型,读取数据库中的测量参数即可在软件中直接展示 2D、3D仿真图,无需将2D、3D模型保存进数据库,减轻数据库读写及存储压力,提高了软件的可靠性和易用性。通过此软件,工作人员可以利用电脑实现承压管道信息的快速录入及生成报告,实现了无纸化办公,减少了在户外工作时纸质书写的不利条件。并且利用数据库系统保存经过检测的承压管道信息,方便后期维护。参考文献:1 王媛娇,孙恺.基于WPF技术的行情分析软件设计与实现 J.电子设计工程,2014,22(18):20-22.2 曹连江.基于,NET平台的交互式电子技术计算机辅助教学系统 J.现代电子技术,2020,43(3):134-137+141.3 周丹,基于.net平台的成绩管理系统设计与实现 J.计算机产品与流通,2019(4):187-188.4 刘珊珊,赵庆,曹豹,等.基于WPF的油藏模型三维可视化解决方案 J.西安石油大学学报(自然科学版),2021,36(1):73-79.5 钟贵,基于WPF的动态几何程序的设计与实现 J.电脑知识与技术,2010,6(35):10136-10137.6 侯天峰,张志伟,葛陆蔚.基于WPF的图片浏览器设计与实现 J.微型电脑应用,2017,33(4):53-55.7 李洋,邹鑫芳.基于OpenGL的三维井眼轨迹软件在WPF中的设计与实现 J.电脑知识与技术,2013,9(8):1801-1805.8 尚旭明,张立成.基于WPF的三维仿真系统的研究与应用 J.计算机技术与发展,2016,26(9):39-42.9 黄兴.MySQL数据库在自动测试系统中的应用 J.黑龙江科学,2016,7(24):90-91.10 贺蕴彬.基于MySQL数据库的在线选课系统 J.电脑知识与技术,2014,10(5):883-885.11 金亚祥.锅炉和压力容器及压力管道检验中裂纹问题分析 J.设备管理与维修,2021(20):30-31.12 王成.锅炉压力容器与管道检验中的裂纹问题处理分析J.化工设计通讯,2020,46(2):92-93.13 叶明,张诤.基于C#.NET的Word报告生成功能开发 J.计算机工程与应用,2008(9):104-106.14 飞颉经纬.基于C#的自动生成Word文档的开发 J.科技创新导报,2010(3):20-21.15 梁娟,陈智.基于C#的Word文档自动导出模块的设计与实现 J.电脑知识与技术,2013,9(33):7449-7452.责任编辑 毕 伟Design of pressure pipeline inspection report software based on WPFLU Shaojun,HE Jianghong,QIAO Xi(School of Physics and Electronic Information,Yan an University,Yan an 716000,China)Abstract:During the inspection and maintenance of pressure pipelines,there are shortcomings such as inconvenience caused by manual filling of reports by staff,and untimely data entry into the system.To address informatization and automation throughout data entry for pressure pipelines,a 3D pressure pipeline inspection report management software system based on the WPF development platform was proposed.A parameterized 2D and 3D model simulation method was introduced to dynamically generate 3D object surface grids by setting parameters,thereby generating a 3D model with set parameters.The results showed that the software using the WPF platform possesses both aesthetics and practicality,and the parameterized 2D and 3D model simulation method did not need to save the 2D and 3D models into a database,reducing the pressure on database reading,writing,and storage,and improving the reliability and usability of the software.Key words:WPF;pressure pipelines;software design91