Files
VisionEdit/HDevEngineTool/FormHDevEngineTool.cs
liu.wenjie 7ca84a8720 1、添加手眼标定工具,可选择4点或者9点标定,输出标定矩阵
2、修正Halcon引擎运行工具
3、添加相机SDK工具,但需完善
4、HalconTool取图工具增加选择文件夹功能
5、实现Job窗体可添加多个流程
2022-04-21 14:10:04 +08:00

129 lines
4.0 KiB
C#

using CommonMethods;
using FormLib;
using HalconDotNet;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ViewROI;
namespace HDevEngineTool
{
public partial class FormHDevEngineTool : Form
{
private HDevEngineCode myHDevEngine = new HDevEngineCode();
public IToolInfo myToolInfo = new IToolInfo();
public HWindowTool_Smart myHwindow = new HWindowTool_Smart();
public FormHDevEngineTool(ref object hdevEngine)
{
InitializeComponent();
_instance = this;
if (hdevEngine.GetType().FullName != "System.Object")
{
myToolInfo = (IToolInfo)hdevEngine;
myHDevEngine = (HDevEngineCode)myToolInfo.tool;
myHDevEngine.toolName = myToolInfo.FormToolName;
myHDevEngine.DispImage();
}
}
/// <summary>
/// 窗体对象实例
/// </summary>
private static FormHDevEngineTool _instance;
public static FormHDevEngineTool Instance
{
get
{
if (_instance != null)
{
lock (_instance)
{
if (_instance == null)
{
object hdevEngine = new object();
_instance = new FormHDevEngineTool(ref hdevEngine);
}
return _instance;
}
}
else
{
object hdevEngine = new object();
_instance = new FormHDevEngineTool(ref hdevEngine);
return _instance;
}
}
}
private void FormHDevEngineTool_Load(object sender, EventArgs e)
{
this.panelHImageWindow.Controls.Add(myHwindow);
myHwindow.Dock = DockStyle.Fill;
}
public void InitTool()
{
txbCodeText.Text = myHDevEngine.CodeText;
}
private void tsbReadHdev_Click(object sender, EventArgs e)
{
OpenFileDialog myDia = new OpenFileDialog();
myDia.Filter = "Halcon程序(*.hdev)|*.hdev";
myDia.Title = "打开Halcon程序";
if (myDia.ShowDialog() == DialogResult.OK)
{
string filePath = myDia.FileName;
myHDevEngine.CodeFilePath = filePath;
string hdevText = FileOperate.ReadFile(filePath);
txbCodeText.Text = hdevText;
}
}
private void tsbSaveHdev_Click(object sender, EventArgs e)
{
SaveFileDialog myDia = new SaveFileDialog();
myDia.Filter = "Halcon程序(*.hdev)|*.hdev";
if (myDia.ShowDialog() == DialogResult.OK)
{
string path = myDia.FileName;
myHDevEngine.CodeFilePath = path;
FileOperate.WriteFile(path, txbCodeText.Text);
}
}
private void tsbReLoad_Click(object sender, EventArgs e)
{
if (File.Exists(myHDevEngine.CodeFilePath))
{
FileInfo myFileInfo = new FileInfo(myHDevEngine.CodeFilePath);
myHDevEngine.MyEngine.SetProcedurePath(myFileInfo.DirectoryName);
myHDevEngine.MyProgram.LoadProgram(myHDevEngine.CodeFilePath);
myHDevEngine.ProgramCall = new HDevProgramCall(myHDevEngine.MyProgram);
myHDevEngine.MyEngine.SetHDevOperators(new HDevOpMultiWindowImpl(myHwindow.SmartWindow.HalconWindow));
}
}
private void tsbtRunTool_Click(object sender, EventArgs e)
{
if(myHDevEngine.ProgramCall != null)
{
myHDevEngine.ProgramCall.Execute();
}
}
}
}