0

我想自动化一个循环:

  1. ABAQUS 生成 Excel 文件;

  2. Matlab利用Excel文件中的数据;

  3. 循环 1 和 2。

现在我的问题是:在第 1 步之后,来自 ABAQUS 的 Excel 文件未保存为 Book1。我无法使用 Matlab 命令来保存它。有没有办法不保存这个“Book1”文件,而是使用其中的数据?或者如果我能找到它在哪里,我可以使用里面的数据?(我假设即使用户不保存文件,Excel 也总是保存文件?)

谢谢! 

4

2 回答 2

0

正如 agentp 所提到的,如果您通过 Python 脚本运行 Abaqus,您可以只使用 Python 创建一个 .txt 文件来保存所有相关信息。如果结构良好,.txt 文件可以像 Excel 电子表格一样可读。由于 Matlab 和 Python 具有读取和写入文件的内在函数,因此可以轻松完成这种通信。

至于 Matlab 调用 Abaqus,你可以使用类似的东西:

system('abaqus cae nogui=YOUR_SCRIPT.py')
于 2015-07-22T01:46:40.790 回答
0

您通过管道传输到 Excel 的脚本应该有一些与此类似的代码:

 abq_ExcelUtilities.excelUtilities.XYtoExcel(
       xyDataNames='S:Mises PI: PART-1-1 E: 4309 IP: 1', trueName='')

将相同的数据写入报告 (.rpt) 文件,代码如下所示:

 x0 = session.xyDataObjects['S:Mises PI: PART-1-1 E: 4309 IP: 1']
 session.writeXYReport(fileName='abaqus.rpt', xyData=(x0, ))

现在“滚动你自己的”,使用该x0对象:x0.data是一个常规的 python 元组,包含你可以随意写入文件的实际数据,例如:

 file=open('myfile.csv','w')
 for point in x0.data: file.write('%g,%g\n'%point)
 file.close()

(您可以评论或删除writeXYReport通话)

于 2015-07-22T20:52:18.787 回答