在脚本中添加相应代码便可显示相应字符:
VisionPro中添加如下工具并建立链接:
脚本中添加变量Radius、CogFindCircleToolObject、myCircle如下:
1 #region Private Member Variables
2 private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock; 3 private double Radius = 0; 4 private CogFindCircleTool CogFindCircleToolObject; 5 private CogCircle myCircle; 6 #endregion
脚本GroupRun中添加代码如下:
1 public override bool GroupRun(ref string message, ref CogToolResultConstants result) 2 { 3 // To let the execution stop in this script when a debugger is attached, uncomment the following lines. 4 // #if DEBUG 5 // if (System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Break(); 6 // #endif 7
8
9 // Run each tool using the RunTool function
10 foreach(ICogTool tool in mToolBlock.Tools) 11 mToolBlock.RunTool(tool, ref message, ref result); 12
13 CogFindCircleToolObject = (CogFindCircleTool) mToolBlock.Tools["CogFindCircleTool1"]; 14
15 myCircle = CogFindCircleToolObject.Results.GetCircle(); 16
17 Radius = double.Parse(myCircle.Radius.ToString("0.00")); 18
19 return false; 20 }
脚本ModifyLastRunRecord中添加代码如下:
1 public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord) 2 { 3 CogGraphicLabel ResultLabel = new CogGraphicLabel(); 4 string labelStr = string.Format("Radius={0:F2} pixel", Radius); 5 ResultLabel.SetXYText(myCircle.CenterX, myCircle.CenterY, labelStr); 6 ResultLabel.Color = Cognex.VisionPro.CogColorConstants.Blue; 7 mToolBlock.AddGraphicToRunRecord(ResultLabel, lastRecord, "CogImageConvertTool1.OutputImage", "script"); 8 }
完整脚本代码:
1 #region namespace imports
2 using System; 3 using System.Collections; 4 using System.Drawing; 5 using System.IO; 6 using System.Windows.Forms; 7 using Cognex.VisionPro; 8 using Cognex.VisionPro.ToolBlock; 9 using Cognex.VisionPro3D; 10 using Cognex.VisionPro.QuickBuild.Implementation.Internal; 11 using Cognex.VisionPro.ImageProcessing; 12 using Cognex.VisionPro.Caliper; 13 #endregion
14
15 public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase 16 { 17 #region Private Member Variables
18 private Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock; 19 private double Radius = 0; 20 private CogFindCircleTool CogFindCircleToolObject; 21 private CogCircle myCircle; 22 #endregion
23
24 /// <summary>
25 /// Called when the parent tool is run. 26 /// Add code here to customize or replace the normal run behavior. 27 /// </summary>
28 /// <param name="message">Sets the Message in the tool's RunStatus.</param>
29 /// <param name="result">Sets the Result in the tool's RunStatus</param>
30 /// <returns>True if the tool should run normally, 31 /// False if GroupRun customizes run behavior</returns>
32 public override bool GroupRun(ref string message, ref CogToolResultConstants result) 33 { 34 // To let the execution stop in this script when a debugger is attached, uncomment the following lines. 35 // #if DEBUG 36 // if (System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Break(); 37 // #endif 38
39
40 // Run each tool using the RunTool function
41 foreach(ICogTool tool in mToolBlock.Tools) 42 mToolBlock.RunTool(tool, ref message, ref result); 43
44 CogFindCircleToolObject = (CogFindCircleTool) mToolBlock.Tools["CogFindCircleTool1"]; 45
46 myCircle = CogFindCircleToolObject.Results.GetCircle(); 47
48 Radius = double.Parse(myCircle.Radius.ToString("0.00")); 49
50 return false; 51 } 52
53 #region When the Current Run Record is Created
54 /// <summary>
55 /// Called when the current record may have changed and is being reconstructed 56 /// </summary>
57 /// <param name="currentRecord">
58 /// The new currentRecord is available to be initialized or customized.</param>
59 public override void ModifyCurrentRunRecord(Cognex.VisionPro.ICogRecord currentRecord) 60 { 61 } 62 #endregion
63
64 #region When the Last Run Record is Created
65 /// <summary>
66 /// Called when the last run record may have changed and is being reconstructed 67 /// </summary>
68 /// <param name="lastRecord">
69 /// The new last run record is available to be initialized or customized.</param>
70 public override void ModifyLastRunRecord(Cognex.VisionPro.ICogRecord lastRecord) 71 { 72 CogGraphicLabel ResultLabel = new CogGraphicLabel(); 73 string labelStr = string.Format("Radius={0:F2} pixel", Radius); 74 ResultLabel.SetXYText(myCircle.CenterX, myCircle.CenterY, labelStr); 75 ResultLabel.Color = Cognex.VisionPro.CogColorConstants.Blue; 76 mToolBlock.AddGraphicToRunRecord(ResultLabel, lastRecord, "CogImageConvertTool1.OutputImage", "script"); 77 } 78 #endregion
79
80 #region When the Script is Initialized
81 /// <summary>
82 /// Perform any initialization required by your script here 83 /// </summary>
84 /// <param name="host">The host tool</param>
85 public override void Initialize(Cognex.VisionPro.ToolGroup.CogToolGroup host) 86 { 87 // DO NOT REMOVE - Call the base class implementation first - DO NOT REMOVE
88 base.Initialize(host); 89
90
91 // Store a local copy of the script host
92 this.mToolBlock = ((Cognex.VisionPro.ToolBlock.CogToolBlock)(host)); 93 } 94 #endregion
95
96 }