enuSpace professional 2016 기준

enuSpace 그래픽 저작기 타원 객체(Ellipse Object - SVG)



그래픽 편집기에서 Ellipse Object 생성 방법은 아래와 같다.

1. Ellipse Object를 생성할 Picture를 선택한다.

2. 그래픽 편집기 상단의 메뉴에서 “Ellipse” 버튼을 클릭한다.

3. “Ellipse” 버튼을 클릭하고 선택한 Picture에서 원하는 위치 및 길이만큼 마우스로 Drag하여 Ellipse Object를 생성한다.

4. 생성된 Ellipse Object는 그래픽 편집기 오른쪽에 위치한 “Property Window” 에서 설정한다.


아래 그림은 Line Object 생성 및 속성 설정 방법을 나타낸다.





아래 표는 Ellipse Object의 Property 항목 및 기능에 대한 설명을 나타낸다.


분류

항목

기능

Property

id

고유 식별자 설정

visibility

화면 표시 여부 설정

lock

편집 모드 시 선택 여부 설정

Brush

fill

채우기 색상 설정

fill-opacity

면 색상 투명도 설정

Pen

stoke

외곽선 색상 설정

stoke-opacity

외곽선 투명도 설정

불투명 : 1.0 투명 : 0.0

stoke-width

외곽선 두께 설정

stoke-linecap

외곽선 끝 모양 설정

stoke-linejoin

외곽선의 꼭지점 모양 설정

stoke-dasharray

외곽선 패턴 설정

패턴 입력의 구분자는 ‘ , ’이고 첫 패턴은 실선 두 번째는 공백의 순으로 반복

Layout

cx

센터 포인터 X 좌표 설정

cy

센터 포인터 Y 좌표 설정

rx

X 축 반지름 크기 설정

ry

Y 축 반지름 크기 설정

Transform

translate-x

원점으로부터 이동한 거리 X 좌표 설정

translate-y

원점으로부터 이동한 거리 Y 좌표 설정

rotate

회전 값 설정

scale-x

크기 변경 X 좌표 설정

scale-y

크기 변경 Y 좌표 설정

center-x

센터 포인터의 X 좌표 설정

center-y

센터 포인터의 Y 좌표 설정

Style & Class

style

외부 스타일 정의

class

내부 스타일 정의





enuSpace professional 2016 기준

enuSpace 그래픽 저작기 원 객체(Circle Object - SVG)



그래픽 편집기에서 Circle Object 생성 방법은 아래와 같다.

1. Circle Object를 생성할 Picture를 선택한다.

2. 그래픽 편집기 상단의 메뉴에서 “Circle” 버튼을 클릭한다.

3. “Circle” 버튼을 클릭하고 선택한 Picture에서 원하는 위치 및 길이만큼 마우스로 Drag하여 Circle Object를 생성한다.

4. 생성된 Circle Object는 그래픽 편집기 오른쪽에 위치한 “Property Window” 에서 설정한다.

아래 그림은 Circle Object 생성 및 속성 설정 방법을 나타낸다.




아래 표는 Circle Object의 Property 항목 및 기능에 대한 설명을 나타낸다.


분류

항목

기능

Property

id

고유 식별자 설정

visibility

화면 표시 여부 설정

lock

편집 모드 시 선택 여부 설정

Brush

fill

채우기 색상 설정

fill-opacity

면 색상 투명도 설정

Pen

stoke

외곽선 색상 설정

stoke-opacity

외곽선 투명도 설정

불투명 : 1.0 투명 : 0.0

stoke-width

외곽선 두께 설정

stoke-linecap

외곽선 끝 모양 설정

stoke-linejoin

외곽선의 꼭지점 모양 설정

stoke-dasharray

외곽선 패턴 설정

패턴 입력의 구분자는 ‘ , ’이고 첫 패턴은 실선 두 번째는 공백의 순으로 반복

Layout

cx

현재 위치의 X 좌표 설정

cy

현재 위치의 Y 좌표 설정

r

반지름 값 설정

Transform

translate-x

원점으로부터 이동한 거리 X 좌표 설정

translate-y

원점으로부터 이동한 거리 Y 좌표 설정

rotate

회전 값 설정

scale-x

크기 변경 X 좌표 설정

scale-y

크기 변경 Y 좌표 설정

center-x

센터 포인터의 X 좌표 설정

center-y

센터 포인터의 Y 좌표 설정

Style & Class

style

외부 스타일 정의

class

내부 스타일 정의



enuSpace professional 2016 기준

