admin 管理员组文章数量: 1087139
2024年4月19日发(作者:spring onion)
2020 NO.18
SCIENCE & TECHNOLOGY INFORMATION
DOI:10.16661/.1672-3791.2020.18.062
工 业 技 术
基于VBA的飞机CHS线束XML图样数据解析
石磊
(中航通飞研究院有限公司 广东珠海 519000)
①
摘 要:Capital电气线束设计软件在汽车、铁路、航空航天等领域应用广泛,由于不同设计和制造团队所采用产品数据管
理流程的差异性,需要通过API接口进行二次开发,以提高设计质量和数据兼容性。为了节约研发成本、缩短开发周期,
该文介绍了一种基于VBA和XML进行数据解析和自动校核的方法,可以提高设计效率,易于实现飞机线束设计、制造方
对Capital设计数据的快速读取和分析。
关键词:Capital CHS VBA XML 飞机线束 二次开发
中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2020)06(c)-0062-04
Abstract: Capital electrical harness design software was widely used in automobile, railway, aerospace electric
design and development. Due to the workflow differences of product data management among various teams, plugin
development with API interface was required. In order to reduce the cost and effort of plugin development, a method
of design data parsing and automatic verification based on VBA and XML is introduced, which can improve the
design efficiency and reduce the aircraft harness manufactures’effort to analyze the Capital design data.
Key Words: Capital CHS; VBA; XML; Aircraft Harness; Plug-in
飞机的电气线束设计的工具经历了从基于图形符号的
设计到基于数据库的设计,唯一数据源的实现提高了设计
质量,目前已经有多款基于数据库的电气线束设计工具应
用于汽车和航空航天领域,图形符号和报表不再是表达电
气线束设计成果的唯一方式,XML成为存储设计信息的重
要载体。如果设计方和线束制造方的设计工具不兼容,就
需要利用软件提供的API进行二次开发,对于线束设计人
员来说,编程要求高,且无法适应多变的业务需求。该文提
出一种利用Excel VBA进行Capital设计数据解析的方法,可
以较为方便地实现设计图样数据的分析和读取。
1 软件和工具介绍
1.1 电气线束设计软件
飞机的电气互联系统设计手段从最初的手工制图演变
到后来的计算机辅助制图,随着计算机性能的提高,计算
机辅助制图的功能和性能也越来越强大,从单纯的图形设
计,演进到了基于数据库的关联设计,三维设计引入也使得
对线缆长度的取样更加精确和方便。Mentor Graphics公司
的Capital(前身为Capital CHS)作为在飞机
[1-2]
和汽车
[3-4]
研
制等领域应用广泛的软件,提供原理图设计、拓扑图设计、
线路图设计等模块,以及元器件库、用户管理、风格管理等
功能。使用Capital可以设计完成原理图、线路图、线束图、
拓扑图等几种类型的图纸。这些图纸的对象信息都存储在
数据库中,软件支持将图纸保存成PDF或者XML等格式。
Capital提供了二次开发接口,可以利用Java/JavaScript进行
内置插件或者Web Service应用开发
[5]
。
1.2 Excel VBA和Microsoft XML 6.0库
VBA(Visual Basic for Applications)是Visual Basic的一
种宏语言,是微软开发出来的在其桌面应用程序中执行通
用的自动化任务的编程语言
[6]
,尤其是对于微软的Office
办公软件,可以通过VBA拥有自动化的功能。在Excel中启
用VBA以后,就可以通过Excel的VBA开发界面的菜单栏的
“Visual Basic”选项直接进入内置的宏代码开发窗口,可
以在不同的文档对象中添加程序代码,调试通过后,点击
启动按钮执行宏代码,实现预期的功能。
XML(Extensible Markup Language,可扩展标记语言)
作为一个数据存储工具包,是一种用于标记电子文件使其
具有结构性的标记语言,用户可以自己定义标签,通过满
足规范的格式,引入不同的层次,可以实现数据的保存与
[7]
传输。在Capital绘制的原理图、线路图、线束图均可以实
用软件自带的功能导出为XML格式的文件,图纸中包含的
型号、数量、长度、接线关系等内容均包含在了XML文件中。
只要通过规范的解析方式,就可以从XML文件中提取出所
需的所有信息,这也是实现该文自动校核过程的基础。
2 Capital数模XML文件结构及解析
2.1 文件解析的采用的工具和函数
该文的目标是能够解析出XML格式数模中的信息,因
①作者简介:石磊(1983,3—),男,汉族,山西代县人,硕士,高级工程师,研究方向:飞机航电电气设计。
62
科技资讯 SCIENCE & TECHNOLOGY INFORMATION
工 业 技 术
表1 图样清单表格示例
2020 NO.18
SCIENCE & TECHNOLOGY INFORMATION
科技资讯
序号
1
2
3
4
序号
1
2
3
4
图号
D2431T20001151
D3411T20001151
D2822T20001151
...
代号
382R2
705YJ
726F3
...
图名
XXX线路图
XXX线路图
XXX线路图
...
设计
张三
李四
王五
...
设计团队
A团队
B团队
C团队
...
图号
D2431T20001151
D2431T20001151
D2431T20001151
表2 连接器解析数据表格示例
型号
J599/26JJ35PN
J599/20WH35SN
J599/26FJ35SA
...
供应商
Connector Supplier
Connector Supplier
Connector Supplier
...
此能够读懂XML是该文的基本要求。XML文件由标记和
内容组成,以标记包围内容的方式将大部分内容包括在元
素中。
Capital 生成的图样数模的XML文件以下列3行代码开
头,具体见图3。
以上3行代码分别是XML声明、文档验证规则的引用
(该路径对应于本地的Capital 安装路径)以及版本信息。
然后是根元素project,代表了图纸设计所属的项目(见
图4)。
根元素描述了图样所属型号的信息,上面语句中第一
行project后面的内容就属于一个元素的属性信息。其他的
元素则可以通过嵌套添加到根元素中,如
间是一条导线的信息。
每一张图纸中的所有信息,就是通过一定的树结构进
行存储的,要想获取某一张图纸中的信息,必须了解该类
图纸的树结构的特点,找到不同对象所在的节点,然后读
取该元素的属性。
2.2 不同类型图纸XML文件结构解析
由于不同类型图纸的XML文件的树结构不同,在开始
VBA编程之前,需要认真研究线路图、线束图和拓扑图的
文件结构,确定不同对象的存放节点,不同图纸对象属性
对应的XML文件中的元素属性,进而通过编程实现文件的
自动解析。以线束图为例,其XML元素的结构如下。
文件的根节点为Project,根节点下包括的设计数据主
要存放在harnessdesign节点下,该节点的子节点分析结果
如图5所示,可以看出,与线束物料相关的信息都存放在
connectivity节点下。可以使用Notepad++等工具深入分析各
种图纸的文档结构。
2.3 进行XML文件解析的函数模块
在该文提供的方法中,为了方便对XML文件的解析,
对XML对象的方法进行了封装,制定了3个常用的函数,具
体如下。
(1)ParselXML(节点名,对象名)函数,获取XML
文件中的某一个根节点。该方法的返回值为一个
IXMLDOMNode类型的对象,在成功通过Load方法载入
XML文件后,就可以使用此函数,获取XML文件中存放设
计数据的节点。
(2)GetNodeCount(节点对象,子节点名)函数,获取节
点下固定名称的子节点的数量。
(3)ParselNodeAttributes(属性名,节点名),获取节点的
属性内容,某些对象如连接器的型号的信息都是存储在连
接器节点的属性信息中的。
3 Capital图样自动解析功能的实现
可以使用上述方法对图纸XML文件进行解析。如果要
实现图样的自动校核功能,实现对数百张图纸的批量校
核,还需要增加文件循环,实现批量XML文件的自动解析,
在解析的过程中,将每一张图纸XML文件中不同类型的信
息保存到Excel文件的不同子表中,最终根据文件校验的
规则对解析出来的数据进行核对,由于在文件解析过程
中,自动在每一行信息的后部增加了所属图纸和设计者的
信息,可以很方便地对问题进行定位。有些情况下,还有对
Capital自动生成的交互结果和报表等数据进行定位,就需
要结合批量解析出的Excel文件,实现对象的精确定位。具
体到每一个过程的实现流程如下。
3.1 批量文件自动解析过程的实现流程
由于Capital自带的报表导出功能无法自定义,在整个
项目数据导出时不能将物料信息与具体的设计图纸进行
匹配,在
首先,在Excel文件中建立一个子表,命名为“图样清
单”,该子表中至少包括如下信息。
(1)序号,用于检索和排序。
(2)图号,按照产品图样编号规定命名的图样编号。
(3)图名,图纸的名字。
(4)设计,该图纸的设计人。
(5)所属专业组,设计者所在的专业组。
表1给出了一个示例。
将全机所有的图纸信息录入到符合表1所列格式的子
表中,接下来的程序循环,每一次将会读取该表中的“序
号”“图号”“图名”“设计”和“专业组”列。假设循环变
量为i,则对于每一个i,读取图样清单表格的第i行,获取
该行的第2列,得到图名,通过给图名添加路径前缀,和
“.xml”后缀,可以得到图号在本机电脑保存的完整文件
名FileName,然后调用DOMDocument对象的Load方法,
判断是否正确读取文件,如果读取异常,则通过On error
Resume Next语句自动跳转到下一个循环;如果读取正常,
则开始对DOMDocument对象进行解析。根据对不同类型
图纸的XML文件的树结构,获取所关注的各类对象及信
息。然后通过下一节描述的方法,将信息保存到Excel文件
科技资讯 SCIENCE & TECHNOLOGY INFORMATION
63
2020 NO.18
SCIENCE & TECHNOLOGY INFORMATION
工 业 技 术
图1 Capital线束设计软件模块组成图2 在Excel VBA中引用Microsoft XML6.0库
图3 Capital图样数模XML声明示例
图4 Capital图样数模XML文件主体示例
图5 图5线束图XML文件的树结构
对应的子表中。完成读取和保存后,判读循环变量是否达
到图样清单表格的最后一行,如果未达到,则继续下一轮
循环;如果达到,则程序结束。程序流程示意如图6所示。
3.2 利用VBA实现解析结果的自动保存
为了将图纸中解析出来的各种物料信息自动保存,需
要对Excel文件进行修改,增加若干的子表,每一个子表
的按照拟保存信息的种类进行命名,如“连接器”“导线”
等,每一个子表的表头根据每一种类型信息的属性进行初
始化。以连接器举例,在线束图中,每一个连接器节点,包
含信息以下。
序号、ID、连接器代号、连接器类型、连接器型号、连
接器供应商、型号描述、连接器用途、所属线束、数量、
重量、供应商型号、压接方式、配套方式、Include on BOM
等,这些信息在XML文件中的字段定义如图7所示。
Excel文件中“连接器”子表的表头字段建立应参考以
上节点,并与XML解析出来的节点的属性信息进行映射,
64
科技资讯 SCIENCE & TECHNOLOGY INFORMATION
每当读取一个节点的各种属性信息时,将不同的属性信息
顺次保存到“连接器”子表的某一行数据的对应列中即
可。其他对象的存储方式类似。
3.3 利用VBA实现解析结果的自动保存
在保存XML解析数据的同时,可以同步对解析出的数
据进行校验。校验的规则根据图纸设计的审签要求制定,
如字段信息缺失、对象属性不匹配、不满足工艺要求等。
根据审签规则制定数据判别算法,将检查结果保存在单
独的字表中即可。可以用于图样的自动校核。
解析出的数据,还可以直接用于生成后续线束制造所
需的物料表、工艺指令。事先制定好表单模板,利用VBA自
动解析并填充数据,可以实现物料表的快速提取。
由于每一种类型的对象,在保存数据的时候,将该对
象所属的图纸、图纸的设计者均一并保存,因此在筛选出
问题清单后,在清单的最后3列,包含了图号、设计、专业
组等信息,通过这些信息,可以将问题快速地落实到责任
工 业 技 术
2020 NO.18
SCIENCE & TECHNOLOGY INFORMATION
科技资讯
图6 批量解析XML文件流程示意
图7 图6线束图中connector节点的属性
人。将问题清单通过邮件、公告栏等渠道通知相关的责任
人,即完成了设计校验报表的发布。需要注意的是,在设计
报表发布后,有必要进一步与相关责任人进行确认,并跟
踪更改落实情况。
4 结语
使用该文介绍的方法,可以批量实现多张XML格式
图纸的自动解析,并实现信息的自动保存。相较于使用
Capital API接口开发的插件,这种方式对设计人员的编程
技能要求不高,开发成本低,可以提升Capital电气线束从
设计过程的效率,实现下游制造部门在无Capital工具的条
件下对线束设计数模的读取和解析。
(1)不需要深入研究Capital自带的API,利用Excel自
带的VBA功能就可以实现XML数据读取,开发难度降低。
(2)在充分研究Capital图样XML格式的基础上,可以
根据需要定制导出的内容和格式,能够满足开发过程中新
增的需求。
[2] 张驰.一种基于CHS软件的飞机线束设计方法[J].航空
科学技术,2014(5):36-39.
[3] 王春芝,丁磊.CHS软件在汽车线束设计中的应用
[C]//2014中国汽车工程学会年会论文集.2014.
[4] 杨雪,黎云轩,郗琦.数字一体化在电气线路设计及测试
中的应用[J].电子测试,2018,388(7):33-34.
[5] Mentor l Plugin Development-Software
Version[Z].2012.
[6] Julitta K,Information M L &.Microsoft Excel 2010
Programming by Example with VBA, XML, and ASP[M]//
Microsoft Excel 2010 Programming By Example:with VBA,
XML, and ASP. Mercury Learning & Information,2011.
[7] Ray E T. Learning XML[M].O'Reilly,2003.
参考文献
[1] 郝冬晶.基于CHS软件的飞机线束设计应用[J].科技资
讯,2013(16):25-26.
科技资讯 SCIENCE & TECHNOLOGY INFORMATION
65
版权声明:本文标题:基于VBA的飞机CHS线束XML图样数据解析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713495110a637513.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论