Пример #1
0
        private static bool DrawByMarkerWithOffset(IDocument doc, IRtc rtc, ILaser laser)
        {
            var marker = new MarkerDefault(0);

            marker.Name = "marker #2";
            //가공 완료 이벤트 핸들러 등록
            marker.OnFinished += Marker_OnFinished;

            var markerArg = new MarkerArgDefault()
            {
                Document = doc,
                Rtc      = rtc,
                Laser    = laser,
            };

            // 9개의 오프셋 정보를 추가한다
            markerArg.Offsets.Clear();
            markerArg.Offsets.Add(new Offset(-20.0f, 20.0f, -90f));
            markerArg.Offsets.Add(new Offset(0.0f, 20.0f, 0.0f));
            markerArg.Offsets.Add(new Offset(20.0f, 20.0f, 90.0f));
            markerArg.Offsets.Add(new Offset(-20.0f, 0.0f, -180.0f));
            markerArg.Offsets.Add(new Offset(0.0f, 0.0f, 0.0f));
            markerArg.Offsets.Add(new Offset(20.0f, 0.0f, 180.0f));
            markerArg.Offsets.Add(new Offset(-20.0f, -20.0f, -270.0f));
            markerArg.Offsets.Add(new Offset(0.0f, -20.0f, 0.0f));
            markerArg.Offsets.Add(new Offset(20.0f, -20.0f, 270.0f));
            bool success = true;

            // 마커에 가공 문서(doc)및 rtc, laser 정보를 전달하고 가공 준비를 실시한다.
            success &= marker.Ready(markerArg);
            // 가공을 시작한다.
            success &= marker.Start();
            return(success);
        }
Пример #2
0
        private bool MyInitialize()
        {
            #region 사용자의 초기화 코드 예제
            bool success = true;

            success &= SpiralLab.Core.Initialize();
            var doc = new DocumentDefault();
            this.Document = doc;

            //var rtc = new RtcVirtual(0); //create Rtc for dummy
            var rtc = new Rtc5(0); //create Rtc5 controller
            //var rtc = new Rtc6(0); //create Rtc6 controller
            //var rtc = new Rtc6Ethernet(0, "192.168.0.100", "255.255.255.0"); //실험적인 상태 (Scanlab Rtc6 Ethernet 제어기)
            //var rtc = new Rtc6SyncAxis(0, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "syncAxis", "syncAXISConfig.xml")); //실험적인 상태 (Scanlab XLSCAN 솔류션)

            float fov            = 60.0f;                                       ///scanner field of view : 60mm
            float kfactor        = (float)Math.Pow(2, 20) / fov;                // k factor (bits/mm) = 2^20 / fov
            var   correctionFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "correction", "cor_1to1.ct5");
            success &= rtc.Initialize(kfactor, LaserMode.Yag1, correctionFile); // 스캐너 보정 파일 지정 : correction file
            success &= rtc.CtlFrequency(50 * 1000, 2);                          // laser frequency : 50KHz, pulse width : 2usec
            success &= rtc.CtlSpeed(100, 100);                                  // default jump and mark speed : 100mm/s
            success &= rtc.CtlDelay(10, 100, 200, 200, 0);                      // scanner and laser delays
            this.Rtc = rtc;

            var laser = new LaserVirtual(0, "virtual", 20.0f);
            laser.Rtc  = rtc;
            success   &= laser.Initialize();
            success   &= laser.CtlPower(10);
            this.Laser = laser;

            var marker = new MarkerDefault(0);
            this.Marker = marker;
            #endregion
            return(success);
        }
Пример #3
0
        private static bool DrawByMarker(IDocument doc, IRtc rtc, ILaser laser)
        {
            var marker = new MarkerDefault(0);

            marker.Name = "marker #1";
            //가공 완료 이벤트 핸들러 등록
            marker.OnFinished += Marker_OnFinished;

            var markerArg = new MarkerArgDefault()
            {
                Document = doc,
                Rtc      = rtc,
                Laser    = laser,
            };

            // 하나의 오프셋 정보(0,0 및 회전각도 0) 를 추가한다.
            markerArg.Offsets.Add(Offset.Zero);
            bool success = true;

            // 마커에 가공 문서(doc)및 rtc, laser 정보를 전달하고 가공 준비를 실시한다.
            success &= marker.Ready(markerArg);
            // 가공을 시작한다.
            success &= marker.Start();
            return(success);
        }
Пример #4
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            var xmlConfigFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "syncAxis", "syncAXISConfig.xml");

            if (!File.Exists(xmlConfigFileName))
            {
                MessageBox.Show($"XML configuration file is not founded : {xmlConfigFileName}");
                return;
            }

            #region SyncAxis 초기화
            bool success = true;
            var  rtc     = new Rtc6SyncAxis(0, xmlConfigFileName);
            rtc.Name = "SyncAxis";
            success &= rtc.Initialize(0, LaserMode.None, string.Empty);
            success &= rtc.CtlFrequency(50 * 1000, 2); // laser frequency : 50KHz, pulse width : 2usec
            success &= rtc.CtlSpeed(100, 100);         // default scanner jump and mark speed : 100mm/s

            //스테이지 이동시 기본 값 설정
            rtc.StageMoveSpeed   = 10;
            rtc.StageMoveTimeOut = 5;
            #endregion


            #region 레이저 소스 초기화
            var laser = new LaserVirtual(0, "virtual", 20);  // virtual laser source with max 20W power (최대 출력 20W 의 가상 레이저 소스 생성)
            //var laser = new IPGYLP(0, "IPG YLP", 1, 20);
            //var laser = new JPTTypeE(0, "JPT Type E", 1, 20);
            //var laser = new SPIG4(0, "SPI G3/4", 1, 20);
            //var laser = new PhotonicsIndustryDX(0, "PI", 1, 20);
            //var laser = new AdvancedOptoWaveFotia(0, "Fotia", 1, 20);
            //var laser = new CoherentAviaLX(0, "Avia LX", 1, 20);
            laser.Rtc = rtc;
            laser.Initialize();
            laser.CtlPower(2);
            #endregion


            #region 마커 지정
            var marker = new MarkerDefault(0, " SyncAxis Marker ");
            #endregion

            #region RTC 확장 IO
            this.RtcExt1DInput = new RtcDInput(rtc, 0, "DIN RTC EXT1");
            this.RtcExt1DInput.Initialize();
            this.RtcExt1DOutput = new RtcDOutputExt1(rtc, 0, "DOUT RTC EXT1");
            this.RtcExt1DOutput.Initialize();
            this.RtcExt2DOutput = new RtcDOutputExt2(rtc, 0, "DIN RTC EXT2");
            this.RtcExt2DOutput.Initialize();
            this.siriusEditorForm1.RtcExtension1Input  = this.RtcExt1DInput;
            this.siriusEditorForm1.RtcExtension1Output = this.RtcExt1DOutput;
            this.siriusEditorForm1.RtcExtension2Output = this.RtcExt2DOutput;
            #endregion

            this.Rtc = rtc;
            this.siriusEditorForm1.Rtc    = rtc;
            this.siriusEditorForm1.Laser  = laser;
            this.siriusEditorForm1.Marker = marker;
        }
Пример #5
0
        public MainForm()
        {
            InitializeComponent();

            SpiralLab.Core.Initialize();
            // 신규 문서 생성
            var doc = new DocumentDefault();

            // 문서 지정
            siriusEditorForm1.Document = doc;

            // 기본 펜 생성후 문서에 추가
            var pen = new CustomPen();

            doc.Action.ActEntityAdd(pen);

            // 내부 데이타(IDocument) 가 변경될경우 이를 이벤트 통지를 받는 핸들러 등록
            siriusEditorForm1.OnDocumentSourceChanged += SiriusEditorForm1_OnDocumentSourceChanged;

            #region RTC 초기화
            //var rtc = new RtcVirtual(0); //create Rtc for dummy
            var rtc = new Rtc5(0); //create Rtc5 controller
            //var rtc = new Rtc6(0); //create Rtc6 controller
            //var rtc = new Rtc6Ethernet(0, "192.168.0.100", "255.255.255.0"); //실험적인 상태 (Scanlab Rtc6 Ethernet 제어기)
            //var rtc = new Rtc6SyncAxis(0, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "syncAxis", "syncAXISConfig.xml")); //실험적인 상태 (Scanlab XLSCAN 솔류션)

            float fov            = 60.0f;                            ///scanner field of view : 60mm
            float kfactor        = (float)Math.Pow(2, 20) / fov;     // k factor (bits/mm) = 2^20 / fov
            var   correctionFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "correction", "cor_1to1.ct5");
            rtc.Initialize(kfactor, LaserMode.Yag1, correctionFile); // 스캐너 보정 파일 지정 : correction file
            rtc.CtlFrequency(50 * 1000, 2);                          // laser frequency : 50KHz, pulse width : 2usec
            rtc.CtlSpeed(100, 100);                                  // default jump and mark speed : 100mm/s
            rtc.CtlDelay(10, 100, 200, 200, 0);                      // scanner and laser delays
            #endregion
            this.siriusEditorForm1.Rtc = rtc;

            #region 레이저 소스 초기화
            var laser = new LaserVirtual(0, "virtual", 20);  // virtual laser source with max 20W power (최대 출력 20W 의 가상 레이저 소스 생성)
            //var laser = new IPGYLP(0, "IPG YLP", 1, 20);
            //var laser = new JPTTypeE(0, "JPT Type E", 1, 20);
            //var laser = new SPIG4(0, "SPI G3/4", 1, 20);
            //var laser = new PhotonicsIndustryDX(0, "PI", 1, 20);
            //var laser = new AdvancedOptoWaveFotia(0, "Fotia", 1, 20);
            //var laser = new CoherentAviaLX(0, "Avia LX", 1, 20);
            laser.Rtc = rtc;
            laser.Initialize();
            laser.CtlPower(2);
            #endregion

            this.siriusEditorForm1.Laser = laser;

            #region 마커 지정
            var marker = new MarkerDefault(0);
            #endregion
            this.siriusEditorForm1.Marker = marker;

            this.siriusEditorForm1.OnDocumentPenNew += SiriusEditorForm1_OnDocumentPenNew;
        }