enuSpace 그래픽 저작기 폴리곤 객체(Polygon Object - SVG)




그래픽 편집기에서 Polygon Object 생성 방법은 아래와 같다.

1.      Polygon Object를 생성할 Picture를 선택한다.

2.      그래픽 편집기 상단의 메뉴에서 “Polygon” 버튼을 클릭한다.

3.      “Polygon” 버튼을 클릭하고 선택한 Picture에서 원하는 위치 및 길이만큼 마우스로 클릭하여 Polygon Object를 생성한다.

4.      생성을 완료하려면 “ESC” 버튼을 클릭하여 완료할 수 있다.

5.      생성된 Polygon Object는 그래픽 편집기 오른쪽에 위치한 “Property Window” 에서 설정한다.


아래 그림은 Polygon Object 생성 및 속성 설정 방법을 나타낸다.




아래 표는 Polygon Object Property 항목 및 기능에 대한 설명을 나타낸다.


분류

항목

기능

Property

id

고유 식별자 설정

visibility

화면 표시 여부 설정

lock

편집 모드 시 선택 여부 설정

Brush

fill

채우기 색상 설정

fill-opacity

면 색상 투명도 설정

Pen

stoke

외곽선 색상 설정

stoke-opacity

외곽선 투명도 설정

불투명 : 1.0 투명 : 0.0

stoke-width

외곽선 두께 설정

stoke-linecap

외곽선 끝 모양 설정

stoke-linejoin

외곽선의 꼭지점 모양 설정

stoke-dasharray

외곽선 패턴 설정

패턴 입력의 구분자는 ‘ , ’이고 첫 패턴은 실선 두 번째는 공백의 순으로 반복

Layout

points

Polygon의 형상되는 점 좌표 설정

Transform

translate-x

원점으로부터 이동한 거리 X 좌표 설정

translate-y

원점으로부터 이동한 거리 Y 좌표 설정

rotate

회전 값 설정

scale-x

크기 변경 X 좌표 설정

scale-y

크기 변경 Y 좌표 설정

center-x

센터 포인터의 X 좌표 설정

center-y

센터 포인터의 Y 좌표 설정

Style & Class

style

외부 스타일 정의

class

내부 스타일 정의



enuSpace professional 2016 기준

enuSpace 그래픽 저작기 라인 객체(Polyine Object - SVG)


그래픽 편집기에서 Polyline Object 생성 방법은 아래와 같다.

1. Polyline Object를 생성할 Picture를 선택한다.

2. 그래픽 편집기 상단의 메뉴에서 “Polyline” 버튼을 클릭한다.

3. “Polyline” 버튼을 클릭하고 선택한 Picture에서 원하는 위치 및 길이만큼 마우스로 클릭하여 Polyline Object를 생성한다.

4. 생성을 완료하려면 “ESC” 버튼을 클릭하여 완료할 수 있다.

5. 생성된 Polyline Object는 그래픽 편집기 오른쪽에 위치한 “Property Window” 에서 설정한다.

아래 그림은 Polyline Object 생성 및 속성 설정 방법을 나타낸다.




Polyline Object Property List

분류

항목

기능

Property

id

고유 식별자 설정

visibility

화면 표시 여부 설정

lock

편집 모드 시 선택 여부 설정

Pen

stoke

외곽선 색상 설정

stoke-opacity

외곽선 투명도 설정

불투명 : 1.0 투명 : 0.0

stoke-width

외곽선 두께 설정

stoke-linecap

외곽선 끝 모양 설정

stoke-linejoin

외곽선의 꼭지점 모양 설정

stoke-dasharray

외곽선 패턴 설정

패턴 입력의 구분자는 ‘ , ’이고 첫 패턴은 실선 두 번째는 공백의 순으로 반복

Layout

points

Polyline의 형상되는 점 좌표 설정

Transform

translate-x

원점으로부터 이동한 거리 X 좌표 설정

translate-y

원점으로부터 이동한 거리 Y 좌표 설정

scale-x

크기 변경 X 좌표 설정

scale-y

크기 변경 Y 좌표 설정

center-x

센터 포인터의 X 좌표 설정

center-y

센터 포인터의 Y 좌표 설정

Style & Class

style

외부 스타일 정의

class

내부 스타일 정의


enuSpace professional 2016 기준

enuSpace 그래픽 저작기 라인 객체(Line Object)


그래픽 편집기에서 Line Object 생성 방법은 아래와 같다.

1. Line Object를 생성할 Picture를 선택한다.

