SHARP_CLAS_UI/300.Etc_Screen/Form_Scanner_View.cs
@@ -127,6 +127,44 @@
                        tb_Waveform_Style.Text = ((Scanner_Recipe.Ablation_Style)_Parent._equip.Cur_Main_Recipe.process_info.Waveform).ToString();
                    }
                    bool isInPosition = false;
                    if (_Parent._equip.Cur_Main_Recipe != null && _Parent._equip.Cur_Main_Recipe.process_info != null && _Parent._equip.Cur_Main_Recipe.panel_type_info != null)
                    {
                        double scannerA1Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_X_A1 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_A1;
                        double scannerA2Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_X_A2 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_A2;
                        double scannerB1Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_X_B1 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_B1;
                        double scannerB2Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_X_B2 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_B2;
                        double stageA1Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_Y_A1 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_A1;
                        double stageA2Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_Y_A2 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_A2;
                        double stageB1Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_Y_B1 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_B1;
                        double stageB2Position = _Parent._equip.Cur_Main_Recipe.process_info.Scanner_Y_B2 + _Parent._equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_B2;
                        object value;
                        _Parent._equip.sm.Get_Value(RS_Automation_Motor_Address.Ablation_X_Actual_Position, out value);
                        double scannerPosition = double.Parse($"{value}");
                        _Parent._equip.sm.Get_Value(RS_Automation_Motor_Address.Ablation_Y_1_Actual_Position, out value);
                        double stageAPosition = double.Parse($"{value}");
                        _Parent._equip.sm.Get_Value(RS_Automation_Motor_Address.Ablation_Y_2_Actual_Position, out value);
                        double stageBPosition = double.Parse($"{value}");
                        isInPosition |= (scannerA1Position - 10 <= scannerPosition && scannerPosition <= scannerA1Position + 10) && (stageA1Position - 10 <= stageAPosition && stageAPosition <= stageA1Position + 10);
                        isInPosition |= (scannerA2Position - 10 <= scannerPosition && scannerPosition <= scannerA2Position + 10) && (stageA2Position - 10 <= stageAPosition && stageAPosition <= stageA2Position + 10);
                        isInPosition |= (scannerB1Position - 10 <= scannerPosition && scannerPosition <= scannerB1Position + 10) && (stageB1Position - 10 <= stageBPosition && stageBPosition <= stageB1Position + 10);
                        isInPosition |= (scannerB2Position - 10 <= scannerPosition && scannerPosition <= scannerB2Position + 10) && (stageB2Position - 10 <= stageBPosition && stageBPosition <= stageB2Position + 10);
                        isInPosition |= _Parent._equip.process.ablation.Get_Is_Position_X_Power_Meter() && _Parent._equip.process.ablation.Get_Is_Position_Z_Power_Meter();
                    }
                    else
                    {
                        isInPosition |= _Parent._equip.process.ablation.Get_Is_Position_X_Power_Meter() && _Parent._equip.process.ablation.Get_Is_Position_Z_Power_Meter();
                    }
                    foreach (Control control in Controls)
                    {
                        control.Enabled = isInPosition;
                    }
                    TimeSpan ts = DateTime.Now - dt;
                }
                catch (Exception ex)