VP引导定位软件-平移九点标定生产验证 一 生产TB
一 加载图像 private void materialButton19_Click ( object sender, EventArgs e) { OpenFileDialog openFileDialog= new OpenFileDialog ( ) ; if ( openFileDialog. ShowDialog ( ) == DialogResult. OK) { string filePath= openFileDialog. FileName; m_ImageFileTool. Operator. Open ( filePath, CogImageFileModeConstants. Read) ; // 运行工具 m_ImageFileTool. Run ( ) ; // 获取结果图像,进行显示 cogRecordDisplay7. Image= m_ImageFileTool. OutputImage; // 自适应大小 cogRecordDisplay7. Fit ( true ) ; } } 二 加载TB private void materialButton18_Click ( object sender, EventArgs e) { // 创建对话框对象 using ( OpenFileDialog ofd= new OpenFileDialog ( ) ) { // 过滤器 ofd. Filter= "CogToolBlock类型 | *.vpp" ; // 打开选择窗口 if ( ofd. ShowDialog ( ) == DialogResult. OK) { // 获取vpp文件的路径 string tbPath= ofd. FileName; try { // 加载toolblock mToolBlock= CogSerializer. LoadObjectFromFile ( tbPath) as CogToolBlock ; // 绑定到ToolBlockEditorV2 cogToolBlockEditV24. Subject= mToolBlock; // 绑定运行完成后的方法 mToolBlock. Ran+= AfterRun4; } catch ( Exception ex) { MessageBox. Show ( ex. Message) ; } } } } privatevoid AfterRun4 ( object sender, EventArgs e) { } 三 运行TB // 输入图像 mToolBlock. Inputs[ "img" ] . Value= m_ImageFileTool. OutputImage; // 执行 mToolBlock. Run ( ) ; 四 保存TB private void materialButton16_Click ( object sender, EventArgs e) { // 保存mToolBlock到文件 if ( ! Directory. Exists ( @".\Algo" ) ) { Directory. CreateDirectory ( @".\Algo" ) ; } string savePath= @".\Algo\生产TB.vpp" ; // 替换为你想要保存的路径 CogSerializer. SaveObjectToFile ( mToolBlock, savePath) ; MessageBox. Show ( "保存成功!" ) ; } Location1 public CogToolBlock Location1_ToolBlock; publicVpAlgo ( ) { mToolBlock= CogSerializer. LoadObjectFromFile ( @".\Algo\myToolBlock.vpp" ) as CogToolBlock; DetectCircle_ToolBlock= CogSerializer. LoadObjectFromFile ( @".\Algo\九点标定圆定位TB.vpp" ) as CogToolBlock; CalibNPoint_ToolBlock= CogSerializer. LoadObjectFromFile ( @".\Algo\九点标定TB.vpp" ) as CogToolBlock; Location1_ToolBlock= CogSerializer. LoadObjectFromFile ( @".\Algo\生产TB.vpp" ) as CogToolBlock; } /// <summary> /// 定位1 /// </summary> /// <param name="img"></param> /// <param name="MoveX"></param> /// <param name="MoveY"></param> publicvoid Location1 ( ICogImage img, outdouble MoveX, outdouble MoveY) { // 输入图像 CalibNPoint_ToolBlock. Inputs[ "img" ] . Value= img; // 执行 CalibNPoint_ToolBlock. Run ( ) ; ICogImage img2= CalibNPoint_ToolBlock. Outputs[ "img" ] . Value as ICogImage; // 输入图像 Location1_ToolBlock. Inputs[ "img" ] . Value= img2; // 执行 Location1_ToolBlock. Run ( ) ; // 获取圆心X、Y MoveX= ( double ) DetectCircle_ToolBlock. Outputs[ "X" ] . Value; MoveY= ( double ) DetectCircle_ToolBlock. Outputs[ "Y" ] . Value; } AlgorithmService /// <summary> /// 检测圆心 /// </summary> /// <param name="Image"></param> /// <param name="ImageX"></param> /// <param name="ImageY"></param> publicvoid Location1 ( ICogImage Image, out Double MoveX, out Double MoveY) { vpAlgo. Location1 ( Image, out Double y, out Double x) ; MoveX= x; MoveY= y; } 生产流程 if ( GlobalParameters. SoftModel== "Location" ) { // 一 获取圆的中心 AlgorithmService. Instance. Location1 ( info. Image, outdouble moveX, outdouble moveY) ; // CommunicateService.Instance.Send("NG"); Log. Info ( $"MoveX : {moveX} MoveY :{moveY}" ) ; }