2. 그래픽 편집기 상단의 메뉴에서 “Line” 버튼을 클릭한다.

3. “Line” 버튼을 클릭하고 선택한 Picture에서 원하는 위치 및 길이만큼 마우스로 Drag하여 Line Object를 생성한다.

4. 생성된 Line Object는 그래픽 편집기 오른쪽에 위치한 “Property Window” 에서 설정한다.

아래 그림은 Line Object 생성 및 속성 설정 방법을 나타낸다.




Line Object Property List


분류

항목

기능

Property

id

고유 식별자 설정

visibility

화면 표시 여부 설정

lock

편집 모드 시 선택 여부 설정

Pen

stoke

선 색상 설정

stoke-opacity

선 투명도 설정

불투명 : 1.0 투명 : 0.0

stoke-width

선 두께 설정

stoke-linecap

선 끝 모양 설정

stoke-linejoin

선의 꼭지점 모양 설정

stoke-dasharray

선 패턴 설정

패턴 입력의 구분자는 ‘ , ’이고 첫 패턴은 실선 두 번째는 공백의 순으로 반복

Layout

x1

객체 그리는 시작 x 좌표 설정

y1

객체의 그리는 시작 y 좌표 설정

x2

객체 그리는 끝 x 좌표 설정

y2

객체의 그리는 끝 y 좌표 설정

Transform

translate-x

원점으로부터 이동한 거리 X 좌표 설정

translate-y

원점으로부터 이동한 거리 Y 좌표 설정

scale-x

크기 변경 X 좌표 설정

scale-y

크기 변경 Y 좌표 설정

center-x

센터 포인터의 X 좌표 설정

center-y

센터 포인터의 Y 좌표 설정

Style & Class

style

외부 스타일 정의

class

내부 스타일 정의



enuSpace professional 2016 기준

enuSpace Picture page 속성 설정



Picture Layout은 현재 활성화된 Picture의 크기 및 배경색, 외곽선 색 등을 설정할 수 있으며, 생성된 Picture의 화면 이동을 지원한다. Page Layout은 그래픽 편집기 상단의 Tab 메뉴에서 “Page Layout” 메뉴를 클릭하면 나타난다.

아래 그림은 Picture Layout을 설정하는 메뉴를 나타낸 것이다.





Picture의 화면 크기 설정은 아래와 같은 방법으로 설정한다.

1. 편집기 상단의 “Page Layout” 메뉴를 클릭하고, 나타나는 하위 메뉴에서 “Canvas Size”버튼을 클릭한다.

2. “Canvas Size”버튼을 클릭하면 편집기 화면 중앙에 “Canvas Size” 이름의 다이얼로그 화면이 나타나며, Picture 화면 크기 설정은 Combo Box로 제공되는 화면 크기 중 하나를 선택하여 “확인” 버튼을 클릭하여 설정한다.

3. 사용자 정의로 Picture 화면 크기를 설정하려면 Width 와 Height에 원하는 크기를 설정하고 “확인” 버튼을 클릭하여 설정한다. 

4. Picture 화면의 가로 및 세로 설정은 크기 설정 오른쪽에 위치한 “Portrait”, “Landscape” 중 하나를 선택하고 “확인” 버튼을 클릭하여 설정한다.


아래 그림은 Picture Layout에서 페이지 크기를 설정하는 방법을 나타낸 것이다.




Picture의 화면 배경색 변경은 아래와 같은 방법으로 설정한다.
1. 편집기 상단의 “Page Layout” 메뉴를 클릭하고, 나타나는 하위 메뉴에서 “Page Color”버튼을 클릭한다.
2. “Page Color” 버튼을 클릭하면 하위로 색 설정을 위한 Palette가 나타나고, 더 많은 색을 원한다면 “More Fill Colors” 메뉴를 클릭한다. 
3. “More Fill Colors” 메뉴를 클릭 하면 그래픽 편집기 화면 중앙에 “색” 이라는 다이얼로그 화면이 나타나며, 여기서 원하는 색을 선택하여 “확인” 버튼을 클릭하여 배경색을 변경한다.
아래 그림은 Picture Layout에서 배경색을 변경하는 방법을 나타낸 것이다.



