Beispiel #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (getCircleUseMetrology == null)
            {
                getCircleUseMetrology = new GetCircleUseMetrology();
                data   = getCircleUseMetrology;
                circle = null;
            }

            hWindow_Final1.HobjectToHimage(ho_Image); //刷新图片

            DrawMode(true);                           //绘制模式开启
            getCircleUseMetrology.parameter.Circle = Func_HalconFunction.DrawCircle(hWindow_Final1.hWindowControl.HalconWindow);
            DrawMode(false);                          //绘制模式关闭

            prepared = true;                          //可以运行
            RunOnce();                                //运行一次
        }
Beispiel #2
0
        private void Ufrm_Circle_Load(object sender, EventArgs e)
        {
            hWindow_Final1.HobjectToHimage(ho_Image);
            if (measureManager == null)
            {
                measureManager = form.measureManager;
            }
            cmb_Transition.SelectedIndex = 0;
            cmb_Select.SelectedIndex     = 0;

            #region 跟踪
            List <MeasuringUnit> translations = measureManager.ListAllTranslation();//所有平移跟踪

            verticalPositions   = new List <MeasuringUnit>();
            horizontalPositions = new List <MeasuringUnit>();
            for (int i = translations.Count - 1; i >= 0; i--)
            {
                if ((translations[i] as TranslationTracking).line.AxByC0.k == null)
                {
                    horizontalPositions.Add(translations[i]);
                    cmb_HorizontalTracking.Items.Add(translations[i].name);
                }

                else if ((translations[i] as TranslationTracking).line.AxByC0.k.D == 0) //?是水平线
                {
                    verticalPositions.Add(translations[i]);                             //添加垂直定位
                    cmb_VerticalTracking_L.Items.Add(translations[i].name);             //添加垂直跟踪
                }
            }
            #endregion

            if (EditMode)//编辑模式
            {
                txt_Name.Text = data.name;
                //txt_Name.Enabled = false;//编辑模式下不能编辑名字

                if (data is GetCircleUseThreshold)
                {
                    tabControl1.TabPages.Remove(tabPage1);
                    tabControl1.TabPages.Remove(tabPage3);
                    getCircleUseThreshold = data as GetCircleUseThreshold;
                    // nud_MaxGray.Value = trb_MaxGray.Value = (getCircleUseThreshold.RegionList[0] as GetRegionUseThreshold).parameter.hv_MaxGray;
                    //nud_MinGray.Value = trb_MinGray.Value = (getCircleUseThreshold.RegionList[0] as GetRegionUseThreshold).parameter.hv_MinGray;
                    tabControl1.SelectedTab = tabPage2;
                    cmb_slg_SelectItem.Items.AddRange(getCircleUseThreshold.GetRegionsName());//添加combobox项
                }
                else if (data is GetCircleUseMetrology)
                {
                    tabControl1.TabPages.Remove(tabPage1);
                    tabControl1.TabPages.Remove(tabPage2);

                    getCircleUseMetrology = data as GetCircleUseMetrology;
                    nud_Length1.Value     = (decimal)getCircleUseMetrology.parameter.measureLength1.D;
                    nud_Length2.Value     = (decimal)getCircleUseMetrology.parameter.measureLength2.D;
                    nud_Distance.Value    = (decimal)getCircleUseMetrology.parameter.measureDistance.D;
                    nud_Threshold.Value   = (decimal)getCircleUseMetrology.parameter.measureThreshold.D;
                    if (getCircleUseMetrology.parameter.measureTransition == "positive")
                    {
                        cmb_Transition.SelectedIndex = 0;
                    }
                    if (getCircleUseMetrology.parameter.measureTransition == "negative")
                    {
                        cmb_Transition.SelectedIndex = 1;
                    }
                    if (getCircleUseMetrology.parameter.measureTransition == "all")
                    {
                        cmb_Transition.SelectedIndex = 2;
                    }
                    if (getCircleUseMetrology.parameter.measureTransition == "uniform")
                    {
                        cmb_Transition.SelectedIndex = 3;
                    }
                    if (getCircleUseMetrology.parameter.measureSelect == "first")
                    {
                        cmb_Select.SelectedIndex = 0;
                    }
                    if (getCircleUseMetrology.parameter.measureSelect == "last")
                    {
                        cmb_Select.SelectedIndex = 1;
                    }
                    if (getCircleUseMetrology.parameter.measureSelect == "all")
                    {
                        cmb_Select.SelectedIndex = 2;
                    }

                    tabControl1.SelectedTab = tabPage3;
                }
                else
                {
                    circle             = data as Circle;
                    nud_Circle_x.Value = (decimal)circle.hv_Column.D;
                    nud_Circle_y.Value = (decimal)circle.hv_Row.D;
                    nud_Radius.Value   = (decimal)circle.hv_Radius.D;


                    if (circle.position_Horizontal != null)
                    {
                        cmb_HorizontalTracking.SelectedItem = circle.position_Horizontal.name;
                    }

                    if (circle.position_Vertical_L != null)
                    {
                        cmb_VerticalTracking_L.SelectedItem = circle.position_Vertical_L.name;
                    }

                    tabControl1.SelectedTab = tabPage1;
                    tabControl1.TabPages.Remove(tabPage2);
                    tabControl1.TabPages.Remove(tabPage3);
                }
                prepared = true;
            }
            else
            {
                circle = new Circle();
                data   = circle;
            }
            RunOnce();
        }