MFTwo.xaml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. <UserControl
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:EfemDualUI.Controls.Parts"
  7. xmlns:parts="clr-namespace:EfemDual.Controls.Parts"
  8. xmlns:efemControls="clr-namespace:MECF.Framework.UI.Client.ClientControls.EfemControls;assembly=MECF.Framework.UI.Client"
  9. xmlns:loadLockControls="clr-namespace:MECF.Framework.UI.Client.ClientControls.LoadLockControls;assembly=MECF.Framework.UI.Client"
  10. xmlns:singleArmRobot1="clr-namespace:MECF.Framework.UI.Client.ClientControls.RobotControls.SingleArmRobot1;assembly=MECF.Framework.UI.Client"
  11. xmlns:UnitControls="clr-namespace:MECF.Framework.UI.Client.Ctrlib.UnitControls;assembly=MECF.Framework.UI.Client" x:Class="EfemDualUI.Controls.Parts.MFTwo"
  12. mc:Ignorable="d"
  13. d:DesignHeight="520" d:DesignWidth="621">
  14. <UserControl.Resources>
  15. <Style TargetType="{x:Type TextBlock}" x:Key="Text_Online_PM1" >
  16. <Style.Triggers>
  17. <DataTrigger Binding="{Binding PM1IsOnline}" Value="True">
  18. <Setter Property="Foreground" Value="Green" />
  19. </DataTrigger>
  20. <DataTrigger Binding="{Binding PM1IsOnline}" Value="False">
  21. <Setter Property="Foreground" Value="{DynamicResource FG_Black}" />
  22. </DataTrigger>
  23. </Style.Triggers>
  24. </Style>
  25. <Style TargetType="{x:Type TextBlock}" x:Key="Text_Online_PM2" >
  26. <Style.Triggers>
  27. <DataTrigger Binding="{Binding PM2IsOnline}" Value="True">
  28. <Setter Property="Foreground" Value="Green" />
  29. </DataTrigger>
  30. <DataTrigger Binding="{Binding PM2IsOnline}" Value="False">
  31. <Setter Property="Foreground" Value="{DynamicResource FG_Black}" />
  32. </DataTrigger>
  33. </Style.Triggers>
  34. </Style>
  35. <Style TargetType="{x:Type TextBlock}" x:Key="Text_Online_PM3" >
  36. <Style.Triggers>
  37. <DataTrigger Binding="{Binding PM3IsOnline}" Value="True">
  38. <Setter Property="Foreground" Value="Green" />
  39. </DataTrigger>
  40. <DataTrigger Binding="{Binding PM3IsOnline}" Value="False">
  41. <Setter Property="Foreground" Value="{DynamicResource FG_Black}" />
  42. </DataTrigger>
  43. </Style.Triggers>
  44. </Style>
  45. <Style TargetType="{x:Type TextBlock}" x:Key="Text_Online_PM4" >
  46. <Style.Triggers>
  47. <DataTrigger Binding="{Binding PM4IsOnline}" Value="True">
  48. <Setter Property="Foreground" Value="Green" />
  49. </DataTrigger>
  50. <DataTrigger Binding="{Binding PM4IsOnline}" Value="False">
  51. <Setter Property="Foreground" Value="{DynamicResource FG_Black}" />
  52. </DataTrigger>
  53. </Style.Triggers>
  54. </Style>
  55. <Style TargetType="{x:Type Button}" x:Key="BtnControl" BasedOn="{StaticResource ResourceKey={x:Type Button}}">
  56. <Setter Property="IsEnabled" Value="False" />
  57. <Style.Triggers>
  58. <DataTrigger Binding="{Binding ButtonControl}" Value="False">
  59. <Setter Property="IsEnabled" Value="True"/>
  60. </DataTrigger>
  61. </Style.Triggers>
  62. </Style>
  63. <Style TargetType="{x:Type Button}" x:Key="BtnControl2" BasedOn="{StaticResource ResourceKey={x:Type Button}}">
  64. <Setter Property="IsEnabled" Value="False" />
  65. <Style.Triggers>
  66. <MultiDataTrigger>
  67. <MultiDataTrigger.Conditions>
  68. <Condition Binding="{Binding Permission}" Value="1"/>
  69. <Condition Binding="{Binding enable}" Value="True"/>
  70. <Condition Binding="{Binding CurrentPM.Online}" Value="0"/>
  71. </MultiDataTrigger.Conditions>
  72. <Setter Property="IsEnabled" Value="True"/>
  73. </MultiDataTrigger>
  74. </Style.Triggers>
  75. </Style>
  76. </UserControl.Resources>
  77. <Canvas Width="600" Height="500">
  78. <Image Source="/EfemDualUI;component/Resources/images/metisPM.png" Canvas.Left="328" RenderTransformOrigin="0.5,0.5" Canvas.Top="215" Height="100" Visibility="{Binding IsPMBVisibility}" >
  79. <Image.RenderTransform>
  80. <TransformGroup>
  81. <ScaleTransform/>
  82. <SkewTransform/>
  83. <RotateTransform Angle="90"/>
  84. <TranslateTransform/>
  85. </TransformGroup>
  86. </Image.RenderTransform>
  87. </Image>
  88. <Image Source="/EfemDualUI;component/Resources/images/metisPM.png" Canvas.Left="-32" Canvas.Top="214" RenderTransformOrigin="0.5,0.5" Visibility="{Binding IsPMAVisibility}" Height="100" >
  89. <Image.RenderTransform>
  90. <TransformGroup>
  91. <ScaleTransform/>
  92. <SkewTransform/>
  93. <RotateTransform Angle="-90"/>
  94. <TranslateTransform/>
  95. </TransformGroup>
  96. </Image.RenderTransform>
  97. </Image>
  98. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp01.png" Canvas.Left="134" Canvas.Top="131" Height="260" Width="260"/>
  99. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="93" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="80" Canvas.Top="294">
  100. <Image.RenderTransform>
  101. <TransformGroup>
  102. <ScaleTransform/>
  103. <SkewTransform/>
  104. <RotateTransform Angle="270"/>
  105. <TranslateTransform X="48.036" Y="-36.036"/>
  106. </TransformGroup>
  107. </Image.RenderTransform>
  108. </Image>
  109. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="93" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="80" Canvas.Top="402">
  110. <!--Visibility="{Binding ALBVisibility}"-->
  111. <Image.RenderTransform>
  112. <TransformGroup>
  113. <ScaleTransform/>
  114. <SkewTransform/>
  115. <RotateTransform Angle="270"/>
  116. <TranslateTransform X="48.036" Y="-36.036"/>
  117. </TransformGroup>
  118. </Image.RenderTransform>
  119. </Image>
  120. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="93" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="343" Canvas.Top="211">
  121. <Image.RenderTransform>
  122. <TransformGroup>
  123. <ScaleTransform/>
  124. <SkewTransform/>
  125. <RotateTransform Angle="90"/>
  126. <TranslateTransform X="48.036" Y="-36.036"/>
  127. </TransformGroup>
  128. </Image.RenderTransform>
  129. </Image>
  130. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="93" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="343" Canvas.Top="319">
  131. <Image.RenderTransform>
  132. <TransformGroup>
  133. <ScaleTransform/>
  134. <SkewTransform/>
  135. <RotateTransform Angle="90"/>
  136. <TranslateTransform X="48.036" Y="-36.036"/>
  137. </TransformGroup>
  138. </Image.RenderTransform>
  139. </Image>
  140. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="93" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="159" Canvas.Top="131"/>
  141. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="93" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="277" Canvas.Top="131"/>
  142. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="94" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="198" Canvas.Top="431">
  143. <Image.RenderTransform>
  144. <TransformGroup>
  145. <ScaleTransform/>
  146. <SkewTransform/>
  147. <RotateTransform Angle="180"/>
  148. <TranslateTransform X="48.036" Y="-36.036"/>
  149. </TransformGroup>
  150. </Image.RenderTransform>
  151. </Image>
  152. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="94" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="306" Canvas.Top="431">
  153. <Image.RenderTransform>
  154. <TransformGroup>
  155. <ScaleTransform/>
  156. <SkewTransform/>
  157. <RotateTransform Angle="180"/>
  158. <TranslateTransform X="48.036" Y="-36.036"/>
  159. </TransformGroup>
  160. </Image.RenderTransform>
  161. </Image>
  162. <loadLockControls:LoadLockTopView Canvas.Left="163" Canvas.Top="387" Visibility="{Binding IsLLAVisibility}" />
  163. <loadLockControls:LoadLockTopView Canvas.Left="255" Canvas.Top="387" Visibility="{Binding IsLLBVisibility}" />
  164. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="94" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="163" Canvas.Top="490"/>
  165. <Image Source="/EfemDualUI;component/Themes/images/parts1/sp00.png" Visibility="Collapsed" Width="94" Height="8" RenderTransformOrigin="0.048,-0.25" Canvas.Left="271" Canvas.Top="490"/>
  166. <!--<Image Source="/EfemDualUI;component/Themes/images/parts1/ef01.png" Width="399" Height="120" Canvas.Left="69" Canvas.Top="490" RenderTransformOrigin="0.5,0.5">
  167. <Image.RenderTransform>
  168. <TransformGroup>
  169. <ScaleTransform/>
  170. <SkewTransform/>
  171. <RotateTransform Angle="180"/>
  172. <TranslateTransform/>
  173. </TransformGroup>
  174. </Image.RenderTransform>
  175. </Image>-->
  176. <!--<Image Source="/EfemDualUI;component/Themes/images/parts1/ef02.png" Width="52" Height="52" Canvas.Left="96" Canvas.Top="525.5"/>-->
  177. <!--<Image Source="/EfemDualUI;component/Themes/images/parts1/ef00.png" Width="92" Height="8" Canvas.Left="144" Canvas.Top="602"/>
  178. <Image Source="/EfemDualUI;component/Themes/images/parts1/ef00.png" Width="92" Height="8" Canvas.Left="244" Canvas.Top="602"/>
  179. <Image Source="/EfemDualUI;component/Themes/images/parts1/ef00.png" Width="92" Height="8" Canvas.Left="344" Canvas.Top="602"/>
  180. <Image Source="/EfemDualUI;component/Themes/images/parts1/ef03.png" Canvas.Left="147" Canvas.Top="605" Width="87" Height="88"/>
  181. <Image Source="/EfemDualUI;component/Themes/images/parts1/ef03.png" Canvas.Left="247" Canvas.Top="605" Width="87" Height="88"/>
  182. <Image Source="/EfemDualUI;component/Themes/images/parts1/ef03.png" Canvas.Left="347" Canvas.Top="605" Width="87" Height="88"/>-->
  183. <!--<local:ATMDualArmRobot RotateAngle="90" Canvas.Left="448.5" Canvas.Top="518.448" StationPosition="{Binding EfemStationPosition}" Wafer1="{Binding EfemRobotWafer1}" Wafer2="{Binding EfemRobotWafer2}" RobotTarget="{Binding EfemRobotBladeTarget}" ArmAExtended="{Binding EfemArmAExtended}" ArmBExtended="{Binding EfemArmBExtended}" Height="62" Width="259"></local:ATMDualArmRobot>-->
  184. <efemControls:WaferCtrl WaferData="{Binding PMAWafer2}" Visibility="{Binding IsPMAVisibility}" Width="66" Height="66" Canvas.Left="59" Canvas.Top="289"/>
  185. <efemControls:WaferCtrl WaferData="{Binding PMAWafer1}" Visibility="{Binding IsPMAVisibility}" Width="66" Height="66" Canvas.Left="59" Canvas.Top="175"/>
  186. <efemControls:WaferCtrl WaferData="{Binding PMBWafer2}" Visibility="{Binding IsPMBVisibility}" Width="66" Height="66" Canvas.Left="402" Canvas.Top="173" />
  187. <efemControls:WaferCtrl WaferData="{Binding PMBWafer1}" Visibility="{Binding IsPMBVisibility}" Width="66" Height="66" Canvas.Left="402" Canvas.Top="287" />
  188. <local:AtmRobot Canvas.Left="159" Canvas.Top="206" RobotMoveInfo="{Binding TmRobotMoveInfo}" Wafer1="{Binding TMRobotWafer2}" Wafer2="{Binding TMRobotWafer1}"/>
  189. <!--<singleArmRobot1:SingleArmRobot Canvas.Left="244" Canvas.Top="239"></singleArmRobot1:SingleArmRobot>-->
  190. <!--<parts:SlitValve x:Name="llaSlitValve" Width="45" Height="8" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding LLASlitValveOpenFeedback}" Canvas.Left="188" Canvas.Top="383"/>
  191. <parts:SlitValve x:Name="llbSlitValve" Width="41" Height="8" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding LLBSlitValveOpenFeedback}" Canvas.Left="285" Canvas.Top="383"/>
  192. <parts:SlitValve x:Name="llaSlitDoor" Width="49" Height="8" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding LLAIsDoorOpened}" Canvas.Left="188" Canvas.Top="465"/>
  193. <parts:SlitValve x:Name="llbSlitDoor" Width="45" Height="8" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding LLBIsDoorOpened}" Canvas.Left="281" Canvas.Top="465"/>-->
  194. <TextBlock Text="PMB 1" Style="{StaticResource Text_Online_PM2}" Visibility="{Binding IsPMBVisibility}" Canvas.Left="500" Canvas.Top="314"/>
  195. <TextBlock Text="PMB 2" Style="{StaticResource Text_Online_PM2}" Visibility="{Binding IsPMBVisibility}" Canvas.Left="500" Canvas.Top="196" RenderTransformOrigin="0.269,1.969"/>
  196. <TextBlock Text="PMA 1" Style="{StaticResource Text_Online_PM1}" Visibility="{Binding IsPMAVisibility}" Canvas.Left="-10" Canvas.Top="201"/>
  197. <TextBlock Text="PMA 2" Style="{StaticResource Text_Online_PM1}" Visibility="{Binding IsPMAVisibility}" Canvas.Left="-10" Canvas.Top="315"/>
  198. <TextBlock Text="LLA" Canvas.Left="137" Canvas.Top="421" Visibility="{Binding IsLLAVisibility}" />
  199. <TextBlock Text="LLB" Canvas.Left="350" Canvas.Top="416" Visibility="{Binding IsLLBVisibility}" />
  200. <UnitControls:Door Height="15" Canvas.Left="190" Canvas.Top="215" Width="66" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding PMASlitValveOpenFeedback1}">
  201. <UnitControls:Door.RenderTransform>
  202. <TransformGroup>
  203. <ScaleTransform ScaleY="-0.008" ScaleX="0.001"/>
  204. <SkewTransform AngleY="89.967" AngleX="89.396"/>
  205. <RotateTransform/>
  206. <TranslateTransform Y="-13.67" X="-84.579"/>
  207. </TransformGroup>
  208. </UnitControls:Door.RenderTransform>
  209. </UnitControls:Door>
  210. <UnitControls:Door Height="15" Canvas.Left="190" Canvas.Top="329" Width="66" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding PMASlitValveOpenFeedback2}">
  211. <UnitControls:Door.RenderTransform>
  212. <TransformGroup>
  213. <ScaleTransform ScaleY="-0.008" ScaleX="0.001"/>
  214. <SkewTransform AngleY="89.967" AngleX="89.396"/>
  215. <RotateTransform/>
  216. <TranslateTransform Y="-13.67" X="-84.579"/>
  217. </TransformGroup>
  218. </UnitControls:Door.RenderTransform>
  219. </UnitControls:Door>
  220. <UnitControls:Door Height="15" Canvas.Left="441" Canvas.Top="213" Width="66" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding PMBSlitValveOpenFeedback2}">
  221. <UnitControls:Door.RenderTransform>
  222. <TransformGroup>
  223. <ScaleTransform ScaleY="-0.008" ScaleX="0.001"/>
  224. <SkewTransform AngleY="89.967" AngleX="89.396"/>
  225. <RotateTransform/>
  226. <TranslateTransform Y="-13.67" X="-84.579"/>
  227. </TransformGroup>
  228. </UnitControls:Door.RenderTransform>
  229. </UnitControls:Door>
  230. <UnitControls:Door Height="15" Canvas.Left="441" Canvas.Top="327" Width="66" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding PMBSlitValveOpenFeedback1}">
  231. <UnitControls:Door.RenderTransform>
  232. <TransformGroup>
  233. <ScaleTransform ScaleY="-0.008" ScaleX="0.001"/>
  234. <SkewTransform AngleY="89.967" AngleX="89.396"/>
  235. <RotateTransform/>
  236. <TranslateTransform Y="-13.67" X="-84.579"/>
  237. </TransformGroup>
  238. </UnitControls:Door.RenderTransform>
  239. </UnitControls:Door>
  240. <UnitControls:Door Height="14" Canvas.Left="259" Canvas.Top="142" Width="66" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding PMCSlitValveOpenFeedback1}">
  241. <UnitControls:Door.RenderTransform>
  242. <TransformGroup>
  243. <ScaleTransform ScaleY="-0.008" ScaleX="0.001"/>
  244. <SkewTransform AngleY="89.967" AngleX="89.396"/>
  245. <RotateTransform Angle="-90"/>
  246. <TranslateTransform Y="-13.67" X="-84.579"/>
  247. </TransformGroup>
  248. </UnitControls:Door.RenderTransform>
  249. </UnitControls:Door>
  250. <UnitControls:Door Height="14" Canvas.Left="373" Canvas.Top="142" Width="66" RenderTransformOrigin="0.5,0.5" IsDoorOpen="{Binding PMCSlitValveOpenFeedback2}">
  251. <UnitControls:Door.RenderTransform>
  252. <TransformGroup>
  253. <ScaleTransform ScaleY="-0.008" ScaleX="0.001"/>
  254. <SkewTransform AngleY="89.967" AngleX="89.396"/>
  255. <RotateTransform Angle="-89.927"/>
  256. <TranslateTransform Y="-13.67" X="-84.579"/>
  257. </TransformGroup>
  258. </UnitControls:Door.RenderTransform>
  259. </UnitControls:Door>
  260. <Image Source="/EfemDualUI;component/Resources/Images/metisPM.png" Canvas.Left="150" RenderTransformOrigin="0.5,0.5" Canvas.Top="30" Height="100" Visibility="{Binding IsPMCVisibility}" >
  261. <Image.RenderTransform>
  262. <TransformGroup>
  263. <ScaleTransform/>
  264. <SkewTransform/>
  265. <RotateTransform Angle="-0.143"/>
  266. <TranslateTransform/>
  267. </TransformGroup>
  268. </Image.RenderTransform>
  269. </Image>
  270. <efemControls:WaferCtrl WaferData="{Binding PMCWafer2}" Visibility="{Binding IsPMCVisibility}" Width="66" Height="66" Canvas.Left="174" Canvas.Top="49" />
  271. <efemControls:WaferCtrl WaferData="{Binding PMCWafer1}" Visibility="{Binding IsPMCVisibility}" Width="66" Height="66" Canvas.Left="289" Canvas.Top="49" />
  272. <TextBlock Text="PMC 2" Style="{StaticResource Text_Online_PM2}" Visibility="{Binding IsPMCVisibility}" Canvas.Left="187" Canvas.Top="13" RenderTransformOrigin="0.269,1.969"/>
  273. <TextBlock Text="PMC 1" Style="{StaticResource Text_Online_PM2}" Visibility="{Binding IsPMCVisibility}" Canvas.Left="304" Canvas.Top="13"/>
  274. </Canvas>
  275. </UserControl>