Picture의 Border 변경은 아래와 같은 방법으로 설정한다.
1. Border의 색을 변경하고자 한다면 편집기 상단의 “Page Layout” 메뉴를 클릭하고, 나타나는 하위 메뉴에서 “Border Color”버튼을 클릭하여 Palette에서 원하는 색을 선택하여 변경한다.
2. Border의 선 크기를 변경하고자 한다면 편집기 상단의 “Page Layout” 메뉴를 클릭하고, 나타나는 하위 메뉴에서 “Border Weight”버튼을 클릭하여 선 크기 종류 중 하나를 선택하여 변경한다.
3. Border의 선 모양을 변경하고자 한다면 상단의 “Page Layout” 메뉴를 클릭하고, 나타나는 하위 메뉴에서 “Border Dashes”버튼을 클릭하여 선 모양 중 하나를 선택하여 변경한다.
아래 그림은 Picture Layout에서 Border를 변경하는 방법을 나타낸 것이다.




Picture의 화면이동은 아래와 같은 방법으로 실행한다.

1.      이전 Picture 화면으로 이동하고자 한다면 편집기 상단의 “Page Layout” 메뉴를 클릭하고, 나타나는 하위 메뉴에서 “Prev”버튼을 클릭한다.

2.      다음 Picture 화면으로 이동하고자 한다면 편집기 상단의 “Page Layout” 메뉴를 클릭하고, 나타나는 하위 메뉴에서 “Next”버튼을 클릭한다

아래 그림은 Picture Layout에서 Picture의 화면 이동 방법을 나타낸 것이다.





이전 Picture 화면으로 이동은 현재 활성화 되어 있는 창에 이전파일을 보여주고 없으면 현재 파일에 머물러 있게 된다. 단축버튼은 “PgUp” 버튼이다. 페이지의 순서는 현재 창에 열려있는 순서가 아니라 파일 리스트 상의 순서이며, 현재 활성화 되어 있는 창에 보여주는 것이므로 이전에 열린 창이 있으면 중복으로 열려있게 된다.

다음 Picture 화면으로 이동은 현재 활성화 되어 있는 창에 다음파일을 보여주고 없으면 현재 파일에 머물러 있게 된다. 단축버튼은 “PgDn” 버튼이다. 페이지의 순서는 현재 창에 열려있는 순서가 아니라 파일 리스트 상의 순서이며, 현재 활성화 되어 있는 창에 보여주는 것이므로 이전에 열린 창이 있으면 중복으로 열려있게 된다.


enuSpace professional 2016 기준

enuSpace 편집기 단축 명령어 기능


그래픽 편집기에서는 객체 편집 시 사용되는 Common Edit Command를 제공하며, 종류는 Copy, Cut, Paste, Delete, Select를 제공한다.

Copy Paste를 하기 전에 선택한 객체를 메모리에 복사하여 놓는다. 키보드 단축키로는 “Ctrl + C”를 눌러 할 수 있고 편집기 화면에서는 아래 그림의 3번 항목을 클릭하여 실행할 수 있다. 객체의 선택은 선택하고자 하는 객체를 영역을 드래그 함으로써 영역 내에 있는 모든 객체를 선택하는 방법과 원하는 객체를 Shift+클릭을 함으로써 추가 할 수 있다.

Cut Paste를 하기 전에 선택한 객체를 메모리에 복사하여 놓고 원래의 선택된 객체 또는 객체들을 삭제한다. 키보드 단축키는 “Ctrl + X”를 눌러 할 수 있으며, 편집기 화면에서는 아래 그림의 1번 항목을 클릭하여 실행할 수 있다. 객체의 선택은 선택하고자 하는 객체를 영역을 드래그 함으로써 영역 내에 있는 모든 객체를 선택하는 방법과 원하는 객체를 Shift+클릭을 함으로써 추가 할 수 있다.

PasteCopy 또는 Cut를 사용하여 메모리에 저장된 객체를 새로운 객체로 생성하는 것이다. 키보드 단축키는 “Ctrl + V”를 눌러 할 수 있고 편집기 화면에서는 아래 그림 1번 항목을 클릭하여 실행할 수 있다.

Delete는 선택한 객체를 삭제하며 키보드 단축키는 “Delete” 버튼을 눌러 실행할 수 있고, 편집기 화면에서는 4번 항목으로 실행할 수 있다.

Select는 객체를 선택할 때 사용되며 편집기에서는 단일 선택, 전체 선택 및 선택해제 기능을 지원한다. 전체선택은 Picture에 있는 모든 객체를 선택하며, 키보드 단축키는 “Ctrl + A”를 눌러 할 수 있다. 선택해제는 Picture에서 객체가 없는 빈 공간을 클릭함으로써 해제 할 수 있다.


기능

단축키

설명

Copy

Ctrl + C

