产品的多目标优化和灵敏度分析,现在有很多参数化的建模方法以及工程应用软件,比如Altair的Morph和Hyperstudy,比如ANSA和Opitimus,再比如Meshworks和iSight等。

如果这个流程能够顺利的进行下去,好吧,皆大欢喜,如果不行呢?
比如,你的本机的求解器,比如Nastran罢工了,服务器的端口又出现问题呢?

好,小样的,不信离了你我都不转了,我手动输入总行吧,打开,粘贴复制,再打开再复制粘贴……
我的天啊,一上午过去了,上百个样本点,才敲了三分之一,这可怎么办呀,我的爱妾,你快回来吧!

爱妾是已经彻底弃我而去,任务还是得完成啊,求人不如求己,我就不信这个邪!
小Python ,准备好,随朕一起出征!
Python :陛下,我该往哪打?

问题描述:
1、模态上百个样本点计算完成后,得到了上百个样本点模态的结果,并且这些结果都储存在F06文件中,如何把这些结果文件都从f06文件中拎出来,然后自动写在DOE矩阵中要求的位置呢?
2、刚度上百个样本点计算完成后,得到了上百个样本点刚度的结果,并且这些结果都储存在pch文件中,如何把这些结果文件都从pch文件中拎出来,然后自动写在DOE矩阵中要求的位置呢?
先来看下第一个问题,这个略微简单一丢丢,为什么呢,因为只要定位,提取数值,然后写入就可以了,让我们一起来试一下。
先看下f06文件需要提取的内容:

1、 标记提取内容的关键字,比如REAL EIGENVALUES。
2、 然后寻找需要提取的阶数,因为本身问题的需求,这里要提取的是扭转模态和弯曲模态,如上图中红色线框标识的内容。
废话不多说,上代码。
要打开各种文件,又读又写的,先导入各种函数库吧。

找路径:

一个是f06文件的路径,一个是写入的DOE矩阵的路径。
为了方便起见,我们只选取上百个f06文件里的5个示例说明,文件从MODE_dv002.f06到MODE_dv006.f06。

有人问我,你的001号文件呢,就当被我吃了吧。。。(命名只要数字连续自己知道就可以,这里是因为1号文件出了点错误,所以就没有选择其当做案例说明了)

下面就要上循环了,这里总共有两个循环,第一个是大循环,即如何把上面的f06文件ONE-BY-ONE的打开;第二个子循环是读取单一的f06文件,如何把单一的文件中的内容读取出来并且写入想要写入的位置。
先来看第一个大循环:

看到了吧,这样文件就一个一个的打开了。
再来看第二个子循环,这个就有点意思了。

首先定义了一个list1,用来存放从f06文件里读出的结果,然后再将这些结果写入到指定的EXCEL里面去,这里值得一提的是,如何把一个矩阵转置后存放在EXCLE中呢,难点来了:

这两个红框的内容缺一不可,有了这两个内容,我们一起看看结果:

完美吧,f06文件里的模态值,依次写入了DOE矩阵的mode_b和mode_t中。
至于刚度呢?
欲知刚度如何,请听下回分解。




