Pārlūkot izejas kodu

Improve the animation of SE Robot, modify Venus SE UI, complete casette load animation.

kuangzl 10 mēneši atpakaļ
vecāks
revīzija
7631216206

+ 66 - 64
Venus/Venus_MainPages/ViewModels/SeTMViewModel.cs

@@ -18,13 +18,14 @@ using System.Windows.Threading;
 using Venus_Core;
 using Venus_MainPages.Unity;
 using Venus_Themes.CustomControls;
+using static Venus_Themes.CustomControls.DERobot;
 using static Venus_Themes.CustomControls.SERobot;
 
 namespace Venus_MainPages.ViewModels
 {
     public enum SeTMModule
     {
-        PMA, PMB, PMC, VCE1, Aligner1
+        PMA, PMB, PMC, LP1, Aligner1
     }
     public enum SeTMBlade
     {
@@ -450,6 +451,7 @@ namespace Venus_MainPages.ViewModels
             PMBIsInstalled = allModules.Contains("PMB");
             PMCIsInstalled = allModules.Contains("PMC");
             VCEIsInstalled = allModules.Contains("VCE1");
+
             AlignerIsInstalled = allModules.Contains("Aligner1");
             if (PMAIsInstalled == true)
             {
@@ -471,7 +473,7 @@ namespace Venus_MainPages.ViewModels
 
             if (VCEIsInstalled == true)
             {
-                TMModules.Add(SeTMModule.VCE1);
+                TMModules.Add(SeTMModule.LP1);
             }
             if (AlignerIsInstalled == true)
             {
@@ -749,21 +751,11 @@ namespace Venus_MainPages.ViewModels
                 var values = RobotTarget.Split('.');
                 var arm = values[0];
                 var module = values[1];
-                if (arm == "ArmA")
+                var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
+                if (SERobotTAction != Robot1TAction || SERobotTAction != Robot2TAction)
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot1TAction)
-                    {
-                        Robot1TAction = SERobotTAction;
-                    }
-                }
-                else if (arm == "ArmB")
-                {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot2TAction)
-                    {
-                        Robot2TAction = SERobotTAction;
-                    }
+                    Robot1TAction = SERobotTAction;
+                    Robot2TAction = SERobotTAction;
                 }
             }
             #endregion
@@ -783,58 +775,77 @@ namespace Venus_MainPages.ViewModels
                 var values = RobotTarget.Split('.');
                 var arm = values[0];
                 var module = values[1];
-                //if (module == "Aligner1")
-                //{
-                //    module = PMCIsInstalled ? "VPA" : "VPARight";
-                //}
+                if (module == "Aligner1")
+                {
+                    module = PMCIsInstalled ? "Aligner1" : "VPARight";
+                }
+                var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
+                if (SERobotTAction != Robot1TAction || SERobotTAction != Robot2TAction)
+                {
+                    Robot1TAction = SERobotTAction;
+                    Robot2TAction = SERobotTAction;
+                }
                 if (arm == "ArmA")
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot1TAction)
-                    {
-                        Robot1TAction = SERobotTAction;
-                    }
                     await Task.Delay(600);
-
                     if (module == "VCE1")
                     {
                         Robot1XAction = SERobotXAction.ToVCE;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot1XAction = SERobotXAction.FromVCE;
                     }
-                    else
+                    else if (module == "Aligner1" || module == "VPARight")
                     {
-                        Robot1XAction = SERobotXAction.Extend;
+                        Robot1XAction = SERobotXAction.ToAligner;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot1XAction = SERobotXAction.FromAligner;
                     }
-                    while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                    else
                     {
-                        await Task.Delay(100);
+                        Robot1XAction = SERobotXAction.Extend;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot1XAction = SERobotXAction.Retract;
                     }
-                    Robot1XAction = SERobotXAction.Retract;
                 }
                 else if (arm == "ArmB")
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot2TAction)
-                    {
-                        Robot2TAction = SERobotTAction;
-                    }
-                    else
-                    {
-                        //await Task.Delay(100);
-                    }
                     await Task.Delay(600);
                     if (module == "VCE1")
                     {
                         Robot2XAction = SERobotXAction.ToVCE2;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot2XAction = SERobotXAction.FromVCE2;
                     }
-                    else
+                    else if (module == "Aligner1" || module == "VPARight")
                     {
-                        Robot2XAction = SERobotXAction.Extend2;
+                        Robot2XAction = SERobotXAction.ToAligner2;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot2XAction = SERobotXAction.FromAligner2;
                     }
-                    while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                    else
                     {
-                        await Task.Delay(100);
+                        Robot2XAction = SERobotXAction.Extend2;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot2XAction = SERobotXAction.Retract2;
                     }
-                    Robot2XAction = SERobotXAction.Retract2;
                 }
 
             }
@@ -855,34 +866,21 @@ namespace Venus_MainPages.ViewModels
                 var values = RobotTarget.Split('.');
                 var arm = values[0];
                 var module = values[1];
+                var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
+                if (SERobotTAction != Robot1TAction || SERobotTAction != Robot2TAction)
+                {
+                    Robot1TAction = SERobotTAction;
+                    Robot2TAction = SERobotTAction;
+                }
                 if (arm == "ArmA")
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot1TAction)
-                    {
-                        Robot1TAction = SERobotTAction;
-                    }
-                    else
-                    {
-                        // await Task.Delay(100);
-                    }
                     await Task.Delay(600);
 
                     Robot1XAction = SERobotXAction.Extend;
                 }
                 else if (arm == "ArmB")
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot2TAction)
-                    {
-                        Robot2TAction = SERobotTAction;
-                    }
-                    else
-                    {
-                        // await Task.Delay(100);
-                    }
                     await Task.Delay(600);
-
                     Robot2XAction = SERobotXAction.Extend2;
                 }
             }
@@ -902,10 +900,14 @@ namespace Venus_MainPages.ViewModels
                 var arm = values[0];
                 if (arm == "ArmA")
                 {
+                    await Task.Delay(100);
+
                     Robot1XAction = SERobotXAction.Retract;
                 }
                 else if (arm == "ArmB")
                 {
+                    await Task.Delay(100);
+
                     Robot2XAction = SERobotXAction.Retract2;
                 }
             }

+ 1 - 1
Venus/Venus_MainPages/ViewModels/VceViewModel.cs

@@ -142,7 +142,7 @@ namespace Venus_MainPages.ViewModels
             PositionZ = 430;
             string[] allModules = QueryDataClient.Instance.Service.GetConfig($"System.InstalledModules").ToString().Split(',');
             VCEIsInstalled = allModules.Contains("VCE1");