선택한 객체를 복사한다

Cut

Ctrl + X

선택한 객체를 잘라낸다.

Paste

Ctrl + V

복사 및 잘라낸 객체를 붙여 넣는다.

Delete

Delete

선택한 객체를 삭제한다.

Select

Shift + Click

Ctrl + A

객체를 선택하는 기능으로 단일 및 선택 추가, 전체 선택 기능을 제공한다.



아래 그림은 편집기에서 제공하는 Common Edit Command의 위치를 나타낸다.








'enuSpace for moon(2016) > Tutorial Guide' 카테고리의 다른 글

enuSpace 그래픽 저작기 라인 객체(Line Object - SVG)  (0) 2016.01.14
enuSpace Picture page 속성 설정  (0) 2016.01.13
Style 관리  (0) 2016.01.11
Global 관리  (0) 2016.01.11
Logic Symbol 관리  (0) 2016.01.11

enuSpace professional 2016 그래픽 편집기와 루아 스크립트



그래픽 편집기는 그래픽에 대한 속성들과 사용자 정의 전역 및 지역 변수 들을 가지고 있으며 현재의 값을 Lua Script에 전달하고 Lua Script에서 함수의 실행에 의해 바뀐 값을 그래픽 편집기의 그래픽 속성이나 전역 또는 지역변수에 전달하여 값을 변경시킨다. 모든 값을 변경시키는 행위는 프로그램이나 사용자의 마우스 이벤트 등에 의해 발생되며 현재 값의 전달 및 변경된 값의 반환이 함수의 실행 전과 실행 후에 각각 발생한다. 아래 그림은 그래픽 편집기에서 객체의 사용자 정의 함수인 GetColor()에 대한 예시를 나타낸 것이다.





아래 그림은 그래픽 편집기에서 객체의 사용자 정의 함수인 onmousedown()에 대한 예시를 나타낸 것이다.




Lua Script 내부에서만 실행되는 변수 및 함수는 별도로 User Interface가 지원되며Lua Script내부에서는 이벤트 또는 사용자 함수에 의해서 사용 가능하다.



그래픽 편집기에서 Lua Script를 사용하는 방법은 아래와 같다.

1. Lua Script 편집 창을 연다. 

2. Lua Script 편집 다이얼로크 창에서 편집된 내용을 Lua Script에 등록한다.

3. Lua Script에 등록된 변수의 값을 확인하거나 새로운 값을 할당하는 스크립트를 작성한다.

4. 3번 항목에서 작성된 스크립트를 Lua Script에서 실행한다.

5. COLOR 테이블을 Lua Script에 작성하는 스크립트.

6. COLOR 테이블에서 Red 필드.

7. 4번 항목에서 실행한 결과 값의 표현.

그래픽 편집기에서는 전역변수 및 각 객체의 속성 등 다양한 구조적 변수를 가지고 있으며 이러한 구조적 변수를 Lua State에 그대로 가지지 않는다. 모든 값의 변경은 Lua Script에 등록된 함수의 실행에 의해 이루어 지며, 사용되는 변수와 함수 스크립트는 Lua Script에 테이블을 생성하여 변수 및 함수로 등록한다. 이벤트 및 프로그램에 의해 실행되는 함수는 각 함수에 해당하는 Lua Script 테이블과 1:1 대응 관계에 있으며 변수의 인터페이스나 반환 값이 없는 경우 그래픽 편집기 함수는 Lua State에 등록되지 않는다. 아래 그림은 그래픽 편집기의 데이터 구조를 나타낸 것이다.





아래 그림은 Lua Script데이터 구조에 대해 나타낸 것이다.











enuSpace profession 2016 - Sample Project


enuSapce(엔유스페이스) professional 2016을 이용한 Sample 입니다. 

첨부 파일 다운로드

enuSpace_sample.zip


Sample Project 실행 영상



enuSpace(엔유스페이스) Runtime을 이용한 기동하면.


enuSpace Sample Project 설명.


1. 상단 로고 이미지 속성 변경(visibility)을 이용한 동적 효과 적용하기. 

상단 로고를 특정 시간에 맞추어 변경하기 위한 스크립트를 삽입합니다. 

각 개별 이미지 로고 6개를 불러옵니다.

각 객체의 이벤트 함수 ontaskview() 함수에 아래와 같이 스크립트를 작성합니다.

g_fTimer는 전역변수로 선언하고, 픽쳐단의 ontask()함수에 0.1단위로 증분수행 스크립트 추가.

