Abaqus Kernel Command 사용 아바쿠스를 편리하게 (1)

Abaqus Kernel Command

GUI상 모델링을 할 때 반복적인 작업인 경우 불편한 면이 많은데요. 그럴 때 Abaqus Kernel Command를 이용하면 편리하고 효율적으로 모델링 할 수 있습니다. 추가적으로 코딩을 하면 더 편한데 여기서는 kennel 만 이용하는 방법입니다. (엑셀과 텍스트 편집기도 필요해요)

ABAQUS Scripting Interface 설명

Wire Model (Beam Model)

Abaqus beam model(wire)할 때 GUI상 반복적 이고 불편하게 되어있는데요. 하나의 빔을 만들거면 상관없지만 만약 100개를 만들면 어떨까요 시간이 엄청 오래 걸리겠죠. 이럴때 abauqs kernel 로 편리하게 geometry의 포인트 좌표를 추출하여 모델링 하는 방법입니다. 추가적인 코딩 없이 kennel에서 작업하는 방법입니다.

beam, wire를 만들 geomery point를 하나의 세트로 만들어줍니다. 여기서 저는 set-2로 설정했습니다.

그런 다음 아래의 서식을 kenel에 입력합니다. 아래의 예시는 model 이름은 “Model-1” parts 이름은 ‘com’ 입니다.

co=mdb.models['Model-1'].parts['com'].sets['Set-2'].vertices.pointsOn
>>> print co

co 변수는 마음대로 지정 해도 됩니다. co변수를 프린트해주면 지오메트리상 좌표가 출력 됩니다.

Abaqus Kernel

출력된 좌표를 복사해주시고 이걸 이용해서 빔 또는 와이어를 만들 거에요.

아래와 같은 서식을 만들어 붙여넣어 주면 작성이 되는데 이를 하나씩 입력하려면 또 반복적이니 엑셀로 서식을 작성해 주도록 합니다.

points = 쉼표로 구분된 처음 3개 좌표가 있는데 1번 point[0.805001,-22.215026,95,], 에서 2번째 point[0.805001,-14.465026,95,]까지 beam/wire 를 만들어 주는 명령입니다.

p.WirePolyLine(points=(([0.805001,-22.215026,95,], [0.805001,-14.465026,95,]), ), mergeType=IMPRINT, meshable=ON)

엑셀로 위와 같은 서식을 만들기 위해서는 세로로 정렬되어 엑셀 셀에 숫자를 입력해야 되는데 텍스트 편집기를 이용해 줍니다. 저는 acroedit을 이용했습니다.

먼저 엑셀에서 텍스트마법사를 이용해서 구분기호 “)”를 기준으로 하여 3개의 좌표별로 구분해줍니다.

x,y,z좌표별로 구분되어 셀에 입력되었으면 세로로 정렬하기위해 행 열 전환 기능을 이용해 줍니다.

세로 정렬로 된 텍스트를 텍스트편집기에 가져와 acrodit같은 경우에는 (clrl + R) 바꾸기로 쉼표와 괄호를 전부 없애 줍니다.

그다음 빈줄 자동 삭제를 해줍니다.

깔끔하게 좌표값만 세로로 정렬된 숫자들을 다시 엑셀로 가져와 텍스트에디터로 이번엔 너비가 일정함 으로 입력해주면

x,y,z가 구분되어 입력이 됩니다.

이제 정렬된 x y z좌표를 엑셀로 아까 위에서 보여드린 서식대로 만들어 주고 abaqus kenel에 붙여넣기 해주면 됩니다.

그전에 p라는 변수에 어떤 모델과 파트를 참조하는지 설정해주시고 입력해주세요

Abaqus Kernel에 하나씩 입력하실 필요 없이 엑셀로 쭉 만들어 주시고 전체를 붙여 넣으면 알아서 한개씩 만들어 줍니다.

>>>from abaqusConstants import *
>>>p = mdb.models['Model-1'].parts['com']
>>>붙여넣기 (쭈우욱)

-abaqus kenel

Abaqus Kernel

완성!

DXF CAD Import

파일 경로를 변경하여 임포트하세요 아래와 같이 만들어 놓고 abaqus kenel에 복사 붙여넣기 해주면 한번에 불러올 수 있습니다.

import sketch
from dxf2abq import importdxf
importdxf(fileName='E:/sa/MP.dxf')
importdxf(fileName='E:/sa/sc.dxf')
importdxf(fileName='E:/sa/E1.dxf')
importdxf(fileName='E:/sa/E3.dxf')
importdxf(fileName='E:/sa/SA.dxf')
importdxf(fileName='E:/sa/PT.dxf')
importdxf(fileName='E:/sa/TPLAN.dxf')
........ 등등등 

Check out other post

댓글 남기기

%d 블로거가 이것을 좋아합니다: