LGES-2170-ACW_CCW-Welder/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBox.xaml
2026-04-09 15:42:59 +09:00

334 lines
24 KiB
XML

<UserControl x:Class="WeldingCommon.Views.UCScannerObjectTeachingControlBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WeldingCommon.Views"
xmlns:behavior="http://schemas.microsoft.com/xaml/behaviors"
xmlns:view="clr-namespace:Aurora.View;assembly=Aurora"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:aurorauicomponent="clr-namespace:AuroraUIComponent;assembly=AuroraUIComponent"
xmlns:usercontrols="clr-namespace:AuroraUIComponent.UserControls;assembly=AuroraUIComponent"
d:DataContext="{d:DesignInstance Type=local:UCScannerObjectTeachingControlBoxViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="300" x:Name="uc">
<UserControl.Resources>
<view:BoolConverter x:Key="convStatusColor" TrueValue="ForestGreen" FalseValue="#3E3E42"/>
<view:BoolConverter x:Key="convSelectedScoutType" TrueValue="Scout Normal" FalseValue="Scout Flying Vision" />
<view:BoolConverter x:Key="convTrueVisible" TrueValue="Visible" FalseValue="Collapsed"/>
<view:BoolConverter x:Key="convFalseVisible" TrueValue="Collapsed" FalseValue="Visible"/>
</UserControl.Resources>
<behavior:Interaction.Triggers>
<behavior:PropertyChangedTrigger Binding="{Binding IsVisible, ElementName=uc}">
<behavior:InvokeCommandAction Command="{Binding CMD_VisibleChanged}" CommandParameter="{Binding IsVisible, ElementName=uc}"/>
</behavior:PropertyChangedTrigger>
</behavior:Interaction.Triggers>
<Grid>
<GroupBox Header="Control">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<!-- 26.04.09 JOG 영역 그룹박스 추가 -->
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<GroupBox Header="Scout Image" Grid.Row="0" Margin="0 3 0 0" Style="{StaticResource StGroupBox2nd}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border Grid.Row="0" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Selected Type" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Row="0" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding IsSelectedScoutNormal, Converter={StaticResource convSelectedScoutType}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
<Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Height="50" Margin="0 5 0 0" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convTrueVisible}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunScoutNormal}" Content="Run Scout Normal" IsEnabled="{Binding IsSequenceRunning_ScoutNormal, Converter={StaticResource convReverse}}"/>
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopScoutNormal}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_ScoutNormal}"/>
</Grid>
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Height="50" Margin="0" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convFalseVisible}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunScoutFlyingVision}" Content="Run Flying Vision" IsEnabled="{Binding IsSequenceRunning_ScoutFlyingVision, Converter={StaticResource convReverse}}"/>
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopScoutFlyingVision}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_ScoutFlyingVision}"/>
</Grid>
</Grid>
</GroupBox>
<GroupBox Header="Laser Shot" Grid.Row="1" Margin="0 5 0 0" Style="{StaticResource StGroupBox2nd}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GroupBox Header="Laser Control" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 3 0 0" Style="{StaticResource StGroupBox4th}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Guid Beam Status" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Row="0" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding IsGuidBeam}" Background="{Binding IsGuidBeam, Converter={StaticResource convStatusColor}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
<Button Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="5 1 0 0" Command="{Binding CMD_LaserGuideBeam}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
<StackPanel Orientation="Horizontal">
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/guide.png"/>
<TextBlock Text="Guid Beam"/>
</StackPanel>
</Button>
<Border Grid.Row="2" Grid.Column="0" MinHeight="30" Margin="0 10 0 0">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Laser Ready Status" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Row="2" Grid.Column="1" BorderThickness="1" BorderBrush="Gray" Margin="0 10 0 0">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding IsLaserReady}" Background="{Binding IsLaserReady, Converter={StaticResource convStatusColor}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
<Button Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="5 1 0 0" Command="{Binding CMD_LaserReadyCheck}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
<StackPanel Orientation="Horizontal">
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/ready.png"/>
<TextBlock Text="Laser Ready"/>
</StackPanel>
</Button>
</Grid>
</GroupBox>
<GroupBox Header="Object Select" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 3 0 0" Style="{StaticResource StGroupBox4th}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<mah:ToggleSwitch Grid.Row="0" HorizontalAlignment="Center" FontSize="12" FontWeight="Bold"
IsOn="{Binding IsObjectSelectAll}"
OffContent="Selected Object"
OnContent="All Object"/>
</Grid>
</GroupBox>
<GroupBox Header="가공 Select" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 3 0 0" Style="{StaticResource StGroupBox4th}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<!-- MOTF 대면적 가공 토글 -->
<mah:ToggleSwitch Grid.Row="0" HorizontalAlignment="Center" FontSize="12" FontWeight="Bold"
IsOn="{Binding IsUseLargeMOTF}"
OffContent="일반 가공"
OnContent="MOTF 대면적 가공"/>
<!-- 페이지 N개 설정 -->
<Grid Grid.Row="1" Margin="0 4 0 0" IsEnabled="{Binding IsUseLargeMOTF}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="5 0" FontSize="11" Foreground="#FFBBBBBB"
FontWeight="Bold" Text="페이지 N개"
VerticalAlignment="Center"/>
<TextBox Grid.Column="1" Margin="2" FontSize="11"
Text="{Binding LargeMOTFPageCount, UpdateSourceTrigger=PropertyChanged}"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
<TextBlock Grid.Column="2" Margin="3 0" FontSize="11" Foreground="#FFBBBBBB"
Text="page" VerticalAlignment="Center"/>
<Button Grid.Column="3" Margin="2" FontSize="11" FontWeight="Bold"
Style="{StaticResource StButtonAccentBlue}"
Command="{Binding CMD_ApplyPageCount}"
Content="적용"/>
</Grid>
<!-- Start Set / End Set -->
<Grid Grid.Row="2" Height="40" Margin="0 4 0 0" IsEnabled="{Binding IsUseLargeMOTF}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Height="auto" FontWeight="Bold"
Style="{StaticResource StButtonAccentBlue}"
Command="{Binding CMD_LargeMOTFStartSet}"
Content="Start Set"/>
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Height="auto" FontWeight="Bold"
Style="{StaticResource StButtonAccentBlue}"
Command="{Binding CMD_LargeMOTFEndSet}"
Content="End Set"/>
</Grid>
<!-- Offset X / Y -->
<Grid Grid.Row="3" Margin="0 4 0 0" IsEnabled="{Binding IsUseLargeMOTF}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="3 0" FontSize="11" Foreground="#FFBBBBBB"
FontWeight="Bold" Text="Offset X"
VerticalAlignment="Center" HorizontalAlignment="Right"/>
<Border Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
<TextBlock Margin="3 0" FontSize="11" Foreground="#FFBBBBBB"
Text="{Binding LargeMOTFOffsetX, StringFormat={}{0:F3}}"
VerticalAlignment="Center"/>
</Border>
<TextBlock Grid.Column="2" Margin="3 0" FontSize="11" Foreground="#FFBBBBBB"
FontWeight="Bold" Text="Offset Y"
VerticalAlignment="Center" HorizontalAlignment="Right"/>
<Border Grid.Column="3" BorderThickness="1" BorderBrush="Gray">
<TextBlock Margin="3 0" FontSize="11" Foreground="#FFBBBBBB"
Text="{Binding LargeMOTFOffsetY, StringFormat={}{0:F3}}"
VerticalAlignment="Center"/>
</Border>
</Grid>
</Grid>
</GroupBox>
<Grid Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 5 0 0" Height="50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunTeachingRun}" Content="Run Welding" IsEnabled="{Binding IsSequenceRunning_TeachingRun, Converter={StaticResource convReverse}}"/>
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopTeachingRun}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_TeachingRun}"/>
</Grid>
</Grid>
</GroupBox>
<GroupBox Header="Import Object From DXF" Grid.Row="2" Margin="0 5 0 0" Style="{StaticResource StGroupBox2nd}">
<Button Margin="5" Command="{Binding CMD_ImportObjectFromDXF}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
<StackPanel Orientation="Horizontal">
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/dxf.png"/>
<TextBlock Text="Select Import File"/>
</StackPanel>
</Button>
</GroupBox>
<!-- 26.04.09 NDY [Stage X Jog] GroupBox 추가 (Grid.Row="3") -->
<GroupBox Header="Stage X Jog" Grid.Row="3" Margin="0 5 0 0" Style="{StaticResource StGroupBox2nd}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<!-- 26.04.09 NDY [Stage X Jog] 속도 선택 행 -->
<Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Height="30" Margin="0 3 0 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="2" FontSize="11" FontWeight="Bold"
Command="{Binding CMD_StageXJogSpeed}" CommandParameter="L" Content="L"
IsEnabled="{Binding IsJogSpeedL, Converter={StaticResource convReverse}}"
Background="{Binding IsJogSpeedL, Converter={StaticResource convStatusColor}}"/>
<Button Grid.Column="1" Margin="2" FontSize="11" FontWeight="Bold"
Command="{Binding CMD_StageXJogSpeed}" CommandParameter="M" Content="M"
IsEnabled="{Binding IsJogSpeedM, Converter={StaticResource convReverse}}"
Background="{Binding IsJogSpeedM, Converter={StaticResource convStatusColor}}"/>
<Button Grid.Column="2" Margin="2" FontSize="11" FontWeight="Bold"
Command="{Binding CMD_StageXJogSpeed}" CommandParameter="H" Content="H"
IsEnabled="{Binding IsJogSpeedH, Converter={StaticResource convReverse}}"
Background="{Binding IsJogSpeedH, Converter={StaticResource convStatusColor}}"/>
<TextBlock Grid.Column="3" Margin="5 0" FontSize="11" Foreground="#FFBBBBBB"
Text="{Binding StageXJogSpeedValue, StringFormat={}{0:F0} mm/s}"
VerticalAlignment="Center"/>
</Grid>
<!-- Position X 표시 -->
<Border Grid.Row="1" Grid.Column="0" MinHeight="28">
<TextBlock Margin="5 0" FontSize="12" Foreground="#FFBBBBBB"
FontWeight="Bold" Text="StageX Pos"
VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Row="1" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock Margin="5 0" FontSize="12" Foreground="#FFBBBBBB"
FontWeight="Bold"
Text="{Binding StageXPos, StringFormat={}{0:F3}}"
VerticalAlignment="Center" HorizontalAlignment="Left"/>
</StackPanel>
</Border>
<!-- X- Stop X+ 버튼 -->
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2"
Height="50" Margin="0 5 0 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Margin="3"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Height="auto" FontWeight="Bold"
Style="{StaticResource StButtonAccentBlue}"
Command="{Binding CMD_StageXJogMinus}"
Content="X -"/>
<Button Grid.Column="1" Margin="3"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Height="auto" FontWeight="Bold"
Style="{StaticResource StButtonAccentBlue}"
Command="{Binding CMD_StageXJogStop}"
Content="Stop"/>
<Button Grid.Column="2" Margin="3"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Height="auto" FontWeight="Bold"
Style="{StaticResource StButtonAccentBlue}"
Command="{Binding CMD_StageXJogPlus}"
Content="X +"/>
</Grid>
</Grid>
</GroupBox>
</Grid>
</GroupBox>
</Grid>
</UserControl>