function ontaskview()

if (math.floor(g_fTimer) % 6 == 5) then

visibility = true

else

visibility = false

end

end 

각 객체는 시간에 따라서 자신이 visibility 속성을 변경함으로서, 다이나믹한 그래픽 효과를 표현합니다.


2. 마우스 오버, 아웃, 다운 이벤트 기능

Main feature 항목의 글에 마우스 오버시 색상 변경과 다운 이벤트에 따라서 화면 페이지 변경을 수행합니다. 


선택한 텍스트 객체에 아래와 같이 스크립트를 추가합니다. 

택스트의 색상값을 변경하는 스크립트와 마우스 다운시 화면 전환을 수행하는 함수를 호출합니다.

function onmouseover()

stroke = string.format("rgb(60,170,60)")

end


function onmouseout()

stroke = string.format("rgb(0,0,0)")

end


function onmousedown()

ChangePicture("window", "picture\\simulation.svg")

end


3. 이웃 객체의 속성 핸들링을 통한 Tool Tip 보여지기 기능

ToolTip 객체를 Group 설정을 한 후 Group 객체의 고유한 아이디를 설정합니다. ID_TOOLTIP

텍스트 객체에 마우스 오버시 ToolTip 객체의 Visibility의 속성을 변경하는 스크립트를 추가합니다. 

function onmouseover()

stroke = string.format("rgb(60,170,60)")

ID_TOOLTIP.visibility = true

end


function onmouseout()

stroke = string.format("rgb(0,0,0)")

ID_TOOLTIP.visibility = false

end


function onmousedown()

ChangePicture("window", "picture\\graphic_component.svg")

end

텍스트 객체에 마우스 오버 및 아웃시 동적 표현을 수행합니다.


4. 로직 심볼 제작 기능

로직 심볼은 생성하는 방법은 Project Explorer를 이용하여, Library 하위에 Logic 디렉토리의 팝업 메뉴를 이용하여 추가하여 제작합니다.

AND Gate를 생성하기 위한 AND Gate를 그림을 드로잉합니다. Connection Pin 객체를 이용하여 인터페이스 변수를 생성합니다. 생성된 핀객체의 이름을 변수의 타입과 이름을 입력합니다.

추가된 객체를 이용하여 연산을 수행하기 위한 스크립트를 작성합니다.


ontaskview()이벤트 함수는 동적인 화면 연출에 사용되는 함수이며, ontask()이벤트 함수는 로직 테스크의 연산 내용을 추가합니다.

function ontaskview()

if(input1 == false) then

ID_INPUT1_LINE.stroke = string.format("rgb(255,0,0)")

elseif(input1 == true) then

ID_INPUT1_LINE.stroke = string.format("rgb(0,255,0)")

end

if(input2 == false) then

ID_INPUT2_LINE.stroke = string.format("rgb(255,0,0)")

elseif(input2 == true) then

ID_INPUT2_LINE.stroke = string.format("rgb(0,255,0)")

end


if(output == false) then

ID_OUTPUT_LINE.stroke = string.format("rgb(255,0,0)")

elseif(output == true) then

ID_OUTPUT_LINE.stroke = string.format("rgb(0,255,0)")

end


end


function ontask()

if(input1 == true and input2 == true) then

output = true

else

output = false

end

end


사용자 정의 logic 심볼을 제작후, Picture단에서 Transfer Line을 이용하여 시뮬레이션 알고리즘을 구현합니다. 


5. logic simulation 기능.

아래 그림과 같이 simulation 페이지를 구성합니다. 

기 제작된 로직 심볼 (Logic Symbol)을 이용하여 화면에 드로잉을 수행합니다. 각 logic 심볼간에는 Transfer line을 이용하여 연결을 수행합니다.

실제 동작시에는 연결된 객체간에는 연산 결과를 전달합니다. 로직 객체를 더블클릭하여 로직의 변수값을 변경하여 시뮬레이션을 수행합니다.


6. 기초객체 및 path 객체를 이용하여 화면 드로잉 기능.

enuSpace pro 2016은 SVG(Scalable Vector Graphics) 포맷과 lua script language를 이용합니다. 

enuSpace 편집기를 이용하여 다양한 객체를 생성하여 적용합니다.


7. 다이나믹 HMI 심볼, Zoom Control을 이용한 화면 네비게이션 기능.

다이나믹 Zoom Control은 HMI Symbol로 제작되어 동작을 수행합니다. 다양한 컴포넌트를 사용자가 제작하거나 공유하여 사용할 수 있습니다. 

샘플의 ZoomControl은 마우스 다운시 스크립트가 동작을 수행하여 자신의 패널 사이즈 맞추어 Zoom 기능을 제공합니다.

Zoom 기능을 위한 ZoomControl 라이브러리 객체의 멤버변수 속성을 지정합니다.  


화면 Navigation을 위하여 Arrow 객체의 마우스 다운스 ZoomControl의 마우스 다운 이벤트를 호출하여 이동하고자 하는 ZoomControl를 호출합니다.

function onmousedown()

ID_PANEL1.onmousedown()

end





8. enuSpace SDK를 이용한 응용 프로그램 개발 

enuSpace SDK는 C++ 응용 프로그램에 라이브러리와 해더만을 추가함으로서 손쉽게 탑재가 가능합니다.

* enuSpace SDK의 API를 이용하여 enuSpace pro 2016 편집기와 유사한 형태의 응용 프로그램을 개발할 수 있습니다.




'enuSpace Reference > enuSpace Sample' 카테고리의 다른 글

Using enuSpace develope working video (demo)  (0) 2016.01.04

lua script의 기본 문법


Lua Script의 기본 문법 중 변수 생성 규칙은 아래와 같다.

1. 숫자로 시작하지 않는 영문자, 숫자, 밑줄의 조합으로 생성할 수 있으나 Lua Script에서 사용하는 예약어 (and, break, do, else, elseif, end, false, for, function, if, in, local, nil, not, or, repeat, return, then, true, until, while 등) 는 피해야 한다 

2. Lua Script는 대소문자를 구분하며, and는 예약어 이지만 And, AND 등은 서로 다른 식별자이다. 

Lua Script의 주석 처리는 한 줄 주석은 "--"으로 시작하여 EOL에서 끝나며, 블록 주석은 "--[[" 으로 시작하여 “]]”에서 끝난다.

Lua Script의 변수는 적용 영역에 따라 지역변수와 전역변수를 가지며, 지역변수는 local로 변수 앞에 선언해 주거나 제어문 안에서 사용된 변수에 해당하고, 전역변수는 어디에서는 호출 가능한 변수이다. 아래 표는 Lua Script에서 사용되는 자료형을 정리한 것이다.


Lua Script 자료형

자료형

설명

예시

nil

()의 값을 갖는 자료형이다.

논리연산에서의 nil은 거짓이고, 전역변수 및 테이블 키에서의 nil은 전역변수 및 테이블에서의 키는 버려진다.

a=nil

if a then --거짓이므로

        str = "I have many friends."

else

        str = "I have few friends." --실행.

end

boolean

true false값 만을 갖는다. 0, 1 과 같이 수치로 변환되지 않는다.

a = true or false

number

double형 수치이다. 정수나 실수를 구분하지 않는다

a = 4

b = 23.0

c = 2.3e-1

d = 2.3E5

string

"또는 ' 으로 감싼다. 긴 문자열은 [[...]]을 사용하다. string은 편집이 되지 않으며 오로지 새로운 문자열을 생성한다.  string은 보조 라이브러리를 가지고 있다.

str = "white"

varName = "Rect1"

value = 20

str = string.format("%s = %d", varName,value)

str = string.lower(varName)

coroutine

동시에 어떤 일을 수행시킬 때 사용한다. (thread)

co = coroutine.create

                     (function ()

           for i=1,10 do

             print("co", i)

             coroutine.yield()

           end

         end)

coroutine.resume(co)

coroutine.status(co)

userdata

Lua에서 배열을 표시하는 방법으로 Lua에서 정의되지 않은 raw 메모리를 생성한다.

void *lua_newuserdata (lua_State *L, size_t size)를 사용한다.

static int newarray (lua_State *L)

              {

      int n = luaL_checkint(L, 1);

      size_t nbytes = sizeof(NumArray) + (n - 1)*sizeof(double);

      NumArray *a = (NumArray *)lua_newuserdata(L, nbytes);

      a->size = n;

      return 1;  /* new userdatum is already on the stack */

    }

table

Lua의 테이블은 복합 자료형이면서도 중요한 역활을 한다. key-value가 아닌 배열이나 객체 프로그래밍을 할 때 필요하기 때문이다. 전체적으로 {}로 감싸며 key []로 감싼 형태이다. 배열도 테이블이다. key-value형식이 아닌 우리가 흔히 하는 요소가 한 줄로 배치된 모습이다. 배열의 처음 시작 인덱스는 1부터 시작하며 0인덱스를 사용하려면 사용자가 직접 만들어 주어야 한다.

