본문 바로가기
Program/ABAQUS

ABAQUS를 위한 Python Code 만들기 01 (Sketch와 Part)

by 시레엔 2017. 4. 1.
반응형

안녕하세요.

어제 포스팅에 이은 2번째 ABAQUS를 위한 Python 관련 포스팅입니다.

요즘에는 갑자기 일이 많아져서 포스팅을 길게는 쓰지 못할 것 같습니다. 하지만, 최대한 부지런히 써보려고 노력 중입니다. 또한, 길게는 못써서 저번 포스팅에 있는 것을 분할해서 설명을 드릴려고 합니다. 나중에 들어오시는 분들은 포스팅 흐름대로 공부하시면 될 것 같으나, 계속 보시는 분들 중에 포스팅이 느리다고 생각하시면 코드를 아에 이메일로 보내드릴 생각입니다.

추후에 댓글로 한번 문의를 주시면 전 포스팅에 있는 코드를 보내드릴 수 있도록 하겠습니다. 하지만, 복잡한 과정은 아니고 py파일로 Beam 예제를 풀이를 한 것이기 때문에 기초 과정이라고 생각하시면 될 것 같습니다.

제목에서와 같이 Python을 이용한 ABAQUS 해석 자동화 과정 중 SketchPart 관련 포스팅입니다. 기존에 Python을 많이 써보신 분들은 금방 이해할 수 있을 것이라고 생각합니다.

 

import sketch

import part

 

먼저 ABAQUS 모듈에는 다양하게 존재합니다. 예를 들어 Sketch, Part, Material, Step, Interaction 등 더 많은 모듈들이 있습니다. (이 모듈에 대한 설명은 ABAQUS CAE Documentation에서 Context Bar 부분을 확인하면 더 좋으실 것 같습니다.) 이런 모듈을 사용하기 위해서는 위와 같이 Import와 같은 명령어로 모듈을 불러와주는 과정이 필요합니다. 그 과정을 정의해주는 것이라고 생각하시면 될 것 같습니다.

 

s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',     sheetSize=200.0)

 

Sketch 모듈로 들어가는 것은 MDB(Model Database)에서 모델, 그 안의 Constrained Sketch라는 곳으로 들어가서 설정을 해주어야한다. 그리고 그 안의 여러 기능을 사용하기 위해서 위와 같이 들어가는 과정을 's'라는 변수로 Sketch 모듈까지 들어가는 과정을 치환해줄 수 있다. 

 Constrained Sketch의 세부 옵션은 이름을 정의하는 부분과 Sheet Size를 넣을 수 있습니다. 먼저 첫번째 'name'은 이름을 정의해주는 부분이고, sheetSize는 Sketch의 모눈 한칸의 길이를 정의합니다.

 

g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints

s.setPrimaryObject(option=STANDALONE)

 

setPrimaryObject의 Option은 STANDALONE과 SUPERIMPOSE가 있습니다.

STANDALONE이라는 부분은 새로운 Sketch를 그릴때 사용되어지며 SUPERIMPOSE는 그 반대의 경우에 사용되어진다고 생각하시면 됩니다.

 

s.rectangle(point1=(0.0, 0.0), point2=(L, H))

 

사각형을 그릴 때 사용되어지는 명령어로써 두점을 찍는 것에 따라서 사각형의 크기를 결정할 수 있다. 처음 사각형의 순서쌍이 0,0의 좌표값이라고 한다면 L은 x축 길이, H는 y축 길이라고 생각하시면 됩니다.

 

p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D,   type=DEFORMABLE_BODY)

p = mdb.models['Model-1'].parts['Part-1']

p.BaseSolidExtrude(sketch=s, depth=W)

s.unsetPrimaryObject()

 

위의 코드는 파트를 형성하는 과정으로서 파트의 이름, 차원, 타입을 결정할 수 있으며, 이 파트 안의 Extrude, Revolve 기능을 이용할 때는 Sketch를 이용하여 깊이나 각도를 설정하는 옵션이 있으니 Abaqus Documentation 2016에서 확인해보시면 될 것 같습니다.

 

중요한 부분만 설명하고 넘어가면 금방 쓸 수 있을 것이라고 생각했는데, 생각보다 포스팅 속도가 안 나네요.

아무튼 꾸준히 포스팅을 올릴 수 있도록 하겠습니다.

반응형

댓글