Пример #6
0
        private static void DrawByMarker(IDocument doc, IRtc rtc, ILaser laser)
        {
            var marker = new MarkerDefault(0);

            marker.Name        = "marker #1";
            marker.OnFinished += Marker_OnFinished;
            marker.Ready(doc, rtc, laser);   //layer cloned
            marker.Start();
        }
Пример #7
0
        public FormMain()
        {
            InitializeComponent();

            SpiralLab.Core.Initialize();

            var doc = new DocumentDefault();

            siriusEditorForm1.Document = doc;
            siriusViewerForm1.Document = doc;

            /// 소스 문서(IDocument) 가 변경될경우 다른 멀티 뷰에 이를 통지하는 이벤트 핸들러 등록
            siriusEditorForm1.OnDocumentSourceChanged += SiriusEditorForm1_OnDocumentSourceChanged;

            #region RTC 초기화
            var rtc = new RtcVirtual(0); ///create Rtc for dummy
            //var rtc = new Rtc5(0); ///create Rtc5 controller
            //var rtc = new Rtc6(0); ///create Rtc6 controller
            //var rtc = new Rtc6Ethernet(0, "192.168.0.200"); ///create Rtc6 ethernet controller
            //var rtc = new Rtc53D(0); ///create Rtc5 + 3D option controller
            //var rtc = new Rtc63D(0); ///create Rtc5 + 3D option controller
            //var rtc = new Rtc5DualHead(0); ///create Rtc5 + Dual head option controller
            //var rtc = new Rtc5MOTF(0); ///create Rtc5 + MOTF option controller
            //var rtc = new Rtc6MOTF(0); ///create Rtc6 + MOTF option controller
            //var rtc = new Rtc6SyncAxis(0);
            //var rtc = new Rtc6SyncAxis(0, "syncAXISConfig.xml"); ///create Rtc6 + XL-SCAN (ACS+SYNCAXIS) option controller


            float fov     = 60.0f;                                   /// scanner field of view : 60mm
            float kfactor = (float)Math.Pow(2, 20) / fov;            /// k factor (bits/mm) = 2^20 / fov
            rtc.Initialize(kfactor, LaserMode.Yag1, "cor_1to1.ct5"); /// 스캐너 보정 파일 지정 : correction file
            rtc.CtlFrequency(50 * 1000, 2);                          /// laser frequency : 50KHz, pulse width : 2usec
            rtc.CtlSpeed(100, 100);                                  /// default jump and mark speed : 100mm/s
            rtc.CtlDelay(10, 100, 200, 200, 0);                      /// scanner and laser delays
            #endregion
            this.siriusEditorForm1.Rtc = rtc;

            #region 레이저 소스 초기화
            ILaser laser = new LaserVirtual(0, "virtual", 20.0f);
            laser.Initialize();
            var pen = new Pen
            {
                Power = 10.0f,
            };
            laser.CtlPower(rtc, pen);
            #endregion
            this.siriusEditorForm1.Laser = laser;

            #region 마커 지정
            var marker = new MarkerDefault(0);
            #endregion
            this.siriusEditorForm1.Marker = marker;
        }
