1 /// <summary> 2 /// 将指定颜色的十字线图形添加到CogRecordDisplay上 3 /// </summary> 4 /// <param name="icogimage"></param> 5 /// <returns></returns> 6 public static string AddCrossCurveRecord2CogRecordDisplay(ICogImage Image, /*ref*/ CogRecordDisplay cogrecorddisplay, Cognex.VisionPro.CogColorConstants CrosshairColor) 7 { 8 string strmsg = ""; 9 CogCreateLineTool[] cogCreateTool = new CogCreateLineTool[2] {new CogCreateLineTool(),new CogCreateLineTool() }; 10 CogGraphicCollection cgc = new CogGraphicCollection(); 11 ICogImage icogimage = Image; 12 ClearCogRecordDisplay(cogrecorddisplay); 13 try 14 { 15 //cogrecorddisplay.Image = icogimage; 16 if (cogrecorddisplay.Image==null) 17 { 18 if (icogimage!=null) 19 { 20 cogrecorddisplay.Image = icogimage; 21 } 22 else 23 { 24 cogrecorddisplay.Image = new CogImage8Grey(icogimage.Width, icogimage.Height); 25 } 26 } 27 if (cogrecorddisplay.Image != null) 28 { 29 for (int i = 0; i < 2; i++) 30 { 31 cogCreateTool[i].InputImage = cogrecorddisplay.Image; 32 cogCreateTool[i].OutputColor = CrosshairColor; 33 cogCreateTool[i].Line.X = cogrecorddisplay.Image.Width / 2; 34 cogCreateTool[i].Line.Y = cogrecorddisplay.Image.Height / 2; 35 36 switch (i) 37 { 38 case 0: 39 cogCreateTool[i].Line.Rotation = 0; 40 break; 41 case 1: 42 cogCreateTool[i].Line.Rotation = 90 / (180 / Math.PI); 43 break; 44 default: 45 break; 46 } 47 cogCreateTool[i].Run(); 48 GraphicsAddIn(Get_ToolResultGC(cogCreateTool[i]), ref cgc); 49 } 50 ShowImageAndGc2CogRecordDisplay(ref cogrecorddisplay, cgc); 51 } 52 else 53 { 54 strmsg += "cogrecorddisplay中没有图像!"; 55 } 56 } 57 catch (Exception ex) 58 { 59 strmsg += ex.Message; 60 } 61 return strmsg; 62 }
1 /// <summary> 2 /// 清空CogRecordDisplay中的图形和图像 3 /// </summary> 4 /// <param name="crd"></param> 5 /// <returns></returns> 6 public static string ClearCogRecordDisplay( CogRecordDisplay crd) 7 { 8 string strmsg = ""; 9 try 10 { 11 ClearCogRecordDisplayWithoutImage(crd); 12 crd.Image = null; 13 } 14 catch (Exception ex) 15 { 16 strmsg = ex.Message; 17 } 18 return strmsg; 19 } 20 /// <summary> 21 /// 清空CogRecordDisplay中的图形但不清空图像 22 /// </summary> 23 /// <param name="crd"></param> 24 /// <returns></returns> 25 public static string ClearCogRecordDisplayWithoutImage(CogRecordDisplay crd) 26 { 27 string strmsg = ""; 28 try 29 { 30 crd.StaticGraphics.Clear(); 31 crd.InteractiveGraphics.Clear(); 32 //crd.Image = null; 33 } 34 catch (Exception ex) 35 { 36 strmsg = ex.Message; 37 } 38 return strmsg; 39 } 40 41 42 /// <summary> 43 /// 获取工具的CogGraphicCollection(几何图形图集) 44 /// </summary> 45 /// <param name="Tool"></param> 46 /// <returns></returns> 47 public static CogGraphicCollection Get_ToolResultGC(ICogTool Tool) 48 { 49 CogGraphicCollection graphics = new CogGraphicCollection(); 50 if (Tool == null) 51 { 52 return graphics; 53 } 54 return Get_ToolResultGC_Ext(Tool); 55 } 56 57 /// <summary> 58 /// 获取工具的CogGraphicCollection(几何图形图集) 59 /// </summary> 60 /// <param name="Tool"></param> 61 /// <returns></returns> 62 public static CogGraphicCollection Get_ToolResultGC_Ext(ICogTool Tool) 63 { 64 CogGraphicCollection graphics = new CogGraphicCollection(); 65 if (Tool != null) 66 { 67 Tool.GetType(); 68 ICogRecord record = Tool.CreateLastRunRecord(); 69 ICogRecords records = record.SubRecords; 70 try 71 { 72 73 if (records == null) 74 { 75 return graphics; 76 } 77 int count = record.SubRecords.Count; 78 List<string> list = new List<string>(); 79 for (int i = 0; i < record.SubRecords.Count; i++) 80 { 81 foreach (object obj2 in record.SubRecords[i].SubRecords) 82 { 83 ICogRecord record3 = (ICogRecord)obj2; 84 85 Type type = ((ICogRecord)obj2).ContentType; 86 list.Add(type.Name); 87 if (type.Name == "CogGraphicCollection") 88 { 89 CogGraphicCollection graphics2 = (CogGraphicCollection)record3.Content; 90 for (int j = 0; j < graphics2.Count; j++) 91 { 92 graphics.Add(graphics2[j]); 93 } 94 } 95 else if (type.Name == "ICogGraphicInteractive") 96 { 97 ICogGraphicInteractive interactive = (ICogGraphicInteractive)record3.Content; 98 graphics.Add(interactive); 99 } 100 } 101 } 102 int num3 = records.Count; 103 } 104 catch (Exception ex) 105 { 106 } 107 } 108 return graphics; 109 } 110 111 /// <summary> 112 /// 将一个CogGraphicCollection(几何图形集合)添加到另一个CogGraphicCollection(几何图形集合) 113 /// </summary> 114 /// <param name="GC_Source"></param> 115 /// <param name="GC_Target"></param> 116 public static void GraphicsAddIn(CogGraphicCollection GC_Source, ref CogGraphicCollection GC_Target) 117 { 118 if ((GC_Source != null) && (GC_Target != null)) 119 { 120 for (int i = 0; i < GC_Source.Count; i++) 121 { 122 GC_Target.Add(GC_Source[i]); 123 } 124 } 125 } 126 127 /// <summary> 128 /// 将几何图形添加到指定CogRecordDisplay上 129 /// </summary> 130 /// <param name="cogRD"></param> 131 /// <param name="gc"></param> 132 public static void ShowImageAndGc2CogRecordDisplay(ref CogRecordDisplay cogRD, CogGraphicCollection gc) 133 { 134 cogRD.Fit(false); 135 if ((gc != null) && (gc.Count > 0)) 136 { 137 try 138 { 139 for (int i = 0; i < gc.Count; i++) 140 { 141 cogRD.StaticGraphics.Add(gc[i], ""); 142 } 143 } 144 catch (Exception ex) 145 { 146 } 147 } 148 }
标签:十字线,CogGraphicCollection,C#,CogRecordDisplay,Image,strmsg,Visionpro,null,cogreco From: https://www.cnblogs.com/wwdwwd/p/18454943