Found an issue with the book? Report it on Github.

그래픽 커넥터(Graphical Connectors)

그래픽 커넥터(Graphical Connectors)

문자 vs. 그래픽(Text vs. Graphics)

지금까지 모델리카를 순전히 텍스트 언어로 논의했습니다만, 현실적으로 봤을때 모델리카 모델이 주로 그래픽 방식으로 구성 됩니다.지금부터 다루는 것들을 보면 복잡한 모델리카 모델을 시각화하는 방식에서 그래픽 적인 요소는 점점 더 큰 역할을 한다는 것을 알 수 있습니다.

시각화는 커넥터에서 시작합니다. 사실, 모델리카 모델의 텍스트 구성 요소는 항상 존재하는데, 변수와 방정식은 항상 이미 보여준 것처럼 텍스트 형식으로 선언됩니다. 그러나 계속 진행하면서 반복적으로 보게 되겠지만 모델리카의 annotation 기능을 사용하여 그래픽 모양을 모델리카의 다양한 엔터티와 연결할 수 있습니다.

소개할 첫 번째 그래픽 연결은 connector 와 관련된 그래픽입니다.좀더 구체적으로 정의와 그래픽을 연결하는 방법을 소개한 다음, 이 그래픽을 커넥터가 다이어그램에서 인스턴스화될 때마다 사용 하겠습니다(컴포넌트(Components) 에 대해 논의할 때 더 자세히 설명할 것입니다).

아이콘 주석(Icon Annotations)

각 모델에 대한 정의와 함께 주석이 연결 될 때 아이콘 주석을 정의에 배치(코딩)하지만 선언 또는 정의의 다른 엔터티와 연결하지는 않습니다.대신 정의된 또 다른 요소일 뿐입니다.이에 대한 전기 핀 커넥터 정의의 예시를 보겠습니다.

within ModelicaByExample.Connectors;
package Graphics
  connector PositivePin
     Modelica.SIunits.Voltage v;
     flow Modelica.SIunits.Current i;
    annotation ...
  end PositivePin;

  connector NegativePin
     Modelica.SIunits.Voltage v;
     flow Modelica.SIunits.Current i;
    annotation ...
  end NegativePin;
end Graphics;

각 정의의 길이를 유의 깊게 보면 길이가 긴데, 긴 이유는 거의 전적으로 이러한 정의에 있는 주석 때문입니다.주석을 제외한 PositivePinNegativePin 정의는 간단한 영역(Simple Domains) 에서 논의된 Electrical 커넥터 정의와 동일합니다.

두 개의 전기 핀 커넥터를 정의하기로 선택한 이유는 두 커넥터를 그래픽으로 구분할 수 있도록 하기 위함입니다.``PositivePin`` 커넥터의 인스턴스는 다음과 같습니다.

Icon of Positive Pin

NagativePin 커넥터의 인스턴스는 다음과 같습니다.

Icon of Negative Pin

PositivePin 이 정의된 Icon 주석을 자세히 살펴보겠습니다.

      Icon(graphics={
          Ellipse(
            extent={{-100,100},{100,-100}},
            lineColor={0,0,255},
            fillColor={85,170,255},
            fillPattern=FillPattern.Solid),
          Rectangle(
            extent={{-10,58},{10,-62}},
            fillColor={0,128,255},
            fillPattern=FillPattern.Solid,
            pattern=LinePattern.None),
          Rectangle(
            extent={{-60,10},{60,-10}},
            fillColor={0,128,255},
            fillPattern=FillPattern.Solid,
            pattern=LinePattern.None,
            lineColor={0,0,0}),
          Text(
            extent={{-100,-100},{100,-140}},
            lineColor={0,0,255},
            fillColor={85,170,255},
            fillPattern=FillPattern.Solid,
            textString="%name")}),

그래픽 주석(Graphical Annotations) 에 대해 논의할 예정 이지만, 이러한 정의에 의해서 어떤일이 발생하고 있는지 간단히 살펴보겠습니다. Icon 주석에 또 다른 변수 graphics 가 포함되어 있음을 알 수 있습니다. graphics 변수에는 그래픽 요소의 벡터가 할당됩니다.이 벡터 그래픽 요소에는 Ellipse (아이콘에서 원을 렌더링하는 데 사용됨), 2개의 Rectangle 요소 ("+" 기호를 렌더링하는 데 사용됨) 및 Text 요소가 포함되어 있습니다. Text 요소의 textString 필드에는 "%name" 이 포함되어 있습니다. 그래픽 주석에 나타날 수 있는 여러 대체 패턴이 있습니다.이 특정 변수는 PositivePin 자료형으로 변수가 선언될 때마다 인스턴스 이름으로 채워집니다. 예를 들어 선언은 다음과 같습니다.

PositivePin p;

%namep 로 대체되어 그래픽으로 렌더링됩니다. 이러한 방식으로 다이어그램의 커넥터에 할당된 텍스트 이름은 항상 모델의 기본 커넥터 선언 이름과 일치하게 됩니다.

그래픽 주석(Graphical Annotations) 에 관한 내용은 이 장의 뒷부분에서 자세히 검토할 것이며 모델의 텍스트 표현에서그래픽 렌더링도 통합할 수 있게 전환함에 따라 더 많은 용도에 사용하는 예시를 보게 될 것입니다.