**. 표기되지 않은 자료의 출처는 Abaqus Scripting User's Manual (v6.8)에서 따옴.
스크립트 분석
"""
modelAExample.py
A simple example: Creating a part.
"""
→ 쌍따옴표(")로 시작하고 묶인 부분은 헤더
주석은 #으로 시작한다.
주석은 #으로 시작한다.
from abaqus import *
→ 기본 abaqus 오브젝트를 스크립트에서 사용가능하게 함. (C의 include와 동일)
import *는 모든 오브젝트를 불러온다는 의미
또한 mdb로 된 기본모델 DB에 접속가능하게 함.
import testUtils
→ testUtils 오브젝트를 불러옴
testUtils.setBackwardCompatibility()
from abaqusConstants import *
→ abaqus에서 사용가능한 symbolic constant를 스크립트에서도 사용가능하게 함.
import sketch
import part
→ sketch와 part에 관련된 모듈을 불러옴. (파이썬 모듈)
myModel = mdb.Model(name='Model A')
→ ① : Model A라는 이름을 지닌 모델을 생성하여
② : mdb에 저장하고
③ : 생성된 모델에 myModel이라는 변수명을 지정한다.
모델을 생성해야 스케치나 파트를 생성할 수 있다.
mySketch = myModel.ConstrainedSketch(name='Sketch A', sheetSize=200.0)
→ 200짜리 크기의 Sketch A라는 스케치를 myModel에 생성한 후 mySketch라고 변수명을 지정한다.
→ 오브젝트를 생성하기 위해서는 대문자로 시작하는 생성자를 만들어야 한다.
Model A, Sketch A가 그 예이다.
→ 이전에 생성한 변수명인 myModel을 스케치를 생성하면서 지정하였다.
알기쉬운 변수명을 지정하는 것은 큰 도움이 된다.
xyCoordsInner = ((-5 , 20), (5, 20), (15, 0),
(-15, 0), (-5, 20))
xyCoordsOuter = ((-10, 30), (10, 30), (40, -30),
(30, -30), (20, -10), (-20, -10),
(-30, -30), (-40, -30), (-10, 30))
→ xy 좌표값을 각각 inner과 outer 2개로 분리하여 지정하였다.
for i in range(len(xyCoordsInner)-1):
mySketch.Line(point1=xyCoordsInner[i],
point2=xyCoordsInner[i+1])
→ 반복구문을 실시.
파이썬에서는 C언어와 같이 {}등으로 루프구문을 지정하지 않고 들여쓰기로 구분한다.
파이썬에서는 C언어와 같이 {}등으로 루프구문을 지정하지 않고 들여쓰기로 구분한다.
들여쓰기가 끝나면 루프문이 종료되는 것으로 간주한다.
→ len()함수는 xyCoordsInner의 좌표갯수를 돌려준다. (여기에서는 5)
→ range()함수는 정수열을 돌려준다. 파이썬에서는 C와 같이 배열의 인덱스가 0에서 시작된다.
여기에서는 range(4)는 0,1,2,3을 돌려준다.
for i in range(len(xyCoordsOuter)-1):
mySketch.Line(point1=xyCoordsOuter[i],
point2=xyCoordsOuter[i+1])
→ 위와 거의 동일 하다.
myPart = myModel.Part(name='Part A', dimensionality=THREE_D,
type=DEFORMABLE_BODY)
→ 3차원의 변형가능한 Part A라는 파트를 myModel내에 생성후 myPart라고 변수명을 지정한다.
myPart.BaseSolidExtrude(sketch=mySketch, depth=20.0)
→ myPart내에 있는 mySketch를 20만큼 뽑아낸다.
(Normal 방향이겠으나 어느쪽인지 나중에 확인해볼 것.)
myViewport = session.Viewport(name='Viewport for Model A',
origin=(10, 10), width=150, height=100)
→ Viewport for Model A라는 변수명의 뷰포인트를 생성후 myViewport라는 변수명을 지정
(원점 10,10에서 150,100크기의 창을 생성)
(원점 10,10에서 150,100크기의 창을 생성)
myViewport.setValues(displayedObject=myPart)
→ myPart를 myViewport로 디스플레이
myViewport.partDisplay.setValues(renderStyle=SHADED)
→ myViewport의 렌더링 스타일을 정함. (여기에서는 Shaded로 설정됨)
'2FeRed`s 공돌이생활 > ABAQUS' 카테고리의 다른 글
[아바쿠스] 노드에 국부좌표계 부여하기 (지역좌표계) (0) | 2010.06.09 |
---|---|
[ABAQUS] 역 분석 (Inverse Analysis) 의 의미와 정의 (0) | 2010.03.04 |
[아바쿠스] 접촉조건 슬라이딩(sliding) 옵션의 의미 (0) | 2010.02.15 |
[아바쿠스] 침투가 많을 경우 접촉조건 계산방법 Augmented Lagrange method (0) | 2010.02.10 |
[아바쿠스] contact controls 접촉조건 조절하기 (0) | 2010.02.02 |
아름다운 인터넷 문화를 위해 댓글을 남겨주세요. -0-;