-            TMModules.Add(SeTMModule.VCE1);
+            TMModules.Add(SeTMModule.LP1);
             for (int i = 1; i <= 25; i++)
             {
                 PickSoltItemsSource.Add(i);

+ 93 - 55
Venus/Venus_MainPages/ViewModels/VenusSeOperationOverViewModel.cs

@@ -54,6 +54,8 @@ namespace Venus_MainPages.ViewModels
         private bool m_PMBDoorIsOpen;
         private bool m_PMCDoorIsOpen;
         private bool m_VCEOutDoorIsOpen;
+        private bool m_TMIsVAC;
+        private bool m_VCE1IsVAC;
         private Dictionary<string, object> m_RtDataValues = new Dictionary<string, object>();
         private List<string> m_RtDataKeys = new List<string>();
         private double m_PMAPercent;
@@ -258,7 +260,16 @@ namespace Venus_MainPages.ViewModels
                 SetProperty(ref m_VCEIsInstalled, value);
             }
         }
-
+        public bool TMIsVAC
+        {
+            get { return m_TMIsVAC; }
+            set { SetProperty(ref m_TMIsVAC, value); }
+        }
+        public bool VCE1IsVAC
+        {
+            get { return m_VCE1IsVAC; }
+            set { SetProperty(ref m_VCE1IsVAC, value); }
+        }
         public bool VCEDoorIsOpen { get => m_VCEDoorIsOpen; set => SetProperty(ref m_VCEDoorIsOpen, value); }
         public bool PMADoorIsOpen { get => m_PMADoorIsOpen; set => SetProperty(ref m_PMADoorIsOpen, value); }
         public bool PMBDoorIsOpen { get => m_PMBDoorIsOpen; set => SetProperty(ref m_PMBDoorIsOpen, value); }
@@ -563,6 +574,8 @@ namespace Venus_MainPages.ViewModels
             m_RtDataKeys.Add($"TM.PMBSlitDoorClosed");
             m_RtDataKeys.Add($"TM.PMCSlitDoorClosed");
             m_RtDataKeys.Add($"TM.VCEPressure.Value");
+            m_RtDataKeys.Add($"TM.TMPressure.Value");
+
             m_RtDataKeys.Add($"VCE1.VCEOutDoorClosed");
             m_RtDataKeys.Add($"VCE1.CassetteArrive");
             m_RtDataKeys.Add($"SEScheduler.CycledWafer");
@@ -579,6 +592,17 @@ namespace Venus_MainPages.ViewModels
             m_RtDataKeys.Add($"PMC.ChamberPressure");
             m_RtDataKeys.Add($"PMC.VentingFlag");
             m_RtDataKeys.Add($"PMC.CurrentRecipeResult");
+
+            m_RtDataKeys.Add($"TM.TMIsATM");
+            m_RtDataKeys.Add($"TM.VCEIsATM");
+            m_RtDataKeys.Add("System.IsAutoMode");
+            m_RtDataKeys.Add("System.IsBusy");
+            m_RtDataKeys.Add($"TM.IsOnline");
+            m_RtDataKeys.Add($"VCE1.IsOnline");
+            m_RtDataKeys.Add($"PMA.IsOnline");
+            m_RtDataKeys.Add($"PMB.IsOnline");
+            m_RtDataKeys.Add($"PMC.IsOnline");
+
             //if (PMAIsInstalled)
             //{
             //    m_RtDataKeys.Add($"PMA.ChamberPressure");
@@ -713,6 +737,9 @@ namespace Venus_MainPages.ViewModels
                 PMCDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMCSlitDoorClosed");
                 VCEOutDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "VCE1.VCEOutDoorClosed");
                 VCEPercent = CommonFunction.GetValue<double>(RtDataValues, "TM.VCEPressure.Value") * 260 / 750000;
+                TMIsVAC = (CommonFunction.GetValue<int>(RtDataValues, "TM.TMPressure.Value") < Convert.ToInt32(QueryDataClient.Instance.Service.GetConfig($"TM.VACTargetPressure")));
+                VCE1IsVAC = (CommonFunction.GetValue<int>(RtDataValues, "TM.VCEPressure.Value") < Convert.ToInt32(QueryDataClient.Instance.Service.GetConfig($"VCE1.VACTargetPressure")));
+
                 if (PMAIsInstalled == true)
                 {
                     PMAModuleInfo = ModuleManager.ModuleInfos["PMA"];
@@ -774,13 +801,11 @@ namespace Venus_MainPages.ViewModels
                 var values = RobotTarget.Split('.');
                 var arm = values[0];
                 var module = values[1];
-                if (arm == "ArmA")
+                var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
+                if (SERobotTAction != Robot1TAction || SERobotTAction != Robot2TAction)
                 {
-                    Robot1TAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                }
-                else if (arm == "ArmB")
-                {
-                    Robot2TAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
+                    Robot1TAction = SERobotTAction;
+                    Robot2TAction = SERobotTAction;
                 }
             }
             #endregion
@@ -800,58 +825,77 @@ namespace Venus_MainPages.ViewModels
                 var values = RobotTarget.Split('.');
                 var arm = values[0];
                 var module = values[1];
+                if (module == "Aligner1")
+                {
+                    module = PMCIsInstalled ? "Aligner1" : "VPARight";
+                }
+                var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
+                if (SERobotTAction != Robot1TAction || SERobotTAction != Robot2TAction)
+                {
+                    Robot1TAction = SERobotTAction;
+                    Robot2TAction = SERobotTAction;
+                }
                 if (arm == "ArmA")
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot1TAction)
-                    {
-                        Robot1TAction = SERobotTAction;
-                    }
-                    else
-                    {
-                        //await Task.Delay(100);
-                    }
                     await Task.Delay(600);
-
                     if (module == "VCE1")
                     {
                         Robot1XAction = SERobotXAction.ToVCE;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot1XAction = SERobotXAction.FromVCE;
                     }
-                    else
+                    else if (module == "Aligner1" || module == "VPARight")
                     {
-                        Robot1XAction = SERobotXAction.Extend;
+                        Robot1XAction = SERobotXAction.ToAligner;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot1XAction = SERobotXAction.FromAligner;
                     }
-                    while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                    else
                     {
-                        await Task.Delay(100);
+                        Robot1XAction = SERobotXAction.Extend;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot1XAction = SERobotXAction.Retract;
                     }
-                    Robot1XAction = SERobotXAction.Retract;
                 }
                 else if (arm == "ArmB")
                 {
-                    var waferRobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (waferRobotTAction != Robot2TAction)
-                    {
-                        Robot2TAction = waferRobotTAction;
-                    }
-                    else
-                    {
-                        //await Task.Delay(100);
-                    }
                     await Task.Delay(600);
                     if (module == "VCE1")
                     {
                         Robot2XAction = SERobotXAction.ToVCE2;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot2XAction = SERobotXAction.FromVCE2;
                     }
-                    else
+                    else if (module == "Aligner1" || module == "VPARight")
                     {
-                        Robot2XAction = SERobotXAction.Extend2;
+                        Robot2XAction = SERobotXAction.ToAligner2;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot2XAction = SERobotXAction.FromAligner2;
                     }
-                    while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                    else
                     {
-                        await Task.Delay(100);
+                        Robot2XAction = SERobotXAction.Extend2;
+                        while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
+                        {
+                            await Task.Delay(100);
+                        }
+                        Robot2XAction = SERobotXAction.Retract2;
                     }
-                    Robot2XAction = SERobotXAction.Retract2;
                 }
 
             }