Пример #8
0
        public MainWindow()
        {
            InitializeComponent();

            SpiralLab.Core.Initialize();
            var siriusEditorForm = (siriusEditor.Child as SiriusEditorForm);

            //펜 집합 기능 사용
            siriusEditorForm.EnablePens = true;

            var doc = new DocumentDefault();

            siriusEditorForm.Document = doc;

            #region RTC 초기화
            //var rtc = new RtcVirtual(0); //create Rtc for dummy (가상 RTC 카드)
            var rtc = new Rtc5(0); //create Rtc5 controller
            //var rtc = new Rtc6(0); //create Rtc6 controller
            //var rtc = new Rtc6Ethernet(0, "192.168.0.100", "255.255.255.0"); //Rtc6 Ethernet
            //var rtc = new Rtc6SyncAxis(0, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "syncAxis", "syncAXISConfig.xml")); //Scanlab XLSCAN

            float fov            = 60.0f;                            ///scanner field of view : 60mm
            float kfactor        = (float)Math.Pow(2, 20) / fov;     // k factor (bits/mm) = 2^20 / fov
            var   correctionFile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "correction", "cor_1to1.ct5");
            rtc.Initialize(kfactor, LaserMode.Yag1, correctionFile); // 스캐너 보정 파일 지정 : correction file
            rtc.CtlFrequency(50 * 1000, 2);                          // laser frequency : 50KHz, pulse width : 2usec
            rtc.CtlSpeed(100, 100);                                  // default jump and mark speed : 100mm/s
            rtc.CtlDelay(10, 100, 200, 200, 0);                      // scanner and laser delays
            #endregion
            siriusEditorForm.Rtc = rtc;

            #region initialize Laser (virtual)
            var laser = new LaserVirtual(0, "virtual", 20);  // virtual laser source with max 20W power (최대 출력 20W 의 가상 레이저 소스 생성)
            //var laser = new IPGYLP(0, "IPG YLP", 1, 20);
            //var laser = new JPTTypeE(0, "JPT Type E", 1, 20);
            //var laser = new SPIG4(0, "SPI G3/4", 1, 20);
            //var laser = new PhotonicsIndustryDX(0, "PI", 1, 20);
            //var laser = new AdvancedOptoWaveFotia(0, "Fotia", 1, 20);
            //var laser = new CoherentAviaLX(0, "Avia LX", 1, 20);
            laser.Rtc = rtc;
            laser.Initialize();
            laser.CtlPower(2);
            #endregion

            siriusEditorForm.Laser = laser;

            #region 마커 지정
            var marker = new MarkerDefault(0);
            #endregion
            siriusEditorForm.Marker = marker;
        }
Пример #9
0
        private static void DrawByMarker(IDocument doc, IRtc rtc, ILaser laser)
        {
            var marker = new MarkerDefault(0);

            marker.Name = "marker #1";
            ///가공 완료 이벤트 핸들러 등록
            marker.OnFinished += Marker_OnFinished;
            /// 마커에 가공 문서(doc)및 rtc, laser 정보를 전달하고 가공 준비를 실시한다.
            marker.Ready(doc, rtc, laser);
            /// 하나의 오프셋 정보(0,0및 회전각도 0) 를 추가한다.
            marker.Offsets.Clear();
            marker.Offsets.Add(Offset.Zero);
            /// 가공을 시작한다.
            marker.Start();
        }
Пример #10
0
        private static void DrawByMarkerWithOffset(IDocument doc, IRtc rtc, ILaser laser)
        {
            var marker = new MarkerDefault(0);

            marker.Name        = "marker #2";
            marker.OnFinished += Marker_OnFinished;
            marker.Offsets.Add((-20.0, 20.0, -90));
            marker.Offsets.Add((0.0, 20.0, 0.0));
            marker.Offsets.Add((20.0, 20.0, 90.0));
            marker.Offsets.Add((-20.0, 0.0, -180.0));
            marker.Offsets.Add((0.0, 0.0, 0.0));
            marker.Offsets.Add((20.0, 0.0f, 180.0));
            marker.Offsets.Add((-20.0, -20.0, -270.0));
            marker.Offsets.Add((0.0, -20.0, 0.0));
            marker.Offsets.Add((20.0, -20.0, 270.0));
            marker.Ready(doc, rtc, laser);   //layer cloned
            marker.Start();
        }
