From df5faaa04b582bec2ae7636478f72996a608f8c3 Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期五, 26 十二月 2025 12:27:15 +0800
Subject: [PATCH] ”添加运动控制功能。“
---
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs | 369 ++++++++++++++
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs | 781 +++++++++++++++++++++++++++++++
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.cs | 155 ++++++
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.resx | 144 +++++
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs | 35
5 files changed, 1,463 insertions(+), 21 deletions(-)
diff --git a/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs
index 5abb7ca..477b065 100644
--- a/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs
+++ b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.Designer.cs
@@ -33,7 +33,7 @@
{
uiButton1 = new HopeButton();
uiButton2 = new LostButton();
- uiFlowLayoutPanel1 = new FlowLayoutPanel();
+ uiMCLayoutPanel1 = new FlowLayoutPanel();
tableLayoutPanel1 = new TableLayoutPanel();
tableLayoutPanel2 = new TableLayoutPanel();
tableLayoutPanel1.SuspendLayout();
@@ -61,6 +61,7 @@
uiButton1.Text = "澧炲姞";
uiButton1.TextColor = Color.White;
uiButton1.WarningColor = Color.FromArgb(230, 162, 60);
+ uiButton1.Click += uiButton1_Click;
//
// uiButton2
//
@@ -78,27 +79,27 @@
uiButton2.TabIndex = 12;
uiButton2.Text = "娓呴櫎";
//
- // uiFlowLayoutPanel1
+ // uiMCLayoutPanel1
//
- uiFlowLayoutPanel1.BackColor = Color.FromArgb(32, 41, 50);
- uiFlowLayoutPanel1.Dock = DockStyle.Fill;
- uiFlowLayoutPanel1.Font = new Font("瀹嬩綋", 12F);
- uiFlowLayoutPanel1.ForeColor = SystemColors.Control;
- uiFlowLayoutPanel1.Location = new Point(4, 5);
- uiFlowLayoutPanel1.Margin = new Padding(4, 5, 4, 5);
- uiFlowLayoutPanel1.MinimumSize = new Size(1, 1);
- uiFlowLayoutPanel1.Name = "uiFlowLayoutPanel1";
- uiFlowLayoutPanel1.Padding = new Padding(2);
- uiFlowLayoutPanel1.Size = new Size(599, 293);
- uiFlowLayoutPanel1.TabIndex = 10;
- uiFlowLayoutPanel1.Text = "`";
+ uiMCLayoutPanel1.BackColor = Color.FromArgb(32, 41, 50);
+ uiMCLayoutPanel1.Dock = DockStyle.Fill;
+ uiMCLayoutPanel1.Font = new Font("瀹嬩綋", 12F);
+ uiMCLayoutPanel1.ForeColor = SystemColors.Control;
+ uiMCLayoutPanel1.Location = new Point(4, 5);
+ uiMCLayoutPanel1.Margin = new Padding(4, 5, 4, 5);
+ uiMCLayoutPanel1.MinimumSize = new Size(1, 1);
+ uiMCLayoutPanel1.Name = "uiMCLayoutPanel1";
+ uiMCLayoutPanel1.Padding = new Padding(2);
+ uiMCLayoutPanel1.Size = new Size(599, 293);
+ uiMCLayoutPanel1.TabIndex = 10;
+ uiMCLayoutPanel1.Text = "`";
//
// tableLayoutPanel1
//
tableLayoutPanel1.ColumnCount = 1;
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
- tableLayoutPanel1.Controls.Add(uiFlowLayoutPanel1, 0, 0);
+ tableLayoutPanel1.Controls.Add(uiMCLayoutPanel1, 0, 0);
tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 1);
tableLayoutPanel1.Dock = DockStyle.Fill;
tableLayoutPanel1.Location = new Point(0, 0);
@@ -130,8 +131,6 @@
//
// MotionControlEditPage
//
- AutoScaleDimensions = new SizeF(96F, 96F);
- AutoScaleMode = AutoScaleMode.Dpi;
BackColor = Color.FromArgb(32, 41, 50);
Controls.Add(tableLayoutPanel1);
ForeColor = SystemColors.Control;
@@ -147,7 +146,7 @@
private ReaLTaiizor.Controls.HopeButton uiButton1;
private ReaLTaiizor.Controls.LostButton uiButton2;
- private FlowLayoutPanel uiFlowLayoutPanel1;
+ private FlowLayoutPanel uiMCLayoutPanel1;
private TableLayoutPanel tableLayoutPanel1;
private TableLayoutPanel tableLayoutPanel2;
}
diff --git a/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.cs b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.cs
index 6ef3551..2048868 100644
--- a/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.cs
+++ b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlEditPage.cs
@@ -1,4 +1,7 @@
-锘縰sing LB_VisionControl;
+锘縰sing LB_SmartVision.Forms.Pages.CameraPage;
+using LB_SmartVision.Forms.Pages.MotionControlPage;
+using LB_VisionControl;
+using LB_VisionProcesses.Cameras;
using OpenCvSharp.Flann;
using System;
using System.Collections.Concurrent;
@@ -11,7 +14,6 @@
{
public Action<string, LogInfoType> LogInfo;
-
public MotionControlEditPage()
{
InitializeComponent();
@@ -22,9 +24,156 @@
private void MESEditPage_Paint(object sender, PaintEventArgs e)
{
- uiFlowLayoutPanel1.Controls.Clear();
+ uiMCLayoutPanel1.Controls.Clear();
+
+ if (GlobalVar.dicCameras.Count <= 0)
+ return;
+
+ foreach (var item in GlobalVar.dicCameras)
+ {
+ string CameraSN = item.Key;
+ string CameraBrand = item.Value.Brand.ToString();
+
+ if (string.IsNullOrEmpty(CameraSN) || string.IsNullOrEmpty(CameraBrand))
+ return;
+
+ UserItem flow = new UserItem(new string[] { "杩愬姩鎺у埗", "鍒锋柊", "绉婚櫎" });
+ flow.Name = CameraSN;
+ flow.Text = $"[{CameraBrand}]";
+ if (item.Value.isGrabbing)
+ flow.state = State.Pass;
+ else
+ flow.state |= State.Error;
+ LoadFlowEvent(flow);
+
+ uiMCLayoutPanel1.Controls.Add(flow);
+ }
}
+ private void uiButton1_Click(object sender, System.EventArgs e)
+ {
+ CreateCameraForm createCameraForm = new CreateCameraForm();
+ createCameraForm.ShowDialog();
+ if (createCameraForm.bCreate)
+ {
+ BaseCamera camera = createCameraForm.camera;
+ if (GlobalVar.dicCameras.ContainsKey(camera.SN))
+ {
+ MessageBox.Show($"鐩告満[{camera.SN}]宸插瓨鍦�!", "寮傚父");
+ return;
+ }
+
+ string CameraSN = camera.SN;//"127.0.0.1"
+ string CameraBrand = camera.Brand.ToString();//"1111"
+
+ if (string.IsNullOrEmpty(CameraSN) || string.IsNullOrEmpty(CameraBrand))
+ return;
+
+ GlobalVar.dicCameras.TryAdd(CameraSN, camera);
+ LogInfo?.Invoke(string.Format("娣诲姞鐩告満[{0}][{1}]鎴愬姛", CameraBrand, CameraSN), LogInfoType.PASS);
+ }
+ this.Invalidate();
+ }
+
+ private void uiButton2_Click(object sender, System.EventArgs e)
+ {
+ //娓呴櫎鐢–lear鏂规硶
+ uiMCLayoutPanel1.Controls.Clear();
+ foreach (var camera in GlobalVar.dicCameras.Values)
+ {
+ camera.CloseDevice();
+ }
+ GlobalVar.dicCameras.Clear();
+ }
+
+ private void LoadFlowEvent(UserItem flow)
+ {
+ //鎸夐敭1涓烘祴璇�
+ flow.MenuItem1ClickedEvent += MCEvent;
+ //鎸夐敭2涓哄埛鏂�
+ flow.MenuItem2ClickedEvent += ReconnectEvent;
+ //鎸夐敭3涓虹Щ闄�
+ flow.MenuItem3ClickedEvent += DeleteEvent;
+
+ }
+
+ private void RemoveFlowEvent(UserItem flow)
+ {
+ //鎸夐敭1涓烘祴璇�
+ flow.MenuItem1ClickedEvent -= MCEvent;
+ //鎸夐敭2涓哄埛鏂�
+ flow.MenuItem2ClickedEvent -= ReconnectEvent;
+ //鎸夐敭3涓虹Щ闄�
+ flow.MenuItem3ClickedEvent -= DeleteEvent;
+ }
+
+ // 杩愬姩鎺у埗
+ private void MCEvent(string Name, string Text)
+ {
+ for (int i = 0; i < uiMCLayoutPanel1.Controls.Count; i++)
+ {
+ UserItem flow = (UserItem)uiMCLayoutPanel1.Controls[i];
+ string name = flow.Name;
+ if (name != Name)
+ continue;
+
+ if (GlobalVar.dicCameras.ContainsKey(name))
+ {
+ MotionControlPage.MotionControlForm cameraForm = new MotionControlPage.MotionControlForm(GlobalVar.dicCameras[name]);
+ cameraForm.Show();
+ }
+ }
+ }
+
+ // 绉婚櫎鐩告満
+ private void DeleteEvent(string Name, string Text)
+ {
+ for (int i = 0; i < uiMCLayoutPanel1.Controls.Count; i++)
+ {
+ UserItem flow = (UserItem)uiMCLayoutPanel1.Controls[i];
+ string name = flow.Name;
+ if (name != Name)
+ continue;
+
+ RemoveFlowEvent(flow);
+ uiMCLayoutPanel1.Controls.Remove(uiMCLayoutPanel1.Controls[i]);
+ if (GlobalVar.dicCameras.TryRemove(name, out BaseCamera BaseCamera))
+ {
+ BaseCamera.Dispose();
+ LogInfo?.Invoke(string.Format("绉婚櫎鐩告満[{0}]", name), LogInfoType.INFO);
+ }
+ else
+ LogInfo?.Invoke(string.Format("绉婚櫎鐩告満[{0}]澶辫触", name), LogInfoType.ERROR);
+
+ }
+ }
+
+ // 閲嶈繛鐩告満
+ private void ReconnectEvent(string Name, string Text)
+ {
+ for (int i = 0; i < uiMCLayoutPanel1.Controls.Count; i++)
+ {
+ UserItem flow = (UserItem)uiMCLayoutPanel1.Controls[i];
+ string name = flow.Name;
+ if (name != Name)
+ continue;
+
+ GlobalVar.dicCameras[name].CloseDevice();
+ Thread.Sleep(50);
+ GlobalVar.dicCameras[name].InitDevice(name, this.Handle);
+ if (GlobalVar.dicCameras[name].isGrabbing)
+ {
+ flow.state = State.Pass;
+ LogInfo?.Invoke(string.Format("閲嶈繛鐩告満[{0}]鎴愬姛", name), LogInfoType.PASS);
+ }
+ else
+ {
+ flow.state = State.Error;
+ LogInfo?.Invoke(string.Format("閲嶈繛鐩告満[{0}]澶辫触", name), LogInfoType.ERROR);
+ }
+ flow.Refresh();
+ }
+ }
}
}
diff --git a/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs
new file mode 100644
index 0000000..3e8decd
--- /dev/null
+++ b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs
@@ -0,0 +1,781 @@
+锘縩amespace LB_SmartVision.Forms.Pages.MotionControlPage
+{
+ partial class MotionControlForm
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MotionControlForm));
+ uiGroupBoxMotionControl = new GroupBox();
+ tableLayoutPanel3 = new TableLayoutPanel();
+ tableLayoutPanel6 = new TableLayoutPanel();
+ uiButtonCloseSoftGrab = new Button();
+ uiButtonHardGrabWithPLC = new Button();
+ tableLayoutPanel5 = new TableLayoutPanel();
+ uiButtonGrabOnce = new Button();
+ tableLayoutPanel4 = new TableLayoutPanel();
+ labelPointSpeed = new Label();
+ textBoxAngleNow = new TextBox();
+ labelAngleNow = new Label();
+ textBoxPositionNow = new TextBox();
+ labelPositionNow = new Label();
+ textBoxAngSpeed = new TextBox();
+ labelAngSpeed = new Label();
+ textBoxPointSpeed = new TextBox();
+ tableLayoutPanel2 = new TableLayoutPanel();
+ uiButtonIncreasePitchAngle = new Button();
+ groupBoxPitchAnglePosition = new GroupBox();
+ textBoxPitchAnglePosition = new TextBox();
+ uiButtonDecreasePitchAngle = new Button();
+ groupBoxZPosition = new GroupBox();
+ textBoxZPosition = new TextBox();
+ groupBoxYPosition = new GroupBox();
+ textBoxYPosition = new TextBox();
+ uiButtonIncreaseZ = new Button();
+ uiButtonDecreaseZ = new Button();
+ uiButtonIncreaseY = new Button();
+ uiButtonDecreaseY = new Button();
+ uiButtonIncreaseX = new Button();
+ uiButtonDecreaseX = new Button();
+ groupBoxXPosition = new GroupBox();
+ textBoxXPosition = new TextBox();
+ tableLayoutPanel1 = new TableLayoutPanel();
+ textBox1 = new TextBox();
+ uiMarkLabelSN = new Label();
+ tableLayoutPanel7 = new TableLayoutPanel();
+ textBox2 = new TextBox();
+ uiMarkLabelName = new Label();
+ uiGroupBoxImage = new GroupBox();
+ uiSplitContainer1 = new SplitContainer();
+ themeForm1 = new ReaLTaiizor.Forms.ThemeForm();
+ controlBox1 = new ReaLTaiizor.Controls.ControlBox();
+ uiGroupBoxMotionControl.SuspendLayout();
+ tableLayoutPanel3.SuspendLayout();
+ tableLayoutPanel6.SuspendLayout();
+ tableLayoutPanel5.SuspendLayout();
+ tableLayoutPanel4.SuspendLayout();
+ tableLayoutPanel2.SuspendLayout();
+ groupBoxPitchAnglePosition.SuspendLayout();
+ groupBoxZPosition.SuspendLayout();
+ groupBoxYPosition.SuspendLayout();
+ groupBoxXPosition.SuspendLayout();
+ tableLayoutPanel1.SuspendLayout();
+ tableLayoutPanel7.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)uiSplitContainer1).BeginInit();
+ uiSplitContainer1.Panel1.SuspendLayout();
+ uiSplitContainer1.Panel2.SuspendLayout();
+ uiSplitContainer1.SuspendLayout();
+ themeForm1.SuspendLayout();
+ SuspendLayout();
+ //
+ // uiGroupBoxMotionControl
+ //
+ uiGroupBoxMotionControl.Controls.Add(tableLayoutPanel3);
+ uiGroupBoxMotionControl.Font = new Font("瀹嬩綋", 12F);
+ uiGroupBoxMotionControl.ForeColor = SystemColors.Control;
+ uiGroupBoxMotionControl.Location = new Point(0, 0);
+ uiGroupBoxMotionControl.Margin = new Padding(4, 5, 4, 5);
+ uiGroupBoxMotionControl.MinimumSize = new Size(1, 1);
+ uiGroupBoxMotionControl.Name = "uiGroupBoxMotionControl";
+ uiGroupBoxMotionControl.Padding = new Padding(0, 32, 0, 0);
+ uiGroupBoxMotionControl.Size = new Size(374, 624);
+ uiGroupBoxMotionControl.TabIndex = 18;
+ uiGroupBoxMotionControl.TabStop = false;
+ uiGroupBoxMotionControl.Text = "杩愬姩鎺у埗鍙傛暟";
+ //
+ // tableLayoutPanel3
+ //
+ tableLayoutPanel3.ColumnCount = 1;
+ tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+ tableLayoutPanel3.Controls.Add(tableLayoutPanel6, 0, 3);
+ tableLayoutPanel3.Controls.Add(tableLayoutPanel5, 0, 2);
+ tableLayoutPanel3.Controls.Add(tableLayoutPanel4, 0, 5);
+ tableLayoutPanel3.Controls.Add(tableLayoutPanel2, 0, 4);
+ tableLayoutPanel3.Controls.Add(tableLayoutPanel1, 0, 0);
+ tableLayoutPanel3.Controls.Add(tableLayoutPanel7, 0, 1);
+ tableLayoutPanel3.Location = new Point(0, 55);
+ tableLayoutPanel3.Name = "tableLayoutPanel3";
+ tableLayoutPanel3.RowCount = 6;
+ tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
+ tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
+ tableLayoutPanel3.Size = new Size(374, 560);
+ tableLayoutPanel3.TabIndex = 0;
+ tableLayoutPanel3.Paint += tableLayoutPanel3_Paint;
+ //
+ // tableLayoutPanel6
+ //
+ tableLayoutPanel6.ColumnCount = 2;
+ tableLayoutPanel6.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+ tableLayoutPanel6.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+ tableLayoutPanel6.Controls.Add(uiButtonCloseSoftGrab, 1, 0);
+ tableLayoutPanel6.Controls.Add(uiButtonHardGrabWithPLC, 0, 0);
+ tableLayoutPanel6.Dock = DockStyle.Fill;
+ tableLayoutPanel6.Location = new Point(3, 138);
+ tableLayoutPanel6.Name = "tableLayoutPanel6";
+ tableLayoutPanel6.RowCount = 1;
+ tableLayoutPanel6.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+ tableLayoutPanel6.Size = new Size(368, 39);
+ tableLayoutPanel6.TabIndex = 6;
+ //
+ // uiButtonCloseSoftGrab
+ //
+ uiButtonCloseSoftGrab.Anchor = AnchorStyles.None;
+ uiButtonCloseSoftGrab.BackColor = Color.Black;
+ uiButtonCloseSoftGrab.Location = new Point(225, 5);
+ uiButtonCloseSoftGrab.Name = "uiButtonCloseSoftGrab";
+ uiButtonCloseSoftGrab.Size = new Size(102, 29);
+ uiButtonCloseSoftGrab.TabIndex = 2;
+ uiButtonCloseSoftGrab.Text = "鏆傚仠閲囬泦";
+ uiButtonCloseSoftGrab.UseVisualStyleBackColor = false;
+ //
+ // uiButtonHardGrabWithPLC
+ //
+ uiButtonHardGrabWithPLC.Anchor = AnchorStyles.None;
+ uiButtonHardGrabWithPLC.BackColor = Color.Black;
+ uiButtonHardGrabWithPLC.Location = new Point(41, 5);
+ uiButtonHardGrabWithPLC.Name = "uiButtonHardGrabWithPLC";
+ uiButtonHardGrabWithPLC.Size = new Size(102, 29);
+ uiButtonHardGrabWithPLC.TabIndex = 1;
+ uiButtonHardGrabWithPLC.Text = "妯℃嫙閲囬泦";
+ uiButtonHardGrabWithPLC.UseVisualStyleBackColor = false;
+ uiButtonHardGrabWithPLC.Click += uiButtonHardGrabWithPLC_Click;
+ //
+ // tableLayoutPanel5
+ //
+ tableLayoutPanel5.ColumnCount = 1;
+ tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+ tableLayoutPanel5.Controls.Add(uiButtonGrabOnce, 0, 0);
+ tableLayoutPanel5.Dock = DockStyle.Fill;
+ tableLayoutPanel5.Location = new Point(3, 93);
+ tableLayoutPanel5.Name = "tableLayoutPanel5";
+ tableLayoutPanel5.RowCount = 1;
+ tableLayoutPanel5.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
+ tableLayoutPanel5.Size = new Size(368, 39);
+ tableLayoutPanel5.TabIndex = 5;
+ //
+ // uiButtonGrabOnce
+ //
+ uiButtonGrabOnce.BackColor = Color.Black;
+ uiButtonGrabOnce.Dock = DockStyle.Fill;
+ uiButtonGrabOnce.Location = new Point(3, 3);
+ uiButtonGrabOnce.Name = "uiButtonGrabOnce";
+ uiButtonGrabOnce.Size = new Size(362, 33);
+ uiButtonGrabOnce.TabIndex = 0;
+ uiButtonGrabOnce.Text = "鍗曞紶閲囬泦";
+ uiButtonGrabOnce.UseVisualStyleBackColor = false;
+ uiButtonGrabOnce.Click += uiButtonGrabOnce_Click;
+ //
+ // tableLayoutPanel4
+ //
+ tableLayoutPanel4.ColumnCount = 2;
+ tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 42.81768F));
+ tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 57.18232F));
+ tableLayoutPanel4.Controls.Add(labelPointSpeed, 0, 0);
+ tableLayoutPanel4.Controls.Add(textBoxAngleNow, 1, 3);
+ tableLayoutPanel4.Controls.Add(labelAngleNow, 0, 3);
+ tableLayoutPanel4.Controls.Add(textBoxPositionNow, 1, 2);
+ tableLayoutPanel4.Controls.Add(labelPositionNow, 0, 2);
+ tableLayoutPanel4.Controls.Add(textBoxAngSpeed, 1, 1);
+ tableLayoutPanel4.Controls.Add(labelAngSpeed, 0, 1);
+ tableLayoutPanel4.Controls.Add(textBoxPointSpeed, 1, 0);
+ tableLayoutPanel4.Dock = DockStyle.Fill;
+ tableLayoutPanel4.Location = new Point(3, 373);
+ tableLayoutPanel4.Name = "tableLayoutPanel4";
+ tableLayoutPanel4.RowCount = 4;
+ tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel4.Size = new Size(368, 184);
+ tableLayoutPanel4.TabIndex = 2;
+ //
+ // labelPointSpeed
+ //
+ labelPointSpeed.AutoSize = true;
+ labelPointSpeed.Dock = DockStyle.Fill;
+ labelPointSpeed.Location = new Point(3, 5);
+ labelPointSpeed.Margin = new Padding(3, 5, 3, 5);
+ labelPointSpeed.Name = "labelPointSpeed";
+ labelPointSpeed.Size = new Size(151, 35);
+ labelPointSpeed.TabIndex = 18;
+ labelPointSpeed.Text = "鐐瑰姩閫熷害(mm/s)";
+ labelPointSpeed.TextAlign = ContentAlignment.MiddleLeft;
+ //
+ // textBoxAngleNow
+ //
+ textBoxAngleNow.Anchor = AnchorStyles.Left | AnchorStyles.Right;
+ textBoxAngleNow.Enabled = false;
+ textBoxAngleNow.Location = new Point(160, 146);
+ textBoxAngleNow.Name = "textBoxAngleNow";
+ textBoxAngleNow.Size = new Size(205, 26);
+ textBoxAngleNow.TabIndex = 17;
+ textBoxAngleNow.Text = "0";
+ textBoxAngleNow.TextChanged += textBoxAngleNow_TextChanged;
+ //
+ // labelAngleNow
+ //
+ labelAngleNow.AutoSize = true;
+ labelAngleNow.Dock = DockStyle.Fill;
+ labelAngleNow.Location = new Point(3, 140);
+ labelAngleNow.Margin = new Padding(3, 5, 3, 5);
+ labelAngleNow.Name = "labelAngleNow";
+ labelAngleNow.Size = new Size(151, 39);
+ labelAngleNow.TabIndex = 16;
+ labelAngleNow.Text = "褰撳墠瑙掑害(掳)";
+ labelAngleNow.TextAlign = ContentAlignment.MiddleLeft;
+ //
+ // textBoxPositionNow
+ //
+ textBoxPositionNow.Anchor = AnchorStyles.Left | AnchorStyles.Right;
+ textBoxPositionNow.Enabled = false;
+ textBoxPositionNow.Location = new Point(160, 99);
+ textBoxPositionNow.Name = "textBoxPositionNow";
+ textBoxPositionNow.Size = new Size(205, 26);
+ textBoxPositionNow.TabIndex = 15;
+ textBoxPositionNow.Text = "(0,0,0)";
+ textBoxPositionNow.TextChanged += textBoxPositionNow_TextChanged;
+ //
+ // labelPositionNow
+ //
+ labelPositionNow.AutoSize = true;
+ labelPositionNow.Dock = DockStyle.Fill;
+ labelPositionNow.Location = new Point(3, 95);
+ labelPositionNow.Margin = new Padding(3, 5, 3, 5);
+ labelPositionNow.Name = "labelPositionNow";
+ labelPositionNow.Size = new Size(151, 35);
+ labelPositionNow.TabIndex = 14;
+ labelPositionNow.Text = "褰撳墠鐐逛綅(mm)";
+ labelPositionNow.TextAlign = ContentAlignment.MiddleLeft;
+ //
+ // textBoxAngSpeed
+ //
+ textBoxAngSpeed.Anchor = AnchorStyles.Left | AnchorStyles.Right;
+ textBoxAngSpeed.Location = new Point(160, 54);
+ textBoxAngSpeed.Name = "textBoxAngSpeed";
+ textBoxAngSpeed.Size = new Size(205, 26);
+ textBoxAngSpeed.TabIndex = 13;
+ textBoxAngSpeed.Text = "0";
+ textBoxAngSpeed.TextChanged += textBoxAngSpeed_TextChanged;
+ textBoxAngSpeed.KeyDown += textBoxXPosition_KeyDown;
+ textBoxAngSpeed.KeyPress += textBoxXPosition_KeyPress;
+ //
+ // labelAngSpeed
+ //
+ labelAngSpeed.AutoSize = true;
+ labelAngSpeed.Dock = DockStyle.Fill;
+ labelAngSpeed.Location = new Point(3, 50);
+ labelAngSpeed.Margin = new Padding(3, 5, 3, 5);
+ labelAngSpeed.Name = "labelAngSpeed";
+ labelAngSpeed.Size = new Size(151, 35);
+ labelAngSpeed.TabIndex = 12;
+ labelAngSpeed.Text = "瑙掗�熷害(rad/s)";
+ labelAngSpeed.TextAlign = ContentAlignment.MiddleLeft;
+ //
+ // textBoxPointSpeed
+ //
+ textBoxPointSpeed.Anchor = AnchorStyles.Left | AnchorStyles.Right;
+ textBoxPointSpeed.Location = new Point(160, 9);
+ textBoxPointSpeed.Name = "textBoxPointSpeed";
+ textBoxPointSpeed.Size = new Size(205, 26);
+ textBoxPointSpeed.TabIndex = 11;
+ textBoxPointSpeed.Text = "0";
+ textBoxPointSpeed.TextChanged += textBoxPointSpeed_TextChanged;
+ textBoxPointSpeed.KeyDown += textBoxXPosition_KeyDown;
+ textBoxPointSpeed.KeyPress += textBoxXPosition_KeyPress;
+ //
+ // tableLayoutPanel2
+ //
+ tableLayoutPanel2.ColumnCount = 3;
+ tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
+ tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
+ tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
+ tableLayoutPanel2.Controls.Add(uiButtonIncreasePitchAngle, 2, 3);
+ tableLayoutPanel2.Controls.Add(groupBoxPitchAnglePosition, 1, 3);
+ tableLayoutPanel2.Controls.Add(uiButtonDecreasePitchAngle, 0, 3);
+ tableLayoutPanel2.Controls.Add(groupBoxZPosition, 1, 2);
+ tableLayoutPanel2.Controls.Add(groupBoxYPosition, 1, 1);
+ tableLayoutPanel2.Controls.Add(uiButtonIncreaseZ, 2, 2);
+ tableLayoutPanel2.Controls.Add(uiButtonDecreaseZ, 0, 2);
+ tableLayoutPanel2.Controls.Add(uiButtonIncreaseY, 2, 1);
+ tableLayoutPanel2.Controls.Add(uiButtonDecreaseY, 0, 1);
+ tableLayoutPanel2.Controls.Add(uiButtonIncreaseX, 2, 0);
+ tableLayoutPanel2.Controls.Add(uiButtonDecreaseX, 0, 0);
+ tableLayoutPanel2.Controls.Add(groupBoxXPosition, 1, 0);
+ tableLayoutPanel2.Dock = DockStyle.Fill;
+ tableLayoutPanel2.Location = new Point(3, 183);
+ tableLayoutPanel2.Name = "tableLayoutPanel2";
+ tableLayoutPanel2.RowCount = 1;
+ tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+ tableLayoutPanel2.Size = new Size(368, 184);
+ tableLayoutPanel2.TabIndex = 3;
+ //
+ // uiButtonIncreasePitchAngle
+ //
+ uiButtonIncreasePitchAngle.BackColor = Color.Black;
+ uiButtonIncreasePitchAngle.Dock = DockStyle.Left;
+ uiButtonIncreasePitchAngle.Location = new Point(298, 140);
+ uiButtonIncreasePitchAngle.Margin = new Padding(5);
+ uiButtonIncreasePitchAngle.Name = "uiButtonIncreasePitchAngle";
+ uiButtonIncreasePitchAngle.Size = new Size(32, 39);
+ uiButtonIncreasePitchAngle.TabIndex = 27;
+ uiButtonIncreasePitchAngle.Text = "+";
+ uiButtonIncreasePitchAngle.UseVisualStyleBackColor = false;
+ uiButtonIncreasePitchAngle.Click += uiButtonIncreasePitchAngle_Click;
+ //
+ // groupBoxPitchAnglePosition
+ //
+ groupBoxPitchAnglePosition.Controls.Add(textBoxPitchAnglePosition);
+ groupBoxPitchAnglePosition.Font = new Font("瀹嬩綋", 8F);
+ groupBoxPitchAnglePosition.ForeColor = Color.White;
+ groupBoxPitchAnglePosition.Location = new Point(123, 138);
+ groupBoxPitchAnglePosition.Margin = new Padding(50, 3, 3, 3);
+ groupBoxPitchAnglePosition.Name = "groupBoxPitchAnglePosition";
+ groupBoxPitchAnglePosition.Size = new Size(115, 39);
+ groupBoxPitchAnglePosition.TabIndex = 26;
+ groupBoxPitchAnglePosition.TabStop = false;
+ groupBoxPitchAnglePosition.Text = "淇话瑙�(掳)";
+ //
+ // textBoxPitchAnglePosition
+ //
+ textBoxPitchAnglePosition.Dock = DockStyle.Bottom;
+ textBoxPitchAnglePosition.Font = new Font("瀹嬩綋", 10F);
+ textBoxPitchAnglePosition.Location = new Point(3, 16);
+ textBoxPitchAnglePosition.Multiline = true;
+ textBoxPitchAnglePosition.Name = "textBoxPitchAnglePosition";
+ textBoxPitchAnglePosition.Size = new Size(109, 20);
+ textBoxPitchAnglePosition.TabIndex = 13;
+ textBoxPitchAnglePosition.Text = "1";
+ textBoxPitchAnglePosition.KeyDown += textBoxXPosition_KeyDown;
+ textBoxPitchAnglePosition.KeyPress += textBoxXPosition_KeyPress;
+ //
+ // uiButtonDecreasePitchAngle
+ //
+ uiButtonDecreasePitchAngle.BackColor = Color.Black;
+ uiButtonDecreasePitchAngle.Dock = DockStyle.Right;
+ uiButtonDecreasePitchAngle.Location = new Point(37, 140);
+ uiButtonDecreasePitchAngle.Margin = new Padding(5);
+ uiButtonDecreasePitchAngle.Name = "uiButtonDecreasePitchAngle";
+ uiButtonDecreasePitchAngle.Size = new Size(31, 39);
+ uiButtonDecreasePitchAngle.TabIndex = 25;
+ uiButtonDecreasePitchAngle.Text = "-";
+ uiButtonDecreasePitchAngle.UseVisualStyleBackColor = false;
+ uiButtonDecreasePitchAngle.Click += uiButtonDecreasePitchAngle_Click;
+ //
+ // groupBoxZPosition
+ //
+ groupBoxZPosition.Controls.Add(textBoxZPosition);
+ groupBoxZPosition.Font = new Font("瀹嬩綋", 8F);
+ groupBoxZPosition.ForeColor = Color.White;
+ groupBoxZPosition.Location = new Point(123, 93);
+ groupBoxZPosition.Margin = new Padding(50, 3, 3, 3);
+ groupBoxZPosition.Name = "groupBoxZPosition";
+ groupBoxZPosition.Size = new Size(115, 39);
+ groupBoxZPosition.TabIndex = 24;
+ groupBoxZPosition.TabStop = false;
+ groupBoxZPosition.Text = "Z(mm)";
+ //
+ // textBoxZPosition
+ //
+ textBoxZPosition.Dock = DockStyle.Bottom;
+ textBoxZPosition.Font = new Font("瀹嬩綋", 10F);
+ textBoxZPosition.Location = new Point(3, 16);
+ textBoxZPosition.Multiline = true;
+ textBoxZPosition.Name = "textBoxZPosition";
+ textBoxZPosition.Size = new Size(109, 20);
+ textBoxZPosition.TabIndex = 13;
+ textBoxZPosition.Text = "1";
+ textBoxZPosition.KeyDown += textBoxXPosition_KeyDown;
+ textBoxZPosition.KeyPress += textBoxXPosition_KeyPress;
+ //
+ // groupBoxYPosition
+ //
+ groupBoxYPosition.Controls.Add(textBoxYPosition);
+ groupBoxYPosition.Font = new Font("瀹嬩綋", 8F);
+ groupBoxYPosition.ForeColor = Color.White;
+ groupBoxYPosition.Location = new Point(123, 48);
+ groupBoxYPosition.Margin = new Padding(50, 3, 3, 3);
+ groupBoxYPosition.Name = "groupBoxYPosition";
+ groupBoxYPosition.Size = new Size(115, 39);
+ groupBoxYPosition.TabIndex = 23;
+ groupBoxYPosition.TabStop = false;
+ groupBoxYPosition.Text = "Y(mm)";
+ //
+ // textBoxYPosition
+ //
+ textBoxYPosition.Dock = DockStyle.Bottom;
+ textBoxYPosition.Font = new Font("瀹嬩綋", 10F);
+ textBoxYPosition.Location = new Point(3, 16);
+ textBoxYPosition.Multiline = true;
+ textBoxYPosition.Name = "textBoxYPosition";
+ textBoxYPosition.Size = new Size(109, 20);
+ textBoxYPosition.TabIndex = 13;
+ textBoxYPosition.Text = "1";
+ textBoxYPosition.KeyDown += textBoxXPosition_KeyDown;
+ textBoxYPosition.KeyPress += textBoxXPosition_KeyPress;
+ //
+ // uiButtonIncreaseZ
+ //
+ uiButtonIncreaseZ.BackColor = Color.Black;
+ uiButtonIncreaseZ.Dock = DockStyle.Left;
+ uiButtonIncreaseZ.Location = new Point(298, 95);
+ uiButtonIncreaseZ.Margin = new Padding(5);
+ uiButtonIncreaseZ.Name = "uiButtonIncreaseZ";
+ uiButtonIncreaseZ.Size = new Size(32, 35);
+ uiButtonIncreaseZ.TabIndex = 19;
+ uiButtonIncreaseZ.Text = "+";
+ uiButtonIncreaseZ.UseVisualStyleBackColor = false;
+ uiButtonIncreaseZ.Click += uiButtonIncreaseZ_Click;
+ //
+ // uiButtonDecreaseZ
+ //
+ uiButtonDecreaseZ.BackColor = Color.Black;
+ uiButtonDecreaseZ.Dock = DockStyle.Right;
+ uiButtonDecreaseZ.Location = new Point(37, 95);
+ uiButtonDecreaseZ.Margin = new Padding(5);
+ uiButtonDecreaseZ.Name = "uiButtonDecreaseZ";
+ uiButtonDecreaseZ.Size = new Size(31, 35);
+ uiButtonDecreaseZ.TabIndex = 17;
+ uiButtonDecreaseZ.Text = "-";
+ uiButtonDecreaseZ.UseVisualStyleBackColor = false;
+ uiButtonDecreaseZ.Click += uiButtonDecreaseZ_Click;
+ //
+ // uiButtonIncreaseY
+ //
+ uiButtonIncreaseY.BackColor = Color.Black;
+ uiButtonIncreaseY.Dock = DockStyle.Left;
+ uiButtonIncreaseY.Location = new Point(298, 50);
+ uiButtonIncreaseY.Margin = new Padding(5);
+ uiButtonIncreaseY.Name = "uiButtonIncreaseY";
+ uiButtonIncreaseY.Size = new Size(32, 35);
+ uiButtonIncreaseY.TabIndex = 16;
+ uiButtonIncreaseY.Text = "+";
+ uiButtonIncreaseY.UseVisualStyleBackColor = false;
+ uiButtonIncreaseY.Click += uiButtonIncreaseY_Click;
+ //
+ // uiButtonDecreaseY
+ //
+ uiButtonDecreaseY.BackColor = Color.Black;
+ uiButtonDecreaseY.Dock = DockStyle.Right;
+ uiButtonDecreaseY.Location = new Point(37, 50);
+ uiButtonDecreaseY.Margin = new Padding(5);
+ uiButtonDecreaseY.Name = "uiButtonDecreaseY";
+ uiButtonDecreaseY.Size = new Size(31, 35);
+ uiButtonDecreaseY.TabIndex = 14;
+ uiButtonDecreaseY.Text = "-";
+ uiButtonDecreaseY.UseVisualStyleBackColor = false;
+ uiButtonDecreaseY.Click += uiButtonDecreaseY_Click;
+ //
+ // uiButtonIncreaseX
+ //
+ uiButtonIncreaseX.BackColor = Color.Black;
+ uiButtonIncreaseX.Dock = DockStyle.Left;
+ uiButtonIncreaseX.Location = new Point(298, 5);
+ uiButtonIncreaseX.Margin = new Padding(5);
+ uiButtonIncreaseX.Name = "uiButtonIncreaseX";
+ uiButtonIncreaseX.Size = new Size(32, 35);
+ uiButtonIncreaseX.TabIndex = 10;
+ uiButtonIncreaseX.Text = "+";
+ uiButtonIncreaseX.UseVisualStyleBackColor = false;
+ uiButtonIncreaseX.Click += uiButtonIncreaseX_Click;
+ //
+ // uiButtonDecreaseX
+ //
+ uiButtonDecreaseX.BackColor = Color.Black;
+ uiButtonDecreaseX.Dock = DockStyle.Right;
+ uiButtonDecreaseX.Location = new Point(37, 5);
+ uiButtonDecreaseX.Margin = new Padding(5);
+ uiButtonDecreaseX.Name = "uiButtonDecreaseX";
+ uiButtonDecreaseX.Size = new Size(31, 35);
+ uiButtonDecreaseX.TabIndex = 8;
+ uiButtonDecreaseX.Text = "-";
+ uiButtonDecreaseX.UseVisualStyleBackColor = false;
+ uiButtonDecreaseX.Click += uiButtonDecreaseX_Click;
+ //
+ // groupBoxXPosition
+ //
+ groupBoxXPosition.Controls.Add(textBoxXPosition);
+ groupBoxXPosition.Font = new Font("瀹嬩綋", 8F);
+ groupBoxXPosition.ForeColor = Color.White;
+ groupBoxXPosition.Location = new Point(123, 3);
+ groupBoxXPosition.Margin = new Padding(50, 3, 3, 3);
+ groupBoxXPosition.Name = "groupBoxXPosition";
+ groupBoxXPosition.Size = new Size(115, 39);
+ groupBoxXPosition.TabIndex = 21;
+ groupBoxXPosition.TabStop = false;
+ groupBoxXPosition.Text = "X(mm)";
+ //
+ // textBoxXPosition
+ //
+ textBoxXPosition.Dock = DockStyle.Bottom;
+ textBoxXPosition.Font = new Font("瀹嬩綋", 10F);
+ textBoxXPosition.Location = new Point(3, 16);
+ textBoxXPosition.Multiline = true;
+ textBoxXPosition.Name = "textBoxXPosition";
+ textBoxXPosition.Size = new Size(109, 20);
+ textBoxXPosition.TabIndex = 12;
+ textBoxXPosition.Text = "1";
+ textBoxXPosition.KeyDown += textBoxXPosition_KeyDown;
+ textBoxXPosition.KeyPress += textBoxXPosition_KeyPress;
+ //
+ // tableLayoutPanel1
+ //
+ tableLayoutPanel1.ColumnCount = 2;
+ tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 75F));
+ tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+ tableLayoutPanel1.Controls.Add(textBox1, 1, 0);
+ tableLayoutPanel1.Controls.Add(uiMarkLabelSN, 0, 0);
+ tableLayoutPanel1.Dock = DockStyle.Fill;
+ tableLayoutPanel1.Location = new Point(3, 3);
+ tableLayoutPanel1.Name = "tableLayoutPanel1";
+ tableLayoutPanel1.RowCount = 1;
+ tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+ tableLayoutPanel1.Size = new Size(368, 39);
+ tableLayoutPanel1.TabIndex = 4;
+ //
+ // textBox1
+ //
+ textBox1.Anchor = AnchorStyles.Left | AnchorStyles.Right;
+ textBox1.Enabled = false;
+ textBox1.Location = new Point(78, 6);
+ textBox1.Name = "textBox1";
+ textBox1.Size = new Size(287, 26);
+ textBox1.TabIndex = 20;
+ //
+ // uiMarkLabelSN
+ //
+ uiMarkLabelSN.AutoSize = true;
+ uiMarkLabelSN.Dock = DockStyle.Fill;
+ uiMarkLabelSN.Location = new Point(3, 5);
+ uiMarkLabelSN.Margin = new Padding(3, 5, 3, 5);
+ uiMarkLabelSN.Name = "uiMarkLabelSN";
+ uiMarkLabelSN.Size = new Size(69, 29);
+ uiMarkLabelSN.TabIndex = 19;
+ uiMarkLabelSN.Text = "SN";
+ uiMarkLabelSN.TextAlign = ContentAlignment.MiddleLeft;
+ //
+ // tableLayoutPanel7
+ //
+ tableLayoutPanel7.ColumnCount = 2;
+ tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 75F));
+ tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+ tableLayoutPanel7.Controls.Add(textBox2, 1, 0);
+ tableLayoutPanel7.Controls.Add(uiMarkLabelName, 0, 0);
+ tableLayoutPanel7.Dock = DockStyle.Fill;
+ tableLayoutPanel7.Location = new Point(3, 48);
+ tableLayoutPanel7.Name = "tableLayoutPanel7";
+ tableLayoutPanel7.RowCount = 1;
+ tableLayoutPanel7.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+ tableLayoutPanel7.Size = new Size(368, 39);
+ tableLayoutPanel7.TabIndex = 7;
+ //
+ // textBox2
+ //
+ textBox2.Anchor = AnchorStyles.Left | AnchorStyles.Right;
+ textBox2.Enabled = false;
+ textBox2.Location = new Point(78, 6);
+ textBox2.Name = "textBox2";
+ textBox2.Size = new Size(287, 26);
+ textBox2.TabIndex = 21;
+ //
+ // uiMarkLabelName
+ //
+ uiMarkLabelName.Anchor = AnchorStyles.None;
+ uiMarkLabelName.Location = new Point(3, 5);
+ uiMarkLabelName.Margin = new Padding(3, 5, 3, 5);
+ uiMarkLabelName.Name = "uiMarkLabelName";
+ uiMarkLabelName.Size = new Size(69, 29);
+ uiMarkLabelName.TabIndex = 20;
+ uiMarkLabelName.Text = "鍚嶇О";
+ uiMarkLabelName.TextAlign = ContentAlignment.MiddleLeft;
+ uiMarkLabelName.Click += label1_Click;
+ //
+ // uiGroupBoxImage
+ //
+ uiGroupBoxImage.Dock = DockStyle.Fill;
+ uiGroupBoxImage.Font = new Font("瀹嬩綋", 12F);
+ uiGroupBoxImage.ForeColor = SystemColors.Control;
+ uiGroupBoxImage.Location = new Point(0, 0);
+ uiGroupBoxImage.Margin = new Padding(4, 5, 4, 5);
+ uiGroupBoxImage.MinimumSize = new Size(1, 1);
+ uiGroupBoxImage.Name = "uiGroupBoxImage";
+ uiGroupBoxImage.Padding = new Padding(0, 32, 0, 0);
+ uiGroupBoxImage.Size = new Size(495, 684);
+ uiGroupBoxImage.TabIndex = 17;
+ uiGroupBoxImage.TabStop = false;
+ uiGroupBoxImage.Text = "瀹炴椂閲囬泦";
+ //
+ // uiSplitContainer1
+ //
+ uiSplitContainer1.Dock = DockStyle.Fill;
+ uiSplitContainer1.ForeColor = SystemColors.Control;
+ uiSplitContainer1.Location = new Point(10, 70);
+ uiSplitContainer1.MinimumSize = new Size(20, 20);
+ uiSplitContainer1.Name = "uiSplitContainer1";
+ //
+ // uiSplitContainer1.Panel1
+ //
+ uiSplitContainer1.Panel1.Controls.Add(uiGroupBoxMotionControl);
+ uiSplitContainer1.Panel1.Paint += uiSplitContainer1_Panel1_Paint;
+ //
+ // uiSplitContainer1.Panel2
+ //
+ uiSplitContainer1.Panel2.Controls.Add(uiGroupBoxImage);
+ uiSplitContainer1.Size = new Size(880, 684);
+ uiSplitContainer1.SplitterDistance = 374;
+ uiSplitContainer1.SplitterWidth = 11;
+ uiSplitContainer1.TabIndex = 20;
+ //
+ // themeForm1
+ //
+ themeForm1.BackColor = Color.FromArgb(32, 41, 50);
+ themeForm1.Controls.Add(controlBox1);
+ themeForm1.Controls.Add(uiSplitContainer1);
+ themeForm1.Dock = DockStyle.Fill;
+ themeForm1.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ themeForm1.Image = (Image)resources.GetObject("themeForm1.Image");
+ themeForm1.Location = new Point(0, 0);
+ themeForm1.Name = "themeForm1";
+ themeForm1.Padding = new Padding(10, 70, 10, 9);
+ themeForm1.RoundCorners = true;
+ themeForm1.Sizable = true;
+ themeForm1.Size = new Size(900, 763);
+ themeForm1.SmartBounds = true;
+ themeForm1.StartPosition = FormStartPosition.WindowsDefaultLocation;
+ themeForm1.TabIndex = 21;
+ themeForm1.Text = "杩愬姩鎺у埗璁剧疆";
+ //
+ // controlBox1
+ //
+ controlBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ controlBox1.BackColor = Color.FromArgb(32, 34, 37);
+ controlBox1.CloseHoverColor = Color.FromArgb(230, 17, 35);
+ controlBox1.DefaultLocation = true;
+ controlBox1.EnableHoverHighlight = true;
+ controlBox1.EnableMaximizeButton = true;
+ controlBox1.EnableMinimizeButton = true;
+ controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
+ controlBox1.Location = new Point(800, 18);
+ controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
+ controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
+ controlBox1.Name = "controlBox1";
+ controlBox1.Size = new Size(90, 25);
+ controlBox1.TabIndex = 21;
+ controlBox1.Text = "controlBox1";
+ //
+ // MotionControlForm
+ //
+ AutoScaleMode = AutoScaleMode.None;
+ AutoSize = true;
+ ClientSize = new Size(900, 763);
+ Controls.Add(themeForm1);
+ FormBorderStyle = FormBorderStyle.None;
+ MinimumSize = new Size(261, 61);
+ Name = "MotionControlForm";
+ Text = "杩愬姩鎺у埗璁剧疆";
+ TransparencyKey = Color.Fuchsia;
+ uiGroupBoxMotionControl.ResumeLayout(false);
+ tableLayoutPanel3.ResumeLayout(false);
+ tableLayoutPanel6.ResumeLayout(false);
+ tableLayoutPanel5.ResumeLayout(false);
+ tableLayoutPanel4.ResumeLayout(false);
+ tableLayoutPanel4.PerformLayout();
+ tableLayoutPanel2.ResumeLayout(false);
+ groupBoxPitchAnglePosition.ResumeLayout(false);
+ groupBoxPitchAnglePosition.PerformLayout();
+ groupBoxZPosition.ResumeLayout(false);
+ groupBoxZPosition.PerformLayout();
+ groupBoxYPosition.ResumeLayout(false);
+ groupBoxYPosition.PerformLayout();
+ groupBoxXPosition.ResumeLayout(false);
+ groupBoxXPosition.PerformLayout();
+ tableLayoutPanel1.ResumeLayout(false);
+ tableLayoutPanel1.PerformLayout();
+ tableLayoutPanel7.ResumeLayout(false);
+ tableLayoutPanel7.PerformLayout();
+ uiSplitContainer1.Panel1.ResumeLayout(false);
+ uiSplitContainer1.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)uiSplitContainer1).EndInit();
+ uiSplitContainer1.ResumeLayout(false);
+ themeForm1.ResumeLayout(false);
+ ResumeLayout(false);
+ }
+
+ #endregion
+ private GroupBox uiGroupBoxImage;
+ private GroupBox uiGroupBoxMotionControl;
+ private SplitContainer uiSplitContainer1;
+ private TableLayoutPanel tableLayoutPanel7;
+ private Label uiMarkLabel5;
+ private TextBox uiTextBoxPitchAngle;
+
+ private ReaLTaiizor.Forms.ThemeForm themeForm1;
+ private ReaLTaiizor.Controls.ControlBox controlBox1;
+ private TableLayoutPanel tableLayoutPanel3;
+ private TableLayoutPanel tableLayoutPanel2;
+ private Button uiButtonIncreasePitchAngle;
+ private GroupBox groupBoxPitchAnglePosition;
+ private TextBox textBoxPitchAnglePosition;
+ private Button uiButtonDecreasePitchAngle;
+ private GroupBox groupBoxZPosition;
+ private TextBox textBoxZPosition;
+ private GroupBox groupBoxYPosition;
+ private TextBox textBoxYPosition;
+ private Button uiButtonIncreaseZ;
+ private Button uiButtonDecreaseZ;
+ private Button uiButtonIncreaseY;
+ private Button uiButtonDecreaseY;
+ private Button uiButtonIncreaseX;
+ private Button uiButtonDecreaseX;
+ private GroupBox groupBoxXPosition;
+ private TextBox textBoxXPosition;
+ private TableLayoutPanel tableLayoutPanel4;
+ private Label labelPointSpeed;
+ private TextBox textBoxAngleNow;
+ private Label labelAngleNow;
+ private TextBox textBoxPositionNow;
+ private Label labelPositionNow;
+ private TextBox textBoxAngSpeed;
+ private Label labelAngSpeed;
+ private TextBox textBoxPointSpeed;
+ private TableLayoutPanel tableLayoutPanel6;
+ private Button uiButtonHardGrabWithPLC;
+ private TableLayoutPanel tableLayoutPanel5;
+ private Button uiButtonGrabOnce;
+ private TableLayoutPanel tableLayoutPanel1;
+ private TextBox textBox1;
+ private Label uiMarkLabelSN;
+ private Button uiButtonCloseSoftGrab;
+ private Label uiMarkLabelName;
+ private TextBox textBox2;
+ }
+}
\ No newline at end of file
diff --git a/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs
new file mode 100644
index 0000000..7440df4
--- /dev/null
+++ b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs
@@ -0,0 +1,369 @@
+锘縰sing LB_VisionControl;
+using LB_VisionProcesses.Cameras;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Forms;
+using static ZXing.QrCode.Internal.Mode;
+
+namespace LB_SmartVision.Forms.Pages.MotionControlPage
+{
+ public partial class MotionControlForm : Form
+ {
+ BaseCamera camera { get; set; }
+ UserPictureBox onlinePictureBox { get; set; }
+ public MotionControlForm()
+ {
+ InitializeComponent();
+ }
+
+ public MotionControlForm(BaseCamera camera)
+ {
+ InitializeComponent();
+
+ if (camera == null)
+ return;
+
+ this.camera = camera;
+ this.Text = camera.SN;
+ textBox1.Text = camera.SN;
+
+ onlinePictureBox = new UserPictureBox(uiGroupBoxImage);
+ this.uiGroupBoxImage.Controls.Clear();
+ this.uiGroupBoxImage.Controls.Add(onlinePictureBox);
+ onlinePictureBox.Dock = DockStyle.Fill;
+
+ //鍔犺浇鍥炶皟鍑芥暟
+ Subscribe();
+ }
+
+ private void CameraForm_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (camera == null)
+ return;
+
+ camera.StopGrabbing();
+
+ camera.StartGrabbing();
+
+ Unsubscribe();
+ }
+
+ public void Unsubscribe()
+ {
+ try
+ {
+ if (camera == null)
+ return;
+ //鍙栨秷鍥炶皟鍑芥暟
+ camera.ImageGrabbed -= GetImageBllComplete;
+ }
+ catch (Exception ex)
+ {
+ // 璁板綍閿欒淇℃伅
+ Debug.WriteLine($"閿欒: {ex.Message}");
+ }
+
+ }
+
+ public void Subscribe()
+ {
+ try
+ {
+ if (camera == null)
+ return;
+
+ //鍙栨秷鍥炶皟鍑芥暟
+ camera.ImageGrabbed -= GetImageBllComplete;
+ //鍔犺浇鍥炶皟鍑芥暟
+ camera.ImageGrabbed += GetImageBllComplete;
+ }
+ catch (Exception ex)
+ {
+ // 璁板綍閿欒淇℃伅
+ Debug.WriteLine($"閿欒: {ex.Message}");
+ }
+ }
+
+ /// <summary>
+ /// 鐩告満鍥炶皟杩愯
+ /// </summary>
+ /// <param name="CCDName"></param>
+ /// <param name="image"></param>
+ private void GetImageBllComplete(object sender, CameraEventArgs e)
+ {
+ if (e.Bitmap == null)
+ return;
+
+ lock (e.Bitmap)
+ {
+ if (this.InvokeRequired) // 妫�鏌ユ槸鍚﹂渶瑕佸湪UI绾跨▼涓婅皟鐢�
+ {
+ this.Invoke(new Action(() =>
+ {
+ onlinePictureBox.Image = e.Bitmap;
+ })); // 閫掑綊璋冪敤鑷韩锛屼絾杩欐鍦║I绾跨▼涓�
+ }
+ else
+ {
+ onlinePictureBox.Image = e.Bitmap;
+ }
+ }
+ }
+
+ private void uiButtonGrabOnce_Click(object sender, EventArgs e)
+ {
+ if (camera == null)
+ return;
+
+ Task.Factory.StartNew(() =>
+ {
+ camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software);
+ DateTime startTime = DateTime.Now; // 褰撳墠鏃堕棿
+ camera.GetImageWithSoftTrigger(out Bitmap bitmap);
+ });
+ }
+
+ private void uiButtonCloseSoftGrab_Click(object sender, EventArgs e)
+ {
+ if (camera == null)
+ return;
+
+ Task.Factory.StartNew(() =>
+ {
+ camera.StopGrabbing();
+ camera.SetTriggerMode(TriggerMode.On, TriggerSource.Software);
+ camera.StartGrabbing();
+ });
+ }
+
+ private void uiButtonHardGrabWithPLC_Click(object sender, EventArgs e)
+ {
+ if (camera == null)
+ return;
+
+ Task.Factory.StartNew(() =>
+ {
+ camera.SetTriggerMode(TriggerMode.On, TriggerSource.Line0);
+ camera.StopGrabbing();
+ camera.StartWith_HardTriggerModel();
+ });
+ }
+
+ private void uiButtonDecreaseX_Click(object sender, EventArgs e)
+ {
+ float xPosition = 0;
+ xPosition = float.Parse(textBoxXPosition.Text);
+ MovePosition(-xPosition, 0, 0, 0);
+ PositionNow();
+ }
+
+ private void uiButtonIncreaseX_Click(object sender, EventArgs e)
+ {
+ float xPosition = 0;
+ xPosition = float.Parse(textBoxXPosition.Text);
+ MovePosition(xPosition, 0, 0, 0);
+ PositionNow();
+ }
+
+ private void uiButtonDecreaseY_Click(object sender, EventArgs e)
+ {
+ float yPosition = 0;
+ yPosition = float.Parse(textBoxYPosition.Text);
+ MovePosition(0, -yPosition, 0, 0);
+ PositionNow();
+ }
+
+ private void uiButtonIncreaseY_Click(object sender, EventArgs e)
+ {
+ float yPosition = 0;
+ yPosition = float.Parse(textBoxYPosition.Text);
+ MovePosition(0, yPosition, 0, 0);
+ PositionNow();
+ }
+
+ private void uiButtonDecreaseZ_Click(object sender, EventArgs e)
+ {
+ float zPosition = 0;
+ zPosition = float.Parse(textBoxZPosition.Text);
+ MovePosition(0, 0, -zPosition, 0);
+ PositionNow();
+ }
+
+ private void uiButtonIncreaseZ_Click(object sender, EventArgs e)
+ {
+ float zPosition = 0;
+ zPosition = float.Parse(textBoxZPosition.Text);
+ MovePosition(0, 0, zPosition, 0);
+ PositionNow();
+ }
+
+ private void uiButtonDecreasePitchAngle_Click(object sender, EventArgs e)
+ {
+ float pitchanglePosition = 0;
+ pitchanglePosition = float.Parse(textBoxPitchAnglePosition.Text);
+ MovePosition(0, 0, 0, -pitchanglePosition);
+ AngNow();
+ }
+
+ private void uiButtonIncreasePitchAngle_Click(object sender, EventArgs e)
+ {
+ float pitchanglePosition = 0;
+ pitchanglePosition = float.Parse(textBoxPitchAnglePosition.Text);
+ MovePosition(0, 0, 0, pitchanglePosition);
+ AngNow();
+ }
+
+ public float XPositionDt;
+ public float YPositionDt;
+ public float ZPositionDt;
+ public float AnglePositionDt;
+ public void MovePosition(float fDeltaX, float fDeltaY, float fDeltaZ, float fDeltAngle)
+ {
+ XPositionDt += fDeltaX;
+ YPositionDt += fDeltaY;
+ ZPositionDt += fDeltaZ;
+ AnglePositionDt += fDeltAngle;
+ }
+
+ private void textBoxPointSpeed_TextChanged(object sender, EventArgs e)
+ {
+ float pointspeed = 0;
+ pointspeed = float.Parse(textBoxPointSpeed.Text);
+ }
+
+ private void textBoxAngSpeed_TextChanged(object sender, EventArgs e)
+ {
+ float angspeed = 0;
+ angspeed = float.Parse(textBoxAngSpeed.Text);
+ }
+
+ private void textBoxPositionNow_TextChanged(object sender, EventArgs e)
+ {
+ textBoxPositionNow.Enabled = false;
+
+ string x;
+ string y;
+ string z;
+ x = Convert.ToString(Math.Round(XPositionDt, 3));
+ y = Convert.ToString(Math.Round(YPositionDt, 3));
+ z = Convert.ToString(Math.Round(ZPositionDt, 3));
+
+ textBoxPositionNow.Text = "(" + x + "," + y + "," + z + ")";
+ }
+
+ private void textBoxAngleNow_TextChanged(object sender, EventArgs e)
+ {
+ textBoxAngleNow.Enabled = false;
+
+ string ang;
+ ang = Convert.ToString(Math.Round(AnglePositionDt, 3));
+
+ textBoxAngleNow.Text = ang;
+ }
+
+ private void PositionNow()
+ {
+ string x;
+ string y;
+ string z;
+ x = Convert.ToString(Math.Round(XPositionDt, 3));
+ y = Convert.ToString(Math.Round(YPositionDt, 3));
+ z = Convert.ToString(Math.Round(ZPositionDt, 3));
+
+ textBoxPositionNow.Text = "(" + x + y + z + ")";
+ }
+ private void AngNow()
+ {
+ string ang;
+ ang = Convert.ToString(Math.Round(AnglePositionDt, 3));
+
+ textBoxAngleNow.Text = "(" + ang + ")";
+ }
+
+ private void uiGroupBoxMotionControl_Enter(object sender, EventArgs e)
+ {
+
+ }
+
+ private void label1_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void tableLayoutPanel3_Paint(object sender, PaintEventArgs e)
+ {
+
+ }
+
+ private void uiSplitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
+ {
+
+ }
+
+ // 浣跨敤KeyDown浜嬩欢鏇撮�傚悎澶勭悊鍥炶溅閿�
+ private void textBoxXPosition_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter)
+ {
+ //// 楠岃瘉杈撳叆
+ //if (ValidateXPosition())
+ //{
+ // // 鎵ц纭鎿嶄綔
+ // ProcessXPosition();
+ //}
+
+ // 闃绘绯荤粺澹伴煶骞惰鏂囨湰妗嗗け鍘荤劍鐐�
+ e.SuppressKeyPress = true;
+ e.Handled = true;
+
+ this.ActiveControl = null;
+ }
+ }
+
+ // 浣跨敤KeyPress楠岃瘉瀹炴椂杈撳叆
+ private void textBoxXPosition_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ // 鍏佽鍥炶溅閿紙铏界劧KeyDown浼氬鐞嗗畠锛�
+ if (e.KeyChar == (char)Keys.Enter)
+ return;
+
+ // 鍏佽閫�鏍奸敭
+ if (e.KeyChar == (char)Keys.Back)
+ return;
+
+ // 鍙厑璁告暟瀛�
+ if (!char.IsDigit(e.KeyChar))
+ {
+ e.Handled = true; // 闃绘杈撳叆
+ }
+ }
+
+ // 楠岃瘉鏂规硶
+ private bool ValidateXPosition()
+ {
+ if (string.IsNullOrWhiteSpace(textBoxXPosition.Text))
+ return false;
+
+ return Regex.IsMatch(textBoxXPosition.Text, @"^\d+$");
+ }
+
+ // 澶勭悊纭鐨勬柟娉�
+ private void ProcessXPosition()
+ {
+ if (int.TryParse(textBoxXPosition.Text, out int xPosition))
+ {
+ // 鎵ц閫昏緫
+ //LogInfo?.Invoke($"X浣嶇疆宸叉洿鏂颁负: {xPosition}", LogInfoType.INFO);
+ }
+ }
+ }
+}
diff --git a/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.resx b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.resx
new file mode 100644
index 0000000..3384e6d
--- /dev/null
+++ b/LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.resx
@@ -0,0 +1,144 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPiSURBVFhH7VZLiBxlEG7d+IjBKKtktqt6d8kybLqqZyfi
+ +lgUXcGooKIXxYBKLgZFQVDwgQhBvAVzUOPBi3iJgnoSCcTLKobEma7qHeOiuB7UiBo1PuIjq9HNSPX0
+ rDN/zyzbQjztB9+pv3r8/19dVZ63ilUUwBzzmbppGOpRcKlEcLNwcGfMsE0J7ogj//okws2NamlD83Zv
+ wLX9z2h63ulz7I8kDNsSxleF8CMl+EEY/lDCv5TxbyU8oQTHlfCIEL5kSbh+CqPpeafVIxgWwieUcU4I
+ /lTGZl8SnEgI3pBxPzTbOQ4Gkyi4pxEGFTuE639ZpFfNcIsS1LJT5gN28xdl3Cnj/oVmP7t59Hwl3K0M
+ C8owL4zbG9XSOjdOT5hQCB5Rxu97BMqT4BsJ4X6Z9M8x+483XXCuEO5KnyjTCOGvSvjMAQ4G3XhdODAV
+ rBWGHUL4Wy5Qb34Sk3/rzLS3xuwtCSV8ShmOu1p7wpjwBRkbO8+Nm6LpeQMxwX3Suk43ULczxpPKKLOR
+ f+WO7H1bz4YPpaftYdMiLMQET5rWje/FhJfHhF/kjXJcVIZ3tIJVKzazfc3zBpTwLmU82kPfRWH8Lg79
+ 67qC76uW1mkEr2Qnyxl1GC8K49uNEMbbtpZEjeBaXVnymR/Y2/UUNQqutn/bFTpcVMZ9ykF5ydDzvEMV
+ P4wZtYe+L+2Z4hBvSh3YP6rs71zu9PZNGN7tPLnBqloIXl/Oth+F4MW0eO0qlPA9V9BFwtlZhos6g89M
+ T69JGB/Xjt+tIDXtG41qaaMwftZDkBG+TAi2tAuuDaHhq4Thq7x+pYSvNRoiL54IJqwy84L05L8LwwPu
+ cLFOJ4Rv5vQFKAQ/xRxc1jeB9F0J9rxfHlzfGdxQD2GrJefaFGI7gfrEyJgwfp4X4GEN/Uk3+H5rtQx7
+ c/qCFIIjNSpFrcHBcLDro1U94a52i+1EHPoXC+VvrCiF4cNDlY2ltIsJwXOO4KiEOOUGN9jykc7/Hk4L
+ kWDPUkuWKLhBGY79+xH32824wQ3WcsWWENdhAdqktG1qyakVWszw1pKI8GW7ma7IGbQydImNYNdpIRLU
+ 4nDE73JcJ9gihN9mCexuTzkX2dR7TAh+zDleAa0N1wnvdvuKJ5OTZ9j6JQwL1l57jswMM6OjZ8eEN0q6
+ I8KnynjMVjKbF1lbPtlq3ykXW1tVuh39LITP992O5suD65XhWSH4QGlo1P3uYr5cPst0thckjLcp473K
+ 8LBYiyb/0YTwQdsLNYStlnASwRX9amsJaZcL8WkJcXu/OjjlODwVrI0jvOZgZUPJ/fa/wYrEnQGrOBX4
+ B6XRFGacFF+7AAAAAElFTkSuQmCC
+</value>
+ </data>
+</root>
\ No newline at end of file
--
Gitblit v1.9.3