@@ -872,34 +916,21 @@ namespace Venus_MainPages.ViewModels
                 var values = RobotTarget.Split('.');
                 var arm = values[0];
                 var module = values[1];
+                var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
+                if (SERobotTAction != Robot1TAction || SERobotTAction != Robot2TAction)
+                {
+                    Robot1TAction = SERobotTAction;
+                    Robot2TAction = SERobotTAction;
+                }
                 if (arm == "ArmA")
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot1TAction)
-                    {
-                        Robot1TAction = SERobotTAction;
-                    }
-                    else
-                    {
-                        // await Task.Delay(100);
-                    }
                     await Task.Delay(600);
 
                     Robot1XAction = SERobotXAction.Extend;
                 }
                 else if (arm == "ArmB")
                 {
-                    var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
-                    if (SERobotTAction != Robot2TAction)
-                    {
-                        Robot2TAction = SERobotTAction;
-                    }
-                    else
-                    {
-                        // await Task.Delay(100);
-                    }
                     await Task.Delay(600);
-
                     Robot2XAction = SERobotXAction.Extend2;
                 }
             }
@@ -919,10 +950,14 @@ namespace Venus_MainPages.ViewModels
                 var arm = values[0];
                 if (arm == "ArmA")
                 {
+                    await Task.Delay(100);
+
                     Robot1XAction = SERobotXAction.Retract;
                 }
                 else if (arm == "ArmB")
                 {
+                    await Task.Delay(100);
+
                     Robot2XAction = SERobotXAction.Retract2;
                 }
             }
@@ -952,5 +987,8 @@ namespace Venus_MainPages.ViewModels
             #endregion
 
         }
+
+
+
     }
 }

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 3 - 3
Venus/Venus_MainPages/Views/SeTMView.xaml


+ 46 - 3
Venus/Venus_MainPages/Views/VenusDeOperationOverView.xaml

@@ -57,6 +57,7 @@
                 </Setter.Value>
             </Setter>
         </Style>
+        
         <Style x:Key="SideButton" TargetType="Button">
             <Setter Property="Background" Value="#076DB6" />
             <!-- 背景色 -->
@@ -154,7 +155,7 @@
                                 <TextBlock Text="TM Lid"/>
                             </StackPanel>
                         </Border>
-                        <Border BorderBrush="#076db6" BorderThickness="0" CornerRadius="3" Padding="3,1" Margin="0,0">
+                        <Border BorderBrush="#076db6" BorderThickness="0" CornerRadius="3" Padding="3,1" Margin="0,0" Visibility="Collapsed">
                             <StackPanel>
                                 <StackPanel Orientation="Horizontal">
                                     <TextBlock Text="TM:"/>
@@ -179,7 +180,7 @@
                             </StackPanel>
                         </Border>
 
-                        <Border BorderBrush="#076db6" BorderThickness="0" CornerRadius="3" Padding="3,1" Margin="8,0">
+                        <Border BorderBrush="#076db6" BorderThickness="0" CornerRadius="3" Padding="3,1" Margin="8,0" Visibility="Collapsed">
                             <StackPanel>
                                 <StackPanel Orientation="Horizontal">
                                     <TextBlock Text="VCEA:"/>
@@ -204,7 +205,7 @@
                             </StackPanel>
                         </Border>
 
-                        <Border BorderBrush="#076db6" BorderThickness="0" CornerRadius="3" Padding="3,1" Margin="8,0">
+                        <Border BorderBrush="#076db6" BorderThickness="0" CornerRadius="3" Padding="3,1" Margin="8,0" Visibility="Collapsed">
                             <StackPanel>
                                 <StackPanel Orientation="Horizontal">
                                     <TextBlock Text="VCEB:"/>
@@ -293,6 +294,48 @@
 
             </Canvas>
 
+            <!--Pressure-->
+            <Grid Width="280" Height="200" Canvas.Left="30" Canvas.Top="370"  unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.ShowBorder="True" Background="#E9EDF4">
+                <Grid.RenderTransform>
+                    <ScaleTransform ScaleX=".7" ScaleY=".7"/>
+                </Grid.RenderTransform>
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="30"/>
+                    <RowDefinition/>
+                    <RowDefinition/>
+                    <RowDefinition/>
+                    <RowDefinition/>
+                    <RowDefinition/>
+                    <RowDefinition/>
+                    <RowDefinition/>
+
+                </Grid.RowDefinitions>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="3*"/>
+                    <ColumnDefinition Width="2*"/>
+                </Grid.ColumnDefinitions>
+                <TextBlock Grid.Row="0" Text="Pressure" Foreground="White" Grid.ColumnSpan="2"     FontSize="20"  Padding="120,2,0,0" Background="#076DB6"/>
+
+                <TextBlock Grid.Row="1" Text="TM Pressure"   FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="2" Text="VCEA Pressure" FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="3" Text="VCEB Pressure" FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="4" Text="PMA Pressure"  FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="5" Text="PMB Pressure"  FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="6" Text="PMC Pressure"  FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="7" Text="PMD Pressure"  FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+
+                <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding RtDataValues[TM.TMPressure.Value],StringFormat=0 mTorr}" FontSize="15" Padding="10,2,0,0" Background="#FFFFFF"/>
+                <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding RtDataValues[TM.VCEAPressure.Value],StringFormat=0 mTorr}"  FontSize="15" Padding="10,2,0,0" Background="#FFFFFF">
+                </TextBlock>
+                <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding RtDataValues[TM.VCEBPressure.Value],StringFormat=0 mTorr}"       Background="#FFFFFF"  FontSize="15" Padding="10,2,0,0"/>
+                <TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding RtDataValues[PMA.ChamberPressure],StringFormat=0 mTorr,TargetNullValue=0}" Background="#FFFFFF"  FontSize="15" Padding="10,2,0,0"/>
+                <TextBlock Grid.Row="5" Grid.Column="1" Text="{Binding RtDataValues[PMB.ChamberPressure],StringFormat=0 mTorr,TargetNullValue=0}"    Background="#FFFFFF"  FontSize="15" Padding="10,2,0,0"/>
+                <TextBlock Grid.Row="6" Grid.Column="1" Text="{Binding RtDataValues[PMC.ChamberPressure],StringFormat=0 mTorr,TargetNullValue=0}"  FontSize="15" Padding="10,2,0,0" Background="#FFFFFF">
+                </TextBlock>
+                <TextBlock Grid.Row="7" Grid.Column="1" Text="{Binding RtDataValues[PMD.ChamberPressure],StringFormat=0 mTorr,TargetNullValue=0}"    Background="#FFFFFF"  FontSize="15" Padding="10,2,0,0"/>
+
+            </Grid>
+
             <!-- PMA Recipe-->
             <Grid Width="280" Height="170" Canvas.Left="30" Canvas.Top="230"  unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.ShowBorder="True" Background="#E9EDF4" Visibility="{Binding PMAIsInstalled,Converter={StaticResource bool2VisibilityConverter}}">
                 <Grid.RenderTransform>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 342 - 128
