Example #1
0
 public void SetupToolGroupEditSubject(CogToolGroup tool)
 {
     for (int i = 0; i < FormMain.camNumber; i++)
     {
         acqFifoEditV2[i].Subject = (CogAcqFifoTool)tool.Tools[i];
     }
 }
 private void DisposeToolGroup()
 {
     if (CogToolGroup != null)
     {
         CogToolGroup = null;
     }
 }
Example #3
0
        public bool LoadVpp(string strVppName) // load vpp file
        {
            try
            {
                m_cogtgType = CogSerializer.LoadObjectFromFile(strVppName) as Cognex.VisionPro.ToolGroup.CogToolGroup;
// 2016.06.20
//#if !_USE_1Camera
#if (!_USE_BASLER_PYLON && !_USE_IMAGING_CONTROL && !_USE_FLIR && !_USE_1Camera)
                //** 2015.10.02 by kdi
                string strFolderName   = Path.GetDirectoryName(strVppName);
                string strOnlyFileName = Path.GetFileNameWithoutExtension(strVppName);
                string strExtName      = Path.GetExtension(strVppName);
                string strAcqVppName   = strFolderName + "\\" + strOnlyFileName + "_CAM" + strExtName;
                m_cogtgType_Acq = CogSerializer.LoadObjectFromFile(strAcqVppName) as Cognex.VisionPro.ToolGroup.CogToolGroup;
                //*/
#endif
                return(true);
            }
            catch
            {
                // 2014.07.15
                AUtil.TopMostMessageBox.Show(strVppName + " File Load Error!");
                return(false);
            }
        }
Example #4
0
        private void ImportToolsFromVppFile(string filePath)
        {
            CogToolGroup newToolGroup = CogSerializer.LoadObjectFromFile(filePath) as CogToolGroup;

            if (newToolGroup != null)
            {
                // It is a tool group
                foreach (ICogTool cogTool in newToolGroup.Tools)
                {
                    _cognexJob.CogToolGroup.Tools.Add(cogTool);
                }
            }
            else
            {
                ICogTool cogTool = CogSerializer.LoadObjectFromFile(filePath) as ICogTool;
                if (cogTool != null)
                {
                    // It is a tool
                    _cognexJob.CogToolGroup.Tools.Add(cogTool);
                }
                else
                {
                    // It is even not a tool group, probably a job
                    //throw new VisionSystemException("Unknown file format. Currently we accept only toolgroup and tool file");
                }
            }
            _toolGroupEdit.Refresh();
        }
        /// <summary>
        /// Reload the vision tool
        /// </summary>
        public override void LoadVisionFile()
        {
            DisposeToolGroup();

            if (string.IsNullOrEmpty(VisionFile))
            {
                VisionFile = this.UniqueNames[1];
            }

            if (!VisionFile.Contains('\\'))
            {
                VisionFile = String.Format(@"{0}{1}.vpp", VisionFilesRootPath, VisionFile);
            }


            if (File.Exists(VisionFile))
            {
                // Load it
                try
                {
                    CogToolGroup = CogSerializer.LoadObjectFromFile(VisionFile) as CogToolGroup;
                }
                catch (Exception ex)
                {
                    U.LogPopup(ex, "Vision File load error");
                }
            }
            else
            {
                CogToolGroup = new CogToolGroup();
            }

            //_cogToolGroup.Ran += new EventHandler(OnRunComplete);
        }
Example #6
0
        /// <summary>
        /// Handles a click to the Retrain Button, when clicked the PMAlignTool
        /// will retrain its pattern.  The new trained pattern will reflect any
        /// changes made to the train image record in the CogRecordDisplay.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RetrainButton_Click(object sender, EventArgs e)
        {
            CogToolGroup   myTG     = myJob.VisionTool as CogToolGroup;
            CogPMAlignTool myPMTool = myTG.Tools["CogPMAlignTool1"] as CogPMAlignTool;

            myPMTool.Pattern.Train();
        }
Example #7
0
        /// <summary>
        /// This handles a click to the Show Train Image button.
        /// It allows the user to view train image record the pattern was
        /// trained off of and also enable the Retrain button.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ShowTrainCheckBox_CheckedChanged(
            object sender, EventArgs e)
        {
            if (this.ShowTrainCheckBox.Checked)
            {
                RunOnceButton.Enabled   = false;
                RunContCheckBox.Enabled = false;
                RetrainButton.Enabled   = true;

                CogToolGroup   myTG     = myJob.VisionTool as CogToolGroup;
                CogPMAlignTool myPMTool = myTG.Tools["CogPMAlignTool1"] as CogPMAlignTool;
                Cognex.VisionPro.ICogRecord tmpRecord;
                tmpRecord = myPMTool.CreateCurrentRecord();
                tmpRecord = tmpRecord.SubRecords["TrainImage"];
                cogRecordDisplay1.Record = tmpRecord;
                cogRecordDisplay1.Fit(true);
                RunStatusTextBox.Text = "";
            }
            else
            {
                RunOnceButton.Enabled    = true;
                RunContCheckBox.Enabled  = true;
                RetrainButton.Enabled    = false;
                cogRecordDisplay1.Record = null;
            }
        }
Example #8
0
    // Perform any initialization required by your script here
    public override void Initialize(CogToolGroup host)
    {
        // DO NOT REMOVE - Call the base class implementation first - DO NOT REMOVE
        base.Initialize(host);

        //Define the terminals
        toolGroup.DefineScriptTerminal("System.Collections.ArrayList", "BlobCollection", false);

        toolGroup.DefineScriptTerminal("Boolean", disableHist, "DisableHistogramInspection", true);
        toolGroup.DefineScriptTerminal("double", minPickAngle, "MinPickAngle", true);
        toolGroup.DefineScriptTerminal("double", maxPickAngle, "MaxPickAngle", true);
        toolGroup.DefineScriptTerminal("double", minPopsicleHistCount, "MinPopsicleHistCount", true);
        toolGroup.DefineScriptTerminal("Boolean", VisStudio_Running, "VS_Running", true);
        toolGroup.DefineScriptTerminal("Boolean", showArea, "ShowArea", true);
        toolGroup.DefineScriptTerminal("Boolean", showHist, "ShowHistCount", true);
        toolGroup.DefineScriptTerminal("double", visSideXLength, "VisSideXLength", true);
        toolGroup.DefineScriptTerminal("double", visSideYLength, "VisSideYLength", true);
        toolGroup.DefineScriptTerminal("double", visFlirRegionXadj, "VisFlirRegionXadj", true);
        toolGroup.DefineScriptTerminal("double", visFlirRegionYadj, "VisFlirRegionYadj", true);

        toolGroup.DefineScriptTerminal("Int32", angleFailures, "AngleFailures", false);
        toolGroup.DefineScriptTerminal("Int32", thermalFailures, "ThermalFailures", false);
        toolGroup.DefineScriptTerminal("String", "", "BaslerStatus", false);
        toolGroup.DefineScriptTerminal("String", "", "FlirStatus", false);

        //Set the default values for the terminals
        toolGroup.SetScriptTerminalData("DisableHistogramInspection", false);
        toolGroup.SetScriptTerminalData("VS_Running", false);
        toolGroup.SetScriptTerminalData("ShowArea", false);
        toolGroup.SetScriptTerminalData("ShowHistCount", false);
    }
