当前位置:首页 > 发言稿 > 【基于VBA下的端子排识别系统的研究】接线排
 

【基于VBA下的端子排识别系统的研究】接线排

发布时间:2019-01-11 04:01:00 影响了:

  摘要:介绍了电气设计中端子排以及AutoCAD中的图元,利用AutoCAD 所提供的强大的二次开发工具AutoCAD VBA,开发了识别端子排的系统,该系统只需要少量人工辅助的方式,就能够完成端子排组缆图的设计任务,使得电气二次设计专业人员从繁琐重复的手工端子排图绘制中解脱出来。
  关键词:AutoCAD VBA;端子排;图元;数据库
  中图分类号:TP317文献标识码:A文章编号:1009-3044(2007)18-31674-03
  Research on VBA"S Identification System for Terminal Block
  HE Wei-li1,GUO Yu-qiong2,SONG Zhong-shan1
  (1. Computer Science College, South-Central University for Nationality, Wuhan 430074, China; 2. Computer College, Wuhai University, Wuhan 430074, China)
  Abstract: This is an introduction to the research on the terminal block in electrical design and entity in AutoCAD, which using the powerful secondary development tool AutoCAD VBA of AutoCAD to develop identification system for terminal block. This system can complete the design of terminal block"s cable graphs with fewer artifical assistance, reliefing the professionals for secondary electrical design from the trivial repeating manual drawing.
  Key words: AutoCAD VBA;Terminal block;Entity;Database
  
  1 引言
  
  电力部门设计一个工程,首先要先分析电气二次设计端子排图,然后再对端子排图进行修改、添加信息等,最后再完成端子排组缆图的设计任务,而端子排的识别是端子排组缆图设计的第一步。本文的工作就是通过AutoCAD VBA对电气开发人员所设计出来的端子排图进行二次开发,运用二次开发的程序对所设计出来的端子排图进行准确度较高的识别。
  
  2 端子排
  
  电气一次设计是指发电机,输电线路,主变压器,断路器等高电压,大电流的主设备的设计,电气二次设计是指控制,远动,继电保护,仪表测量等一般的低电压,小电流设备的设计。安装位置指的是电气二次设计中有功能含义的屏柜或到就地装置,包括公共屏、保护/控制屏、就地装置3类。而端子排就是指安装位置上有某种类似功能意义的端子的组合[1]。如图1所示。
  图1 端子排图
  端子排中有若干个端子,端子就是安装位置上内部设备同外部连接的接线柱。在图1中,中间那列就是1-8号端子,端子左右两边的信息表示的有些是内部连接(即连接到内部蛇备的连接),有的是跳接(即端子到另外的一个不相邻的端子的连接),还有的是无用的说明信息。而每个端子也可能是普通端子或者是实验端子,普通端子指的是用于连接屏内、外导线(电缆)的端子;实验端子指的是用于需要接入实验仪器的电流回路中的端子。对于每两个相邻的端子也有可能进行短接。
  每个端子排都有自己在同一安装位置内唯一的端子排号,有的也有端子排名称,但名称不一定唯一。而且对于有的端子比较多的端子排,比如一个端子排有上百个端子,这样就有可能把一个端子排分为几个矩形区域画,则称这种端子排为被截断的端子排。
  
  3 图元
  
  用AutoCAD设计的每张图纸都保存为一个DWG文件,每个DWG文件中都有若干个图元(Entity),而组成端子排的图元基本上分为:线(Line)、多义线(PolyLine)、圆( Circle)、文本(Text)、块(BlockRef)[2]。由于在厂家设计阶段,每个端子排的画法极不规范,比如看似为一条线可能由多条线或者多义线组成;看似为一个圆但可能由多条多义线组成;甚至一个端子排可能就只有一个块组成等。这些不规范给识别带来了一些难度,不过将在本程序中一一解决。
  
  4 人工辅助识别端子排的实现
  
  4.1 人工辅助的端子排识别流程
  人工辅助端子排识别流程如图2所示。
  图2 人工辅助的端子排识别流程
  本系统是在VBA中实现的,同时有少量代码在VB.NET中。在VB.NET中主要工作就是创建AutoCAD应用程序对象,再用此对象逐个打开所有选择的DWG文件,然后运行其VBA程序对每个DWG图进行识别,最后得到识别结果。
  4.2 关键技术
  4.2.1 自定义AutoCAD菜单
  在系统识别中为了确保识别结果的准确性,加入了人机交互的过程,在人机交互的过程中需要一些自定义的具有特殊功能的AutoCAD菜单让用户进行方便的操作。
  其菜单的实现需要先建立一个以.mnu为后缀的文件,然后在此文件中加入以下代码[3]:
  ***MENUGROUP=MenuMacro
  ***POP1
  ***MnuMac
  ID_MN [自定义菜单(&M)]
  ID_MNSelect [框选端子排(&S)]^C^C-VBARUN ThisDrawing.Select
  ID_MNDrawLine [连接(&D)]^C^C-VBARUN ThisDrawing.DrawLine
  ID_MNInsertLogicLine[确定连接(&Q)]^C^C-VBARUN ThisDrawing.InsertLogicLine
  以上代码就是自定义菜单的相应代码,点击自定义菜单中的选项后会执行相应的VBA函数,比如点击“框选端子排”后会先执行两次取消命令,然后再运行VBA函数中的Select宏来完成相应的功能。
  加入代码后保存文件,然后在VB.NET中,在启动AutoCAD时加载此菜单即可。
  4.2.2 人机交互框选端子排区域
  因为在电气二次开发的图纸中有许多不是端子排但又与端子排很相识的图形,这些图形用计算机识别起来比较困难,所以在流程图的第一步加入了一些人机交互过程,就是在通过VB.NET选择的DWG文件后,人工点击自定义AutoCAD菜单中的“框选端子排”,让用户框选端子排区域,其主要代码为[4]:
  Dim selected As AcadSelectionSet ‘定义选择集用于储存用户所框选的图元信息
  Public Function SelectZone()
  If Not selected Is Nothing Then
  Set selected = Nothing
  End If
  Set selected = PickFirstSSet
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文   End Function
  Public Function PickFirstSSet() As AcadSelectionSet
  On Error Resume Next
  ThisDrawing.SelectionSets("PICKFIRST").Delete
  "获取已经框选了的图元信息,将其存入PickFirstSSet选择集中
  Set PickFirstSSet = ThisDrawing.PickfirstSelectionSet
  "若没有已经选择的图元,则执行SelectOnScreen让用户在DWG图上进行框
  "选,并将框选的图元存入PickFirstSSet选择集中
  If PickFirstSSet.Count = 0 Then
  PickFirstSSet.SelectOnScreen
  End If
  End Function
  此段程序执行后会将用户在DWG图中框选的区域中的图元存入“selected”此选择集中。
  4.2.3 将用户所框选的图元存入数据库
  在流程的第二步将第一步中存入选择集中的图元及其图元的属性存入数据库中,由于用于组成端子排的图元极不规则,再存入数据库前需要对图元进行过滤、整理,然后再存入数据库[5]。
  对于线型的图元,若某个线型的图元的Length属性的属性值小于0.5,则认为此条线为无用信息将其过滤掉,在整理线型图元起点和终点的顺序,在此按照从上到下、从左到右的规则整理。
  对于文本型的图元,若某个文本型图元的文本信息为空或者为空格字符串,则认为此条线为无用信息将其过滤掉,然后通过Replace()函数将所有全角等形式的字符串“1~9”,“a~z”,“A~Z”等全部统一替换成英文形式的字符串,最后将文本信息中的“"”替换成“""”,这样可以避免在数据插入时产生异常[6]。
  对于多义线型的图元,首先判断此多义线的Closed属性的属性值是否为“Yes”,若为“Yes”表示此多义线为闭合状态,若为此多义线为闭合状态再判断此闭合的多义线的Area属性的属性值是否小于6,若小于6则认为此多义线为一个圆,将其按照圆型的图元进行储存,若不满足以上条件,则先通过Explode函数将此多义线打破,打破成多个线型的图元[7],将每个线型的图元按照线型的图元方式进行储存。
  对于块型的图元,首先将其打破,打破成各种类型的图元,再逐个判断图元的类型,按照相应的图元类型进行相应的处理。
  4.2.4 人机交互确定被截断端子排的连接
  因为在有些电气二次开发图纸的设计过程中,有的地方画法不是规范,可能会造成错误识别,这时候就需要人机交互来确认其识别的结果是否正确。在程序自动识别完被截断端子排的连接关系后,会弹出对话框让用户进行确认被截断端子排的连接是否正确,若正确就点击“是”,若不正确就点击“否”。若用户点击“否”,用户就需要先删除连接不当的地方,再点击自定义的AutoCAD菜单中的“连接”,然后选择需要连接的两个文本实体点击回车就可以自动连接了。修改完后用户再点击自定义的AutoCAD菜单中“确认连接”就完成了这次人机交互过程。
  
  5 系统运行及实现
  
  如图3所示为带识别的端子排,在带识别的端子排中端子端子号为2D,其中包括83个端子,其中包含有许多内部连接及短、跳接。
  图3 待识别的端子排
  利用本文介绍的系统识别图3所示的端子排的部分结果如图4所示,图4中的外部连接指的是跳接及短接的统称。经过大量的实验数据验证,利用本文所介绍的系统程序进行端子排的识别,准确率达到90%以上。
  图4 端子排识别部分结果
  6 结束语
  现有的对AutoCAD的DWG图进行识别的工具很少,而对电气二次设计端子排图的识别工具几乎没有。而且在对DWG图进行识别的工具中只能对标准的表格形式的DWG图进行识别,在图形不是很规范的情况下错误率较高。本文介绍的人工辅助的端子排识别能够完成较高准确度的识别,并且对识别结果进行分析,分析出端子排图中的逻辑信息,这样能够为电力二次设计人员进行组缆带来很大的便利。
  
  参考文献:
  [1]卓乐友.电力工程电气设计手册(二次部分)[M].北京:中国电力出版社,2005,100-101.
  [2]张晋西.Visual Basic.NET二次开发AutoCAD范例精解[M].北京:清华大学出版社,2004,1-19.
  [3]张帆.AutoCAD VBA二次开发教程[M].北京:清华大学出版社,2006,365-368.
  [4]张帆,郑立楷,王华杰.AutoCAD VBA开发精彩实例教程[M].北京:清华大学出版社,2004,84-87.
  [5]乔长录,陈永峰,张新生.基于数据库技术的Auto CAD应用技术研究[J].信息技术,2004,(28):91-93.
  [6]L I Xiaoying, ZHAO Daxing.Research on Distinguishing Character Based on AutoCAD Engineering Drawing[J ].COMPUTER TECHNOLOGY AND DEVELOPMENT,2007,(2):66-67.
  [7]张晋西.Visual Basic与AutoCAD二次开发[M].北京:清华大学出版社,2002,191-192.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3