2015-02-07 2 views
-2

나는 파이썬을 처음 사용하지만 abaqus .odb 출력 파일에 액세스하고 등고선지도를 .tiff 파일로 저장하는 스크립트 (pls는 아래 코드와 첨부 된 그림 참조)를 만들 수있었습니다. 파일. 이 스크립트는 간격을두고 실행되기 때문에 새 이미지 파일은 이전 이미지를 덮어 씁니다. 그러나 실제로는 다음 이미지를 다른 이름으로 저장하려고합니다. 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() 

답변

0

고유 한 파일 이름을 얻는 간단한 방법 중 하나는 타임 스탬프를 추가하는 것입니다.

당신이 등 카운터 01, 02, 03, 원하는 대신 경우 제안 된 것으로,

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

교체 한 다음에해야 하나하는 것은의 (a) 현재의 기록을 유지 (스크립트가 연속적으로 실행되지 않는 경우 메모리 또는 디스크 중 하나), 또는 (b) 매번 다음으로 사용할 수있는 번호를 결정하기 위해 디렉토리 내용을 조사하십시오.

관련 문제