Compare commits

...

7 Commits

Author SHA1 Message Date
NicolaP 4f12bce90a Aggiunta icona per generazione CN 2022-04-27 18:47:31 +02:00
NicolaP 915d3c0408 Generazione file CadCut dalla pagina della simulazione 2022-04-14 10:59:40 +02:00
NicolaP dc31665029 Aggiornamento versione 2022-04-11 13:02:25 +02:00
NicolaP e98e9ed416 Correzione spianatura con fresa 2022-04-11 12:56:58 +02:00
NicolaP 2710d72a73 Migliorata gestione selezione tagli in SplitPage 2022-03-21 14:19:03 +01:00
NicolaP ccfb1a5179 Merge branch 'Features/New_manage_Park' 2022-03-10 11:59:42 +01:00
NicolaP 26e00416c5 Correzione apertura progetti Frame 2022-03-10 11:53:41 +01:00
15 changed files with 288 additions and 82 deletions
+124 -32
View File
@@ -410,25 +410,38 @@ Public Class SplitPageUC
VerifyHomogenousMachining(ItemList)
ItemList.Sort(Function(x, y) Comparer(Of Integer).Default.Compare(m_ItemList.IndexOf(x), m_ItemList.IndexOf(y)))
' verifico che siano contigui
Dim bContigus As Boolean = False
Dim OrdIndex = 0
OrdIndex = MachiningLsBx.SelectedItems(MachiningLsBx.SelectedItems.Count - 1).Ind
Dim LastSel As NameIdLsBxItem = MachiningLsBx.SelectedItems(MachiningLsBx.SelectedItems.Count - 1)
If MachiningLsBx.SelectedItems.Count = 1 Then
bContigus = True
If VerifyContinuity(ItemList) Then
MoveUpBtn.IsEnabled = True
MoveDownBtn.IsEnabled = 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)
MoveUpBtn.IsEnabled = False
MoveDownBtn.IsEnabled = False
End If
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
@@ -497,6 +510,9 @@ Public Class SplitPageUC
Private Sub OnOffBtn_Click(sender As Object, e As RoutedEventArgs) Handles OnOffBtn.Click
If m_CurrFirstInd = -1 Then Return
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
If m_MachiningList(nI).m_bEnabled Then
m_MachiningList(nI).m_bEnabled = False
@@ -557,6 +573,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
' Provo ad entrambi gli estremi
Dim bModif As Boolean = AdjustBothCuts(nI)
@@ -582,6 +601,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
' Eseguo
If AdjustEndCut(nI) Then
@@ -601,6 +623,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
' Eseguo
If AdjustStartCut(nI) Then
@@ -729,6 +754,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
@@ -827,6 +855,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
@@ -966,6 +997,8 @@ Public Class SplitPageUC
Private Sub ModifStartBtn_Click(sender As Object, e As RoutedEventArgs) Handles ModifStartBtn.Click
' abilito la finestra per inserire i valori solo per il primo elemento della lista (di default tutti gli altri oggetti assumono lo stesso valore)
Dim bFirstInd As Boolean = True
Dim bFirstMill As Boolean = True
Dim bFirstWJ As Boolean = True
' elenco delle variabili : MCH_MY.SAWING/MCH_MY.MILLING
Dim dUsal As Double = 0
@@ -980,6 +1013,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
Dim nOperId As Integer = m_MachiningList(nI).m_nId
Dim nMachiningType As Integer = EgtGetOperationType(nOperId)
@@ -993,7 +1029,7 @@ Public Class SplitPageUC
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then
' Dialogo richiesta valore
Dim ValWnd As New EditValueWD(m_MainWindow, EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
Dim ValWnd As New EditValueWD(m_MainWindow, "SAW: " & EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
ValWnd.SetVal(dOrigUsal)
If Not ValWnd.ShowDialog() Then Return
' carico il valore letto dal testierino virtuale
@@ -1045,16 +1081,16 @@ Public Class SplitPageUC
' leggo il valore salvato nella geometria
Dim dOrigUsal As Double = 0
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
If bFirstInd Then
If bFirstMill Then
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
' Dialogo richiesta valore
Dim ValWnd As New EditValueWD(m_MainWindow, EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
Dim ValWnd As New EditValueWD(m_MainWindow, "MILL: " & EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
ValWnd.SetVal(dOrigUsal)
If Not ValWnd.ShowDialog() Then Return
' carico il valore letto dal testierino virtuale
dUsal = ValWnd.GetVal()
' comunico che ho letto il primo dato
bFirstInd = False
bFirstMill = False
End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
@@ -1071,7 +1107,7 @@ Public Class SplitPageUC
ElseIf nMachiningType = MCH_MY.WATERJETTING Then
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then
If bFirstWJ Then
' Recupero i valori attuali della lavorazione
Dim bOriginalIsLeadIn As Boolean = True
Dim dOriginalAddLen As Double = 0
@@ -1086,7 +1122,7 @@ Public Class SplitPageUC
EgtGetMachiningParam(MCH_MP.LIPERP, nOriginalPerpDist)
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nOriginalLeadInType)
' Dialogo richiesta valori
Dim ModifStartWnd As New ModifStartEndWD(m_MainWindow, EgtMsg(MSG_SPLITPAGEUC + 33), bOriginalIsLeadIn, nOperId) ' Inizio Modif.
Dim ModifStartWnd As New ModifStartEndWD(m_MainWindow, "WJ: " & EgtMsg(MSG_SPLITPAGEUC + 33), bOriginalIsLeadIn, nOperId) ' Inizio Modif.
ModifStartWnd.SetElongation(dOriginalAddLen)
ModifStartWnd.SetHole(bOriginalLiHole)
ModifStartWnd.SetLiTangDist(nOriginalTangDist)
@@ -1101,7 +1137,7 @@ Public Class SplitPageUC
nWJPerpDist = ModifStartWnd.GetLiPerpDist()
nWJLeadInType = ModifStartWnd.GetLeadInType().Id
' comunico che ho letto il primo dato
bFirstInd = False
bFirstWJ = False
End If
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
@@ -1132,6 +1168,8 @@ Public Class SplitPageUC
Private Sub ModifEndBtn_Click(sender As Object, e As RoutedEventArgs) Handles ModifEndBtn.Click
' abilito la finestra per inserire i valori solo per il primo elemento della lista (di default tutti gli altri oggetti assumono lo stesso valore)
Dim bFirstInd As Boolean = True
Dim bFirstMill As Boolean = True
Dim bFirstWJ As Boolean = True
' elenco delle variabili : MCH_MY.SAWING/MCH_MY.MILLING
Dim dUeal As Double = 0
@@ -1145,6 +1183,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
Dim nOperId As Integer = m_MachiningList(nI).m_nId
Dim nMachiningType As Integer = EgtGetOperationType(nOperId)
@@ -1158,7 +1199,7 @@ Public Class SplitPageUC
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then
' Dialogo richiesta valore
Dim ValWnd As New EditValueWD(m_MainWindow, EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
Dim ValWnd As New EditValueWD(m_MainWindow, "SAW: " & EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
ValWnd.SetVal(dOrigUeal)
If Not ValWnd.ShowDialog() Then Return
dUeal = ValWnd.GetVal()
@@ -1208,13 +1249,13 @@ Public Class SplitPageUC
Dim dOrigUeal As Double = 0
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then
If bFirstMill Then
' Dialogo richiesta valore
Dim ValWnd As New EditValueWD(m_MainWindow, EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
Dim ValWnd As New EditValueWD(m_MainWindow, "MILL: " & EgtMsg(MSG_SPLITPAGEUC + 35)) ' Allungamento
ValWnd.SetVal(dOrigUeal)
If Not ValWnd.ShowDialog() Then Return
dUeal = ValWnd.GetVal()
bFirstInd = False
bFirstMill = False
End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
' Modifica della lavorazione
@@ -1228,7 +1269,7 @@ Public Class SplitPageUC
' se altrimenti getto d'acqua
ElseIf nMachiningType = MCH_MY.WATERJETTING Then
If bFirstInd Then
If bFirstWJ Then
' Recupero i valori attuali della lavorazione
Dim dAddLen As Double = 0
Dim LeadOutType As Integer = 0
@@ -1240,7 +1281,7 @@ Public Class SplitPageUC
EgtGetMachiningParam(MCH_MP.LOTANG, nTangDist)
EgtGetMachiningParam(MCH_MP.LOPERP, nPerpDist)
' Dialogo richiesta valore
Dim ModifStartWnd As New ModifStartEndWD(m_MainWindow, EgtMsg(MSG_SPLITPAGEUC + 34), False, nOperId) ' Fine Modif.
Dim ModifStartWnd As New ModifStartEndWD(m_MainWindow, "WJ: " & EgtMsg(MSG_SPLITPAGEUC + 34), False, nOperId) ' Fine Modif.
ModifStartWnd.SetElongation(dAddLen)
ModifStartWnd.SetLeadOutType(LeadOutType)
ModifStartWnd.SetLoTangDist(nTangDist)
@@ -1250,7 +1291,7 @@ Public Class SplitPageUC
WJLeadOutType = ModifStartWnd.GetLeadOutType().Id
nWJTangDist = ModifStartWnd.GetLoTangDist()
nWJPerpDist = ModifStartWnd.GetLoPerpDist()
bFirstInd = False
bFirstWJ = False
End If
' Modifica della lavorazione
@@ -1278,6 +1319,9 @@ Public Class SplitPageUC
Private Sub InvertBtn_Click(sender As Object, e As RoutedEventArgs) Handles InvertBtn.Click
If m_CurrFirstInd = -1 Then Return
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
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
@@ -1323,6 +1367,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
Dim nI As Integer = m_ItemList(Index).Ind
Dim nOperId As Integer = m_MachiningList(nI).m_nId
If GetPause(nOperId) Then
@@ -1645,6 +1692,37 @@ Public Class SplitPageUC
End If
End Sub
Private Function VerifyContinuity(ItemList As List(Of NameIdLsBxItem)) As Boolean
If ItemList.Count < 2 Then Return True
Dim bContigus As Boolean = False
For Index As Integer = 0 To ItemList.Count - 2
If ItemList(Index).Ind = ItemList(Index + 1).Ind + 1 Or ItemList(Index).Ind = ItemList(Index + 1).Ind - 1 Then
bContigus = True
Else
bContigus = False
Exit For
End If
Next
Return bContigus
End Function
Private Sub GetCurrSelection()
For Each Item As NameIdLsBxItem In m_ItemList
Item.IsSelected = False
Next
' recupero il numero di elementi selezionati
Dim nCount As Integer = MachiningLsBx.SelectedItems.Count
For Index As Integer = 0 To nCount - 1
Dim Local_ItemTemplate As NameIdLsBxItem = MachiningLsBx.SelectedItems(Index)
For Each Item As NameIdLsBxItem In m_ItemList
If Item.Ind = Local_ItemTemplate.Ind Then
Item.IsSelected = True
Exit For
End If
Next
Next
End Sub
Private Sub VisibilityButtonFromMachinig(ByVal Type As Integer)
If Type <> MCH_OY.SAWING Then
CutBtn.Visibility = Visibility.Hidden
@@ -1854,7 +1932,10 @@ Public Class SplitPageUC
EgtDisableModified()
' cancello evidenziazione
If m_CurrFirstInd >= 0 Then
For Index As integer = m_CurrFirstInd To m_CurrLastInd
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
If Not m_ItemList(Index).IsSelected Then
Continue For
End If
MarkMachining(m_ItemList(Index).Ind, False)
Next
m_CurrFirstInd = -1
@@ -1913,6 +1994,8 @@ Public Class SplitPageUC
Private m_bIsActive As Boolean
Private m_nType As Integer
Private m_IsSelected As Boolean
Public Property Ind As Integer
Get
Return m_nInd
@@ -1955,6 +2038,15 @@ Public Class SplitPageUC
End Set
End Property
Public Property IsSelected As Boolean
Get
Return m_IsSelected
End Get
Set(value As Boolean)
m_IsSelected = value
End Set
End Property
Sub New(Name As String, Ind As Integer, bIsActive As Boolean, nType As Integer)
Me.m_sName = Name
Me.m_nInd = Ind
+4
View File
@@ -46,6 +46,10 @@ Module ConstIni
Public Const K_THEME As String = "Theme"
Public Const K_MANUAL_CUT As String = "ManualCut"
Public Const K_TEST As String = "Test"
Public Const K_SMARTMACHININGPAGE As String = "SmartMachiningPage"
Public Const K_STARTPROGRAM As String = "StartProgram"
Public Const K_GENERATECN As String = "GenerateCN"
Public Const S_LANGUAGES As String = "Languages"
Public Const K_LANGUAGE As String = "Language"
+2 -1
View File
@@ -644,7 +644,8 @@ Public Class FlatteningCut
Dim nPartId = EgtCreateGroup(GDB_ID.ROOT)
EgtSetName(nPartId, NAME_DIRECTCUT)
Dim nLayerId = EgtCreateGroup(nPartId)
EgtSetName(nLayerId, NAME_OUTLOOP)
' EgtSetName(nLayerId, NAME_OUTLOOP)
EgtSetName(nLayerId, NAME_ONPATH)
' Creo il taglio
Dim ptStart As Point3d = m_ptTipP1
ptStart.z = 0
+4 -4
View File
@@ -323,8 +323,8 @@ Class MainWindow
' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2402, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2402, 1, m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2404, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2404, 1, m_nKeyOptions)
' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
' Inizializzazione generale di EgtInterface
@@ -758,8 +758,8 @@ Class MainWindow
m_ActivePage = Pages.FrameCut
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV
' Pages.Simulation: quando sono nella simulazione devo uscire dalla pagina
CadCutBtn.IsChecked = True
FrameCutBtn.IsChecked = False
CadCutBtn.IsChecked = False
FrameCutBtn.IsChecked = True
Case Pages.FrameCut
FrameCutBtn.IsChecked = True
Case Pages.Machine
+2 -2
View File
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.4.2.3")>
<Assembly: AssemblyFileVersion("2.4.2.3")>
<Assembly: AssemblyVersion("2.4.4.1")>
<Assembly: AssemblyFileVersion("2.4.4.1")>
+6
View File
@@ -1249,6 +1249,12 @@
<Resource Include="Resources\Spiral.png" />
<Resource Include="Resources\NewIcons\Drag_Rettangle.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\GenerateCN.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\GenerateCN.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
+1
View File
@@ -46,6 +46,7 @@
<BitmapImage x:Key="DownArrowImg" UriSource="Resources/NewIcons/DownArrow.png"></BitmapImage>
<BitmapImage x:Key="DrawImg" UriSource="Resources/NewIcons/icone-tagli-3.png"></BitmapImage>
<BitmapImage x:Key="FrameMachiningImg" UriSource="Resources/NewIcons/FrameMachining.png"></BitmapImage>
<BitmapImage x:Key="GenerateCNImg" UriSource="Resources/NewIcons/GenerateCN.png"></BitmapImage>
<BitmapImage x:Key="GenericViewImg" UriSource="Resources/NewIcons/GenericView.png"></BitmapImage>
<BitmapImage x:Key="HalfTurnRotateImg" UriSource="Resources/Negative/HalfTurnRotate.png"></BitmapImage>
<BitmapImage x:Key="ImportImg" UriSource="Resources/NewIcons/icone-tagli-6.png"></BitmapImage>
+1
View File
@@ -116,6 +116,7 @@
<BitmapImage x:Key="DownArrowImg" UriSource="Resources/DownArrow.png"></BitmapImage>
<BitmapImage x:Key="DrawImg" UriSource="Resources/Draw.png"></BitmapImage>
<BitmapImage x:Key="FrameMachiningImg" UriSource="Resources/FrameMachining.png"></BitmapImage>
<BitmapImage x:Key="GenerateCNImg" UriSource="Resources/GenerateCN.png"></BitmapImage>
<BitmapImage x:Key="GenericViewImg" UriSource="Resources/GenericView.png"></BitmapImage>
<BitmapImage x:Key="HalfTurnRotateImg" UriSource="Resources/HalfTurnRotate.png"></BitmapImage>
<BitmapImage x:Key="ImportImg" UriSource="Resources/Import.png"></BitmapImage>
+18 -31
View File
@@ -180,42 +180,12 @@ Public Class CurrentProjectPageUC
EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir())
m_bFirst = False
' ------------------ SELEZIONE AVVIO -----------------------------
' apro la finstra di selezione di avvio del programma
'StartProgram()
' ------------------ SELEZIONE AVVIO -----------------------------
'' Se richiesto, carico ultimo progetto
'Dim bAutoLoadLast As Boolean = GetPrivateProfileInt(S_GENERAL, K_AUTOLOADLASTPROJ, 0, m_MainWindow.GetIniFile()) <> 0
'If bAutoLoadLast Then
' m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
' Dim sPath As String = m_MainWindow.GetSaveDir() & "\" & m_nCurrProj.ToString("D4") & ".nge"
' If Not LoadProject(sPath, False) Then
' NewProject()
' End If
' EgtResetModified()
' 'Altrimenti ne imposto uno nuovo
'Else
' m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
' NewProject()
'End If
' creo nuovo progetto
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
'NewProject()
' Nascondo progress per fotografia
PhotoProgress.Visibility = Windows.Visibility.Hidden
' Carico sottopagina opportuna
If GetProjectType() <> PRJ_TYPE.FRAMES Then
CurrentProjectPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
m_MainWindow.CadCutBtn.IsChecked = True
Else
CurrentProjectPageGrid.Children.Add(m_MainWindow.m_FrameCutPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.FrameCut
m_MainWindow.FrameCutBtn.IsChecked = True
End If
Else
EgtSetCurrentContext(CurrentProjectScene.GetCtx())
@@ -274,8 +244,10 @@ Public Class CurrentProjectPageUC
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_OpenPage)
m_MainWindow.m_ActivePage = MainWindow.Pages.Open
' inizializzo gli oggetti della pagina (non passo dalla funzione Load!)
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.SetReference()
' seleziono il file dalla lista della finestra (= 4)
' seleziono il file dalla lista della finestra (= 4)
ElseIf MyStartLancherWD.CurrSelection = MODE_LAUNCHER.SelectedProject Then
NewProject()
Dim sCurrDir As String = Path.GetDirectoryName(MyStartLancherWD.SelPath)
@@ -304,6 +276,21 @@ Public Class CurrentProjectPageUC
End If
End If
' se apro la finestra "OpenFolder" l'assegnazione dei Children è fatta direttamente nella classe ProjectMgrUC
If MyStartLancherWD.CurrSelection <> MODE_LAUNCHER.OpenFolder Then
' Carico sottopagina opportuna
If GetProjectType() <> PRJ_TYPE.FRAMES Then
CurrentProjectPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
m_MainWindow.CadCutBtn.IsChecked = True
Else
CurrentProjectPageGrid.Children.Add(m_MainWindow.m_FrameCutPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.FrameCut
m_MainWindow.FrameCutBtn.IsChecked = True
End If
End If
End Sub
' questo metodo è direttamente richiamato in caso di selezione della regione sinistra della pagina
+10 -11
View File
@@ -34,9 +34,7 @@ Public Class ProjectMgrUC
Private Sub ProjectMgrUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
' Impostazioni
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_CurrMachine = m_MainWindow.m_CurrentMachine
m_CurrNcComm = m_MainWindow.m_CNCommunication
SetReference()
' Se richiesto carico finestra per VeinMatching e ultimo intarsio
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO) And
@@ -55,6 +53,12 @@ Public Class ProjectMgrUC
End If
End Sub
Public Sub SetReference()
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_CurrMachine = m_MainWindow.m_CurrentMachine
m_CurrNcComm = m_MainWindow.m_CNCommunication
End Sub
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
@@ -466,20 +470,15 @@ Public Class ProjectMgrUC
' se abilitato e non è restart, lancio eventuale lua post-trasmissione
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.SIMPLESTATISTICS) And nPhaseRestart = 0 Then
m_MainWindow.ExecSentProgScript(False)
''-------------------Avvio il Ciclo-Start-------------------------
'Dim MyCicloStartWD As New CicloStartWD(m_MainWindow)
'MyCicloStartWD.ShowDialog()
''-------------------Avvio il Ciclo-Start-------------------------
End If
End If
'-------------------Avvio il Ciclo-Start-------------------------
If GetPrivateProfileInt(S_GENERAL, "StartProgram", 0, m_MainWindow.GetIniFile()) <> 0 Then
'------------------- INIZIO Avvio il Ciclo-Start-------------------------
If GetPrivateProfileInt(S_GENERAL, K_STARTPROGRAM, 0, m_MainWindow.GetIniFile()) <> 0 Then
Dim MyCicloStartWD As New CicloStartWD(m_MainWindow)
MyCicloStartWD.ShowDialog()
End If
'-------------------Avvio il Ciclo-Start-------------------------
'------------------- FINE Avvio il Ciclo-Start-------------------------
' Altrimenti linea di produzione
Else
+1 -1
View File
@@ -142,7 +142,7 @@ Public Class RawPartPageUC
GetPrivateProfileInt(S_RAWPART, K_SLABID, 0, m_MainWindow.GetIniFile()) <> 0)
SlabIdBtn.Visibility = If(m_bSlabId, Windows.Visibility.Visible, Windows.Visibility.Collapsed)
m_SmartMachiningPage = GetPrivateProfileInt(S_GENERAL, "SmartMachiningPage", 0, m_MainWindow.GetIniFile()) <> 0
m_SmartMachiningPage = GetPrivateProfileInt(S_GENERAL, K_SMARTMACHININGPAGE, 0, m_MainWindow.GetIniFile()) <> 0
' Imposto i messaggi letti dal file dei messaggi
OutlineBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 33) 'Rectangle - Rettangolo
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

+3
View File
@@ -240,6 +240,9 @@
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button Name="GenerateCN_Btn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}" Click="GenerateXPIUC_Click">
<Image Source="{DynamicResource GenerateCNImg}" Style="{StaticResource OmagCut_ButtonIcon}" />
</Button>
<Button Grid.Column="2" Style="{DynamicResource OmagCut_GradientBlueIconButton}" Click="ExitBtnUC_Click">
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}" />
</Button>
+112
View File
@@ -1,5 +1,6 @@
Imports System.Runtime.InteropServices
Imports EgtUILib
Imports EgtWPFLib
Public Class SimulationPageUC
' Riferimenti a pagine
@@ -76,6 +77,12 @@ Public Class SimulationPageUC
End If
' Pulsante Play
PlayPauseImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/Play.png", UriKind.Relative))
' abilito la visualizzazione del pulsante per la sola generazione del codice CN
If GetPrivateProfileInt(S_GENERAL, K_GENERATECN, 0, m_MainWindow.GetIniFile()) <> 0 Then
GenerateCN_Btn.Visibility = Visibility.Visible
Else
GenerateCN_Btn.Visibility = Visibility.Hidden
End If
End Sub
Private Sub SimulationPage_Loaded(sender As Object, e As RoutedEventArgs)
@@ -559,6 +566,111 @@ Public Class SimulationPageUC
End Sub
Private Sub GenerateXPIUC_Click(sender As Object, e As RoutedEventArgs)
Dim bOk As Boolean = True
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
' Elimino eventuale attrezzaggio da OmagOFFICE
EgtEraseCurrSetup()
' Verifico l'attrezzaggio degli utensili utilizzati
Dim sMissingTools As String = String.Empty
If Not VerifySetup(sMissingTools) Then
m_CurrProjPage.SetErrorMessage(EgtMsg(90322) & " " & sMissingTools) 'Mancano gli utensili : ...
Return
End If
' Costringo ad aggiornare UI
UpdateUI()
' Aggiorno flag per lavaggio
m_CurrProjPage.UpdateWashingFlag()
' Aggiorno flag per tastatura per tagli con angolo di fianco
m_CurrProjPage.UpdateSideAngCutProbeFlag()
' Se pezzi piani e non c'è ordine delle lavorazioni, ricalcolo tutto e ne faccio uno automatico
Dim nPrjType As Integer = m_CurrProjPage.GetCurrentProjectType()
Dim bDirectCut As Boolean = (GetDirectCutPart() <> GDB_ID.NULL)
If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS And
Not bDirectCut And
Not m_CurrProjPage.GetOrderMachiningFlag() Then
ResetAllMachinings()
bOk = SortAllMachinings()
If bOk Then
m_CurrProjPage.SetOrderMachiningFlag()
Dim bModif As Boolean = TestAllMachiningsForStrict()
If bModif Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze
Else
m_CurrProjPage.SetInfoMessage(EgtMsg(90399)) 'Aggiornate tutte le lavorazioni
End If
EgtDraw()
End If
End If
' Costringo ad aggiornare UI
UpdateUI()
' Disabilito impostazione modificato
EgtDisableModified()
' Aggiorno le lavorazioni
bOk = UpdateAllMachiningsToolpaths() And bOk
' Aggiorno posizionamento ventose sui pezzi per eventuali tagli da sotto con lama
bOk = UpdateVacuumsForDrip() And bOk
' Costringo ad aggiornare UI
UpdateUI()
' Inserisco indice di progetto
m_CurrProjPage.SetProjectIndexFlag()
' Inserisco il materiale
m_CurrProjPage.SetProjectMaterial()
' Salvo il progetto con le lavorazioni
Dim sMchPath As String = m_MainWindow.GetTempDir() & "\MachProj.nge"
m_CurrProjPage.SaveFile(sMchPath)
' Costringo ad aggiornare UI
UpdateUI()
' Se modalità Ufficio, copio il progetto ed esco
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
' Ripristino come fase corrente quella iniziale
EgtSetCurrPhase(1)
' Chiedo il nome del file esportato
Dim MySaveNameWD As New SaveNameWD(m_MainWindow, SaveNameWD.SAVE_TYPE.PRJ_COPY)
MySaveNameWD.ShowDialog()
Return
End If
' Se presente ripartenza, ne chiedo conferma
Dim nPhaseRestart As Integer = m_CurrProjPage.GetProjectNcRestart()
If nPhaseRestart <> 0 Then
' Confermi ripartenza dalla fase NNN ?
Dim AskNcRestart As New EgtMsgBox(m_MainWindow, "", String.Format(EgtMsg(90326), nPhaseRestart),
EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL, 2)
Select Case AskNcRestart.m_nPressedBtn
Case 1 ' YES
Case 2 ' NO
EgtEnableModified()
m_CurrProjPage.ResetProjectNcRestart()
nPhaseRestart = 0
EgtDisableModified()
Case Else ' CANCEL
Return
End Select
End If
' Se abilitate, eseguo le stime
If GetPrivateProfileInt(S_MACH_ESTIMATIONS, K_ENABLEEST, 0, m_MainWindow.GetMachIniFile()) <> 0 Then
EgtEstimate(m_MainWindow.GetTempDir() & "\MachProj.html", "OmagCut ver." & m_MainWindow.GetVersion())
End If
' Genero file CNC (lancio anche se errore in precedenza) -> recupero la tavola corrente! CamAuto.GetCurrentTable()
Dim nIndexTab As Integer = CamAuto.GetCurrentTable()
Dim sIndexTab As String = String.Empty
If nIndexTab > 0 Then
sIndexTab = nIndexTab.ToString
End If
Dim sFileName As String = "CadCut" & sIndexTab
Dim sCncPath As String = m_MainWindow.GetCncDir() & "\" & sFileName & m_MainWindow.m_CurrentMachine.sIsoFileExt
bOk = EgtGenerate(sCncPath, "OmagCut ver." & m_MainWindow.GetVersion()) And bOk
' Costringo ad aggiornare UI
UpdateUI()
' Ripristino come fase corrente quella iniziale
EgtSetCurrPhase(1)
If bOk Then
m_CurrProjPage.SetInfoMessage("Genarato file " & sFileName & m_MainWindow.m_CurrentMachine.sIsoFileExt)
Else
m_CurrProjPage.SetErrorMessage(EgtMsg(90314)) 'Errore nella generazione del programma CN
End If
End Sub
Private Function ProcessEvents(nProg As Integer, nPause As Integer) As Integer
' Visualizzo assi
ShowCncData()