解决方案|标签导出电缆图表为Excel后的处理

EPLAN中的“标签”功能,位于“工具→制造数据→导出/标签”下,它用于将EPLAN项目中的数据导出,转换为TXT、XML、HTML、Excel等格式,供第三方软件使用(比如ERP系统、标签打印机、号码管打印机等)。
这个功能起名为“标签(Labeling)”,是因为最初的目的是用于导出设备标签、PLC的I/O地址标签、端子标签、电缆标签、线号……然后打印出来在装配时使用。随着软件的持续优化,现在能导出项目属性、页属性、路径功能文本、总线数据、材料清单等各种各样的数据,早已经不再局限于“标签数据”了。
有许多客户(尤其是工程项目)需要将电缆图表导出到Excel中:查看电缆名称、电缆每根芯线的颜色和线径,以及它的源和目标连接信息等,用于电缆的接线或检查。
在“标签”配置中,预置了一个“电缆图表”,使用该配置直接导出时:每根电缆会单独生成一个“工作表(Worksheet)”,导致查看较为不便。在以往,都是通过VBA来进行合并。
测试用的配置文件和Excel模板(带VBA宏)已经上传到http://caodaping2hh.ys168.com下,可以下载配置文件*.xml并导入“标签”功能中,要注意修改其中的路径,指向下载的Excel模板文件,如图示。
宏的代码如下(左滑查看更多):
 Sub Combine_cable_by_caodaping()Application.ScreenUpdating = FalseDim rng1, rng2 As Integer'创建一个新的工作表Worksheets(1).Copy before:=Worksheets(1)Worksheets(1).Name = '合并后的电缆表'
'使用循环复制其它工作表中的内容Dim I, Wscount As IntegerDim SourceLastRow, SourceLastColumn As IntegerDim AimlastRow As IntegerDim Range1 As RangeWscount = Worksheets.Count
For I = 3 To Wscount'查找目标工作表的最后一行AimlastRow = Worksheets(1).UsedRange.Rows.CountAimlastRow = AimlastRow + 1 ' 上一根电缆之后向下偏移2行
'查找数据源的最后一行Worksheets(I).SelectSourceLastRow = Worksheets(I).UsedRange.Rows.CountSourceLastColumn = Worksheets(I).UsedRange.Columns.CountSet Range1 = Range(Cells(4, 1), Cells(SourceLastRow, SourceLastColumn))Range1.CopyWorksheets(1).Cells(AimlastRow, 1).PasteSpecial Paste:=xlPasteAll, _Operation:=xlNone, SkipBlanks:=False, Transpose:=FalseNext IWorksheets(1).Selectrng1 = MsgBox('恭喜你!报表合并成功!', vbOKOnly + vbInformation + vbDefaultButton1, '恭喜你')Application.ScreenUpdating = True
End Sub
对于没有VBA基础的朋友来说,以上方法略微有点复杂。我们可以换个思路,改用“块属性”来解决。
新建一个标签配置(也可以复制系统自带的“电缆图表”,输入新的名称创建)。在默认的配置中,“表头”选项卡下的属性都是关于电缆自身的,比如电缆名称、电缆型号、电缆功能文本……;“数据”选项卡下的属性都是关于电缆芯线(也叫电缆连接-Cable Connection)的,比如芯线颜色、线径、源和目标……;“页脚”选项卡下的换工作表的条件(当电缆名称变化时自动生成新的工作表)。
我们先把“页脚”中的条件删除,这样所有电缆就能生成在一个工作表中了;我们再将“表头”下的所有属性删除,需要在“数据”下去添加,这样才能获得需要的Excel表。但是,在“数据”下并不能找到电缆的属性,因此只能使用块属性来实现,下图中使用了连接的块属性【10-12】,你可以根据自己的需要去增加更多。
去到项目属性中,为每根连接的块属性【10-12】指定格式!
找到“块属性:格式 (连接) [10] <10608 10>”,进入块属性设置。当前对象是“连接”,要获取电缆的信息,需要进行导航“上一级设备的主功能”,因为电缆芯线的上一级设备就是“电缆”自身;但电缆可能拆分为多个表达,有多个电缆定义线,因此需要是上一级设备的主功能。这个导航适合于插针获取插头信息、设备连接点获取黑盒信息、PLC连接点获取PLC盒子信息、端子获取端子排信息、芯线获取电缆信息……。然后就可以选取功能的属性。
也可以直接拷贝以下数值到块属性(左滑查看更多):
  块属性: 格式 (连接) [10] <10608 10>: [20067<20201<20006,0,0,0,0,1,0,0,0,en_US,0,0,0,0,0,0,0>>]  块属性: 格式 (连接) [11] <10608 11>: [20067<117<22001,0,0,0,0,0,0,0,0,en_US,0,0,0,0,0,0,0>>]  块属性: 格式 (连接) [12] <10608 12>: [20067<20201<20011,0,0,0,0,1,0,0,0,en_US,0,0,0,0,0,0,0>>]
执行标签功能,进行导出,结果就是想要的:
综上所述,可以通过Excel编程或通过块属性配置两种不同的方式来达到目的!

来源:曹大平汉化工作室

(0)

相关推荐