Venus/Venus_MainPages/Views/VenusSeOperationOverView.xaml


+ 34 - 8
Venus/Venus_Themes/CustomControls/SERobot.cs

@@ -17,15 +17,17 @@ namespace Venus_Themes.CustomControls
         {
             X_Origin,
             Extend,
+            ToAligner,
             ToVCE,
             FromVCE,
-            FromVCEToVPA,
+            FromAligner,
             Retract,
             X_Origin2,
             Extend2,
             ToVCE2,
             FromVCE2,
-            FromVCEToVPA2,
+            ToAligner2,
+            FromAligner2,
             Retract2
         }
 
@@ -112,7 +114,7 @@ namespace Venus_Themes.CustomControls
                         VisualStateManager.GoToState(control, newAct.ToString(), true);
                     }
                     break;
-                case SERobotXAction.FromVCEToVPA:
+                case SERobotXAction.FromVCE:
                     if (newAct != oldAct)
                     {
                         VisualStateManager.GoToState(control, newAct.ToString(), true);
@@ -139,7 +141,31 @@ namespace Venus_Themes.CustomControls
                         VisualStateManager.GoToState(control, newAct.ToString(), true);
                     }
                     break;
-                case SERobotXAction.FromVCEToVPA2:
+                case SERobotXAction.FromVCE2:
+                    if (newAct != oldAct)
+                    {
+                        VisualStateManager.GoToState(control, newAct.ToString(), true);
+                    }
+                    break;
+                case SERobotXAction.ToAligner:
+                    if (newAct != oldAct)
+                    {
+                        VisualStateManager.GoToState(control, newAct.ToString(), true);
+                    }
+                    break;
+                case SERobotXAction.FromAligner:
+                    if (newAct != oldAct)
+                    {
+                        VisualStateManager.GoToState(control, newAct.ToString(), true);
+                    }
+                    break;
+                case SERobotXAction.ToAligner2:
+                    if (newAct != oldAct)
+                    {
+                        VisualStateManager.GoToState(control, newAct.ToString(), true);
+                    }
+                    break;
+                case SERobotXAction.FromAligner2:
                     if (newAct != oldAct)
                     {
                         VisualStateManager.GoToState(control, newAct.ToString(), true);
@@ -186,10 +212,10 @@ namespace Venus_Themes.CustomControls
             var control = d as SERobot;
             var oldAct = (SERobotTAction)e.OldValue;
             var newAct = (SERobotTAction)e.NewValue;
-            while (newAct.ToString() == "VPA"&&!control.PMCIsInstalled)
-            {
-                newAct = SERobotTAction.VPARight;
-            }
+            //while (newAct.ToString() == "Aligner1" && !control.PMCIsInstalled)
+            //{
+            //    newAct = SERobotTAction.VPARight;
+            //}
             if (oldAct != newAct)
             {
                 VisualStateManager.GoToState(control, newAct.ToString(), true);//前后动作不一致,改变控件状态

+ 160 - 58
Venus/Venus_Themes/Themes/Generic.xaml

@@ -565,36 +565,68 @@
                                             </DoubleAnimationUsingKeyFrames>
                                         </Storyboard>
                                     </VisualTransition>
-                                    <VisualTransition To="FromVCEToVPA">
+                                    <VisualTransition To="FromAligner">
                                         <Storyboard FillBehavior="HoldEnd" SpeedRatio="14">
                                             <!--后臂+底座-->
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
-                                                <LinearDoubleKeyFrame Value="-90" KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="-130" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="-115" KeyTime="0:0:6"/>
                                             </DoubleAnimationUsingKeyFrames>
                                             <!--中臂-->
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
-                                                <LinearDoubleKeyFrame Value="-360" KeyTime="0:0:0"/>
-                                                <LinearDoubleKeyFrame Value="-210" KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="-185" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="-120" KeyTime="0:0:6"/>
                                             </DoubleAnimationUsingKeyFrames>
                                             <!--前臂-->
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
-                                                <LinearDoubleKeyFrame Value="110" KeyTime="0:0:6"/>
-                                                <LinearDoubleKeyFrame Value="82" KeyTime="0:0:5"/>
-                                                <LinearDoubleKeyFrame Value="55" KeyTime="0:0:4"/>
-                                                <LinearDoubleKeyFrame Value="32" KeyTime="0:0:3"/>
-                                                <LinearDoubleKeyFrame Value="15" KeyTime="0:0:2"/>
-                                                <LinearDoubleKeyFrame Value="5" KeyTime="0:0:1"/>
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="225" KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="212" KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="198" KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="180" KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="165" KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="152" KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="140" KeyTime="0:0:0"/>
                                             </DoubleAnimationUsingKeyFrames>
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="Y">
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:6"/>
-                                                <LinearDoubleKeyFrame Value="5" KeyTime="0:0:5"/>
-                                                <LinearDoubleKeyFrame Value="8" KeyTime="0:0:4"/>
-                                                <LinearDoubleKeyFrame Value="8" KeyTime="0:0:3"/>
-                                                <LinearDoubleKeyFrame Value="6" KeyTime="0:0:2"/>
-                                                <LinearDoubleKeyFrame Value="4" KeyTime="0:0:1"/>
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="0"      KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="-15"   KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="-20"   KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="-20"   KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="-18"   KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="-12"   KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="0"      KeyTime="0:0:0"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                        </Storyboard>
+                                    </VisualTransition>
+                                    <VisualTransition To="ToAligner">
+                                        <Storyboard FillBehavior="HoldEnd" Timeline.SpeedRatio="13">
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
+                                                <LinearDoubleKeyFrame Value="-115" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="-130" KeyTime="0:0:6"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                            <!--中臂-->
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
+                                                <LinearDoubleKeyFrame Value="-120" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="-185" KeyTime="0:0:6"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                            <!--前臂-->
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
+                                                <LinearDoubleKeyFrame Value="225" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="212" KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="198" KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="180" KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="165" KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="152" KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="140" KeyTime="0:0:6"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="Y">
+                                                <LinearDoubleKeyFrame Value="0"   KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="-15" KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="-20" KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="-20" KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="-18" KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="-12" KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="0"   KeyTime="0:0:6"/>
                                             </DoubleAnimationUsingKeyFrames>
                                         </Storyboard>
                                     </VisualTransition>
@@ -615,23 +647,23 @@
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
-                                <VisualState Name="ToVCE">
+                                <VisualState Name="ToAligner">
                                     <Storyboard FillBehavior="HoldEnd">
                                         <!--后臂+底座-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="-130" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                         <!--中臂-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="-360" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="-185" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                         <!--前臂-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
-                                            <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="140" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
-                                <VisualState Name="FromVCE">
+                                <VisualState Name="FromAligner">
                                     <Storyboard FillBehavior="HoldEnd">
                                         <!--后臂+底座-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
@@ -645,21 +677,40 @@
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
                                             <LinearDoubleKeyFrame Value="225" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="Y">
+                                            <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
-                                <VisualState Name="FromVCEToVPA">
+                                <VisualState Name="ToVCE">
                                     <Storyboard FillBehavior="HoldEnd">
                                         <!--后臂+底座-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="-90" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                         <!--中臂-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="-210" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="-360" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                         <!--前臂-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
-                                            <LinearDoubleKeyFrame Value="110" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
+                                    </Storyboard>
+                                </VisualState>
+                                <VisualState Name="FromVCE">
+                                    <Storyboard FillBehavior="HoldEnd">
+                                        <!--后臂+底座-->
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
+                                            <LinearDoubleKeyFrame Value="-115" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
+                                        <!--中臂-->
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
+                                            <LinearDoubleKeyFrame Value="-120" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
+                                        <!--前臂-->
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
+                                            <LinearDoubleKeyFrame Value="225" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
@@ -679,7 +730,6 @@
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
-
                                 <VisualState Name="Retract">
                                     <Storyboard FillBehavior="HoldEnd">
                                         <!--后臂+底座-->
@@ -820,36 +870,68 @@
                                             </DoubleAnimationUsingKeyFrames>
                                         </Storyboard>
                                     </VisualTransition>
-                                    <VisualTransition To="FromVCEToVPA2">
+                                    <VisualTransition To="FromAligner2">
                                         <Storyboard FillBehavior="HoldEnd" SpeedRatio="14">
                                             <!--后臂+底座-->
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
-                                                <LinearDoubleKeyFrame Value="90" KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="130" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="115" KeyTime="0:0:6"/>
                                             </DoubleAnimationUsingKeyFrames>
                                             <!--中臂-->
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
-                                                <LinearDoubleKeyFrame Value="360" KeyTime="0:0:0"/>
-                                                <LinearDoubleKeyFrame Value="210" KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="185" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="120" KeyTime="0:0:6"/>
                                             </DoubleAnimationUsingKeyFrames>
                                             <!--前臂-->
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
-                                                <LinearDoubleKeyFrame Value="110" KeyTime="0:0:6"/>
-                                                <LinearDoubleKeyFrame Value="82" KeyTime="0:0:5"/>
-                                                <LinearDoubleKeyFrame Value="55" KeyTime="0:0:4"/>
-                                                <LinearDoubleKeyFrame Value="32" KeyTime="0:0:3"/>
-                                                <LinearDoubleKeyFrame Value="15" KeyTime="0:0:2"/>
-                                                <LinearDoubleKeyFrame Value="5" KeyTime="0:0:1"/>
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="225" KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="212" KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="198" KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="180" KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="165" KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="152" KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="140" KeyTime="0:0:0"/>
                                             </DoubleAnimationUsingKeyFrames>
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="Y">
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:6"/>
-                                                <LinearDoubleKeyFrame Value="5" KeyTime="0:0:5"/>
-                                                <LinearDoubleKeyFrame Value="8" KeyTime="0:0:4"/>
-                                                <LinearDoubleKeyFrame Value="8" KeyTime="0:0:3"/>
-                                                <LinearDoubleKeyFrame Value="6" KeyTime="0:0:2"/>
-                                                <LinearDoubleKeyFrame Value="4" KeyTime="0:0:1"/>
-                                                <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="0"      KeyTime="0:0:6"/>
+                                                <LinearDoubleKeyFrame Value="15"   KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="20"   KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="20"   KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="18"   KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="12"   KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="0"      KeyTime="0:0:0"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                        </Storyboard>
+                                    </VisualTransition>
+                                    <VisualTransition To="ToAligner2">
+                                        <Storyboard FillBehavior="HoldEnd" Timeline.SpeedRatio="13">
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
+                                                <LinearDoubleKeyFrame Value="115" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="130" KeyTime="0:0:6"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                            <!--中臂-->
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
+                                                <LinearDoubleKeyFrame Value="120" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="185" KeyTime="0:0:6"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                            <!--前臂-->
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
+                                                <LinearDoubleKeyFrame Value="225" KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="212" KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="198" KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="180" KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="165" KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="152" KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="140" KeyTime="0:0:6"/>
+                                            </DoubleAnimationUsingKeyFrames>
+                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="Y">
+                                                <LinearDoubleKeyFrame Value="0"   KeyTime="0:0:0"/>
+                                                <LinearDoubleKeyFrame Value="15" KeyTime="0:0:1"/>
+                                                <LinearDoubleKeyFrame Value="20" KeyTime="0:0:2"/>
+                                                <LinearDoubleKeyFrame Value="20" KeyTime="0:0:3"/>
+                                                <LinearDoubleKeyFrame Value="18" KeyTime="0:0:4"/>
+                                                <LinearDoubleKeyFrame Value="12" KeyTime="0:0:5"/>
+                                                <LinearDoubleKeyFrame Value="0"   KeyTime="0:0:6"/>
                                             </DoubleAnimationUsingKeyFrames>
                                         </Storyboard>
                                     </VisualTransition>
@@ -902,19 +984,38 @@
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
-                                <VisualState Name="FromVCEToVPA2">
+                                <VisualState Name="ToAligner2">
                                     <Storyboard FillBehavior="HoldEnd">
                                         <!--后臂+底座-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="90" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="130" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                         <!--中臂-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="210" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="185" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                         <!--前臂-->
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
-                                            <LinearDoubleKeyFrame Value="110" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="140" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
+                                    </Storyboard>
+                                </VisualState>
+                                <VisualState Name="FromAligner2">
+                                    <Storyboard FillBehavior="HoldEnd">
+                                        <!--后臂+底座-->
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT1RotateAct" Storyboard.TargetProperty="Angle">
+                                            <LinearDoubleKeyFrame Value="115" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
+                                        <!--中臂-->
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT2ArmRotateAct" Storyboard.TargetProperty="Angle">
+                                            <LinearDoubleKeyFrame Value="120" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
+                                        <!--前臂-->
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="X">
+                                            <LinearDoubleKeyFrame Value="225" KeyTime="0:0:0"/>
+                                        </DoubleAnimationUsingKeyFrames>
+                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="armXT3ArmTranslateAct" Storyboard.TargetProperty="Y">
+                                            <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
@@ -982,10 +1083,10 @@
                                             </DoubleAnimationUsingKeyFrames>
                                         </Storyboard>
                                     </VisualTransition>
-                                    <VisualTransition To="VPA">
+                                    <VisualTransition To="Aligner1">
                                         <Storyboard FillBehavior="HoldEnd">
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="Angle">
-                                                <LinearDoubleKeyFrame Value="270" KeyTime="0:0:0.5"/>
+                                                <LinearDoubleKeyFrame Value="-90" KeyTime="0:0:0.5"/>
                                             </DoubleAnimationUsingKeyFrames>
                                         </Storyboard>
                                     </VisualTransition>
@@ -999,7 +1100,7 @@
                                     <VisualTransition To="VCE1">
                                         <Storyboard FillBehavior="HoldEnd">
                                             <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="Angle">
-                                                <LinearDoubleKeyFrame Value="270" KeyTime="0:0:0.5"/>
+                                                <LinearDoubleKeyFrame Value="-90" KeyTime="0:0:0.5"/>
                                             </DoubleAnimationUsingKeyFrames>
                                         </Storyboard>
                                     </VisualTransition>
@@ -1033,10 +1134,10 @@
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
-                                <VisualState Name="VPA">
+                                <VisualState Name="Aligner1">
                                     <Storyboard FillBehavior="HoldEnd">
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="270" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="-90" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
@@ -1050,7 +1151,7 @@
                                 <VisualState Name="VCE1">
                                     <Storyboard FillBehavior="HoldEnd">
                                         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="Angle">
-                                            <LinearDoubleKeyFrame Value="270" KeyTime="0:0:0"/>
+                                            <LinearDoubleKeyFrame Value="-90" KeyTime="0:0:0"/>
                                         </DoubleAnimationUsingKeyFrames>
                                     </Storyboard>
                                 </VisualState>
@@ -1121,6 +1222,7 @@
                                 </Canvas>
 
                             </Canvas>
+                        
                         </Canvas>
 
                     </Viewbox>

+ 51 - 9
Venus/Venus_Themes/UserControls/DEVceA.xaml

@@ -29,6 +29,52 @@
                 </DataTrigger>
             </Style.Triggers>
         </Style>
+        <Style TargetType="Image" x:Key="CassetteMove">
+            <Setter Property="Margin" Value="0,200,0,0"/>
+            <Setter Property="Visibility" Value="Visible"></Setter>
+            <Setter Property="RenderTransform">
+                <Setter.Value>
+                    <TransformGroup>
+                        <RotateTransform Angle="0"/>
+                    </TransformGroup>
+                </Setter.Value>
+            </Setter>
+            <Style.Triggers>
+                <DataTrigger Binding="{Binding ElementName=devceChamber,Path=CassetteArrive}" Value="True">
+                    <DataTrigger.EnterActions>
+                        <BeginStoryboard>
+                            <Storyboard>
+                                <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                    <EasingThicknessKeyFrame KeyTime="0" Value="0,200,0,0"/>
+                                    <EasingThicknessKeyFrame KeyTime="0:0:2" Value="0,0,0,0"/>
+                                </ThicknessAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)">
+                                    <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                                <DoubleAnimation Storyboard.TargetProperty=
+                                                 "RenderTransform.Children[0].Angle" Duration="0:0:1" BeginTime="0:0:2"  From="0" To="30" />
+                            </Storyboard>
+                        </BeginStoryboard>
+                    </DataTrigger.EnterActions>
+                    <DataTrigger.ExitActions>
+                        <BeginStoryboard>
+                            <Storyboard>
+                                <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                    <EasingThicknessKeyFrame KeyTime="0:0:1" Value="0,0,0,0"/>
+                                    <EasingThicknessKeyFrame KeyTime="0:0:3" Value="0,200,0,0"/>
+                                </ThicknessAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)">
+                                    <DiscreteObjectKeyFrame KeyTime="0:0:3" Value="{x:Static Visibility.Hidden}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                                <DoubleAnimation Storyboard.TargetProperty=
+                                                 "RenderTransform.Children[0].Angle" Duration="0:0:1" BeginTime="0:0:0"  From="30" To="0" />
+                            </Storyboard>
+                        </BeginStoryboard>
+                    </DataTrigger.ExitActions>
+                </DataTrigger>
+            </Style.Triggers>
+        </Style>
+        
         <converters:BoolToBool x:Key="BoolToBool"/>
         <Storyboard x:Key="WaterStoryboard">
             <PointAnimation Storyboard.TargetName="bs_Water" Storyboard.TargetProperty="Point1" From="15,-10" To="15,10" Duration="00:00:1" AutoReverse="True" RepeatBehavior="Forever"></PointAnimation>
