원격 통신 기능 확장

시리우스2 에서는 기본적으로 시리얼및 TCP/IP 통신을 통한 원격 제어를 IRemote 란 인터페이스를 통해 제공하고 있습니다. 이를 사용자가 원하는 프로토콜로 변경할 수 있도록 v.1.40 에서는 editor_remote 데모 프로젝트가 추가되었습니다. 이 데모 프로젝트에는 TCP/IP 서버로 동작하는 예제 코드가 포함되어 있으며, 아울러 통신을 통한 레시피 파일 조회 및 변경, 개체 및 펜 속성 조회 및 변경, 가공 시작 중지등의 다양한 예제가 포함되어 있습니다.

테스트를 위해 editor_remote 프로젝트를 실행하고 아래와 같이 나선(Spiral) 개체를 추가해 줍니다. 또한 통신을 통한 원격 제어가 가능하도록 원격 모드를 LOCAL 에서 REMOTE 로 변경합니다. (REMOTE 변경은 Remote 탭에서 Remote 를 선택하거나 화면 우측 하단의 LOCAL 아이콘을 더블 클릭합니다.)

나선(Spiral) 개체를 추가한 모습

이제 통신을 연결합니다. editor_remote 에서는 TCP/IP 서버로 동작하며, 클라이언트의 연결을 대기하는 포트는 기본값(50001)을 사용하였습니다.

TCP 클라이언트로 연결 후 가공 시작(Marker, Start) 명령 전송

위에서는 “Marker,Start;” 명령을 통해 가공이 시작됩니다. 데모 프로젝트에서는 이 밖에 아래와 같이 다양한 명령들이 제공됩니다.

// Example commands are
1. "Recipe;", "Recipe,FileName;" 
2. "Offset;", "Offset,Count(s),X,Y,Z,AngleZ,...;" 
3. "Marker,Start;", "Marker,Stop;", "Marker,Reset;"
4. "Laser,On;", "Laser,Off;"
5. "Entity,EntityName,Properties;", "Entity,EntityName,PropName;", "Entity,EntityName,PropName,PropValue;"
6. "Pen,PenName,Properties;", "Pen,PenName,PropName;", "Entity,PenName,PropName,PropValue;" 
7. "FieldCorrection,Rows,Cols,Interval,X,Y,...;" 
8. "Status;"

이를 응용하며 사용자가 원하는 다양한 기능의 확장 명령을 추가, 변경해 사용이 가능합니다.


시리우스2 내부에서 반올림이 필요한 부동 소수점 데이타에 대한 정밀도는 기본적으로 1um(0.001mm) 으로 처리됩니다. 때문에 아래와 같이 개체의 이동(Model translate), 크기(Model scale), 회전(Model rotate) 등의 정보가 있는 행렬 부분을 보면 소수점 3자리까지 표현됩니다.

기본적으로 소수점 3자리까지 표현됨
마커(Marker) 탭에 처리되는 소수점 3자리 정밀도

이 같은 기본적인 부동 소수점 표현에 대한 정밀도를 더욱 높히고자 한다면, 아래와 같이 라이브러리 초기화전에 DecimalPrecision 설정값을 변경해 주어야 합니다. 아래에서는 소수점 6 자리의 정밀도로 변경한 것으로, 기존 3(0.001 mm) 에서 변경 6(0.000001 mm) 된 정밀도로 표현됩니다.

SpiralLab.Sirius2.Config.DecimalPrecision = 6;

// Initialize sirius2 library
EditorHelper.Initialize();
...
소수점 6 자리로 변경한 후 실행한 모습
소수점 6 자리로 변경한 후 실행한 모습
소수점 6 자리로 변경한 후 실행한 모습

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top