COLOR = {Red = "rgb(255,0,0)",Green = "rgb(0,255,0)",Yellow = "rgb(0,0,255)"}

T = {x = 10, y=20 ,z=30, func = function () return a end}

T2={10,20,30}

COLOR.Red --> rgb(255,0,0)

COLOR["Red"]  --> rgb(255,0,0)

T["x"] -->10

T2[1]  -->10

Lua Script에서는 다른 Script 언어와 같이 치환, 산술, 관계, 논리 연산자 등과 같은 연산자를 제공하며, 아래 표는 Lua Script에서 사용되는 연산자에 대해 설명한 것이다.


Lua Script 연산자

연산자

연산 기호

예시

치환 연산자

=

A = 10

산술 연산자

+, -, *, /, %, ^(자승)

A = 10

B = A*10

관계 연산자

>, >=, == , <=, <, ~=(같지않음)

if(A>B)

논리 연산자

and, or, not

if(A>B and B<5)

기타 연산자

..(문자열 연결),#(문자열 혹은 테이블 등의 크기 반환)

str1 = "ab "

str2 = "efgh"

str3 = str1..str2

str3         -->  "ab efgc"

COLOR = {Red = "rgb(255,0,0)",Green = "rgb(0,255,0)",Yellow = "rgb(0,0,255)"}

A = #COLOR

A                    -->  3


아래 표는 Lua Script 연산자의 우선 순위를 나타낸 것이다.

Lua Script 연산자 우선순위

연산자

비고

^

오른쪽 우선 연산자

-, not, #

- 단항연산자(부호) 의미

*, /, %

- 이항연산자(빼기 연산) 의미

+, -

 

..

오른쪽 우선 연산자

>, <, >=, <=, ==, ~=

 

and

 

or

 


Lua Script에서는 다른 Script 언어와 같이 if, for, while 등과 같은 제어문을 제공하며, 아래 표는 Lua Script에서 사용되는 제어문을 정리한 것이다.


Lua Script 제어문

제어문

설명

예시

if

조건부 실행을 위한 if문은 기본구조는 "if 조건 then 실행문 end"의 구조이다.

- if 조건 then

  statement

elseif 조건 then

  statement

else

  statement

end

switch

Lua Script에는 switch 문이 없으므로 switch문 대신에 연속 비교문

if 조건1 then

실행문

elseif 조건2 then 

실행문

elseif 조건3 then 

실행문

elseif 조건4 then 

실행문

.elseif 조건n then 

실행문

else

실행문

end

While

조건이 참이면 무한 반복을 하는 while 문은 C C++ 처럼 먼저 조건을 검사하고 조건이 참이면 do 에서 end까지의 실행 문을 실행한다. 조건이 거짓이 되거나 break 문에 의 탈출할 수 있다.

while 조건 do

   statement

 end

repeat, until

조건이 참이 될 때까지 반복해서 실행하는 repeat 문은 repeat에서 until까지 조건이 거짓이면 무한 반복 실행한다. while 이나 for문과는 다르게 repeat에서 until까지 무조건 한번은 실행한다. C C++ 에서 "do 실행문 while(조건)"과 유사하다. 조건이 참이 되거나 break 문에 의해 탈 출할 수 있다.

repeat

   statement

 until 조건

for

for문은 수치 for 문과 일반 for 문의 두 가지 사용방법으로 사용하며 수치 for 문은 시작조건에서 종료조건이 될 때까지 step 만큼씩 더하면서 do 에서 end까지 실행한다. 제어변수는 반복문 안에서만 사용가능하며 반복문을 벗어나면 인식되지 않는다. break에 의해 탈출 할 수 있다. 일반 for 문은 반복자함수에서 반환된 모든 값을 실행한다. 배열의 값을 모두 실행하기 위해서 반복자 함수 ipairs 가 제공되고 반복될 때 마다 색인과 값을 얻는다. "for i, v in ipairs(a) do 실행문 end"에서 a는 배열이름 이고 i는 색인, v는 값이다.

for 시작조건, 종료조건, step do

   statement

 end

 

for 반복자 do

   statement

 end

break

while, for, repeat 문을 탈출하는데 사용한다.

for 시작조건, 종료조건, step do

   statement

   break

 end

return

값을 되돌리거나 함수를 종료할 때 사용한다.

for 시작조건, 종료조건, step do

   statement

   return

 end


http://www.lua.org/



+ Recent posts