乐于分享
好东西不私藏

丨插件丨EPLAN自动出图:重大更新汇总

丨插件丨EPLAN自动出图:重大更新汇总

插件

EPLAN图纸生成器 

编辑丨钻石海

承接EPLAN二次开发项目

最近一段时间,我们的EPLAN自动出图配置系统经历了一次从底层到应用层的全面进化。忍不住想和小伙伴们分享一下这段时间的成果——这不是一篇技术文档,而是一份真实的开发记录。

一、缘起:从一张Excel配置表说起

熟悉我们的朋友都知道,这套系统的核心设计思路是用Excel作为配置载体,通过结构化表格驱动EPLAN图纸的自动生成

每一行配置代表一个完整的回路宏组合,每一列对应一个EPLAN属性ID或自定义占位符。这个设计最初是为了解决一个痛点:在大型项目中,成百上千的回路结构相似但参数不同,手动修改不仅效率低,而且容易出错

经过这段时间的迭代,这套系统可在不更改当前项目结构的前提下,实现了对图纸的对象化与结构化,已经从一个"能用的工具"进化成了一个"好用且强大的出图引擎"。轻松实现自动出图的高效率转换。

二、核心进化:让Excel表更像对象

1. 继承机制:父行值的自动传递

这是最受关注的功能之一。

在嵌套配置场景中,子表行经常需要继承父表行的页结构信息(如功能代号、位置代号等)。以往需要在每个子表中重复填写,现在通过ParentRow机制自动完成。

一行配置不再是一个孤立的"宏指令",而是一个可以继承、可以被继承的配置对象

2. 多态取值:有值用自己,无值找父行

如果说继承解决了"从哪里取值"的问题,那么多态则解决了"怎么取值"的问题:

  • 当前行有值 → 使用当前行值(派生行为)

  • 当前行无值 → 自动从父行获取(基类行为)

这就像面向对象中的方法重写——同一行在不同上下文中表现出不同的行为,完全由数据本身驱动。

3. 封装:每行或一个表将是一个完整回路

每行配置可以包含:

  • 页信息属性(决定宏插入到哪一页)

  • 多个宏组(每个组有自己的宏文件、坐标、占位符)

  • 继承自父表的默认值

  • 修改保护标志(用于跳过某些行)

每行或一个表即一个完整的电气回路对象,对象的多少与分配完全由你来控制,最后只需简单封装,即可简单应用。配置简单、直观。

4. 多组支持:通过列后缀实现"宏数组"

在EPLAN中,同一页经常需要插入多个宏。我们采用多行或者“列名后缀_n”的方式实现多组,这种方式保持了配置的二维表格结构,同时实现了"一对多"的宏管理。

三、智能取值:让Excel单元格会"思考"

1. 偏移指令:数字和字母都能偏移

之前:单元格写什么就是什么,无法动态调整。

现在:支持多种偏移指令:

指令
效果
+1
父值 + 1
-A
父字母 - 1(A→Z循环)
++
简写,等同于 +A
<PREV>+1
上一行值 + 1
<!>+2
父表值 + 2

这对设备编号、坐标累加等场景特别实用。

2. 占位符引用:一个格子引用另一个格子

通过尖括号语法,单元格可以直接引用其他列的值:

  • <?GNWB> → 引用自定义占位符列

  • <23001> → 引用属性ID列

  • <!> → 自引用父表值

  • <PREV> → 引用上一行同列值

支持嵌套引用和多个占位符组合。

3. 表达式计算:不只是一个值

  • 现在单元格可以包含数学表达式:

<?GNWB2>*3+1 ?GNWB2=1 时,计算结果为 1*3+1=4

  • 支持加减乘除、括号、负数,并且可以混合文本:M<?OFFSET_COUNT>+1原理图,当?OFFSET_COUNT=1时结果为:M2原理图

四、批处理能力:一键处理整个目录

新版本将支持:

  • 递归搜索目录中的所有 .xlsx 和 .xls 文件

  • 批量替换 <23001> 宏名称列中的文件名引用

  • 自动重命名源文档

  • 支持取消操作和进度报告

这对于宏库重命名、项目迁移等场景非常实用。

五、技术思考:Excel配置表的面向对象之路

回顾整个设计,有一个有意思的发现:这套基于Excel的配置方式,实际上实现了面向对象的三大特性

面向对象特性
Excel配置表实现
封装
一行配置包含页信息 + 多个宏组 + 所有占位符
继承ParentRow
 + 空值向上查找
多态
有值用自己,无值用父行

Excel负责数据存储,插件负责行为逻辑。这种混合模式既保留了Excel的易用性,又获得了代码的灵活性。

六、参与贡献

这套系统目前已经在多个实际项目中落地使用,如果你有兴趣:

  • 关注我们的公众号获取更新

  • 从“电气CAD吧”网站里下载:插件商店加载最新版本

  • 添加微信shb8311反馈使用中的问题

  • 分享你的使用场景和需求


写在最后:这段时间的迭代,让我深刻体会到"数据驱动"和"对象思维"结合的力量。一个好的配置系统,不是让用户填写更多内容,而是让用户用更少的信息表达更多的意图

有任何问题或想法,欢迎在评论区留言交流!

这里有的你拿走

保留精力用来创造

承接EPLAN二次开发

分享点赞丨赞赏丨