Пример #11
0
        public FormMain()
        {
            InitializeComponent();

            SpiralLab.Core.Initialize();

            var doc = new DocumentDefault();

            siriusEditorForm1.Document = doc;
            siriusViewerForm1.Document = doc;

            /// 소스 문서(IDocument) 가 변경될경우 다른 멀티 뷰에 이를 통지하는 이벤트 핸들러 등록
            siriusEditorForm1.OnDocumentSourceChanged += SiriusEditorForm1_OnDocumentSourceChanged;
            siriusViewerForm1.OnDocumentSourceChanged += SiriusEditorForm1_OnDocumentSourceChanged;

            #region RTC 초기화
            //IRtc rtc = new RtcVirtual(0); ///가상 rtc 제어기 생성
            IRtc rtc = new RtcGCode(0, "output.txt");                ///가상 rtc 제어기 생성
            //IRtc rtc = new Rtc5(0); ///rtc 5 제어기 생성
            double fov     = 60.0;                                   /// scanner field of view : 60mm
            double kfactor = Math.Pow(2, 20) / fov;                  /// k factor (bits/mm) = 2^20 / fov
            rtc.Initialize(kfactor, LaserMode.Yag1, "cor_1to1.ct5"); /// 스캐너 보정 파일 지정 : correction file
            rtc.CtlFrequency(50 * 1000, 2);                          /// laser frequency : 50KHz, pulse width : 2usec
            rtc.CtlSpeed(100, 100);                                  /// default jump and mark speed : 100mm/s
            rtc.CtlDelay(10, 100, 200, 200, 0);                      /// scanner and laser delays
            #endregion
            this.siriusEditorForm1.Rtc = rtc;

            #region 레이저 소스 초기화
            ILaser laser = new LaserVirtual(0, "virtual", 20.0f);
            laser.Initialize();
            laser.CtlPower(rtc, 8.0f);
            #endregion
            this.siriusEditorForm1.Laser = laser;

            #region 마커 지정
            var marker = new MarkerDefault(0);
            #endregion
            this.siriusEditorForm1.Marker = marker;
        }
Пример #12
0
        private static void DrawByMarkerWithOffset(IDocument doc, IRtc rtc, ILaser laser)
        {
            var marker = new MarkerDefault(0);

            marker.Name = "marker #2";
            ///가공 완료 이벤트 핸들러 등록
            marker.OnFinished += Marker_OnFinished;
            /// 9개의 오프셋 정보를 추가한다
            marker.Offsets.Clear();
            marker.Offsets.Add(new Offset(-20.0f, 20.0f, -90f));
            marker.Offsets.Add(new Offset(0.0f, 20.0f, 0.0f));
            marker.Offsets.Add(new Offset(20.0f, 20.0f, 90.0f));
            marker.Offsets.Add(new Offset(-20.0f, 0.0f, -180.0f));
            marker.Offsets.Add(new Offset(0.0f, 0.0f, 0.0f));
            marker.Offsets.Add(new Offset(20.0f, 0.0f, 180.0f));
            marker.Offsets.Add(new Offset(-20.0f, -20.0f, -270.0f));
            marker.Offsets.Add(new Offset(0.0f, -20.0f, 0.0f));
            marker.Offsets.Add(new Offset(20.0f, -20.0f, 270.0f));
            /// 마커에 가공 문서(doc)및 rtc, laser 정보를 전달하고 가공 준비를 실시한다.
            marker.Ready(doc, rtc, laser);
            /// 가공을 시작한다.
            marker.Start();
        }
