RSS
 

Archive for the ‘VBA编程’ Category

[VBA]将导出到Excel的电缆表合并到一个工作表

18 Oct

      在目前的EPLAN 软件中,将"电缆图表"导出到Excel文件中时,每一根电缆会输出到一个独立的工作表中。我已经提交了Software wish给EPLAN的Q&A部门,但是现在这个功能暂时还没有。

      我已经知道有两个客户是手工合并这些电缆的,如果电缆很多,那就太烦了,因此我写了一个VBA脚本,这个脚本最初是为振华港机写的,现在重新修改了一下以适应P8 2.1。

程序功能:      将标签功能导出的Excel文件中的所有的电缆图表汇总到一个工作表,并选择是否删除其它工作表。
Excel版本:      Office2007
EPLAN版本:  EPLAN Electric P8 2.1.4

使用方法:
 1. 在我的网盘中下载配置文件和Excel模板文件。
 2. 先导入配置,注意文件的路径要改为你自己的文件存放路径。
 3. 执行标签功能。
 4. 在打开导出的Excel文件后,激活"宏"
 5. 按快捷键Ctrl + Shift +C运行宏。
 6. 如果运行正常,会提示是否删除合并前的数据,选Yes删除,选No不删除。

 保存到本地查看:EPLAN 培训_合并标签导出的电缆图表 

观看视频:

 
 

[原创]VBA脚本-批量端子规划器

25 Aug

    在EPLAN 中设计端子的时候,最常用的方法是从符号库中直接插入端子的符号,这种方法最简单,但换句话说,这种方法的效率是最低的。因为当你在不同的位置插入端子的时候,端子的设备标识会自动变化,但实际的需求是希望有时候变,有时候不变。

    在端子导航器去中通过"新功能"或"新端子(设备)"(EPLAN P8 2.0中的新增功能)预置端子,可以大大加快端子的设计效率,这一点也是EPLAN 和其它软件不同的地方。事先我们并不知道会用到多少端子,我们可以预置任意多个新端子,然后通过拖放操作将其放置到原理图中,不需修改任何东西就行了,这显然比直接插入端子符号要方便得多。

    不过,如果一个比较大的项目,端子数量成千上万,端子排有几十个或上百个,那么,即便是通过预置端子的方式,也还是要花费不少的时间。我想到用Excel来预置的方法,谁让EPLAN和Excel 的结合那么容易呢?

    这样一个规划器,可以设定项目结构标识、端子排的标识字母与计数器、端子排的数量、端子的类型以及端子的数量。可以快速地创建大量的端子。
也做了一个直接导入到项目中的按钮,可以选择EPLAN 的版本和EPLAN 项目(项目的路径由程序自动获取,这是最近刚刚学会的VBA读注册表)。

规划好端子后,导入到项目中,通过拖放将端子放到原理图中,效率就大大提高了!!

 

点击此处可以离线保存: VBA编程_批量端子规划器

 
 

[原创]VBA脚本-批量Schneider部件创建器

23 Aug

    在EPLAN 部件管理器中创建断路器非常简单,当创建完第一个以后,就可以通过复制粘贴的方式来参加其他的型号,需要修改的仅有型号和技术参数而已!

    不过,我们总是在想有没有更方便的方法,更方便的方法有没有,我在吃饱饭没事干的时候又琢磨这个事来着,就有了这个Schneider部件的创建器!

    断路器的型号变化主要是有因素: 分断能力、特性曲线、额定电流、极数、产地(施耐德的分进口和国产,国产的价格便宜,但一般都没有CE、UL等认证,不能用于出口设备,型号后面带C),通过把它们做成可选项进行组合,这样就能快速地进行部件创建!!由于断路器一般都是这几个要素,因此将程序稍作修改,就可以快速创建如天水213厂、良信、正泰、德力西等国产品牌的断路器!
原来弄过一个部件创建器,是通用的部件创建器,但是因为各个厂家的产品、不同的产品所具有的特性不同,因此创建效率不高,因此转为专门针对不同创建的产品做不同的创建器,这样更加快捷!

    接触器的型号变化主要是有因素:线圈电压类型、线圈电压等级、接线端子形式及额定电流。由于95A以上和以下的图片、尺寸、图形宏、触点数也都不同,因此分成两个部分来建。

    电机保护开关的型号变化主要因素有:整定电流范围、手柄形式。

