매크로 : STAR-CCM+ GUI를 제어할 수 있는 자바 매크로란 무엇일까?

자바 매크로란?

Simcenter STAR-CCM+는 두 가지 언어로 개발되었다. GUI를 나타내는 Client, 해석솔버를 이야기하는 Server로 구분되는데 GUI는 자바 언어로 개발 되었으며, 해석 솔버는 C언어로 개발되었다. 그래서 GUI를 제어하는 데에는 자바 언어를 사용하게 된다.

Simcenter STAR-CCM+ 매크로는 STAR-CCM+ 작업 공간에서 컴파일되고 실행되는 Java 프로그램이다. 따라서 Java SDK(소프트웨어 개발 키트)가 Java 매크로를 컴파일하기 위해 필요하다. 다른 매크로 시스템과 달리 STAR-CCM+은 모든 마우스 움직임, 버튼 클릭, 키 입력을 기록하는 방식이 아니라 작업 공간에서의 작업을 유의미한 Java 코드로 변환하는 방식을 이용한다. 작성한 매크로는 표준 Java 코드이므로 루프, 조건부 구문 등 해당 언어의 모든 프로그래밍 구문에 액세스할 수 있다.

매크로를 처음부터 작성할 수는 있지만 서버가 노출하는 모든 개체, 속성 및 메소드에 대한 사전 지식이 요구되어 작업 공간을 사용하여 수행하려는 작업을 기록하는 것이 더 효과적이다. 그런 다음 원하는 텍스트 편집기를 사용하여 Java 파일을 수정해서 사용할 수 있다. 매크로는 자바 프로그램에 불과하므로 구문 오류가 있으면 컴파일되지 않는다. 이 경우 오류 메시지가 표시되어 특정 파일 이름, 줄 번호, 수정해야 할 문제 등을 확인할 수 있다.

매크로 파일

매크로는 프로그램이 실행할 내용을. java 파일에 저장한다. 매크로 파일은 응용 프로그램과의 상호작용에 대한 저널로 기록될 수 있는 Java 언어 파일이다. STAR-CCM+ 세션 내에서 매크로 파일을 만드는 것이 가장 편리하지만, 텍스트 편집기에서 수동으로 편집할 수도 있다. 예를 들어, Java 프로그래밍 언어의 모든 기능을 사용하여 특정 응용 프로그램에 맞도록 특수화할 수 있다. 가장 중요한 두 매크로 명령은 재생 및 기록이다. 이름에서 알 수 있듯이, 재생 매크로는 기존 매크로 파일을 실행시키고, 기록 매크로는 파일을 열어 기록한다. 기록 정지 명령이 실행될 때까지 기록이 수행되며, 일시 정지 옵션을 사용하여 특정 매크로 파일이 기록을 위해 열린 상태에서 특정 매크로 파일에 기록되는 것을 막을 수도 있다.

매크로 기록

매크로를 기록할 때 사용자가 STAR-CCM+에서 수행하는 각 작업은 매크로 파일에 관련 명령을 추가한다. 출력 창에서 매크로 탭을 선택하면 매크로에 추가 중인 명령을 확인할 수 있고 이 탭의 이름은 매크로 파일의 이름과 동일하다. 시뮬레이션에서 동일한 단계를 수행하지만 매크로에 포함하지 않으려면 기록을 일시 중지할 수 있다. 매크로에 추가 단계를 기록할 준비가 되면 기록을 다시 시작할 수 있다. 기록이 중지되면 매크로가 즉시 저장된다. 기록을 시작하기 전에 Java 매크로에 포함될 단계를 계획하는 것이 좋다. 이러한 계획을 통해 불필요한 명령으로 인해 매크로에서 잡다한 코드가 생성되는 것을 방지할 수 있다.

매크로에서 시각화 코드 제외

기본적으로 매크로에는 디스플레이어, 장면 및 STAR-CCM+ 작업 영역의 기타 그래픽 요소를 모두 조절할 수 있는 코드가 포함된다. 매크로의 목적은 파생된 파트 등의 항목을 추가하는 것일 수도 있다. 이러한 매크로를 일괄적으로 실행하거나 매크로를 편집하는 경우 그래픽 요소 관련 추가 코드는 불편하게 된다. 실제 사용하지 않는 코드이기도 하다. 이 기능을 사용하려면 저장 대화 상자에서 Include graphics commands 옵션을 비활성화하면 된다.

매크로 편집

매크로 파일은 작업에 맞춰 편집 및 사용자 지정이 가능한 Java 코드를 포함하는 일반 텍스트 파일이다. 예를 들어, 배치 작업에서 수행되는 반복의 수를 1에서 1000으로 변경하려면 즐겨찾기 텍스트 편집기에서 .java 파일을 열고 다음과 유사한 라인을 찾는다.
simulation_0.getSimulationIterator().step(1);


그리고 원하는 대로 반복 횟수를 변경한다.
simulation_0.getSimulationIterator().step(1000);


또는 실행 함수를 사용할 수 있다.
simulation_0.getSimulationIterator().run();


파일을 저장하고 닫는다. 다른 일반적인 편집기의 몇 가지 예는 다음과 같다.
*다른 케이스 파일 로드
*로터 회전 가속을 시뮬레이션하기 위해 속성을 변경하는 루프 추가
*시간 함수로써 속성 변동


java 매크로에서 경로 이름은 resolvePath 함수를 사용하여 java 파일에 상대적으로 만들 수 있다(자세한 내용은 Java API 참조). 사용자 입력을 위해 일시 중지하도록 매크로를 편집하는 것도 가능하다. 또한, 매크로에서 그래픽 코드 제외도 가능하다. 이 내용은 위에서 설명하였다. 매크로를 설계하여 시뮬레이션 프로세스의 해당 시점에 사용자 입력을 요청할 수 있다. 이 기능은 다른 파트의 설정을 실시간으로 조정할 수 있는 동시에 시뮬레이션의 일부 파트를 자동화하는 강력한 기능을 제공한다.

위로 스크롤