Пример #13
0
        private bool SiriusLibInit()
        {
            // 기본 문서 생성
            var doc = new Sirius.DocumentDefault();

            this.FormAuto.SiriusViewer.Document   = doc;
            this.FormEditor.SiriusEditor.Document = doc;
            // 소스 문서(IDocument) 가 변경될경우 다른 멀티 뷰에 이를 통지하는 이벤트 핸들러 등록
            this.FormEditor.SiriusEditor.OnDocumentSourceChanged += SiriusEditorForm_OnDocumentSourceChanged;

            bool success = true;

            #region RTC 초기화
            uint i = 0;
            //var rtcCounts = NativeMethods.ReadIni<int>(Program.ConfigFileName, "RTC", "COUNTS");
            //for (uint i = 0; i < rtcCounts; i++)
            //{
            var  rtcTypeName = NativeMethods.ReadIni <string>(ConfigFileName, $"RTC{i}", "TYPE");
            Type rtcType     = Type.GetType(rtcTypeName.Trim());
            if (null == rtcType)
            {
                var mb = new Default.MessageBoxOk();
                mb.ShowDialog("Critical", $"Can't create rtc instance : {rtcType.ToString()} at {ConfigFileName}");
                success &= false;
            }
            var rtc     = Activator.CreateInstance(rtcType) as IRtc;
            var rtcName = NativeMethods.ReadIni <string>(ConfigFileName, $"RTC{i}", "NAME");
            rtc.Name  = rtcName;
            rtc.Index = i;
            var       kFactor           = NativeMethods.ReadIni <float>(ConfigFileName, $"RTC{i}", "KFACTOR");
            var       ct5FileName       = NativeMethods.ReadIni <string>(ConfigFileName, $"RTC{i}", "CORRECTION");
            var       laserModeTypeName = NativeMethods.ReadIni <string>(ConfigFileName, $"RTC{i}", "LASERMODE");
            LaserMode laserMode         = (LaserMode)Enum.Parse(typeof(LaserMode), laserModeTypeName.Trim());
            success &= rtc.Initialize(kFactor, laserMode, ct5FileName);
            rtc.CtlFrequency(50 * 1000, 2);     // laser frequency : 50KHz, pulse width : 2usec
            rtc.CtlSpeed(100, 100);             // default jump and mark speed : 100mm/s
            rtc.CtlDelay(10, 100, 200, 200, 0); // scanner and laser delays

            this.FormEditor.SiriusEditor.Rtc = rtc;
            //}
            #endregion

            #region 레이저 소스 초기화
            //var laserCounts = NativeMethods.ReadIni<int>(Program.ConfigFileName, "LASER", "COUNTS");
            //for (uint i = 0; i < laserCounts; i++)
            //{
            var  laserTypeName = NativeMethods.ReadIni <string>(ConfigFileName, $"LASER{i}", "TYPE");
            Type laserType     = Type.GetType(laserTypeName.Trim());
            if (null == laserType)
            {
                var mb = new Default.MessageBoxOk();
                mb.ShowDialog("Critical", $"Can't create laser instance : {laserType.ToString()} at {ConfigFileName}");
                success &= false;
            }
            var laser = Activator.CreateInstance(laserType) as ILaser;
            //ILaser laser = new Sirius.LaserVirtual(0, "virtual", 20.0f);
            var laserName = NativeMethods.ReadIni <string>(ConfigFileName, $"LASER{i}", "NAME");
            laser.Rtc   = rtc;
            laser.Index = i;
            laser.Name  = laserName;
            var maxPower = NativeMethods.ReadIni <float>(ConfigFileName, $"LASER{i}", "MAXPOWER");
            laser.MaxPowerWatt = maxPower;
            success           &= laser.Initialize();
            var powerControl = laser as IPowerControl;
            if (null != powerControl)
            {
                success &= powerControl.CtlPower(10);
            }

            this.FormEditor.SiriusEditor.Laser = laser;
            //}
            this.FormEditor.SiriusEditor.Laser = laser;
            #endregion

            #region 마커 지정
            var marker = new MarkerDefault(0);
            this.FormEditor.SiriusEditor.Marker = marker;
            #endregion
            return(success);
        }
Пример #14
0
        public FormMain()
        {
            InitializeComponent();

            SpiralLab.Core.Initialize();

            //Rtc 2개 생성
            var rtc1 = new RtcVirtual(0, "output1.txt");

            rtc1.Initialize(1000, LaserMode.Yag1, null);
            var rtc2 = new RtcVirtual(1, "output2.txt");

            rtc2.Initialize(1000, LaserMode.Yag1, null);

            //Laser 2개 생성
            var laser1 = new LaserVirtual(0, "Virtual Laser1", 20);

            laser1.Initialize();
            var laser2 = new LaserVirtual(1, "Virtual Laser2", 20);

            laser2.Initialize();

            //Marker 2개 생성
            var marker1 = new MarkerDefault(0);
            var marker2 = new MarkerDefault(1);


            //두개의 문서 생성
            var doc1 = new DocumentDefault();
            var doc2 = new DocumentDefault();


            //뷰어에 문서 소스 설정
            this.formViewer = new FormViewer();
            this.formViewer.Viewer1.Document  = doc1;
            this.formViewer.Viewer1.AliasName = "Left Viewer";
            this.formViewer.Viewer2.Document  = doc2;
            this.formViewer.Viewer2.AliasName = "Right Viewer";

            //에디터 1에 문서 소스 설정
            this.formEditor1 = new FormEditor();
            this.formEditor1.Editor.Document  = doc1;
            this.formEditor1.Editor.AliasName = "Left Editor";

            //에디터 2에 문서 소스 설정
            this.formEditor2 = new FormEditor();
            this.formEditor2.Editor.Document  = doc2;
            this.formEditor2.Editor.AliasName = "Right Editor";

            //소스 문서(IDocument) 가 변경될경우 다른 멀티 뷰에 이를 통지가능하도록 이벤트 핸들러 등록
            this.formViewer.Viewer1.OnDocumentSourceChanged += Viewer1_OnDocumentSourceChanged;
            this.formEditor1.Editor.OnDocumentSourceChanged += Viewer1_OnDocumentSourceChanged;

            this.formViewer.Viewer2.OnDocumentSourceChanged += Viewer2_OnDocumentSourceChanged;
            this.formEditor2.Editor.OnDocumentSourceChanged += Viewer2_OnDocumentSourceChanged;


            // 뷰어1 와 하드웨어 연결
            this.formViewer.Viewer1.Rtc    = rtc1;
            this.formViewer.Viewer1.Laser  = laser1;
            this.formViewer.Viewer1.Marker = marker1;

            //뷰어2 와 하드웨어 연결
            this.formViewer.Viewer2.Rtc    = rtc2;
            this.formViewer.Viewer2.Laser  = laser2;
            this.formViewer.Viewer2.Marker = marker2;


            // 에디터1 와 하드웨어 연결
            this.formEditor1.Editor.Rtc    = rtc1;
            this.formEditor1.Editor.Laser  = laser1;
            this.formEditor1.Editor.Marker = marker1;

            //에디터1 와 하드웨어 연결
            this.formEditor2.Editor.Rtc    = rtc2;
            this.formEditor2.Editor.Laser  = laser2;
            this.formEditor2.Editor.Marker = marker2;



            // 뷰어를 초기화면에 출력
            SwitchForm(panel3, this.formViewer);
        }
