July 4, 2016

[Tip] 유용한 Abaqus Python Scripting 모음

안녕하세요. 다쏘시스템 SIMULIA 브랜드팀 입니다. 이 번 포스팅에서는 Abaqus /CAE 자동화 scripting에서 유용하게 사용할 수 있는 Abaqus Scripting Interface(ASI) 및 python command에 대해 살펴 보겠습니다. ASI는
header
Avatar 다쏘시스템코리아

안녕하세요. 다쏘시스템 SIMULIA 브랜드팀 입니다.

이 번 포스팅에서는 Abaqus /CAE 자동화 scripting에서 유용하게 사용할 수 있는 Abaqus Scripting Interface(ASI) 및 python command에 대해 살펴 보겠습니다. ASI는 freeware로 제공되는python language에 기반하고 있습니다. Python의 문법은 간결하고 다양한 라이브러리를 확장하는 편의성을 제공합니다. 또 여러 분야에서 활발하게 사용되기 때문에 관련 문서 및 활용사례를 쉽게 찾을 수 있습니다.

※python tutorial 참고 URL : http://openbookproject.net/thinkcs/python/english2e/    ASI command는 Abaqus /CAE customization에 관련된 기능에 해당하고, python command는 파일 입출력 및 변수 처리에 사용됩니다. 그럼, 자주 사용되는 주요 ASI, python command에 대해 소개를 드리겠습니다.   1. ASI를 이용하기 위한 기본 모듈 준비

– ASI script 작성을 위해 필수 모듈 및 자주 사용하는 상수 값 사용 위해 위의 2개 commands는 script 상단에 항상 명시를 해야 합니다.   2. Abaqus /CAE 환경에서 각 모듈을 사용하는 경우, 필요한 모듈 준비

– Abaqus /CAE에서 선택한 모듈 환경에서 자동화를 수행할 경우, 특정 모듈 import가 필요합니다. 위 commnad를 이용하여 한 번에 모든 Abaqus /CAE 모듈을 import 할 수 있습니다.

 

3. Abaqus /Viewer 환경에서 모듈을 사용하는 경우, 필요한 모듈 준비

– Abaqus /Viewer에서 post-processing, image 출력 및 odb 처리를 하는 경우, visualization 모듈은 반드시 import 되어야 합니다.   4. 현재 사용중인 viewport 정보 확인

– 여러 개의 viewport로 작업 할 경우, 현재 사용 중인 viewport 이름이 “Viewport: 1”이 아닐 수 있습니다. 이럴 경우, session.currentViewportName으로 현재 viewport 이름을 얻어오고, 이 viewport 이름으로 viewport object를 접근 할 수 있습니다.   5. 현재 viewport에 display된 object 정보 확인

– Viewport object에서 displayedObject member를 이용해 displayed 된 object의 접근 path를 확인할 수 있습니다.   6. 현재 viewport 화면에서 모델 전체 보기

– fitView() method를 이용해 현재 viewport에서 화면 모델 전체를 볼 수 있도록 설정할 수 있습니다.   7. ODB 마지막 step, 마지막 increment 데이터 접근하기

– python 데이터 type 중 list는 각 내용을 index로 접근할 수 있습니다. 마지막 데이터내용은 -1로 접근을 할 수 있는데, odb access의 ASI에서 이를 적용할 수 있습니다.   8. 현재 viewport contour plot 결과 중, minimum/maximum 값 추출하기

– 별도의 최대/최소값 처리 없이, getPrimVarMinMaxLoc method를 이용해 현재 viewport contour plot 결과의 최대/최소 값을 찾을 수 있습니다.   9. GUI로 입력 값 받아들이기

– getInput 함수를 이용하여, 간단한 사용자 입력 GUI를 구현할 수 있습니다. 입력한 값은 string 형태로 처리됩니다.   10. Object에 대한 highlight 적용

– ASI로 접근한 특정 object를 highlight 함수를 이용하여 화면에서 붉은 색으로 표시할 수 있습니다.   11. 현재 viewport에 display된 element, node label 출력

– ODB에서 현재 display된 element/node의 label을 getActiveElementLabels/getActiveNodeLabels 함수로 출력할 수 있습니다.   12. Abaqus /CAE 파일 버전 출력

– Abaqus /CAE 파일 *.cae의 버전을 getMdbVersionNumbers 함수로 출력할 수 있습니다. Tuple 형태로 버전 정보가 출력됩니다.   13. 현재 디렉토리 아래 특정 확장자를 갖는 파일 리스트 작성

– Glob 모듈을 이용하여, 현재 디렉토리에 있는 특정 확장자 파일 리스트를 변수화 할 수 있습니다.   14. 반복되는 sequence data의 중복데이터 삭제

– List, tuple 데이터의 각 데이터가 같은 값을 갖는 경우, set 함수를 이용해 중복되는 데이터를 정리할 수 있습니다.   15. Abaqus python script 실행 시, 명령어 인자 접근

예) %abaqus python myScript.py myData.csv     args[1] => myScript.py     agrs[2] => myData.csv – Script 실행 시, 명령어 인자는 sys 모듈의 argv member를 이용해 접근할 수 있습니다.   16. Sequence data의 index와 값 추출 방법

– Sequence data의 index와 각 해당하는 값은 enumerate 함수를 이용해 추출할 수 있습니다.   17. 선택한 object의 속성 정보 확인 방법

– Print 명령어로 object의 상세 정보를 출력할 수 있습니다. 또 dir()함수, __doc__(도움말), __members__(멤버변수), __methods__(멤버함수)를 출력하여 세부 정보를 확인 할 수 있습니다.   18. Object 내용의 정렬된 형태로 print 하는 방법

– textRepr 모듈의 prettyPrint 함수를 이용하여, 정렬된 형태로 내용을 print 할 수 있습니다.   19. Windows에서 path 정보 출력 시, “” 특수 문자 출력

– path에 나타나는 “” 특수문자는 string에서 “”를 더 추가하거나, 문자 맨 앞에 r을 추가하는 raw string 을 이용해 출력할 수 있습니다.   20. sequence data의 순서정렬 방법

– list, tuple 데이터에 대해 sorted() 함수를 적용하면, 동일한 데이터 형식에 맞추어 순서정렬을 적용할 수 있습니다.


마무리 여기까지 자주 사용되는 Abaqus Scripting Interface, python command에 대해 살펴보았습니다. 복잡한 script 보다, 꼭 필요한 기능만 활용하여 script를 간결하게 만들 수 있는 것이 python script의 장점이라 할 수 있습니다. 또 다른 확장 모듈을 이용하여 수치계산, 그래프 출력 등을 수행할 수 있습니다.  시뮬리아  아바쿠스  SIMULIA  ABAQUS

다쏘시스템 SIMULIA 정규 교육 세미나

https://www.3ds.com/ko/training/simulia-education-korea/

최신 정보 확인하기

새로운 콘텐츠를 놓치고 싶지 않다면, 구독해주세요

구독하기

매월 새로운 콘텐츠를 받아보고 싶다면, 구독해주세요.