2020년 1월 10일

sirius 라이브러리를 활용한 스캐너 및 레이저 제어 방법 (예제 2)

이번시간에는 각종 가공 데이타를 생성, 저장, 편집 등의 예제를 살펴보도록 하겠습니다.

Sirius 라이브러리에서 가공 데이타는 문서(Document) 라는 이름으로 관리됩니다. 예를 들어 가공 형상을 몇가지 만들고 이를 저장, 불러오기 하는 예제를 보면

1. 문서 생성및 관리

    SpiralLab.Core.Initialize();

     ///신규 문서(Document) 생성
    var doc1 = new DocumentDefault("Unnamed");
    /// 레이어 생성
    var layer = new Layer("default");
    /// 레이어를 문서해 추가
    doc1.Layers.Add(layer);
 
    ///레이어에 선 형상 개체(Entity) 생성및 추가
    layer.Add(new Line(0, 10, 20,20));
    ///레이어에 원 형상 개체(Entity) 생성및 추가
    layer.Add(new Circle(0, 0, 10));
    ///레이어에 나선 형상 개체(Entity) 생성및 추가
    layer.Add(new Spiral(-20.0f, 0.0f, 0.5f, 2.0f, 5, true));
 
    /// 문서(Document) 저장하기
    string filename = "default.sirius";
    var serializer = new DocumentSerializer();
    serializer.Save(doc1, filename);

    /// 문서(Document) 불러오기
    var doc2 = DocumentSerializer.OpenSirius(filename);


자 그럼 위의 데이타를 화면에 출력 (렌더링) 및 편집등을 해 보도록 하겠습니다.

우선 Sirius 라이브러리에서는 해당 뷰어및 에디터를 윈폼의 사용자 컨트롤 형태로 제공하고 있으므로 우선 도구상자에서 이 컨트롤을 등록해야 합니다. 아래와 같이 Visual Studio 개발툴에서

2. "항목선택" 을 합니다.


3. "찾아보기" 버튼 클릭하여 dll 파일을 선택


4. spirallab.sirius.dll 파일을 선택


5. 도구상자에 두 항목 (SiriusEditorForm, SiriusViewerForm)이 추가된 모습


6. SiriusEditorForm 을 끌어놓기(drag and drop) 한 모습


또는 SiriusViewerForm 을 끌어놓기 한 모습 



7. 문서(Document) 와 에디터(혹은 뷰어) 연결하기

위 1번 예제에서 생성한 문서 (doc1)를 6번에서 만든 에디터와 연결하기 위해서는 단순히,

siriusEditorForm1.Document = doc1;

와 같이 지정하는것 만으로도 처리가 됩니다. 실제 가공 데이타가 에디터에 출력된 모습은 다음과 같습니다.


8. 해당 문서 데이타의 가공 준비하기

/// RTC 를 생성 초기화 합니다
var rtc = new Rtc5(0);
...

/// 레이저 소스를 생성 초기화 합니다
var laser =  new LaserVirtual(0, "virtual", 10);
...

/// 마커를 생성 초기화 합니다.
/// 마커는 레이저 가공이 오래 걸리게 되므로, 비동기 처리를 위해
/// 내부적으로는 가공을 위한 작업 쓰레드를 만들고
/// 가공 개수, 순서 위치, 등을 처리해주는 기능으로
/// sirius 라이브러리에서는 기본 마커(MarkerDefault)가 구현되어 있습니다.
/// (마커의 자세한 구현방법은 Demos 폴더의 7번 예제를 참고)
var marker = new MarkerDefault(0);

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

/// 위와 같이 3가지가 미리 지정되어 있으면, 이제 가공이 가능해 집니다.


9. 가공 시작하기

마우스 오른쪽 버튼을 누르면 팝업 메뉴가 나오는데 이때 마커(Marker)를 선택해 줍니다.


마커 창에서는 마커의 상태및 가공 시작, 중지, 에러 리셋 명령 버튼이 있습니다. 당연히 Start Marker 버튼이 가공을 시작하는 명령에 해당합니다. 다들 해 보시면 되겠지요. 천천히 여기까지 따라해 보시기 바랍니다 !

(기타) 여기에 있는 모든 예제는 Demos 프로젝트에 실제 코드가 있습니다.

10. 부가적인 팁


마우스를 이용해 3개의 개체(Entity)들을 선택한후 오른쪽 속성창에서 Mark Path 를 True 로 설정해 보시기 바랍니다. 위와 같이 가공 순서를 알려주게 됩니다.
(참고) 마우스 가운데 버튼으로 확대,축소를 하고, 가운데 버튼을 누른째 마우스를 이동하면, 화면의 중심이 이동됩니다.

가공할 개체(Entity)들을 선택한후 위의 "Normal" 버튼을 눌러보시면, 또다른 재미있는 기능이 동작되는데 바로 레이저 가공을 시뮬레이션 해 볼수있습니다.  백문이 불여일견 실행해 보시면 압니다 !...



댓글 없음:

댓글 쓰기

시리우스 라이브러리 홈페이지 오픈

현재 시리우스(Sirius) 라이브러리라는 제품을 개발하고 이를 소개하는 홈페이지를 오픈 하였습니다. 관심있는 분들의 많은 방문 요청드립니다. 앞으로 업데이트 소식및 변경사항은 스파이럴랩 홈페이지를 통해 진행할 예정입니다. 스파이럴랩 홈페이지 :  h...