|
|
@@ -322,7 +322,7 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
|
|
|
private DelegateCommand _DeletePointCommand;
|
|
|
public DelegateCommand DeletePointCommand =>
|
|
|
- _DeletePointCommand ?? (_DeletePointCommand = new DelegateCommand(ExecuteDeletePointCommand, CanExecuteDeletePointCommand).ObservesProperty(()=>SelectedPointInDataGrid));
|
|
|
+ _DeletePointCommand ?? (_DeletePointCommand = new DelegateCommand(ExecuteDeletePointCommand, CanExecuteDeletePointCommand).ObservesProperty(() => SelectedPointInDataGrid));
|
|
|
|
|
|
private DelegateCommand _MovePointUpCommand;
|
|
|
public DelegateCommand MovePointUpCommand => _MovePointUpCommand ?? (_MovePointUpCommand = new DelegateCommand(ExecuteMovePointUpCommand, CanMovePointUp));
|
|
|
@@ -412,45 +412,56 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
if (Robot == null || !Robot.IsConnected) return;
|
|
|
try
|
|
|
{
|
|
|
- Robot.Timeout = 6000000;
|
|
|
var items = ((string)obj).Split(':');
|
|
|
+ //如果移动距离大于10mm,则提示用户确认
|
|
|
+ double distance = double.Parse(items[1]);
|
|
|
+ if (Math.Abs(distance) >= 10)
|
|
|
+ {
|
|
|
+ if (MessageBox.Show($"确认要点动距离 {distance} mm 吗?", "确认点动", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Robot.Timeout = 6000000;
|
|
|
+
|
|
|
switch (items[0])
|
|
|
{
|
|
|
case "X+":
|
|
|
- await Robot.JogAsync("X", double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("X", distance);
|
|
|
break;
|
|
|
case "X-":
|
|
|
- await Robot.JogAsync("X", -double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("X", -distance);
|
|
|
break;
|
|
|
case "Y+":
|
|
|
- await Robot.JogAsync("Y", double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("Y", distance);
|
|
|
break;
|
|
|
case "Y-":
|
|
|
- await Robot.JogAsync("Y", -double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("Y", -distance);
|
|
|
break;
|
|
|
case "Z+":
|
|
|
- await Robot.JogAsync("Z", double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("Z", distance);
|
|
|
break;
|
|
|
case "Z-":
|
|
|
- await Robot.JogAsync("Z", -double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("Z", -distance);
|
|
|
break;
|
|
|
case "U+":
|
|
|
- await Robot.JogAsync("U", double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("U", distance);
|
|
|
break;
|
|
|
case "U-":
|
|
|
- await Robot.JogAsync("U", -double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("U", -distance);
|
|
|
break;
|
|
|
case "V+":
|
|
|
- await Robot.JogAsync("V", double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("V", distance);
|
|
|
break;
|
|
|
case "V-":
|
|
|
- await Robot.JogAsync("V", -double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("V", -distance);
|
|
|
break;
|
|
|
case "W+":
|
|
|
- await Robot.JogAsync("W", double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("W", distance);
|
|
|
break;
|
|
|
case "W-":
|
|
|
- await Robot.JogAsync("W", -double.Parse(items[1]));
|
|
|
+ await Robot.JogAsync("W", -distance);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
@@ -477,18 +488,18 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
- if (SelectedPoint==null)
|
|
|
+ if (SelectedPoint == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
var values = (object[])parameter;
|
|
|
var point = new RPoint()
|
|
|
{
|
|
|
- X= SelectedPoint.X_Position,
|
|
|
- Y= SelectedPoint.Y_Position,
|
|
|
- Z= SelectedPoint.Z_Position_Start,
|
|
|
- U=SelectedPoint.U_Position,
|
|
|
- V= SelectedPoint.R_Position,
|
|
|
+ X = SelectedPoint.X_Position,
|
|
|
+ Y = SelectedPoint.Y_Position,
|
|
|
+ Z = SelectedPoint.Z_Position_Start,
|
|
|
+ U = SelectedPoint.U_Position,
|
|
|
+ V = SelectedPoint.R_Position,
|
|
|
};
|
|
|
MotionCommand motionCmd = (MotionCommand)values[1];
|
|
|
if (Robot == null || !Robot.IsConnected) return;
|
|
|
@@ -528,6 +539,12 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
|
|
|
try
|
|
|
{
|
|
|
+ //弹窗用户是否确认要示教该点位
|
|
|
+ if (MessageBox.Show($"确认要示教点位 {SelectedPoint.Number} 吗?", "示教点位", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
var curpos = await Robot.GetRobotPosAsync();
|
|
|
SelectedPoint.X_Position = curpos.X;
|
|
|
SelectedPoint.Y_Position = curpos.Y;
|
|
|
@@ -664,7 +681,7 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
case 0:
|
|
|
|
|
|
Points = SelectProduct.PickCameraPoints;
|
|
|
- PickPoints= SelectProduct.PickPoints;
|
|
|
+ PickPoints = SelectProduct.PickPoints;
|
|
|
break;
|
|
|
case 1:
|
|
|
Points = SelectProduct.PickPoints;
|
|
|
@@ -845,12 +862,12 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
Number = startNumber + i,
|
|
|
X_Position = point.X,
|
|
|
Y_Position = point.Y,
|
|
|
- X_Velocity=100,
|
|
|
- Y_Velocity=100,
|
|
|
- Z_Velocity_Start=100,
|
|
|
- Z_Velocity_Stop=100,
|
|
|
- U_Velocity=100,
|
|
|
- R_Velocity=100,
|
|
|
+ X_Velocity = 100,
|
|
|
+ Y_Velocity = 100,
|
|
|
+ Z_Velocity_Start = 100,
|
|
|
+ Z_Velocity_Stop = 100,
|
|
|
+ U_Velocity = 100,
|
|
|
+ R_Velocity = 100,
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
@@ -1154,13 +1171,13 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
|
|
|
//对锁付点的批量设置进行初始化
|
|
|
LockPointStartZ = SelectProduct.ScrewPoints.FirstOrDefault()?.Z_Position_Start ?? 0;
|
|
|
- LockZDepth= SelectProduct.ScrewPoints.FirstOrDefault() != null ? (SelectProduct.ScrewPoints.FirstOrDefault().Z_Position_Start - SelectProduct.ScrewPoints.FirstOrDefault().Z_Position_Stop) : 0;
|
|
|
- LockXSpeed= SelectProduct.ScrewPoints.FirstOrDefault()?.X_Velocity ?? 100;
|
|
|
- LockYSpeed= SelectProduct.ScrewPoints.FirstOrDefault()?.Y_Velocity ?? 100;
|
|
|
- LockZSpeed= SelectProduct.ScrewPoints.FirstOrDefault()?.Z_Velocity_Start ?? 100;
|
|
|
- LockZDescendSpeed= SelectProduct.ScrewPoints.FirstOrDefault()?.Z_Velocity_Stop ?? 100;
|
|
|
- LockFeederNumber= SelectProduct.ScrewPoints.FirstOrDefault()?.Feeder ?? 1;
|
|
|
- LockScrewProgramNumber= SelectProduct.ScrewPoints.FirstOrDefault()?.ScrewProNum ?? 1;
|
|
|
+ LockZDepth = SelectProduct.ScrewPoints.FirstOrDefault() != null ? (SelectProduct.ScrewPoints.FirstOrDefault().Z_Position_Start - SelectProduct.ScrewPoints.FirstOrDefault().Z_Position_Stop) : 0;
|
|
|
+ LockXSpeed = SelectProduct.ScrewPoints.FirstOrDefault()?.X_Velocity ?? 100;
|
|
|
+ LockYSpeed = SelectProduct.ScrewPoints.FirstOrDefault()?.Y_Velocity ?? 100;
|
|
|
+ LockZSpeed = SelectProduct.ScrewPoints.FirstOrDefault()?.Z_Velocity_Start ?? 100;
|
|
|
+ LockZDescendSpeed = SelectProduct.ScrewPoints.FirstOrDefault()?.Z_Velocity_Stop ?? 100;
|
|
|
+ LockFeederNumber = SelectProduct.ScrewPoints.FirstOrDefault()?.Feeder ?? 1;
|
|
|
+ LockScrewProgramNumber = SelectProduct.ScrewPoints.FirstOrDefault()?.ScrewProNum ?? 1;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
@@ -1199,7 +1216,7 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
set { SetProperty(ref _SelectedCameraForPickPoint, value); }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
private ObservableCollection<PlcPoint> _PickPoints = new ObservableCollection<PlcPoint>();
|
|
|
/// <summary>
|
|
|
/// 取料点位集合
|
|
|
@@ -1224,7 +1241,7 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
private DelegateCommand _AutoCorrectPickPointCommand;
|
|
|
public DelegateCommand AutoCorrectPickPointCommand =>
|
|
|
_AutoCorrectPickPointCommand ?? (_AutoCorrectPickPointCommand = new DelegateCommand(ExecuteAutoCorrectPickPointCommand, CanExecuteAutoCorrectPickPointCommand)
|
|
|
- .ObservesProperty(()=> SelectedCameraForPickPoint).ObservesProperty(() => SelectedPickPoint).ObservesProperty(() => SelectProcedure).ObservesProperty(() => IsExecutingAutoCorrectPickPoint));
|
|
|
+ .ObservesProperty(() => SelectedCameraForPickPoint).ObservesProperty(() => SelectedPickPoint).ObservesProperty(() => SelectProcedure).ObservesProperty(() => IsExecutingAutoCorrectPickPoint));
|
|
|
|
|
|
//
|
|
|
private bool _IsExecutingAutoCorrectPickPoint = false;
|
|
|
@@ -1273,7 +1290,7 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
|
|
|
var _cts = new CancellationTokenSource();
|
|
|
// 2. 执行拍照并获取识别结果
|
|
|
- var recognitionResult =await _remoteCommandService.ExecutePhotoGetSinglePoint(SelectProcedure, null, new double[] { rpoint.X, rpoint.Y, 0 }, _cts.Token);
|
|
|
+ var recognitionResult = await _remoteCommandService.ExecutePhotoGetSinglePoint(SelectProcedure, null, new double[] { rpoint.X, rpoint.Y, 0 }, _cts.Token);
|
|
|
if (!recognitionResult.IsSucceed)
|
|
|
{
|
|
|
if (DialogHost.IsDialogOpen("RootDialog"))
|
|
|
@@ -1310,7 +1327,7 @@ namespace TeamAAS_VP.ViewModels.Product
|
|
|
|
|
|
bool CanExecuteAutoCorrectPickPointCommand()
|
|
|
{
|
|
|
- return SelectedCameraForPickPoint!=null && SelectedPickPoint!=null && SelectProcedure!=null && !IsExecutingAutoCorrectPickPoint;
|
|
|
+ return SelectedCameraForPickPoint != null && SelectedPickPoint != null && SelectProcedure != null && !IsExecutingAutoCorrectPickPoint;
|
|
|
}
|
|
|
|
|
|
#endregion
|