Example #9
0
 private bool GetImage(string pathin)
 {
     myToolGroup = (CogToolGroup)(myJobManager.Job(0).VisionTool);
     myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
     myImageFile.Operator.Open(pathin, CogImageFileModeConstants.Read);
     Imagein = new Bitmap(pathin);
     myImageFile.InputImage = new CogImage8Grey(Imagein);
     myImageFile.Run();
     return(true);
 }
Example #10
0
 private bool GetImage2(string pathin)
 {
     try
     {
         myToolGroup2 = (CogToolGroup)(myJobManager2.Job(0).VisionTool);
         myImageFile2 = (CogImageFileTool)(myToolGroup2.Tools["CogImageFileTool1"]);
         myImageFile2.Operator.Open(pathin, CogImageFileModeConstants.Read);
         Imagein2 = new Bitmap(pathin);
         myImageFile2.InputImage = new CogImage8Grey(Imagein2);
         myImageFile2.Run();
     }
     catch{}
 }
Example #11
0
 private void GetImage0(string pathin)
 {
     try
     {
         myToolGroup0 = (CogToolGroup)(myJobManager0.Job(0).VisionTool);
         myImageFile0 = (CogImageFileTool)(myToolGroup0.Tools["CogImageFileTool1"]);
         myImageFile0.Operator.Open(pathin, CogImageFileModeConstants.Read);
         Imagein0 = new Bitmap(pathin);
         myImageFile0.InputImage = new CogImage8Grey(Imagein0);
         myImageFile0.Run();
     }   
     catch{}
 }
Example #12
0
        public APMAligns(CogToolGroup cogtg)
        {
            m_cogtg = cogtg;

            if (m_cogtg != null)
            {
                for (int i = 0; i < m_cogtg.Tools.Count; ++i)
                {
                    m_aPMAlign = new APMAlign(m_cogtg.Tools[i]);
                    m_lstAPMAlign.Add(m_aPMAlign);
                }
            }
        }
Example #13
0
        //ABB
        private void myImgComplete4(object sender, CogCompleteEventArgs e)              //定义ABB的相机
        {
            CogToolBlock myToolBlock;
            CogToolBlock myRunToolblock3;             //= myToolBlock.Tools("MyToolBlock3")

            int  numReadyVal   = 0;
            int  numPendingVal = 0;
            bool busyVal       = false;

            CogToolGroup myTG = (CogToolGroup)myJob.VisionTool;

            myToolBlock     = (CogToolBlock)myTG.Tools["AcquireImageAndProcessLeft"];
            myRunToolblock3 = (CogToolBlock)myToolBlock.Tools["MyToolBlock3"];

            CogAcqInfo info         = new CogAcqInfo();
            ICogImage  CurrentImage = default(ICogImage);

            // static int numAcqs = 0;
            try
            {
                AcqFifoTool4.Operator.GetFifoState(out numPendingVal, out numReadyVal, out busyVal);
                if (numReadyVal > 0)
                {
                    CurrentImage = (ICogImage)(AcqFifoTool4.Operator.CompleteAcquireEx(info));
                }
                else
                {
                    //Throw New CogAcqAbnormalException("Ready count is not greater than 0.")
                }
                myImgComplete4_numAcqs++;

                // We need to run the garbage collector on occasion to cleanup
                // images that are no longer being used.
                if (myImgComplete4_numAcqs > 4)
                {
                    GC.Collect();
                    myImgComplete4_numAcqs = 0;
                }
                ModuleCard.d1000_out_bit((short)10, (short)1);
                // Issue another acquisition request if we are in manual trigger mode.
                if (!ReferenceEquals(CurrentImage, null))
                {
                    myRunToolblock3.Inputs["Input2dImage"].Value = CurrentImage;
                    myRunToolblock3.Run();
                }
                // CogRecordDisplay1.Image = CurrentImage
            }
            catch (Exception)
            {
            }
        }
Example #14
0
        private void checkBoxShowHistCount_CheckedChanged(object sender, EventArgs e)
        {
            if (mcjmAcq == null)
            {
                MessageBox.Show("Unable to show Hist Count. Check that the camera is online.", "Warning!");
                ((CheckBox)sender).Checked = false;
                return;
            }

            CogToolGroup lctg = (CogToolGroup)mcjmAcq.Job(mainForm.CogJobName).VisionTool;

            lctg.SetScriptTerminalData("ShowHistCount", checkBoxShowHistCount.Checked);
            runtimeParameters.VisShowHistCount = checkBoxShowHistCount.Checked;
        }
Example #15
0
 private bool GetImage3(string pathin)
 {
     try
     {
         myToolGroup3 = (CogToolGroup)(myJobManager3.Job(0).VisionTool);
         myImageFile3 = (CogImageFileTool)(myToolGroup3.Tools["CogImageFileTool1"]);
         myImageFile3.Operator.Open(pathin, CogImageFileModeConstants.Read);
         Imagein3 = new Bitmap(pathin);
         myImageFile3.InputImage = new CogImage8Grey(Imagein3);
         myImageFile3.Run();
         return true;
     }
     catch
     {
         return false;
     }
 }
Example #16
0
        public AType(string strName, int nPointCount)
        {
            m_cogtgType      = new CogToolGroup();
            m_cogtgType.Name = strName;
// 2016.06.20
//#if !_USE_1Camera
#if (!_USE_BASLER_PYLON && !_USE_IMAGING_CONTROL && !_USE_FLIR && !_USE_1Camera)
            // 2015.10.02 by kdi
            m_cogtgType_Acq      = new CogToolGroup();
            m_cogtgType_Acq.Name = strName;
#endif
            m_nPointCount = nPointCount;
            // 2014.11.04
            m_bUse = false;

            Init(true);
        }
Example #17
0
 private bool GetImage(int numOfVpps, List <string> pathin)
 {
     if (null == pathin[numOfVpps])
     {
         return(false);
     }
     else
     {
         myToolGroup = (CogToolGroup)(myJobManager[numOfVpps].Job(numOfVpps).VisionTool);
         myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
         myImageFile.Operator.Open(pathin[numOfVpps], CogImageFileModeConstants.Read);
         Imagein = new Bitmap(pathin[numOfVpps]);
         myImageFile.InputImage = new CogImage8Grey(Imagein);
         myImageFile.Run();
         Imagein = null;
     }
     return(true);
 }