@@ -48,17 +94,13 @@
     </UserControl.Triggers>
     <Viewbox>
         <Canvas Height="120" Width="200">
-            <Image Width="160"  Canvas.Left="10" Canvas.Top="-64" Source="pack://application:,,,/Venus_Themes;component/Resources/cassette.png"  Opacity="0.8"  Visibility="{Binding ElementName=devceChamber,Path=CassetteArrive,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource bool2VisibilityConverter}}" RenderTransformOrigin="0.5,0.5" Panel.ZIndex="2" HorizontalAlignment="Center" VerticalAlignment="Top">
-                <Image.RenderTransform>
-                    <TransformGroup>
-                        <ScaleTransform/>
-                        <SkewTransform/>
-                        <RotateTransform Angle="30.939"/>
-                        <TranslateTransform/>
-                    </TransformGroup>
-                </Image.RenderTransform>
+            <!--<Image Width="160" Style="{StaticResource CassetteMove}"  Canvas.Left="10" Canvas.Top="-64" Source="pack://application:,,,/Venus_Themes;component/Resources/cassette.png"  Opacity="0.8"  Visibility="{Binding ElementName=devceChamber,Path=CassetteArrive,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource bool2VisibilityConverter}}" RenderTransformOrigin="0.5,0.5" Panel.ZIndex="2" HorizontalAlignment="Center" VerticalAlignment="Top">-->
+
+            <Image Width="160" Style="{StaticResource CassetteMove}"  Canvas.Left="10" Canvas.Top="-64" Source="pack://application:,,,/Venus_Themes;component/Resources/cassette.png"  Opacity="0.8"  RenderTransformOrigin="0.5,0.5" Panel.ZIndex="2" HorizontalAlignment="Center" VerticalAlignment="Top">
+
             </Image>
 
