Merge branch '多片机/动画' into 多片机/multiplate-develop
# Conflicts: # SicUI/Controls/Mainframe/M2C4EFEMView.xaml # SicUI/Controls/Mainframe/M2C4EFEMView2.xaml # SicUI/Models/Operations/Overviews/OverViewViewModel.cs # SicUI/SicUI.csproj # ThirdParty/MECF.Framework/MECF.Framework.Common.dll # ThirdParty/MECF.Framework/MECF.Framework.RT.Core.dll # ThirdParty/MECF.Framework/MECF.Framework.RT.EquipmentLibrary.dll # ThirdParty/MECF.Framework/MECF.Framework.Simulator.Core.dll # ThirdParty/MECF.Framework/MECF.Framework.UI.Client.dll # ThirdParty/MECF.Framework/MECF.Framework.UI.Core.dll # ThirdParty/MECF.Framework/Sicentury.Core.dll
|
@ -6,15 +6,15 @@
|
|||
xmlns:controls="clr-namespace:SicUI.Controls"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
x:Name="mainw"
|
||||
d:DesignHeight="38"
|
||||
d:DesignWidth="416"
|
||||
mc:Ignorable="d"
|
||||
x:Name="mainw">
|
||||
mc:Ignorable="d">
|
||||
<UserControl.Resources>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"/>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
|
||||
</UserControl.Resources>
|
||||
<Viewbox Stretch="Uniform">
|
||||
<Canvas
|
||||
|
@ -55,16 +55,38 @@
|
|||
<!--<Image Source="Images/pm2.png" Visibility="{Binding HasWafer}" Canvas.Top="-40" Canvas.Left="27" />-->
|
||||
|
||||
<Image
|
||||
Canvas.Left="8"
|
||||
Canvas.Top="-17"
|
||||
Width="70"
|
||||
Canvas.Left="29"
|
||||
Canvas.Top="-14"
|
||||
Width="60"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding HasTray}" />
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="22"
|
||||
Canvas.Top="-3"
|
||||
Width="42"
|
||||
Height="42"
|
||||
Canvas.Left="39"
|
||||
Canvas.Top="-7"
|
||||
Width="23"
|
||||
Height="23"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
WaferData="{Binding Wafer1}" />
|
||||
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="62"
|
||||
Canvas.Top="1"
|
||||
Width="23"
|
||||
Height="23"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Top"
|
||||
WaferData="{Binding Wafer1}" />
|
||||
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="42"
|
||||
Canvas.Top="17"
|
||||
Width="23"
|
||||
Height="23"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
WaferData="{Binding Wafer1}" />
|
||||
|
||||
</Common:AxisCanvas>
|
||||
|
@ -72,8 +94,8 @@
|
|||
</Common:AxisCanvas>
|
||||
<Canvas.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy},Path=Data.RotateAngle,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy},Path=Data.TranslateX,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" />
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy}, Path=Data.RotateAngle, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy}, Path=Data.TranslateX, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
|
||||
</TransformGroup>
|
||||
</Canvas.RenderTransform>
|
||||
<!--<Canvas.RenderTransform>
|
||||
|
|
|
@ -180,6 +180,38 @@ namespace SicUI.Controls.M2C4Parts
|
|||
public static readonly DependencyProperty HasTrayProperty =
|
||||
DependencyProperty.Register("HasTray", typeof(Visibility), typeof(AtmRobotMultiLP), new PropertyMetadata(Visibility.Hidden));
|
||||
|
||||
|
||||
public RobotPosition RobotPointIntsMove
|
||||
{
|
||||
get { return (RobotPosition)GetValue(RobotPointIntsMoveProperty); }
|
||||
set { SetValue(RobotPointIntsMoveProperty, value); }
|
||||
}
|
||||
public static readonly DependencyProperty RobotPointIntsMoveProperty =
|
||||
DependencyProperty.Register("RobotPointIntsMove", typeof(RobotPosition), typeof(AtmRobotMultiLP), new FrameworkPropertyMetadata(null, PointMoveTest));
|
||||
|
||||
|
||||
static void PointMoveTest(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var self = (AtmRobotMultiLP)d;
|
||||
var robotPosition = (RobotPosition)e.NewValue;
|
||||
|
||||
|
||||
var storyboard = new Storyboard();
|
||||
|
||||
var needRotate = new List<bool>();
|
||||
|
||||
needRotate.Add(self.canvas1.Rotate(storyboard, robotPosition.Root, true, self.MoveTime));
|
||||
needRotate.Add(self.canvas2.Rotate(storyboard, robotPosition.Arm, true, self.MoveTime));
|
||||
needRotate.Add(self.canvas3.Rotate(storyboard, robotPosition.Hand, true, self.MoveTime));
|
||||
|
||||
|
||||
if (needRotate.Any(x => x))
|
||||
storyboard.Begin();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private List<MenuItem> menu;
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
@ -244,15 +276,22 @@ namespace SicUI.Controls.M2C4Parts
|
|||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root = 99,
|
||||
//Root = 120,
|
||||
//Arm = -120,
|
||||
//Hand = -120
|
||||
Root = 100,
|
||||
Arm = 240,
|
||||
Hand = 240
|
||||
Hand = -110
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root = 239,
|
||||
//Root = 238,
|
||||
//Arm = 0,
|
||||
//Hand = 360
|
||||
|
||||
Root =238,
|
||||
Arm = 0,
|
||||
Hand = 360
|
||||
Hand = 0
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -262,13 +301,13 @@ namespace SicUI.Controls.M2C4Parts
|
|||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root = 10,
|
||||
Arm = 194,
|
||||
Hand = 99
|
||||
Root = 60,
|
||||
Arm = 120,
|
||||
Hand = 130
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root = -58,
|
||||
Root = -54,
|
||||
Arm = 360,
|
||||
Hand = 0
|
||||
}
|
||||
|
@ -279,14 +318,14 @@ namespace SicUI.Controls.M2C4Parts
|
|||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root = 80,
|
||||
Arm = 190,
|
||||
Hand = 100
|
||||
Root = 5,
|
||||
Arm = 240,
|
||||
Hand = -110
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root = 13,
|
||||
Arm = 360,
|
||||
Root = 137,
|
||||
Arm = 0,
|
||||
Hand = 0
|
||||
}
|
||||
}
|
||||
|
@ -312,16 +351,20 @@ namespace SicUI.Controls.M2C4Parts
|
|||
{
|
||||
StartPosition= new RobotPosition()
|
||||
{
|
||||
//Z=0,
|
||||
//Root =-80,
|
||||
//Arm = 240,
|
||||
//Hand = 240
|
||||
Z=0,
|
||||
Root =-45,
|
||||
Arm = 240,
|
||||
Hand = 240
|
||||
Root=170,
|
||||
Arm=120,
|
||||
Hand=120
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root = 90,
|
||||
Arm = 0,
|
||||
Hand = 360
|
||||
Root = 47,
|
||||
Arm = 360,
|
||||
Hand = 0
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 21 KiB |
|
@ -43,7 +43,6 @@
|
|||
Canvas.Left="341.166"
|
||||
Canvas.Top="327.333"
|
||||
Source="Images/tm3.png" />
|
||||
|
||||
<Canvas Visibility="{Binding IsPM1Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="198"
|
||||
|
@ -160,7 +159,7 @@
|
|||
Canvas.Left="349"
|
||||
Canvas.Top="316"
|
||||
Width="550"
|
||||
Height="80"
|
||||
Height="70"
|
||||
HasTray="{Binding TMRobotHaveTray}"
|
||||
HasWafer="{Binding IsArmWater}"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
|
@ -199,9 +198,11 @@
|
|||
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="330"
|
||||
Canvas.Top="158"
|
||||
Width="95"
|
||||
Canvas.Left="338"
|
||||
Canvas.Top="166"
|
||||
Width="80"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding LoadLockHaveTray}" />
|
||||
</Canvas>
|
||||
|
@ -359,26 +360,51 @@
|
|||
<!-- 石墨盘和Wafer -->
|
||||
<Canvas Visibility="{Binding IsPM1Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="239"
|
||||
Canvas.Top="164"
|
||||
Width="96"
|
||||
Canvas.Left="247"
|
||||
Canvas.Top="172"
|
||||
Width="80"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding PM1HaveTray}" />
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="258"
|
||||
Canvas.Top="183"
|
||||
Width="60"
|
||||
Height="60"
|
||||
IsEnabled="{Binding PM1EnableWaferClick}"
|
||||
Canvas.Left="261"
|
||||
Canvas.Top="182"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
IsRotary="{Binding IsPm1WaferRotary}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding PM1Wafer}" />
|
||||
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="291"
|
||||
Canvas.Top="192"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
IsRotary="{Binding IsPm1WaferRotary}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding PM1Wafer}" />
|
||||
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="265"
|
||||
Canvas.Top="214"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
IsRotary="{Binding IsPm1WaferRotary}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding PM1Wafer}" />
|
||||
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsPM2Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="420"
|
||||
Canvas.Top="165"
|
||||
Width="96"
|
||||
Canvas.Left="428"
|
||||
Canvas.Top="173"
|
||||
Width="80"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding PM2HaveTray}" />
|
||||
<controls:WaferCtrl
|
||||
|
@ -393,14 +419,17 @@
|
|||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsUnLoadInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="176"
|
||||
Canvas.Top="340"
|
||||
Width="95"
|
||||
Canvas.Left="184"
|
||||
Canvas.Top="348"
|
||||
Width="80"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Top"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding UnLoadHaveTray}" />
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="194"
|
||||
Canvas.Left="198"
|
||||
Canvas.Top="358"
|
||||
|
||||
Width="60"
|
||||
Height="60"
|
||||
IsEnabled="{Binding UnLoadEnableWaferClick}"
|
||||
|
@ -410,11 +439,48 @@
|
|||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<!--<Image Source="Images/pm52.png" Canvas.Left="330" Canvas.Top="458" Visibility="{Binding LoadLockHaveTray}" Width="95"/>-->
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="348"
|
||||
Canvas.Left="228"
|
||||
Canvas.Top="368"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding UnLoadWafer}" />
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="202"
|
||||
Canvas.Top="390"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding UnLoadWafer}" />
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="352"
|
||||
Canvas.Top="476"
|
||||
Width="60"
|
||||
Height="60"
|
||||
IsEnabled="{Binding LoadLockEnableWaferClick}"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding LoadLockWafer}" />
|
||||
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="382"
|
||||
Canvas.Top="486"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding LoadLockWafer}" />
|
||||
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="356"
|
||||
Canvas.Top="508"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
WaferData="{Binding LoadLockWafer}" />
|
||||
</Canvas>
|
||||
|
|
|
@ -14,98 +14,156 @@
|
|||
x:Name="root"
|
||||
Height="800"
|
||||
VerticalAlignment="Top">
|
||||
<Canvas Margin="0,45.333,0,26.667">
|
||||
<Canvas Margin="-47,52,47,20">
|
||||
<!--TM-->
|
||||
<Image
|
||||
Canvas.Left="254"
|
||||
Canvas.Top="233"
|
||||
Source="Images/tm1.png" />
|
||||
<Image
|
||||
Canvas.Left="341.166"
|
||||
Canvas.Top="327.333"
|
||||
Source="Images/tm3.png" />
|
||||
|
||||
Canvas.Left="253"
|
||||
Canvas.Top="236"
|
||||
Height="250"
|
||||
Width="250"
|
||||
Source="Images/tm4.png" />
|
||||
|
||||
<!--PM1-->
|
||||
<Canvas Visibility="{Binding IsPM1Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="198"
|
||||
Canvas.Top="121"
|
||||
Canvas.Left="189"
|
||||
Canvas.Top="141"
|
||||
Width="160"
|
||||
Source="Images/pmbg51.png">
|
||||
Source="Images/pmbg51.png" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<Image.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform Angle="0.43" />
|
||||
<TranslateTransform />
|
||||
<RotateTransform Angle="-5.5" />
|
||||
</TransformGroup>
|
||||
</Image.RenderTransform>
|
||||
</Image>
|
||||
<unitControls:Door
|
||||
Canvas.Left="273"
|
||||
Canvas.Top="264"
|
||||
Canvas.Left="278"
|
||||
Canvas.Top="272"
|
||||
Width="90"
|
||||
Height="8"
|
||||
Height="9"
|
||||
IsDoorOpen="{Binding IsPM1DoorOpen}"
|
||||
RenderTransformOrigin="0.5,0.5">
|
||||
RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<unitControls:Door.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform Angle="-30.127" />
|
||||
<RotateTransform Angle="-36" />
|
||||
<TranslateTransform />
|
||||
</TransformGroup>
|
||||
</unitControls:Door.RenderTransform>
|
||||
</unitControls:Door>
|
||||
<!--Tray和晶圆-->
|
||||
<Canvas Visibility="{Binding IsPM1Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="248"
|
||||
Canvas.Top="182"
|
||||
Width="80"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding PM1HaveTray}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="262"
|
||||
Canvas.Top="192"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
IsRotary="{Binding IsPm1WaferRotary}"
|
||||
WaferData="{Binding PM1Wafer}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="292"
|
||||
Canvas.Top="202"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
IsRotary="{Binding IsPm1WaferRotary}"
|
||||
WaferData="{Binding PM1Wafer}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="266"
|
||||
Canvas.Top="224"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
IsRotary="{Binding IsPm1WaferRotary}"
|
||||
WaferData="{Binding PM1Wafer}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
|
||||
</Canvas>
|
||||
</Canvas>
|
||||
<!--PM2-->
|
||||
<Canvas Visibility="{Binding IsPM2Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="398"
|
||||
Canvas.Top="123"
|
||||
Canvas.Left="410"
|
||||
Canvas.Top="129"
|
||||
Width="160"
|
||||
Source="Images/pmbg41.png">
|
||||
Source="Images/pmbg41.png" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<Image.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform Angle="0.535" />
|
||||
<RotateTransform Angle="5.5" />
|
||||
<TranslateTransform />
|
||||
</TransformGroup>
|
||||
</Image.RenderTransform>
|
||||
</Image>
|
||||
<unitControls:Door
|
||||
Canvas.Left="390"
|
||||
Canvas.Top="267"
|
||||
Canvas.Left="389"
|
||||
Canvas.Top="274"
|
||||
Width="90"
|
||||
Height="8"
|
||||
IsDoorOpen="{Binding IsPM2DoorOpen}"
|
||||
RenderTransformOrigin="0.5,0.5">
|
||||
RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<unitControls:Door.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform Angle="30.086" />
|
||||
<RotateTransform Angle="35.8" />
|
||||
<TranslateTransform />
|
||||
</TransformGroup>
|
||||
</unitControls:Door.RenderTransform>
|
||||
</unitControls:Door>
|
||||
<!--Tray和晶圆-->
|
||||
<Canvas Visibility="{Binding IsPM2Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="431"
|
||||
Canvas.Top="185"
|
||||
Width="80"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding PM2HaveTray}" HorizontalAlignment="Left" VerticalAlignment="Center" />
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="444"
|
||||
Canvas.Top="195"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
IsRotary="{Binding IsPm2WaferRotary}"
|
||||
WaferData="{Binding PM2Wafer}" HorizontalAlignment="Left" VerticalAlignment="Center" />
|
||||
</Canvas>
|
||||
</Canvas>
|
||||
|
||||
<Canvas Visibility="{Binding IsUnLoadInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<!--Lod-->
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<unitControls:Door
|
||||
Canvas.Left="404"
|
||||
Canvas.Top="427"
|
||||
Width="83"
|
||||
Height="9"
|
||||
IsDoorOpen="{Binding IsLLDoorOpen}"
|
||||
RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<unitControls:Door.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="-46" />
|
||||
</TransformGroup>
|
||||
</unitControls:Door.RenderTransform>
|
||||
</unitControls:Door>
|
||||
<Image
|
||||
Canvas.Left="174"
|
||||
Canvas.Top="339"
|
||||
RenderTransformOrigin="0.5,0.5"
|
||||
Source="Images/wf.png">
|
||||
Canvas.Left="406"
|
||||
Canvas.Top="470"
|
||||
Source="Images/wf.png" Height="126" Width="110" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<Image.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform Angle="-13.5" />
|
||||
<TranslateTransform />
|
||||
<RotateTransform Angle="-46" />
|
||||
</TransformGroup>
|
||||
</Image.RenderTransform>
|
||||
</Image>
|
||||
<unitControls:Door
|
||||
<!--<unitControls:Door
|
||||
Canvas.Left="232"
|
||||
Canvas.Top="372"
|
||||
Width="82"
|
||||
|
@ -120,73 +178,99 @@
|
|||
<TranslateTransform />
|
||||
</TransformGroup>
|
||||
</unitControls:Door.RenderTransform>
|
||||
</unitControls:Door>
|
||||
</unitControls:Door>-->
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<unitControls:Door
|
||||
<!--<unitControls:Door
|
||||
Canvas.Left="336"
|
||||
Canvas.Top="455"
|
||||
Width="83"
|
||||
Height="8"
|
||||
IsDoorOpen="{Binding IsLLDoorOpen}"
|
||||
RenderTransformOrigin="0.5,0.5" />
|
||||
<Image
|
||||
RenderTransformOrigin="0.5,0.5" />-->
|
||||
<!--<Image
|
||||
Canvas.Left="327"
|
||||
Canvas.Top="458"
|
||||
Source="Images/wf.png" />
|
||||
Source="Images/wf.png" />-->
|
||||
<!--Tray和晶圆-->
|
||||
<Canvas Visibility="{Binding IsLLInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="450"
|
||||
Canvas.Top="436"
|
||||
Width="80"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding LoadLockHaveTray}" HorizontalAlignment="Left" VerticalAlignment="Center" />
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="464"
|
||||
Canvas.Top="446"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
WaferData="{Binding LoadLockWafer}" HorizontalAlignment="Center" VerticalAlignment="Top"/>
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="494"
|
||||
Canvas.Top="456"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
WaferData="{Binding LoadLockWafer}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="468"
|
||||
Canvas.Top="478"
|
||||
Width="30"
|
||||
Height="30"
|
||||
IsEnabled="{Binding EnableWaferClick}"
|
||||
WaferData="{Binding LoadLockWafer}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
</Canvas>
|
||||
</Canvas>
|
||||
|
||||
<local:AtmRobotMultiLP
|
||||
Canvas.Left="349"
|
||||
Canvas.Top="316"
|
||||
Canvas.Left="353"
|
||||
Canvas.Top="317"
|
||||
Width="550"
|
||||
Height="80"
|
||||
HasTray="{Binding TMRobotHaveTray}"
|
||||
HasWafer="{Binding IsArmWater}"
|
||||
RobotPointIntsMove="{Binding TmRobotPointIntsMove}"
|
||||
RobotMoveInfo="{Binding TmRobotMoveInfo}"
|
||||
ShowDock="False"
|
||||
Wafer1="{Binding TMRobotWafer1}" />
|
||||
Wafer1="{Binding TMRobotWafer1}" HorizontalAlignment="Center" VerticalAlignment="Top" />
|
||||
|
||||
<!--Buffer-->
|
||||
<Canvas Visibility="{Binding IsBufferInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="466"
|
||||
Canvas.Top="343"
|
||||
Canvas.Left="212"
|
||||
Canvas.Top="407"
|
||||
RenderTransformOrigin="0.5,0.5"
|
||||
Source="Images/Layout09.png">
|
||||
Source="Images/Buffer.png" HorizontalAlignment="Left" VerticalAlignment="Top" Height="120" Width="100">
|
||||
<Image.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform Angle="106" />
|
||||
<TranslateTransform />
|
||||
<RotateTransform Angle="45" />
|
||||
</TransformGroup>
|
||||
</Image.RenderTransform>
|
||||
</Image>
|
||||
<unitControls:Door
|
||||
Canvas.Left="435"
|
||||
Canvas.Top="377"
|
||||
Canvas.Left="266"
|
||||
Canvas.Top="422"
|
||||
Width="82"
|
||||
Height="8"
|
||||
Height="9"
|
||||
IsDoorOpen="{Binding IsBufferDoorOpen}"
|
||||
RenderTransformOrigin="0.5,0.5">
|
||||
RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<unitControls:Door.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform />
|
||||
<SkewTransform />
|
||||
<RotateTransform Angle="106.127" />
|
||||
<TranslateTransform />
|
||||
<RotateTransform Angle="45" />
|
||||
</TransformGroup>
|
||||
</unitControls:Door.RenderTransform>
|
||||
</unitControls:Door>
|
||||
</Canvas>
|
||||
|
||||
<Canvas Visibility="{Binding IsPM1Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
<!--<Image
|
||||
Canvas.Left="239"
|
||||
Canvas.Top="164"
|
||||
Width="96"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding PM1HaveTray}" />
|
||||
Visibility="{Binding PM1HaveTray}" />-->
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="258"
|
||||
Canvas.Top="183"
|
||||
|
@ -197,12 +281,12 @@
|
|||
WaferData="{Binding PM1Wafer}" />
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsPM2Installed, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
<!--<Image
|
||||
Canvas.Left="420"
|
||||
Canvas.Top="165"
|
||||
Width="96"
|
||||
Source="Images/pm52.png"
|
||||
Visibility="{Binding PM2HaveTray}" />
|
||||
Visibility="{Binding PM2HaveTray}" />-->
|
||||
<controls:WaferCtrl
|
||||
Canvas.Left="439"
|
||||
Canvas.Top="184"
|
||||
|
@ -212,7 +296,7 @@
|
|||
IsRotary="{Binding IsPm2WaferRotary}"
|
||||
WaferData="{Binding PM2Wafer}" />
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsUnLoadInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<!--<Canvas Visibility="{Binding IsUnLoadInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="176"
|
||||
Canvas.Top="340"
|
||||
|
@ -226,8 +310,8 @@
|
|||
Height="60"
|
||||
IsEnabled="{Binding UnLoadEnableWaferClick}"
|
||||
WaferData="{Binding UnLoadWafer}" />
|
||||
</Canvas>
|
||||
<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
</Canvas>-->
|
||||
<!--<Canvas Visibility="{Binding IsLoadLockInstalled, Converter={StaticResource BoolVisibilityConverter}}">
|
||||
<Image
|
||||
Canvas.Left="330"
|
||||
Canvas.Top="459"
|
||||
|
@ -241,7 +325,10 @@
|
|||
Height="60"
|
||||
IsEnabled="{Binding LoadLockEnableWaferClick}"
|
||||
WaferData="{Binding LoadLockWafer}" />
|
||||
</Canvas>
|
||||
</Canvas>-->
|
||||
|
||||
|
||||
|
||||
</Canvas>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
xmlns:Common="clr-namespace:SicUI.Controls.Common"
|
||||
xmlns:controls="clr-namespace:SicUI.Controls"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
d:DesignHeight="38"
|
||||
d:DesignWidth="416"
|
||||
mc:Ignorable="d">
|
||||
<UserControl.Resources>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"/>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
|
||||
</UserControl.Resources>
|
||||
<Viewbox Stretch="Uniform">
|
||||
<Canvas
|
||||
|
@ -64,8 +64,8 @@
|
|||
</Common:AxisCanvas>
|
||||
<Canvas.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy},Path=Data.RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy},Path=Data.TranslateX}" />
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy}, Path=Data.RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy}, Path=Data.TranslateX}" />
|
||||
</TransformGroup>
|
||||
</Canvas.RenderTransform>
|
||||
</Canvas>
|
||||
|
|
|
@ -20,9 +20,11 @@ namespace SicUI.Controls.M2C4Parts
|
|||
private int moveTime = 300;
|
||||
private const int AnimationTimeout = 3000; // ms
|
||||
|
||||
private string _currentPosition;
|
||||
private string CurrentPosition
|
||||
{
|
||||
get; set;
|
||||
get { return _currentPosition; }
|
||||
set { _currentPosition = value; }
|
||||
}
|
||||
|
||||
private RobotAction CurrentAction
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
xmlns:Common="clr-namespace:SicUI.Controls.Common"
|
||||
xmlns:controls="clr-namespace:SicUI.Controls"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
|
||||
xmlns:local="clr-namespace:SicUI.Controls.M2C4Parts"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
d:DesignHeight="38"
|
||||
d:DesignWidth="416"
|
||||
mc:Ignorable="d">
|
||||
<UserControl.Resources>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=UserControl}}"/>
|
||||
<extendedControls:BindingProxy x:Key="proxy" Data="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
|
||||
</UserControl.Resources>
|
||||
<Viewbox Stretch="Uniform">
|
||||
<Canvas
|
||||
|
@ -65,8 +65,8 @@
|
|||
</Common:AxisCanvas>
|
||||
<Canvas.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy},Path=Data.RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy},Path=Data.TranslateX}" />
|
||||
<RotateTransform Angle="{Binding Source={StaticResource proxy}, Path=Data.RotateAngle}" CenterY="30" />
|
||||
<TranslateTransform x:Name="translate" X="{Binding Source={StaticResource proxy}, Path=Data.TranslateX}" />
|
||||
</TransformGroup>
|
||||
</Canvas.RenderTransform>
|
||||
</Canvas>
|
||||
|
|
|
@ -1612,6 +1612,19 @@
|
|||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Width="80"
|
||||
Height="25"
|
||||
Margin="10,0"
|
||||
Content="Test1"
|
||||
>
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Test"/>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
|
@ -1678,6 +1691,20 @@
|
|||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Width="80"
|
||||
Height="25"
|
||||
Margin="10,0"
|
||||
HorizontalAlignment="Left"
|
||||
Content="Test2"
|
||||
IsEnabled="{Binding IsUnLoadEnableManualOperation}">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Test2" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
|
@ -1749,6 +1776,20 @@
|
|||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Width="80"
|
||||
Height="24"
|
||||
Margin="10,0"
|
||||
HorizontalAlignment="Left"
|
||||
Content="Test3"
|
||||
IsEnabled="{Binding IsUnLoadEnableManualOperation}">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Test3" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
|
|
|
@ -274,13 +274,42 @@ namespace SicUI.Models.Maintenances.TM
|
|||
set;
|
||||
}
|
||||
|
||||
[Subscription("TrayRobot.RobotMoveInfo")]
|
||||
//[Subscription("TrayRobot.RobotMoveInfo")]
|
||||
public RobotMoveInfo TrayRobotMoveInfo
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public void Test()
|
||||
{
|
||||
TrayRobotMoveInfo = new RobotMoveInfo()
|
||||
{
|
||||
Action = RobotAction.Moving,
|
||||
ArmTarget = RobotArm.ArmA,
|
||||
BladeTarget = "CassBL",
|
||||
};
|
||||
}
|
||||
public void Test2()
|
||||
{
|
||||
TrayRobotMoveInfo = new RobotMoveInfo()
|
||||
{
|
||||
Action = RobotAction.Picking,
|
||||
ArmTarget = RobotArm.ArmA,
|
||||
BladeTarget = "ArmA.CassBL",
|
||||
};
|
||||
}
|
||||
|
||||
public void Test3()
|
||||
{
|
||||
TrayRobotMoveInfo = new RobotMoveInfo()
|
||||
{
|
||||
Action = RobotAction.Picking,
|
||||
ArmTarget = RobotArm.ArmA,
|
||||
BladeTarget = "LoadLock",
|
||||
};
|
||||
}
|
||||
|
||||
[Subscription("WaferRobot.State")]
|
||||
public string WaferRobotState { get; set; }
|
||||
|
||||
|
|
|
@ -359,13 +359,103 @@
|
|||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Top">
|
||||
|
||||
<parts:M2C4EFEMView
|
||||
<parts:M2C4EFEMView2
|
||||
x:Name="system"
|
||||
Canvas.Left="300"
|
||||
Canvas.Top="2"
|
||||
Width="770"
|
||||
Height="698" />
|
||||
|
||||
<StackPanel Canvas.Left="729" Canvas.Top="10">
|
||||
<Button Margin="5" Content="PM1">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Storyboard">
|
||||
<cal:Parameter Value="ArmA.PM1" />
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<Button Margin="5" Content="PM2">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Storyboard">
|
||||
<cal:Parameter Value="ArmA.PM2" />
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<Button Margin="5" Content="TM">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Storyboard">
|
||||
<cal:Parameter Value="ArmA.System" />
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<Button Margin="5" Content="Buffer">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Storyboard">
|
||||
<cal:Parameter Value="ArmA.Buffer" />
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<Button Margin="5" Content="Load">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="Storyboard">
|
||||
<cal:Parameter Value="ArmA.LoadLock" />
|
||||
</cal:ActionMessage>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<Button Margin="5" Content="Auto">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="AutoStart"/>
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
<CheckBox IsChecked="{Binding IsPick}">
|
||||
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel
|
||||
Canvas.Left="550"
|
||||
Canvas.Top="15"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Top">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBox
|
||||
Width="50"
|
||||
Margin="3"
|
||||
Text="{Binding r1, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox
|
||||
Width="50"
|
||||
Margin="3"
|
||||
Text="{Binding r2, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox
|
||||
Width="50"
|
||||
Margin="3"
|
||||
Text="{Binding r3, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</StackPanel>
|
||||
<Button
|
||||
Width="90"
|
||||
Margin="5,20"
|
||||
HorizontalAlignment="Left"
|
||||
Content="MovePoint">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="Click">
|
||||
<cal:ActionMessage MethodName="MovePoint" />
|
||||
</i:EventTrigger>
|
||||
</i:Interaction.Triggers>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
<Grid
|
||||
x:Name="PM1_Info"
|
||||
Canvas.Left="87"
|
||||
|
|
|
@ -19,6 +19,12 @@ using Caliburn.Micro.Core;
|
|||
using MECF.Framework.Common.Account.Permissions;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using System.Xml.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using MECF.Framework.Common.SubstrateTrackings;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using SicUI.Controls.Common;
|
||||
|
||||
|
||||
namespace SicUI.Models.Operations.Overviews
|
||||
{
|
||||
|
@ -93,7 +99,7 @@ namespace SicUI.Models.Operations.Overviews
|
|||
|
||||
#region Mainframe
|
||||
|
||||
[Subscription("TMRobot.RobotMoveInfo")]
|
||||
//[Subscription("TMRobot.RobotMoveInfo")]
|
||||
public RobotMoveInfo TmRobotMoveInfo
|
||||
{
|
||||
get;
|
||||
|
@ -422,7 +428,7 @@ namespace SicUI.Models.Operations.Overviews
|
|||
{
|
||||
get
|
||||
{
|
||||
if(UnLoadLiftUpSensor && !UnLoadLiftDownSensor)
|
||||
if (UnLoadLiftUpSensor && !UnLoadLiftDownSensor)
|
||||
{
|
||||
return "Up";
|
||||
}
|
||||
|
@ -469,7 +475,7 @@ namespace SicUI.Models.Operations.Overviews
|
|||
|
||||
[Subscription("UnLoad.UnLoadWaferClaw.State")]
|
||||
public string UnLoadWaferClaw { get; set; }
|
||||
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
@ -676,7 +682,7 @@ namespace SicUI.Models.Operations.Overviews
|
|||
|
||||
[Subscription("Scheduler.TimeBuffer2")]
|
||||
public string TimeBuffer2 { get; set; }
|
||||
public double sTimeBuffer2 => TimeBuffer2 == null || TimeBuffer2.Length == 0 ? 0: Double.Parse(TimeBuffer2);
|
||||
public double sTimeBuffer2 => TimeBuffer2 == null || TimeBuffer2.Length == 0 ? 0 : Double.Parse(TimeBuffer2);
|
||||
|
||||
[Subscription("Scheduler.TimeBuffer3")]
|
||||
public string TimeBuffer3 { get; set; }
|
||||
|
@ -749,6 +755,67 @@ namespace SicUI.Models.Operations.Overviews
|
|||
|
||||
#endregion
|
||||
|
||||
#region 动画测试
|
||||
|
||||
|
||||
|
||||
public int r1 { get; set; }
|
||||
|
||||
public int r2 { get; set; }
|
||||
|
||||
public int r3 { get; set; }
|
||||
|
||||
public RobotPosition TmRobotPointIntsMove { get; set; }
|
||||
|
||||
public void MovePoint()
|
||||
{
|
||||
TmRobotPointIntsMove = new RobotPosition()
|
||||
{
|
||||
Z = 0,
|
||||
Root = r1,
|
||||
Arm = r2,
|
||||
Hand = r3
|
||||
};
|
||||
}
|
||||
|
||||
public bool IsPick { get; set; }
|
||||
|
||||
public void Storyboard(string toName)
|
||||
{
|
||||
TmRobotMoveInfo = new RobotMoveInfo()
|
||||
{
|
||||
Action = IsPick ? RobotAction.Picking : RobotAction.Moving,
|
||||
ArmTarget = RobotArm.ArmA,
|
||||
BladeTarget = toName,
|
||||
};
|
||||
}
|
||||
|
||||
AutoTransfer autoTransferPM1 = new AutoTransfer("PM1");
|
||||
|
||||
public void AutoStart()
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
foreach (var moduleAutoTransfer in autoTransferPM1.moduleAutoTransfers)
|
||||
{
|
||||
foreach (var moduleAuto in moduleAutoTransfer.AutoTransferList)
|
||||
{
|
||||
System.Threading.Thread.Sleep(1000);
|
||||
TmRobotMoveInfo = new RobotMoveInfo()
|
||||
{
|
||||
Action = moduleAuto.robotAction,
|
||||
ArmTarget = RobotArm.ArmA,
|
||||
BladeTarget = moduleAuto.Module,
|
||||
};
|
||||
//if (moduleAuto.robotAction== RobotAction.Picking || moduleAuto.robotAction == RobotAction.Placing)
|
||||
// WaferManager.Instance.TrayMoved(moduleAutoTransfer.FromName, 1, moduleAutoTransfer.ToName, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
public OverViewViewModel()
|
||||
{
|
||||
this.DisplayName = "OverViewViewModel";
|
||||
|
@ -1315,4 +1382,55 @@ namespace SicUI.Models.Operations.Overviews
|
|||
|
||||
|
||||
}
|
||||
|
||||
public class AutoTransfer
|
||||
{
|
||||
public AutoTransfer(string pmName)
|
||||
{
|
||||
moduleAutoTransfers = new List<ModuleAutoTransfer>()
|
||||
{
|
||||
new ModuleAutoTransfer(ModuleName.LoadLock,ModuleName.TMRobot,"ArmA.LoadLock",RobotAction.Picking),
|
||||
new ModuleAutoTransfer(),
|
||||
new ModuleAutoTransfer(ModuleName.TMRobot,ModuleName.PM1,$"ArmA.{pmName}"),
|
||||
new ModuleAutoTransfer(),
|
||||
new ModuleAutoTransfer(ModuleName.PM1,ModuleName.Buffer,"ArmA.Buffer"),
|
||||
new ModuleAutoTransfer(),
|
||||
new ModuleAutoTransfer(ModuleName.TMRobot,ModuleName.Buffer,"ArmA.Buffer"),
|
||||
new ModuleAutoTransfer(),
|
||||
new ModuleAutoTransfer(ModuleName.Buffer,ModuleName.TMRobot,"ArmA.LoadLock"),
|
||||
};
|
||||
}
|
||||
public List<ModuleAutoTransfer> moduleAutoTransfers { get;set; }
|
||||
}
|
||||
|
||||
public class ModuleAutoTransfer
|
||||
{
|
||||
public ModuleName FromName { get;set; }
|
||||
public ModuleName ToName { get;set; }
|
||||
public List<ModuleAuto> AutoTransferList { get; set; }
|
||||
|
||||
public ModuleAutoTransfer()
|
||||
{
|
||||
AutoTransferList=new List<ModuleAuto>() { new ModuleAuto() { Module = "ArmA.System" }, };
|
||||
}
|
||||
|
||||
public ModuleAutoTransfer(ModuleName fromName , ModuleName toName , string locationName, RobotAction robotAction = RobotAction.Placing)
|
||||
{
|
||||
FromName = fromName;
|
||||
ToName = toName;
|
||||
AutoTransferList = new List<ModuleAuto>()
|
||||
{
|
||||
new ModuleAuto() {Module=locationName},
|
||||
new ModuleAuto() {Module=locationName,robotAction= robotAction},
|
||||
new ModuleAuto() {Module=locationName},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class ModuleAuto
|
||||
{
|
||||
public string Module { get; set; }
|
||||
|
||||
public RobotAction robotAction { get; set; } = RobotAction.Moving;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -918,6 +918,10 @@ if exist "$(ProjectDir)..\SicSetup\Packages\SicUI\PresetGroups" rd "$(ProjectDir
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\Images\find.png" />
|
||||
<Resource Include="Controls\Mainframe\Images\tm4.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Controls\Mainframe\Images\Buffer.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
|
|