Example #18
0
        /// <summary>
        /// 获取图像
        /// </summary>
        ///
        /// <param name="pathin">< 图片路径 ></param>
        ///
        /// <returns>< bool判定是否获取成功 ></returns>
        private bool GetImage(string pathin)
        {
            bool step1 = false;
            bool step2 = false;
            bool step3 = false;

            try
            {
                mTGTool = (CogToolGroup)(myJobManager.Job(0).VisionTool);
                step1   = true;
            }
            catch
            {
                step1 = false;
            }
            try
            {
                mIFTool = (CogImageFileTool)(mTGTool.Tools["CogImageFileTool1"]);
                mIFTool.Operator.Open(pathin, CogImageFileModeConstants.Read);
                step2 = true;
            }
            catch
            {
                step2 = false;
            }
            try
            {
                Imagein            = new Bitmap(pathin);
                mIFTool.InputImage = new CogImage8Grey(Imagein);
                step3 = true;
            }
            catch
            {
                step3 = false;
            }
            if (step1 && step2 && step3)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        private void setRelease(CogToolGroup toolGroup)
        {
            foreach (ICogTool tool in toolGroup.Tools)
            {
                if ((tmpToolGroup = (tool as CogToolGroup)) != null)
                {
                    //Trace.WriteLine("Group:" + tmpToolGroup.Name);

                    if (tmpToolGroup.Script != null && tmpToolGroup.Script.CompileDebug)
                    {
                        Trace.WriteLine("Change Script to Release: " + tmpToolGroup.Name);
                        tmpToolGroup.Script.CompileDebug = false;
                    }
                    setRelease(tmpToolGroup);
                }
                else
                {
                    //Trace.WriteLine(" Tool: " + tool.Name);
                }
            }
        }
Example #20
0
 /// <summary>
 /// 获取图像
 /// </summary>
 ///
 /// <param name="pathin">< 图片路径 ></param>
 ///
 /// <returns>< bool判定是否获取成功 ></returns>
 private bool GetImage(string pathin)
 {
     bool step1 = false;
     bool step2 = false;
     bool step3 = false;
     try
     {
         mTGTool = (CogToolGroup)(myJobManager.Job(0).VisionTool);
         step1 = true;
     }
     catch
     {
         step1 = false;
     }
     try
     {   
         mIFTool = (CogImageFileTool)(mTGTool.Tools["CogImageFileTool1"]);
         mIFTool.Operator.Open(pathin, CogImageFileModeConstants.Read); 
         step2 = true;
     }
     catch
     {
         step2 = false;
     }
     try
     {
         Imagein = new Bitmap(pathin);
         mIFTool.InputImage = new CogImage8Grey(Imagein);
         step3 = true;
     }
     catch
     {
         step3 = false;
     }
     if(step1 && step2 && step3)
     {
         return true; 
     }
     else
     {
         return false;
     }
 }
Example #21
0
        //初始化函数2
        private void initToolEdit()
        {
            //JobManagerEdit.Subject = m_JobManager;

            //一级视觉
            CogToolGroup m_ToolGroup_1 = (CogToolGroup)m_Job_1.VisionTool;

            cogToolGroupEditV21.Subject = m_ToolGroup_1;



            if (m_ToolGroup_1 == null)
            {
                MessageBox.Show("toolgroup1工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }


            blobTool_1 = (CogBlobTool)m_ToolGroup_1.Tools["CogBlobTool1"];
            if (blobTool_1 == null)
            {
                MessageBox.Show("blob1工具读取失败,请退出软件");
            }



            pmaTool_1 = (CogPMAlignTool)m_ToolGroup_1.Tools["caliPMATool"];
            if (pmaTool_1 == null)
            {
                MessageBox.Show("pma1工具读取失败,请退出软件");
            }

            calibTool_1 = (CogCalibNPointToNPointTool)m_ToolGroup_1.Tools["CogCalibNPointToNPointTool1"];
            if (calibTool_1 == null)
            {
                MessageBox.Show("calib1工具读取失败,请退出软件");
            }

            acqFifoTool_1 = (CogAcqFifoTool)m_ToolGroup_1.Tools["CogAcqFifoTool1"];
            if (acqFifoTool_1 == null)
            {
                MessageBox.Show("acqfifo1工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            mAcqFifo_1 = acqFifoTool_1.Operator;

            if (mAcqFifo_1 == null)
            {
                MessageBox.Show("macqfifo1为 null,窗口将自动关闭");
                this.Close();
                return;
            }


            mAcqFifo_1.Timeout = 1000;



            //二级视觉
            CogToolGroup m_ToolGroup_2 = (CogToolGroup)m_Job_2.VisionTool;

            cogToolGroupEditV22.Subject = m_ToolGroup_2;



            if (m_ToolGroup_2 == null)
            {
                MessageBox.Show("toolgroup2工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            blobTool_2 = (CogBlobTool)m_ToolGroup_2.Tools["CogBlobTool1"];
            if (blobTool_2 == null)
            {
                MessageBox.Show("blob2工具读取失败,请退出软件");
            }

            pmaTool_2 = (CogPMAlignTool)m_ToolGroup_2.Tools["caliPMATool"];
            if (pmaTool_2 == null)
            {
                MessageBox.Show("pma2工具读取失败,请退出软件");
            }

            calibTool_2 = (CogCalibNPointToNPointTool)m_ToolGroup_2.Tools["CogCalibNPointToNPointTool1"];
            if (calibTool_2 == null)
            {
                MessageBox.Show("calib2工具读取失败,请退出软件");
            }


            acqFifoTool_2 = (CogAcqFifoTool)m_ToolGroup_2.Tools["CogAcqFifoTool1"];
            if (acqFifoTool_2 == null)
            {
                MessageBox.Show("acqfifo2工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            mAcqFifo_2 = acqFifoTool_2.Operator;

            if (mAcqFifo_2 == null)
            {
                MessageBox.Show("macqfifo2为 null,窗口将自动关闭");
                this.Close();
                return;
            }



            mAcqFifo_2.Timeout = 1000;



            ////对比度Test
            //ICogAcqContrast mContrast = mAcqFifo_2.OwnedContrastParams;
            //double val = mContrast.Contrast;
            //Console.WriteLine(val);



            //三级视觉
            CogToolGroup m_ToolGroup_3 = (CogToolGroup)m_Job_3.VisionTool;

            cogToolGroupEditV23.Subject = m_ToolGroup_3;


            if (m_ToolGroup_3 == null)
            {
                MessageBox.Show("toolgroup3工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            blobTool_3 = (CogBlobTool)m_ToolGroup_3.Tools["CogBlobTool1"];
            if (blobTool_3 == null)
            {
                MessageBox.Show("blob3工具读取失败,请退出软件");
            }
            pmaTool_3 = (CogPMAlignTool)m_ToolGroup_3.Tools["caliPMATool"];
            if (pmaTool_3 == null)
            {
                MessageBox.Show("pma3工具读取失败,请退出软件");
            }

            calibTool_3 = (CogCalibNPointToNPointTool)m_ToolGroup_3.Tools["CogCalibNPointToNPointTool1"];
            if (calibTool_3 == null)
            {
                MessageBox.Show("calib3工具读取失败,请退出软件");
            }


            acqFifoTool_3 = (CogAcqFifoTool)m_ToolGroup_3.Tools["CogAcqFifoTool1"];
            if (acqFifoTool_3 == null)
            {
                MessageBox.Show("acqfifo3工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            mAcqFifo_3 = acqFifoTool_3.Operator;

            if (mAcqFifo_3 == null)
            {
                MessageBox.Show("macqfifo3为 null,窗口将自动关闭");
                this.Close();
                return;
            }



            mAcqFifo_3.Timeout = 1000;
        }
Example #22
0
        private void ABBShowInfoSub(string Info)
        {
            CogToolBlock myToolBlock;
            CogToolBlock myRunToolblock3;             //= myToolBlock.Tools("MyToolBlock3")

            // static string SaveInfo = ""; //VBConversions Note: Static variable moved to class level and renamed ABBShowInfoSub_SaveInfo. Local static variables are not supported in C#.
            if (ABBShowInfoSub_SaveInfo != Info)
            {
                TextBoxInfo.Text = Info + "\r\n" + TextBoxInfo.Text;
            }
            ABBShowInfoSub_SaveInfo = Info;
            if (Info == "WorkpieceArrived")
            {
                CommunicationMsg.AppendText(System.Convert.ToString("[" + Strings.Format(DateTime.Now, "hh:mm:ss") + "] From robot ABB : " + "\r\n"));
                CommunicationMsg.AppendText(System.Convert.ToString("Workpiece arrived target position" + "\r\n"));
            }
            else if (Info == "StartPlateMove")
            {
                finishMoveFlag = false;
                startMoveFlag  = true;
                CommunicationMsg.AppendText(System.Convert.ToString("[" + Strings.Format(DateTime.Now, "hh:mm:ss") + "] From robot ABB : " + "\r\n"));
                CommunicationMsg.AppendText(System.Convert.ToString("Start move platform ..." + "\r\n"));
            }            //下面开始的代码就会闪退
            else if (Info == "TriggerCam")
            {
                TriggerCamNum++;                 //本身定义为0,+1代表可以执行拍照了
                CommunicationMsg.AppendText(System.Convert.ToString("[" + Strings.Format(DateTime.Now, "hh:mm:ss") + "] From robot ABB : " + "\r\n"));
                CommunicationMsg.AppendText(System.Convert.ToString("Robot ABB camera trigger " + Conversion.Str(TriggerCamNum) + "\r\n"));
                CogToolGroup myTG = (CogToolGroup)myJob.VisionTool;
                myToolBlock     = (CogToolBlock)myTG.Tools["AcquireImageAndProcessLeft"];
                myRunToolblock3 = (CogToolBlock)myToolBlock.Tools["MyToolBlock3"];
                if (TriggerCamNum == 1)
                {
                    myRunToolblock3.Inputs["TriggerCamNum"].Value = 0;
                }
                else
                {
                    myRunToolblock3.Inputs["TriggerCamNum"].Value = 1;
                    TriggerCamNum = 0;
                }
            }

            //	try
            //	{
            //		ModuleCard.d1000_out_bit((short)10, (short)0);
            //		System.Threading.Thread.Sleep(50);
            //		int num = 0;
            //		myRunToolblock3.Inputs["Input2dImage"].Value = AcqFifoTool4.Operator.Acquire(out num); //应该是获取图像
            //		myRunToolblock3.Run(); //这个myruntoolblock3是一个模块,和外部的拍照组件链接(确信)
            //	}
            //	catch (Exception)
            //	{
            //		MessageBox.Show("error");
            //	}
            //}
            //判断定位是否正确
            //ABB_Result = System.Convert.ToString(myRunToolblock3.Outputs["ABB_Result"].Value); //这里是怎么判断的呢?????
            //if (ABB_Result == "OK")
            //{
            //	if (ABBClientConnectInforStr == NetConnected)
            //	{
            //		byte[] byteData = Encoding.ASCII.GetBytes("WorkpieceLocationOK" + "\r\n");
            //		try
            //		{
            //			//Begin sending the data to the remote device.StockIsOK
            //			ABBClientSocket.BeginSend(byteData, 0, byteData.Length, (System.Net.Sockets.SocketFlags)0, new AsyncCallback(ABBClientSendCallback), ABBClientSocket);
            //		}
            //		catch (Exception)
            //		{
            //			ABBClientConnectInforStr = NetError;
            //		}
            //	}
            //}
            //else
            //{
            //	if (ABBClientConnectInforStr == NetConnected)
            //	{
            //		byte[] byteData = Encoding.ASCII.GetBytes("WorkpieceLocationNO" + "\r\n");
            //		try
            //		{
            //			//Begin sending the data to the remote device.StockIsOK
            //			ABBClientSocket.BeginSend(byteData, 0, byteData.Length, (System.Net.Sockets.SocketFlags)0, new AsyncCallback(ABBClientSendCallback), ABBClientSocket);
            //		}
            //		catch (Exception)
            //		{
            //			ABBClientConnectInforStr = NetError;
            //		}
            //	}
            //}
            //}
            //else if (Info == "IsPlateOK")
            //{
            //	PlateCheck = true;
            //}
            //else
            //{
            //	//CommunicationMsg.AppendText(Info + vbCrLf)
            //}
        }
Example #23
0
 public APMAligns(string strName)
 {
     m_cogtg      = new CogToolGroup();
     m_cogtg.Name = strName;
 }
Example #24
0
        private void setRelease(CogToolGroup toolGroup)
        {
            foreach (ICogTool tool in toolGroup.Tools)
            {
                if ((tmpToolGroup = (tool as CogToolGroup)) != null)
                {
                    //Trace.WriteLine("Group:" + tmpToolGroup.Name);

                    if (tmpToolGroup.Script != null && tmpToolGroup.Script.CompileDebug)
                    {
                        Trace.WriteLine("Change Script to Release: " + tmpToolGroup.Name );
                        tmpToolGroup.Script.CompileDebug = false;
                    }
                    setRelease(tmpToolGroup);
                }
                else
                {
                    //Trace.WriteLine(" Tool: " + tool.Name);
                }
            }
        }
Example #25
0
        private void modifyToolsInToolgroup(CogToolGroup toolGroup, ModificationMode mode)
        {
            Trace.WriteLine("ModifyToolsInToolGroup: Mode="+ mode);
            foreach (ICogTool tool in toolGroup.Tools)
            {
                //CogInputImageTool (Nicht beachten, da Kamera)

                //CogToolGroup
                if ((tmpToolGroup = (tool as CogToolGroup)) != null)
                {
                    tmpProcessingString = "Processing Group: " + tool.Name;
                    //recursively check all ToolBlocks/ToolGroups
                    modifyToolsInToolgroup(tmpToolGroup, mode);
                }
                else
                {
                    tmpProcessingString = "-> Processing: " + tool.Name;

                    //CogBlobTool
                    if (tool as Cognex.VisionPro.Blob.CogBlobTool != null)
                    {
                        Cognex.VisionPro.Blob.CogBlobTool Blob = tool as Cognex.VisionPro.Blob.CogBlobTool;

                        switch (mode)
                        {
                            case ModificationMode.disable:
                                Blob.CurrentRecordEnable = Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.None;
                                Blob.LastRunRecordDiagEnable = Cognex.VisionPro.Blob.CogBlobLastRunRecordDiagConstants.None;
                                Blob.LastRunRecordEnable = Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.None;
                                break;
                            
                            case ModificationMode.enableALL:
                                Blob.CurrentRecordEnable = Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.All;
                                Blob.LastRunRecordDiagEnable = Cognex.VisionPro.Blob.CogBlobLastRunRecordDiagConstants.All;
                                Blob.LastRunRecordEnable = Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.All;
                                break;
                            
                            case ModificationMode.standard:
                                //Blob.CurrentRecordEnable = Region | InputImageMask | Histogram | InputImage
                                Blob.CurrentRecordEnable
                                    = Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.Region
                                    | Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.InputImageMask
                                    | Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.Histogram
                                    | Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.InputImage
                                    ;

                                //Blob.LastRunRecordDiagEnable = InputImageByReference
                                Blob.LastRunRecordDiagEnable
                                    = Cognex.VisionPro.Blob.CogBlobLastRunRecordDiagConstants.InputImageByReference
                                    ;

                                //Blob.LastRunRecordEnable = ResultsBoundary | BlobImageUnfiltered | BlobImage
                                Blob.LastRunRecordEnable
                                    = Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.ResultsBoundary
                                    | Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.BlobImageUnfiltered
                                    | Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.BlobImage
                                    ;
                                break;
                        }
                        
                    }

                    //CogPMAlignTool
                    else if (tool as Cognex.VisionPro.PMAlign.CogPMAlignTool != null)
                    {
                        Cognex.VisionPro.PMAlign.CogPMAlignTool PMAlign = tool as Cognex.VisionPro.PMAlign.CogPMAlignTool;

                        switch (mode)
                        {
                            case ModificationMode.disable:
                                PMAlign.CurrentRecordEnable = Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.None;
                                PMAlign.LastRunRecordDiagEnable = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordDiagConstants.None;
                                PMAlign.LastRunRecordEnable = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.None;
                                break;

                            case ModificationMode.enableALL:
                                PMAlign.CurrentRecordEnable = Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.All;
                                PMAlign.LastRunRecordDiagEnable = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordDiagConstants.All;
                                PMAlign.LastRunRecordEnable = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.All;
                                break;

                            case ModificationMode.standard:
                                //PMAlign.CurrentRecordEnable = InputImage | PatternOrigin | SearchImageMask | SearchRegion | TrainShapeModels | TrainImageMask | TrainRegion | TrainImage
                                PMAlign.CurrentRecordEnable
                                    = Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.InputImage
                                    | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.PatternOrigin
                                    | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.SearchImageMask
                                    | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.SearchRegion
                                    | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainShapeModels
                                    | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainImageMask
                                    | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainRegion
                                    | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainImage
                                    ;

                                //PMAlign.LastRunRecordDiagEnable = InputImageByReference
                                PMAlign.LastRunRecordDiagEnable
                                    = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordDiagConstants.InputImageByReference
                                    ;

                                //PMAlign.LastRunRecordEnable = ResultsMatchRegion | ResultsOrigin
                                PMAlign.LastRunRecordEnable
                                    = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.ResultsMatchRegion
                                    | Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.ResultsOrigin
                                    ;
                                break;
                        }

                    }

                    //CogSearchMaxTool
                    else if (tool as Cognex.VisionPro.SearchMax.CogSearchMaxTool != null)
                    {
                        Cognex.VisionPro.SearchMax.CogSearchMaxTool SearchMax = tool as Cognex.VisionPro.SearchMax.CogSearchMaxTool;

                        switch (mode)
                        {
                            case ModificationMode.disable:
                                SearchMax.CurrentRecordEnable = Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.None;
                                SearchMax.LastRunRecordDiagEnable = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordDiagConstants.None;
                                SearchMax.LastRunRecordEnable = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.None;
                                break;

                            case ModificationMode.enableALL:
                                SearchMax.CurrentRecordEnable = Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.All;
                                SearchMax.LastRunRecordDiagEnable = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordDiagConstants.All;
                                SearchMax.LastRunRecordEnable = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.All;
                                break;

                            case ModificationMode.standard:
                                //SearchMax.CurrentRecordEnable = PatternOrigin | TrainRegion | TrainImageMask | TrainImage | SearchImageMask | SearchRegion | InputImage
                                SearchMax.CurrentRecordEnable
                                    = Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.PatternOrigin
                                    | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.TrainRegion
                                    | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.TrainImageMask
                                    | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.TrainImage
                                    | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.SearchImageMask
                                    | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.SearchRegion
                                    | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.InputImage
                                    ;

                                //SearchMax.LastRunRecordDiagEnable = InputImageByReference
                                SearchMax.LastRunRecordDiagEnable
                                    = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordDiagConstants.InputImageByReference
                                    ;

                                //SearchMax.LastRunRecordEnable = ResultsOrigin | ResultsMatchRegion
                                SearchMax.LastRunRecordEnable
                                    = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.ResultsOrigin
                                    | Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.ResultsMatchRegion
                                    ;
                                break;
                        }
                        
                    }

                    //CogFixtureTool
                    else if (tool as Cognex.VisionPro.CalibFix.CogFixtureTool != null)
                    {
                        Cognex.VisionPro.CalibFix.CogFixtureTool FixtureTool = tool as Cognex.VisionPro.CalibFix.CogFixtureTool;

                        switch (mode)
                        {
                            case ModificationMode.disable:
                                FixtureTool.CurrentRecordEnable = Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.None;
                                FixtureTool.LastRunRecordDiagEnable = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordDiagConstants.None;
                                FixtureTool.LastRunRecordEnable = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordConstants.None;
                                break;

                            case ModificationMode.enableALL:
                                FixtureTool.CurrentRecordEnable = Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.All;
                                FixtureTool.LastRunRecordDiagEnable = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordDiagConstants.All;
                                FixtureTool.LastRunRecordEnable = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordConstants.All;
                                break;

                            case ModificationMode.standard:
                                //FixtureTool.CurrentRecordEnable = InputImage | FixturedAxes
                                FixtureTool.CurrentRecordEnable
                                    = Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.InputImage
                                    | Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.FixturedAxes
                                    ;

                                //FixtureTool.LastRunRecordDiagEnable = FixturedAxes
                                FixtureTool.LastRunRecordDiagEnable
                                    = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordDiagConstants.FixturedAxes
                                    ;

                                //FixtureTool.LastRunRecordEnable = OutputImage
                                FixtureTool.LastRunRecordEnable
                                    = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordConstants.OutputImage
                                    ;
                                break;
                        }
                        
                    }

                    //CogHistogramTool
                    else if (tool as Cognex.VisionPro.ImageProcessing.CogHistogramTool != null)
                    {
                        Cognex.VisionPro.ImageProcessing.CogHistogramTool Histogram = tool as Cognex.VisionPro.ImageProcessing.CogHistogramTool;

                        switch (mode)
                        {
                            case ModificationMode.disable:
                                Histogram.CurrentRecordEnable = Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.None;
                                Histogram.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordDiagConstants.None;
                                Histogram.LastRunRecordEnable = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.None;
                                break;

                            case ModificationMode.enableALL:
                                Histogram.CurrentRecordEnable = Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.All;
                                Histogram.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordDiagConstants.All;
                                Histogram.LastRunRecordEnable = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.All;
                                break;

                            case ModificationMode.standard:
                                //Histogram.CurrentRecordEnable = Region | InputImageMask | InputImage
                                Histogram.CurrentRecordEnable
                                    = Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.Region
                                    | Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.InputImageMask
                                    | Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.InputImage
                                    ;

                                //Histogram.LastRunRecordDiagEnable = InputImageByReference
                                Histogram.LastRunRecordDiagEnable
                                    = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordDiagConstants.InputImageByReference
                                    ;

                                //Histogram.LastRunRecordEnable = Mean | Histogram
                                Histogram.LastRunRecordEnable
                                    = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.Mean
                                    | Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.Histogram
                                    ;
                                break;
                        }
                        
                    }

                    //CogFindLineTool
                    else if (tool as Cognex.VisionPro.Caliper.CogFindLineTool != null)
                    {
                        Cognex.VisionPro.Caliper.CogFindLineTool FindLine = tool as Cognex.VisionPro.Caliper.CogFindLineTool;

                        switch (mode)
                        {
                            case ModificationMode.disable:
                                FindLine.CurrentRecordEnable = Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.None;
                                FindLine.LastRunRecordDiagEnable = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordDiagConstants.None;
                                FindLine.LastRunRecordEnable = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.None;
                                break;

                            case ModificationMode.enableALL:
                                FindLine.CurrentRecordEnable = Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.All;
                                FindLine.LastRunRecordDiagEnable = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordDiagConstants.All;
                                FindLine.LastRunRecordEnable = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.All;
                                break;

                            case ModificationMode.standard:
                                //FindLine.CurrentRecordEnable = ExpectedLineSegment | InteractiveCaliperSearchDirection | InteractiveCaliperSize | CaliperRegions | InputImage
                                FindLine.CurrentRecordEnable
                                    = Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.ExpectedLineSegment
                                    | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.InteractiveCaliperSearchDirection
                                    | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.InteractiveCaliperSize
                                    | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.CaliperRegions
                                    | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.InputImage
                                    ;

                                //FindLine.LastRunRecordDiagEnable = InputImageByReference
                                FindLine.LastRunRecordDiagEnable
                                    = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordDiagConstants.InputImageByReference
                                    ;

                                //FindLine.LastRunRecordEnable = ResultsIgnoredPoints | ResultsUsedPoints | BestFitLineSegment
                                FindLine.LastRunRecordEnable
                                    = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.ResultsIgnoredPoints
                                    | Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.ResultsUsedPoints
                                    | Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.BestFitLineSegment
                                    ;
                                break;
                        }
                        
                    }

                    //CogIPOneImageTool
                    else if (tool as Cognex.VisionPro.ImageProcessing.CogIPOneImageTool != null)
                    {
                        Cognex.VisionPro.ImageProcessing.CogIPOneImageTool oneImageTool = tool as Cognex.VisionPro.ImageProcessing.CogIPOneImageTool;

                        switch (mode)
                        {
                            case ModificationMode.disable:
                                oneImageTool.CurrentRecordEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.None;
                                oneImageTool.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordDiagConstants.None;
                                oneImageTool.LastRunRecordEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordConstants.None;
                                break;

                            case ModificationMode.enableALL:
                                oneImageTool.CurrentRecordEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.All;
                                oneImageTool.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordDiagConstants.All;
                                oneImageTool.LastRunRecordEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordConstants.All;
                                break;

                            case ModificationMode.standard:
                                //oneImageTool.CurrentRecordEnable = Region | InputImage
                                oneImageTool.CurrentRecordEnable
                                    = Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.Region
                                    | Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.InputImage
                                    ;

                                //oneImageTool.LastRunRecordDiagEnable = InputImageByReference
                                oneImageTool.LastRunRecordDiagEnable
                                    = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordDiagConstants.InputImageByReference
                                    ;

                                //oneImageTool.LastRunRecordEnable = OutputImage
                                oneImageTool.LastRunRecordEnable
                                    = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordConstants.OutputImage
                                    ;
                                break;
                        }
                    }

                    ////Handle further tools here
                    //CogPixelMapTool
                    //CogImageConvertTool


                    ////Cases for modes
                    //switch (mode)
                    //{
                    //    case ModificationMode.disable:

                    //        break;
                        
                    //    case ModificationMode.enableALL:

                    //        break;

                    //    case ModificationMode.standard:

                    //        break;
                    //}
                    
                    else
                    {
                        tmpProcessingString = String.Format("   Skipping: {0}({1})", tool.Name, tool.GetType().ToString());
                        //    //Breakpoint for unused tools :)
                        //    Trace.Write("Skip..." );
                    }
                }
                Trace.WriteLine(tmpProcessingString);
            }
        }
Example #26
0
 private bool GetImage(string pathin)
 {
     myToolGroup = (CogToolGroup)(myJobManager.Job(0).VisionTool);
     myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
     myImageFile.Operator.Open(pathin, CogImageFileModeConstants.Read);
     Imagein = new Bitmap(pathin);
     myImageFile.InputImage = new CogImage8Grey(Imagein);
     myImageFile.Run();
     return true;
 }
Example #27
0
        public static List <double> find(int toolNum, int method)
        {
            object toolgroup = CogSerializer.LoadObjectFromFile("c://tool.vpp");
            object job       = CogSerializer.LoadObjectFromFile("QuickBuild1.vpp");

            switch (toolNum)
            {
            case 0:  toolgroup = CogSerializer.LoadObjectFromFile("c://tool0.vpp");
                break;

            case 1:  toolgroup = CogSerializer.LoadObjectFromFile("c://tool1.vpp");
                break;

            case 2: toolgroup = CogSerializer.LoadObjectFromFile("c://tool2.vpp");
                break;

            case 3: toolgroup = CogSerializer.LoadObjectFromFile("c://tool3.vpp");
                break;

            default: break;
            }

            CogToolGroup  ToolGroup1 = toolgroup as CogToolGroup;
            CogJobManager cojob      = job as CogJobManager;
            CogJob        cojob      = cojob.Job["CogJob1"] as CogJob;


            CogImageFileTool myFile = ToolGroup1.Tools["CogImageFileTool1"] as CogImageFileTool;

            myFile.Run();
            CogFindCircleTool myCircleTool = ToolGroup1.Tools["CogFindCircleTool1"] as CogFindCircleTool;
            CogFindLineTool   myLineTool   = ToolGroup1.Tools["CogFindLineTool1"] as CogFindLineTool;

            switch (method)
            {
            case 1: myCircleTool.Run();
                break;

            case 2: myLineTool.Run();
                break;

            case 3: myCircleTool.Run();
                myLineTool.Run();
                break;

            default: break;
            }
            double Lx0    = 0;
            double Lx1    = 0;
            double Ly0    = 0;
            double Ly1    = 0;
            double Langle = 0;
            double Cx     = 0;
            double Cy     = 0;
            double Cr     = 0;


            if (method == 1 | method == 3)
            {
                Cx = myCircleTool.Results.GetCircle().CenterX;
                Cy = myCircleTool.Results.GetCircle().CenterY;
                Cr = myCircleTool.Results.GetCircle().Radius;
            }
            if (method == 2 | method == 3)
            {
                Lx0    = myLineTool.Results.GetLineSegment().StartX;
                Ly0    = myLineTool.Results.GetLineSegment().StartY;
                Lx1    = myLineTool.Results.GetLineSegment().EndX;
                Ly1    = myLineTool.Results.GetLineSegment().EndY;
                Langle = myLineTool.Results.GetLine().Rotation;
            }
            double[] result = { Cx, Cy, Cr, Lx0, Ly0, Lx1, Ly1, Langle };
            return(new List <double>(result));
        }
        private void modifyToolsInToolgroup(CogToolGroup toolGroup, ModificationMode mode)
        {
            Trace.WriteLine("ModifyToolsInToolGroup: Mode=" + mode);
            foreach (ICogTool tool in toolGroup.Tools)
            {
                //CogInputImageTool (Nicht beachten, da Kamera)

                //CogToolGroup
                if ((tmpToolGroup = (tool as CogToolGroup)) != null)
                {
                    tmpProcessingString = "Processing Group: " + tool.Name;
                    //recursively check all ToolBlocks/ToolGroups
                    modifyToolsInToolgroup(tmpToolGroup, mode);
                }
                else
                {
                    tmpProcessingString = "-> Processing: " + tool.Name;

                    //CogBlobTool
                    if (tool as Cognex.VisionPro.Blob.CogBlobTool != null)
                    {
                        Cognex.VisionPro.Blob.CogBlobTool Blob = tool as Cognex.VisionPro.Blob.CogBlobTool;

                        switch (mode)
                        {
                        case ModificationMode.disable:
                            Blob.CurrentRecordEnable     = Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.None;
                            Blob.LastRunRecordDiagEnable = Cognex.VisionPro.Blob.CogBlobLastRunRecordDiagConstants.None;
                            Blob.LastRunRecordEnable     = Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.None;
                            break;

                        case ModificationMode.enableALL:
                            Blob.CurrentRecordEnable     = Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.All;
                            Blob.LastRunRecordDiagEnable = Cognex.VisionPro.Blob.CogBlobLastRunRecordDiagConstants.All;
                            Blob.LastRunRecordEnable     = Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.All;
                            break;

                        case ModificationMode.standard:
                            //Blob.CurrentRecordEnable = Region | InputImageMask | Histogram | InputImage
                            Blob.CurrentRecordEnable
                                = Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.Region
                                  | Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.InputImageMask
                                  | Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.Histogram
                                  | Cognex.VisionPro.Blob.CogBlobCurrentRecordConstants.InputImage
                                ;

                            //Blob.LastRunRecordDiagEnable = InputImageByReference
                            Blob.LastRunRecordDiagEnable
                                = Cognex.VisionPro.Blob.CogBlobLastRunRecordDiagConstants.InputImageByReference
                                ;

                            //Blob.LastRunRecordEnable = ResultsBoundary | BlobImageUnfiltered | BlobImage
                            Blob.LastRunRecordEnable
                                = Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.ResultsBoundary
                                  | Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.BlobImageUnfiltered
                                  | Cognex.VisionPro.Blob.CogBlobLastRunRecordConstants.BlobImage
                                ;
                            break;
                        }
                    }

                    //CogPMAlignTool
                    else if (tool as Cognex.VisionPro.PMAlign.CogPMAlignTool != null)
                    {
                        Cognex.VisionPro.PMAlign.CogPMAlignTool PMAlign = tool as Cognex.VisionPro.PMAlign.CogPMAlignTool;

                        switch (mode)
                        {
                        case ModificationMode.disable:
                            PMAlign.CurrentRecordEnable     = Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.None;
                            PMAlign.LastRunRecordDiagEnable = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordDiagConstants.None;
                            PMAlign.LastRunRecordEnable     = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.None;
                            break;

                        case ModificationMode.enableALL:
                            PMAlign.CurrentRecordEnable     = Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.All;
                            PMAlign.LastRunRecordDiagEnable = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordDiagConstants.All;
                            PMAlign.LastRunRecordEnable     = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.All;
                            break;

                        case ModificationMode.standard:
                            //PMAlign.CurrentRecordEnable = InputImage | PatternOrigin | SearchImageMask | SearchRegion | TrainShapeModels | TrainImageMask | TrainRegion | TrainImage
                            PMAlign.CurrentRecordEnable
                                = Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.InputImage
                                  | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.PatternOrigin
                                  | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.SearchImageMask
                                  | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.SearchRegion
                                  | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainShapeModels
                                  | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainImageMask
                                  | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainRegion
                                  | Cognex.VisionPro.PMAlign.CogPMAlignCurrentRecordConstants.TrainImage
                                ;

                            //PMAlign.LastRunRecordDiagEnable = InputImageByReference
                            PMAlign.LastRunRecordDiagEnable
                                = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordDiagConstants.InputImageByReference
                                ;

                            //PMAlign.LastRunRecordEnable = ResultsMatchRegion | ResultsOrigin
                            PMAlign.LastRunRecordEnable
                                = Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.ResultsMatchRegion
                                  | Cognex.VisionPro.PMAlign.CogPMAlignLastRunRecordConstants.ResultsOrigin
                                ;
                            break;
                        }
                    }

                    //CogSearchMaxTool
                    else if (tool as Cognex.VisionPro.SearchMax.CogSearchMaxTool != null)
                    {
                        Cognex.VisionPro.SearchMax.CogSearchMaxTool SearchMax = tool as Cognex.VisionPro.SearchMax.CogSearchMaxTool;

                        switch (mode)
                        {
                        case ModificationMode.disable:
                            SearchMax.CurrentRecordEnable     = Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.None;
                            SearchMax.LastRunRecordDiagEnable = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordDiagConstants.None;
                            SearchMax.LastRunRecordEnable     = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.None;
                            break;

                        case ModificationMode.enableALL:
                            SearchMax.CurrentRecordEnable     = Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.All;
                            SearchMax.LastRunRecordDiagEnable = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordDiagConstants.All;
                            SearchMax.LastRunRecordEnable     = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.All;
                            break;

                        case ModificationMode.standard:
                            //SearchMax.CurrentRecordEnable = PatternOrigin | TrainRegion | TrainImageMask | TrainImage | SearchImageMask | SearchRegion | InputImage
                            SearchMax.CurrentRecordEnable
                                = Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.PatternOrigin
                                  | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.TrainRegion
                                  | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.TrainImageMask
                                  | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.TrainImage
                                  | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.SearchImageMask
                                  | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.SearchRegion
                                  | Cognex.VisionPro.SearchMax.CogSearchMaxCurrentRecordConstants.InputImage
                                ;

                            //SearchMax.LastRunRecordDiagEnable = InputImageByReference
                            SearchMax.LastRunRecordDiagEnable
                                = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordDiagConstants.InputImageByReference
                                ;

                            //SearchMax.LastRunRecordEnable = ResultsOrigin | ResultsMatchRegion
                            SearchMax.LastRunRecordEnable
                                = Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.ResultsOrigin
                                  | Cognex.VisionPro.SearchMax.CogSearchMaxLastRunRecordConstants.ResultsMatchRegion
                                ;
                            break;
                        }
                    }

                    //CogFixtureTool
                    else if (tool as Cognex.VisionPro.CalibFix.CogFixtureTool != null)
                    {
                        Cognex.VisionPro.CalibFix.CogFixtureTool FixtureTool = tool as Cognex.VisionPro.CalibFix.CogFixtureTool;

                        switch (mode)
                        {
                        case ModificationMode.disable:
                            FixtureTool.CurrentRecordEnable     = Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.None;
                            FixtureTool.LastRunRecordDiagEnable = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordDiagConstants.None;
                            FixtureTool.LastRunRecordEnable     = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordConstants.None;
                            break;

                        case ModificationMode.enableALL:
                            FixtureTool.CurrentRecordEnable     = Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.All;
                            FixtureTool.LastRunRecordDiagEnable = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordDiagConstants.All;
                            FixtureTool.LastRunRecordEnable     = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordConstants.All;
                            break;

                        case ModificationMode.standard:
                            //FixtureTool.CurrentRecordEnable = InputImage | FixturedAxes
                            FixtureTool.CurrentRecordEnable
                                = Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.InputImage
                                  | Cognex.VisionPro.CalibFix.CogFixtureCurrentRecordConstants.FixturedAxes
                                ;

                            //FixtureTool.LastRunRecordDiagEnable = FixturedAxes
                            FixtureTool.LastRunRecordDiagEnable
                                = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordDiagConstants.FixturedAxes
                                ;

                            //FixtureTool.LastRunRecordEnable = OutputImage
                            FixtureTool.LastRunRecordEnable
                                = Cognex.VisionPro.CalibFix.CogFixtureLastRunRecordConstants.OutputImage
                                ;
                            break;
                        }
                    }

                    //CogHistogramTool
                    else if (tool as Cognex.VisionPro.ImageProcessing.CogHistogramTool != null)
                    {
                        Cognex.VisionPro.ImageProcessing.CogHistogramTool Histogram = tool as Cognex.VisionPro.ImageProcessing.CogHistogramTool;

                        switch (mode)
                        {
                        case ModificationMode.disable:
                            Histogram.CurrentRecordEnable     = Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.None;
                            Histogram.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordDiagConstants.None;
                            Histogram.LastRunRecordEnable     = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.None;
                            break;

                        case ModificationMode.enableALL:
                            Histogram.CurrentRecordEnable     = Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.All;
                            Histogram.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordDiagConstants.All;
                            Histogram.LastRunRecordEnable     = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.All;
                            break;

                        case ModificationMode.standard:
                            //Histogram.CurrentRecordEnable = Region | InputImageMask | InputImage
                            Histogram.CurrentRecordEnable
                                = Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.Region
                                  | Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.InputImageMask
                                  | Cognex.VisionPro.ImageProcessing.CogHistogramCurrentRecordConstants.InputImage
                                ;

                            //Histogram.LastRunRecordDiagEnable = InputImageByReference
                            Histogram.LastRunRecordDiagEnable
                                = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordDiagConstants.InputImageByReference
                                ;

                            //Histogram.LastRunRecordEnable = Mean | Histogram
                            Histogram.LastRunRecordEnable
                                = Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.Mean
                                  | Cognex.VisionPro.ImageProcessing.CogHistogramLastRunRecordConstants.Histogram
                                ;
                            break;
                        }
                    }

                    //CogFindLineTool
                    else if (tool as Cognex.VisionPro.Caliper.CogFindLineTool != null)
                    {
                        Cognex.VisionPro.Caliper.CogFindLineTool FindLine = tool as Cognex.VisionPro.Caliper.CogFindLineTool;

                        switch (mode)
                        {
                        case ModificationMode.disable:
                            FindLine.CurrentRecordEnable     = Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.None;
                            FindLine.LastRunRecordDiagEnable = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordDiagConstants.None;
                            FindLine.LastRunRecordEnable     = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.None;
                            break;

                        case ModificationMode.enableALL:
                            FindLine.CurrentRecordEnable     = Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.All;
                            FindLine.LastRunRecordDiagEnable = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordDiagConstants.All;
                            FindLine.LastRunRecordEnable     = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.All;
                            break;

                        case ModificationMode.standard:
                            //FindLine.CurrentRecordEnable = ExpectedLineSegment | InteractiveCaliperSearchDirection | InteractiveCaliperSize | CaliperRegions | InputImage
                            FindLine.CurrentRecordEnable
                                = Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.ExpectedLineSegment
                                  | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.InteractiveCaliperSearchDirection
                                  | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.InteractiveCaliperSize
                                  | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.CaliperRegions
                                  | Cognex.VisionPro.Caliper.CogFindLineCurrentRecordConstants.InputImage
                                ;

                            //FindLine.LastRunRecordDiagEnable = InputImageByReference
                            FindLine.LastRunRecordDiagEnable
                                = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordDiagConstants.InputImageByReference
                                ;

                            //FindLine.LastRunRecordEnable = ResultsIgnoredPoints | ResultsUsedPoints | BestFitLineSegment
                            FindLine.LastRunRecordEnable
                                = Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.ResultsIgnoredPoints
                                  | Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.ResultsUsedPoints
                                  | Cognex.VisionPro.Caliper.CogFindLineLastRunRecordConstants.BestFitLineSegment
                                ;
                            break;
                        }
                    }

                    //CogIPOneImageTool
                    else if (tool as Cognex.VisionPro.ImageProcessing.CogIPOneImageTool != null)
                    {
                        Cognex.VisionPro.ImageProcessing.CogIPOneImageTool oneImageTool = tool as Cognex.VisionPro.ImageProcessing.CogIPOneImageTool;

                        switch (mode)
                        {
                        case ModificationMode.disable:
                            oneImageTool.CurrentRecordEnable     = Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.None;
                            oneImageTool.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordDiagConstants.None;
                            oneImageTool.LastRunRecordEnable     = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordConstants.None;
                            break;

                        case ModificationMode.enableALL:
                            oneImageTool.CurrentRecordEnable     = Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.All;
                            oneImageTool.LastRunRecordDiagEnable = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordDiagConstants.All;
                            oneImageTool.LastRunRecordEnable     = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordConstants.All;
                            break;

                        case ModificationMode.standard:
                            //oneImageTool.CurrentRecordEnable = Region | InputImage
                            oneImageTool.CurrentRecordEnable
                                = Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.Region
                                  | Cognex.VisionPro.ImageProcessing.CogIPOneImageCurrentRecordConstants.InputImage
                                ;

                            //oneImageTool.LastRunRecordDiagEnable = InputImageByReference
                            oneImageTool.LastRunRecordDiagEnable
                                = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordDiagConstants.InputImageByReference
                                ;

                            //oneImageTool.LastRunRecordEnable = OutputImage
                            oneImageTool.LastRunRecordEnable
                                = Cognex.VisionPro.ImageProcessing.CogIPOneImageLastRunRecordConstants.OutputImage
                                ;
                            break;
                        }
                    }

                    ////Handle further tools here
                    //CogPixelMapTool
                    //CogImageConvertTool


                    ////Cases for modes
                    //switch (mode)
                    //{
                    //    case ModificationMode.disable:

                    //        break;

                    //    case ModificationMode.enableALL:

                    //        break;

                    //    case ModificationMode.standard:

                    //        break;
                    //}

                    else
                    {
                        tmpProcessingString = String.Format("   Skipping: {0}({1})", tool.Name, tool.GetType().ToString());
                        //    //Breakpoint for unused tools :)
                        //    Trace.Write("Skip..." );
                    }
                }
                Trace.WriteLine(tmpProcessingString);
            }
        }
Example #29
0
 private bool GetImage(int numOfVpps, List<string> pathin)
 {
     if (null == pathin[numOfVpps])
     {
         return false;
     }
     else
     {
         myToolGroup = (CogToolGroup)(myJobManager[numOfVpps].Job(numOfVpps).VisionTool);
         myImageFile = (CogImageFileTool)(myToolGroup.Tools["CogImageFileTool1"]);
         myImageFile.Operator.Open(pathin[numOfVpps], CogImageFileModeConstants.Read);
         Imagein = new Bitmap(pathin[numOfVpps]);
         myImageFile.InputImage = new CogImage8Grey(Imagein);
         myImageFile.Run();
         Imagein = null;
     }
     return true;
 }