供大家参考!!

点击此处可以离线保存:  VBA编程_批量施耐德部件生成器

 
 

[原创]VBA脚本-批量EPLAN 页创建器

17 Aug

更新日期:2011年8月17日

    追求效率一直是人们不断努力的方向。

    在使用EPLAN 设计项目的时候,轻点鼠标右键,即能快速地创建大量页面。不过,即便如此,效率也还有提升的余地。纵然在EPLAN 中直接创建页面很方便,但是如果项目比较大,比如图纸数量(不含自动报表)在100页以上(尤其是大型自动化项目,图纸通常超过1000页)时,如果逐页地创建页面,需要点击成百上千次鼠标,除了要花费不少时间,恐怕鼠标的左键寿命也会大大缩短。

    在EPLAN 的培训过程中,我们经常会交流项目的设计流程、探讨项目开始前应该做哪些规划。以我了解的讯息来看, 页面就应该是规划内容之一。在着手画图之前,相对项目根据功能或位置进行拆解, 划分项目结构, 这样高层代号及位置代号的以及它们的描述可以确定, 随后,把各结构中的页面计划好,每页要实现何种功能,这样页面描述也能确定下来。如此一来,有了规划,剩下的是规划的实施,鉴于此,就有了下面这个VBA小程序。

  思路,注意,我只提供思路。

  ①先在一个Excel工作簿中,由用户自行输入高层代号和位置代号,及其描述。然后开始创建页,由于项目大小有区别,可能只用到高层代号或位置代号,也可能是小项目,使用顺序编号就够了,因此程序启动时有4个可选项。点击带有项目结构的选项,程序会自动读取已经输入的项目结构,使用者可以重新选取项目结构,然后指定页数,点击生成按钮,页面就创建好了。
  ②由于一次只能创建一个高层代号下的页面,重新选取高层代号,再执行生成,新创建的页会跟在上次创建好的页的后面!
  ③为创建好的页输入页描述,选定页类型,设置页比例。如果有图号等信息,写在增补说明中即可。
  ④检查无误后,执行导入操作。本次重新写过的VBA脚本,可以直接导入EPLAN 项目中,不像原来需要手工导入。导入时可以选择EPLAN 版本和要导入的项目,减少了手工操作。

点击下载: VBA编程_批量页规划器

 

发布:2009年12月24日 

因此,这个"页面批量创建器(Batch EPLAN Pages Creator)"正是基于这种需求编写的,它的使用方法:
1.在Excel中把项目结构和描述(高层代号;高层代号描述;位置代号;位置代号描述)先创建好;
2.运行小程序;
3.根据提示选择所需要的项目结构,如图示;
4.程序会自动读取第一步中创建的项目结构和描述,这样通过下拉列表选取时就更直观;
5.在后面输入所需要的页数,默认都创建的是原理图;
6.在Excel中可以单独设定每一页的页类型,根据需要点击最后一列进行页类型选择;
7.输入页描述,图号(有些公司是每页图纸有不同图号)及补充说明(根据需要),调整图纸比例等(默认为1:1);
8.直接在EPLAN 中读取这个Excel文件,页面就快速地创建完成了.

使用这个小脚本,对于大型的项目,可以极大地缩短页面创建时间并降低错误率.
没有做不到,只有想不到.所以,使用EPLAN 提高效率,不仅是对软件本身的操作要熟悉,而且应该对电气设计的流程要熟悉,合理规划,吸纳国外的一些先进的项目管理理念,就能从电气制图员(制图耗去了我们太多的时间)转变为真正的电气设计工程师了.

 

感兴趣的话可以去网盘:http://e.ys168.com/?caodaping2hh 下载动画文件,查看操作的全过程.你也可以试着用其它语言来编写这么个小东东!

Screenshots-3   Screenshots-4

 
 

已保护:[原创]VBA脚本-批量电缆部件创建器

13 Aug

这篇日志已被密码保护。请在这里输入密码:


 
输入密码以查看评论。

Posted in EPLAN, VBA编程

 

[原创]用VBA编写部件批量创建器的几点注意事项

21 Feb

很多朋友受之前的几篇VBA短文的启发,纷纷开始自己动手编写EPLAN 部件的批量生成器,这是一个我期望看到的结果:大家一起来学习、讨论、共同提高。

 