+
             <Image Width="200" Canvas.Left="0" Canvas.Top="-93" Source="pack://application:,,,/Venus_Themes;component/Themes/Images/parts/venusde/VCEleft2.png"></Image>
             <!--<Rectangle Cursor="Hand" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl,AncestorLevel=1}}" Style="{StaticResource doorAnimation}"  Fill="DimGray"   VerticalAlignment="Top"    Height="15"    Canvas.Top="-20" Canvas.Left="-4" Name="door2">
                 <Rectangle.RenderTransform >

+ 47 - 10
Venus/Venus_Themes/UserControls/DEVceB.xaml

@@ -8,6 +8,51 @@
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800" Name="devceBChamber">
     <UserControl.Resources>
+        <Style TargetType="Image" x:Key="CassetteMove">
+            <Setter Property="Margin" Value="0,200,0,0"/>
+            <Setter Property="Visibility" Value="Visible"></Setter>
+            <Setter Property="RenderTransform">
+                <Setter.Value>
+                    <TransformGroup>
+                        <RotateTransform Angle="0"/>
+                    </TransformGroup>
+                </Setter.Value>
+            </Setter>
+            <Style.Triggers>
+                <DataTrigger Binding="{Binding ElementName=devceBChamber,Path=CassetteArrive}" Value="True">
+                    <DataTrigger.EnterActions>
+                        <BeginStoryboard>
+                            <Storyboard>
+                                <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                    <EasingThicknessKeyFrame KeyTime="0" Value="0,200,0,0"/>
+                                    <EasingThicknessKeyFrame KeyTime="0:0:2" Value="0,0,0,0"/>
+                                </ThicknessAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)">
+                                    <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                                <DoubleAnimation Storyboard.TargetProperty=
+                                                 "RenderTransform.Children[0].Angle" Duration="0:0:1" BeginTime="0:0:2"  From="0" To="-30" />
+                            </Storyboard>
+                        </BeginStoryboard>
+                    </DataTrigger.EnterActions>
+                    <DataTrigger.ExitActions>
+                        <BeginStoryboard>
+                            <Storyboard>
+                                <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                    <EasingThicknessKeyFrame KeyTime="0:0:1" Value="0,0,0,0"/>
+                                    <EasingThicknessKeyFrame KeyTime="0:0:3" Value="0,200,0,0"/>
+                                </ThicknessAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)">
+                                    <DiscreteObjectKeyFrame KeyTime="0:0:3" Value="{x:Static Visibility.Hidden}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                                <DoubleAnimation Storyboard.TargetProperty=
+                                                 "RenderTransform.Children[0].Angle" Duration="0:0:1" BeginTime="0:0:0"  From="-30" To="0" />
+                            </Storyboard>
+                        </BeginStoryboard>
+                    </DataTrigger.ExitActions>
+                </DataTrigger>
+            </Style.Triggers>
+        </Style>
         <converters:BoolToBool x:Key="BoolToBool"/>
         <Storyboard x:Key="WaterStoryboard">
             <PointAnimation Storyboard.TargetName="bs_Water" Storyboard.TargetProperty="Point1" From="15,-10" To="15,10" Duration="00:00:1" AutoReverse="True" RepeatBehavior="Forever"></PointAnimation>
