public static List <Ptma> LoadFromXML(String xmlDoc) { List <Ptma> list = new List <Ptma>(); XmlDocument xml = new XmlDocument(); xml.LoadXml(xmlDoc); XmlNodeList ptmaNodesList = xml.SelectNodes("list/pmat"); foreach (XmlNode node in ptmaNodesList) { Ptma obj = new Ptma(); obj.name = node.Attributes["name"].Value; obj.text = node.Attributes["text"].Value; obj.image = MakeThumbnail(node.Attributes["image"].Value, 40, 40, "H"); obj.imageSrc = node.Attributes["image"].Value; obj.enable = int.Parse(node.Attributes["enable"].Value); obj._dx = int.Parse(node.Attributes["_dx"].Value); obj._dy = int.Parse(node.Attributes["_dy"].Value); obj.dx = int.Parse(node.Attributes["dx"].Value); obj.dy = int.Parse(node.Attributes["dy"].Value); obj.opt = global::YYSCognexTool.Properties.Resources.start_40; list.Add(obj); } return(list); }
private void FrmMain_Shown(object sender, EventArgs e) { cogToolDisplay.Dock = DockStyle.Fill; this.spcMain.Panel2.Controls.Add(cogToolDisplay); this.list = Ptma.LoadFromPath("config.xml"); for (int i = 0; i < list.Count; i++) { Cognex.VisionPro.PMAlign.CogPMAlignTool cogPMAlignTool = new Cognex.VisionPro.PMAlign.CogPMAlignTool(); cogPMAlignTool.Pattern.TrainImage = new CogImage8Grey(new Bitmap(list[i].imageSrc)); cogPMAlignTool.Pattern.TrainRegion = null; cogPMAlignTool.Pattern.Origin.TranslationX = cogPMAlignTool.Pattern.TrainImage.Width / 2; cogPMAlignTool.Pattern.Origin.TranslationY = cogPMAlignTool.Pattern.TrainImage.Height / 2; cogPMAlignTool.RunParams.AcceptThreshold = 0.8; //cogPMAlignTool.LastRunRecordDiagEnable = cogPMAlignTool.LastRunRecordDiagEnable&CogPMAlignLastRunRecordDiagConstants.ResultsMatchFeatures; cogPMAlignTool.LastRunRecordEnable = CogPMAlignLastRunRecordConstants.ResultsMatchShapeModels | CogPMAlignLastRunRecordConstants.ResultsCoordinateAxes | cogPMAlignTool.LastRunRecordEnable | CogPMAlignLastRunRecordConstants.ResultsMatchRegion; cogPMAlignTool.RunParams.RunAlgorithm = CogPMAlignRunAlgorithmConstants.BestTrained; cogPMAlignTool.RunParams.ZoneScale.Low = 0.5;// = new CogPMAlignZoneScale(); cogPMAlignTool.RunParams.ZoneScale.High = 2; cogPMAlignTool.Pattern.Train(); cogPMAlignTool.Ran += new EventHandler(cogPMAlignTool_Ran); this.toolList.Add(cogPMAlignTool); } this.dgvMain.DataSource = this.list; Thread bgThread = new Thread(CaptureAndAnalyse); bgThread.IsBackground = true; bgThread.Start(); }