此前,有几位网友问到一些问题,其中有些问题重复度较高,我把我的观点放在这里和大家来讨论一下。

 

第一点:部件导入导出的控制文件一定要修改。默认的控制文件,导出的数据超过了200列,在Excel中查看的时候需要拖到滚动条,而且在编辑的时候感觉非常麻烦。其实,有很多数据是不需要的。根据我的经验,一般20列左右的数据就足够了(常用的部件数据)。因此,需要对控制文件进行修改,以减少列数。

 

第二点:有朋友将EPLAN 的所有功能定义提取出来,存放到一个worksheet中,然后生成一个功能定义的"树形视图",通过点击功能定义,然后获取其对应的内部值。这个方法本身没有问题,但是功能定义太多了,约在500往上,而实际上很多功能定义在平常都用不到,以我的经验,常用的仅20来个。太多的功能定义既增加了程序的运行时间,也增加了部件选择时的查找时间,与我们的初衷"快速、批量地进行部件创建"是相违背的。因此,很有必要减少功能定义的数量。

 

第三点:不要试图在一个程序中创建所有的部件,这样会大大增加程序的难度,效率也会大打折扣。举两个例子说明:

         1.比如断路器和电缆。断路器一般会在符号旁边显示技术参数(额定电流值),因此在功能定义中需要填写这个数值;而电缆却不需要这个参数,它需要的是另外两个不同的参数:芯数和截面积。那么写程序的时候,就要填写三个不同的属性,将它们写在一起的时候,就会增加程序的难度。

         2.又比如断路器和接触器。断路器的功能定义一般只有一个,因此在Excel中数据只占一行;而接触器则不然,它一般至少包含一个线圈和三个主触点,所以在Excel中数据至少占四行,如果有辅助触点的话,会占据更多的行。

因此,我的经验是针对不同类别的设备创建不同的Excel文件。

 

第四点:将Excel文件使用"另存为",转存为带逗号分隔的CSV文件时会有一个问题,因为CSV文件的编码格式为ANSI.

什么是文本文件的编码?这里从网络上搜索了一点资料,放在此处供参考!

引用

原文地址: http://blog.csdn.net/bloglife/archive/2008/04/11/2283501.aspx

备注:原文作者还提供了识别文本文件编码格式的工具及源代码。

文本文件也有编码?却实如此。什么是编码呢?编码是指不同国家的语言在计算机中的一种存储和解释规范,如,我们常说的ANSI是一种存储方式,ASCII是一种解释规范。

最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange,“美国信息交换标准码),它使用7 bits来表示一个字符,总共能表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息。后来派生了,的字符集,如:UTF-8,Unicode等等,正式的名称为MBCS(Multi-Byte Character System,多字节字符系统),通常也称为ANSI字符集。

UNICODE与UTF-8,由于每种语言都制定了自己的字符集,导致最后存在的各种字符集实在太多,在国际交流中要经常转换字符集非常不便。因此,产生了Unicode字符集,它固定使用16 bits(两个字节)来表示一个字符,共可以表示65536个字符,标准的Unicode称为UTF-16(UTF:UCS Transformation Format )。后来为了双字节的Unicode能够在现存的处理单字节的系统上正确传输,出现了UTF-8,使用类似MBCS的方式对Unicode进行编码。(Unicode字符集有多种编码形式),例如“连通”两个字的Unicode标准编码UTF-16 (big endian)为:DE 8F 1A 90,而其UTF-8编码为:E8 BF 9E E9 80 9A,就是说,UTF-8编码中,一个字符占三个字节。

因此,为了标示每种编码格式,在文件头用特殊字节表示每种编码,当一个软件打开一个文本时,要做的第一件事是检测文件头标识,确定这个文本是使用哪种字符集的哪种编码保存的。下表为几种文本编码的文件头标识:

编码格式 文件头
ANSI
UTF-8 EF BB BF
Unicode(Little Endian) FE FF
Unicode(Big Endian) FF FE

 

因此,在进行文件转存时,使用FileFormat:=xlUnicodeText语句进行强制转换,这样,Excel文件中的¶就能正常地显示在文本文件中,并成功导入了!

ThisWorkbook.SaveAs strFullName, FileFormat:=xlUnicodeText

 
 
 
欢迎光临,您是本站自2011年2月10日起的第myspace analyzer位访问者(博客升级前有68729位访问者)