EDITOR ENTITY 데모 프로젝트

EDITOR ENTITY 프로젝트는 시리우스 에디터를 사용하는 방법에 대한 가장 효과적인 데모 프로젝트 입니다. 이 프로젝트를 통해 편집기 뿐 아니라 제어기의 초기화 마커(IMarker) 및 엔티티(IEntity) 객체의 생성과 사용법에 대해 알아보겠습니다.

이 데모 프로젝트의 가장 큰 특징은 단독 실행이 가능한 어플리케이션으로 디자인되어 있습니다. 때문에 설정파일(ini)을 참고해 프로그램의 초기화가 진행됩니다.

프로그램이 실행되면 가장 먼저 config.ini (syncAXIS 경우 config_syncaxis.ini) 파일을 참고하여 각종 제어 장치 생성 및 초기화가 실시됩니다.

// Initialize sirius2 library
SpiralLab.Sirius2.Core.Initialize();

CreateDevices();
CreateMarker();
CreateTestEntities();     
  • CreateDevices 에서는 스캐너 제어 장치(IRtc) 및 레이저 소스 제어 장치(ILaser) 가 생성 초기화 됩니다.
  • CreateMarker 에서는 레이저 가공을 처리하는 마커 객체(IMarker) 가 생성됩니다.
  • CreateTestEntities 에서는 시리우스 라이브러리에서 제공하는 다양한 객체(IEntity)를 생성하고 이를 에디터 내 문서(IDocument)에 추가하는 방법을 보여줍니다.

초기화 이후 SiriusEditorUserControl 에는 아래와 같이 앞서 생성된 제어 객체들을 지정해야 합니다.

...
siriusEditorUserControl1.Rtc = rtc;
siriusEditorUserControl1.Laser = laser;
siriusEditorUserControl1.Marker = marker;

참고) v0.9.3 이상 버전 부터는 EditorHelper 를 통해 좀더 손쉬운 초기화 과정을 지원합니다.


CreateTestEntities 와 같이 코드를 작성하여 개체들을 생성할 수 있지만 일반적으로는 에디터의 메뉴 버튼을 통해 개체들을 생성하게 됩니다. 신규 문서(New) 버튼을 통해 모든 개체들을 삭제하고 다음과 같이 Text 개체를 생성해 봅니다.

Text 개체의 색상은 기본적으로 흰색(White) 로 생성됩니다. 이 색상은 펜(Pen) 파라메터와 연결되어 있는 값으로 펜 화면에서 흰색(White)을 선택하여 가공에 사용할 각종 설정값들 (주파수, 가공속도, 스캐너 지연값 등)을 변경해 줍니다.

펜의 값을 적절히 변경하면, 모든 가공 준비가 되었습니다. 마커(Maker) 화면으로 이동합니다.

마커 화면에서 가공 시작 (Start)를 누르게 되면 스캐너 및 레이저 장치가 실제 구동하게 됩니다. (참고) 가공 완료시 아래와 같이 상세한 정보가 로그창에 출력됩니다

이번에는 가공과 함께 계측(Measurement) 기능을 병행해 보겠습니다.

Text 개체의 앞뒤로 계측 개체가 자동으로 생성됩니다. 즉 계측(Measurement Begin/End)의 시작과 끝에서 처리되는 모든 관심 채널에 대해 기록하고 이를 출력 시킬 수 있습니다.

자 그럼 다시 마커(Marker) 창에서 가공을 시작(Start)합니다. (참고) Plot 항목이 True 로 설정되어 있어야 합니다.

가공이 완료되면 자동으로 gnuplot 프로그램이 아래와 같이 실행됩니다.

이 계측 데이타는 measurement 디렉토리에 자동 저장됩니다. 때문에 언제든지 에디터 탭에서 아래와 같이 다시 불러올 수 있습니다.


이번에는 나선(Spiral) 개체를 생성합니다. 이때 높이(Height)를 적절히 주고, Model Rotate 를 선택하여 X,Y,Z 회전 각도를 변경해 줍니다.

