Ejemplo n.º 1
0
        public override void draw()
        {
            HOperatorSet.SetColor(this.LWindowHandle, "cyan");
            HOperatorSet.SetDraw(this.LWindowHandle, "margin");
            HalconHelp.disp_message(this.LWindowHandle, "选中一个牙", "window", 12, 12, "green",
                                    "true");
            HOperatorSet.DrawRectangle1(this.LWindowHandle, out toothRow1, out toothColumn1, out toothRow2, out toothColumn2);

            tr1 = toothRow1.D;
            tr2 = toothRow2.D;
            tc1 = toothColumn1.D;
            tc2 = toothColumn2.D;
            HObject rect1;

            HOperatorSet.GenEmptyObj(out rect1);
            HOperatorSet.GenRectangle1(out rect1, toothRow1, toothColumn1, toothRow2, toothColumn2);
            HOperatorSet.DispObj(rect1, this.LWindowHandle);
            HalconHelp.disp_message(this.LWindowHandle, "选中检测区域", "window", 12, 12, "green",
                                    "true");

            HOperatorSet.DrawRectangle1(this.LWindowHandle, out RoiRow1, out RoiColumn1, out RoiRow2, out RoiColumn2);

            rr1 = RoiRow1.D;
            rr2 = RoiRow2.D;
            rc1 = RoiColumn1.D;
            rc2 = RoiColumn2.D;

            HObject rect2;

            HOperatorSet.GenEmptyObj(out rect2);
            HOperatorSet.GenRectangle1(out rect2, RoiRow1, RoiColumn1, RoiRow2, RoiColumn2);
            HOperatorSet.DispObj(rect2, this.LWindowHandle);
        }
 public override void draw()
 {
     HOperatorSet.SetColor(this.LWindowHandle, "cyan");
     HOperatorSet.SetDraw(this.LWindowHandle, "margin");
     //HOperatorSet.SetDraw(LWindowHandle, "margin");
     //HOperatorSet.SetColor(LWindowHandle, "green");
     HalconHelp.disp_message(LWindowHandle, "选取需要检测部分的最宽处", "window",
                             12, 12, "black", "true");
     HOperatorSet.DrawRectangle1(this.LWindowHandle, out Row1, out Column1, out Row2, out Column2);
     this.R1 = Row1.D;
     this.R2 = Row2.D;
     this.C1 = Column1.D;
     this.C2 = Column2.D;
 }
