-2

我是 python 新手,但我已经能够制作一个脚本(请参见下面的代码和附图),它可以访问 abaqus .odb 输出文件并将等高线图保存为 .tiff 文件。由于此脚本间隔运行,新的图像文件会覆盖以前的图像文件,但我实际上想以不同的名称保存后续图像,例如 VMises_01、VMises_02、VMises_03 等。请我需要帮助修改脚本来执行此操作。预先感谢您的帮助。

# -*- coding: mbcs -*-
from abaqus import *
from abaqusConstants import *
session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=153.191665649414, 
 height=265.695220947266)
session.viewports['Viewport: 1'].makeCurrent()
session.viewports['Viewport: 1'].maximize()
from caeModules import *![enter image description here][1]
from driverUtils import executeOnCaeStartup
executeOnCaeStartup()
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
 referenceRepresentation=ON)
Mdb()
session.viewports['Viewport: 1'].setValues(displayedObject=None)
import os
os.chdir(r"C:\Work\2015 CA")
o1 = session.openOdb(name='C:/Work/2015 CA/cafe_del.odb')
session.viewports['Viewport: 1'].setValues(displayedObject=o1)
session.viewports['Viewport: 1'].odbDisplay.display.setValues(plotState=(
 CONTOURS_ON_DEF, ))
session.viewports['Viewport: 1'].odbDisplay.commonOptions.setValues(
 visibleEdges=FEATURE, deformationScaling=UNIFORM, uniformScaleFactor=1)
session.printToFile(fileName='C:/Work/2015 CA/VMises_01', format=TIFF, 
 canvasObjects=(session.viewports['Viewport: 1'], ))
session.odbs['C:/Work/2015 CA/cafe_del.odb'].close()
4

1 回答 1

0

获得唯一文件名的一种简单方法是附加时间戳。

例如替换

session.printToFile(
  fileName='C:/Work/2015 CA/VMises_01', 
  format=TIFF, 
  canvasObjects=(session.viewports['Viewport: 1'], ))

session.printToFile(
  fileName='C:/Work/2015 CA/VMises_%s' % datetime.datetime.now().strftime('%Y%d%m%H%M%S') , 
  format=TIFF, 
  canvasObjects=(session.viewports['Viewport: 1'], ))

相反,如果您想要您建议的计数器 01、02、03 等,那么您需要 (a) 在脚本中保留当前数字的记录(如果脚本没有,则在内存中或磁盘中) t 连续运行),或 (b) 每次查看目录内容以确定下一个可用号码。

于 2015-02-07T21:56:02.507 回答