副标题: 基于Python的IPI处理程序开发(二)
之前写过一个处理IPI的程序,使用VBA语言编写,大致是首先把punch结果文件转化为excel结果文件,再基于VBA语言对excel表格中的数据进行处理,包括计算结果,显示图表和写入报告。VBA编写程序有他的优点,首先,数据的处理和存储功能,excel表格天生就适用于这种矩阵列表,曲线源数据的存储,可省去大量存储算法的构造,加快开发效率,尤其是对一些入门级别的编写;其次,基于VBA来编写程序,可以实现excel数据和编写平台之间的无缝连接,全套系统均集成在office之中,并且各种ppt、excel之中的编写语言本质均属于VB,无非是面向对象而已;第三,VBA集成的界面GUI设计功能,完全降低了入门级别编写者的难度,这进一步使得VBA语言在CAE工程师中得到广泛应用。
如每一个硬币都有其正面和反面一样,VBA的编写也存在自身的缺陷。首先,跨平台应用是一个难点,任何一个机遇VBA编写的脚本,必须在安装了office的电脑上应用,脱离了这个软件,程序将无法运行,可能由于程序功能,对office的版本还有特定的要求,无法做的很好的移植性;其次,VBA作为一种人入门级别的编写语言,保密性不高,源代码容易泄露,对于一些核心的算法,太容易被破解了;第三,VBA的程序运行速率还是不高,尤其是对于一些大于100M的大结果文件,读取转换以及处理,花费时间还是太长,这是由于其总是在对excel表格数据的读写,相较于直接在内存中读取和存储数据,速率有好一个数量级的差距。并且,对于用户来说,其实厌烦了那种多步骤操作过程。因此,基于以上一些原因,我花了几个周末,使用python重新写了一个程序。直接处理pch结果文件,得到结果。
程序要想具有通用性,必须考虑用户实际的使用情况。你不能要求用户模型单位系统只用mm,输出的只能是accelation,普遍适用的程序应该充分考虑不同的使用需求,不管单位系统使用哪一套,输出的是否为加速度速度,程序均能进行处理,并且,你也不能限制用户看图表只显示加速度,说不定心血来潮想看速度和位移呢,这就对输出的图表类型有选择了。此外,对于用户使用哪种方法求解动刚度,即使用哪种算法进行求解,也需要让用户进行选择。并且,用户可能只关注具体的IPI计算结果,并不想看带目标线的图表,这也应该为用户提供选择。这一切的一切,均应该在GUI界面有所体现,以提高用户的使用体验。总之一句话,一切以用户为中心进行程序设计。还好,我就是用户,我说了算,哈哈!
最后可能比较关注运行效率的问题,额,怎么说呢,反正20M的IPI文件,运行时间1.73s,所以,我进度条都没加!
觉得不错,就点个赞,顺便分享一下吧!
得不错,请关注我,更多分享,尽在itincae
领取专属 10元无门槛券
私享最新 技术干货