라이브러리 만들어 사용하기

이번에는 여러개의 매크로 파일들을 한번에 관리할 수 있는 방법에 대해서 알아보자. 앞에서 매크로 함수를 만들어 사용할 때는 하나의 .inr 파일에 모든 프로그램을 작성하였다. 그러나 매크로 함수가 많아질 경우를 생각해 보자. 하나의 .inr 파일에 여러개의 매크로 함수를 작성하다보면 프로그램이 너무 길어지고 복잡하게 보일 수 있다. 이럴 경우 매크로 파일만을 따로 묶어서 하나의 파일을 만들면 관리하기 편할 것이다. 이것이 라이브러리 파일이다. 우선 아래와 같은 .inr 파일을 하나 만들자.

SYSTEM NEW
RESET

$IO  LIBRARY  MYMACROS
  $MACRO_RECT      0  10  10
  $MACRO_ELLIPSE  5  7   7
$IO  LIBRARY  CLOSE

OBJECT
  .1 .2 ‘TUBE

WINDOW Y X
PLOT FACETS
RETURN

$IO LIBRARY 매크로 뒤에 MYMACROS라는 사용자가 만들려는 라이브러리 파일의 이름을 적어준다. 이렇게 하면 mymacros.lib 파일에서 내용을 불러와 사용하게 된다. MYMACROS 라는 라이브러리 안에는 $MACRO_RECT, $MACRO_ELLIPSE라고하는 2개의 매크로가 정의되어 있어야 한다(우리가 작성할 것이다). 그리고 라이브러리의 사용이 끝나면 $IO LIBRARY CLOSE 를 통해서 열려있던 라이브러리를 닫아 주어야 한다. 만약 라이브러리를 다 사용하고 닫아주지 않으면 다음에 다른 이름의 .lib 파일을 열려고 할 때 에러가 발생하게 된다.

.inr 파일을 다 작성하였으면 이번에는 .lib 파일을 만들어 보자. ASAP Workspace 창의 LIB Input 항목에서 오른쪽 마우스를 클릭하고 New 를 선택하자.

Lib_new
그림 8.36 Lib 파일 생성하기

새로운 Input 창이 생성되면 아래의 코드를 입력해 보자. .mac 파일과 달리 .lib에서는 매크로의 이름과 변수의 개수까지 다 작성하여야 한다. .mac과 달리 .lib에는 여러개의 매크로가 입력되기 때문에 매크로 이름이 있어야 각각을 식별할 수 있기 때문이다.

MACRO_RECT { 3
  EDGE
    RECTANGLE Z
#1 #2 #3 64 360
}
Z height:
Length of X:
Length of Y:

MACRO_ELLIPSE { 3
  EDGE
    ELLIPSE Z #1 #2 #3 64 360
}
Z height:
Radius of X:
Radius of Y:

위의 프로그램을 다 입력하였으면, File > Save 를 클릭해 보자. 그러면 파일형식(T):Lib Files (*.lib)로 설정되어 있는 것을 확인 할 수 있다. 그런데 Save로 하지 않고 Save As…로 저장하려고 하면 파일형식이 .inr로 설정된다. 우리는 .lib로 저장해야 하기 때문에 이 부분을 꼭 확인하고 넘어가야 한다. 그럼, 파일이름(N):MAMACROS로 입력하고 저장(S)을 클릭보자. 여기서 파일이름은 $IO LIBRARY MYMACROS의 마지막에 있는 이름과 동일한 이름으로 저장해야 한다.

Lib_save
그림 8.37 Lib 파일 저장하기

mymacros.lib 파일을 저장하였다면 다시 .inr 파일로 가서 프로그램을 실행(Run) 시켜보자. 실행이 완료되고 3D View 버튼을 클릭하면 그림 8.38의 그림을 볼 수 있을 것이다.

Lib_3D
그림 8.38 Lib 파일로 만든 3D 형상

여기서, 위의 .lib 파일은 Working Directory 안에 저장해야 한다. 만약, 다른 디렉토리에 저장하였다면 $IO LIBRARY “C:ASAP MACROSMYMACROS” 처럼 .lib 파일이 있는 폴더의 경로를 “(큰 따음표)를 이용해서 지정해 주어도 된다.

.lib 파일 안에서 매크로를 찾을때는 위에서부터 순서대로 매크로 이름을 검색하기 때문에 많이 사용되는 매크로일수록 파일의 위쪽에 위치시켜야 빨리 찾을 수 있다. 빨리 찾고 빠져나와야 프로그램 속도도 빨라진다.

Note…
LIB Input의 mymacros.lib 파일을 내용을 수정할 경우를 고려해 보자. 내용을 수정한 후에는 다시 .inr 파일에서 실행을 시켜야 한다. 그런데, 실수로 .lib 파일에서 저장하고 바로 실행 버튼을 누르는 경우가 있다. 이렇게 되면 .lib 파일이 실행되는 것이어서 .mac 파일이 생성된다. 위의 프로그램을 예로 들면 macro_rect.mac 과 macro_ellipse.mac의 2개의 파일이 생성된다. 그리고나면 .lib 파일을 아무리 수정하고 저장해도 .inr 파일을 실행시키면 변경한 부분이 반영이 되지 않는다. 이것은 .lib 파일보다 .mac 파일이 우선순위가 높아서 .mac 파일이 실행되기 때문에 .lib 파일을 아무리 수정해도 적용되지 않는 것이다.  이럴경우는 .lib 파일을 다시 실행시켜 .mac 파일을 수정하거나, 바로 .mac 파일을 수정혹은 삭제한 후 .inr 파일을 실행하면 된다.

기본은 이렇다.
1) .lib를 실행하면 .mac 파일이 만들어 진다.
2) 실행 순서는 .inr > .mac > .lib 이다. 같은 이름의 .mac 이 있으면 .lib는 절대로 열리지 않는다.

   

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: