2015-02-07 26 views
-2

我是python的新手,但我已經能夠製作一個腳本(請參閱下面的代碼和附圖),它可以訪問abaqus .odb輸出文件並將等值線圖保存爲.tiff文件。由於該腳本以間隔運行,新的圖像文件將覆蓋前一個,但我實際上想要以不同的名稱保存後續圖像,例如VMises_01,VMises_02,VMises_03等 請在修改腳本時使用asssistance來完成此操作。 非常感謝您的幫助。用於保存後續圖像而不覆蓋的python腳本

# -*- 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() 

回答

0

獲取唯一文件名的一種簡單方法是追加時間戳。

例如與

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'],)) 

更換

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

相反,如果你想在櫃檯01,02,03,等等,你提出的,那麼你要麼需要(一)保持當前的記錄(如果腳本沒有連續運行,則在內存中或磁盤中);或(b)查看目錄內容以確定每次可用的下一個數字。