Ejemplo n.º 3
0
        private void OnImageProcessedEvent(CCamera instance, HObject ho_Image)
        {
            try
            {
                if (InvokeRequired)
                {
                    Invoke(new CCamera.OnImageProcessedEventHandler(OnImageProcessedEvent), new object[] { instance, ho_Image });
                    return;
                }
                kk++;
                //Console.WriteLine("kk:" +kk);
                instance.tempImage.Dispose();
                HOperatorSet.CopyImage(instance.Image, out instance.tempImage);

                HTuple cwindow = new HTuple();
                switch (instance.logicName)
                {
                case "CCD1": cwindow = hWindowControl1.HalconWindow;
                    break;

                case "CCD2": cwindow = hWindowControl2.HalconWindow;
                    break;

                case "CCD3": cwindow = hWindowControl3.HalconWindow;
                    break;

                case "CCD4": cwindow = hWindowControl4.HalconWindow;
                    break;

                case "CCD5": cwindow = hWindowControl5.HalconWindow;
                    break;
                    //case "CCD6": cwindow = hWindowControl6.HalconWindow;
                    //    break;
                }

                for (int i = 0; i < 6; i++)
                {
                    if (instance.logicName == "CCD" + i.ToString())
                    {
                        HOperatorSet.SetColor(cwindow, "green");
                        HOperatorSet.SetDraw(cwindow, "margin");
                        HTuple w, h;
                        HOperatorSet.GetImageSize(ho_Image, out w, out h);

                        HOperatorSet.SetPart(cwindow, 0, 0, h, w);

                        HOperatorSet.DispObj(ho_Image, cwindow);

                        if (instance.RegionToDisp.IsInitialized() && instance.resultHTuple.Length > 0)
                        {
                            HOperatorSet.DispObj(instance.RegionToDisp, cwindow);
                            HalconHelp.set_display_font(cwindow, 14, "courier", "false", "false");
                            HalconHelp.disp_message(cwindow, instance.resultHTuple, "window", 10, 10, "green", "false");
                        }
                    }
                }
                switch (instance.logicName)
                {
                case "CCD1": cwindow = hWindowControl6.HalconWindow;
                    break;

                case "CCD2": cwindow = hWindowControl7.HalconWindow;
                    break;

                case "CCD3": cwindow = hWindowControl8.HalconWindow;
                    break;

                case "CCD4": cwindow = hWindowControl9.HalconWindow;
                    break;

                case "CCD5": cwindow = hWindowControl10.HalconWindow;
                    break;
                }

                for (int i = 0; i < 6; i++)
                {
                    if (instance.logicName == "CCD" + i.ToString())
                    {
                        HOperatorSet.SetColor(cwindow, "green");
                        HOperatorSet.SetDraw(cwindow, "margin");
                        HTuple w, h;
                        HOperatorSet.GetImageSize(ho_Image, out w, out h);

                        HOperatorSet.SetPart(cwindow, 0, 0, h, w);

                        HOperatorSet.DispObj(ho_Image, cwindow);

                        if (instance.RegionToDisp.IsInitialized() && instance.resultHTuple.Length > 0)
                        {
                            HOperatorSet.DispObj(instance.RegionToDisp, cwindow);
                            //if (instance.logicName == "CCD1")
                            //{
                            //    HalconHelp.set_display_font(cwindow, 14, "courier", "false", "false");
                            //    HalconHelp.disp_message(cwindow, instance.resultHTuple, "window", 2, 2, "green", "false");
                            //}
                        }
                    }
                }
                DataRowCollection drc = ds.Tables["detailTable"].Rows;

                int    rs      = 0;
                string shijian = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString();
                string path    = PathHelper.currentProductPath + @"\" + shijian + ".txt";
                foreach (DataRow dr in drc)
                {
                    string s = dr[0].ToString();

                    if (dr[0].ToString() == instance.logicName)
                    {
                        if (instance.result.resultToShow.Count > rs)
                        {
                            double cl = double.Parse(instance.result.resultToShow[rs].data);
                            double xz = (double)dr[2];
                            dr[5] = Math.Round((cl + xz), 3);
                            if (double.Parse(dr[5].ToString()) <= double.Parse(dr[3].ToString()) && double.Parse(dr[5].ToString()) >= double.Parse(dr[4].ToString()))
                            {
                                dr[6] = "OK";
                            }
                            else
                            {
                                dr[6] = "NG";
                            }
                            if (instance.goodcountlist.Count() != 0)
                            {
                                dr[7] = Math.Round((double)(instance.goodcountlist[rs] / (double)Turntable.Instance.pn.totalCount * 100), 2).ToString() + "%";
                                //Console.WriteLine("" + instance.goodcountlist[rs] + "---" + (double)Turntable.Instance.pn.totalCount);
                            }
                            rs++;
                        }
                        else
                        {
                            dr[5] = 0;
                        }
                        // File.AppendAllText(path,dr[1].ToString() + "  " + dr[5].ToString(), Encoding.Default);
                    }
                }

                //File.AppendAllText(path,Environment.NewLine, Encoding.Default);
                DataHelper.CheckData(ds, instance.logicName, instance);
            }
            catch (Exception e)
            {
                MyDebug.ShowMessage("界面图像处" + e.Message);
            }
            finally
            {
                ho_Image.Dispose();
                instance.RegionToDisp.Dispose();
                instance.Image.Dispose();
                instance.resultHTuple = new HTuple();
                //UpdateProInfo();
            }
        }