엔티티 분할및 해치 강화 – v1.7.3

  1. 분할 (Divide)

위와 같이 가져오기를 통해 불러온 DXF 개체의 경우 스캐너 의 가공 가능영역을 크게 벗어날 경우 몇개의 영역으로 분할한 후 모션 구동 장치가 매 위치로 이동하며 가공(Divide and Conquer)하는 방법이 필요합니다.

이 경우 우면 대면적의 개체를 분할할 수 있어야 합니다. 시리우스 편집기에서 “Divide” 버튼을 누르면 아래와 같은 팝업 창이 나타납니다.

Divide 창 화면

입력값으로는 몇개의 구역(Cell)으로 나눌지 그리고 각 구역의 크기(가로*세로)를 각각 입력합니다. 중첩거리(Overlap Length)는 분할될때 경계부분을 좀더 크게(양수값) 혹은 작게(음수값) 만드는 역할을 합니다.

또한 기준점(Reference Location)의 경우 좌표 원점(Origin)으로 실행할지 아니면 선택된 개체의 중심 위치를 기준으로 할지를 선택할 수 있습니다.

각 값들을 변경하면 자동으로 노란색 사각형이 표시되어 실제 나누어지는 구역(Cell)들을 실시간으로 확인 가능합니다.

나누어진 영역에 포함된 개체들

적절한 구역을 지정후 위와 같이 실제 분할처리된 것을 확인할 수 있습니다.

5개의 가로 구역(Cell)들로 분할 하는 모습
분할된후 개별 구역들을 확인하는 모습

현재 1.7.3 버전의 분할 기능은 원, 사각형, 폴리라인(LWPolyline)그리고 DXF, HPGL 과 같은 일부 개체들에 한정됩니다.

2. 해치 모드 추가

이전 버전까지는 폐곡선에 지정하는 해치(Hatch)의 경우 그 종류가 Line 한가지만 지원되었는데, 이를 두개의 선을 교차하는 모드 (Cross Line)를 추가로 지원합니다.

Cross Line 모드를 선택하고 두번째 회전값(Angle2)을 지정
두번째 회전값(Angle2)에 임의의 값을 입력한 모습
트루타입 개체에 Cross Line 해치모드를 적용한 모습

3. 데모 프로젝트 (Editor_Remote) 추가

Sirius 라이브러리 기반으로 단독 프로그램이 실행중에 통신을 통해 개체들의 값을 변경하는 예제를 담고 있습니다. 우선 editor_remote 데모 프로젝트를 이용하여 아래와 같이 QR 바코드 값을 통신을 통해 변경한 후 마킹을 하고자 할 경우를 살펴보겠습니다.

개체의 이름을 QR1 으로 변경한 모습

editor_remote 데모 프로젝트는 TCP 클라이언트로 동작합니다. 때문에 사용자는 별도의 TCP 서버를 만들어 실행이 필요합니다. (데모 프로젝트에서는 서버의 주소가 localhost 에 9999 번 포트로 대기중이라 가정합니다. 또한 클라이언트와 주고받는 통신 포맷은 첨부된 “ExampleFormat.txt” 을 참고해 주시기 바랍니다.)

editor_remote 데모 프로젝트가 실행되어 TCP 서버와 연결이 성공했으면, 이제 상대방 (서버측) 측에서 다음과 같은 문자열을 통신으로 전달합니다. 전송 문자열 “Entity;QR1;Data;HELLO WORLD;

이를 수신한 editor_remote 데모 프로젝트는 “QR1” 이란 이름의 개체를 찾은후 Data 라는 속성(Property) 항목에 “HELLO WORLD” 란 문자열로 변경을 하게 됩니다.

TCP 서버를 이용해 명령을 전송한 모습
통신을 통해 QR1 개체의 Data 속성값이 “HELLO WORLD” 로 변경된 모습

이 외에도 “ExampleFormat.txt” 에는 다음과 같은 예제들이 제공됩니다. 주의할것은 반드시 중복되지 않는 개체의 이름이 존재해야 하며, 변경하고자 하는 개체의 속성(Property)값 들은 시리우스 라이브러리에서 노출된 타입과 동일해야 합니다.

  • 펜(IPen) 개체의 데이타를 변경하는 예

Entity;Pen1;Frequency;20000;
Entity;Pen1;JumpSpeed;1000;
Entity;Pen1;MarkSpeed;1000;
Entity;Pen1;Power;20;

  • 점(Point) 개체의 데이타를 변경하는 예

Entity;Point1;Markerable;False;
Entity;Point1;Location;10,0;
Entity;Point1;Repeat;10;

  • 사각형(Rectangle) 개체의 데이타를 변경하는 예

Entity;Rectangle1;Width;20;
Entity;Rectangle1;Align;LeftTop;
Entity;Rectangle1;Angle;90;
Entity;Rectangle1;IsHatchable;true;
Entity;Rectangle1;IsHatchable;false;
Entity;Rectangle1;HatchInterval; 0.2;

  • 원(Circle) 개체의 데이타를 변경하는 예

Entity;Circle1;Radius;50;
Entity;Circle1;Center;5,10;

  • 바코드(QR) 개체의 데이타를 변경하는 예

Entity;QR1;Data;HELLO WORLD;
Entity;QR1;ShapeType;Hatch;

  • 동적 비전 배경 이미지(Stitched Image) 개체의 데이타를 변경하는 예 (이미지 파일의 경우 절대 경로값)

Entity;Stitched Image1;Rows;4;
Entity;Stitched Image1;Cols;2;
Entity;Stitched Image1;Width;200;
Entity;Stitched Image1;Height;100;
Entity;Stitched Image1;ImageIndex;0;
Entity;Stitched Image1;ImageFileName;Grid0.bmp;

Entity;Stitched Image1;ImageIndex;1;
Entity;Stitched Image1;ImageFileName;Grid1.bmp;

댓글 달기

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

Scroll to Top