**. 표기되지 않은 자료의 출처는 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,))
→ 변형된 형상을 디스플레이함.
'2FeRed`s 공돌이생활 > ABAQUS' 카테고리의 다른 글
[공학] 공학계산 및 해석의 Wall clock time (0) | 2009.05.19 |
---|---|
[아바쿠스] 파이썬 스크립팅 #.3 파이썬 기본구문 (0) | 2009.05.15 |
[아바쿠스] 파이썬 스크립팅 #.4 파이썬 데이터 종류 (0) | 2009.05.15 |
[아바쿠스] 아바쿠스 파일 확장자명에 따른 분류 (0) | 2009.05.15 |
[아바쿠스] 파이썬 스크립팅 #.5 시퀀스 (0) | 2009.03.21 |
아름다운 인터넷 문화를 위해 댓글을 남겨주세요. -0-;