Пример #15
0
        public FormMain()
        {
            InitializeComponent();

            SpiralLab.Core.Initialize();

            //Rtc 제어기 객체 2개 생성
            var rtc1 = new RtcVirtual(0, "output1.txt");
            var rtc2 = new RtcVirtual(1, "output2.txt");
            //var rtc = new Rtc5(0); //create Rtc5 controller
            //var rtc = new Rtc6(0); //create Rtc6 controller
            //var rtc = new Rtc6Ethernet(0, "192.168.0.100", "255.255.255.0"); //실험적인 상태 (Scanlab Rtc6 Ethernet 제어기)
            //var rtc = new Rtc6SyncAxis(0, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "syncAxis", "syncAXISConfig.xml")); //실험적인 상태 (Scanlab XLSCAN 솔류션)

            var correctionFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "correction", "cor_1to1.ct5");

            rtc1.Initialize(1000, LaserMode.Yag1, correctionFile);
            rtc2.Initialize(1000, LaserMode.Yag1, correctionFile);

            //Laser 소스 객체 2개 생성
            var laser1 = new LaserVirtual(0, "virtual", 20);  // virtual laser source with max 20W power (최대 출력 20W 의 가상 레이저 소스 생성)

            //var laser1 = new IPGYLP(0, "IPG YLP", 1, 20);
            //var laser1 = new JPTTypeE(0, "JPT Type E", 1, 20);
            //var laser1 = new SPIG4(0, "SPI G3/4", 1, 20);
            //var laser1 = new PhotonicsIndustryDX(0, "PI", 1, 20);
            //var laser1 = new AdvancedOptoWaveFotia(0, "Fotia", 1, 20);
            //var laser1 = new CoherentAviaLX(0, "Avia LX", 1, 20);
            laser1.Rtc = rtc1;
            laser1.Initialize();
            laser1.CtlPower(2);

            var laser2 = new LaserVirtual(0, "virtual", 20);  // virtual laser source with max 20W power (최대 출력 20W 의 가상 레이저 소스 생성)

            //var laser2 = new IPGYLP(0, "IPG YLP", 2, 20);
            //var laser2 = new JPTTypeE(0, "JPT Type E", 2, 20);
            //var laser2 = new SPIG4(0, "SPI G3/4", 2, 20);
            //var laser2 = new PhotonicsIndustryDX(0, "PI", 2, 20);
            //var laser2 = new AdvancedOptoWaveFotia(0, "Fotia", 2, 20);
            //var laser2 = new CoherentAviaLX(0, "Avia LX", 2, 20);
            laser2.Rtc = rtc2;
            laser2.Initialize();
            laser2.CtlPower(2);

            //Marker 2개 생성
            var marker1 = new MarkerDefault(0);
            var marker2 = new MarkerDefault(1);

            //두개의 문서 생성
            var doc1 = new DocumentDefault();
            var doc2 = new DocumentDefault();

            //뷰어에 문서 소스 설정
            this.formViewer = new FormViewer();
            this.formViewer.Viewer1.Document  = doc1;
            this.formViewer.Viewer1.AliasName = "Left Viewer";
            this.formViewer.Viewer2.Document  = doc2;
            this.formViewer.Viewer2.AliasName = "Right Viewer";

            //에디터 1에 문서 소스 설정
            this.formEditor1 = new FormEditor();
            this.formEditor1.Editor.Document  = doc1;
            this.formEditor1.Editor.AliasName = "Left Editor";

            //에디터 2에 문서 소스 설정
            this.formEditor2 = new FormEditor();
            this.formEditor2.Editor.Document  = doc2;
            this.formEditor2.Editor.AliasName = "Right Editor";

            //소스 문서(IDocument) 가 변경될경우 다른 멀티 뷰에 이를 통지가능하도록 이벤트 핸들러 등록
            this.formEditor1.Editor.OnDocumentSourceChanged += Editor1_OnDocumentSourceChanged;
            this.formEditor2.Editor.OnDocumentSourceChanged += Editor2_OnDocumentSourceChanged;

            // 기본 펜 개체 생성
            var pen1 = new PenDefault();

            doc1.Action.ActEntityAdd(pen1);
            var pen2 = new PenDefault();

            doc2.Action.ActEntityAdd(pen2);

            // 에디터1 와 하드웨어 연결
            this.formEditor1.Editor.Rtc    = rtc1;
            this.formEditor1.Editor.Laser  = laser1;
            this.formEditor1.Editor.Marker = marker1;

            //에디터1 와 하드웨어 연결
            this.formEditor2.Editor.Rtc    = rtc2;
            this.formEditor2.Editor.Laser  = laser2;
            this.formEditor2.Editor.Marker = marker2;

            // 뷰어를 초기화면에 출력
            SwitchForm(panel3, this.formViewer);
        }
