Compare commits
48 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5da026accb | |||
| 5396796d28 | |||
| ae18c7f027 | |||
| 54122d82e6 | |||
| f85e97a126 | |||
| 06654d923c | |||
| ce1c6fcf02 | |||
| da11ec0a11 | |||
| 52688ed0da | |||
| 60eda04669 | |||
| b95dd8f41d | |||
| 4b2351c20a | |||
| 988743187b | |||
| 2c0afccbe3 | |||
| a5d6d34664 | |||
| 27b13292cf | |||
| 7b9d99a9c6 | |||
| 1e2b4bed27 | |||
| 4ecf7980ce | |||
| 82157d3b6e | |||
| 10cb8f64f5 | |||
| 6dbf4f5ccb | |||
| 4ba0fe2520 | |||
| a55ab4f83d | |||
| 419776c89f | |||
| fd89a6cf3b | |||
| b505b79d9a | |||
| b1313ddb55 | |||
| f3889ede24 | |||
| 5ca010ae4a | |||
| 391d25507e | |||
| c954f364e3 | |||
| 1ab6d2746f | |||
| 41de0516c8 | |||
| dec4c0d312 | |||
| 834f3afe1c | |||
| e6c95323fb | |||
| fa6e5b520f | |||
| c475f7dc12 | |||
| 0151cd8f9e | |||
| 75e3729216 | |||
| 59e3ae5841 | |||
| 58de5d4077 | |||
| b6beef668d | |||
| 3fae33404b | |||
| 07d8145d57 | |||
| 8d363b8b06 | |||
| 0eaebd5aad |
+19
-2
@@ -1,4 +1,5 @@
|
||||
Imports EgtUILib
|
||||
Imports System.Windows.Forms.Integration
|
||||
Imports EgtUILib
|
||||
|
||||
Friend Module CamAuto
|
||||
|
||||
@@ -29,7 +30,7 @@ Friend Module CamAuto
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Friend Function AddWaterJetMachining( nOperId As Integer, ByRef nWarn As Integer) As Boolean
|
||||
Friend Function AddWaterJetMachining(nOperId As Integer, ByRef nWarn As Integer) As Boolean
|
||||
EgtLuaCreateGlobTable("CAM")
|
||||
SetLuaStandardCamParams()
|
||||
EgtLuaSetGlobIntVar("CAM.OPERID", nOperId)
|
||||
@@ -163,6 +164,22 @@ Friend Module CamAuto
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Friend Function ResetAllRawPart() As Boolean
|
||||
Dim nPhase As Integer = 1
|
||||
Dim nOtherRaw As Integer = EgtGetFirstRawPart()
|
||||
While nOtherRaw <> GDB_ID.NULL
|
||||
' se il pezzo non appartiene alla prima fase allora viene eliminato
|
||||
If Not EgtVerifyRawPartPhase(nOtherRaw, nPhase) Then
|
||||
Dim NextRaw As Integer = EgtGetNextRawPart(nOtherRaw)
|
||||
EgtRemoveRawPart(nOtherRaw)
|
||||
nOtherRaw = NextRaw
|
||||
Else
|
||||
nOtherRaw = EgtGetNextRawPart(nOtherRaw)
|
||||
End If
|
||||
End While
|
||||
Return True
|
||||
End Function
|
||||
|
||||
' verifico che il contorno passato non sia stato separato
|
||||
Friend Function VerifyOutLoopIsClosed(nIdLayerOutLoop As Integer)
|
||||
Dim nIdMy As Integer = EgtGetFirstInGroup(nIdLayerOutLoop)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="PhotoBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource PhotoImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
<Image Name="PhotoIMG" Source="{DynamicResource PhotoImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="RawPartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource RawPartImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
|
||||
+123
-120
@@ -7,164 +7,167 @@
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="853.3" d:DesignWidth="1280">
|
||||
|
||||
<!-- Definizione della SplitPage -->
|
||||
<Grid Name="SplitPageGrid" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
<ColumnDefinition Width="12*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="8*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!-- Definizione della SplitPage -->
|
||||
<Grid Name="SplitPageGrid" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
<ColumnDefinition Width="12*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="8*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--Upper button grid-->
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="4*"/>
|
||||
<ColumnDefinition Width="8*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!--Griglia per oscurare i bottoni della pagina sottostante-->
|
||||
<Grid Background="{DynamicResource OmagCut_Gray}">
|
||||
<!--Upper button grid-->
|
||||
<Grid Grid.Column="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="4*"/>
|
||||
<ColumnDefinition Width="8*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="PrevBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
<Image Source="{DynamicResource NumericKeyboardArrowImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
<!--Griglia per oscurare i bottoni della pagina sottostante-->
|
||||
<Grid Background="{DynamicResource OmagCut_Gray}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="PrevBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
<Image Source="{DynamicResource NumericKeyboardArrowImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="NextBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
<Image Source="{DynamicResource NumericKeyboardArrowImg}" Style="{StaticResource OmagCut_ButtonIcon}" RenderTransformOrigin="0.5,0.5">
|
||||
<Image.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="180"/>
|
||||
</TransformGroup>
|
||||
</Image.RenderTransform>
|
||||
</Image>
|
||||
</Button>
|
||||
<Button Name="ModifyBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<!--Left Button Grid-->
|
||||
<Grid Grid.RowSpan="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="2*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Button Name="TopLBtn" Grid.Column="0" Grid.Row="1"
|
||||
Style="{DynamicResource OmagCut_TopGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource TopLeftImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="NextBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
<Image Source="{DynamicResource NumericKeyboardArrowImg}" Style="{StaticResource OmagCut_ButtonIcon}" RenderTransformOrigin="0.5,0.5">
|
||||
<Image.RenderTransform>
|
||||
<TransformGroup>
|
||||
<RotateTransform Angle="180"/>
|
||||
</TransformGroup>
|
||||
</Image.RenderTransform>
|
||||
</Image>
|
||||
<Button Name="UpBtn" Grid.Column="1" Grid.Row="1"
|
||||
Style="{DynamicResource OmagCut_TopGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource UpArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="ModifyBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<!--Left Button Grid-->
|
||||
<Grid Grid.RowSpan="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="2*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Button Name="TopLBtn" Grid.Column="0" Grid.Row="1"
|
||||
<Button Name="TopRBtn" Grid.Column="2" Grid.Row="1"
|
||||
Style="{DynamicResource OmagCut_TopGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource TopLeftImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="UpBtn" Grid.Column="1" Grid.Row="1"
|
||||
Style="{DynamicResource OmagCut_TopGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource UpArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="TopRBtn" Grid.Column="2" Grid.Row="1"
|
||||
Style="{DynamicResource OmagCut_TopGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource TopRightImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="LeftBtn" Grid.Column="0" Grid.Row="2"
|
||||
<Image Source="{DynamicResource TopRightImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="LeftBtn" Grid.Column="0" Grid.Row="2"
|
||||
Style="{DynamicResource OmagCut_LeftGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource LeftArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<EgtWPFLib:EgtTextBox Name="StepMoveTxBx" Grid.Column="1" Grid.Row="2" Width="50"
|
||||
<Image Source="{DynamicResource LeftArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<EgtWPFLib:EgtTextBox Name="StepMoveTxBx" Grid.Column="1" Grid.Row="2" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
<Button Name="ResetBtn" Grid.Column="1" Grid.Row="2"
|
||||
<Button Name="ResetBtn" Grid.Column="1" Grid.Row="2"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}">
|
||||
</Button>
|
||||
<Button Name="RightBtn" Grid.Column="2" Grid.Row="2"
|
||||
</Button>
|
||||
<Button Name="RightBtn" Grid.Column="2" Grid.Row="2"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource RightArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="BottomLBtn" Grid.Column="0" Grid.Row="3"
|
||||
<Image Source="{DynamicResource RightArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="BottomLBtn" Grid.Column="0" Grid.Row="3"
|
||||
Style="{DynamicResource OmagCut_BottomGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource BottomLeftImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="DownBtn" Grid.Column="1" Grid.Row="3"
|
||||
<Image Source="{DynamicResource BottomLeftImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="DownBtn" Grid.Column="1" Grid.Row="3"
|
||||
Style="{DynamicResource OmagCut_BottomGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource DownArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="BottomRBtn" Grid.Column="2" Grid.Row="3"
|
||||
<Image Source="{DynamicResource DownArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="BottomRBtn" Grid.Column="2" Grid.Row="3"
|
||||
Style="{DynamicResource OmagCut_BottomGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource BottomRightImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<Image Source="{DynamicResource BottomRightImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="RotateCounterClockwiseBtn" Grid.Column="0" Grid.Row="4"
|
||||
<Button Name="RotateCounterClockwiseBtn" Grid.Column="0" Grid.Row="4"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource CounterClockwiseRotateImg}" Width="64" Height="65" HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center" />
|
||||
</Button>
|
||||
</Button>
|
||||
|
||||
<Grid Name="RotationAngle" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<EgtWPFLib:EgtTextBox Name="RotationAngleTxBx" Width="50" IsLength="False"
|
||||
<Grid Name="RotationAngle" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<EgtWPFLib:EgtTextBox Name="RotationAngleTxBx" Width="50" IsLength="False"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
<TextBlock Grid.Column="1" FontSize="30" Margin="2,-5,0,0"
|
||||
<TextBlock Grid.Column="1" FontSize="30" Margin="2,-5,0,0"
|
||||
Text="°"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<Button Name="RotateClockwiseBtn" Grid.Column="2" Grid.Row="4"
|
||||
<Button Name="RotateClockwiseBtn" Grid.Column="2" Grid.Row="4"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource ClockwiseRotateImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||
<Image Source="{DynamicResource ClockwiseRotateImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center" />
|
||||
</Button>
|
||||
</Button>
|
||||
|
||||
|
||||
<Button Name="RemovePartBtn" Grid.ColumnSpan="2" Grid.Row="6"
|
||||
<!--Gestione sfridi-->
|
||||
<Button Name="RemovePartBtn" Grid.ColumnSpan="2" Grid.Row="6"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
<Button Name="ScrapsBtn" Grid.Column="3" Grid.Row="6"
|
||||
<Button Name="ScrapsBtn" Grid.Column="3" Grid.Row="6"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
<!--Gestione scarico pezzi-->
|
||||
<Button Name="UnloadPartsBtn" Grid.ColumnSpan="2" Grid.Row="7"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
<Grid Grid.Row="7" Grid.ColumnSpan="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
<!--Lower button grid, sfondo grigio per coprire i bottoni della pagina sottostante-->
|
||||
<Grid Grid.Column="1" Grid.Row="2" Background="{DynamicResource OmagCut_Gray}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
<!--Lower button grid, sfondo grigio per coprire i bottoni della pagina sottostante-->
|
||||
<Grid Grid.Column="1" Grid.Row="2" Background="{DynamicResource OmagCut_Gray}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<!-- Inserimento della pausa durante il movimento sulla tavola di scarico-->
|
||||
<Button Name="PauseBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
<Image Source="{DynamicResource Pausa-ON_OFFImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
</UserControl>
|
||||
|
||||
+316
-73
@@ -1,4 +1,5 @@
|
||||
Imports EgtUILib
|
||||
Imports System.Windows.Forms.Integration
|
||||
Imports EgtUILib
|
||||
|
||||
Public Class MoveRawPartPage
|
||||
' Riferimento alla MainWindow
|
||||
@@ -35,12 +36,16 @@ Public Class MoveRawPartPage
|
||||
Private m_ScrapsVisibility As Visibility = Visibility.Visible
|
||||
Private m_CurrRawOnVacuum As Integer = GDB_ID.NULL
|
||||
|
||||
' definisce se è stata inserito uno scarico
|
||||
Private m_IsCurrPhaseUnloaded As Boolean = False
|
||||
|
||||
Private Sub MoveRawPartPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||
' Assegno testi
|
||||
RemovePartBtn.Content = EgtMsg(MSG_MOVERAWPAGEUC + 1) 'Rimuovi
|
||||
ModifyBtn.Content = EgtMsg(MSG_SPLITPAGEUC + 17) 'Modifica
|
||||
ResetBtn.Content = EgtMsg(MSG_NESTPAGEUC + 6) 'Reset
|
||||
ScrapsBtn.Content = "Add Scraps"
|
||||
UnloadPartsBtn.Content = "Move part"
|
||||
End Sub
|
||||
|
||||
Private Sub MoveRawPartPage_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
|
||||
@@ -60,7 +65,12 @@ Public Class MoveRawPartPage
|
||||
End If
|
||||
' Deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
' Recupero i tagli allungati prima definiti
|
||||
' resetto variabili di navigazione nelle fasi
|
||||
m_bPrev = False
|
||||
m_bToNext = False
|
||||
|
||||
'---------------------------- CREATE NEW PHASE ----------------------------
|
||||
' Recupero i tagli ABILITATI prima definiti
|
||||
Dim Cuts(0) As Integer
|
||||
m_SplitPage.GetEnabledCuts(Cuts)
|
||||
' Fase precedente
|
||||
@@ -69,11 +79,19 @@ Public Class MoveRawPartPage
|
||||
Dim vNewRaws As New List(Of Integer)
|
||||
If Not m_SplitPage.m_bShow Then
|
||||
SplitRawParts(nPrevPhase, Cuts, vNewRaws)
|
||||
m_IsCurrPhaseUnloaded = False
|
||||
Else
|
||||
EgtSetCurrPhase(nPrevPhase + 1)
|
||||
nPrevPhase = nPrevPhase + 1
|
||||
EgtSetCurrPhase(nPrevPhase)
|
||||
HideAllMachinings()
|
||||
' verifico se la fase corrente è di tipo scarico frontale
|
||||
m_nCurrDisposition = EgtGetPhaseDisposition(nPrevPhase)
|
||||
If IsDispUnloadOnAuxTab(m_nCurrDisposition) Then
|
||||
m_SplitPage.m_bOnAuxTab = True
|
||||
End If
|
||||
End If
|
||||
m_nCurrPhase = EgtGetCurrPhase()
|
||||
'---------------------------- CREATE NEW PHASE ----------------------------
|
||||
|
||||
'---------------------------- SCRAPS ----------------------------
|
||||
' gestione visualizzazione del comando "Scraps"
|
||||
@@ -101,14 +119,19 @@ Public Class MoveRawPartPage
|
||||
End If
|
||||
'---------------------------- SCRAPS ----------------------------
|
||||
|
||||
'---------------------------- AUX TABLE ----------------------------
|
||||
' Se movimento pezzi finale, sistemazioni per tavolo ausiliario
|
||||
If m_SplitPage.m_bOnAuxTab Then
|
||||
' assegnazione delle info tavola ausiliaria alla dispozione corrente
|
||||
If m_SplitPage.m_bOnAuxTab And m_SplitPage.m_bEnableOnAuxTab Then
|
||||
' assegnazione delle info tavola ausiliaria alla dispozione corrente (Spostato nella funzione Refresh)
|
||||
SetAuxTabInCurrDisposition()
|
||||
UnloadPartsBtn.Content = "Go to MOVE part"
|
||||
' altrimenti, aggiorno visualizzazione
|
||||
Else
|
||||
ElseIf Not m_SplitPage.m_bOnAuxTab And m_SplitPage.m_bEnableOnAuxTab Then
|
||||
EgtDraw()
|
||||
UnloadPartsBtn.Content = "Go to UNLOAD part"
|
||||
End If
|
||||
'---------------------------- AUX TABLE ----------------------------
|
||||
|
||||
' Carico i parametri di movimento
|
||||
m_dStep = GetPrivateProfileDouble(S_RAWMOVE, K_RAWSTEP, 50, m_MainWindow.GetIniFile())
|
||||
' Ricavo la lunghezza del baffo di taglio
|
||||
@@ -167,6 +190,30 @@ Public Class MoveRawPartPage
|
||||
|
||||
' aggiorno il messaggio del comando per gestire gli sfridi
|
||||
VerifyIsNewScrap(m_CurrRawOnVacuum)
|
||||
' aggiorno la visibilità dei comandi
|
||||
RefreshVisibility()
|
||||
' salvo l'idice della fase corrente
|
||||
m_nCurrDisposition = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||
' Abilitazione bottone modifica
|
||||
ModifyBtn.IsEnabled = m_SplitPage.m_bShow
|
||||
' gestione abilitazione altri bottoni
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
' Gestione di visualizzazione dei comandi per il movimento dei pezzi
|
||||
Private Sub RefreshVisibility()
|
||||
' Aggiorno visulizzazione comando per passare alla pagina di scarico
|
||||
If Not m_SplitPage.m_bEnableOnAuxTab Then
|
||||
UnloadPartsBtn.Visibility = Visibility.Hidden
|
||||
Else
|
||||
UnloadPartsBtn.Visibility = Visibility.Visible
|
||||
If m_SplitPage.m_bOnAuxTab Then
|
||||
UnloadPartsBtn.Content = "Go to MOVE part"
|
||||
' altrimenti, aggiorno visualizzazione
|
||||
Else
|
||||
UnloadPartsBtn.Content = "Go to UNLOAD part"
|
||||
End If
|
||||
End If
|
||||
' Aggiorno interfaccia per taglio perpendicolare
|
||||
If m_bByHand Then
|
||||
UpBtn.Visibility = Windows.Visibility.Visible
|
||||
@@ -222,12 +269,6 @@ Public Class MoveRawPartPage
|
||||
ResetBtn.Visibility = Windows.Visibility.Visible
|
||||
ScrapsBtn.Visibility = Windows.Visibility.Hidden
|
||||
End If
|
||||
' salvo l'idice della fase corrente
|
||||
m_nCurrDisposition = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||
' Abilitazione bottone modifica
|
||||
ModifyBtn.IsEnabled = m_SplitPage.m_bShow
|
||||
' gestione abilitazione altri bottoni
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
Private Sub SetAuxTabInCurrDisposition()
|
||||
@@ -292,12 +333,12 @@ Public Class MoveRawPartPage
|
||||
EgtSetStatus(nId, GDB_ST.ON_)
|
||||
' prima di rilasciare il pezzo verifico che non vada in collisione con altri pezzi sulla tavola (evito il controllo se ultima fase)
|
||||
If VerifyCollisionWithOtherRawPart(nId) Then
|
||||
' mantengo la selezione del pezzo
|
||||
EgtSetStatus(nId, GDB_ST.SEL)
|
||||
m_CurrProjPage.SetErrorMessage("Collisione pezzi")
|
||||
Else
|
||||
' Se con ventose, le nascondo
|
||||
If Not m_bByHand Then EgtSetStatus(GetVacuumId(), GDB_ST.OFF)
|
||||
' mantengo la selezione del pezzo
|
||||
EgtSetStatus(nId, GDB_ST.SEL)
|
||||
m_CurrProjPage.SetErrorMessage("Collisione pezzi")
|
||||
Else
|
||||
' Se con ventose, le nascondo
|
||||
If Not m_bByHand Then EgtSetStatus(GetVacuumId(), GDB_ST.OFF)
|
||||
End If
|
||||
Else
|
||||
|
||||
@@ -329,7 +370,15 @@ Public Class MoveRawPartPage
|
||||
VacuumCups.SetWeightInformation(AverageDensity, MaxSinglePlugger, MaxDoublePlugger)
|
||||
VacuumCups.SetRotationForExtraStrokeY(GetPrivateProfileInt(S_MACH_RAWMOVE, K_MACH_ROTATEVACUUMFOREXTRASTROKEY, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
||||
VacuumCups.SetRotationForExtraStrokeX(GetPrivateProfileInt(S_MACH_RAWMOVE, K_MACH_ROTATEVACUUMFOREXTRASTROKEX, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
||||
If PutVacuumCupsOnRaw(nId, rmData) Then
|
||||
|
||||
VacuumCups.ResetHeadName()
|
||||
Dim bPutVacuum As Boolean = PutVacuumCupsOnRaw(nId, rmData)
|
||||
If Not bPutVacuum Then
|
||||
Dim bTwoHeadVac As Boolean = ( EgtGetHeadId( VACUUM_HEAD_2) <> GDB_ID.NULL)
|
||||
If bTwoHeadVac Then bPutVacuum = PutVacuumCupsOnRaw(nId, rmData)
|
||||
End If
|
||||
|
||||
If bPutVacuum Then
|
||||
' Visualizzo le ventose
|
||||
EgtSetStatus(GetVacuumId(), GDB_ST.ON_)
|
||||
' Aggiorno i dati
|
||||
@@ -351,6 +400,8 @@ Public Class MoveRawPartPage
|
||||
m_CurrProjPage.SetWarningMessage(EgtMsg(MSG_MOVERAWPAGEUC + 2)) 'Pezzo troppo piccolo : non si può muovere
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
EgtDraw()
|
||||
@@ -445,7 +496,7 @@ Public Class MoveRawPartPage
|
||||
If EgtMoveRawPart(nRawId, dMove * m_vtDir) Then
|
||||
m_dCurrDist += Math.Abs(dMove)
|
||||
End If
|
||||
' Altrimenti movimento Y +
|
||||
' Altrimenti movimento Y +
|
||||
Else
|
||||
If m_bRawWithCups Then
|
||||
Dim vtMove As New Vector3d(0, m_dStep, 0)
|
||||
@@ -488,7 +539,7 @@ Public Class MoveRawPartPage
|
||||
If EgtMoveRawPart(nRawId, dMove * m_vtDir) Then
|
||||
m_dCurrDist -= Math.Abs(dMove)
|
||||
End If
|
||||
' Altrimenti movimento Y -
|
||||
' Altrimenti movimento Y -
|
||||
Else
|
||||
If m_bRawWithCups Then
|
||||
Dim vtMove As New Vector3d(0, -m_dStep, 0)
|
||||
@@ -780,6 +831,33 @@ Public Class MoveRawPartPage
|
||||
End While
|
||||
End Sub
|
||||
|
||||
' Passo dalla pagina di movimento dei pezzi alla pagina di scarico
|
||||
Private Sub UnloadPartBtn_Click() Handles UnloadPartsBtn.Click
|
||||
' forzo lo stato di scarico frontale oppure di movimento
|
||||
m_SplitPage.m_bOnAuxTab = Not m_SplitPage.m_bOnAuxTab
|
||||
|
||||
' se rientro nella fase di spostamenti allora nascondo la tavola di scarico
|
||||
If Not m_SplitPage.m_bOnAuxTab Then
|
||||
' se ci sono pezzi sulla tavola di scarico non posso nasconderla
|
||||
Dim LclLstOfUnldPart As New List(Of Integer)
|
||||
If Not PartOnAuxTab(LclLstOfUnldPart, m_nCurrPhase) Then
|
||||
EgtDisableModified()
|
||||
' nascondo la tavola di scarico
|
||||
EgtSetStatus(m_nAuxTabId, GDB_ST.OFF)
|
||||
' Nascondo eventuali pezzi in parcheggio
|
||||
HideParkedParts()
|
||||
EgtEnableModified()
|
||||
End If
|
||||
Else
|
||||
' Assegnazione delle info tavola ausiliaria alla dispozione corrente
|
||||
SetAuxTabInCurrDisposition()
|
||||
End If
|
||||
|
||||
' Mantengo la fase che è stata creata e passo a gestire solo la visualizzazione dei bottoni
|
||||
RefreshVisibility()
|
||||
EgtZoom(ZM.ALL, True)
|
||||
End Sub
|
||||
|
||||
Private Sub StepMoveTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StepMoveTxBx.EgtClosed
|
||||
Dim dStep As Double
|
||||
If StringToLen(StepMoveTxBx.Text, dStep) Then
|
||||
@@ -821,16 +899,16 @@ Public Class MoveRawPartPage
|
||||
Dim ptRef As Point3d
|
||||
If Not EgtGetInfo(nRefId, "Pos", ptRef) Then Return
|
||||
Dim sCorn As String = ""
|
||||
EgtGetInfo( nRefId, "COR", sCorn)
|
||||
Select sCorn
|
||||
Case "TL"
|
||||
nCorn = MCH_CR.TL
|
||||
Case "TR"
|
||||
nCorn = MCH_CR.TR
|
||||
Case "BL"
|
||||
nCorn = MCH_CR.BL
|
||||
Case "BR"
|
||||
nCorn = MCH_CR.BR
|
||||
EgtGetInfo(nRefId, "COR", sCorn)
|
||||
Select Case sCorn
|
||||
Case "TL"
|
||||
nCorn = MCH_CR.TL
|
||||
Case "TR"
|
||||
nCorn = MCH_CR.TR
|
||||
Case "BL"
|
||||
nCorn = MCH_CR.BL
|
||||
Case "BR"
|
||||
nCorn = MCH_CR.BR
|
||||
End Select
|
||||
' Recupero il centro del grezzo
|
||||
Dim ptRawCen As Point3d
|
||||
@@ -1007,8 +1085,44 @@ Public Class MoveRawPartPage
|
||||
End Function
|
||||
|
||||
Private Sub PauseBtn_Click(sender As Object, e As RoutedEventArgs) Handles PauseBtn.Click
|
||||
' verifico la presenza di eventuali pezzi sulla tavola di scarico
|
||||
Dim LclLstOfUnldPart As New List(Of Integer)
|
||||
PartOnAuxTab(LclLstOfUnldPart, m_nCurrPhase)
|
||||
If Not InsertPauseInCurrPhase() Then Return
|
||||
AddNewPhase()
|
||||
End Sub
|
||||
|
||||
' restituisce la lista dei pezzi che sono sulla tavola di scarico nella fase indicata
|
||||
Private Function PartOnAuxTab(ByRef ListOfUnloadedPatr As List(Of Integer), nPhase As Integer) As Boolean
|
||||
m_IsCurrPhaseUnloaded = False
|
||||
' Area tavolo ausiliario
|
||||
Dim b3AuxTab As New BBox3d
|
||||
EgtGetBBoxGlob(EgtGetFirstNameInGroup(m_nAuxTabId, "A1"), GDB_BB.STANDARD, b3AuxTab)
|
||||
' Area pezzi
|
||||
Dim nOtherRaw As Integer = EgtGetFirstRawPart()
|
||||
While nOtherRaw <> GDB_ID.NULL
|
||||
If EgtVerifyRawPartPhase(nOtherRaw, nPhase) Then
|
||||
Dim b3OtherRaw As New BBox3d
|
||||
' EgtGetRawPartBBox(nOtherRaw, b3OtherRaw)
|
||||
EgtGetBBoxGlob(nOtherRaw, GDB_BB.STANDARD, b3OtherRaw)
|
||||
' se il centro del pezzo è sulla tavola di scarico
|
||||
If b3OtherRaw.Center.y < b3AuxTab.Max().y Then
|
||||
m_IsCurrPhaseUnloaded = True
|
||||
ListOfUnloadedPatr.Add(nOtherRaw)
|
||||
' salvo l'info che indica che il pezzo deve essere scaricato
|
||||
EgtSetInfo(nOtherRaw, "Unloaded", 1)
|
||||
'Exit While
|
||||
End If
|
||||
End If
|
||||
nOtherRaw = EgtGetNextRawPart(nOtherRaw)
|
||||
End While
|
||||
Return m_IsCurrPhaseUnloaded
|
||||
End Function
|
||||
|
||||
' inserisce una pausa nella fase corrente
|
||||
Private Function InsertPauseInCurrPhase() As Boolean
|
||||
' verifico che ci sia almeno un elemto selezionato (dati di aggancio pezzo)
|
||||
If m_RawMoveDataList.Count = 0 Then Return
|
||||
If m_RawMoveDataList.Count = 0 Then Return False
|
||||
' verifico che sia stato inseito almeno uno spostamento, altrimenti lo rimuovo
|
||||
Dim Index As Integer = 0
|
||||
For Index = m_RawMoveDataList.Count - 1 To 0 Step -1
|
||||
@@ -1017,8 +1131,9 @@ Public Class MoveRawPartPage
|
||||
End If
|
||||
Next
|
||||
' verifico che la lista non sia vuota
|
||||
If m_RawMoveDataList.Count = 0 Then Return
|
||||
|
||||
If m_RawMoveDataList.Count = 0 Then
|
||||
Return False
|
||||
End If
|
||||
' recupero disposizione fase corrente
|
||||
Dim nDispId As Integer = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||
' imposto la pausa nella disposizione corrente
|
||||
@@ -1026,30 +1141,22 @@ Public Class MoveRawPartPage
|
||||
' aggiungo al gruppo disposizione dei sottogruppi con i dati di movimento dei grezzi spostati
|
||||
SaveMoveInfoInDisposition(nDispId, m_RawMoveDataList)
|
||||
' imposto eventuale movimento pezzi su tavola ausiliaria
|
||||
SaveMovePartsOnAuxTable(nDispId, m_SplitPage.m_bOnAuxTab)
|
||||
SaveMovePartsOnAuxTable(nDispId, m_IsCurrPhaseUnloaded)
|
||||
' SaveMovePartsOnAuxTable(nDispId, m_SplitPage.m_bOnAuxTab)
|
||||
'' Eseguo calcolo speciale dei movimenti: per tavola multicut
|
||||
'SpecialApplyDisposition(nDispId, True, Not m_SplitPage.m_bOnAuxTab)
|
||||
SaveRemoveByHandInDisposition(nDispId, False)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
' crea una nuvoa fase/disposizione, la rende corrente, ricalcolo i grezzi e le lavorazioni della nuova fase
|
||||
Private Function AddNewPhase() As Boolean
|
||||
' Creo nuova fase
|
||||
Dim nNewPhase As Integer = EgtAddPhase()
|
||||
|
||||
' Eseguo eventuali spezzature dei grezzi e vi sposto i pezzi (i grezzi devono essere sempre copiati per Registrazione con rotazione)
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
While nRawId <> GDB_ID.NULL
|
||||
' se il grezzo è presente nella fase precedente e non è quello selezionato allora procedo a creare una copia nella nuova fase
|
||||
If EgtVerifyRawPartPhase(nRawId, nNewPhase - 1) Then
|
||||
Dim bKeepRawPart As Boolean = True
|
||||
For Each RawOnAuxTabData As RawMoveData In m_RawMoveDataList
|
||||
If nRawId = RawOnAuxTabData.m_nId Then
|
||||
bKeepRawPart = False
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If bKeepRawPart Then EgtKeepRawPart(nRawId, nNewPhase - 1)
|
||||
End If
|
||||
' passo al successivo grezzo
|
||||
nRawId = EgtGetNextRawPart(nRawId)
|
||||
End While
|
||||
' Carico i grezzi rimasti sulla tavola nella nuova fase
|
||||
ChangePhaseRawPart(nNewPhase)
|
||||
' Sposto le lavorazioni rimaste nella nuova fase
|
||||
ChangeOperationPhase(nNewPhase)
|
||||
|
||||
Dim nCurrDisposition As Integer = EgtGetPhaseDisposition(nNewPhase)
|
||||
'SetPause(nCurrDisposition)
|
||||
@@ -1060,8 +1167,43 @@ Public Class MoveRawPartPage
|
||||
SetAuxTabInCurrDisposition()
|
||||
' ripulisco la lista degli spostamenti
|
||||
m_RawMoveDataList.Clear()
|
||||
m_IsCurrPhaseUnloaded = False
|
||||
' aggiorno la fase corrente
|
||||
m_nCurrPhase = EgtGetCurrPhase()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
' Copio i grezzi rimasti sulla tavola nella fase successiva
|
||||
Private Sub ChangePhaseRawPart(ByVal nNewPhase As Integer)
|
||||
' recupero l'elenco dei pezzi che sono stati scaricati sulla tavola
|
||||
Dim LocalLstOfUnldPart As New List(Of Integer)
|
||||
PartOnAuxTab(LocalLstOfUnldPart, nNewPhase - 1)
|
||||
' Eseguo eventuali spezzature dei grezzi e vi sposto i pezzi (i grezzi devono essere sempre copiati per Registrazione con rotazione)
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
While nRawId <> GDB_ID.NULL
|
||||
' se il grezzo è presente nella fase precedente e non è quello selezionato allora procedo a creare una copia nella nuova fase
|
||||
If EgtVerifyRawPartPhase(nRawId, nNewPhase - 1) Then
|
||||
Dim bKeepRawPart As Boolean = True
|
||||
For Each RawOnAuxTabData As RawMoveData In m_RawMoveDataList
|
||||
If nRawId = RawOnAuxTabData.m_nId Then
|
||||
' se il pezzo è stato scaricato allora non deve essere riportato nella fase successiva
|
||||
For Each UnloadPart As Integer In LocalLstOfUnldPart
|
||||
If nRawId = UnloadPart Then
|
||||
' salvo l'info che indica che il pezzo deve essere scaricato
|
||||
EgtSetInfo(nRawId, "Unloaded", 1)
|
||||
bKeepRawPart = False
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
'bKeepRawPart = False
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If bKeepRawPart Then EgtKeepRawPart(nRawId, nNewPhase - 1)
|
||||
End If
|
||||
' passo al successivo grezzo
|
||||
nRawId = EgtGetNextRawPart(nRawId)
|
||||
End While
|
||||
End Sub
|
||||
|
||||
Private Sub ResetBtn_Click(sender As Object, e As RoutedEventArgs) Handles ResetBtn.Click
|
||||
@@ -1077,6 +1219,8 @@ Public Class MoveRawPartPage
|
||||
EgtRotateRawPart(nRawId, Vector3d.Z_AX(), dAngRaw)
|
||||
AddRawMoveData(nRawId, vtMove, m_RawMoveDataList)
|
||||
RemoveRawMoveData(nRawId, m_RawMoveDataList)
|
||||
' elimino l'info che indica che il pezzo è scaricato sulla tavola
|
||||
EgtRemoveInfo(nRawId, "Unloaded")
|
||||
' Disabilito pezzo e nascondo le ventose
|
||||
EgtSetStatus(nRawId, GDB_ST.ON_)
|
||||
EgtSetStatus(GetVacuumId(), GDB_ST.OFF)
|
||||
@@ -1109,6 +1253,14 @@ Public Class MoveRawPartPage
|
||||
m_nCurrPhase -= 1
|
||||
m_bPrev = False
|
||||
m_SplitPage.m_bShow = True
|
||||
m_SplitPage.m_bOnAuxTab = True
|
||||
' imposto la visibilità della tavola ausiliaria
|
||||
SetAuxTabInCurrDisposition()
|
||||
' carico le info di disposizione dei pezzi
|
||||
m_RawMoveDataList.Clear()
|
||||
m_bRemovedRaw = GetRemoveByHandInDisposition(m_nCurrDisposition)
|
||||
GetMoveInfoInDisposition(m_nCurrDisposition, m_RawMoveDataList)
|
||||
RefreshVisibility()
|
||||
EgtDraw()
|
||||
Return
|
||||
End If
|
||||
@@ -1139,18 +1291,53 @@ Public Class MoveRawPartPage
|
||||
Return
|
||||
End If
|
||||
|
||||
' se la disposizione corrente è sulla tavola ausiliaria allora lo sarà anche quella successiva
|
||||
If IsDispUnloadOnAuxTab(m_nCurrDisposition) <> 0 Then
|
||||
EgtSetCurrPhase(m_nCurrPhase + 1)
|
||||
m_nCurrDisposition = EgtGetNextOperation(m_nCurrDisposition)
|
||||
m_nCurrPhase += 1
|
||||
m_bToNext = False
|
||||
m_SplitPage.m_bShow = True
|
||||
EgtDraw()
|
||||
EnableButtons()
|
||||
Return
|
||||
' ------- VISUALIZZAZIONE -------
|
||||
If m_SplitPage.m_bShow Then
|
||||
' verifico se la fase successiva è uno scarico frontale
|
||||
If NextOperationIsUnloading(m_nCurrDisposition) Then
|
||||
' imposto la nuova fase (che è stata modificata all'interno della funzione di controllo)
|
||||
EgtSetCurrPhase(m_nCurrPhase)
|
||||
' carico i dati di movimento dei pezzi nella fase corrente
|
||||
m_RawMoveDataList.Clear()
|
||||
m_bRemovedRaw = GetRemoveByHandInDisposition(m_nCurrDisposition)
|
||||
GetMoveInfoInDisposition(m_nCurrDisposition, m_RawMoveDataList)
|
||||
EgtDraw()
|
||||
EnableButtons()
|
||||
Return
|
||||
ElseIf IsDispUnloadOnAuxTab(m_nCurrDisposition) <> 0 AndAlso Not NextOperationIsUnloading(m_nCurrDisposition) Then
|
||||
' imposto la nuova fase, al termine della Sub verrà caricata la pagina Split nella fase indicata ora
|
||||
m_bToNext = True
|
||||
m_nCurrPhase += 1
|
||||
EgtSetCurrPhase(m_nCurrPhase)
|
||||
EgtDraw()
|
||||
End If
|
||||
End If
|
||||
|
||||
' ------- MODIFICA -------
|
||||
If Not m_SplitPage.m_bShow Then
|
||||
' se la tavola di scarico presente oppure ci sono pezzi sulla tavola di scarico
|
||||
Dim LclLstOfUnldPart As New List(Of Integer)
|
||||
If m_SplitPage.m_bOnAuxTab Or PartOnAuxTab(LclLstOfUnldPart, m_nCurrPhase) Then
|
||||
' se ci sono pezzi sulla tavola di scarico prima di procedere inserisco una pausa e creo una nuoava fase
|
||||
If m_IsCurrPhaseUnloaded AndAlso InsertPauseInCurrPhase() Then AddNewPhase()
|
||||
' nascondo la tavola di scarico
|
||||
EgtDisableModified()
|
||||
EgtSetStatus(m_nAuxTabId, GDB_ST.OFF)
|
||||
EgtEnableModified()
|
||||
End If
|
||||
m_bToNext = True
|
||||
'' se la disposizione corrente è sulla tavola ausiliaria allora lo sarà anche quella successiva
|
||||
'If IsDispUnloadOnAuxTab(m_nCurrDisposition) <> 0 Then
|
||||
' EgtSetCurrPhase(m_nCurrPhase + 1)
|
||||
' m_nCurrDisposition = EgtGetNextOperation(m_nCurrDisposition)
|
||||
' m_nCurrPhase += 1
|
||||
' m_bToNext = False
|
||||
' m_SplitPage.m_bShow = True
|
||||
' EgtDraw()
|
||||
' EnableButtons()
|
||||
' Return
|
||||
'End If
|
||||
End If
|
||||
' resetto l'inidice del pezzo da mnovimentare
|
||||
m_CurrRawOnVacuum = GDB_ID.NULL
|
||||
' Deseleziono tutto
|
||||
@@ -1193,7 +1380,7 @@ Public Class MoveRawPartPage
|
||||
' disabilito bottone
|
||||
ModifyBtn.IsEnabled = False
|
||||
' gestione abilitazione altri bottoni
|
||||
EnableButtons()
|
||||
EnableButtons(MachiningList.Count > 0)
|
||||
End Sub
|
||||
|
||||
' verifica se la disposizione indicata è uno scarico sulla tavola ausiliaria
|
||||
@@ -1204,6 +1391,20 @@ Public Class MoveRawPartPage
|
||||
Return bVal
|
||||
End Function
|
||||
|
||||
' restituisce e attiva la successiva disposizione se è uno scarico frontale
|
||||
Public Function NextOperationIsUnloading(nCurrDispId As Integer) As Boolean
|
||||
' recupero la primo operazione successiva
|
||||
Dim nNextIdOperation As Integer = EgtGetNextOperation(nCurrDispId)
|
||||
' a partire da questa cerco la prima disposizione disponibile
|
||||
Dim nNextIdDips As Integer = GetNextDisposition(nNextIdOperation)
|
||||
If nNextIdDips = nNextIdOperation And IsDispUnloadOnAuxTab(nNextIdOperation) Then
|
||||
m_nCurrPhase += 1
|
||||
m_nCurrDisposition = nNextIdOperation
|
||||
Return True
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
|
||||
' recupero la prima disposizione disponibile tra l'elenco delle operazioni presenti
|
||||
Public Function GetNextDisposition(nCurrDisposId As Integer) As Integer
|
||||
Dim nDispId As Integer = nCurrDisposId
|
||||
@@ -1216,7 +1417,7 @@ Public Class MoveRawPartPage
|
||||
Return GDB_ID.NULL
|
||||
End Function
|
||||
|
||||
Private Sub EnableButtons()
|
||||
Private Sub EnableButtons(Optional bExistsMachining As Boolean = False)
|
||||
UpBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
LeftBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
RightBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
@@ -1232,19 +1433,35 @@ Public Class MoveRawPartPage
|
||||
BottomRBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
PauseBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
ResetBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
UnloadPartsBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
If m_SplitPage.m_bShow Then
|
||||
NextBtn.IsEnabled = (m_nCurrPhase < EgtGetPhaseCount())
|
||||
Else
|
||||
NextBtn.IsEnabled = Not m_SplitPage.m_bOnAuxTab
|
||||
' Se esistono delle lavorazioni allora abilito il pulsante per procedere
|
||||
If Not bExistsMachining Then
|
||||
NextBtn.IsEnabled = Not m_SplitPage.m_bOnAuxTab
|
||||
Else
|
||||
NextBtn.IsEnabled = True
|
||||
End If
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' esco dalla pagina di scarico
|
||||
Private Sub MoveRawPartPage_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded
|
||||
' verifico che la fase corrente non sia vuota
|
||||
Dim nLastDispId As Integer = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||
If EgtIsOperationEmpty(nLastDispId) And m_SplitPage.m_bOnAuxTab And m_RawMoveDataList.Count = 0 Then
|
||||
EgtErase(nLastDispId)
|
||||
End If
|
||||
|
||||
'' se sono in visualizzazione allora non elimino essuna operazione
|
||||
'If Not m_SplitPage.m_bShow Then
|
||||
' If EgtIsOperationEmpty(nLastDispId) And Not m_SplitPage.m_bOnAuxTab And m_RawMoveDataList.Count = 0 Then
|
||||
' EgtErase(nLastDispId)
|
||||
' ElseIf EgtIsOperationEmpty(nLastDispId) And m_SplitPage.m_bOnAuxTab And m_RawMoveDataList.Count = 0 Then
|
||||
' ' Dichiaro pagina non attiva
|
||||
' m_bActive = False
|
||||
' Return
|
||||
' End If
|
||||
'End If
|
||||
|
||||
' Se movimento con ventose
|
||||
If Not m_bByHand Then
|
||||
@@ -1260,8 +1477,9 @@ Public Class MoveRawPartPage
|
||||
SaveMoveInfoInDisposition(nDispId, m_RawMoveDataList)
|
||||
' imposto eventuale presenza rimozioni manuali
|
||||
SaveRemoveByHandInDisposition(nDispId, m_bRemovedRaw)
|
||||
' imposto eventuale movimento pezzi su tavola ausiliaria
|
||||
SaveMovePartsOnAuxTable(nDispId, m_SplitPage.m_bOnAuxTab)
|
||||
' imposto eventuale movimento pezzi su tavola ausiliaria (se è realmente avvenuto)
|
||||
'SaveMovePartsOnAuxTable(nDispId, m_SplitPage.m_bOnAuxTab)
|
||||
SaveMovePartsOnAuxTable(nDispId, m_IsCurrPhaseUnloaded)
|
||||
' Eseguo calcolo speciale dei movimenti
|
||||
SpecialApplyDisposition(nDispId, True, Not m_SplitPage.m_bOnAuxTab)
|
||||
End If
|
||||
@@ -1277,13 +1495,18 @@ Public Class MoveRawPartPage
|
||||
SpecialApplyDisposition(nDispId, True)
|
||||
End If
|
||||
End If
|
||||
|
||||
' Nascondo eventuale tavola ausiliaria
|
||||
If m_SplitPage.m_bOnAuxTab Then
|
||||
EgtDisableModified()
|
||||
EgtSetStatus(m_nAuxTabId, GDB_ST.OFF)
|
||||
EgtEnableModified()
|
||||
EgtZoom(ZM.ALL, False)
|
||||
If Not m_bPrev Then
|
||||
' se sto uscendo dalla pagina delle spezzature
|
||||
If Not m_bPrev And Not m_bToNext Then
|
||||
Dim nDispId As Integer = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||
' se sto uscendo dalla pagina split (senza passare dal comando next)
|
||||
Dim lclLstUnlPart As New List(Of Integer)
|
||||
SaveMovePartsOnAuxTable(nDispId, PartOnAuxTab(lclLstUnlPart, m_nCurrPhase))
|
||||
' Cancello eventuale manipolatore pezzi
|
||||
EgtDisableModified()
|
||||
RemoveVacuumCups()
|
||||
@@ -1300,10 +1523,30 @@ Public Class MoveRawPartPage
|
||||
m_bPrev = False
|
||||
m_SplitPage.m_bShow = True
|
||||
End If
|
||||
|
||||
Dim Ph As Integer = EgtGetCurrPhase()
|
||||
' aggiorno il disegno
|
||||
EgtZoom(ZM.ALL, False)
|
||||
' Dichiaro pagina non attiva
|
||||
m_bActive = False
|
||||
End Sub
|
||||
|
||||
' ----------------- TEST funzione per debug operazioni -----------------
|
||||
Private Sub SaveMyFileTest(sFilename As String)
|
||||
LoadCurrPhaseMachining()
|
||||
' salvo il file corrente per poterlo studiare e capire cosa è successo nella rappresentazione dei grezzi
|
||||
EgtSaveFile("C:\EgtData\OmagCUT\MyProjects\" & sFilename & ".nge", NGE.BIN)
|
||||
End Sub
|
||||
|
||||
Private Sub LoadCurrPhaseMachining()
|
||||
Dim m_MachiningList As New List(Of SplitMach)
|
||||
'm_SplitPage.ShowMachiningList()
|
||||
'm_SplitPage.SaveOrderMachinig(m_nCurrPhase)
|
||||
' Preparo la lista delle lavorazioni
|
||||
CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
|
||||
Dim b As Boolean = False
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
@@ -2482,8 +2482,11 @@ Public Class NestPageUC
|
||||
Const STORE_LARGH As Double = 6000
|
||||
Const STORE_DIST As Double = 200
|
||||
Const STORE_OFFS As Double = 20 + 40 + 20
|
||||
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (STORE_LARGH - b3Tab.DimX())
|
||||
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + STORE_LARGH, b3Tab.Min().y - STORE_DIST, STORE_OFFS, False)
|
||||
Dim dStoreLarg As Double = GetPrivateProfileDouble("Store", "StoreLargh", STORE_LARGH, m_MainWindow.GetMachIniFile())
|
||||
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, m_MainWindow.GetMachIniFile())
|
||||
Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
|
||||
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (dStoreLarg - b3Tab.DimX())
|
||||
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + dStoreLarg, b3Tab.Min().y - dStoreDist, dStoreOffs, False)
|
||||
End Function
|
||||
|
||||
Private Sub RemovePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemovePartBtn.Click
|
||||
|
||||
+82
-18
@@ -1,4 +1,6 @@
|
||||
Imports EgtUILib
|
||||
Imports System.Net
|
||||
Imports System.Windows.Forms.Integration
|
||||
Imports EgtUILib
|
||||
|
||||
Public Module SplitAuto
|
||||
|
||||
@@ -118,6 +120,9 @@ Public Module SplitAuto
|
||||
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine
|
||||
Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL And (nRes And CAR_RES.LO_OK) <> 0) And
|
||||
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine
|
||||
If nRes = 0 Then
|
||||
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
|
||||
End If
|
||||
End If
|
||||
' se trasformabile in taglio di separazione, verifico se lo è
|
||||
If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
|
||||
@@ -132,7 +137,7 @@ Public Module SplitAuto
|
||||
Mach.m_bStartAll = False
|
||||
Mach.m_bEndAll = False
|
||||
End If
|
||||
' Waterjet
|
||||
' Waterjet
|
||||
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then
|
||||
Mach.m_nInterf = FMI_TYPE.NONE
|
||||
' recupero l'angolo di fianco
|
||||
@@ -141,7 +146,7 @@ Public Module SplitAuto
|
||||
Mach.m_bCanEndAll = False
|
||||
Mach.m_bStartAll = False
|
||||
Mach.m_bEndAll = False
|
||||
' Forature e fresature
|
||||
' Forature e fresature
|
||||
Else
|
||||
Mach.m_nInterf = FMI_TYPE.NONE
|
||||
Mach.m_dSideAng = 0
|
||||
@@ -156,7 +161,7 @@ Public Module SplitAuto
|
||||
Mach.m_bPause = GetPause(nOperId)
|
||||
' inserisco in lista
|
||||
MachSplitList.Add(Mach)
|
||||
' altrimenti la disattivo
|
||||
' altrimenti la disattivo
|
||||
Else
|
||||
EgtSetOperationMode(nOperId, False)
|
||||
End If
|
||||
@@ -194,7 +199,7 @@ Public Module SplitAuto
|
||||
|
||||
Private Sub ColorSingleMachining(nOperId As Integer, sLay As String, dSideAng As Double, bEnabled As Boolean, nInterf As Integer)
|
||||
' Verifico se è un taglio da sopra o da sotto
|
||||
Dim bOnMach As Boolean = (sLay = NAME_ONPATH Or ( sLay = NAME_INLOOP AndAlso EgtExistsInfo( nOperId, INFO_FILOTOP)))
|
||||
Dim bOnMach As Boolean = (sLay = NAME_ONPATH Or (sLay = NAME_INLOOP AndAlso EgtExistsInfo(nOperId, INFO_FILOTOP)))
|
||||
Dim bDrip As Boolean = (sLay = NAME_DRIPCUT Or sLay = NAME_UNDERDRILL)
|
||||
' Recupero il preview della lavorazione
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
@@ -219,11 +224,11 @@ Public Module SplitAuto
|
||||
Next
|
||||
EgtSetColor(nDwnCutId, COL_MCH_DISABLED)
|
||||
Dim bFreeStart As Boolean = (nInterf And FMI_TYPE.LI) <> FMI_TYPE.LI
|
||||
EgtSetColor(nPrcId, If(bFreeStart, COL_MCH_DISABLED, COL_MCH_DIS_INTERF))
|
||||
EgtSetColor(nDwnPrcId, If(bFreeStart, COL_MCH_DISABLED, COL_MCH_DIS_INTERF))
|
||||
EgtSetColor(nPrcId, If(bFreeStart, COL_MCH_DISABLED(), COL_MCH_DIS_INTERF()))
|
||||
EgtSetColor(nDwnPrcId, If(bFreeStart, COL_MCH_DISABLED(), COL_MCH_DIS_INTERF()))
|
||||
Dim bFreeEnd As Boolean = (nInterf And FMI_TYPE.LO) <> FMI_TYPE.LO
|
||||
EgtSetColor(nPocId, If(bFreeEnd, COL_MCH_DISABLED, COL_MCH_DIS_INTERF))
|
||||
EgtSetColor(nDwnPocId, If(bFreeEnd, COL_MCH_DISABLED, COL_MCH_DIS_INTERF))
|
||||
EgtSetColor(nPocId, If(bFreeEnd, COL_MCH_DISABLED(), COL_MCH_DIS_INTERF()))
|
||||
EgtSetColor(nDwnPocId, If(bFreeEnd, COL_MCH_DISABLED(), COL_MCH_DIS_INTERF()))
|
||||
Else
|
||||
Dim colCut As Color3d
|
||||
If bOnMach Then
|
||||
@@ -342,6 +347,7 @@ Public Module SplitAuto
|
||||
Dim ptOri As Point3d
|
||||
EgtGetTableRef(1, ptOri)
|
||||
Dim vtOri As New Vector3d(ptOri.x, ptOri.y, ptOri.z)
|
||||
' ---------------------------------- GREZZI ----------------------------------
|
||||
' Eseguo eventuali spezzature dei grezzi e vi sposto i pezzi (i grezzi devono essere sempre copiati per Registrazione con rotazione)
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
While nRawId <> GDB_ID.NULL
|
||||
@@ -393,10 +399,19 @@ Public Module SplitAuto
|
||||
' passo al successivo grezzo
|
||||
nRawId = EgtGetNextRawPart(nRawId)
|
||||
End While
|
||||
' ---------------------------------- GREZZI ----------------------------------
|
||||
' Cancello preview dei tagli allungati dalla lavorazione
|
||||
For Each nCut As Integer In vCuts
|
||||
RemoveMachiningPreview(nCut)
|
||||
Next
|
||||
' ---------------------------------- LAVORAZIONI ----------------------------------
|
||||
ChangeOperationPhase(nNewPhase)
|
||||
' ---------------------------------- LAVORAZIONI ----------------------------------
|
||||
Return True
|
||||
End Function
|
||||
|
||||
' Sposta le lavorzioni della fase precedente a quella indicata
|
||||
Friend Sub ChangeOperationPhase_ERR(nNewPhase As Integer)
|
||||
' Sposto tutte le lavorazioni disabilitate e le eventuali inglobate nella nuova fase
|
||||
Dim nId = EgtGetFirstOperation()
|
||||
While nId <> GDB_ID.NULL
|
||||
@@ -417,9 +432,50 @@ Public Module SplitAuto
|
||||
End If
|
||||
nId = nNextId
|
||||
End While
|
||||
Return True
|
||||
End Function
|
||||
End Sub
|
||||
|
||||
' Miglioramento della gestione delle lavorazioni
|
||||
Friend Sub ChangeOperationPhase(nNewPhase As Integer)
|
||||
' creo l'elenco delle lavorazioni che devono essere sposate
|
||||
Dim MchList As New List(Of Integer)
|
||||
' Recupero le lavorazioni disabilitate e le eventuali inglobate nella nuova fase
|
||||
Dim nId = EgtGetFirstOperation()
|
||||
While nId <> GDB_ID.NULL
|
||||
Dim nNextId = EgtGetNextOperation(nId)
|
||||
If IsValidMachining(nId) And EgtGetOperationPhase(nId) = nNewPhase - 1 And EgtExistsInfo(nId, INFO_MCH_USER_OFF) Then
|
||||
' Provo ad inserire la lavorazione nell'elenco
|
||||
AddMach(MchList, nId)
|
||||
' sposto le inglobate
|
||||
Dim sInfo As String = String.Empty
|
||||
If EgtGetInfo(nId, INFO_MCH_OTHMID, sInfo) Then
|
||||
Dim sItems() As String = sInfo.Split(",".ToCharArray)
|
||||
For Each sId2 As String In sItems
|
||||
Dim nId2 As Integer = 0
|
||||
StringToInt(sId2, nId2)
|
||||
If nId2 > 0 Then
|
||||
' Provo ad inserire la lavorazione nell'elenco
|
||||
AddMach(MchList, nId2)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
nId = nNextId
|
||||
End While
|
||||
' Procedo ora a spostare le lavorazioni nella nuova disposizione
|
||||
For Each ItemMchId As Integer In MchList
|
||||
EgtChangeOperationPhase(ItemMchId, nNewPhase)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Inserisce gli inidici delle lavorazioni evitando di inserire dei doppioni
|
||||
Private Sub AddMach(MchList As List(Of Integer), IdMch As Integer)
|
||||
For Each Item As Integer In MchList
|
||||
If IdMch = Item Then
|
||||
Return
|
||||
End If
|
||||
Next
|
||||
MchList.Add(IdMch)
|
||||
End Sub
|
||||
'-----------------------------------------------------------------------------------------------
|
||||
Friend Function CalculateSplitAuto() As Boolean
|
||||
' Fase iniziale
|
||||
@@ -743,21 +799,29 @@ Public Module SplitAuto
|
||||
|
||||
Private Function ExecMove(nDispId As Integer, vNewRaws As List(Of Integer),
|
||||
vtMove As Vector3d, dMinMove As Double) As Boolean
|
||||
Dim vtMove2 As Vector3d = -vtMove
|
||||
Dim bTwoHeadVac As Boolean = ( EgtGetHeadId( VACUUM_HEAD_2) <> GDB_ID.NULL)
|
||||
Dim rmData As New RawMoveData
|
||||
If PutVacuumCupsOnRaw(vNewRaws(1), rmData) AndAlso
|
||||
SafeMoveRawPart(vNewRaws(1), vtMove, dMinMove) Then
|
||||
Dim vtMove2 As Vector3d = -vtMove
|
||||
|
||||
VacuumCups.ResetHeadName()
|
||||
Dim bPutVacuum As Boolean = PutVacuumCupsOnRaw(vNewRaws(1), rmData)
|
||||
If Not bPutVacuum And bTwoHeadVac Then bPutVacuum= PutVacuumCupsOnRaw(vNewRaws(1), rmData)
|
||||
If bPutVacuum AndAlso SafeMoveRawPart(vNewRaws(1), vtMove, dMinMove) Then
|
||||
rmData.m_vtRawMove = vtMove
|
||||
SaveOneMoveInfoInDisposition(nDispId, rmData)
|
||||
Return True
|
||||
ElseIf PutVacuumCupsOnRaw(vNewRaws(0), rmData) AndAlso
|
||||
SafeMoveRawPart(vNewRaws(0), vtMove2, dMinMove) Then
|
||||
End If
|
||||
|
||||
VacuumCups.ResetHeadName()
|
||||
Dim bPut2Vacuum As Boolean = PutVacuumCupsOnRaw(vNewRaws(0), rmData)
|
||||
If Not bPut2Vacuum And bTwoHeadVac Then bPutVacuum = PutVacuumCupsOnRaw(vNewRaws(0), rmData)
|
||||
If bPut2Vacuum AndAlso SafeMoveRawPart(vNewRaws(0), vtMove2, dMinMove) Then
|
||||
rmData.m_vtRawMove = vtMove2
|
||||
SaveOneMoveInfoInDisposition(nDispId, rmData)
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Private Function SafeMoveRawPart(nRawId As Integer, ByRef vtMove As Vector3d, dMindist As Double) As Boolean
|
||||
|
||||
+49
-48
@@ -13,7 +13,7 @@ Public Class SplitPageUC
|
||||
' Tipo movimento dei grezzi (manuale o con testa ventosa)
|
||||
Private m_bByHand As Boolean = True
|
||||
' Abilitazione movimento finale pezzi su tavola ausiliaria
|
||||
Private m_bEnableOnAuxTab As Boolean = False
|
||||
Friend m_bEnableOnAuxTab As Boolean = False
|
||||
' Stato
|
||||
Private m_nCurrPhase As Integer = 0
|
||||
Private m_MachiningList As New List(Of SplitMach)
|
||||
@@ -49,6 +49,7 @@ Public Class SplitPageUC
|
||||
Private m_bModified As Boolean = False
|
||||
Private m_nNbrGrpId As Integer = GDB_ID.NULL
|
||||
Private m_bToNext As Boolean = False
|
||||
Private m_bToPrev As Boolean = False
|
||||
Friend m_bOnAuxTab As Boolean = False
|
||||
' Drag
|
||||
Private m_nDragInd As Integer = -1
|
||||
@@ -167,6 +168,7 @@ Public Class SplitPageUC
|
||||
m_bModified = False
|
||||
' Reset flag tipo uscita
|
||||
m_bToNext = False
|
||||
m_bToPrev = False
|
||||
' Abilitazione bottoni
|
||||
EnableButtons()
|
||||
' Se sola visualizzazione, segnalazione di eventuale fase di restart
|
||||
@@ -180,7 +182,8 @@ Public Class SplitPageUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ShowMachiningList()
|
||||
' preparo la lista delle lavorazioni da mostrare in interfaccia
|
||||
Public Sub ShowMachiningList()
|
||||
m_ItemList.Clear()
|
||||
For i As Integer = 1 To m_MachiningList.Count()
|
||||
Dim Mach As SplitMach = m_MachiningList(i - 1)
|
||||
@@ -710,30 +713,8 @@ Public Class SplitPageUC
|
||||
MoveUpBtn.IsEnabled = False
|
||||
MoveDownBtn.IsEnabled = False
|
||||
End If
|
||||
|
||||
' Recupero la selezione dei tagli correnti
|
||||
GetCurrSelection()
|
||||
|
||||
'' verifico che siano contigui
|
||||
'Dim bContigus As Boolean = False
|
||||
'Dim OrdIndex = 0
|
||||
'OrdIndex = MachiningLsBx.SelectedItems(MachiningLsBx.SelectedItems.Count - 1).Ind
|
||||
'' recupero l'indice dell'ultimo elemento selezionato
|
||||
'Dim LastSel As NameIdLsBxItem = MachiningLsBx.SelectedItems(MachiningLsBx.SelectedItems.Count - 1)
|
||||
'If MachiningLsBx.SelectedItems.Count = 1 Then
|
||||
' bContigus = True
|
||||
'Else
|
||||
' For Each Item As NameIdLsBxItem In ItemList
|
||||
' If Item.Ind = LastSel.Ind + 1 Or Item.Ind = LastSel.Ind - 1 Then
|
||||
' bContigus = True
|
||||
' End If
|
||||
' Next
|
||||
'End If
|
||||
'' se non contiguo, elimino dai selezionati il primo(che è l'ultimo ad essere stato selezionato)
|
||||
'If Not bContigus Then
|
||||
' ItemList.Remove(LastSel)
|
||||
' MachiningLsBx.SelectedItems.RemoveAt(MachiningLsBx.SelectedItems.Count - 1)
|
||||
'End If
|
||||
|
||||
' resetto marcatura lavorazioni
|
||||
If m_CurrFirstInd > -1 Then
|
||||
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
|
||||
@@ -827,6 +808,8 @@ Public Class SplitPageUC
|
||||
Next
|
||||
|
||||
VerifyHomogenousMachining(ItemList)
|
||||
' Abilitazione bottone Next
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
Private Sub AllOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllOnBtn.Click
|
||||
@@ -1717,7 +1700,7 @@ Public Class SplitPageUC
|
||||
End If
|
||||
Dim nI As Integer = m_ItemList(Index).Ind
|
||||
' Si possono invertire solo i tagli di lama
|
||||
If m_MachiningList(nI).m_nType <> MCH_OY.SAWING Then Continue For
|
||||
If m_MachiningList(nI).m_nType <> MCH_OY.SAWING And m_MachiningList(nI).m_nType <> MCH_OY.WATERJETTING Then Continue For
|
||||
' Non si possono invertire i tagli di lama inclinati
|
||||
If Math.Abs(m_MachiningList(nI).m_dSideAng) > 0.1 Then Continue For
|
||||
' Se abilitata inversione automatica e quindi non invertito
|
||||
@@ -1731,6 +1714,7 @@ Public Class SplitPageUC
|
||||
ResetEnableInvert(m_MachiningList(nI).m_nEntId)
|
||||
EgtErase(m_MachiningList(nI).m_nArrId)
|
||||
NumberDirectionMachining(nI, False)
|
||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
EgtDraw()
|
||||
End If
|
||||
' se altrimenti disabilitata inversione automatica e invertito
|
||||
@@ -1742,6 +1726,7 @@ Public Class SplitPageUC
|
||||
SwapStartEndData(nI)
|
||||
EgtErase(m_MachiningList(nI).m_nArrId)
|
||||
NumberDirectionMachining(nI, False)
|
||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
EgtDraw()
|
||||
End If
|
||||
' altrimenti disabilitata inversione automatica e non invertito
|
||||
@@ -1780,15 +1765,26 @@ Public Class SplitPageUC
|
||||
Private Sub PrevBtn_Click(sender As Object, e As RoutedEventArgs) Handles PrevBtn.Click
|
||||
' Dichiaro solo visualizzazione
|
||||
m_bShow = True
|
||||
' Esco
|
||||
ExitSplit(False)
|
||||
'' Esco
|
||||
'ExitSplit(False)
|
||||
' Torno alla fase precedente
|
||||
EgtSetCurrPhase(EgtGetCurrPhase() - 1)
|
||||
Dim nCurrPhase As Integer = EgtGetCurrPhase()
|
||||
' se questa è la prima fase, non possono tornare più indietro di così
|
||||
If nCurrPhase = 1 Then
|
||||
Return
|
||||
End If
|
||||
EgtSetCurrPhase(nCurrPhase - 1)
|
||||
m_bToPrev = True
|
||||
' Reimposto la precedente
|
||||
SplitPageUC_Loaded(Nothing, Nothing)
|
||||
'SplitPageUC_Loaded(Nothing, Nothing)
|
||||
' torno alla disposizione della fase corrente
|
||||
m_MainWindow.m_CadCutPageUC.CadCutPageGrid.Children.Remove(m_MainWindow.m_CadCutPageUC.m_SplitPage)
|
||||
m_MainWindow.m_CadCutPageUC.CadCutPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC.m_MoveRawPartPage)
|
||||
m_MainWindow.m_CadCutPageUC.m_CadCutMode = CadCutPageUC.CadCutModes.MoveRawPart
|
||||
End Sub
|
||||
|
||||
Private Sub NextBtn_Click(sender As Object, e As RoutedEventArgs) Handles NextBtn.Click
|
||||
' ------- VISUALIZZAZIONE -------
|
||||
If m_bShow Then
|
||||
Dim CurrDisposition As Integer = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||
' recupero l'operazione successiva
|
||||
@@ -1910,7 +1906,7 @@ Public Class SplitPageUC
|
||||
Private Sub SplitPageUC_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded
|
||||
m_bActive = False
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
ExitSplit(Not m_bToNext)
|
||||
ExitSplit(Not m_bToNext And Not m_bToPrev)
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
@@ -1929,22 +1925,7 @@ Public Class SplitPageUC
|
||||
EgtEnableModified()
|
||||
' se modificato salvo ordine e stato delle lavorazioni
|
||||
If m_bModified Then
|
||||
' Al primo posto deve rimanere la disposizione della fase
|
||||
Dim nFirstOperId As Integer = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||
For i As Integer = m_ItemList.Count() - 1 To 0 Step -1
|
||||
Dim nI As Integer = m_ItemList(i).Ind
|
||||
Dim nMchId As Integer = m_MachiningList(nI).m_nId
|
||||
EgtRelocate(nMchId, nFirstOperId, GDB_POS.AFTER)
|
||||
If m_MachiningList(nI).m_bEnabled Then
|
||||
EgtSetOperationMode(m_MachiningList(nI).m_nId, True)
|
||||
EgtRemoveInfo(m_MachiningList(nI).m_nId, INFO_MCH_USER_OFF)
|
||||
Else
|
||||
EgtSetOperationMode(m_MachiningList(nI).m_nId, False)
|
||||
EgtSetInfo(m_MachiningList(nI).m_nId, INFO_MCH_USER_OFF, True)
|
||||
End If
|
||||
Next
|
||||
' dichiaro ordine salvato
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag()
|
||||
SaveOrderMachinig(m_nCurrPhase)
|
||||
End If
|
||||
' Affondamento ridotto
|
||||
Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile())
|
||||
@@ -1968,6 +1949,25 @@ Public Class SplitPageUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Sub SaveOrderMachinig(CurrPhase As Integer)
|
||||
' Al primo posto deve rimanere la disposizione della fase
|
||||
Dim nFirstOperId As Integer = EgtGetPhaseDisposition(CurrPhase)
|
||||
For i As Integer = m_ItemList.Count() - 1 To 0 Step -1
|
||||
Dim nI As Integer = m_ItemList(i).Ind
|
||||
Dim nMchId As Integer = m_MachiningList(nI).m_nId
|
||||
EgtRelocate(nMchId, nFirstOperId, GDB_POS.AFTER)
|
||||
If m_MachiningList(nI).m_bEnabled Then
|
||||
EgtSetOperationMode(m_MachiningList(nI).m_nId, True)
|
||||
EgtRemoveInfo(m_MachiningList(nI).m_nId, INFO_MCH_USER_OFF)
|
||||
Else
|
||||
EgtSetOperationMode(m_MachiningList(nI).m_nId, False)
|
||||
EgtSetInfo(m_MachiningList(nI).m_nId, INFO_MCH_USER_OFF, True)
|
||||
End If
|
||||
Next
|
||||
' dichiaro ordine salvato
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag()
|
||||
End Sub
|
||||
|
||||
Friend Function GetDisabledCutsCount() As Integer
|
||||
' Determino il numero di tagli disabilitati
|
||||
Dim nCount As Integer = 0
|
||||
@@ -2032,7 +2032,7 @@ Public Class SplitPageUC
|
||||
NextBtn.IsEnabled = (GetDisabledCutsCount() > 0 And GetSplitCutsCount() = 1)
|
||||
' Altrimenti
|
||||
Else
|
||||
' movimento standard sulla tavola (almeno un taglio disabilitato)
|
||||
' movimento standard sulla tavola (almeno un taglio disabilitato allora False)
|
||||
Dim bStdTab As Boolean = (GetDisabledCutsCount() > 0)
|
||||
' movimento su tavola di scarico
|
||||
m_bOnAuxTab = Not bStdTab AndAlso (m_nCurrPhase = EgtGetPhaseCount() And m_bEnableOnAuxTab)
|
||||
@@ -2198,6 +2198,7 @@ Public Class SplitPageUC
|
||||
|
||||
' gestione bottone per generazione ponticelli
|
||||
If Type = MCH_OY.WATERJETTING Then
|
||||
InvertBtn.Visibility = Visibility.Visible
|
||||
' siccome la stessa posizione è occupata da due comandi sovrapposti
|
||||
If CutStartBtn.Visibility = Visibility.Hidden Then
|
||||
BridgesWJBtn.Visibility = Visibility.Visible
|
||||
|
||||
+75
-40
@@ -1,5 +1,6 @@
|
||||
Imports EgtUILib
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports System.Threading
|
||||
|
||||
Module VacuumCups
|
||||
' Tipo manipolatore con ventosa (0=assente, 1=dietro, 2=laterale)
|
||||
@@ -31,6 +32,19 @@ Module VacuumCups
|
||||
' Nome del gruppo temporaneo per le ventose
|
||||
Private Const VACTMP_GRP As String = "VacTmp"
|
||||
|
||||
Private m_sHeadName As String = VACUUM_HEAD
|
||||
Public Sub ResetHeadName()
|
||||
Dim bReload As Boolean = (m_sHeadName <> VACUUM_HEAD)
|
||||
m_sHeadName = VACUUM_HEAD
|
||||
If bReload Then LoadVacuumCups()
|
||||
End Sub
|
||||
Public Function ChangeHeadName() As Boolean
|
||||
If EgtGetHeadId( VACUUM_HEAD_2) = GDB_ID.NULL Then Return False
|
||||
m_sHeadName = If( m_sHeadName = VACUUM_HEAD, VACUUM_HEAD_2, VACUUM_HEAD)
|
||||
LoadVacuumCups()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
'-----------------------------------------------------------------------------------------------
|
||||
Friend Class RawMoveData
|
||||
|
||||
@@ -87,17 +101,17 @@ Module VacuumCups
|
||||
Friend Function LoadVacuumCups() As Boolean
|
||||
' Leggo tipo manipolatore con ventosa
|
||||
m_nVacType = 0
|
||||
EgtGetInfo(EgtGetHeadId(VACUUM_HEAD), KEY_VAC_TYPE, m_nVacType)
|
||||
EgtGetInfo(EgtGetHeadId(m_sHeadName), KEY_VAC_TYPE, m_nVacType)
|
||||
' Cancello eventuali vecchie ventose
|
||||
RemoveVacuumCups()
|
||||
' Identificativo ventose nella macchina
|
||||
Dim nLayId As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(VACUUM_HEAD), VACUUM_HEAD_LAYOUT)
|
||||
Dim nLayId As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(m_sHeadName), VACUUM_HEAD_LAYOUT)
|
||||
If nLayId = GDB_ID.NULL Then Return False
|
||||
' Identificativo riferimento della testa nella macchina
|
||||
Dim nT1Id As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(VACUUM_HEAD), HEAD_FIRST_EXIT)
|
||||
Dim nT1Id As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(m_sHeadName), HEAD_FIRST_EXIT)
|
||||
If nT1Id = GDB_ID.NULL Then Return False
|
||||
' imposto la l'uscita della ventosa come fosse l'uscita di un utensile
|
||||
EgtSetCalcTool("", "H4", 1)
|
||||
EgtSetCalcTool("", m_sHeadName, 1)
|
||||
' Creo gruppo temporaneo in cui copiarli
|
||||
m_nTempId = EgtCreateGroup(GDB_ID.ROOT)
|
||||
If m_nTempId = GDB_ID.NULL Then Return False
|
||||
@@ -107,23 +121,23 @@ Module VacuumCups
|
||||
m_nVacId = EgtCopyGlob(nLayId, m_nTempId)
|
||||
If m_nVacId = GDB_ID.NULL Then Return False
|
||||
' Angolo di rotazione preferito
|
||||
EgtGetInfo( m_nVacId, KEY_VACLAY_PREFROT, m_dPreferredRot)
|
||||
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFROT, m_dPreferredRot)
|
||||
' Angoli di rotazione preferiti per ventosa in verticale (lungo Y) a sinistra e a destra del centro tavola
|
||||
EgtGetInfo( m_nVacId, KEY_VACLAY_PREFVROTXMINUS, m_dPrefVertRotXMinus)
|
||||
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTXMINUS, m_dPrefVertRotXMinus)
|
||||
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTXPLUS, m_dPrefVertRotXPlus)
|
||||
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTYMINUS, m_dPrefVertRotYMinus)
|
||||
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTYPLUS, m_dPrefVertRotYPlus)
|
||||
' Direzione di riferimento per tagli Drip
|
||||
EgtGetInfo( m_nVacId, KEY_VACLAY_DRIPREFDIR, m_dDripRefAng)
|
||||
EgtGetInfo(m_nVacId, KEY_VACLAY_DRIPREFDIR, m_dDripRefAng)
|
||||
' Nascondo il gruppo ma rendo visibili le curve di contorno delle ventose
|
||||
EgtSetStatus(m_nVacId, GDB_ST.OFF)
|
||||
Dim nId As Integer = EgtGetFirstInGroup(m_nVacId)
|
||||
While nId <> GDB_ID.NULL
|
||||
Select Case EgtGetType(nId)
|
||||
Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO
|
||||
EgtSetStatus(nId, GDB_ST.ON_)
|
||||
Case Else
|
||||
EgtSetStatus(nId, GDB_ST.OFF)
|
||||
Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO
|
||||
EgtSetStatus(nId, GDB_ST.ON_)
|
||||
Case Else
|
||||
EgtSetStatus(nId, GDB_ST.OFF)
|
||||
End Select
|
||||
nId = EgtGetNext(nId)
|
||||
End While
|
||||
@@ -152,7 +166,7 @@ Module VacuumCups
|
||||
Friend Function ResetVacuumCups() As Boolean
|
||||
' Ripristino posizione e rotazione originali
|
||||
Dim frOriRef As New Frame3d
|
||||
EgtFrame(EgtGetFirstNameInGroup(EgtGetHeadId(VACUUM_HEAD), HEAD_FIRST_EXIT), GDB_ID.ROOT, frOriRef)
|
||||
EgtFrame(EgtGetFirstNameInGroup(EgtGetHeadId(m_sHeadName), HEAD_FIRST_EXIT), GDB_ID.ROOT, frOriRef)
|
||||
Dim frCurrRef As New Frame3d
|
||||
EgtFrame(m_nRefId, GDB_ID.ROOT, frCurrRef)
|
||||
EgtMove(m_nVacId, frOriRef.Orig() - frCurrRef.Orig(), GDB_RT.GLOB)
|
||||
@@ -164,10 +178,10 @@ Module VacuumCups
|
||||
Dim nId As Integer = EgtGetFirstInGroup(m_nVacId)
|
||||
While nId <> GDB_ID.NULL
|
||||
Select Case EgtGetType(nId)
|
||||
Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO
|
||||
EgtSetStatus(nId, GDB_ST.ON_)
|
||||
Case Else
|
||||
EgtSetStatus(nId, GDB_ST.OFF)
|
||||
Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO
|
||||
EgtSetStatus(nId, GDB_ST.ON_)
|
||||
Case Else
|
||||
EgtSetStatus(nId, GDB_ST.OFF)
|
||||
End Select
|
||||
nId = EgtGetNext(nId)
|
||||
End While
|
||||
@@ -207,14 +221,17 @@ Module VacuumCups
|
||||
EgtSurfFrGrossArea(nRKerfId, RawArea)
|
||||
' volume calcolato in mmc
|
||||
Dim RawVolume As Double = RawArea * b3Raw.DimZ()
|
||||
' peso calolato in kg
|
||||
' peso calcolato in kg
|
||||
m_RawWeight = RawVolume * m_RawDensity / Math.Pow(10, 9)
|
||||
'-------------------- FINE CALCOLO PESO --------------------
|
||||
|
||||
' Eseguo ricerca
|
||||
If FindVacuumCupsOnRaw(nRawId, ptRawCen, b3Kerf, ptKerfCen, nKerfId, nRKerfId, rmData) Then
|
||||
Return True
|
||||
Else
|
||||
If ChangeHeadName() Then Return False
|
||||
End If
|
||||
|
||||
' In caso di fallimento, provo riducendo con offset la regione di kerf
|
||||
' (così si simula la proiezione del centro sul MAT - medial axis transform)
|
||||
Dim bOkFind As Boolean = False
|
||||
@@ -241,20 +258,20 @@ Module VacuumCups
|
||||
' Verifico sia veramente un pezzo
|
||||
If EgtGetRawPartFromPart(nPartId) = GDB_ID.NULL Then Return False
|
||||
' Cerco la direzione del primo taglio attivo da sotto
|
||||
Dim nDripLayId As Integer = EgtGetFirstNameInGroup( nPartId, NAME_DRIPCUT)
|
||||
Dim nDripLineId As Integer = EgtGetFirstInGroup( nDripLayId)
|
||||
Dim nDripLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_DRIPCUT)
|
||||
Dim nDripLineId As Integer = EgtGetFirstInGroup(nDripLayId)
|
||||
While nDripLineId <> GDB_ID.NULL
|
||||
Dim nMchId As Integer = EgtGetOperationId( "DripSaw" & nDripLineId.ToString())
|
||||
Dim nMchId As Integer = EgtGetOperationId("DripSaw" & nDripLineId.ToString())
|
||||
Dim nMode As Integer
|
||||
If EgtGetMode( nMchId, nMode) AndAlso nMode = GDB_MD.STD Then Exit While
|
||||
nDripLineId = EgtGetNext( nDripLineId)
|
||||
If EgtGetMode(nMchId, nMode) AndAlso nMode = GDB_MD.STD Then Exit While
|
||||
nDripLineId = EgtGetNext(nDripLineId)
|
||||
End While
|
||||
Dim vtDir As New Vector3d
|
||||
if EgtStartVector( nDripLineId, GDB_ID.ROOT, vtDir) Then
|
||||
If EgtStartVector(nDripLineId, GDB_ID.ROOT, vtDir) Then
|
||||
Dim dLen, dAngV, dAngH As Double
|
||||
vtDir.ToSpherical( dLen, dAngV, dAngH)
|
||||
vtDir.ToSpherical(dLen, dAngV, dAngH)
|
||||
Dim dOffsAng = dAngH - m_dDripRefAng
|
||||
While dOffsAng - m_dPreferredRot >= 90
|
||||
While dOffsAng - m_dPreferredRot >= 90
|
||||
dOffsAng -= 180
|
||||
End While
|
||||
While dOffsAng - m_dPreferredRot <= -90
|
||||
@@ -388,7 +405,7 @@ Module VacuumCups
|
||||
|
||||
Private Function GetVacRotAxisSteps(ByRef vAngRot As List(Of Double)) As Boolean
|
||||
' Recupero l'asse rotante della testa ventosa
|
||||
Dim nRotAxId As Integer = EgtGetParent(EgtGetHeadId(VACUUM_HEAD))
|
||||
Dim nRotAxId As Integer = EgtGetParent(EgtGetHeadId(m_sHeadName))
|
||||
' Verifico se contiene info con STEPS
|
||||
Dim sSteps As String = ""
|
||||
If Not EgtGetInfo(nRotAxId, KEY_ROTVAC_STEPS, sSteps) Then Return False
|
||||
@@ -493,15 +510,15 @@ Module VacuumCups
|
||||
' Ordino secondo distanza angolare crescente da direzione di allineamento (modulo 180 deg)
|
||||
Dim dRotRefDeg As Double = dRotAngDeg
|
||||
vAngRot.Sort(Function(P, Q)
|
||||
Dim dDiffP = Math.Abs( P - dRotRefDeg)
|
||||
If Math.Abs( dDiffP - 180) < 10 * EPS_ANG_SMALL Then dDiffP = 1
|
||||
Dim dDiffQ = Math.Abs( Q - dRotRefDeg)
|
||||
If Math.Abs( dDiffQ - 180) < 10 * EPS_ANG_SMALL Then dDiffQ = 1
|
||||
Return ( dDiffP - dDiffQ)
|
||||
Dim dDiffP = Math.Abs(P - dRotRefDeg)
|
||||
If Math.Abs(dDiffP - 180) < 10 * EPS_ANG_SMALL Then dDiffP = 1
|
||||
Dim dDiffQ = Math.Abs(Q - dRotRefDeg)
|
||||
If Math.Abs(dDiffQ - 180) < 10 * EPS_ANG_SMALL Then dDiffQ = 1
|
||||
Return (dDiffP - dDiffQ)
|
||||
End Function)
|
||||
' Annullo la rotazione di allineamento
|
||||
dRotAngDeg = 0
|
||||
' altrimenti in continuo
|
||||
' altrimenti in continuo
|
||||
Else
|
||||
' Assegno più valori di ricerca e conservo angolo di allineamento
|
||||
vAngRot.AddRange({0, +5, -5, +12.5, -12.5, +25, -25, +45, -45})
|
||||
@@ -548,25 +565,43 @@ Module VacuumCups
|
||||
|
||||
' assegnate le posizioni del centro delle ventose e l'angolo di posizionamento orizzontale verifica che la posizione sia raggiungibile
|
||||
Public Function VerifyOutOfStrokes(ptRef As Point3d, dRotAngDeg As Double) As Integer
|
||||
Dim sAxisName As String = "C"
|
||||
' verifico che il nome dell'asse impostato sia corretto
|
||||
If Not EgtGetAxisId(sAxisName) Then
|
||||
If m_sHeadName = VACUUM_HEAD Then
|
||||
sAxisName = "C1"
|
||||
Else
|
||||
sAxisName = "C2"
|
||||
End If
|
||||
End If
|
||||
' Posizione Home dell'asse rotante
|
||||
Dim dCHome As Double
|
||||
EgtGetAxisHomePos("C", dCHome)
|
||||
EgtGetAxisHomePos(sAxisName, dCHome)
|
||||
' Corse dell'asse
|
||||
Dim dCMin As Double
|
||||
EgtGetAxisMin("C", dCMin)
|
||||
EgtGetAxisMin(sAxisName, dCMin)
|
||||
Dim dCMax As Double
|
||||
EgtGetAxisMax("C", dCMax)
|
||||
EgtGetAxisMax(sAxisName, dCMax)
|
||||
' Porto l'angolo nel range
|
||||
Dim dRotAngMachDeg As Double = dRotAngDeg + dCHome
|
||||
AdjustAngleInRange(dRotAngMachDeg, dCMin, dCMax)
|
||||
' Imposto la ventosa come fosse un utensile
|
||||
EgtSetCalcTool("", "H4", 1)
|
||||
EgtSetCalcTool("", m_sHeadName, 1)
|
||||
' Calcolo gli assi macchina
|
||||
Dim dX, dY, dZ As Double
|
||||
Dim nStat As Integer
|
||||
EgtGetCalcPositions(ptRef, dRotAngMachDeg, 0, nStat, dX, dY, dZ)
|
||||
' Verifico le corse
|
||||
EgtVerifyOutstroke(dX, dY, dZ, dRotAngMachDeg, 0, nStat)
|
||||
If EgtGetAxisId("A") Then
|
||||
' Asse tavola rotante (movimenti solo con A0)
|
||||
EgtGetCalcPositions(ptRef, 0, dRotAngMachDeg, nStat, dX, dY, dZ)
|
||||
' Verifico le corse
|
||||
EgtVerifyOutstroke(dX, dY, dZ, 0, dRotAngMachDeg, nStat)
|
||||
Else
|
||||
EgtGetCalcPositions(ptRef, dRotAngMachDeg, 0, nStat, dX, dY, dZ)
|
||||
' Verifico le corse
|
||||
EgtVerifyOutstroke(dX, dY, dZ, dRotAngMachDeg, 0, nStat)
|
||||
End If
|
||||
|
||||
|
||||
Return nStat
|
||||
End Function
|
||||
|
||||
@@ -732,7 +767,7 @@ Module VacuumCups
|
||||
rmList.RemoveAt(nInd)
|
||||
nInd = rmList.Count() - 1
|
||||
End If
|
||||
' Se non trovato, lo accodo
|
||||
' Se non trovato, lo accodo
|
||||
Else
|
||||
rmList.Add(New RawMoveData(nRawId))
|
||||
nInd = rmList.Count() - 1
|
||||
|
||||
@@ -84,6 +84,11 @@ Module ConstGen
|
||||
|
||||
' Nome testa con ventose per spostamento pezzi
|
||||
Public Const VACUUM_HEAD As String = "H4"
|
||||
Public Const VACUUM_HEAD_2 As String = "H104"
|
||||
' Nome teste laser
|
||||
Public Const LASER_HEAD As String = "H3"
|
||||
Public Const LASER_HEAD_2 As String = "H103"
|
||||
|
||||
' Info tipo ventosa
|
||||
Public Const KEY_VAC_TYPE As String = "VacType"
|
||||
' Nome gruppo layout in testa con ventose
|
||||
|
||||
@@ -206,6 +206,7 @@ Module ConstIni
|
||||
Public Const K_OFFSZ As String = "OffsZ"
|
||||
Public Const K_OFFSXY As String = "OffsXY"
|
||||
Public Const K_OFFSYY As String = "OffsYY"
|
||||
Public Const K_OFFSXINTERY As String = "OffsYInterY"
|
||||
Public Const K_STARTTRIM As String = "StartTrim"
|
||||
Public Const K_ENDTRIM As String = "EndTrim"
|
||||
Public Const K_OTHERSIDE As String = "OtherSide"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
Public Const S_PARTPROGRAM As String = "PartProgram"
|
||||
Public Const K_EXTENSION As String = "Extension"
|
||||
Public Const K_EXTFILECN As String = "ExtFileCN"
|
||||
|
||||
Public Const S_AXES As String = "Axes"
|
||||
Public Const K_AXESNUM As String = "AxesNum"
|
||||
@@ -56,6 +57,10 @@
|
||||
Public Const S_EXECLUA As String = "ExecLua"
|
||||
Public Const K_FILESCRIPT_LUA As String = "FileScript"
|
||||
|
||||
Public Const S_CAMERAHQ As String = "CameraHQ"
|
||||
Public Const K_CAMERAHQ_ENABLE As String = "EnableHQ"
|
||||
Public Const K_CAMERAHQ_ACTIVATE As String = "ActivateHQ"
|
||||
|
||||
Public Const S_NCDATA As String = "NcData"
|
||||
Public Const K_NEWVARIABLE As String = "NewVariable"
|
||||
Public Const K_NEWCONSOLE As String = "NewConsole"
|
||||
@@ -151,6 +156,10 @@
|
||||
Public Const K_PRODLIPROBINGTCPOS2VAR As String = "ProbingTcPos2Var"
|
||||
Public Const K_PRODLISAWDIAMETER2VAR As String = "SawDiameter2Var"
|
||||
|
||||
Public Const S_POLISHLINE As String = "PolishLine"
|
||||
Public Const K_CLICKSTATE As String = "ClickState"
|
||||
Public Const k_CLICKDIR As String = "ClickDir"
|
||||
|
||||
Public Const S_STATISTICS As String = "Stats"
|
||||
Public Const K_DATADIR As String = "DataDir"
|
||||
Public Const K_SHOWAREAS As String = "ShowAreas"
|
||||
@@ -232,6 +241,7 @@
|
||||
Public Const K_HOLES_OFFSETWJ As String = "HolesOffsetWJ"
|
||||
Public Const K_MIN_RADIUSWJ As String = "MinRadiusWJ"
|
||||
Public Const K_MACH_DRILLINGWJ_ON_CORNERS As String = "DrillingWJOnCorners"
|
||||
Public Const K_MACH_RECTIFICATION_ON_SUBSQUARE As String = "RectificationSubSqWJ"
|
||||
' DrillMillC90
|
||||
' CutLongDxSx
|
||||
' AngRotMultiCut
|
||||
|
||||
@@ -35,6 +35,7 @@ Public Class MachineButtonsUC
|
||||
Private Const BTN_STATE_DOOR_OPENED As String = "DoorOpened"
|
||||
Private Const BTN_STATE_DOOR_CLOSED As String = "DoorClosed"
|
||||
Private Const BTN_STATE_PARKING As String = "Parking"
|
||||
Private Const BTN_STATE_HOME As String = "Home"
|
||||
Private Const BTN_ENABLE_ZONE_1 As String = "EnableZone1"
|
||||
Private Const BTN_ENABLE_ZONE_2 As String = "EnableZone2"
|
||||
Private Const BTN_ENABLE_PC As String = "EnablePC"
|
||||
@@ -711,6 +712,40 @@ Public Class MachineButtonsUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Sub HomeStateChanged(HomeState As Boolean)
|
||||
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, BTN_STATE_HOME)
|
||||
If nIndex = -1 Then Return
|
||||
If HomeState Then
|
||||
GetToggleButton(nIndex + 1).IsChecked = True
|
||||
Try
|
||||
Dim s As String
|
||||
If (m_MainWindow.m_OptionsPageUC.ThemesCmBx.SelectedIndex = 0) Then
|
||||
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
|
||||
Else
|
||||
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\" & ImageArrayY(nIndex)
|
||||
End If
|
||||
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
|
||||
GetImage(nIndex + 1).Source = sButtonImageSource
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error loading image " & ImageArrayY(nIndex + 1))
|
||||
End Try
|
||||
Else
|
||||
GetToggleButton(nIndex + 1).IsChecked = False
|
||||
Try
|
||||
Dim s As String
|
||||
If (m_MainWindow.m_OptionsPageUC.ThemesCmBx.SelectedIndex = 0) Then
|
||||
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex)
|
||||
Else
|
||||
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\" & ImageArrayY(nIndex)
|
||||
End If
|
||||
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
|
||||
GetImage(nIndex + 1).Source = sButtonImageSource
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Sub EnableZoneStateChanged(ZoneState As Integer)
|
||||
Dim sFlag As String = String.Empty
|
||||
If ZoneState = 1 Then
|
||||
|
||||
@@ -1138,7 +1138,7 @@ Public Class DrawPageUC
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function MakeSectionFrameInsert() As Boolean
|
||||
Private Function MakeSectionFrameInsert(ByVal nNbr As Integer) As Boolean
|
||||
' m_MainWindow.m_ImportPageUC.LoadFrame()
|
||||
' recupero il primo layer del primo pezzo
|
||||
Dim nLayerId As Integer = EgtGetFirstLayer(EgtGetFirstPart())
|
||||
@@ -1150,13 +1150,16 @@ Public Class DrawPageUC
|
||||
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
||||
' Inserisco il pezzo
|
||||
If Not My.Computer.FileSystem.FileExists(sTmpFile) Then Return False
|
||||
EgtInsertFile(sTmpFile)
|
||||
' Ne recupero l'Id
|
||||
Dim nPartId As Integer = EgtGetLastPart()
|
||||
' Creo la cornice
|
||||
m_MainWindow.m_FrameCutPageUC.CreateFrame(nPartId)
|
||||
' Ricalcolo lavorazioni
|
||||
AddFrameMachinings(m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dStartTrim, m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dEndTrim)
|
||||
' eseguo inserimento
|
||||
For i As Integer = 1 To nNbr
|
||||
EgtInsertFile(sTmpFile)
|
||||
' Ne recupero l'Id
|
||||
Dim nPartId As Integer = EgtGetLastPart()
|
||||
' Creo la cornice
|
||||
m_MainWindow.m_FrameCutPageUC.CreateFrame(nPartId)
|
||||
' Ricalcolo lavorazioni
|
||||
AddFrameMachinings(m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dStartTrim, m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dEndTrim)
|
||||
Next
|
||||
' Cancello il file
|
||||
My.Computer.FileSystem.DeleteFile(sTmpFile)
|
||||
Return True
|
||||
@@ -1178,7 +1181,7 @@ Public Class DrawPageUC
|
||||
' Passo al contesto principale
|
||||
'MakeInsert(InsNbr, sPartName)
|
||||
If m_MainWindow.FrameCutBtn.IsChecked Then
|
||||
MakeSectionFrameInsert()
|
||||
MakeSectionFrameInsert(InsNbr)
|
||||
Else
|
||||
MakeMultipleInsert(InsNbr, sPartName)
|
||||
End If
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<ListBox Name="FileListBox" Grid.Row="1" Grid.RowSpan="2" ItemTemplate="{DynamicResource DataTemplateItem}"
|
||||
ItemsSource="{Binding ItemList}"/>
|
||||
|
||||
<Grid Grid.Row="3" Margin="0,0,8,0">
|
||||
<Grid Name="FinderGrd" Grid.Row="3" Margin="0,0,8,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="4*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
|
||||
@@ -19,6 +19,9 @@ Public Class ImportPageUC
|
||||
Friend WithEvents ImportScene As New Scene
|
||||
Private ImportSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
|
||||
|
||||
Private m_SelListHole As New List(Of Integer)
|
||||
Private m_DeselectListHole As New List(Of Integer)
|
||||
|
||||
' Properties
|
||||
Private m_sCurrDir As String = String.Empty
|
||||
Private m_sCurrFile As String = String.Empty
|
||||
@@ -101,6 +104,8 @@ Public Class ImportPageUC
|
||||
' abilitazione Ordine e Distinta per importazione DXF
|
||||
m_bEnableOrderList = (m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut And
|
||||
GetPrivateProfileInt(S_COMPO, K_CSVDATA, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||
' rendo visibilie il pulsante di ricerca file
|
||||
FinderGrd.Visibility = Visibility.Visible
|
||||
|
||||
If m_bFirst Then
|
||||
' imposto colore di default
|
||||
@@ -196,7 +201,6 @@ Public Class ImportPageUC
|
||||
PartNumTxBx.Text = "1"
|
||||
' disabilito ok
|
||||
OkBtn.IsEnabled = False
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub LoadGridData()
|
||||
@@ -345,7 +349,7 @@ Public Class ImportPageUC
|
||||
End Function
|
||||
|
||||
Private Function LoadCurrFile() As Boolean
|
||||
' Pulisco il DB geometrico locale
|
||||
' Pulisco il DB geometrico locale
|
||||
Dim bOk As Boolean = EgtNewFile()
|
||||
' Costruisco path completa del file
|
||||
Dim sPath = IO.Path.Combine(m_sCurrDir, m_sCurrFile)
|
||||
@@ -415,7 +419,7 @@ Public Class ImportPageUC
|
||||
DripCutBtn.IsEnabled = False
|
||||
DripDrillBtn.IsEnabled = False
|
||||
End If
|
||||
' altrimenti import per cornici
|
||||
' altrimenti import per cornici
|
||||
Else
|
||||
mmBtn.IsEnabled = (m_nFileType = FT.DXF)
|
||||
inchBtn.IsEnabled = (m_nFileType = FT.DXF)
|
||||
@@ -569,6 +573,8 @@ Public Class ImportPageUC
|
||||
EgtSetColor(nEntId, New Color3d(127, 63, 0))
|
||||
nEntId = EgtGetNext( nEntId)
|
||||
End While
|
||||
m_DeselectListHole.Add(nLayId)
|
||||
m_SelListHole.Remove(nLayId)
|
||||
End If
|
||||
Else
|
||||
Dim nLayId As Integer = GDB_ID.NULL
|
||||
@@ -585,6 +591,8 @@ Public Class ImportPageUC
|
||||
EgtSetColor(nEntId, New Color3d(255, 255, 255))
|
||||
nEntId = EgtGetNext( nEntId)
|
||||
End While
|
||||
m_SelListHole.Add(nLayId)
|
||||
m_DeselectListHole.Remove(nLayId)
|
||||
End If
|
||||
End If
|
||||
EgtDraw()
|
||||
@@ -592,6 +600,12 @@ Public Class ImportPageUC
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
m_FiloTopUC.CreateFiloTopPreView(m_SelListHole)
|
||||
m_FiloTopUC.EraseFiloTopPreview(m_DeselectListHole)
|
||||
If m_SelListHole.Count > 0 Then
|
||||
MessageTxBx.Text = ""
|
||||
MessageBrd.Background = Brushes.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnShowDistanceVector(sender As Object, vtDist As Vector3d) Handles ImportScene.OnShowDistanceVector
|
||||
@@ -1040,6 +1054,7 @@ Public Class ImportPageUC
|
||||
|
||||
Private Sub SideAngleBtn_Click(sender As Object, e As RoutedEventArgs) Handles SideAngleBtn.Click
|
||||
If SideAngleBtn.IsChecked() Then
|
||||
FinderGrd.Visibility = Visibility.Hidden
|
||||
' Aggiungo regioni per percorsi interni
|
||||
AdjustSelectRegions()
|
||||
' Dichiaro nessuna selezione
|
||||
@@ -1062,6 +1077,7 @@ Public Class ImportPageUC
|
||||
MessageTxBx.Text = EgtMsg(MSG_DRAWPAGEUC + 6) ' Selezionare un contorno
|
||||
MessageBrd.Background = Application.Current.FindResource("OmagCut_Green")
|
||||
Else
|
||||
FinderGrd.Visibility = Visibility.Visible
|
||||
' Rimuovo regioni per percorsi interni
|
||||
RemoveSelectRegions()
|
||||
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||
@@ -1092,6 +1108,7 @@ Public Class ImportPageUC
|
||||
|
||||
Private Sub DripCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles DripCutBtn.Click
|
||||
If DripCutBtn.IsChecked() Then
|
||||
FinderGrd.Visibility = Visibility.Hidden
|
||||
' Dichiaro nessuna selezione
|
||||
m_nSelectedPart = GDB_ID.NULL
|
||||
m_nSelectedLayer = GDB_ID.NULL
|
||||
@@ -1112,6 +1129,7 @@ Public Class ImportPageUC
|
||||
MessageTxBx.Text = EgtMsg(MSG_DRAWPAGEUC + 6) ' Selezionare un contorno
|
||||
MessageBrd.Background = Application.Current.FindResource("OmagCut_Green")
|
||||
Else
|
||||
FinderGrd.Visibility = Visibility.Visible
|
||||
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||
FileListBox.Visibility = Windows.Visibility.Visible
|
||||
LeftGrid.Children.Remove(m_SideAngleUC)
|
||||
@@ -1142,6 +1160,7 @@ Public Class ImportPageUC
|
||||
|
||||
Private Sub DripDrillBtn_Click(sender As Object, e As RoutedEventArgs) Handles DripDrillBtn.Click
|
||||
If DripDrillBtn.IsChecked() Then
|
||||
FinderGrd.Visibility = Visibility.Hidden
|
||||
' Aggiungo regioni di selezione per percorsi interni
|
||||
AdjustSelectRegions()
|
||||
' Imposto modalità fori da sotto
|
||||
@@ -1160,6 +1179,7 @@ Public Class ImportPageUC
|
||||
MessageTxBx.Text = EgtMsg(MSG_DRAWPAGEUC + 15) ' Selezionare uno o più fori
|
||||
MessageBrd.Background = Application.Current.FindResource("OmagCut_Green")
|
||||
Else
|
||||
FinderGrd.Visibility = Visibility.Visible
|
||||
' Rimuovo regioni per percorsi interni
|
||||
RemoveSelectRegions()
|
||||
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||
@@ -1187,6 +1207,7 @@ Public Class ImportPageUC
|
||||
|
||||
Private Sub FiloTopBtn_Click(sender As Object, e As RoutedEventArgs) Handles FiloTopBtn.Click
|
||||
If FiloTopBtn.IsChecked() Then
|
||||
FinderGrd.Visibility = Visibility.Hidden
|
||||
' Aggiungo regioni per percorsi interni
|
||||
AdjustSelectRegions()
|
||||
' Dichiaro nessuna selezione
|
||||
@@ -1208,6 +1229,7 @@ Public Class ImportPageUC
|
||||
MessageTxBx.Text = EgtMsg(MSG_DRAWPAGEUC + 6) ' Selezionare un contorno interno
|
||||
MessageBrd.Background = Application.Current.FindResource("OmagCut_Green")
|
||||
Else
|
||||
FinderGrd.Visibility = Visibility.Visible
|
||||
' Rimuovo regioni per percorsi interni
|
||||
RemoveSelectRegions()
|
||||
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||
|
||||
@@ -39,6 +39,15 @@
|
||||
<Button Name="RawPartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource RawPartImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="CompoBtn" Grid.Column="2" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource DrawImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="SelSectionBtn" Grid.Column="3" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource Sezione-corniceImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
<ToggleButton Name="MachiningBtn" Grid.Column="4" Style="{DynamicResource OmagCut_RightGrayYellowIconToggleButton}">
|
||||
<Image Source="{DynamicResource FrameMachiningImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</ToggleButton>
|
||||
@@ -63,6 +72,7 @@
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.8*"/>
|
||||
<RowDefinition Height="0.8*"/>
|
||||
<RowDefinition Height="1.7*"/>
|
||||
@@ -78,14 +88,13 @@
|
||||
</ComboBox>
|
||||
|
||||
<UniformGrid Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
|
||||
<Button Name="SelSectionBtn"
|
||||
<!--<Button Name="SelSectionBtn"
|
||||
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
||||
<Image Source="{DynamicResource Sezione-corniceImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
</Button>-->
|
||||
|
||||
<Grid>
|
||||
<Button Name="SelGuideBtn"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
<Button Name="SelGuideBtn" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
<UniformGrid Name="ArcGrid" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
|
||||
<TextBlock Name="ArcRadTxBl" Grid.Row="2" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
@@ -110,11 +119,16 @@
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
|
||||
<TextBlock Name="OffsYyTxBl" Grid.Row="4" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="OffsYyTxBx" Grid.Column="2" Grid.Row="4" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
|
||||
<UniformGrid Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="3" Columns="2" >
|
||||
<TextBlock Name="OffsXInteryTxBl" Grid.Row="5" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="OffsXInteryTxBx" Grid.Column="2" Grid.Row="5" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
|
||||
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
|
||||
<Button Name="MirrorPartBtn"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource SpecchiaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||
@@ -125,12 +139,12 @@
|
||||
</Button>
|
||||
</UniformGrid>
|
||||
|
||||
<UniformGrid Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="3" Columns="2" >
|
||||
<!--<UniformGrid Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="3" Columns="2" >
|
||||
<Button Name="CompoBtn"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource DrawImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
</UniformGrid>
|
||||
</UniformGrid>-->
|
||||
|
||||
<!--<TextBlock Name="SawRoughingTxBl" Grid.Row="4" Grid.ColumnSpan="3"
|
||||
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
|
||||
|
||||
@@ -52,6 +52,8 @@ Public Class FrameCutPageUC
|
||||
OffsXyTxBx.Text = LenToString(dOffsXY, 3)
|
||||
Dim dOffsYY As Double = GetPrivateProfileDouble(S_FRAME, K_OFFSYY, 5, m_MainWindow.GetIniFile())
|
||||
OffsYyTxBx.Text = LenToString(dOffsYY, 3)
|
||||
Dim dOffsXInterY As Double = GetPrivateProfileDouble(S_FRAME, K_OFFSXINTERY, 5, m_MainWindow.GetIniFile())
|
||||
OffsXInteryTxBx.Text = LenToString(dOffsXInterY, 3)
|
||||
|
||||
' Imposto i messaggi letti dal file dei messaggi
|
||||
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 1)) 'Lungo X
|
||||
@@ -70,6 +72,7 @@ Public Class FrameCutPageUC
|
||||
OffsZTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 8) 'Distanza sopra
|
||||
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 9) 'Distanza inizio
|
||||
OffsYyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 22) 'Distanza Y
|
||||
OffsXInteryTxBl.Text = EgtMsg(90645) 'Interasse
|
||||
End Sub
|
||||
|
||||
Private Sub FrameCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
@@ -82,7 +85,11 @@ Public Class FrameCutPageUC
|
||||
m_ProjectMgr.VeinMatchingBtn.Visibility = Windows.Visibility.Hidden
|
||||
m_ProjectMgr.RegisterBtn.Visibility = Windows.Visibility.Hidden
|
||||
' Visualizzo il bottone per l'importazione dei compo frame
|
||||
CompoBtn.Visibility = If(GetPrivateProfileInt(S_FRAMECOMPO, K_CMP_COUNT, 0, m_MainWindow.GetIniFile()) > 0, Visibility.Visible, Visibility.Hidden)
|
||||
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.COMPOFRAME) AndAlso GetPrivateProfileInt(S_FRAMECOMPO, K_CMP_COUNT, 0, m_MainWindow.GetIniFile()) > 0 Then
|
||||
CompoBtn.Visibility = Visibility.Visible
|
||||
Else
|
||||
CompoBtn.Visibility = Visibility.Hidden
|
||||
End If
|
||||
' Recupero dimensioni e kerf del grezzo
|
||||
m_nRawId = EgtGetFirstRawPart()
|
||||
GetRawBox(m_RawBox)
|
||||
@@ -273,7 +280,7 @@ Public Class FrameCutPageUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OffsXXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsZTxBx.EgtClosed, OffsXyTxBx.EgtClosed, OffsYyTxBx.EgtClosed
|
||||
Private Sub OffsXXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsZTxBx.EgtClosed, OffsXyTxBx.EgtClosed, OffsYyTxBx.EgtClosed, OffsXInteryTxBx.EgtClosed
|
||||
' Forzo aggiornamento grezzo nella pagina di Nesting
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.CalcRawPart()
|
||||
' Parcheggio pezzi presenti nel grezzo
|
||||
@@ -298,9 +305,13 @@ Public Class FrameCutPageUC
|
||||
WritePrivateProfileString(S_FRAME, K_OFFSXY, DoubleToString(dOffsXy, 3), m_MainWindow.GetIniFile())
|
||||
End If
|
||||
Dim dOffsYy As Double = 0
|
||||
If StringToLen(OffsYyTxBx.Text, dOffsYY) Then
|
||||
If StringToLen(OffsYyTxBx.Text, dOffsYy) Then
|
||||
WritePrivateProfileString(S_FRAME, K_OFFSYY, DoubleToString(dOffsYy, 3), m_MainWindow.GetIniFile())
|
||||
End If
|
||||
Dim dOffsXIntery As Double = 0
|
||||
If StringToLen(OffsXInteryTxBx.Text, dOffsXIntery) Then
|
||||
WritePrivateProfileString(S_FRAME, K_OFFSXINTERY, DoubleToString(dOffsXIntery, 3), m_MainWindow.GetIniFile())
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub MirrorPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles MirrorPartBtn.Click
|
||||
@@ -948,12 +959,18 @@ Public Class FrameCutPageUC
|
||||
' Determino distanza da spessore lama
|
||||
Dim dMinDist As Double = 0
|
||||
Dim dSawThick As Double = 0
|
||||
Dim dOffsXIntery As Double = 0
|
||||
StringToLen(OffsXInteryTxBx.Text, dOffsXIntery)
|
||||
If EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw) AndAlso
|
||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dSawThick) Then
|
||||
dMinDist = dSawThick + 5 * EPS_SMALL
|
||||
If dOffsXIntery <= dSawThick Then
|
||||
dMinDist = dSawThick + 5 * EPS_SMALL
|
||||
Else
|
||||
dMinDist = dOffsXIntery + 5 * EPS_SMALL
|
||||
End If
|
||||
Else
|
||||
EgtOutLog("Not found current saw for frames mindist")
|
||||
dMinDist = 0
|
||||
dMinDist = dOffsXIntery
|
||||
End If
|
||||
' Inserisco il pezzo nel grezzo
|
||||
Dim ptIns As Point3d
|
||||
|
||||
@@ -184,6 +184,31 @@
|
||||
|
||||
</GroupBox>
|
||||
|
||||
<!--Parametri rettifica tagli sottosquadra: 1 Parametro -->
|
||||
<GroupBox Name="RectificationWJParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" >
|
||||
<Grid Grid.Column="3" Grid.Row="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Name="EnableRectificationTxBl" Grid.Row="0" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
|
||||
<CheckBox Name="EnableRectificationChBx" Grid.Row="0" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
|
||||
HorizontalAlignment="Right" Margin="0,0,10,0"/>
|
||||
|
||||
<!--<TextBlock Name="OffsetRectificationTxBl" Grid.Row="1" Grid.Column="0"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="OffsetRectificationTxBx" Grid.Row="1" Grid.Column="1" Margin="10,0,10,0"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>-->
|
||||
|
||||
</Grid>
|
||||
|
||||
</GroupBox>
|
||||
|
||||
<!--Parametri WaterJet: 5 Parametro (se questo GroupBox attivo allora nascondo Fori/Fresatura)-->
|
||||
<GroupBox Name="WjsParamGpBx" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="4"
|
||||
Style="{DynamicResource OmagCut_GroupBox}">
|
||||
|
||||
@@ -97,7 +97,10 @@ Public Class AlarmsPageUC
|
||||
HolesOffsetWJTxBl.Text = "Offset"
|
||||
MinRadiusWJTxBl.Text = "Min Radius"
|
||||
OneHoleInCornerWJTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 26)
|
||||
'-- FINE -- nuovi parametri per preforo lavello
|
||||
'-- INIZIO -- nuovi parametro Rettifica tagli sottosquadra WJ
|
||||
REctificationWJParamGpBx.Header = "Rectification"
|
||||
EnableRectificationTxBl.Text = "Enable (on subsquare angle)"
|
||||
'-- FINE -- nuovi parametro Rettifica tagli sottosquadra WJ
|
||||
NestingParamGpBx.Header = EgtMsg(MSG_ALARMSPAGEUC + 31) ' Nesting
|
||||
AlignTxBl.Text = EgtMsg(90932) ' Allineato
|
||||
GhigliottinaTxBl.Text = EgtMsg(91066) ' Ghigliottina
|
||||
@@ -175,6 +178,7 @@ Public Class AlarmsPageUC
|
||||
' Se non previsti tagli waterjet, disabilito relativo box
|
||||
If Not m_CurrentMachine.bWaterJetting Then
|
||||
WjsParamGpBx.Visibility = Visibility.Hidden
|
||||
RectificationWJParamGpBx.Visibility = Visibility.Hidden
|
||||
End If
|
||||
|
||||
' Abilitazione box per contorni grezzo da foto
|
||||
@@ -354,7 +358,9 @@ Public Class AlarmsPageUC
|
||||
MinRadiusWJTxBx.Text = LenToString(dVal, 2)
|
||||
OneHoleInCornerWJChBx.IsChecked =
|
||||
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
|
||||
|
||||
' leggo se attiva la rettifica degli angoli per WaterJet
|
||||
EnableRectificationChBx.IsChecked =
|
||||
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
||||
' Leggo accorciamento angoli con fresa
|
||||
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile())
|
||||
ShortTxBx.Text = LenToString(dVal, 2)
|
||||
@@ -970,9 +976,18 @@ Public Class AlarmsPageUC
|
||||
WritePrivateProfileString(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, "0", m_MainWindow.GetMachIniFile())
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' -- FINE -- nuovi parametri per prefori WaterJet
|
||||
|
||||
' -- INIZIO -- nuovi parametri per Rettifica angoli in sottosquadra WaterJet
|
||||
Private Sub EnableRectificationChBx_Click(sender As Object, e As EventArgs) Handles EnableRectificationChBx.Click
|
||||
If EnableRectificationChBx.IsChecked() Then
|
||||
WritePrivateProfileString(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, "1", m_MainWindow.GetMachIniFile)
|
||||
Else
|
||||
WritePrivateProfileString(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, "0", m_MainWindow.GetMachIniFile)
|
||||
End If
|
||||
End Sub
|
||||
' -- FINE -- nuovi parametri per Rettifica angoli in sottosquadra WaterJet
|
||||
|
||||
Private Sub TmEnableChBx_Click(sender As Object, e As RoutedEventArgs) Handles TmEnableChBx.Click
|
||||
If TmEnableChBx.IsChecked() Then
|
||||
WritePrivateProfileString(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, "1", m_MainWindow.GetMachIniFile())
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtUILib
|
||||
Imports System.IO
|
||||
|
||||
Public Class CurrentMachine
|
||||
|
||||
@@ -51,6 +52,10 @@ Public Class CurrentMachine
|
||||
Private m_sProdLiProbingState2Var As String = ""
|
||||
Private m_sProdLiProbingTcPos2Var As String = ""
|
||||
Private m_sProdLiSawDiameter2Var As String = ""
|
||||
Private m_sClickState As String = "E80028"
|
||||
Private m_sClickDir As String = ""
|
||||
' Gestione speciale per canali CN
|
||||
Private m_sExtFileCN As String = ".0"
|
||||
|
||||
' Numero e tipo di utensili correntemente disponibili sulla macchina
|
||||
Private m_MountedToolConfig As MountedToolConfigs = MountedToolConfigs.SAW
|
||||
@@ -316,7 +321,7 @@ Public Class CurrentMachine
|
||||
Return m_bAskNewOnResend
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
Friend ReadOnly Property nProdLiSawProbe As Integer
|
||||
Get
|
||||
@@ -324,6 +329,24 @@ Public Class CurrentMachine
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sClickState As String
|
||||
Get
|
||||
Return m_sClickState
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sClickDir As String
|
||||
Get
|
||||
Return m_sClickDir
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sExtFileCN As String
|
||||
Get
|
||||
Return m_sExtFileCN
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend Function sProdLiProbingStateVar(nI As Integer) As String
|
||||
If nI = 1 Then Return m_sProdLiProbingStateVar
|
||||
If nI = 2 Then Return m_sProdLiProbingState2Var
|
||||
@@ -788,7 +811,7 @@ Public Class CurrentMachine
|
||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB3_ADDITIONALTABLE, value)
|
||||
End If
|
||||
End If
|
||||
Case 2
|
||||
Case 2
|
||||
If Math.Abs(value - m_dTab2AdditionalTable) > EPS_SMALL And
|
||||
WritePrivateProfileString(S_TABLE, K_TAB2_ADDITIONALTABLE, DoubleToString(value, 3), sMachIniFile) Then
|
||||
' Aggiorno il valore corrente
|
||||
@@ -1120,6 +1143,8 @@ Public Class CurrentMachine
|
||||
m_sMachIniFile = m_MainWindow.GetMachinesRootDir & "\" & sMachineName & "\" & sMachineName & ".ini"
|
||||
' Leggo estensione del file programma pezzo
|
||||
GetPrivateProfileString(S_PARTPROGRAM, K_EXTENSION, "xpi", m_sIsoFileExt, sMachIniFile)
|
||||
' per gestione canali separati (macchina NUM con più di 5 Assi) ver. 2.5g1
|
||||
GetPrivateProfileString(S_PARTPROGRAM, K_EXTFILECN, ".0", m_sExtFileCN, sMachIniFile)
|
||||
If m_sIsoFileExt(0) <> "." Then m_sIsoFileExt = "." & m_sIsoFileExt
|
||||
' Leggo flag incremento asse C
|
||||
m_dDeltaC = GetPrivateProfileDouble(S_AXES, K_DELTA_C, 0.0, sMachIniFile)
|
||||
@@ -1153,6 +1178,13 @@ Public Class CurrentMachine
|
||||
GetPrivateProfileString(S_PRODUCTIONLINE, K_PRODLIPROBINGTCPOS2VAR, "0", m_sProdLiProbingTcPos2Var, sMachIniFile)
|
||||
GetPrivateProfileString(S_PRODUCTIONLINE, K_PRODLISAWDIAMETER2VAR, "", m_sProdLiSawDiameter2Var, sMachIniFile)
|
||||
|
||||
GetPrivateProfileString(S_POLISHLINE, K_CLICKSTATE, "", m_sClickState, sMachIniFile)
|
||||
GetPrivateProfileString(S_POLISHLINE, k_CLICKDIR, "", m_sClickDir, sMachIniFile)
|
||||
If Not Directory.Exists(m_sClickDir) Then
|
||||
m_sClickState = ""
|
||||
EgtOutLog("Directory " & m_sClickDir & " does not exist")
|
||||
End If
|
||||
|
||||
' Leggo configurazione degli utensili in macchina
|
||||
m_MountedToolConfig = GetPrivateProfileInt(S_TOOLS, K_MOUNTEDTOOLCONFIG, 0, sMachIniFile)
|
||||
' Leggo flag presenza tipologie utensili
|
||||
|
||||
@@ -7,110 +7,123 @@
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="768" d:DesignWidth="1280">
|
||||
|
||||
<!-- Definizione della ImportPage -->
|
||||
<Border Background="{DynamicResource OmagCut_Gray}" >
|
||||
<!-- Definizione della ImportPage -->
|
||||
<Border Background="{DynamicResource OmagCut_Gray}" >
|
||||
|
||||
<Grid Name="ImportPageGrid">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="7.5*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="4.5*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Name="ImportPageGrid">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="7.5*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="4.5*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<GroupBox Name="CNModeGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.ColumnSpan="2" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<GroupBox Name="CNModeGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.ColumnSpan="2" Margin="0,0,4,0">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ToggleButton Name="AutoBtn" Grid.Column="0"
|
||||
<ToggleButton Name="AutoBtn" Grid.Column="0"
|
||||
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
|
||||
Foreground="White"/>
|
||||
<ToggleButton Name="ManualBtn" Grid.Column="1"
|
||||
<ToggleButton Name="ManualBtn" Grid.Column="1"
|
||||
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
|
||||
Foreground="White"/>
|
||||
<ToggleButton Name="MDIBtn" Grid.Column="2"
|
||||
<ToggleButton Name="MDIBtn" Grid.Column="2"
|
||||
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
|
||||
Foreground="White"/>
|
||||
<ToggleButton Name="SingleBtn" Grid.Column="3"
|
||||
<ToggleButton Name="SingleBtn" Grid.Column="3"
|
||||
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
|
||||
Foreground="White"/>
|
||||
<ToggleButton Name="HomeBtn" Grid.Column="4"
|
||||
<ToggleButton Name="HomeBtn" Grid.Column="4"
|
||||
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
|
||||
Foreground="White"/>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
</GroupBox>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Name="CommandsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.ColumnSpan="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<GroupBox Name="CommandsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.ColumnSpan="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="StartBtn" Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
<Button Name="StopBtn" Grid.Column="1"
|
||||
<Button Name="StartBtn" Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
<Button Name="StopBtn" Grid.Column="1"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
<Button Name="ResetBtn" Grid.Column="2"
|
||||
<Button Name="ResetBtn" Grid.Column="2"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
</GroupBox>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Name="MDICommandGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="1">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="6*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="6*"/>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<EgtWPFLib:EgtTextBox Name="MDITxBx" Margin="10,0,10,0" Style="{DynamicResource OmagCut_MDIKeyboardTextBox}"/>
|
||||
<Button Name="MDIConfirmBtn" Grid.Column="1"
|
||||
<Button Name="MDIConfirmBtn" Grid.Column="1"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
</GroupBox>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Name="PartProgTransferGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="2"
|
||||
<GroupBox Name="CameraHQ" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ToggleButton Name="CameraHQBtn" Grid.Column="2"
|
||||
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
|
||||
Foreground="White"/>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Name="PartProgTransferGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="2"
|
||||
Grid.ColumnSpan="3">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="DownloadBtn" Grid.Column="0"
|
||||
<Button Name="DownloadBtn" Grid.Column="0"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
<Button Name="UploadBtn" Grid.Column="1"
|
||||
<Button Name="UploadBtn" Grid.Column="1"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
<Button Name="ActivateBtn" Grid.Column="2"
|
||||
<Button Name="ActivateBtn" Grid.Column="2"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
<Button Name="DeleteBtn" Grid.Column="3"
|
||||
<Button Name="DeleteBtn" Grid.Column="3"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="DULoadTxBx" Grid.Column="4" Width="100" Text="900.0"
|
||||
<EgtWPFLib:EgtTextBox Name="DULoadTxBx" Grid.Column="4" Width="100" Text="900.0"
|
||||
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Name="PowerGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="2"
|
||||
Grid.Column="3" Grid.ColumnSpan="3" Margin="5,0,0,0">
|
||||
@@ -131,18 +144,18 @@
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Name="ErrorLstGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="3" Grid.ColumnSpan="4">
|
||||
<ListBox Name="ErrorLstBx">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<ListBox Name="ErrorLstBx">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
|
||||
</GroupBox>
|
||||
</GroupBox>
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
</Border>
|
||||
</Border>
|
||||
|
||||
</UserControl>
|
||||
|
||||
@@ -29,6 +29,7 @@ Public Class MachineCNPageUC
|
||||
MDICommandGpBx.Header = EgtMsg(MSG_MACHINECNPAGEUC + 16)
|
||||
PartProgTransferGpBx.Header = EgtMsg(MSG_MACHINECNPAGEUC + 17)
|
||||
ErrorLstGpBx.Header = EgtMsg(MSG_ALARMSPAGEUC + 12)
|
||||
|
||||
' Attivo gruppo PartProgTransferGpBx leggendo la variabile nel file ini
|
||||
If GetPrivateProfileInt(S_GENERAL, K_TESTINGPAGE, 0, m_MainWindow.GetIniFile()) = 1 Then
|
||||
PartProgTransferGpBx.Visibility = Windows.Visibility.Visible
|
||||
@@ -44,6 +45,27 @@ Public Class MachineCNPageUC
|
||||
Else
|
||||
PowerGpBx.Visibility = Visibility.Collapsed
|
||||
End If
|
||||
|
||||
' verifico che sia attiva la modalità per l'uso di due fotocamere
|
||||
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ENABLE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
|
||||
CameraHQ.Header = "Photo on table"
|
||||
CameraHQBtn.Content = "HQ"
|
||||
' verifico quale camera è impostata
|
||||
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ACTIVATE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
|
||||
CameraHQBtn.IsChecked = True
|
||||
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
|
||||
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1HQ.png", UriKind.Relative))
|
||||
End If
|
||||
Else
|
||||
CameraHQBtn.IsChecked = False
|
||||
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
|
||||
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1.png", UriKind.Relative))
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
CameraHQ.Visibility = Visibility.Collapsed
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub TestingPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
@@ -203,6 +225,20 @@ Public Class MachineCNPageUC
|
||||
m_CN.DGeneralFunctions_WriteCncMode(8)
|
||||
End Sub
|
||||
|
||||
Private Sub CameraHQBtn_Click(sender As Object, e As RoutedEventArgs) Handles CameraHQBtn.Click
|
||||
Dim sEnableHQ As String = If(CameraHQBtn.IsChecked, "1", "0")
|
||||
WritePrivateProfileString(S_CAMERAHQ, K_CAMERAHQ_ENABLE, sEnableHQ, m_MainWindow.GetMachIniFile())
|
||||
If CameraHQBtn.IsChecked Then
|
||||
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
|
||||
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1HQ.png", UriKind.Relative))
|
||||
End If
|
||||
Else
|
||||
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
|
||||
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1.png", UriKind.Relative))
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub MDITxBx_KeyDown(sender As Object, e As KeyEventArgs) Handles MDITxBx.KeyDown
|
||||
If e.Key = Key.Return Then
|
||||
' leggo se stato reset
|
||||
|
||||
@@ -279,6 +279,12 @@ Public Class MachineStatusUC
|
||||
|
||||
Sub DisplayFeed()
|
||||
Dim dRealFeed As Double = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
||||
' modifica richiesta 26/05/2023 da Rosario per cliente Lanzetta
|
||||
If m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
|
||||
dRealFeed = m_CN.d_DInterpo_Prog_Feed
|
||||
Else
|
||||
dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
||||
End If
|
||||
'Feed = DoubleToString(dRealFeed, 0)
|
||||
FeedTxBx.Text = LenToString(dRealFeed, 0, True)
|
||||
'FeedOverride = DoubleToString(m_CN.d_DInterpo_Feed_override, 0) & "%"
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@
|
||||
</ToggleButton>
|
||||
</Grid>
|
||||
|
||||
<Button Grid.Column="2" Style="{DynamicResource OmagCut_BlueIconButton}" Click="ExitBtn_Click">
|
||||
<Button Name="ExitBtn" Grid.Column="2" Style="{DynamicResource OmagCut_BlueIconButton}" Click="ExitBtn_Click">
|
||||
<Image Source="{DynamicResource XImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
|
||||
+54
-39
@@ -100,6 +100,7 @@ Class MainWindow
|
||||
OFFICE_TYPE = 2 ^ 19 ' 524288
|
||||
REGISTRATION = 2 ^ 20 ' 1048576
|
||||
SIMPLESTATISTICS = 2 ^ 21 ' 2097152
|
||||
COMPOFRAME = 2 ^ 22 ' 4194304
|
||||
End Enum
|
||||
' Opzione nesting automatico
|
||||
Private m_bAutoNest As Boolean = False
|
||||
@@ -323,13 +324,13 @@ Class MainWindow
|
||||
Dim sNestKey As String = ""
|
||||
EgtUILib.GetPrivateProfileString(S_LICENCE, K_NESTKEY, "", sNestKey, sLicFile)
|
||||
EgtSetNestKey(sNestKey)
|
||||
Dim bNetHwKey As Boolean = ( GetPrivateProfileInt(S_GENERAL, K_NETKEY, 0, m_sIniFile) = 1)
|
||||
EgtSetNetHwKey( bNetHwKey)
|
||||
Dim bNetHwKey As Boolean = (GetPrivateProfileInt(S_GENERAL, K_NETKEY, 0, m_sIniFile) = 1)
|
||||
EgtSetNetHwKey(bNetHwKey)
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2505, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2505, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2507, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2507, 1, m_nKeyOptions)
|
||||
' Verifico abilitazione prodotto
|
||||
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
@@ -439,7 +440,7 @@ Class MainWindow
|
||||
|
||||
' abilito il bottone per la gestione del comando di Check-Up-Start (posziona lama prelavorazione)
|
||||
If GetPrivateProfileInt(S_GENERAL, "Test", "0", m_sIniFile) = 0 OrElse
|
||||
Not File.Exists( m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then
|
||||
Not File.Exists(m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then
|
||||
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Collapsed
|
||||
Else
|
||||
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Visible
|
||||
@@ -553,14 +554,14 @@ Class MainWindow
|
||||
|
||||
' è permessa una sola istanza alla volta del programma OmagCUT -> "(1)" : "(" & nIstance.ToString & ")"
|
||||
EgtPHOTOLib.MainData.SetUser(Environment.MachineName & "\" & Environment.UserName & " (1)")
|
||||
Dim sIdKey As String = String.Empty
|
||||
EgtGetKeyInfo(sIdKey)
|
||||
EgtPHOTOLib.MainData.SetKey(sIdKey)
|
||||
End If
|
||||
Dim sIdKey As String = String.Empty
|
||||
EgtGetKeyInfo(sIdKey)
|
||||
EgtPHOTOLib.MainData.SetKey(sIdKey)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
' --------------------------------- SLAB DB -------------------------------------------------------
|
||||
|
||||
ExitBtn.ToolTip = "Exit" & vbCrLf & "Minimize (Shift)"
|
||||
End Sub
|
||||
|
||||
Private Sub ManageSingleIstance()
|
||||
@@ -997,6 +998,16 @@ Class MainWindow
|
||||
' Se già visualizzato errore, lo nascondo
|
||||
If m_CurrentProjectPageUC.OutMessageBrd.IsMouseOver Then
|
||||
m_CurrentProjectPageUC.ClearMessage()
|
||||
' se è premuto il pulsante Shift allora provvedo ad aprire il file di Log
|
||||
If Keyboard.Modifiers And ModifierKeys.Shift Then
|
||||
' Genero file CNC (lancio anche se errore in precedenza)
|
||||
Dim sTemoDirect As String = GetTempDir() & "\OmagCUTLog.txt"
|
||||
Try
|
||||
Process.Start("Notepad.exe", sTemoDirect)
|
||||
Catch ex As Exception
|
||||
EgtOutLog(ex.ToString)
|
||||
End Try
|
||||
End If
|
||||
End If
|
||||
' Condizioni che impediscono di clickare fuori dalla calcolatrice o tastiera quando una di queste è aperta
|
||||
If EgtWPFLib.EgtCalculator.GetbIsActive Then
|
||||
@@ -1087,9 +1098,9 @@ Class MainWindow
|
||||
m_CurrentProjectPageUC.SaveNamedProject()
|
||||
m_CurrentProjectPageUC.SaveProject()
|
||||
End If
|
||||
' Inizio la chiusura del programma (verifico di aver terminato il processo DripFeed)
|
||||
' Inizio la chiusura del programma (se NUM_OLD verifico di aver terminato il processo DripFeed)
|
||||
EgtOutLog("Iniziato processo di chiusura programma")
|
||||
m_IsClosingApplication = 1
|
||||
m_IsClosingApplication = If( m_CNCommunication.m_nNCType = 1, 1, 2)
|
||||
Dim nCount As Integer = 0
|
||||
While m_IsClosingApplication <> 2
|
||||
If nCount > 5 Then
|
||||
@@ -1216,7 +1227,7 @@ Class MainWindow
|
||||
Private Sub MainWindow_ContentRendered(sender As Object, e As EventArgs) Handles Me.ContentRendered
|
||||
' Verifico presenza del collegamento al CN
|
||||
m_bNCLink = (GetPrivateProfileInt(S_GENERAL, K_CNLINK, 0, m_sIniFile) <> 0) And
|
||||
Not GetKeyOption( KEY_OPT.OFFICE_TYPE)
|
||||
Not GetKeyOption(KEY_OPT.OFFICE_TYPE)
|
||||
m_CNCommunication.CNCommunication_Initialization()
|
||||
' Se linea di produzione abilitata e collegata, lancio relativo timer
|
||||
If m_bNCLink And m_CurrentMachine.bProdLine Then
|
||||
@@ -1293,7 +1304,9 @@ Class MainWindow
|
||||
m_CNCommunication.m_CN.ReadEls_Add_Parameter(m_CurrentMachine.sVarProjFinished, 1)
|
||||
Dim nVarFin As Integer = 0
|
||||
For I As Integer = 1 To 4
|
||||
System.Threading.Thread.Sleep(50)
|
||||
If Not m_CurrentMachine.bDemo Then
|
||||
System.Threading.Thread.Sleep(50)
|
||||
End If
|
||||
If m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then
|
||||
nVarFin = CInt(m_CNCommunication.m_CN.d_DReadELS_value)
|
||||
Exit For
|
||||
@@ -1306,11 +1319,11 @@ Class MainWindow
|
||||
' Salvo in INI indice del progetto terminato
|
||||
WritePrivateProfileString(S_GENERAL, K_LASTPROJFINISHED, nVarFin.ToString("D4"), GetIniFile())
|
||||
' Salvo in INI data e ora attuali di termine lavorazione del progetto (solo gli ultimi 10 tramite modulo)
|
||||
Dim sKey As String = K_DATETIMEFINISHED & "." & ( nVarFin Mod 10).ToString()
|
||||
Dim sKey As String = K_DATETIMEFINISHED & "." & (nVarFin Mod 10).ToString()
|
||||
Dim sDateTime As String = My.Computer.Clock.LocalTime.ToString("dd.MM.yyyy HH\:mm\:ss")
|
||||
WritePrivateProfileString(S_GENERAL, sKey, sDateTime, GetIniFile())
|
||||
' Eseguo script
|
||||
ExecFinishedProgScript( nVarFin, sDateTime)
|
||||
ExecFinishedProgScript(nVarFin, sDateTime)
|
||||
End If
|
||||
End If
|
||||
' Se OmagVIEW blocca, esco (riproverò al prossimo giro)
|
||||
@@ -1346,16 +1359,18 @@ Class MainWindow
|
||||
' Se richieste modalità standard o speciali
|
||||
If m_CurrentMachine.nSaveProduced <> 3 Then
|
||||
StandardAndSpecialViewFileManagement()
|
||||
' altrimenti modalità custom
|
||||
' altrimenti modalità custom
|
||||
Else
|
||||
CustomViewFileManagement( nProjInd)
|
||||
CustomViewFileManagement(nProjInd)
|
||||
End If
|
||||
' Leggo variabile con indice progetto da copiare per OmagVIEW (standard E80025)
|
||||
m_CNCommunication.m_CN.n_DReadELS_handle = 0
|
||||
m_CNCommunication.m_CN.ReadEls_Add_Parameter(m_CurrentMachine.sVarProjCopy, 1)
|
||||
Dim nVarCopy As Integer = 0
|
||||
For I As Integer = 1 To 10
|
||||
System.Threading.Thread.Sleep(50)
|
||||
If Not m_CurrentMachine.bDemo Then
|
||||
System.Threading.Thread.Sleep(50)
|
||||
End If
|
||||
If m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then
|
||||
nVarCopy = CInt(m_CNCommunication.m_CN.d_DReadELS_value)
|
||||
Exit For
|
||||
@@ -1556,7 +1571,7 @@ Class MainWindow
|
||||
nNewProjInd -= 1
|
||||
End While
|
||||
End If
|
||||
' se altrimenti richiesto progetto successivo
|
||||
' se altrimenti richiesto progetto successivo
|
||||
ElseIf nMove > 0 Then
|
||||
nNewProjInd = nProjInd + 1
|
||||
If nProjInd > nLastProj Then
|
||||
@@ -1657,7 +1672,7 @@ Class MainWindow
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error erasing " & sDestEplFile)
|
||||
End Try
|
||||
' altrimenti, ogni commessa ha il suo file dei pezzi rovinati
|
||||
' altrimenti, ogni commessa ha il suo file dei pezzi rovinati
|
||||
Else
|
||||
' Sposto nel direttorio temporaneo
|
||||
Dim sDestEplFile = m_sTempDir & "\" & CURR_PROJ_EPL
|
||||
@@ -1767,7 +1782,7 @@ Class MainWindow
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function CustomViewFileManagement( nProjInd As Integer) As Boolean
|
||||
Private Function CustomViewFileManagement(nProjInd As Integer) As Boolean
|
||||
' Se non esiste file EPL, esco
|
||||
Dim sSouEplFile As String = m_CurrentMachine.sLineDataDir & "\" & CURR_PROJ_EPL
|
||||
If Not My.Computer.FileSystem.FileExists(sSouEplFile) Then Return True
|
||||
@@ -1806,7 +1821,7 @@ Class MainWindow
|
||||
' Verifico progetto restituito da View
|
||||
If nProjInd = 0 Then nProjInd = nLastCopy
|
||||
' Leggo variabile con data termine lavorazione
|
||||
Dim sKey As String = K_DATETIMEFINISHED & "." & ( nProjInd Mod 10).ToString()
|
||||
Dim sKey As String = K_DATETIMEFINISHED & "." & (nProjInd Mod 10).ToString()
|
||||
GetPrivateProfileString(S_GENERAL, sKey, sDateTime, sDateTime, GetIniFile())
|
||||
' Recupero direttorio per pezzi rovinati
|
||||
Dim sRuPartsDir As String = GetRuinedPartsDir()
|
||||
@@ -1833,7 +1848,7 @@ Class MainWindow
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Friend Function ExecSentProgScript( bDirectCut As Boolean, Optional bAlreadySent As Boolean = False) As Boolean
|
||||
Friend Function ExecSentProgScript(bDirectCut As Boolean, Optional bAlreadySent As Boolean = False) As Boolean
|
||||
' Verifico esistenza script
|
||||
Dim sLuaPath As String = m_CurrentMachine.sMachDir() & "\Scripts\SentProg.lua"
|
||||
If Not My.Computer.FileSystem.FileExists(sLuaPath) Then Return True
|
||||
@@ -1852,8 +1867,8 @@ Class MainWindow
|
||||
End If
|
||||
EgtLuaResetGlobVar("SPS")
|
||||
If nErr <> 0 Then
|
||||
EgtOutLog("Error in SentProg : " & nErr.ToString())
|
||||
m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(90325)) 'Errore nel salvataggio delle statistiche
|
||||
EgtOutLog("Error in SentProg : " & nErr.ToString())
|
||||
m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(90325)) 'Errore nel salvataggio delle statistiche
|
||||
End If
|
||||
Return (nErr = 0)
|
||||
End Function
|
||||
@@ -1935,15 +1950,15 @@ Class MainWindow
|
||||
End If
|
||||
' Dichiaro progetto passato da View
|
||||
If nProjInd = m_CurrentProjectPageUC.GetCurrentProject() Then
|
||||
EgtSetInfo( EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1)
|
||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1)
|
||||
Else
|
||||
Dim nTmpCtx As Integer = EgtInitContext()
|
||||
If nTmpCtx <> 0 Then
|
||||
Dim sNgeFile As String = GetSaveDir() & "\" & nProjInd.ToString("D4") & ".nge"
|
||||
EgtOpenFile( sNgeFile)
|
||||
EgtSetInfo( EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1)
|
||||
EgtSaveFile( sNgeFile, NGE.CMPTEXT)
|
||||
EgtDeleteContext( nTmpCtx)
|
||||
EgtOpenFile(sNgeFile)
|
||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1)
|
||||
EgtSaveFile(sNgeFile, NGE.CMPTEXT)
|
||||
EgtDeleteContext(nTmpCtx)
|
||||
EgtSetCurrentContext(m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
||||
End If
|
||||
End If
|
||||
@@ -1977,21 +1992,21 @@ Class MainWindow
|
||||
' Evento che apre AboutBox quando viene clickato il logo
|
||||
Private Sub LogoBrd_MouseDown(sender As Object, e As MouseButtonEventArgs) Handles LogoBrd.MouseDown
|
||||
' Se non premuto Shift -> AboutBox
|
||||
If ( Keyboard.Modifiers And ModifierKeys.Shift) = 0 Then
|
||||
Dim AboutBox As New AboutBoxWD( Me)
|
||||
' Altrimenti lancio cambio macchina (solo uso interno)
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) = 0 Then
|
||||
Dim AboutBox As New AboutBoxWD(Me)
|
||||
' Altrimenti lancio cambio macchina (solo uso interno)
|
||||
Else
|
||||
If m_ActivePage = Pages.CadCut Or m_ActivePage = Pages.FrameCut Then
|
||||
' Cambio macchina
|
||||
EgtLuaCreateGlobTable( "CHM")
|
||||
EgtLuaExecFile( GetConfigDir() & "\ChangeMachine.lua")
|
||||
EgtLuaCreateGlobTable("CHM")
|
||||
EgtLuaExecFile(GetConfigDir() & "\ChangeMachine.lua")
|
||||
Dim nRestart As Integer = 0
|
||||
EgtLuaGetGlobIntVar( "CHM.RESTART", nRestart)
|
||||
EgtLuaResetGlobVar( "CHM")
|
||||
EgtLuaGetGlobIntVar("CHM.RESTART", nRestart)
|
||||
EgtLuaResetGlobVar("CHM")
|
||||
' Riavvio
|
||||
If nRestart = 1 Then
|
||||
Close()
|
||||
Process.Start( Application.ResourceAssembly.Location)
|
||||
Process.Start(Application.ResourceAssembly.Location)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
@@ -62,5 +62,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.5.5.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.2")>
|
||||
<Assembly: AssemblyVersion("2.5.7.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.7.2")>
|
||||
|
||||
@@ -133,6 +133,10 @@ Public Class CNCommunication
|
||||
Refresh()
|
||||
End If
|
||||
|
||||
If Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sClickState) Then
|
||||
ClickOnPolishLine()
|
||||
End If
|
||||
|
||||
m_bTimerBusy = False
|
||||
m_RefreshTimer.Start()
|
||||
Else
|
||||
@@ -499,6 +503,33 @@ Public Class CNCommunication
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub ClickOnPolishLine()
|
||||
' Se richiesto di scattare foto sulla linea di lucidatura
|
||||
m_CN.n_DReadELS_handle = 0
|
||||
m_CN.ReadEls_Add_Parameter(m_MainWindow.m_CurrentMachine.sClickState, 1)
|
||||
Dim nClickState As Integer = 0
|
||||
For I As Integer = 0 To 10
|
||||
System.Threading.Thread.Sleep(50)
|
||||
If m_CN.n_DReadELS_handle = 1 Then
|
||||
nClickState = CInt(m_CN.d_DReadELS_value)
|
||||
If nClickState = 1 Then
|
||||
' procedo a costruire un nuovo file nella cartella indicata in configurazione
|
||||
Try
|
||||
Dim fs As FileStream = File.Create(m_MainWindow.m_CurrentMachine.sClickDir & "\NewClick.txt")
|
||||
' chiudo il file creato
|
||||
fs.Close()
|
||||
' Dichiaro di aver provveduto a comunicare di scattare la foto
|
||||
m_CN.DVariables_WriteVariables2(m_MainWindow.m_CurrentMachine.sClickState, "0")
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error on PolishLine comunication: " & ex.ToString)
|
||||
End Try
|
||||
End If
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Refresh()
|
||||
|
||||
If m_bNewPosData Then
|
||||
@@ -654,6 +685,7 @@ Public Class CNCommunication
|
||||
End If
|
||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.DoorStateChanged(m_CN.nDoorClosedState)
|
||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.ParkingStateChanged(m_CN.bParkingState)
|
||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.HomeStateChanged(m_CN.bHomeState)
|
||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.EnableZoneStateChanged(m_CN.nEnableZone)
|
||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.EnablePcStateChanged(m_CN.nEnablePc)
|
||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.TableUpChanged(m_CN.bTableUpState)
|
||||
@@ -1135,7 +1167,8 @@ Public Class CNCommunication
|
||||
bOk = (m_nNCType > 0)
|
||||
Dim sNumProg As String = String.Empty
|
||||
If m_nNCType = 1 Or m_nNCType = 2 Then
|
||||
sNumProg = "%" & nNumProg.ToString() & ".0"
|
||||
Dim sExtFileCN As String = m_MainWindow.m_CurrentMachine.sExtFileCN
|
||||
sNumProg = "%" & nNumProg.ToString() & sExtFileCN
|
||||
Else
|
||||
sNumProg = nNumProg.ToString()
|
||||
End If
|
||||
|
||||
@@ -144,7 +144,7 @@ Public Class CN_Siemens
|
||||
End Select
|
||||
Else
|
||||
' per verificare che la comunicazione funzioni correttamente
|
||||
EgtOutLog("Modo -read_active_mode-: " & M_MMFiles.SiemensRet.n_param2.ToString)
|
||||
' EgtOutLog("Modo -read_active_mode-: " & M_MMFiles.SiemensRet.n_param2.ToString)
|
||||
Return M_MMFiles.read_active_mode()
|
||||
'Return CShort(M_MMFiles.SiemensRet.n_param2)
|
||||
End If
|
||||
|
||||
@@ -650,9 +650,7 @@ Namespace Fanuc
|
||||
' ...
|
||||
|
||||
Case CnData.Feed ' (2)
|
||||
|
||||
Dim qq As Short = n_temp
|
||||
'd_DInterpo_Prog_Feed = CDbl(CLng(values(n))) ' d_DInterpo_Prog_Feed
|
||||
d_DInterpo_Prog_Feed = CDbl(n_temp) ' d_DInterpo_Prog_Feed
|
||||
|
||||
Case CnData.FeedOvr ' (3) Potenziom. Feed = * 0.47059
|
||||
d_DInterpo_Feed_override = CDbl(n_temp)
|
||||
|
||||
@@ -1340,6 +1340,12 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\RefTab.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\PhotoHQ.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\icone-tagli-1HQ.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
||||
|
||||
@@ -1400,7 +1400,8 @@ Public Class CurrentProjectPageUC
|
||||
|
||||
Friend Sub ClearMessage()
|
||||
OutMessageBrd.Background = Brushes.Transparent
|
||||
OutMessageBrd.Visibility = Windows.Visibility.Hidden
|
||||
OutMessageTxBl.Text = ""
|
||||
'OutMessageBrd.Visibility = Windows.Visibility.Hidden
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.Drawing
|
||||
Imports System.IO
|
||||
Imports System.Windows.Forms.Integration
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib
|
||||
|
||||
@@ -32,6 +33,7 @@ Public Class ProjectMgrUC
|
||||
WorkBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 2) 'Work - Lavora
|
||||
End If
|
||||
TestBtn.ToolTip = EgtMsg(90255) 'Test
|
||||
ResetCutBtn.ToolTip = "Reset Cuts" & vbCrLf & "Reset Feed (Shift)"
|
||||
End Sub
|
||||
|
||||
Private Sub ProjectMgrUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
@@ -250,6 +252,11 @@ Public Class ProjectMgrUC
|
||||
End Sub
|
||||
|
||||
Private Sub ResetCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles ResetCutBtn.Click
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) Then
|
||||
' eseguo il ricalcolo delle sole FEED di lavorazione
|
||||
UpdateFeedAllMachining()
|
||||
Return
|
||||
End If
|
||||
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||
' Cancello eventuali messaggi
|
||||
m_CurrProjPage.ClearMessage()
|
||||
@@ -263,6 +270,8 @@ Public Class ProjectMgrUC
|
||||
Dim nWarn As Integer = 0
|
||||
ResetAllMachinings(nWarn)
|
||||
If nWarn = 1 Then m_CurrProjPage.SetWarningMessage(EgtMsg(MSG_SPLITPAGEUC + 11)) ' Lama troppo grande per utilizzo ventosa
|
||||
' Se eistono elimino i grezzi delle fasi che non contengono lavorazioni
|
||||
ResetAllRawPart()
|
||||
' Aggiorno Info C Home
|
||||
Dim dCHome As Double
|
||||
EgtGetAxisHomePos("C", dCHome)
|
||||
@@ -709,6 +718,112 @@ Public Class ProjectMgrUC
|
||||
End While
|
||||
End Sub
|
||||
|
||||
Public Sub UpdateFeedAllMachining()
|
||||
' recupero il valore di Feed della lavorazione corrente
|
||||
Dim sMachiningName As String = String.Empty
|
||||
If Not EgtMdbGetCurrMachiningParam(MCH_MP.NAME, sMachiningName) Then
|
||||
' errore: lavorazione non trovata
|
||||
EgtOutLog(" - Prima di 'Reset Feed' accedere alla pagina MACCHINA!")
|
||||
'm_MainWindow.m_CurrentProjectPageUC.SetErrorMessage("Salvare la lavorazione corrente")
|
||||
Return
|
||||
End If
|
||||
Dim dFeed As Double = 0
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.FEED, dFeed)
|
||||
Dim dFeedStarted As Double = 0
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.STARTFEED, dFeedStarted)
|
||||
Dim dFeedEnded As Double = 0
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.ENDFEED, dFeedEnded)
|
||||
Dim dFeedTipped As Double = 0
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.TIPFEED, dFeedTipped)
|
||||
Dim dFeedBack As Double = 0
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.BACKFEED, dFeedBack)
|
||||
Dim dFeedSideAng As Double = 0
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.SIDEANGFEED, dFeedSideAng)
|
||||
Dim MachiningList As New List(Of SplitMach)
|
||||
|
||||
' Recupero l'indice della fase corrente
|
||||
Dim nCurrPhase As Integer = 1
|
||||
' recupero in numero di fasi presenti nel progetto
|
||||
Dim nCountPhase As Integer = EgtGetPhaseCount()
|
||||
' ciclo su tutte le fasi di lavorazione
|
||||
Dim nMach As Integer = 0
|
||||
Dim nMachUpdated As Integer = 0
|
||||
For IndexPhase As Integer = 1 To nCountPhase
|
||||
' imposto la fase corrente
|
||||
nCurrPhase = IndexPhase
|
||||
' Preparo la lista delle lavorazioni
|
||||
CalculateSplitMachList(nCurrPhase, MachiningList)
|
||||
' per ogni lavorazione corrente procedo ad aggiornare la feed
|
||||
For IndexMachining As Integer = 0 To MachiningList.Count - 1
|
||||
nMach += 1
|
||||
Dim nOperId As Integer = MachiningList(IndexMachining).m_nId
|
||||
' setto la lavorazione come corrente
|
||||
If EgtSetCurrMachining(nOperId) Then
|
||||
Dim bUpdate As Boolean = False
|
||||
' STANDARD
|
||||
Dim dOrigFeed As Double
|
||||
EgtGetMachiningParam(MCH_MP.FEED, dOrigFeed)
|
||||
' imposto il valore di Feed solo se differente da quello nuovo
|
||||
If Math.Abs(dOrigFeed - dFeed) > 0.1 Then
|
||||
bUpdate = bUpdate Or EgtSetMachiningParam(MCH_MP.FEED, dFeed)
|
||||
' aggiorno la lavorazione (senza il ricalcolo dell'intera lavorazione)
|
||||
EgtApplyMachining(True)
|
||||
End If
|
||||
' STARTED
|
||||
Dim dOrigFeedStarted As Double
|
||||
EgtGetMachiningParam(MCH_MP.STARTFEED, dOrigFeedStarted)
|
||||
' imposto il valore di Feed solo se differente da quello nuovo
|
||||
If Math.Abs(dOrigFeedStarted - dFeedStarted) > 0.1 Then
|
||||
bUpdate = bUpdate Or EgtSetMachiningParam(MCH_MP.STARTFEED, dFeedStarted)
|
||||
' aggiorno la lavorazione (senza il ricalcolo dell'intera lavorazione)
|
||||
EgtApplyMachining(True)
|
||||
End If
|
||||
' ENDED
|
||||
Dim dOrigFeedEnded As Double
|
||||
EgtGetMachiningParam(MCH_MP.ENDFEED, dOrigFeedEnded)
|
||||
' imposto il valore di Feed solo se differente da quello nuovo
|
||||
If Math.Abs(dOrigFeedEnded - dFeedEnded) > 0.1 Then
|
||||
bUpdate = bUpdate Or EgtSetMachiningParam(MCH_MP.ENDFEED, dFeedEnded)
|
||||
' aggiorno la lavorazione (senza il ricalcolo dell'intera lavorazione)
|
||||
EgtApplyMachining(True)
|
||||
End If
|
||||
' TIPPED
|
||||
Dim dOrigFeedTipped As Double
|
||||
EgtGetMachiningParam(MCH_MP.TIPFEED, dOrigFeedTipped)
|
||||
' imposto il valore di Feed solo se differente da quello nuovo
|
||||
If Math.Abs(dOrigFeedTipped - dFeedTipped) > 0.1 Then
|
||||
bUpdate = bUpdate Or EgtSetMachiningParam(MCH_MP.TIPFEED, dFeedTipped)
|
||||
' aggiorno la lavorazione (senza il ricalcolo dell'intera lavorazione)
|
||||
EgtApplyMachining(True)
|
||||
End If
|
||||
' BACK
|
||||
Dim dOrigFeedBack As Double
|
||||
EgtGetMachiningParam(MCH_MP.BACKFEED, dOrigFeedBack)
|
||||
' imposto il valore di Feed solo se differente da quello nuovo
|
||||
If Math.Abs(dOrigFeedBack - dFeedBack) > 0.1 Then
|
||||
bUpdate = bUpdate Or EgtSetMachiningParam(MCH_MP.BACKFEED, dFeedBack)
|
||||
' aggiorno la lavorazione (senza il ricalcolo dell'intera lavorazione)
|
||||
EgtApplyMachining(True)
|
||||
End If
|
||||
' SIDEANG
|
||||
Dim dOrigFeedSideAng As Double
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.SIDEANGFEED, dOrigFeedSideAng)
|
||||
' imposto il valore di Feed solo se differente da quello nuovo
|
||||
If Math.Abs(dOrigFeedBack - dFeedSideAng) > 0.1 Then
|
||||
bUpdate = bUpdate Or EgtSetMachiningParam(MCH_MP.SIDEANGFEED, dFeedSideAng)
|
||||
' aggiorno la lavorazione (senza il ricalcolo dell'intera lavorazione)
|
||||
EgtApplyMachining(True)
|
||||
End If
|
||||
' conto il numero di lavorazioni aggiornate
|
||||
If bUpdate Then
|
||||
nMachUpdated += 1
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage("Lavorazione aggiornate: " & nMachUpdated & "/ " & nMach)
|
||||
End Sub
|
||||
|
||||
' ------------------------------------------------ GENERA COMANDI CNC MOVIMENTO ------------------------------------------------
|
||||
Private Sub ExecuteCommandCNC(ptMid As Point3d, dAngC As Double, dAngB As Double)
|
||||
|
||||
|
||||
@@ -205,6 +205,12 @@ Public Class Camera
|
||||
Dim nInd As Integer = 1
|
||||
If m_nCameraCount = 2 Then
|
||||
nInd = GetCurrentTable()
|
||||
' verifico se la macchina è configurata per fotocamera sulla tavola di lavoro
|
||||
If (GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ENABLE, 0, m_MainWindow.GetMachIniFile()) <> 0) AndAlso
|
||||
(GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ACTIVATE, 0, m_MainWindow.GetMachIniFile()) <> 0) Then
|
||||
' forzo l'utilizzo della seconda camera (sopra alla tavola di lavoro)
|
||||
nInd = 2
|
||||
End If
|
||||
If nInd <> 1 And nInd <> 2 Then Return 0
|
||||
End If
|
||||
' Se gestore macchina non attivo, lo lancio in modo cieco
|
||||
@@ -315,6 +321,16 @@ Public Class Camera
|
||||
GetPrivateProfileString(S_NCDATA, K_SPOTLIGHT2, "", sPLCVarSpotLight2, m_MainWindow.GetMachIniFile())
|
||||
Dim nPhotoDeley As Integer = GetPrivateProfileInt(S_NCNUM, K_PHOTODELEY, "100", m_MainWindow.GetMachIniFile())
|
||||
|
||||
' eventualmente rimuovo inizio stringa: "PLC, ___"
|
||||
Dim sItemString1() As String = Split(sPLCVarSpotLight1, ","c)
|
||||
If sItemString1.Count > 1 Then
|
||||
sPLCVarSpotLight1 = sItemString1(1).Trim
|
||||
End If
|
||||
Dim sItemString2() As String = Split(sPLCVarSpotLight2, ","c)
|
||||
If sItemString2.Count > 1 Then
|
||||
sPLCVarSpotLight2 = sItemString2(1).Trim
|
||||
End If
|
||||
|
||||
Select Case m_MainWindow.m_CNCommunication.m_nNCType
|
||||
Case 1, 2
|
||||
If m_MainWindow.m_CNCommunication.m_nNCType = 2 Then
|
||||
|
||||
@@ -1420,7 +1420,7 @@ Public Class RawPartPageUC
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then
|
||||
If Not EgtSetCalcTool("", LASER_HEAD, 1) Then
|
||||
Return False
|
||||
End If
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
@@ -1432,6 +1432,10 @@ Public Class RawPartPageUC
|
||||
' Porto il tip nell'origine tavola
|
||||
ptAcquired = ptTipP1
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
EgtOutLog("Actual axis laser H3: L1=" & dL1.ToString & ", L2=" & dL2.ToString & ", L3=" & dL3.ToString &
|
||||
", R1=" & dR1.ToString & ", R2=" & dR2.ToString)
|
||||
EgtOutLog("Actual pos laser H3: " & ptTipP1.x.ToString & "," & ptTipP1.y.ToString & "," & ptTipP1.z.ToString &
|
||||
"; on table: " & ptAcquired.x.ToString & "," & ptAcquired.y.ToString & "," & ptAcquired.z.ToString)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
@@ -1449,6 +1453,8 @@ Public Class RawPartPageUC
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then
|
||||
EgtOutLog("Actual pos " & sHead & ": L1=" & dL1.ToString & ", L2=" & dL2.ToString & ", L3=" & dL3.ToString &
|
||||
", R1=" & dR1.ToString & ", R2=" & dR2.ToString)
|
||||
Return False
|
||||
End If
|
||||
' Porto il tip nell'origine tavola
|
||||
@@ -2060,6 +2066,7 @@ Public Class RawPartPageUC
|
||||
End Sub
|
||||
|
||||
Public Sub RefTabModeChange()
|
||||
If Not m_bOtherRefTab Then Return
|
||||
MoveRawToMaiRefTab()
|
||||
MoveRawToOtherRefTab()
|
||||
UpdateRefTabDraw()
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
@@ -567,16 +567,56 @@ Public Class SimulationPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub GenerateXPIUC_Click(sender As Object, e As RoutedEventArgs)
|
||||
' eventualmente fermo la simulazione
|
||||
m_nStatus = MCH_SIM_ST.UI_STOP
|
||||
m_bPlay = False
|
||||
PlayPauseBtn_Click(Nothing, Nothing)
|
||||
|
||||
' se il bottone Shift è premuto apro il file CadCut1 nel programma NotePad
|
||||
Dim IsPressedShiftKey As Boolean = False
|
||||
If Keyboard.Modifiers And ModifierKeys.Shift Then
|
||||
IsPressedShiftKey = True
|
||||
End If
|
||||
|
||||
' eventualmente fermo la simulazione
|
||||
m_nStatus = MCH_SIM_ST.UI_STOP
|
||||
m_bPlay = False
|
||||
PlayPauseBtn_Click(Nothing, Nothing)
|
||||
|
||||
' Se nella pagina di tagli diretti
|
||||
If m_MainWindow.DirectCutBtn.IsChecked And Not m_MainWindow.CadCutBtn.IsChecked Then
|
||||
' Genero file CNC (lancio anche se errore in precedenza)
|
||||
Dim sCncPathDirect As String = m_MainWindow.GetCncDir() & "\DirectCut" & m_MainWindow.m_CurrentMachine.sIsoFileExt
|
||||
Dim bOkDirect As Boolean = EgtGenerate(sCncPathDirect, "OmagCut ver." & m_MainWindow.GetVersion())
|
||||
|
||||
' Costringo ad aggiornare UI
|
||||
UpdateUI()
|
||||
' Ripristino come fase corrente quella iniziale
|
||||
EgtSetCurrPhase(1)
|
||||
If bOkDirect Then
|
||||
m_CurrProjPage.SetInfoMessage("Genarato file " & "DirectCut" & m_MainWindow.m_CurrentMachine.sIsoFileExt)
|
||||
Else
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90314)) 'Errore nella generazione del programma CN
|
||||
End If
|
||||
' procedo all'apertura del file CadCut1 apenna generato (solo se generazione corretta)
|
||||
If bOkDirect And IsPressedShiftKey Then
|
||||
Try
|
||||
Process.Start("Notepad.exe", sCncPathDirect)
|
||||
Catch ex As Exception
|
||||
EgtOutLog(ex.ToString)
|
||||
End Try
|
||||
End If
|
||||
' ricarico la pagina di simulazione
|
||||
EgtSetCurrPhase(1)
|
||||
' nascondo i pezzi in parcheggio
|
||||
HideParkedParts(True)
|
||||
' Avvio ambiente di simulazione
|
||||
EgtSimInit()
|
||||
EgtSimStart()
|
||||
' Imposto stato corrente
|
||||
SetStatus(MCH_SIM_ST.UI_STOP)
|
||||
m_bPlay = True
|
||||
' Costringo ad aggiornare UI
|
||||
UpdateUI()
|
||||
' esco
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim bOk As Boolean = True
|
||||
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||
' Elimino eventuale attrezzaggio da OmagOFFICE
|
||||
|
||||
Reference in New Issue
Block a user