대면적 MoF 에서의 대기 위치 설정하기

최근 업데이트된 v.1.31.1490 버전에서는 스캐너의 FOV 를 벋어나는 영역에 대해 MoF 를 활용하는 데모 프로젝트 (editor_mof_text) 가 추가되었습니다. 이번 시간에는 이 예제를 자세히 설명해 보겠습니다.

editor_mof_text 데모 프로젝트가 실행된 모습

데모 프로젝트가 실행되면 자동적으로 아래 개체들이 생성됩니다.

  1. 입력 트리거 대기용 개체 생성 : 확장1 포트의 D.IN0 입력 대기
  2. MoF 시작 개체 : 엔코더가 초기화됨
  3. 각종 Text 개체 : 스캐너의 FOV 를 벋어나도록 위치를 설정 + 스크립트(Script)를 통한 데이타 변환 사용
  4. MoF 끝 개체 : 스캐너 원점으로 점프
  5. ScriptEvent 개체 : 일련번호를 증가시키는데 사용

여기서 주의해 보아야 할 것이 3 항목에서 생성되는 일부 텍스트(Text) 개체의 경우 스캐너의 FOV 를 벋어나도록 설정하였습니다 (가상 이미지 영역(Virtual Image Field) 을 사용하게 됨). 때문에 데이타를 가공하면 스캐너의 끝 위치(물리적 한계 위치)로 점프, 마크 하게 되어 비정상적인 가공이 진행되게 됩니다. (갈바노메너의 물리적인 제한 각도까지 회전된 후 레이저가 출사됨 )

때문에 대상 물체가 이동하여 스캐너의 중앙 영역으로 올 때까지 대기(외부에서 입력된 엔코더값을 통해 대기 위치를 처리)한 후 레이저가 출사 되도록 하는 등의 추가 조건이 필요합니다.

엔코더 위치 대기를 위한 객체 (MoF Wait)

즉 위와 같이 텍스트 개체의 가공 시작 전 엔코더 위치를 대기하는 조건을 사용자가 텍스트의 가공 시작 전 위치에 모두 생성하여 추가해 주어야 합니다. 이는 가공 개체가 많으면 매우 번거로운 작업이 될뿐 아니라 대기 위치를 일일이 확인 후 서로 다른 값을 입력하는 등 매우 반복적인 작업이 동반되어야 합니다.

이 작업을 간소화 하기 위해서 스크립트(Script)기능을 활용 할 수 있습니다.

데모 프로젝트에서는 이미 작성된 스크립트 파일(mof_text.cs) 이 적용되어 있습니다. 중요한 스크립트 코드는 바로 OnBeforeEntity 함수로, 실제 가공이 시작되면 매 개체(Entity)의 가공 시작 전 이 함수를 매번 거치게 됩니다.

스크립트의 OnBeforeEntity 함수를 활용한 모습

이때 OnBeforeEntity 함수에서는 텍스트(Text) 개체 여부를 확인한 후 텍스트 개체의 가공 직전에 RTC 리스트 버퍼에 엔코더의 특정 위치를 대기 하는 조건을 리스트 명령어로 삽입하도록 코드를 추가합니다. 즉 텍스트 개체들은 모두 자신의 좌측(Left) X 위치가 특정 위치보다 낮아질 때까지(Under) 대기 하게 됩니다. 이를 통해 외부 이동 물체가 이동 되고 가공해야 하는 텍스트 개체가 스캐너의 중심(대략적인) 위치에 도달 할 때까지 대기하는데 활용 될 수 있습니다.

(참고) 데모에서는 엔코더 X 신호를 사용하였으며 좌측(X-) 방향으로 물체가 이동할 경우 엔코더 X 값이 감소한다는 조건입니다.


버전 v.1.34 에서는 Config.IsWaitEncoderXForEachGlyph 옵션이 추가되었습니다.
해당 옵션이 True 인 경우 모든 Text, SiriusText, ImageText 개체들에 대해서 자동으로 엔코더 X 방향에 대해 개별 글자들의 시작 위치로 엔코더가 누적 될 때까지 대기 하는 리스트 명령이 자동으로 삽입됩니다. 때문에 사용자는 별도의 MoFWait 개체나 스크립트에 해당 대기 명령을 추가할 필요가 없습니다.
텍스트의 내용이 매우 길 경우 유용하며, 외부 엔코더 입력 보다 스캐너의 가공 속도가 빠를 경우 매번 대기하는 명령을 추가하는 불편함을 해소하기 위한 기능입니다.

“대면적 MoF 에서의 대기 위치 설정하기”의 1개의 댓글

댓글 달기

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

Scroll to Top