用于保存后续图像而不覆盖的python脚本

时间:2015-02-07 21:36:25

标签: python abaqus

我是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()

1 个答案:

答案 0 :(得分:0)

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

e.g。替换

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)在脚本中保留当前数字的记录(如果是脚本不能连续运行),或(b)查看目录内容以确定每次下一个可用的号码。