@@ -27,15 +72,7 @@
     </UserControl.Triggers>
     <Viewbox>
         <Canvas Height="120" Width="200">
-            <Image Width="160"  Canvas.Left="30" Canvas.Top="-62" Source="pack://application:,,,/Venus_Themes;component/Resources/cassette.png"  Opacity="0.9"  Visibility="{Binding ElementName=devceBChamber,Path=CassetteArrive,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource bool2VisibilityConverter}}" RenderTransformOrigin="0.5,0.5" Panel.ZIndex="2" HorizontalAlignment="Center" VerticalAlignment="Top">
-                <Image.RenderTransform>
-                    <TransformGroup>
-                        <ScaleTransform/>
-                        <SkewTransform/>
-                        <RotateTransform Angle="-30"/>
-                        <TranslateTransform/>
-                    </TransformGroup>
-                </Image.RenderTransform>
+            <Image Style="{StaticResource CassetteMove}"  Width="160"  Canvas.Left="30" Canvas.Top="-62" Source="pack://application:,,,/Venus_Themes;component/Resources/cassette.png"  Opacity="0.9"  RenderTransformOrigin="0.5,0.5" Panel.ZIndex="2" HorizontalAlignment="Center" VerticalAlignment="Top">
             </Image>
 
             <Image Width="200" Canvas.Left="0" Canvas.Top="-93" Source="pack://application:,,,/Venus_Themes;component/Themes/Images/parts/venusde/VCEright2.png"></Image>
@@ -80,7 +117,7 @@
                     </Rectangle>
                 </Border>
 
-                <Border Canvas.Top="129" Canvas.Left="-5" Height="44" Width="270" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="Collapsed">
+                <Border Canvas.Top="129" Canvas.Left="-5" Height="44" Width="270" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="Hidden">
                     <Border.RenderTransform>
                         <ScaleTransform ScaleX="0.77" ScaleY="0.58"></ScaleTransform>
                     </Border.RenderTransform>

+ 7 - 7
Venus/Venus_Themes/UserControls/TMChamber.xaml

@@ -59,7 +59,7 @@
             <Canvas Width="200" Height="200" Grid.Row="1">
                 <!--<Border Canvas.Top="-54" Canvas.Left="-9" Height="44" Width="210" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="{Binding ElementName=tmChamber,Path=IsVenting,Converter={StaticResource bool2VisibilityConverter}}">-->
 
-                    <Border Canvas.Top="-54" Canvas.Left="-9" Height="44" Width="210" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="Collapsed">
+                    <Border Canvas.Top="-54" Canvas.Left="-9" Height="44" Width="210" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="Hidden">
                     <Border Background="Transparent" CornerRadius="1"  BorderBrush="Black" BorderThickness="3,3,0,0">
                         <StackPanel Margin="-160,0,0,0" Height="44">
 
@@ -89,13 +89,13 @@
                 </Border>
 
 
-                <Border  Canvas.Top="-50" Canvas.Left="-60" HorizontalAlignment="Center" Width="320">
+                <Border  Canvas.Top="-50" Canvas.Left="-60" HorizontalAlignment="Center" Width="320" Visibility="Visible">
                     <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding ElementName=tmChamber,Path=PMVisibility}">
-                        <TextBlock  FontSize="30" Text="{Binding ElementName=tmChamber,Path=Name}"/>
-                        <TextBlock Visibility="Collapsed"  FontSize="30" Text="(" HorizontalAlignment="Center"/>
-                        <TextBlock Visibility="Collapsed"  FontSize="30" Text="{Binding ElementName=tmChamber,Path=PressureValue,StringFormat=F0}" HorizontalAlignment="Center"/>
-                        <TextBlock Visibility="Collapsed"  FontSize="30" Text="{Binding ElementName=tmChamber,Path=Unit}" HorizontalAlignment="Center"/>
-                        <TextBlock Visibility="Collapsed"  FontSize="30" Text=")" HorizontalAlignment="Center"/>
+                        <!--<TextBlock FontSize="30" Text="{Binding ElementName=tmChamber,Path=Name}"/>-->
+                        <!--<TextBlock FontSize="30" Text="(" HorizontalAlignment="Center"/>
+                        <TextBlock FontSize="30" Text="{Binding ElementName=tmChamber,Path=PressureValue,StringFormat=F0}" HorizontalAlignment="Center"/>
+                        <TextBlock FontSize="30" Text="{Binding ElementName=tmChamber,Path=Unit}" HorizontalAlignment="Center"/>
+                        <TextBlock FontSize="30" Text=")" HorizontalAlignment="Center"/>-->
 
                     </StackPanel>
                 </Border>

