2016.12.12 공식적으로 Flexsim 2017 버전을 발표하였습니다.

2016.2.2 버전에서 사용하던 기능을 업그레이드 하였는데 중요한 사항 두가지를 언급합니다.

  1. FlexScript 언어가 굉장하면서도 포괄적인 업데이트가 이루어졌습니다. (FlexScript는 C++ 언어와 동일한 구조이며 명령어도 C++ 명령어를 그대로 사용할 수 있습니다)
  2. Flexsim 2017 이전에 개발된 모델의 모든 FlexScript가 우선 정확히 쓰여져 있다면 2017버전에서 아주 훌륭히 수행됩니다. 뭐 당연한 얘기겠지만…FlexScript의 문장 구조가 업그레이드 된 내용으로 볼 때 …이것은 대단한 내용이라고 볼 수 있습니다.

이제 업데이트된 내용을 조금 더 상세히 파고들어가 보면,  변화된 FlexScript의 구문이 내부적으로 “dot 구문”  이라고 부르는 것입니다.  어떻게 그것이 동작하고 왜 그러한 변화가 가장 먼저 이루어졌는지 살펴 보겠습니다.

Dot 구문이 무엇인가?

Flexsim 2017 버전에서 스크립팅(Scripting)은 이전의 버전보다 더욱 개체지향적으로 변화되었으며, 코드를 더욱 물흐르듯이 직관적으로 작성할 수 있게 되었다는 것입니다. 글로벌 명령어 라이브러리를 사용하여 기존의 FlexScript에서 로직을 정의할 때 프로세스 플로우에서 토큰에서 라벨을 가져올 경우 아래와 같이 처리했었습니다.

getlabel(getlabel(token, “item”), “weight”);

이것을 dot 구문을 사용하면 아래와 같이 간단히 생각의 흐름대로 작성이 됩니다.

token.item.weight;

위의 두 구문 명령어는 완전히 동일합니다. dot 구문은 가장 흔히 사용하는 엔터티 – item, token 그리고 “current” 에 초점이 맞추어져 있습니다.  이러한 세가지는 아래와 같은 중요한 특성을 가지고 있습니다.

  • Properties(속성) 은 위치, 크기, 색상과 같은 외모를 제어하는 데이터 입니다. Dot 구문은 이러한 데이터를 접근하도록 해줍니다.
  • Methods(방법) 는 property(속성) 값을 변경하거나(속도 설정, 위치 변경) 무엇을 수행하는 명령어 입니다.
  • Labels(라벨) 은 이미 알고 있는대로 동적이며 맞춤형 속성입니다.(Flexsim에서 라벨은 변수(variables)의 의미로 사용이 됩니다)

그러므로 Flexsim의 새로운 dot 구문에서 작성된 표현식을 보게 되면, 무엇을 얘기하는지 쉽게 파악할 수 있습니다. dot 는 항상 “access”를 의미하며 개체와 변수와 연관된 속성과 방법을 접근할 수 있도록 해줍니다.

아래의 구문을 예로 들면,

current.name.startwith(“Processor”);

“current”는 현재 작업하고 있는 3D 개체를 가리키며 그다음의 dot은 접근하고자 하는 개체의 이름 속성을 의미합니다. 또 다른 dot는 “Processor” 문자열로 시작하는 이름인지를 확인하는 수단(방법)을 호출합니다.

왜 이러한 변화를 주었는가? 이러한 dot 구문의 변화의 결과로 얻을 수 있는 잇점은 실제로 크게 아래와 같은 것입니다.

더욱 우수하며 더 단순한 스크립트

위의 예에서 보았듯히, dot 구분 표현식은 매우 쉽게 사용할 수 있는 논리적인 구조를 가지고 있습니다. 또 향후 스크립팅을 발전시킬때 몇가지 강점을 가져다 줍니다. 그중의 하나가 dot 구문은 매우 동적(dynamic)이라는 것입니다.  라벨은 모델이 수행되는 동안 변경하거나 존재하지 않을 수도 있으며 특별한 처리를 필요로 하는 경우가 있습니다. 이제 라벨과 같은 동적인 속성은 방법(methods)와 정적인 속성과 같이 동작합니다.

token.Somelabel.AnotherLabel 과 같은 표현식도?  이제 가능합니다.

또 다른 잇점은 속성(property)과 방법(methods)이 더 복잡하지 않게 되었다는 것입니다. 이것은 Flexsim 개발팀이 새로운 강력한 명령어를 자주 추가할 수 있게 되었으며 전반적으로 methods는 파라미터를 더 줄여서 사용이 가능하게 된다는 것을 의미합니다.

시뮬레이션 속도의 향상

시뮬레이션 수행이 더욱 빨라질 수 있는 잠재력을 갖게 되었으며, 그 직접적인 결과가 Flexsim 2017에서 보여줄 것입니다.

이유는 모든 FlexScript가 이제 기계어 코드로 컴파일되어 바로 수행이 됩니다. 번역 과정없이 보다 효율적이며 빠르게 시뮬레이션 이벤트들을 처리할 수 있게 되었습니다.

매우 스마트한 자동완성

최종적으로 이러한 변화는 내장된 자동완성에 몇가지 큰 개선을 가능하도록 해줍니다. 그것은 dot 구분을 타이핑하자마자 접근가능한 속성(property)과 매소드를 리스트하여 줍니다. 자동완성은 편리하게 오자 또는 탈자 없이 명령어를 사용할 수 있도록 해줍니다.

전에 없이 스마트한 기능입니다. 이미 몇개의 라벨을 선언했다면 작성하고자 하는 구문들을 자동완성이 이것들을 보여줄 것입니다.

개발팀은 이러한 업데이트가  상용 시뮬레이션 툴중에서 Flexsim이 가장 훌륭한 시뮬레이션 소프트웨어가 되도록 한 걸음 더 나아갔다고 자부합니다. dot 구문에 친숙하게 되는데 도움이 필요하다면 기술지원팀과 전세계의 사용자들이 http://answers.flexsim.com 에서 지원을 해줄 것입니다.