시작 크기(Start diameter)는 1 mm 에서, 종점 크기 (End diameter)가 5 mm 가 될 때까지 나선 형상으로 가공하게 됩니다. 이때 Z가 +5mm (Height 값) 이므로 점차적으로 증가하는 가공 형상입니다. 이를 시뮬레이션 기능을 통해 가공 경로를 쉽게 파악할 수 있습니다.

가공 경로 시뮬레이션을 진행하는 모습

이번에도 계측(Measurement) 를 병행해 보겠습니다. (참고) 관심 채널에 Sample X,Y 및 Z 지정

3개(X,Y 및 Z)축 위치에 대한 지령값이 시간에 따라 출력되었음을 보여 주고 있습니다. (참고) RTC 제어기에는 3D 옵션이 필요하며, Z 축 구동 처리를 위한 VarioSCAN 과 같은 제품이 설치되어 있어야 합니다.


이번에는 3D calibration 도구를 이용한 스캐너 보정을 적용해 보겠습니다. 이를 위해 3D 정보를 가지고 있는 모델 파일(.stl)을 아래와 같이 가져(Import)옵니다.

레이저가 가공 가능한 유효 초점 거리 범위 (Z-, Z+)에 모델이 놓이도록 Model Translate 의 Z 위치를 재 조정합니다.

(참고) Model Scale 및 Model Rotate 값 변경을 통해 모델의 크기나 회전 상태를 설정할 수 있습니다.

3D calibration 을 위해서는 모델의 표면을 이루는 점 집합을 추출 (Extract Points cloud) 해야 합니다. 아래와 같이 추출을 시도합니다.

(참고1) 추출을 위해 Z+ 축에서 Z- 를 수직으로 바라보는 단위벡터 (0,0,-1) 가 사용됩니다.

Points cloud 추출이 성공하면 새로운 PoinsCloud 개체가 생성되며, 원본 모델은 자동으로 제거됩니다.

참고1) 현재 PointsCloud 를 추출한 3D 변환 뿐 아니라 Z 평면에 대한 원점 이동 및 회전 보정도 지원합니다. (위 메뉴의 Plane 개체 생성)
참고2) 위 메뉴의 실린더(Cylinder)및 콘(Cone) 형상에 대한 보정은 추후 버전에서 지원예정

자 이제 Pointscloud 개체를 선택하고 좌측의 3D 변환(3D Calibration) 버튼을 클릭합니다.
모든 준비가 완료되어 있으면, 신규 스캐너 보정 파일(.ct5)이 생성되고, 새로 생성된 보정 파일이 RTC 보정 테이블에 할당됩니다.

(주의) RTC 초기화시 3D 정보가 포함된 .ct5 로 미리 로드되어 있어야 합니다. 또한 ct5_ReadMe.txt 파일이 같은 경로에 존재해야 합니다.
(참고) 보정에 필요한 README 파일(_ct5_ReadMe.txt )의 예

RTC5 카드에서 신규 3D 보정파일 변환에 성공하고Table4 에 할당된 모습

(참고1) PointsCloud 개체의 데이타(위치 등)가 수정되면 항상 재 보정을 실시해야 합니다.
(참고2) 3D 변환(Calibration)에는 적합한 라이센스 키가 필요합니다.

자 그럼 가공을 원하는 개체를 생성하고 적절한 위치에 배치 후 가공을 시도합니다. 가공시에는 신규 3D 보정파일에 의해 모든 명령 벡터의 Z 위치에 대해서는 3D 보정 파일의 Z 위치가 반영되어 (마이크로 벡터 위치가 재 계산됨) 레이저의 초점이 3D 모델의 표면으로 이동 처리됩니다. (참고) 스캔랩의 CalibrationLibrary API 참고.

(참고) 만약 Z 에 대한 초점이동에 위치 보정이 필요할 경우 PointsCloud 개체의 ZScale (기본값: 1,1) 값을 수정하고 신규 보정 파일을 생성하면 Z 영역에 대한 추가적인 선형 변환이 적용됩니다. (ZScale 의 앞 값은 Z- 영역, 뒤 자리 값은 Z+ 영역에 대한 각각의 스케일 값입니다)

댓글 달기

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

Scroll to Top