Пример #16
0
        public FormMain()
        {
            InitializeComponent();

            SpiralLab.Core.Initialize();

            //Rtc 2개 생성
            var rtc1 = new RtcVirtual(0, "output1.txt");
            var rtc2 = new RtcVirtual(1, "output2.txt");
            //var rtc = new Rtc5(0); ///create Rtc5 controller
            //var rtc = new Rtc6(0); ///create Rtc6 controller
            //var rtc = new Rtc6Ethernet(0, "192.168.0.200"); ///create Rtc6 ethernet controller
            //var rtc = new Rtc53D(0); ///create Rtc5 + 3D option controller
            //var rtc = new Rtc63D(0); ///create Rtc5 + 3D option controller
            //var rtc = new Rtc5DualHead(0); ///create Rtc5 + Dual head option controller
            //var rtc = new Rtc5MOTF(0); ///create Rtc5 + MOTF option controller
            //var rtc = new Rtc6MOTF(0); ///create Rtc6 + MOTF option controller
            //var rtc = new Rtc6SyncAxis(0);
            //var rtc = new Rtc6SyncAxis(0, "syncAXISConfig.xml"); ///create Rtc6 + XL-SCAN (ACS+SYNCAXIS) option controller

            var correctionFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "correction", "cor_1to1.ct5");

            rtc1.Initialize(1000, LaserMode.Yag1, correctionFile);
            rtc2.Initialize(1000, LaserMode.Yag1, correctionFile);

            //Laser 2개 생성
            var laser1 = new LaserVirtual(0, "Virtual Laser1", 20);

            laser1.Initialize();
            var laser2 = new LaserVirtual(1, "Virtual Laser2", 20);

            laser2.Initialize();

            //Marker 2개 생성
            var marker1 = new MarkerDefault(0);
            var marker2 = new MarkerDefault(1);

            //두개의 문서 생성
            var doc1 = new DocumentDefault();
            var doc2 = new DocumentDefault();

            //뷰어에 문서 소스 설정
            this.formViewer = new FormViewer();
            this.formViewer.Viewer1.Document  = doc1;
            this.formViewer.Viewer1.AliasName = "Left Viewer";
            this.formViewer.Viewer2.Document  = doc2;
            this.formViewer.Viewer2.AliasName = "Right Viewer";

            //에디터 1에 문서 소스 설정
            this.formEditor1 = new FormEditor();
            this.formEditor1.Editor.Document  = doc1;
            this.formEditor1.Editor.AliasName = "Left Editor";

            //에디터 2에 문서 소스 설정
            this.formEditor2 = new FormEditor();
            this.formEditor2.Editor.Document  = doc2;
            this.formEditor2.Editor.AliasName = "Right Editor";

            //소스 문서(IDocument) 가 변경될경우 다른 멀티 뷰에 이를 통지가능하도록 이벤트 핸들러 등록
            this.formEditor1.Editor.OnDocumentSourceChanged += Editor1_OnDocumentSourceChanged;
            this.formEditor2.Editor.OnDocumentSourceChanged += Editor2_OnDocumentSourceChanged;

            // 에디터1 와 하드웨어 연결
            this.formEditor1.Editor.Rtc    = rtc1;
            this.formEditor1.Editor.Laser  = laser1;
            this.formEditor1.Editor.Marker = marker1;

            //에디터1 와 하드웨어 연결
            this.formEditor2.Editor.Rtc    = rtc2;
            this.formEditor2.Editor.Laser  = laser2;
            this.formEditor2.Editor.Marker = marker2;

            // 뷰어를 초기화면에 출력
            SwitchForm(panel3, this.formViewer);
        }