Exemplo n.º 1
0
        private void button3_Click(object sender, EventArgs e)
        {
            var  laser   = new IPGYLPTypeD(0, "YLP TYPE D", 1, 20);
            bool success = laser.Initialize();

            {
                //var form = new SpiralLab.Sirius.Laser.LaserForm();
                //form.AliasName = "TYPE D";
                //form.Laser = laser;
                //form.ShowDialog(this);
            }

            //전용 폼 제공됨
            {
                var form = new SpiralLab.Sirius.Laser.IPGYLPTypeDForm(laser);
                form.FormBorderStyle = FormBorderStyle.SizableToolWindow;
                form.ShowDialog(this);
            }
            laser.Dispose();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            SpiralLab.Core.Initialize();

            #region initialize 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); ///default 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

            #region initialize Laser source
            //var laser = new LaserVirtual(0, "Virtual", 20);
            var laser = new IPGYLPTypeD(0, "IPG YLP Type D", 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);
            //var laser = new YourCustomLaser(0, "custom laser", 20.0f);
            //var laser = new YourCustomLaser2(0, "custom laser", 20.0f, 1);

            laser.Rtc = rtc;
            laser.Initialize();
            laser.CtlPower(10);
            #endregion

            #region motor z axis
            IMotor motorZ = new MotorZ();
            motorZ.Initialize();
            motorZ.CtlHomeSearch();
            #endregion

            #region prepare your marker
            // 사용자 정의 마커 생성
            var marker = new YourCustomMarker(0);
            marker.Name = "custom marker";
            //가공 완료 이벤트 핸들러 등록
            marker.OnFinished += Marker_OnFinished;
            #endregion

            ConsoleKeyInfo key;
            do
            {
                Console.WriteLine($"{Environment.NewLine}");
                Console.WriteLine("Testcase for spirallab.sirius. powered by [email protected] (http://spirallab.co.kr)");
                Console.WriteLine($"{Environment.NewLine}");
                Console.WriteLine("'M' : mark by your custom marker");
                Console.WriteLine("'F' : laser form");
                Console.WriteLine("'Q' : quit");
                Console.WriteLine($"{Environment.NewLine}");
                Console.Write("select your target : ");
                key = Console.ReadKey(false);
                if (key.Key == ConsoleKey.Q)
                {
                    break;
                }
                Console.WriteLine($"{Environment.NewLine}");
                switch (key.Key)
                {
                case ConsoleKey.M:
                    Console.WriteLine("WARNING !!! LASER IS BUSY ...");
                    DrawByMarker(rtc, laser, marker, motorZ);
                    break;

                case ConsoleKey.F:
                    SpiralLab.Sirius.Laser.LaserForm laerForm = new SpiralLab.Sirius.Laser.LaserForm();
                    laerForm.Laser = laser;
                    laerForm.ShowDialog();
                    break;
                }
            } while (true);

            rtc.Dispose();
        }