< 2FeRed's Conundrum of Life :: [아바쿠스] 파이썬 스크립팅 #.2 결과확인하기






*. 코드 분석용 형식없는 개인공부.

**. 표기되지 않은 자료의 출처는 Abaqus Scripting User's Manual (v6.8)에서 따옴.

예제완성본



파이썬 스크립트 다운로드




스크립트 분석

"""
odbExample.py

Script to open an output database, superimpose variables
from the last frame of different steps, and display a contour
plot of the result.
"""
→ 여기까지는 헤더
    주석은 #으로 시작한다.

from abaqus import *

→ 기본 abaqus 오브젝트를 스크립트에서 사용가능하게 함. (C의 include와 동일)
    import *는 모든 오브젝트를 불러온다는 의미
    또한 mdb로 된 기본모델 DB에 접속가능하게 함.

from abaqusConstants import *

→ abaqus에서 사용가능한 symbolic constant를 스크립트에서도 사용가능하게 함.

import visualization

→ abaqus/cae에서 사용가능한 visualization모듈을 사용가능하게 함.

myViewport = session.Viewport(name='Superposition example',
    origin=(10, 10), width=150, height=100)

→ Superposition example라는 이름의 viewport를 현재 세션에 생성한 후 myViewport라는 변수명을 지정

# Open the tutorial output database.

myOdb = visualization.openOdb(path='viewer_tutorial.odb')

→ viewer_tutorial.odb라는 이름의 파일을 열고 myOdb로 변수명 지정

# Associate the output database with the viewport.

myViewport.setValues(displayedObject=myOdb)

→ myOdb로 지정된 대상을 myViewport로 보냄

# Create variables that refer to the first two steps.

firstStep = myOdb.steps['Step-1']
secondStep = myOdb.steps['Step-2']

→ output database에 있는 first와 second 스텝을 각각 firstStep, secondStep로 변수명을 지정

# Read displacement and stress data from the last frame
# of the first two steps.

frame1 = firstStep.frames[-1]
frame2 = secondStep.frames[-1]

→ 각 스텝의 마지막 프레임을 frame1과 frame2로 변수명 지정.

displacement1 = frame1.fieldOutputs['U']
displacement2 = frame2.fieldOutputs['U']

→ 각 스텝의 변위값을 각각 displacement1과 displacement2로 변수명 지정.

stress1 = frame1.fieldOutputs['S']
stress2 = frame2.fieldOutputs['S']

→ 변위와 동일하게 응력값을 각각 변수명지정.

# Find the added displacement and stress caused by
# the loading in the second step.

deltaDisplacement = displacement2 - displacement1

→ 스텝1과 스텝2의 변위값의 차이를 변수명지정.

deltaStress = stress2 - stress1

→ 스텝1과 스텝2의 응력값의 차이를 변수명지정.

# Create a Mises stress contour plot of the result.

myViewport.odbDisplay.setDeformedVariable(deltaDisplacement)

→ 변위값의 차이를 디스플레이 함.

myViewport.odbDisplay.setPrimaryVariable(field=deltaStress,
    outputPosition=INTEGRATION_POINT,
    refinement=(INVARIANT, 'Mises'))

→ 응력값의 차이를 심볼로 디스플레이함.

myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,))

→ 변형된 형상을 디스플레이함.
아름다운 인터넷 문화를 위해 댓글을 남겨주세요. -0-;
AND