+ 47 - 10
Venus/Venus_Themes/UserControls/Vce.xaml

@@ -19,6 +19,41 @@
 
             </DoubleAnimation>
         </Storyboard>
+        <Style TargetType="Image" x:Key="CassetteMove">
+            <Setter Property="Margin" Value="0,0,100,0"/>
+            <Setter Property="Visibility" Value="Visible"></Setter>
+            <Style.Triggers>
+                <DataTrigger Binding="{Binding ElementName=vceChamber,Path=CassetteArrive}" Value="True">
+                    <DataTrigger.EnterActions>
+                        <BeginStoryboard>
+                            <Storyboard>
+                                <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                    <EasingThicknessKeyFrame KeyTime="0" Value="0,100,0,0"/>
+                                    <EasingThicknessKeyFrame KeyTime="0:0:2" Value="0,0,0,0"/>
+                                </ThicknessAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)">
+                                    <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </BeginStoryboard>
+                    </DataTrigger.EnterActions>
+                    <DataTrigger.ExitActions>
+                        <BeginStoryboard>
+                            <Storyboard>
+                                <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" >
+                                    <EasingThicknessKeyFrame KeyTime="0:0:1" Value="0,0,0,0"/>
+                                    <EasingThicknessKeyFrame KeyTime="0:0:3" Value="0,100,0,0"/>
+                                </ThicknessAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)">
+                                    <DiscreteObjectKeyFrame KeyTime="0:0:3" Value="{x:Static Visibility.Hidden}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </BeginStoryboard>
+                    </DataTrigger.ExitActions>
+                </DataTrigger>
+            </Style.Triggers>
+        </Style>
+
     </UserControl.Resources>
     <UserControl.Triggers>
         <EventTrigger RoutedEvent="Loaded">
@@ -29,12 +64,13 @@
     <Viewbox>
         <Canvas Height="120" Width="200">
             <Canvas.Background>
-                <LinearGradientBrush StartPoint="1,1" EndPoint="0,0">
-                    <GradientStop Color="#337c8e" Offset="0"></GradientStop>
-                    <GradientStop Color="#27829e" Offset="0.3"></GradientStop>
-                    <GradientStop Color="#729bab" Offset=".5"></GradientStop>
-                    <GradientStop Color="#27829e" Offset="0.8"></GradientStop>
-                    <GradientStop Color="#337c8e" Offset="1"></GradientStop>
+
+                <LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
+                    <GradientStop Color="Gray" Offset="0"></GradientStop>
+                    <GradientStop Color="LightGray" Offset=".2"></GradientStop>
+                    <GradientStop Color="White" Offset=".5"></GradientStop>
+                    <GradientStop Color="LightGray" Offset=".8"></GradientStop>
+                    <GradientStop Color="Gray" Offset="1"></GradientStop>
                 </LinearGradientBrush>
             </Canvas.Background>
             <!--<Rectangle Cursor="Hand" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl,AncestorLevel=1}}" Style="{StaticResource doorAnimation}"  Fill="DimGray"   VerticalAlignment="Top"    Height="15"    Canvas.Top="-20" Canvas.Left="-4" Name="door2">
@@ -49,6 +85,7 @@
                 </Rectangle.ContextMenu>
             </Rectangle>-->
             <Canvas>
+                <Border BorderBrush="Gray" Height="120" Width="200" BorderThickness="2" Canvas.Top="0" Canvas.Left="0" CornerRadius="2"></Border>
                 <Border Canvas.Bottom="-120" Canvas.Left="10" HorizontalAlignment="Center" Width="180">
                 <Rectangle Fill="#fac090"  Width="180" Height="10">
                     <Rectangle.Style>
@@ -76,7 +113,7 @@
                 </Rectangle>
             </Border>
                 
-                <Border Canvas.Top="129" Canvas.Left="-5" Height="44" Width="270" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="{Binding ElementName=vceChamber,Path=IsVenting,Converter={StaticResource bool2VisibilityConverter}}">
+            <Border Visibility="Collapsed" Canvas.Top="129" Canvas.Left="-5" Height="44" Width="270" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3">
                 <Border.RenderTransform>
                     <ScaleTransform ScaleX="0.77" ScaleY="0.58"></ScaleTransform>
                 </Border.RenderTransform>
@@ -110,9 +147,9 @@
             <StackPanel Width="200" Canvas.Top="130" HorizontalAlignment="Center" VerticalAlignment="Center">
                 <TextBlock Canvas.Top="130" Canvas.Left="90" TextAlignment="Center" FontSize="20" FontWeight="Normal">
                     <TextBlock.Text>
-                            <MultiBinding  StringFormat=" {0}({1}mtorr)">
+                        <MultiBinding  StringFormat=" {0}">
                             <Binding  ElementName="vceChamber" Path="VCEName"></Binding>
-                                <Binding  ElementName="vceChamber" Path="PressureValue"></Binding>
+                            <!--<Binding  ElementName="vceChamber" Path="PressureValue"></Binding>-->
                         </MultiBinding>
                     </TextBlock.Text>
                 </TextBlock>
@@ -121,7 +158,7 @@
             </Canvas>
 
 
-            <Image Width="100"  Resources/cassette.png"  Opacity="0.8"  Visibility="{Binding ElementName=vceChamber,Path=CassetteArrive,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource bool2VisibilityConverter}}" ></Image>
+            <Image Width="100"  Style="{StaticResource CassetteMove}"  Resources/cassette.png"  Opacity="0.8"  ></Image>
         </Canvas>
     </Viewbox>
 </UserControl>

+ 1 - 1
Venus/Venus_Themes/UserControls/VenusSETM.xaml

@@ -50,7 +50,7 @@
             </Border>
 
             <!-- aligner1 两个位置 112,225 222,75-->
-            <Viewbox Stretch="Uniform" Width="80" Height="80" Canvas.Left="84" Canvas.Top="240" Name="VPAligner" Visibility="{Binding ElementName=venusSetm,Path=VPAIsShow,Converter={StaticResource boolToVisibility2}}" Canvas.ZIndex="2">
+            <Viewbox Stretch="Uniform" Width="100" Height="100" Canvas.Left="75" Canvas.Top="225" Name="VPAligner" Visibility="{Binding ElementName=venusSetm,Path=VPAIsShow,Converter={StaticResource boolToVisibility2}}" Canvas.ZIndex="2">
 
                 <Canvas UseLayoutRounding="False"  Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Top">
                     <Canvas.Background>