Commit 0fd67cd7 几米阳光

坐标转换修改

1 个父辈 3ea74c66
...@@ -195,6 +195,9 @@ namespace URSoldering.DeviceLibrary ...@@ -195,6 +195,9 @@ namespace URSoldering.DeviceLibrary
public double RobotRY { get; set; } public double RobotRY { get; set; }
public double RobotRZ { get; set; } public double RobotRZ { get; set; }
public int ImageX = -1;
public int ImageY = -1;
/// <summary> /// <summary>
/// 预热温度 /// 预热温度
/// </summary> /// </summary>
......
...@@ -100,6 +100,22 @@ ...@@ -100,6 +100,22 @@
this.txtRobotX = new System.Windows.Forms.Label(); this.txtRobotX = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label();
this.dgvList = new System.Windows.Forms.DataGridView(); this.dgvList = new System.Windows.Forms.DataGridView();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.cmbAoiFile = new System.Windows.Forms.ComboBox();
this.label9 = new System.Windows.Forms.Label();
this.txtBoardName = new System.Windows.Forms.TextBox();
this.label25 = new System.Windows.Forms.Label();
this.label24 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.btnSave = new System.Windows.Forms.Button();
this.txtBoardLength = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtBoardWidth = new System.Windows.Forms.TextBox();
this.btnOpenFile = new System.Windows.Forms.Button();
this.btnSStop = new System.Windows.Forms.Button();
this.btnWStop = new System.Windows.Forms.Button();
this.label14 = new System.Windows.Forms.Label();
this.Column_pointNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column_pointNum = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Name = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column_Name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_pointType = new System.Windows.Forms.DataGridViewComboBoxColumn(); this.Column_pointType = new System.Windows.Forms.DataGridViewComboBoxColumn();
...@@ -123,28 +139,14 @@ ...@@ -123,28 +139,14 @@
this.Column_sendWireTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column_sendWireTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_isClear = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.Column_isClear = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.Column_ClearTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column_ClearTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_ImageX = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_ImageY = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_getPosition = new System.Windows.Forms.DataGridViewLinkColumn(); this.Column_getPosition = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_MoveTest = new System.Windows.Forms.DataGridViewLinkColumn(); this.Column_MoveTest = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_btnDetail = new System.Windows.Forms.DataGridViewLinkColumn(); this.Column_btnDetail = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_Del = new System.Windows.Forms.DataGridViewLinkColumn(); this.Column_Del = new System.Windows.Forms.DataGridViewLinkColumn();
this.Column_Up = new System.Windows.Forms.DataGridViewImageColumn(); this.Column_Up = new System.Windows.Forms.DataGridViewImageColumn();
this.Column_Down = new System.Windows.Forms.DataGridViewImageColumn(); this.Column_Down = new System.Windows.Forms.DataGridViewImageColumn();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.cmbAoiFile = new System.Windows.Forms.ComboBox();
this.label9 = new System.Windows.Forms.Label();
this.txtBoardName = new System.Windows.Forms.TextBox();
this.label25 = new System.Windows.Forms.Label();
this.label24 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.btnSave = new System.Windows.Forms.Button();
this.txtBoardLength = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtBoardWidth = new System.Windows.Forms.TextBox();
this.btnOpenFile = new System.Windows.Forms.Button();
this.btnSStop = new System.Windows.Forms.Button();
this.btnWStop = new System.Windows.Forms.Button();
this.label14 = new System.Windows.Forms.Label();
this.contextMenuStrip1.SuspendLayout(); this.contextMenuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picRight)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.picRight)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picLeft)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.picLeft)).BeginInit();
...@@ -924,6 +926,8 @@ ...@@ -924,6 +926,8 @@
this.Column_sendWireTime, this.Column_sendWireTime,
this.Column_isClear, this.Column_isClear,
this.Column_ClearTime, this.Column_ClearTime,
this.Column_ImageX,
this.Column_ImageY,
this.Column_getPosition, this.Column_getPosition,
this.Column_MoveTest, this.Column_MoveTest,
this.Column_btnDetail, this.Column_btnDetail,
...@@ -949,6 +953,182 @@ ...@@ -949,6 +953,182 @@
this.dgvList.DragDrop += new System.Windows.Forms.DragEventHandler(this.dgvList_DragDrop); this.dgvList.DragDrop += new System.Windows.Forms.DragEventHandler(this.dgvList_DragDrop);
this.dgvList.DragEnter += new System.Windows.Forms.DragEventHandler(this.dgvList_DragEnter); this.dgvList.DragEnter += new System.Windows.Forms.DragEventHandler(this.dgvList_DragEnter);
// //
// groupBox1
//
this.groupBox1.Controls.Add(this.cmbAoiFile);
this.groupBox1.Controls.Add(this.label9);
this.groupBox1.Controls.Add(this.txtBoardName);
this.groupBox1.Controls.Add(this.label25);
this.groupBox1.Controls.Add(this.label24);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.btnSave);
this.groupBox1.Controls.Add(this.txtBoardLength);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.txtBoardWidth);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(12, 8);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(1062, 68);
this.groupBox1.TabIndex = 20;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "程序基本信息";
//
// cmbAoiFile
//
this.cmbAoiFile.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbAoiFile.FormattingEnabled = true;
this.cmbAoiFile.Location = new System.Drawing.Point(350, 23);
this.cmbAoiFile.Name = "cmbAoiFile";
this.cmbAoiFile.Size = new System.Drawing.Size(180, 25);
this.cmbAoiFile.TabIndex = 269;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(266, 28);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(78, 17);
this.label9.TabIndex = 268;
this.label9.Text = "AOI检测程序";
//
// txtBoardName
//
this.txtBoardName.Location = new System.Drawing.Point(46, 25);
this.txtBoardName.MaxLength = 20;
this.txtBoardName.Name = "txtBoardName";
this.txtBoardName.Size = new System.Drawing.Size(180, 23);
this.txtBoardName.TabIndex = 2;
//
// label25
//
this.label25.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(788, 28);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(42, 17);
this.label25.TabIndex = 37;
this.label25.Text = "→mm";
//
// label24
//
this.label24.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(651, 28);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(36, 17);
this.label24.TabIndex = 36;
this.label24.Text = "↑mm";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(9, 28);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(32, 17);
this.label2.TabIndex = 1;
this.label2.Text = "名称";
//
// btnSave
//
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSave.FlatAppearance.BorderSize = 0;
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(939, 16);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(117, 41);
this.btnSave.TabIndex = 40;
this.btnSave.Text = "保存";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// txtBoardLength
//
this.txtBoardLength.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.txtBoardLength.Location = new System.Drawing.Point(596, 25);
this.txtBoardLength.MaxLength = 8;
this.txtBoardLength.Name = "txtBoardLength";
this.txtBoardLength.Size = new System.Drawing.Size(53, 23);
this.txtBoardLength.TabIndex = 4;
this.txtBoardLength.TextChanged += new System.EventHandler(this.txtBoardLength_TextChanged);
//
// label4
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(711, 28);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(20, 17);
this.label4.TabIndex = 5;
this.label4.Text = "宽";
//
// label3
//
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(574, 28);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(20, 17);
this.label3.TabIndex = 3;
this.label3.Text = "高";
//
// txtBoardWidth
//
this.txtBoardWidth.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.txtBoardWidth.Location = new System.Drawing.Point(733, 25);
this.txtBoardWidth.MaxLength = 8;
this.txtBoardWidth.Name = "txtBoardWidth";
this.txtBoardWidth.Size = new System.Drawing.Size(53, 23);
this.txtBoardWidth.TabIndex = 6;
this.txtBoardWidth.TextChanged += new System.EventHandler(this.txtBoardWidth_TextChanged);
//
// btnOpenFile
//
this.btnOpenFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnOpenFile.FlatAppearance.BorderSize = 0;
this.btnOpenFile.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpenFile.Location = new System.Drawing.Point(1103, 22);
this.btnOpenFile.Name = "btnOpenFile";
this.btnOpenFile.Size = new System.Drawing.Size(117, 41);
this.btnOpenFile.TabIndex = 260;
this.btnOpenFile.Text = "打开图片";
this.btnOpenFile.UseVisualStyleBackColor = true;
this.btnOpenFile.Click += new System.EventHandler(this.btnOpenFile_Click);
//
// btnSStop
//
this.btnSStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSStop.Location = new System.Drawing.Point(1264, 9);
this.btnSStop.Name = "btnSStop";
this.btnSStop.Size = new System.Drawing.Size(117, 23);
this.btnSStop.TabIndex = 256;
this.btnSStop.Text = "烙铁停止移动";
this.btnSStop.UseVisualStyleBackColor = true;
this.btnSStop.Visible = false;
//
// btnWStop
//
this.btnWStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnWStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnWStop.Location = new System.Drawing.Point(1264, 37);
this.btnWStop.Name = "btnWStop";
this.btnWStop.Size = new System.Drawing.Size(117, 23);
this.btnWStop.TabIndex = 257;
this.btnWStop.Text = "送丝停止移动";
this.btnWStop.UseVisualStyleBackColor = true;
this.btnWStop.Visible = false;
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(195, 34);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(44, 17);
this.label14.TabIndex = 9;
this.label14.Text = "条形码";
this.label14.Visible = false;
//
// Column_pointNum // Column_pointNum
// //
this.Column_pointNum.DataPropertyName = "pointNum"; this.Column_pointNum.DataPropertyName = "pointNum";
...@@ -1142,6 +1322,20 @@ ...@@ -1142,6 +1322,20 @@
this.Column_ClearTime.ReadOnly = true; this.Column_ClearTime.ReadOnly = true;
this.Column_ClearTime.Visible = false; this.Column_ClearTime.Visible = false;
// //
// Column_ImageX
//
this.Column_ImageX.HeaderText = "ImageX";
this.Column_ImageX.Name = "Column_ImageX";
this.Column_ImageX.ReadOnly = true;
this.Column_ImageX.Visible = false;
//
// Column_ImageY
//
this.Column_ImageY.HeaderText = "ImageY";
this.Column_ImageY.Name = "Column_ImageY";
this.Column_ImageY.ReadOnly = true;
this.Column_ImageY.Visible = false;
//
// Column_getPosition // Column_getPosition
// //
this.Column_getPosition.HeaderText = "更新坐标"; this.Column_getPosition.HeaderText = "更新坐标";
...@@ -1203,182 +1397,6 @@ ...@@ -1203,182 +1397,6 @@
this.Column_Down.Visible = false; this.Column_Down.Visible = false;
this.Column_Down.Width = 50; this.Column_Down.Width = 50;
// //
// groupBox1
//
this.groupBox1.Controls.Add(this.cmbAoiFile);
this.groupBox1.Controls.Add(this.label9);
this.groupBox1.Controls.Add(this.txtBoardName);
this.groupBox1.Controls.Add(this.label25);
this.groupBox1.Controls.Add(this.label24);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.btnSave);
this.groupBox1.Controls.Add(this.txtBoardLength);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.txtBoardWidth);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(12, 8);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(1062, 68);
this.groupBox1.TabIndex = 20;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "程序基本信息";
//
// cmbAoiFile
//
this.cmbAoiFile.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbAoiFile.FormattingEnabled = true;
this.cmbAoiFile.Location = new System.Drawing.Point(350, 23);
this.cmbAoiFile.Name = "cmbAoiFile";
this.cmbAoiFile.Size = new System.Drawing.Size(180, 25);
this.cmbAoiFile.TabIndex = 269;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(266, 28);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(78, 17);
this.label9.TabIndex = 268;
this.label9.Text = "AOI检测程序";
//
// txtBoardName
//
this.txtBoardName.Location = new System.Drawing.Point(46, 25);
this.txtBoardName.MaxLength = 20;
this.txtBoardName.Name = "txtBoardName";
this.txtBoardName.Size = new System.Drawing.Size(180, 23);
this.txtBoardName.TabIndex = 2;
//
// label25
//
this.label25.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label25.AutoSize = true;
this.label25.Location = new System.Drawing.Point(788, 28);
this.label25.Name = "label25";
this.label25.Size = new System.Drawing.Size(42, 17);
this.label25.TabIndex = 37;
this.label25.Text = "→mm";
//
// label24
//
this.label24.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(651, 28);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(36, 17);
this.label24.TabIndex = 36;
this.label24.Text = "↑mm";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(9, 28);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(32, 17);
this.label2.TabIndex = 1;
this.label2.Text = "名称";
//
// btnSave
//
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSave.FlatAppearance.BorderSize = 0;
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(939, 16);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(117, 41);
this.btnSave.TabIndex = 40;
this.btnSave.Text = "保存";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// txtBoardLength
//
this.txtBoardLength.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.txtBoardLength.Location = new System.Drawing.Point(596, 25);
this.txtBoardLength.MaxLength = 8;
this.txtBoardLength.Name = "txtBoardLength";
this.txtBoardLength.Size = new System.Drawing.Size(53, 23);
this.txtBoardLength.TabIndex = 4;
this.txtBoardLength.TextChanged += new System.EventHandler(this.txtBoardLength_TextChanged);
//
// label4
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(711, 28);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(20, 17);
this.label4.TabIndex = 5;
this.label4.Text = "宽";
//
// label3
//
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(574, 28);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(20, 17);
this.label3.TabIndex = 3;
this.label3.Text = "高";
//
// txtBoardWidth
//
this.txtBoardWidth.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.txtBoardWidth.Location = new System.Drawing.Point(733, 25);
this.txtBoardWidth.MaxLength = 8;
this.txtBoardWidth.Name = "txtBoardWidth";
this.txtBoardWidth.Size = new System.Drawing.Size(53, 23);
this.txtBoardWidth.TabIndex = 6;
this.txtBoardWidth.TextChanged += new System.EventHandler(this.txtBoardWidth_TextChanged);
//
// btnOpenFile
//
this.btnOpenFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnOpenFile.FlatAppearance.BorderSize = 0;
this.btnOpenFile.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpenFile.Location = new System.Drawing.Point(1103, 22);
this.btnOpenFile.Name = "btnOpenFile";
this.btnOpenFile.Size = new System.Drawing.Size(117, 41);
this.btnOpenFile.TabIndex = 260;
this.btnOpenFile.Text = "打开图片";
this.btnOpenFile.UseVisualStyleBackColor = true;
this.btnOpenFile.Click += new System.EventHandler(this.btnOpenFile_Click);
//
// btnSStop
//
this.btnSStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSStop.Location = new System.Drawing.Point(1264, 9);
this.btnSStop.Name = "btnSStop";
this.btnSStop.Size = new System.Drawing.Size(117, 23);
this.btnSStop.TabIndex = 256;
this.btnSStop.Text = "烙铁停止移动";
this.btnSStop.UseVisualStyleBackColor = true;
this.btnSStop.Visible = false;
//
// btnWStop
//
this.btnWStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnWStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnWStop.Location = new System.Drawing.Point(1264, 37);
this.btnWStop.Name = "btnWStop";
this.btnWStop.Size = new System.Drawing.Size(117, 23);
this.btnWStop.TabIndex = 257;
this.btnWStop.Text = "送丝停止移动";
this.btnWStop.UseVisualStyleBackColor = true;
this.btnWStop.Visible = false;
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(195, 34);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(44, 17);
this.label14.TabIndex = 9;
this.label14.Text = "条形码";
this.label14.Visible = false;
//
// FrmBoardInfo // FrmBoardInfo
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
...@@ -1498,6 +1516,15 @@ ...@@ -1498,6 +1516,15 @@
private System.Windows.Forms.Label label17; private System.Windows.Forms.Label label17;
private System.Windows.Forms.Label label15; private System.Windows.Forms.Label label15;
private System.Windows.Forms.DataGridView dgvPoint; private System.Windows.Forms.DataGridView dgvPoint;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_ID;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_X;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_Y;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_Z;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_RX;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_RY;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_RZ;
private System.Windows.Forms.DataGridViewLinkColumn Col_Update;
private System.Windows.Forms.DataGridViewLinkColumn Col_Move;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_pointNum; private System.Windows.Forms.DataGridViewTextBoxColumn Column_pointNum;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Name; private System.Windows.Forms.DataGridViewTextBoxColumn Column_Name;
private System.Windows.Forms.DataGridViewComboBoxColumn Column_pointType; private System.Windows.Forms.DataGridViewComboBoxColumn Column_pointType;
...@@ -1521,20 +1548,13 @@ ...@@ -1521,20 +1548,13 @@
private System.Windows.Forms.DataGridViewTextBoxColumn Column_sendWireTime; private System.Windows.Forms.DataGridViewTextBoxColumn Column_sendWireTime;
private System.Windows.Forms.DataGridViewCheckBoxColumn Column_isClear; private System.Windows.Forms.DataGridViewCheckBoxColumn Column_isClear;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_ClearTime; private System.Windows.Forms.DataGridViewTextBoxColumn Column_ClearTime;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_ImageX;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_ImageY;
private System.Windows.Forms.DataGridViewLinkColumn Column_getPosition; private System.Windows.Forms.DataGridViewLinkColumn Column_getPosition;
private System.Windows.Forms.DataGridViewLinkColumn Column_MoveTest; private System.Windows.Forms.DataGridViewLinkColumn Column_MoveTest;
private System.Windows.Forms.DataGridViewLinkColumn Column_btnDetail; private System.Windows.Forms.DataGridViewLinkColumn Column_btnDetail;
private System.Windows.Forms.DataGridViewLinkColumn Column_Del; private System.Windows.Forms.DataGridViewLinkColumn Column_Del;
private System.Windows.Forms.DataGridViewImageColumn Column_Up; private System.Windows.Forms.DataGridViewImageColumn Column_Up;
private System.Windows.Forms.DataGridViewImageColumn Column_Down; private System.Windows.Forms.DataGridViewImageColumn Column_Down;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_ID;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_X;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_Y;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_Z;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_RX;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_RY;
private System.Windows.Forms.DataGridViewTextBoxColumn Col_RZ;
private System.Windows.Forms.DataGridViewLinkColumn Col_Update;
private System.Windows.Forms.DataGridViewLinkColumn Col_Move;
} }
} }
\ No newline at end of file \ No newline at end of file
...@@ -286,6 +286,9 @@ namespace URSoldering.Client ...@@ -286,6 +286,9 @@ namespace URSoldering.Client
view.Cells[Column_pointType.Index].Value = point.pointType; view.Cells[Column_pointType.Index].Value = point.pointType;
view.Cells[Column_isClear.Index].Value = point.isNeedClear.ToString(); view.Cells[Column_isClear.Index].Value = point.isNeedClear.ToString();
view.Cells[Column_ClearTime.Index].Value = point.ClearTime; view.Cells[Column_ClearTime.Index].Value = point.ClearTime;
view.Cells[Column_ImageX.Index].Value = point.ImageX;
view.Cells[Column_ImageY.Index].Value = point.ImageY;
return view; return view;
} }
private bool isRun = false; private bool isRun = false;
...@@ -360,7 +363,7 @@ namespace URSoldering.Client ...@@ -360,7 +363,7 @@ namespace URSoldering.Client
MessageBox.Show("保存失败,焊点Z坐标(" + point.Z + ")不能低于最低Z点(" + URRobotControl.Robot_LIM_Z + ")"); MessageBox.Show("保存失败,焊点Z坐标(" + point.Z + ")不能低于最低Z点(" + URRobotControl.Robot_LIM_Z + ")");
return; return;
} }
AddNewPoint(point); AddNewPoint(point,-1,-1);
liUpdateTime_LinkClicked(null, null); liUpdateTime_LinkClicked(null, null);
} }
...@@ -780,6 +783,8 @@ namespace URSoldering.Client ...@@ -780,6 +783,8 @@ namespace URSoldering.Client
point.isNeedClear = Convert.ToBoolean(row.Cells[this.Column_isClear.Name].Value.ToString()); point.isNeedClear = Convert.ToBoolean(row.Cells[this.Column_isClear.Name].Value.ToString());
point.pointType = Convert.ToInt32(row.Cells[this.Column_pointType.Name].Value.ToString()); point.pointType = Convert.ToInt32(row.Cells[this.Column_pointType.Name].Value.ToString());
point.ClearTime=Convert.ToInt32(row.Cells[this.Column_ClearTime.Name].Value.ToString()); point.ClearTime=Convert.ToInt32(row.Cells[this.Column_ClearTime.Name].Value.ToString());
point.ImageX = Convert.ToInt32(row.Cells[this.Column_ImageX.Name].Value.ToString());
point.ImageY = Convert.ToInt32(row.Cells[this.Column_ImageY.Name].Value.ToString());
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -873,8 +878,9 @@ namespace URSoldering.Client ...@@ -873,8 +878,9 @@ namespace URSoldering.Client
int pointHight = 16; int pointHight = 16;
float x, y; float x, y;
GetPicPointByUrPoint(weld.GetURPoint(), out x, out y); GetPicPointByUrPoint(weld.GetURPoint(), out x, out y);
x = weld.ImageX;
LogUtil.debug("显示焊点:X【" + x + "】Y【" + y + "】,坐标X【" + weld.RobotX + "】坐标Y【" + weld.RobotY + "】"); y = weld.ImageY;
LogUtil.debug("显示焊点【"+weld.pointName+"】:X【" + x + "】Y【" + y + "】,坐标X【" + weld.RobotX + "】坐标Y【" + weld.RobotY + "】");
g.FillEllipse(Brushes.Red, x - pointHight / 2, y - pointHight / 2, pointHight, pointHight); g.FillEllipse(Brushes.Red, x - pointHight / 2, y - pointHight / 2, pointHight, pointHight);
if (index > 0) if (index > 0)
{ {
...@@ -1039,7 +1045,7 @@ namespace URSoldering.Client ...@@ -1039,7 +1045,7 @@ namespace URSoldering.Client
URPointValue point = GetUrPointByPicPoint( ); URPointValue point = GetUrPointByPicPoint( );
LogUtil.info("新增焊点:X【" + m_MouseDownPoint.X + "】Y【" + m_MouseDownPoint.Y + "】,坐标 【" + point.ToShowStr() + "】 "); LogUtil.info("新增焊点:X【" + m_MouseDownPoint.X + "】Y【" + m_MouseDownPoint.Y + "】,坐标 【" + point.ToShowStr() + "】 ");
AddNewPoint(point); AddNewPoint(point, m_MouseDownPoint.X, m_MouseDownPoint.Y);
liUpdateTime_LinkClicked(null, null); liUpdateTime_LinkClicked(null, null);
} }
...@@ -1055,13 +1061,13 @@ namespace URSoldering.Client ...@@ -1055,13 +1061,13 @@ namespace URSoldering.Client
//判断AD点是否有效 //判断AD点是否有效
if (APointValue.IsValid() && DPointValue.IsValid()) if (APointValue.IsValid() && DPointValue.IsValid())
{ {
x = (float)((point.X-APointValue.X) * width / (DPointValue.X - APointValue.X)); x = (float)((point.X - APointValue.X) * width / (DPointValue.X - APointValue.X));
y = (float)((point.Y-APointValue.Y) * height / (DPointValue.Y - APointValue.Y)); y = (float)((point.Y - APointValue.Y) * height / (DPointValue.Y - APointValue.Y));
} }
else if (BPointValue.IsValid() && CPointValue.IsValid()) else if (BPointValue.IsValid() && CPointValue.IsValid())
{ {
x = (float)((point.X-BPointValue.X) * width / (CPointValue.X - BPointValue.X)); x = (float)((point.X - BPointValue.X) * width / (CPointValue.X - BPointValue.X));
y = (float)((point.Y-CPointValue.Y) * height / (BPointValue.Y - CPointValue.Y)); y = (float)((point.Y - CPointValue.Y) * height / (BPointValue.Y - CPointValue.Y));
} }
else else
{ {
...@@ -1069,7 +1075,7 @@ namespace URSoldering.Client ...@@ -1069,7 +1075,7 @@ namespace URSoldering.Client
y = -1; y = -1;
} }
} }
private URPointValue GetUrPointByPicPoint( ) private URPointValue GetUrPointByPicPoint()
{ {
URPointValue currPoint = GetCurrRobotPoint(); URPointValue currPoint = GetCurrRobotPoint();
URPointValue point = new URPointValue(0, 0, currPoint.Z, currPoint.RX, currPoint.RY, currPoint.RZ); URPointValue point = new URPointValue(0, 0, currPoint.Z, currPoint.RX, currPoint.RY, currPoint.RZ);
...@@ -1082,31 +1088,42 @@ namespace URSoldering.Client ...@@ -1082,31 +1088,42 @@ namespace URSoldering.Client
int width = picBoard.Width; int width = picBoard.Width;
int height = picBoard.Height; int height = picBoard.Height;
//if (APointValue.IsValid() && DPointValue.IsValid())
//{
// double x = APointValue.X + m_MouseDownPoint.X * (DPointValue.X - APointValue.X) / width;
// double y = APointValue.Y + m_MouseDownPoint.Y * (DPointValue.Y - APointValue.Y) / height;
// point.X = x;
// point.Y = y;
//}
//else if (BPointValue.IsValid() && CPointValue.IsValid())
//{
// double x = BPointValue.X + m_MouseDownPoint.X * (CPointValue.X - BPointValue.X) / width;
// double y = CPointValue.Y + m_MouseDownPoint.Y * (BPointValue.Y - CPointValue.Y) / height;
// point.X = x;
// point.Y = y;
//}
//判断AD点是否有效 //判断AD点是否有效
if (APointValue.IsValid() && DPointValue.IsValid()) if (APointValue.IsValid() && CPointValue.IsValid() && BPointValue.IsValid())
{
double x = APointValue.X + m_MouseDownPoint.X * (DPointValue.X - APointValue.X) / width;
double y= APointValue.Y+m_MouseDownPoint.Y*(DPointValue.Y - APointValue.Y) / height;
point.X = x;
point.Y = y;
}else if (BPointValue.IsValid() && CPointValue.IsValid())
{ {
double x =BPointValue.X+ m_MouseDownPoint.X * (CPointValue.X - BPointValue.X) / width; double x = APointValue.X + m_MouseDownPoint.Y * (BPointValue.X - APointValue.X) / height +
double y =CPointValue.Y+ m_MouseDownPoint.Y * (BPointValue.Y - CPointValue.Y) / height; m_MouseDownPoint.X * (CPointValue.X - APointValue.X) / width;
point.X = x; double y = APointValue.Y + m_MouseDownPoint.Y * (BPointValue.Y - APointValue.Y) / height +
point.Y = y; m_MouseDownPoint.X * (CPointValue.Y - APointValue.Y) / width;
point.X = Math.Round(x, 2);
point.Y = Math.Round(y, 2);
LogUtil.info("图片坐标【" + m_MouseDownPoint.X + "," + m_MouseDownPoint.Y + "】宽【" + width + "】高【" + height + "】机械臂坐标【" + point.X + "," + point.Y + "】");
} }
return point; return point;
} }
private void AddNewPoint(URPointValue robotP) private void AddNewPoint(URPointValue robotP,int ImageX,int ImageY)
{ {
WeldPointInfo point = new WeldPointInfo(); WeldPointInfo point = new WeldPointInfo();
string name = "P" + (dgvList.Rows.Count + 1); string name = "P" + (dgvList.Rows.Count + 1);
//FrmPointInfo fwpi = new FrmPointInfo(name,robotP); //FrmPointInfo fwpi = new FrmPointInfo(name,robotP);
//DialogResult result = fwpi.ShowDialog(); //DialogResult result = fwpi.ShowDialog();
FrmPointInfo fwpi = new FrmPointInfo(name, robotP); FrmPointInfo fwpi = new FrmPointInfo(name, robotP,ImageX,ImageY);
fwpi.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) fwpi.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
......
...@@ -475,6 +475,12 @@ ...@@ -475,6 +475,12 @@
<metadata name="Column_ClearTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Column_ClearTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="Column_ImageX.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_ImageY.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_getPosition.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Column_getPosition.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
......
...@@ -236,7 +236,8 @@ namespace URSoldering.Client ...@@ -236,7 +236,8 @@ namespace URSoldering.Client
int pointHight = 16; int pointHight = 16;
float x, y; float x, y;
GetPicPointByUrPoint(board, weld.GetURPoint(), out x, out y); GetPicPointByUrPoint(board, weld.GetURPoint(), out x, out y);
x = weld.ImageX;
y = weld.ImageY;
LogUtil.debug("显示焊点:X【" + x + "】Y【" + y + "】,坐标X【" + weld.RobotX + "】坐标Y【" + weld.RobotY + "】"); LogUtil.debug("显示焊点:X【" + x + "】Y【" + y + "】,坐标X【" + weld.RobotX + "】坐标Y【" + weld.RobotY + "】");
g.FillEllipse(Brushes.Red, x - pointHight / 2, y - pointHight / 2, pointHight, pointHight); g.FillEllipse(Brushes.Red, x - pointHight / 2, y - pointHight / 2, pointHight, pointHight);
if (index > 0) if (index > 0)
......
...@@ -14,6 +14,8 @@ namespace URSoldering.Client ...@@ -14,6 +14,8 @@ namespace URSoldering.Client
{ {
public partial class FrmPointInfo : FrmBase public partial class FrmPointInfo : FrmBase
{ {
private int ImageX = 0;
private int ImageY = 0;
public delegate void OpClose(DialogResult result,WeldPointInfo point); public delegate void OpClose(DialogResult result,WeldPointInfo point);
public event OpClose OnCloseEnd; public event OpClose OnCloseEnd;
public WeldPointInfo weldPointInfo = new WeldPointInfo(); public WeldPointInfo weldPointInfo = new WeldPointInfo();
...@@ -24,8 +26,12 @@ namespace URSoldering.Client ...@@ -24,8 +26,12 @@ namespace URSoldering.Client
cmbPointType.SelectedIndex = 0; cmbPointType.SelectedIndex = 0;
groupPoint.Text = "新增焊点"; groupPoint.Text = "新增焊点";
} }
public FrmPointInfo(string name,URPointValue point) public FrmPointInfo(string name,URPointValue point,int imageX,int imageY)
{ {
this.ImageX = imageX;
this.ImageY = imageY;
weldPointInfo.ImageX = ImageX;
weldPointInfo.ImageY = ImageY;
InitializeComponent(); InitializeComponent();
this.Text = "新增焊点"; this.Text = "新增焊点";
groupPoint.Text = "新增焊点"; groupPoint.Text = "新增焊点";
......
...@@ -52,10 +52,10 @@ ...@@ -52,10 +52,10 @@
this.groupBox6 = new System.Windows.Forms.GroupBox(); this.groupBox6 = new System.Windows.Forms.GroupBox();
this.markControl = new UserFromControl.URRobotMControl(); this.markControl = new UserFromControl.URRobotMControl();
this.groupBox7 = new System.Windows.Forms.GroupBox(); this.groupBox7 = new System.Windows.Forms.GroupBox();
this.txtMarkX = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.txtMarkY = new System.Windows.Forms.TextBox(); this.txtMarkY = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.txtMarkX = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.groupBox3.SuspendLayout(); this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout(); this.groupBox2.SuspendLayout();
this.groupBox4.SuspendLayout(); this.groupBox4.SuspendLayout();
...@@ -302,25 +302,10 @@ ...@@ -302,25 +302,10 @@
this.groupBox7.TabStop = false; this.groupBox7.TabStop = false;
this.groupBox7.Text = "坐标偏移Mark点的图片坐标"; this.groupBox7.Text = "坐标偏移Mark点的图片坐标";
// //
// txtMarkX
//
this.txtMarkX.Location = new System.Drawing.Point(51, 27);
this.txtMarkX.Name = "txtMarkX";
this.txtMarkX.Size = new System.Drawing.Size(106, 23);
this.txtMarkX.TabIndex = 7;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(17, 30);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(28, 17);
this.label1.TabIndex = 6;
this.label1.Text = "X:";
//
// txtMarkY // txtMarkY
// //
this.txtMarkY.Location = new System.Drawing.Point(212, 27); this.txtMarkY.Location = new System.Drawing.Point(212, 27);
this.txtMarkY.MaxLength = 10;
this.txtMarkY.Name = "txtMarkY"; this.txtMarkY.Name = "txtMarkY";
this.txtMarkY.Size = new System.Drawing.Size(106, 23); this.txtMarkY.Size = new System.Drawing.Size(106, 23);
this.txtMarkY.TabIndex = 9; this.txtMarkY.TabIndex = 9;
...@@ -334,6 +319,23 @@ ...@@ -334,6 +319,23 @@
this.label2.TabIndex = 8; this.label2.TabIndex = 8;
this.label2.Text = "Y:"; this.label2.Text = "Y:";
// //
// txtMarkX
//
this.txtMarkX.Location = new System.Drawing.Point(51, 27);
this.txtMarkX.MaxLength = 10;
this.txtMarkX.Name = "txtMarkX";
this.txtMarkX.Size = new System.Drawing.Size(106, 23);
this.txtMarkX.TabIndex = 7;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(17, 30);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(28, 17);
this.label1.TabIndex = 6;
this.label1.Text = "X:";
//
// FrmSetting // FrmSetting
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
......
...@@ -137,12 +137,18 @@ namespace URSoldering.Client ...@@ -137,12 +137,18 @@ namespace URSoldering.Client
double x = FormUtil.getDoubleValue(txtMarkX); double x = FormUtil.getDoubleValue(txtMarkX);
double y = FormUtil.getDoubleValue(txtMarkY); double y = FormUtil.getDoubleValue(txtMarkY);
if (x <= 0 || y <= 0) if (!txtMarkX.Text.Equals(x.ToString()) )
{ {
MessageBox.Show("请输入正确的Mark的图片坐标"); MessageBox.Show("请输入正确的Mark的图片X坐标");
txtMarkX.Focus(); txtMarkX.Focus();
return; return;
} }
if (!txtMarkY.Text.Equals(y.ToString()))
{
MessageBox.Show("请输入正确的Mark的图片Y坐标");
txtMarkY.Focus();
return;
}
WeldRobotBean.MarkImgPosition = new PositionResult(x, y); WeldRobotBean.MarkImgPosition = new PositionResult(x, y);
ConfigAppSettings.SaveValue(Setting_Init.MarkDefaultPosition, WeldRobotBean.MarkImgPosition.ToJosonStr()); ConfigAppSettings.SaveValue(Setting_Init.MarkDefaultPosition, WeldRobotBean.MarkImgPosition.ToJosonStr());
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!