Compare commits

...

107 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
NicolaP 73ebd3ecdb Miglioramento gestione CSV 2022-03-07 20:30:59 +01:00
NicolaP 02acc77521 Correzione import nge con più parts 2022-02-28 20:37:55 +01:00
NicolaP 7f7c63bc07 Correzione definizione variabili 2022-02-28 19:28:07 +01:00
NicolaP 22560f434e Correzione assegnazione Tipo variabili 2022-02-28 18:47:01 +01:00
NicolaP d0c8e3e88b Migliorata gestione GUID (per rotazione) da CSV (Inserisci/Rimuovi), NGE, DXF 2022-02-28 15:41:44 +01:00
NicolaP 1f184a6f7f Gestione rotazione pezzi in parcheggio 2022-02-24 20:27:53 +01:00
NicolaP ea06fe1a9f Merge commit 'f66e5d6da9e7aab77016c0d1ea04bf1d9b94e8d6' into Features/New_manage_Park 2022-02-24 15:39:26 +01:00
NicolaP 5025c6a134 Migliorata gestione file CSV 2022-02-24 14:21:40 +01:00
NicolaP f66e5d6da9 Correzione posizionamento text in fase di DragRectangle 2022-02-24 12:42:37 +01:00
NicolaP ed6c36bff4 Cambio versione 2022-02-23 19:27:30 +01:00
NicolaP 50889df91e Merge commit '4ac0507050fb2a7e9880ad4f1c45b481fe988f3c' 2022-02-23 19:23:06 +01:00
NicolaP 75e3c023ad Merge commit 'd57075b065da56953b217733509f5871bf2ff24a' into Features/New_manage_Park 2022-02-23 19:10:46 +01:00
NicolaP d57075b065 Gestione inserimento di più CSV 2022-02-23 19:01:08 +01:00
NicolaP c3c24cd8e6 Inserimento da nge e dxf 2022-02-21 19:59:24 +01:00
NicolaP 63e708d601 Inserimento da CSV 2022-02-21 19:38:22 +01:00
NicolaP 0849514253 Selezione multipla per inserimento in tavola 2022-02-21 15:28:48 +01:00
NicolaP 703b7c0bad Inizio nuova gestione parcheggio 2022-02-18 16:25:25 +01:00
DarioS a9235820c5 OmagCUT :
- modifiche per nuovo parametro in import/export utensili e lavorazioni
- in WorkInProgress spostato ritardo programmabile nel ciclo.
2022-02-16 09:42:49 +01:00
NicolaP ba59163234 Gestione ritardo lettura assi (WPStepTime) 2022-02-15 19:46:32 +01:00
NicolaP e1897e68b0 Aggiunta configurazione TableUp/Down per AreaCut 2022-02-15 18:11:26 +01:00
NicolaP 86821914b1 Merge branch 'master' of https://gitlab.steamware.net/egaltech/OmagCUT 2022-02-09 19:46:44 +01:00
NicolaP 46abf5ca91 Merge commit '01a9ebf53b6146d3971178fd94b6810da557f58e' 2022-02-09 19:46:04 +01:00
NicolaP 01a9ebf53b Aggiornamento versione 2.4b2 2022-02-09 19:45:19 +01:00
NicolaP e01fbbc35a Correzione dimensione vettreo per nuove variabili 2022-02-09 19:36:43 +01:00
NicolaP c9356a3889 Merge commit 'f07cfdc9dc18b22d7af0657592457d118ef1e2ce' into Features/Nuove_variabili_PLC 2022-02-09 15:57:43 +01:00
NicolaP 4ce940bb0a Nuovi coamandi per gestione PANEL e ZONE 2022-02-09 15:54:51 +01:00
DarioS fd8ac8f528 OmagCUT :
- modifiche per gestione migliorata ventose su macchine tipo Digitale5 con forti limiti di corsa in X
- da polishing tolte epiclici su passate a zigzag.
2022-02-07 18:07:05 +01:00
Samuele Locatelli f07cfdc9dc Merge incoming 2022-02-05 10:46:07 +01:00
DarioS 4f060f3d3d OmagCUT 2.4b1 :
- riportata interfaccia per lucidature con epicicli.
2022-02-04 18:33:31 +01:00
NicolaP 7169fa1fd6 Merge branch 'Features/Comando_Parking_CN' into Features/Nuove_variabili_PLC 2022-02-03 17:14:48 +01:00
NicolaP 6b89e4067c Configurazione pulsante Parking per NUM 2022-02-03 17:07:14 +01:00
NicolaP 4ac0507050 Migliorata la scrittura del codice 2022-02-03 11:37:33 +01:00
NicolaP a6a4f29bba Gestione delle interferenze in fase di Drag 2022-02-02 18:12:24 +01:00
NicolaP 0c9b37742a Inizio Drag rettangoli (ogni lato selezionato senza limiti) manca la gestione dell'uscita dal comando 2022-01-31 20:54:08 +01:00
NicolaP ef5c98020e Cambio versione 2.4a3 2022-01-27 19:38:30 +01:00
NicolaP c2a1fa3fdc Merge branch 'Features/Tagli_Diretti_WaterJet' 2022-01-27 19:36:57 +01:00
NicolaP 319275f43c Gestione TagioGrglio con macchina WaterJet 2022-01-27 19:01:08 +01:00
NicolaP 61d238e196 Gestione TaglioMultiplo con macchina WaterJet 2022-01-27 17:01:07 +01:00
NicolaP 0900728bbf Gestione TaglioSIngolo con macchina solo WaterJet 2022-01-27 13:03:23 +01:00
NicolaP c4ac9e6770 Gestione accensione fari per scatto foto 2022-01-26 12:42:42 +01:00
NicolaP ee83a453e7 Eliminato il campo qualità "" 2022-01-20 19:30:30 +01:00
NicolaP 9109a8cfb7 Correzione gestione parametro Offset, inserita nuova immagine per movimento a spirale 2022-01-20 12:57:46 +01:00
NicolaP f1ab1f1e77 Preparazione nuovi parametri interfaccia Lucidature 2022-01-20 12:12:34 +01:00
NicolaP 7596849254 Migliorato codice 2022-01-19 20:21:30 +01:00
NicolaP e12eb2599e Correzione e miglioramento selezione tagli per Test 2022-01-19 16:14:44 +01:00
NicolaP a0754265ac Correzioni Modifica Inizio/Fine, definizione lista LeadIn, messaggio Cycle-Start 2022-01-17 18:42:29 +01:00
NicolaP 1645a39506 Merge branch 'Correzione_Incidi_(Ovale)' 2022-01-17 16:24:09 +01:00
NicolaP 9e2c2c1b98 Aggiornamento versione 2.4a2 2022-01-17 16:23:21 +01:00
NicolaP 51f15818c2 Merge remote-tracking branch 'origin/DB_WaterJet_Renzo' into Correzione_Incidi_(Ovale) 2022-01-17 16:14:45 +01:00
NicolaP b0081241d8 Merge branch 'Feature/Mach_WaterJet' into Correzione_Incidi_(Ovale) 2022-01-17 16:14:29 +01:00
NicolaP 173230df5a Correzione e modifica impaginazione Lavorazione di Scasso 2022-01-17 15:49:08 +01:00
NicolaP 22afb6edcd Gestione modifica inizio/fine sugli angoli interni 2022-01-17 10:18:57 +01:00
NicolaP 9c8faf25bf Gestione Modifica Inizio/Fine da comando diretto 2022-01-13 18:05:00 +01:00
NicolaP 58775595c7 Gestione minimo accorciamento tagli con cursore 2022-01-12 17:22:45 +01:00
RenzoL 367ac62fc8 Implementato flag FromDBWaterJet per utilizzo Materiali e Qualità WaterJet 2022-01-12 15:43:11 +01:00
NicolaP 9750fdfe75 Selezione da interfaccia delle lavorazioni 2022-01-12 12:27:48 +01:00
NicolaP 39bc4f55ea Merge commit '803a7bdbfc50a45289bb4fddec345318bd22a07d' into Feature/Mach_WaterJet 2022-01-12 10:10:49 +01:00
DarioS 803a7bdbfc OmagCUT :
- piccola correzione su abilitazione Cornici.
2022-01-10 20:27:34 +01:00
NicolaP 1473298705 Merge branch 'Feature/Mach_WaterJet' 2022-01-10 20:17:55 +01:00
NicolaP 4be7087a1b Disabilito tutto quello che riguarda la lama. 2022-01-10 20:17:01 +01:00
NicolaP 7c990987e8 Merge remote-tracking branch 'origin/DB_WaterJet_Renzo' into Feature/Mach_WaterJet 2022-01-10 19:36:56 +01:00
NicolaP 3837895350 Merge remote-tracking branch 'origin/HEAD' into Feature/Mach_WaterJet 2022-01-10 18:49:49 +01:00
NicolaP e5195c5c5c Disabilito info lama se H1 assente 2022-01-10 18:49:09 +01:00
DarioS 17ed0b3807 OmagCUT :
- in Split aggiunta gestione con mouse (drag) di lunghezze di attacchi e uscite di tagli con lama
- corretto problema salvataggio progetto quando non esiste direttorio in cui si dovrebbe trovare la foto.
2022-01-10 18:39:20 +01:00
NicolaP e11722f598 Gestione visualizzazione bottoni in SplitPage 2022-01-10 18:20:28 +01:00
RenzoL 9644529618 Nel Db Waterjet il parametro del Sottomateriale viene selezionato anche quando si clicca una delle TextBox (ulteriore clic per scrivere nella TextBox) 2022-01-10 15:26:04 +01:00
DarioS 0eb6897c08 OmagCUT :
- modifiche per import CSV con angoli di lato e tallone
- salvataggio AGG_DEPTH in lato con taglio inclinato non passante.
2022-01-10 10:18:07 +01:00
DarioS 8462554421 OmagCUT 2.4a1 :
- sistemata acquisizione punto da laser per grezzo (problema impostazione lama).
2022-01-04 08:10:43 +01:00
NicolaP 446df8f37f Merge branch 'Feature/DB_WaterJet' 2021-12-29 13:11:01 +01:00
NicolaP 2919cc2dde Gestione dello spessore massimo nelle lavorazioni WJ 2021-12-29 13:10:23 +01:00
NicolaP 093f882118 Merge branch 'Feature/DB_WaterJet' 2021-12-29 11:59:53 +01:00
NicolaP f908f073af Gestione flag macchina UseLaserOrigin 2021-12-29 11:58:04 +01:00
NicolaP dc0a2f1934 Inserita qualità lavorazione nell'elenco lavorazini 2021-12-29 10:21:50 +01:00
NicolaP 6366aa7938 Correzione visualizzazione lista qualità pagina ChooseMachining 2021-12-29 09:59:14 +01:00
NicolaP 696ceabb17 Merge remote-tracking branch 'origin/HEAD' into Feature/DB_WaterJet 2021-12-29 09:29:15 +01:00
DarioS c55d9b48d3 OmagCUT :
- modifiche per gestione WJ con Q.
2021-12-29 09:20:44 +01:00
NicolaP 8c35871e34 Merge branch 'Feature/DB_WaterJet' 2021-12-23 19:31:19 +01:00
NicolaP 4390dbdce8 Merge branch 'Feature/Flatteninig_con_Fresa' 2021-12-23 19:30:40 +01:00
NicolaP 8d4785334a Merge branch 'Feature/Export_Machining' 2021-12-23 19:27:08 +01:00
NicolaP 7cf5a88b23 Inizio a introdurre la gestione del materiale "***" 2021-12-23 19:26:26 +01:00
NicolaP e587cd9d45 Modificata pagina per selezione lavorazione waterjet 2021-12-23 18:56:08 +01:00
NicolaP 973157a0de Milling in spianatura 2021-12-23 16:23:20 +01:00
NicolaP 7ccb7fb96f Correzione Import/Export per utensili e lavorazioni 2021-12-23 12:13:16 +01:00
NicolaP 9a751d0524 Costruzione finestra Import/Export per Machining 2021-12-22 11:11:50 +01:00
NicolaP 0e25b456bf Correzione abilitazione lista materiali WJ 2021-12-21 16:26:55 +01:00
NicolaP 4c8394f22d Gestione materiali nelle lavorazioni 2021-12-20 17:07:21 +01:00
RenzoL ed3e14229f - Nuova gestione e lettura/scrittura CurrMaterial per Db WaterJet
- Modificato LoadWJMaterial
2021-12-20 14:54:33 +01:00
NicolaP 81f6fa88da Inizializzazione materiali per WaterJet 2021-12-20 11:48:15 +01:00
NicolaP adbc811206 Nascosta lista dei materiali nella pagina Macchina 2021-12-20 11:19:26 +01:00
NicolaP 94866ce13d Gestione selezione qualità lavorazione 2021-12-16 18:33:55 +01:00
NicolaP c336390baf Merge branch 'master' into Feature/DB_WaterJet 2021-12-16 12:29:11 +01:00
NicolaP 0686d543bb Merge remote-tracking branch 'origin/DB_WaterJet_Renzo' into Feature/DB_WaterJet 2021-12-16 12:19:33 +01:00
NicolaP 58c00878a8 Merge branch 'Features/Comandi_Siemens' 2021-12-15 19:02:10 +01:00
RenzoL 4cd9b70cf2 Correzione a modifica nome Materiale e Sottomateriale nel Db WaterJet 2021-12-15 18:40:44 +01:00
RenzoL 140d2bc226 EgtKeyboard e EgtCalculator funzionanti correttamente nel Db WaterJet 2021-12-15 17:14:51 +01:00
RenzoL 3c796aeefa Correzione collassamento Txbx e valore non inserito se esco dalla Keyboard virtuale 2021-12-15 09:44:09 +01:00
RenzoL 2bcab0bbf1 Avanzamento lavoro su DB WaterJet 2021-12-14 17:12:48 +01:00
NicolaP df41408ec9 Utilizzo la classe VM presa dalla libreria EgtWPFLib5 2021-12-13 14:48:28 +01:00
NicolaP 9a2084c216 Creazione della classe DatContext della pagina (TEST) 2021-12-07 17:33:28 +01:00
NicolaP 52844c8d75 Creazione del controllo WaterJet in nella pagina MACCHINA 2021-12-06 18:40:09 +01:00
73 changed files with 6171 additions and 1179 deletions
+7
View File
@@ -674,6 +674,9 @@ Friend Module CamAuto
End If End If
' Lo sposto dalla lavorazione al pezzo ' Lo sposto dalla lavorazione al pezzo
Dim nId As Integer = EgtGetFirstInGroup(nMchPvId) Dim nId As Integer = EgtGetFirstInGroup(nMchPvId)
If nId = GDB_ID.NULL Then Return False
While nId <> GDB_ID.NULL While nId <> GDB_ID.NULL
EgtRelocateGlob(nId, nPartPvId) EgtRelocateGlob(nId, nPartPvId)
nId = EgtGetFirstInGroup(nMchPvId) nId = EgtGetFirstInGroup(nMchPvId)
@@ -719,10 +722,12 @@ Friend Module CamAuto
End Function End Function
Private Function SetLuaStandardCamParams(Optional bDripOk As Boolean = True) As Boolean Private Function SetLuaStandardCamParams(Optional bDripOk As Boolean = True) As Boolean
Dim sMaterial As String = m_MainWindow.m_CurrentMachine.CurrMat.sName
Dim sSawMch As String = m_MainWindow.m_CurrentMachine.sCurrSawing Dim sSawMch As String = m_MainWindow.m_CurrentMachine.sCurrSawing
Dim sMillMch As String = m_MainWindow.m_CurrentMachine.sCurrMilling Dim sMillMch As String = m_MainWindow.m_CurrentMachine.sCurrMilling
Dim sDrillMch As String = m_MainWindow.m_CurrentMachine.sCurrDrilling Dim sDrillMch As String = m_MainWindow.m_CurrentMachine.sCurrDrilling
Dim sWaterJetMch As String = m_MainWindow.m_CurrentMachine.sCurrWaterJetting Dim sWaterJetMch As String = m_MainWindow.m_CurrentMachine.sCurrWaterJetting
Dim sWaterJetQual As String = m_MainWindow.m_CurrentMachine.sCurrWaterJettingQuality
Dim sPocketMch As String = m_MainWindow.m_CurrentMachine.sCurrPocketing Dim sPocketMch As String = m_MainWindow.m_CurrentMachine.sCurrPocketing
Dim sDripSawMch As String = If(bDripOk, m_MainWindow.m_CurrentMachine.sCurrDripSawing, "") Dim sDripSawMch As String = If(bDripOk, m_MainWindow.m_CurrentMachine.sCurrDripSawing, "")
Dim sDripDrillMch As String = If(bDripOk, m_MainWindow.m_CurrentMachine.sCurrDripDrilling, "") Dim sDripDrillMch As String = If(bDripOk, m_MainWindow.m_CurrentMachine.sCurrDripDrilling, "")
@@ -735,11 +740,13 @@ Friend Module CamAuto
Dim bMillingOnCorners As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0) Dim bMillingOnCorners As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
Dim bMillingOnSinks As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0) Dim bMillingOnSinks As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0)
Dim dMillingShort As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile()) Dim dMillingShort As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile())
EgtLuaSetGlobStringVar("CAM.MATERIAL", sMaterial)
EgtLuaSetGlobStringVar("CAM.SAWMCH", sSawMch) EgtLuaSetGlobStringVar("CAM.SAWMCH", sSawMch)
EgtLuaSetGlobStringVar("CAM.MILLMCH", sMillMch) EgtLuaSetGlobStringVar("CAM.MILLMCH", sMillMch)
EgtLuaSetGlobStringVar("CAM.DRILLMCH", sDrillMch) EgtLuaSetGlobStringVar("CAM.DRILLMCH", sDrillMch)
EgtLuaSetGlobStringVar("CAM.POCKETMCH", sPocketMch) EgtLuaSetGlobStringVar("CAM.POCKETMCH", sPocketMch)
EgtLuaSetGlobStringVar("CAM.WATERJETMCH", sWaterJetMch) EgtLuaSetGlobStringVar("CAM.WATERJETMCH", sWaterJetMch)
EgtLuaSetGlobStringVar("CAM.WATERJETQLTY", sWaterJetQual)
EgtLuaSetGlobStringVar("CAM.DRIPSAWMCH", sDripSawMch) EgtLuaSetGlobStringVar("CAM.DRIPSAWMCH", sDripSawMch)
EgtLuaSetGlobStringVar("CAM.DRIPDRILLMCH", sDripDrillMch) EgtLuaSetGlobStringVar("CAM.DRIPDRILLMCH", sDripDrillMch)
EgtLuaSetGlobNumVar("CAM.REDUCEDDEPTH", dReducedDepth) EgtLuaSetGlobNumVar("CAM.REDUCEDDEPTH", dReducedDepth)
+82 -3
View File
@@ -1,5 +1,5 @@
Imports EgtUILib Imports EgtUILib
Imports System.IO
Friend Module CSVFile Friend Module CSVFile
@@ -7,6 +7,7 @@ Friend Module CSVFile
'----------------------------------------------------------------------------------------------- '-----------------------------------------------------------------------------------------------
Friend Class CsvPart Friend Class CsvPart
Public m_sPath As String = String.Empty
Public m_sName As String = String.Empty Public m_sName As String = String.Empty
Public m_sOrd As String = String.Empty Public m_sOrd As String = String.Empty
Public m_sDist As String = String.Empty Public m_sDist As String = String.Empty
@@ -19,8 +20,20 @@ Friend Module CSVFile
Public m_dDimX As Double = 0 Public m_dDimX As Double = 0
Public m_dDimY As Double = 0 Public m_dDimY As Double = 0
Public m_dTh As Double = 0 Public m_dTh As Double = 0
Public m_dAng1 As Double = 0
Public m_dHeel1 As Double = 0
Public m_dAng2 As Double = 0
Public m_dHeel2 As Double = 0
Public m_dAng3 As Double = 0
Public m_dHeel3 As Double = 0
Public m_dAng4 As Double = 0
Public m_dHeel4 As Double = 0
Public m_nOriInd As Integer = 0 Public m_nOriInd As Integer = 0
Public m_nId As Integer = GDB_ID.NULL Public m_nId As Integer = GDB_ID.NULL
' definsco il riferimento al gruppo
Public m_sRefGuid As String = System.Guid.NewGuid.ToString
' definisco il colore del gruppo che sto inserendo
Public m_cColor As Color3d = CompoColor(m_MainWindow.GetIniFile())
End Class End Class
'----------------------------------------------------------------------------------------------- '-----------------------------------------------------------------------------------------------
@@ -51,6 +64,7 @@ Friend Module CSVFile
For i As Integer = 1 To nNbr For i As Integer = 1 To nNbr
Dim OnePart As New CsvPart Dim OnePart As New CsvPart
Dim sN As String = i.ToString() Dim sN As String = i.ToString()
OnePart.m_sPath = sFile
EgtLuaGetGlobStringVar("CSV.NAME" & sN, OnePart.m_sName) EgtLuaGetGlobStringVar("CSV.NAME" & sN, OnePart.m_sName)
OnePart.m_bActive = True OnePart.m_bActive = True
EgtLuaGetGlobStringVar("CSV.ORD" & sN, OnePart.m_sOrd) EgtLuaGetGlobStringVar("CSV.ORD" & sN, OnePart.m_sOrd)
@@ -62,7 +76,18 @@ Friend Module CSVFile
EgtLuaGetGlobNumVar("CSV.DIMX" & sN, OnePart.m_dDimX) EgtLuaGetGlobNumVar("CSV.DIMX" & sN, OnePart.m_dDimX)
EgtLuaGetGlobNumVar("CSV.DIMY" & sN, OnePart.m_dDimY) EgtLuaGetGlobNumVar("CSV.DIMY" & sN, OnePart.m_dDimY)
EgtLuaGetGlobNumVar("CSV.TH" & sN, OnePart.m_dTh) EgtLuaGetGlobNumVar("CSV.TH" & sN, OnePart.m_dTh)
EgtLuaGetGlobNumVar("CSV.A1_" & sN, OnePart.m_dAng1)
EgtLuaGetGlobNumVar("CSV.H1_" & sN, OnePart.m_dHeel1)
EgtLuaGetGlobNumVar("CSV.A2_" & sN, OnePart.m_dAng2)
EgtLuaGetGlobNumVar("CSV.H2_" & sN, OnePart.m_dHeel2)
EgtLuaGetGlobNumVar("CSV.A3_" & sN, OnePart.m_dAng3)
EgtLuaGetGlobNumVar("CSV.H3_" & sN, OnePart.m_dHeel3)
EgtLuaGetGlobNumVar("CSV.A4_" & sN, OnePart.m_dAng4)
EgtLuaGetGlobNumVar("CSV.H4_" & sN, OnePart.m_dHeel4)
OnePart.m_nOriInd = i OnePart.m_nOriInd = i
If OnePart.m_nCount > 1 Then
OnePart.m_sRefGuid = System.Guid.NewGuid.ToString
End If
' inserisco in lista ' inserisco in lista
CsvPartList.Add(OnePart) CsvPartList.Add(OnePart)
Next Next
@@ -123,7 +148,9 @@ Friend Module CSVFile
Else Else
Dim sItems() As String = sLine.Split("=".ToCharArray) Dim sItems() As String = sLine.Split("=".ToCharArray)
If sItems.Count() >= 2 Then If sItems.Count() >= 2 Then
If sItems(0) = "Nam" Then If sItems(0) = "Path" Then
OnePart.m_sPath = sItems(1)
ElseIf sItems(0) = "Nam" Then
OnePart.m_sName = sItems(1) OnePart.m_sName = sItems(1)
ElseIf sItems(0) = "Ord" Then ElseIf sItems(0) = "Ord" Then
OnePart.m_sOrd = sItems(1) OnePart.m_sOrd = sItems(1)
@@ -147,8 +174,26 @@ Friend Module CSVFile
StringToDouble(sItems(1), OnePart.m_dDimY) StringToDouble(sItems(1), OnePart.m_dDimY)
ElseIf sItems(0) = "Th" Then ElseIf sItems(0) = "Th" Then
StringToDouble(sItems(1), OnePart.m_dTh) StringToDouble(sItems(1), OnePart.m_dTh)
ElseIf sItems(0) = "A1" Then
StringToDouble(sItems(1), OnePart.m_dAng1)
ElseIf sItems(0) = "H1" Then
StringToDouble(sItems(1), OnePart.m_dHeel1)
ElseIf sItems(0) = "A2" Then
StringToDouble(sItems(1), OnePart.m_dAng2)
ElseIf sItems(0) = "H2" Then
StringToDouble(sItems(1), OnePart.m_dHeel2)
ElseIf sItems(0) = "A3" Then
StringToDouble(sItems(1), OnePart.m_dAng3)
ElseIf sItems(0) = "H3" Then
StringToDouble(sItems(1), OnePart.m_dHeel3)
ElseIf sItems(0) = "A4" Then
StringToDouble(sItems(1), OnePart.m_dAng4)
ElseIf sItems(0) = "H4" Then
StringToDouble(sItems(1), OnePart.m_dHeel4)
ElseIf sItems(0) = "OIn" Then ElseIf sItems(0) = "OIn" Then
StringToInt(sItems(1), OnePart.m_nOriInd) StringToInt(sItems(1), OnePart.m_nOriInd)
ElseIf sItems(0) = "Guid" Then
OnePart.m_sRefGuid = sItems(1).Trim
End If End If
End If End If
End If End If
@@ -176,6 +221,7 @@ Friend Module CSVFile
For i As Integer = 1 To CsvPartList.Count() For i As Integer = 1 To CsvPartList.Count()
Dim CurrPart As CsvPart = CsvPartList(i - 1) Dim CurrPart As CsvPart = CsvPartList(i - 1)
Writer.WriteLine("[P" & i.ToString() & "]") Writer.WriteLine("[P" & i.ToString() & "]")
Writer.WriteLine("Path=" & CurrPart.m_sPath)
Writer.WriteLine("Nam=" & CurrPart.m_sName) Writer.WriteLine("Nam=" & CurrPart.m_sName)
Writer.WriteLine("Ord=" & CurrPart.m_sOrd) Writer.WriteLine("Ord=" & CurrPart.m_sOrd)
Writer.WriteLine("Dist=" & CurrPart.m_sDist) Writer.WriteLine("Dist=" & CurrPart.m_sDist)
@@ -188,20 +234,53 @@ Friend Module CSVFile
Writer.WriteLine("DX=" & DoubleToString(CurrPart.m_dDimX, 4)) Writer.WriteLine("DX=" & DoubleToString(CurrPart.m_dDimX, 4))
Writer.WriteLine("DY=" & DoubleToString(CurrPart.m_dDimY, 4)) Writer.WriteLine("DY=" & DoubleToString(CurrPart.m_dDimY, 4))
Writer.WriteLine("Th=" & DoubleToString(CurrPart.m_dTh, 4)) Writer.WriteLine("Th=" & DoubleToString(CurrPart.m_dTh, 4))
Writer.WriteLine("A1=" & DoubleToString(CurrPart.m_dAng1, 4))
Writer.WriteLine("H1=" & DoubleToString(CurrPart.m_dHeel1, 4))
Writer.WriteLine("A2=" & DoubleToString(CurrPart.m_dAng2, 4))
Writer.WriteLine("H2=" & DoubleToString(CurrPart.m_dHeel2, 4))
Writer.WriteLine("A3=" & DoubleToString(CurrPart.m_dAng3, 4))
Writer.WriteLine("H3=" & DoubleToString(CurrPart.m_dHeel3, 4))
Writer.WriteLine("A4=" & DoubleToString(CurrPart.m_dAng4, 4))
Writer.WriteLine("H4=" & DoubleToString(CurrPart.m_dHeel4, 4))
Writer.WriteLine("OIn=" & CurrPart.m_nOriInd.ToString()) Writer.WriteLine("OIn=" & CurrPart.m_nOriInd.ToString())
Writer.WriteLine("Guid=" & CurrPart.m_sRefGuid)
Next Next
' Terminatore ' Terminatore
Writer.WriteLine("[END]") Writer.WriteLine("[END]")
' Chiudo file ' Chiudo file
Writer.Close() Writer.Close()
Return True Return True
' Errore ' Errore
Catch ex As Exception Catch ex As Exception
EgtOutLog("CSV List error writing " & sFile) EgtOutLog("CSV List error writing " & sFile)
Return False Return False
End Try End Try
End Function End Function
' dato l'elenco completo dei file salvo ogni singolo epl
Friend Function WriteCsvMergePartList(CsvPartList As List(Of CsvPart)) As Boolean
Dim bOk As Boolean = True
Dim LocalPartList As New List(Of CsvPart)
Dim Index As Integer = 0
' devo dividere la lista in tante parti quanti sono i file che lo costituiscono
While Index < CsvPartList.Count
Dim CurrFile As String = CsvPartList(Index).m_sPath
Dim sFile As String = Path.ChangeExtension(CurrFile, ".epl")
LocalPartList.Clear()
While CurrFile = CsvPartList(Index).m_sPath
LocalPartList.Add(CsvPartList(Index))
Index += 1
' se terminata la lista
If Index = CsvPartList.Count Then
Exit While
End If
End While
' salvo l'elenco corrente
bOk = WriteCsvPartList(sFile, CurrFile, LocalPartList) And bOk
End While
Return bOk
End Function
Friend Function RemoveNotToNestParts(ByRef CsvPartList As List(Of CsvPart)) As Boolean Friend Function RemoveNotToNestParts(ByRef CsvPartList As List(Of CsvPart)) As Boolean
For i As Integer = CsvPartList.Count() - 1 To 0 Step -1 For i As Integer = CsvPartList.Count() - 1 To 0 Step -1
If CsvPartList(i).m_nToNest = 0 Then If CsvPartList(i).m_nToNest = 0 Then
+265 -39
View File
@@ -11,7 +11,7 @@ Public Class CSVPage
Private WithEvents m_CurrProjPage As CurrentProjectPageUC Private WithEvents m_CurrProjPage As CurrentProjectPageUC
' Flag di pagina attiva ' Flag di pagina attiva
Private m_bActive As Boolean = False Private m_bActive As Boolean = False
' Flag tipologia ' Flag tipologia (False -> Cvs semplificato)
Private m_bFull As Boolean = False Private m_bFull As Boolean = False
' Flag inserimento diretto ' Flag inserimento diretto
Private m_bDirect As Boolean = True Private m_bDirect As Boolean = True
@@ -28,6 +28,10 @@ Public Class CSVPage
Private m_ptRawMin As Point3d Private m_ptRawMin As Point3d
Private m_ptRawMax As Point3d Private m_ptRawMax As Point3d
Dim m_bIsCounterLy As Boolean = False
Dim m_nCurrNubrOfParts As Integer = 0
Dim m_nIdToSel As Integer = GDB_ID.NULL
Private Sub CSVPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized Private Sub CSVPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' Assegno la lista dei pezzi Csv come sorgente del treeview ' Assegno la lista dei pezzi Csv come sorgente del treeview
PartsTreeView.ItemsSource = m_ItemsList PartsTreeView.ItemsSource = m_ItemsList
@@ -101,13 +105,36 @@ Public Class CSVPage
If EgtIsPart(nPartId) Or bPartInTable Then If EgtIsPart(nPartId) Or bPartInTable Then
Dim nStat As Integer = GDB_ST.ON_ Dim nStat As Integer = GDB_ST.ON_
EgtGetStatus(nPartId, nStat) EgtGetStatus(nPartId, nStat)
' Se già selezionato, lo deselezione
If nStat = GDB_ST.SEL Then ' verifico se l'lemento selezionato è il numero di pezzi
EgtDeselectObj(nPartId) If EgtGetType(nId) = GDB_TY.EXT_TEXT Then
' Altrimenti lo seleziono Dim NameLayer As String = String.Empty
Else EgtGetName(EgtGetParent(nId), NameLayer)
EgtSelectObj(nPartId) If NameLayer = INFO_COUNTERLY Then
Dim sText As String = String.Empty
If EgtTextGetContent(nId, sText) Then
Dim sItems() As String = sText.Split("#")
If sItems.Count > 1 Then
m_nCurrNubrOfParts = 0
If StringToInt(sItems(1), m_nCurrNubrOfParts) And m_nCurrNubrOfParts > 0 Then
m_bIsCounterLy = True
m_nIdToSel = nPartId
End If
End If
End If
End If
End If End If
If Not m_bIsCounterLy Then
' Se già selezionato, lo deselezione
If nStat = GDB_ST.SEL Then
EgtDeselectObj(nPartId)
' Altrimenti lo seleziono
Else
EgtSelectObj(nPartId)
End If
End If
Exit While Exit While
End If End If
nId = EgtGetNextObjInSelWin() nId = EgtGetNextObjInSelWin()
@@ -115,6 +142,28 @@ Public Class CSVPage
EgtDraw() EgtDraw()
End Sub End Sub
Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene
If m_bIsCounterLy Then
' apro una finestra di dialogo per chiedere se inserire tutti i pezzi della famiglia
Dim SelectWD As New SelectPartFromFamilyWD(m_MainWindow, m_nCurrNubrOfParts)
Dim sRefGroup As String = String.Empty
EgtGetInfo(m_nIdToSel, INFO_REFGROUP, sRefGroup)
' deseleziono il pezzo corrente
m_MainWindow.m_CadCutPageUC.m_NestPage.DeselectPartInFaimily(sRefGroup)
Select Case SelectWD.NumberOfSelection
Case 0 ' Annulla
' continuo senza eseguire niente
Case Else
' seleziono il numero di pezzi indicati
m_MainWindow.m_CadCutPageUC.m_NestPage.SelectPartInFaimily(sRefGroup, SelectWD.NumberOfSelection)
End Select
m_bIsCounterLy = False
' disassegno il riferimento all'oggetto appena creato
SelectWD = Nothing
EgtDraw()
End If
End Sub
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
m_MainWindow.m_CadCutPageUC.CadCutPageGrid.Children.Remove(Me) m_MainWindow.m_CadCutPageUC.CadCutPageGrid.Children.Remove(Me)
m_MainWindow.m_CadCutPageUC.CadCutPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC.m_NestPage) m_MainWindow.m_CadCutPageUC.CadCutPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC.m_NestPage)
@@ -133,15 +182,48 @@ Public Class CSVPage
WritePrivateProfileString(S_CSV, K_CSVLASTFILE, "", m_MainWindow.GetIniFile()) WritePrivateProfileString(S_CSV, K_CSVLASTFILE, "", m_MainWindow.GetIniFile())
End Sub End Sub
Private Function CreateListOfDeniedFiles() As List(Of String)
Dim LocalList As New List(Of String)
LocalList.Add("MERGE")
Dim Index1 As Integer = 0
Dim Index2 As Integer = 0
For Index1 = 0 To m_CsvPartList.Count - 1
Dim sFileName As String = m_CsvPartList(Index1).m_sPath
sFileName = Path.GetFileNameWithoutExtension(sFileName).ToUpper.Trim()
Dim bNewFile As Boolean = True
For Index2 = 0 To LocalList.Count - 1
If sFileName = LocalList(Index2) Then
bNewFile = False
Exit For
End If
Next
If bNewFile Then
LocalList.Add(Path.GetFileNameWithoutExtension(sFileName).ToUpper.Trim)
End If
Next
Return LocalList
End Function
Private Sub OpenBtn_Click(sender As Object, e As RoutedEventArgs) Handles OpenBtn.Click Private Sub OpenBtn_Click(sender As Object, e As RoutedEventArgs) Handles OpenBtn.Click
' Salvo lista dei pezzi attuale '' Salvo lista dei pezzi attuale
SaveCsvPartList() 'SaveCsvPartList()
' Leggo direttorio corrente dei file CSV ' Leggo direttorio corrente dei file CSV
Dim sCurrDir As String = "" Dim sCurrDir As String = ""
GetPrivateProfileString(S_CSV, K_CSVCURRDIR, "C:\", sCurrDir, m_MainWindow.GetIniFile()) GetPrivateProfileString(S_CSV, K_CSVCURRDIR, "C:\", sCurrDir, m_MainWindow.GetIniFile())
' Apro dialogo scelta file ' Apro dialogo scelta file
Dim OpenFileWnd As New OpenFileWD(m_MainWindow, sCurrDir, ".CSV", ".EPL") Dim OpenFileWnd As OpenFileWD
Dim sDeniedFiles As List(Of String) = CreateListOfDeniedFiles()
' imposto il filtro
If m_bFull Then
OpenFileWnd = New OpenFileWD(m_MainWindow, sCurrDir, ".CSV", ".EPL", sDeniedFiles)
Else
OpenFileWnd = New OpenFileWD(m_MainWindow, sCurrDir, ".CSV")
End If
If Not OpenFileWnd.ShowDialog() Then Return If Not OpenFileWnd.ShowDialog() Then Return
' verifico che il file inserito non appartenga al Merge attuale
' Salvo lista dei pezzi attuale
SaveCsvPartList()
' Salvo direttorio corrente ' Salvo direttorio corrente
WritePrivateProfileString(S_CSV, K_CSVCURRDIR, OpenFileWnd.GetFileDir(), m_MainWindow.GetIniFile()) WritePrivateProfileString(S_CSV, K_CSVCURRDIR, OpenFileWnd.GetFileDir(), m_MainWindow.GetIniFile())
' Apertura file ' Apertura file
@@ -173,17 +255,28 @@ Public Class CSVPage
' Pulisco path e lista dei pezzi Csv ' Pulisco path e lista dei pezzi Csv
m_sFilePath = String.Empty m_sFilePath = String.Empty
m_sCsvPath = String.Empty m_sCsvPath = String.Empty
m_CsvPartList.Clear()
' mantengo la lista attuale dei pezzi
'm_CsvPartList.Clear()
' aggiungo i pezzi su una lista temporanea
Dim LocalPartList As New List(Of CsvPart)
' Eseguo la lettura del file Csv ' Eseguo la lettura del file Csv
If Not ReadCsvFile(sCsvPath, m_bFull, m_sCsvPath, m_CsvPartList) Then If Not ReadCsvFile(sCsvPath, m_bFull, m_sCsvPath, LocalPartList) Then
m_CurrProjPage.SetErrorMessage(EgtMsg(91206)) 'Errore nella lettura del file CSV m_CurrProjPage.SetErrorMessage(EgtMsg(91206)) 'Errore nella lettura del file CSV
Return False Return False
End If End If
' Creo un nuovo file che ospitarà il merge de
Dim sNewMergeFile As String = Path.GetDirectoryName(m_sCsvPath) & "\Merge.csv"
m_sCsvPath = sNewMergeFile
m_sFilePath = m_sCsvPath m_sFilePath = m_sCsvPath
' Elimino pezzi nulli ' Elimino pezzi nulli
RemoveWrongParts(m_CsvPartList) RemoveWrongParts(LocalPartList)
' Aggiorno ' Aggiorno
If m_bFull Then If m_bFull Then
MySaveCsvPartList(LocalPartList)
' Salvo come epl ' Salvo come epl
SaveCsvPartList() SaveCsvPartList()
' Rinomino file originale ' Rinomino file originale
@@ -196,9 +289,40 @@ Public Class CSVPage
' eseguo rinomina ' eseguo rinomina
My.Computer.FileSystem.RenameFile(sCsvPath, sBakName) My.Computer.FileSystem.RenameFile(sCsvPath, sBakName)
End If End If
' attacco i nuovi pezzi alla lista corrente
For Each Item As CsvPart In LocalPartList
m_CsvPartList.Add(Item)
Next
Return True Return True
End Function End Function
Private Sub LoadCsvPartList(sFile As String)
' Se Csv semplificato non va letta
If Not m_bFull Then Return
' Pulisco path e lista dei pezzi Csv
m_sCsvPath = String.Empty
' mantengo la lista attuale dei pezzi
'm_CsvPartList.Clear()
' aggiungo i pezzi su una lista temporanea
Dim LocalPartList As New List(Of CsvPart)
' Lettura del file
If ReadCsvPartList(sFile, m_sCsvPath, LocalPartList) Then
' Creo un nuovo file che ospitarà il merge de
Dim sNewMergeFile As String = Path.GetDirectoryName(m_sCsvPath) & "\Merge.csv"
m_sCsvPath = sNewMergeFile
m_sFilePath = m_sCsvPath
End If
' Elimino pezzi nulli
RemoveWrongParts(LocalPartList)
' attacco i nuovi pezzi alla lista corrente
For Each Item As CsvPart In LocalPartList
m_CsvPartList.Add(Item)
Next
End Sub
Private Sub ShowTreeView() Private Sub ShowTreeView()
' Path del file Csv ' Path del file Csv
Dim TempPath As New Text.StringBuilder(260) Dim TempPath As New Text.StringBuilder(260)
@@ -208,6 +332,7 @@ Public Class CSVPage
m_ItemsList.Clear() m_ItemsList.Clear()
Dim sCurrMat As String = String.Empty Dim sCurrMat As String = String.Empty
Dim dCurrTh As Double = 0 Dim dCurrTh As Double = 0
Dim sCurrPath As String = String.Empty
Dim nCatToNest As Integer = 0 Dim nCatToNest As Integer = 0
Dim nCatCount As Integer = 0 Dim nCatCount As Integer = 0
Dim PartCathegory As New PartCathegoryItem("", 0) Dim PartCathegory As New PartCathegoryItem("", 0)
@@ -218,19 +343,28 @@ Public Class CSVPage
If i = 1 Then If i = 1 Then
sCurrMat = CurrPart.m_sMaterial sCurrMat = CurrPart.m_sMaterial
dCurrTh = CurrPart.m_dTh dCurrTh = CurrPart.m_dTh
sCurrPath = CurrPart.m_sPath
ElseIf String.Compare(sCurrMat, CurrPart.m_sMaterial, True) <> 0 Or ElseIf String.Compare(sCurrMat, CurrPart.m_sMaterial, True) <> 0 Or
String.Compare(sCurrPath, CurrPart.m_sPath, True) <> 0 Or
Math.Abs(dCurrTh - CurrPart.m_dTh) > 10 * EPS_SMALL Then Math.Abs(dCurrTh - CurrPart.m_dTh) > 10 * EPS_SMALL Then
If m_bFull Then If m_bFull Then
PartCathegory.Name = If(String.IsNullOrWhiteSpace(sCurrMat), "***", sCurrMat) & PartCathegory.Name = If(String.IsNullOrWhiteSpace(sCurrMat), "***", sCurrMat) &
" - " & LenToString(dCurrTh, 2) & " - " & LenToString(dCurrTh, 2) &
" - " & nCatToNest.ToString() & "/" & nCatCount.ToString() " - " & nCatToNest.ToString() & "/" & nCatCount.ToString()
If Not String.IsNullOrWhiteSpace(sCurrPath) Then
PartCathegory.Name &= vbCrLf & Path.GetFileNameWithoutExtension(sCurrPath)
End If
Else Else
PartCathegory.Name = nCatToNest.ToString() & "/" & nCatCount.ToString() PartCathegory.Name = nCatToNest.ToString() & "/" & nCatCount.ToString()
If Not String.IsNullOrWhiteSpace(sCurrPath) Then
PartCathegory.Name &= vbCrLf & Path.GetFileNameWithoutExtension(sCurrPath)
End If
End If End If
PartCathegory.IsExpanded = True PartCathegory.IsExpanded = True
m_ItemsList.Add(PartCathegory) m_ItemsList.Add(PartCathegory)
sCurrMat = CurrPart.m_sMaterial sCurrMat = CurrPart.m_sMaterial
dCurrTh = CurrPart.m_dTh dCurrTh = CurrPart.m_dTh
sCurrPath = CurrPart.m_sPath
PartCathegory = New PartCathegoryItem("", 0) PartCathegory = New PartCathegoryItem("", 0)
nCatToNest = 0 nCatToNest = 0
nCatCount = 0 nCatCount = 0
@@ -248,8 +382,14 @@ Public Class CSVPage
PartCathegory.Name = If(String.IsNullOrWhiteSpace(sCurrMat), "***", sCurrMat) & PartCathegory.Name = If(String.IsNullOrWhiteSpace(sCurrMat), "***", sCurrMat) &
" - " & LenToString(dCurrTh, 2) & " - " & LenToString(dCurrTh, 2) &
" - " & nCatToNest.ToString() & "/" & nCatCount.ToString() " - " & nCatToNest.ToString() & "/" & nCatCount.ToString()
If Not String.IsNullOrWhiteSpace(sCurrPath) Then
PartCathegory.Name &= vbCrLf & Path.GetFileNameWithoutExtension(sCurrPath)
End If
Else Else
PartCathegory.Name = nCatToNest.ToString() & "/" & nCatCount.ToString() PartCathegory.Name = nCatToNest.ToString() & "/" & nCatCount.ToString()
If Not String.IsNullOrWhiteSpace(sCurrPath) Then
PartCathegory.Name &= vbCrLf & Path.GetFileNameWithoutExtension(sCurrPath)
End If
End If End If
PartCathegory.IsExpanded = True PartCathegory.IsExpanded = True
m_ItemsList.Add(PartCathegory) m_ItemsList.Add(PartCathegory)
@@ -259,6 +399,7 @@ Public Class CSVPage
For Each CatItem As PartCathegoryItem In m_ItemsList For Each CatItem As PartCathegoryItem In m_ItemsList
Dim sCurrMat As String = String.Empty Dim sCurrMat As String = String.Empty
Dim dCurrTh As Double = 0 Dim dCurrTh As Double = 0
Dim sCurrPath As String = String.Empty
Dim nCatToNest As Integer = 0 Dim nCatToNest As Integer = 0
Dim nCatCount As Integer = 0 Dim nCatCount As Integer = 0
For Each PrtItem As PartCustomItem In CatItem.Items For Each PrtItem As PartCustomItem In CatItem.Items
@@ -268,6 +409,7 @@ Public Class CSVPage
PrtItem.sText1 = sCount PrtItem.sText1 = sCount
sCurrMat = PartData.m_sMaterial sCurrMat = PartData.m_sMaterial
dCurrTh = PartData.m_dTh dCurrTh = PartData.m_dTh
sCurrPath = PartData.m_sPath
nCatToNest += PartData.m_nToNest nCatToNest += PartData.m_nToNest
nCatCount += PartData.m_nCount nCatCount += PartData.m_nCount
Next Next
@@ -275,8 +417,14 @@ Public Class CSVPage
CatItem.Name = If(String.IsNullOrWhiteSpace(sCurrMat), "***", sCurrMat) & CatItem.Name = If(String.IsNullOrWhiteSpace(sCurrMat), "***", sCurrMat) &
" - " & LenToString(dCurrTh, 2) & " - " & LenToString(dCurrTh, 2) &
" - " & nCatToNest.ToString() & "/" & nCatCount.ToString() " - " & nCatToNest.ToString() & "/" & nCatCount.ToString()
If Not String.IsNullOrWhiteSpace(sCurrPath) Then
CatItem.Name &= vbCrLf & Path.GetFileNameWithoutExtension(sCurrPath)
End If
Else Else
CatItem.Name = nCatToNest.ToString() & "/" & nCatCount.ToString() CatItem.Name = nCatToNest.ToString() & "/" & nCatCount.ToString()
If Not String.IsNullOrWhiteSpace(sCurrPath) Then
CatItem.Name &= vbCrLf & Path.GetFileNameWithoutExtension(sCurrPath)
End If
End If End If
Next Next
End Sub End Sub
@@ -345,6 +493,7 @@ Public Class CSVPage
End Function End Function
Private Sub InsertBtn_Click(sender As Object, e As RoutedEventArgs) Handles InsertBtn.Click Private Sub InsertBtn_Click(sender As Object, e As RoutedEventArgs) Handles InsertBtn.Click
'm_CurrProjPage.ClearMessage()
' Recupero lo spessore della lastra corrente ' Recupero lo spessore della lastra corrente
Dim dRawHeight As Double = GetRawHeight() Dim dRawHeight As Double = GetRawHeight()
If dRawHeight < EPS_SMALL Then Return If dRawHeight < EPS_SMALL Then Return
@@ -355,20 +504,17 @@ Public Class CSVPage
End If End If
' Recupero la tolleranza sullo spessore ' Recupero la tolleranza sullo spessore
Dim dToler As Double = GetPrivateProfileDouble(S_CSV, K_THICKTOLERANCE, 100 * EPS_SMALL, m_MainWindow.GetIniFile()) Dim dToler As Double = GetPrivateProfileDouble(S_CSV, K_THICKTOLERANCE, 100 * EPS_SMALL, m_MainWindow.GetIniFile())
dToler = Math.Max( dToler, 100 * EPS_SMALL) dToler = Math.Max(dToler, 100 * EPS_SMALL)
' Creo la lista dei pezzi inseribili nella lastra corrente ' Creo la lista dei pezzi inseribili nella lastra corrente
Dim InsPartList As New List(Of CsvPart) Dim InsPartList As New List(Of CsvPart)
For i As Integer = 1 To m_CsvPartList.Count() For i As Integer = 1 To m_CsvPartList.Count()
Dim CurrPart As CsvPart = m_CsvPartList(i - 1) Dim CurrPart As CsvPart = m_CsvPartList(i - 1)
If CurrPart.m_bActive And If CurrPart.m_bActive And
(Math.Abs(CurrPart.m_dTh - dRawHeight) < dToler Or (Math.Abs(CurrPart.m_dTh - dRawHeight) < dToler Or CurrPart.m_dTh < EPS_SMALL) And
CurrPart.m_dTh < EPS_SMALL) And (String.IsNullOrWhiteSpace(CurrPart.m_sMaterial) Or String.IsNullOrWhiteSpace(sCurrMat) Or CurrPart.m_sMaterial = "***" Or sCurrMat = "***" Or String.Compare(CurrPart.m_sMaterial, sCurrMat, True) = 0) Then
(String.IsNullOrWhiteSpace(CurrPart.m_sMaterial) Or
String.IsNullOrWhiteSpace(sCurrMat) Or
CurrPart.m_sMaterial = "***" Or
sCurrMat = "***" Or
String.Compare(CurrPart.m_sMaterial, sCurrMat, True) = 0) Then
InsPartList.Add(CurrPart) InsPartList.Add(CurrPart)
'ElseIf CurrPart.m_bActive Then
' m_CurrProjPage.SetWarningMessage("Grezzo non compatibile")
End If End If
Next Next
' Lancio l'inserimento dei pezzi ' Lancio l'inserimento dei pezzi
@@ -424,10 +570,14 @@ Public Class CSVPage
' Definizione variabili ' Definizione variabili
Dim dDimX = CurrPart.m_dDimX Dim dDimX = CurrPart.m_dDimX
Dim dDimY = CurrPart.m_dDimY Dim dDimY = CurrPart.m_dDimY
Dim dAng = New Double() {CurrPart.m_dAng1,CurrPart.m_dAng2,CurrPart.m_dAng3,CurrPart.m_dAng4}
Dim dHeel = New Double() {CurrPart.m_dHeel1,CurrPart.m_dHeel2,CurrPart.m_dHeel3,CurrPart.m_dHeel4}
If bMaxDimOnX And dDimY > dDimX Then If bMaxDimOnX And dDimY > dDimX Then
Dim dTemp As Double = dDimX Dim dTemp As Double = dDimX
dDimX = dDimY dDimX = dDimY
dDimY = dTemp dDimY = dTemp
dAng = New Double() {CurrPart.m_dAng2,CurrPart.m_dAng3,CurrPart.m_dAng4,CurrPart.m_dAng1}
dHeel = New Double() {CurrPart.m_dHeel2,CurrPart.m_dHeel3,CurrPart.m_dHeel4,CurrPart.m_dHeel1}
End If End If
EgtLuaSetGlobNumVar("CMP.V1", dDimX) EgtLuaSetGlobNumVar("CMP.V1", dDimX)
EgtLuaSetGlobNumVar("CMP.V2", dDimY) EgtLuaSetGlobNumVar("CMP.V2", dDimY)
@@ -439,7 +589,7 @@ Public Class CSVPage
If nId = GDB_ID.NULL Then Continue For If nId = GDB_ID.NULL Then Continue For
CurrPart.m_nId = nId CurrPart.m_nId = nId
' Muovo la regione in Z per evitare problemi in visualizzazione ' Muovo la regione in Z per evitare problemi in visualizzazione
Dim nRegId = EgtGetFirstNameInGroup(nId, NAME_REGION) Dim nRegId As Integer = EgtGetFirstNameInGroup(nId, NAME_REGION)
EgtMove(nRegId, New Vector3d(0, 0, DELTAZ_REG), GDB_RT.GLOB) EgtMove(nRegId, New Vector3d(0, 0, DELTAZ_REG), GDB_RT.GLOB)
' Eventuale testo per indicare il sopra ' Eventuale testo per indicare il sopra
If Not bMaxDimOnX Then If Not bMaxDimOnX Then
@@ -447,11 +597,36 @@ Public Class CSVPage
Dim nText As Integer = EgtCreateTextAdv(nRegId, New Point3d(dDimX / 2, dDimY - 0.6 * dH, 0), 0, "*TOP*", "", 500, False, dH, 1, 0, INS_POS.MC) Dim nText As Integer = EgtCreateTextAdv(nRegId, New Point3d(dDimX / 2, dDimY - 0.6 * dH, 0), 0, "*TOP*", "", 500, False, dH, 1, 0, INS_POS.MC)
EgtSetColor(nText, New Color3d( 0, 0, 0)) EgtSetColor(nText, New Color3d( 0, 0, 0))
End If End If
' Inserisco eventuali angoli di fianco
Dim bSideAngs As Boolean = False
Dim nOutLoopId As Integer = EgtGetFirstNameInGroup( nId, NAME_OUTLOOP)
For nSide As Integer = 1 To 4
Dim dSideAng As Double = dAng( nSide - 1)
Dim dSideHeel As Double = dHeel( nSide - 1)
If Math.Abs( dSideAng) > EPS_ANG_SMALL Then
Dim nEntId As Integer = EgtGetFirstNameInGroup( nOutLoopId, "A" & nSide.ToString())
If nEntId <> GDB_ID.NULL Then
bSideAngs = True
' Assegno valori
EgtSetInfo(nEntId, INFO_SIDE_ANGLE, dSideAng)
EgtSetInfo(nEntId, INFO_ORIG_SIDE_ANGLE, dSideAng)
EgtSetInfo(nEntId, INFO_HEEL, dSideHeel)
End If
End If
Next
' Creo layer per testi nesting
If bSideAngs Then
Dim TextLayId As Integer = EgtCreateGroup(nId)
EgtSetName(TextLayId, SIDE_ANGLE_LAYER)
EgtSetColor(TextLayId, New Color3d(0, 0, 128))
' Opero su geometria esterna pezzo
SideAngle.WriteSideAngleOnLoop(nOutLoopId, TextLayId)
End If
' Aggiusto per lavorazioni ' Aggiusto per lavorazioni
EgtAdjustFlatPart(nId) EgtAdjustFlatPart(nId)
' Se Csv completo, aggiungo info su CSV di origine ' Se Csv completo, aggiungo info su CSV di origine
If m_bFull Then If m_bFull Then
EgtSetInfo(nId, INFO_CSV_PATH, m_sCsvPath) EgtSetInfo(nId, INFO_CSV_PATH, CurrPart.m_sPath)
EgtSetInfo(nId, INFO_CSV_PART, CurrPart.m_sName) EgtSetInfo(nId, INFO_CSV_PART, CurrPart.m_sName)
EgtSetInfo(nId, INFO_CSV_ORD, CurrPart.m_sOrd) EgtSetInfo(nId, INFO_CSV_ORD, CurrPart.m_sOrd)
EgtSetInfo(nId, INFO_CSV_DIST, CurrPart.m_sDist) EgtSetInfo(nId, INFO_CSV_DIST, CurrPart.m_sDist)
@@ -461,14 +636,36 @@ Public Class CSVPage
Utility.SetTextColor( nRegId) Utility.SetTextColor( nRegId)
' Lo sposto nel gruppo speciale ' Lo sposto nel gruppo speciale
EgtRelocate(nId, nIpGrp) EgtRelocate(nId, nIpGrp)
' assegno l'identificatico del pezzo, se esiste
If Not String.IsNullOrEmpty(CurrPart.m_sRefGuid) Then
' GuidCode dovrebbe contenere 36 caratteri, il precode 5: tot = 41
If CurrPart.m_sRefGuid.Count <= 36 Then
Dim sPreGuid As String = CreatePreGuidCode(CurrPart.m_nId)
CurrPart.m_sRefGuid = sPreGuid & CurrPart.m_sRefGuid
End If
EgtSetInfo(CurrPart.m_nId, INFO_REFGROUP, CurrPart.m_sRefGuid)
End If
Dim nRegLayId As Integer = EgtGetFirstNameInGroup(CurrPart.m_nId, NAME_REGION)
' Imposto il colore del pezzo inserito nel progetto
EgtSetColor(nRegLayId, CurrPart.m_cColor)
Dim EntId As Integer = EgtGetFirstInGroup(nRegLayId)
While EntId <> GDB_ID.NULL
If EgtGetType(EntId) = GDB_TY.SRF_FRGN Then EgtSetColor(EntId, CurrPart.m_cColor)
EntId = EgtGetNext(EntId)
End While
Next Next
EgtLuaResetGlobVar("CMP") EgtLuaResetGlobVar("CMP")
EgtLuaResetGlobVar("CMP_Draw") EgtLuaResetGlobVar("CMP_Draw")
' Provo ad inserire i pezzi ' Provo ad inserire i pezzi
Dim dNewArea As Double = 0 Dim dNewArea As Double = 0
For i As Integer = 1 To InsPartList.Count() For i As Integer = 1 To InsPartList.Count()
Dim CurrPart As CsvPart = InsPartList(i - 1) Dim CurrPart As CsvPart = InsPartList(i - 1)
While CurrPart.m_nToNest > 0 While CurrPart.m_nToNest > 0
If m_bDirect Then If m_bDirect Then
If NestOnePart(CurrPart.m_nId) Then If NestOnePart(CurrPart.m_nId) Then
dNewArea += GeomCalc.GetPartArea(CurrPart.m_nId) dNewArea += GeomCalc.GetPartArea(CurrPart.m_nId)
@@ -490,6 +687,7 @@ Public Class CSVPage
m_CurrProjPage.UpdateTotalArea( dNewArea) m_CurrProjPage.UpdateTotalArea( dNewArea)
m_CurrProjPage.UpdateToProduceArea() m_CurrProjPage.UpdateToProduceArea()
m_MainWindow.m_CurrentProjectPageUC.ShowAreas() m_MainWindow.m_CurrentProjectPageUC.ShowAreas()
Return True Return True
End Function End Function
@@ -566,11 +764,11 @@ Public Class CSVPage
Dim sName As String = String.Empty Dim sName As String = String.Empty
EgtGetInfo(nId, INFO_CSV_PART, sName) EgtGetInfo(nId, INFO_CSV_PART, sName)
' Verifico che il pezzo appartenga a questo Csv ' Verifico che il pezzo appartenga a questo Csv
If String.Compare(sCsvPath, m_sCsvPath, True) = 0 Then If SearchCurrCSV(sCsvPath) Then
' Cerco il pezzo nella lista dei pezzi ' Cerco il pezzo nella lista dei pezzi
For i As Integer = 1 To m_CsvPartList.Count() For i As Integer = 1 To m_CsvPartList.Count()
Dim CurrPart As CsvPart = m_CsvPartList(i - 1) Dim CurrPart As CsvPart = m_CsvPartList(i - 1)
If String.Compare(sName, CurrPart.m_sName, True) = 0 Then If String.Compare(sName, CurrPart.m_sName, True) = 0 And String.Compare(sCsvPath, CurrPart.m_sPath, True) = 0 Then
' Se nel grezzo ' Se nel grezzo
If EgtGetParent(nId) = m_nRawId Then If EgtGetParent(nId) = m_nRawId Then
' Rimuovo le lavorazioni ' Rimuovo le lavorazioni
@@ -578,19 +776,38 @@ Public Class CSVPage
' Rimuovo dal grezzo ' Rimuovo dal grezzo
EgtRemovePartFromRawPart(nId) EgtRemovePartFromRawPart(nId)
End If End If
' recupero il Guid del pezzo corrente (potrebbe essere stato modificato a causa di rotazioni quando il pezzo è passato in parcheggio)
Dim sCurrRefGuid As String = String.Empty
EgtGetInfo(nId, INFO_REFGROUP, sCurrRefGuid)
' Cancello il pezzo ' Cancello il pezzo
EgtErase(nId) EgtErase(nId)
' aggiorno il layer che indica il numero di pezzi in parcheggio (se sRefGroup<>"")
m_MainWindow.m_CadCutPageUC.m_NestPage.CountPartInFamily(sCurrRefGuid)
' Aggiorno il contatore ' Aggiorno il contatore
CurrPart.m_nToNest += 1 CurrPart.m_nToNest += 1
' ricreo la lista delle famiglie di pezzi presenti in parcheggio
m_MainWindow.m_CadCutPageUC.m_NestPage.GetFamilyGroupInPark()
' Esco ' Esco
Return True Return True
End If End If
Next Next
End If End If
' creo la lista delle famiglie di pezzi presenti in parcheggio
m_MainWindow.m_CadCutPageUC.m_NestPage.GetFamilyGroupInPark()
' Pezzo non appartenente al Csv corrente ' Pezzo non appartenente al Csv corrente
Return False Return False
End Function End Function
Private Function SearchCurrCSV(ByVal sCSVFile As String) As Boolean
For i As Integer = 1 To m_CsvPartList.Count()
Dim CurrPart As CsvPart = m_CsvPartList(i - 1)
If String.Compare(sCSVFile, CurrPart.m_sPath, True) = 0 Then
Return True
End If
Next
Return False
End Function
Friend Sub SaveCsvPartList() Friend Sub SaveCsvPartList()
' Se Csv semplificato non va salvata ' Se Csv semplificato non va salvata
If Not m_bFull Then Return If Not m_bFull Then Return
@@ -601,24 +818,33 @@ Public Class CSVPage
End If End If
' Path del file ' Path del file
Dim sFile As String = Path.ChangeExtension(m_sFilePath, ".epl") Dim sFile As String = Path.ChangeExtension(m_sFilePath, ".epl")
' Scrittura del file ' Scrittura dei file
If WriteCsvPartList(sFile, m_sCsvPath, m_CsvPartList) Then If WriteCsvMergePartList(m_CsvPartList) Then
' Registro in ini path ' Scrittura dei file Merge
WritePrivateProfileString(S_CSV, K_CSVLASTFILE, sFile, m_MainWindow.GetIniFile()) If WriteCsvPartList(sFile, m_sCsvPath, m_CsvPartList) Then
WritePrivateProfileString(S_CSV, K_CSVLASTFILE, sFile, m_MainWindow.GetIniFile())
End If
End If End If
End Sub End Sub
Private Sub LoadCsvPartList(sFile As String) ' salvo il sottoelenco dei pezzi
' Se Csv semplificato non va letta Friend Sub MySaveCsvPartList(ByVal CurrPartList As List(Of CsvPart))
' Se Csv semplificato non va salvata
If Not m_bFull Then Return If Not m_bFull Then Return
' Pulisco path e lista dei pezzi Csv Dim sCurrPath As String = String.Empty
m_sCsvPath = String.Empty ' recupero dalla lista il nome del file corrente
m_CsvPartList.Clear() For Each Item As CsvPart In CurrPartList
' Lettura del file sCurrPath = Item.m_sPath
ReadCsvPartList(sFile, m_sCsvPath, m_CsvPartList) Next
m_sFilePath = sFile ' se non trov il nome del file assocciato all'elenco di pezzi esco
' Elimino pezzi nulli If String.IsNullOrEmpty(sCurrPath) Then
RemoveWrongParts(m_CsvPartList) EgtOutLog("CSV Curr list missing")
Return
End If
' Path del file
Dim sFile As String = Path.ChangeExtension(sCurrPath, ".epl")
' Scrittura del file
WriteCsvPartList(sFile, sCurrPath, CurrPartList)
End Sub End Sub
Friend Sub UpdateCsvPartList() Friend Sub UpdateCsvPartList()
+9 -4
View File
@@ -107,6 +107,7 @@ Public Class CadCutPageUC
Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff()
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Se macchina fotografica collegata, faccio una foto ' Se macchina fotografica collegata, faccio una foto
@@ -140,6 +141,7 @@ Public Class CadCutPageUC
Private Sub RawPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawPartBtn.Click Private Sub RawPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawPartBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff()
m_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Hidden m_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Hidden
m_CurrProjPage.CurrentProjectPageGrid.Children.Remove(Me) m_CurrProjPage.CurrentProjectPageGrid.Children.Remove(Me)
m_CurrProjPage.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_RawPartPage) m_CurrProjPage.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_RawPartPage)
@@ -165,6 +167,7 @@ Public Class CadCutPageUC
Private Sub DrawBtn_Click(sender As Object, e As RoutedEventArgs) Handles DrawBtn.Click Private Sub DrawBtn_Click(sender As Object, e As RoutedEventArgs) Handles DrawBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff()
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_DrawPageUC) m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_DrawPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Draw m_MainWindow.m_ActivePage = MainWindow.Pages.Draw
@@ -172,6 +175,7 @@ Public Class CadCutPageUC
Private Sub ImportBtn_Click(sender As Object, e As RoutedEventArgs) Handles ImportBtn.Click Private Sub ImportBtn_Click(sender As Object, e As RoutedEventArgs) Handles ImportBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff()
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_ImportPageUC) m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_ImportPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Import m_MainWindow.m_ActivePage = MainWindow.Pages.Import
@@ -193,10 +197,11 @@ Public Class CadCutPageUC
End Sub End Sub
Private Sub SplitBtn_Click(sender As Object, e As RoutedEventArgs) Handles SplitBtn.Click Private Sub SplitBtn_Click(sender As Object, e As RoutedEventArgs) Handles SplitBtn.Click
m_MainWindow.DragRettangleOff()
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
EgtDeselectObj(m_NestPage.m_CurrSelectedCurv) EgtDeselectObj(m_NestPage.m_CurrSelectedCurv)
m_ProjectMgr.TestBtn.IsChecked = False m_ProjectMgr.TestBtn.IsChecked = False
m_CurrProjPage.m_bSelectCurv = False m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
Select Case m_CadCutMode Select Case m_CadCutMode
Case CadCutModes.Nest, CadCutModes.FastGrid Case CadCutModes.Nest, CadCutModes.FastGrid
' Passo alla pagina Split ' Passo alla pagina Split
@@ -206,9 +211,9 @@ Public Class CadCutPageUC
SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Nest.png", UriKind.Relative)) SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Nest.png", UriKind.Relative))
End If End If
If m_CadCutMode = CadCutModes.Nest Then If m_CadCutMode = CadCutModes.Nest Then
CadCutPageGrid.Children.Remove(m_NestPage) CadCutPageGrid.Children.Remove(m_NestPage)
Else Else
CadCutPageGrid.Children.Remove(m_FastGridSlabManager) CadCutPageGrid.Children.Remove(m_FastGridSlabManager)
End If End If
CadCutPageGrid.Children.Add(m_SplitPage) CadCutPageGrid.Children.Add(m_SplitPage)
m_CadCutMode = CadCutModes.Split m_CadCutMode = CadCutModes.Split
+8 -3
View File
@@ -109,9 +109,14 @@
</Button> </Button>
</UniformGrid> </UniformGrid>
<Button Name="RemovePartBtn" Grid.ColumnSpan="3" Grid.Row="6" Style="{DynamicResource OmagCut_YellowIconButton}"> <UniformGrid Name ="UG1" Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="3" Columns="2" >
<Image Source="{DynamicResource Elimina-pezzoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/> <Button Name="RemovePartBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
</Button> <Image Source="{DynamicResource Elimina-pezzoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
<ToggleButton Name="DragRettanleBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource Drag_RettangleImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</ToggleButton>
</UniformGrid>
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" > <UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
<Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}"> <Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
+825 -118
View File
File diff suppressed because it is too large Load Diff
+21 -4
View File
@@ -9,6 +9,7 @@ Public Class OpenFileWD
Private m_sCurrFile As String = String.Empty Private m_sCurrFile As String = String.Empty
Private m_sExt As String = String.Empty Private m_sExt As String = String.Empty
Private m_sExt2 As String = String.Empty Private m_sExt2 As String = String.Empty
Private n_sDeniedFiles As New List(Of String)
Private m_OpenItemList As New ObservableCollection(Of IconListBoxItem) Private m_OpenItemList As New ObservableCollection(Of IconListBoxItem)
@@ -27,6 +28,15 @@ Public Class OpenFileWD
InitializeComponent() InitializeComponent()
End Sub End Sub
Sub New(Owner As Window, sDir As String, sExt As String, sExt2 As String, DeniedFiles As List(Of String))
Me.Owner = Owner
m_sCurrDir = sDir
m_sExt = sExt
m_sExt2 = sExt2
n_sDeniedFiles = DeniedFiles
InitializeComponent()
End Sub
Private Sub OpenFile_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized Private Sub OpenFile_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' Posizione finestra ' Posizione finestra
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2 Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
@@ -71,13 +81,20 @@ Public Class OpenFileWD
Dim FileI As FileInfo Dim FileI As FileInfo
For Each FileI In vFileI For Each FileI In vFileI
Dim sExt As String = Path.GetExtension(FileI.Name).ToUpper() Dim sExt As String = Path.GetExtension(FileI.Name).ToUpper()
If String.Compare(sExt, m_sExt, True) = 0 Or Dim sFileName As String = Path.GetFileNameWithoutExtension(FileI.Name).ToUpper.Trim
String.Compare(sExt, m_sExt2, True) = 0 Then Dim bDenied As Boolean = False
For Each ItemFile As String In n_sDeniedFiles
If ItemFile.ToUpper.Trim = sFileName Then
bDenied = True
Exit For
End If
Next
If (String.Compare(sExt, m_sExt, True) = 0 Or String.Compare(sExt, m_sExt2, True) = 0) And Not bDenied Then
m_OpenItemList.Add(New IconListBoxItem(FileI.Name, 3)) m_OpenItemList.Add(New IconListBoxItem(FileI.Name, 3))
End If End If
Next Next
' riporto visualizzazione in cima alla lista (esiste sempre almeno un elemento) ' riporto visualizzazione in cima alla lista (esiste sempre almeno un elemento)
FileListBox.ScrollIntoView(m_OpenItemList(0)) FileListBox.ScrollIntoView(m_OpenItemList(0))
Return True Return True
End Function End Function
+72
View File
@@ -0,0 +1,72 @@
<Window x:Class="SelectPartFromFamilyWD"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
Title="SaveNameWD" Height="200" Width="400" ShowInTaskbar="False">
<!--Definizione della pagina di scelta del nome con cui salvare il progetto-->
<Border Style="{DynamicResource OmagCut_Border}">
<Grid x:Name="SaveNameGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="0.3*"/>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.2*"/>
</Grid.RowDefinitions>
<!--Messaggio: Seleziona il numero di pezzi-->
<TextBlock Name="TitleWDTxbl" Grid.Column="1" Grid.Row="1"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<UniformGrid Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" Columns="2">
<TextBlock Name="NbrOfPartsMsg"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="NbrOfParts"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
</UniformGrid>
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.Row="5" Grid.RowSpan="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<!--ultimo progetto-->
<Button Name="ConfirmSelection" Grid.Column="1" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"
ToolTip="Confirm">
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<!--nuovo progetto-->
<Button Name="SelectAllPart" Grid.Column="2" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"
ToolTip="Select all" Visibility="Collapsed">
<Image Source="{DynamicResource NuovoImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<!--apri folder progetti-->
<Button Name="CancelSelection" Grid.Column="5" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"
ToolTip="Cancel">
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
</Grid>
</Grid>
</Border>
</Window>
+66
View File
@@ -0,0 +1,66 @@
Public Class SelectPartFromFamilyWD
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_NumberOfParts As Integer = 1
Public Property NumberOfParts As Integer
Get
Return m_NumberOfParts
End Get
Set(value As Integer)
m_NumberOfParts = value
End Set
End Property
Private m_NumberOfSelection As Integer = 1
Public Property NumberOfSelection As Integer
Get
Return m_NumberOfSelection
End Get
Set(value As Integer)
m_NumberOfSelection = value
End Set
End Property
Public Sub New(Owner As Window, NbrParts As Integer)
Me.Owner = Owner
m_NumberOfParts = NbrParts
InitializeComponent()
Me.ShowDialog()
End Sub
' inizializzo la finestra
Private Sub SelectPartFromFamilyWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' posiziono la fistra in centro alla pagina
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
TitleWDTxbl.Text = "Selection parts"
NbrOfPartsMsg.Text = "Number of parts"
NbrOfParts.Text = m_NumberOfParts.ToString
End Sub
' seleziono il numero di elementi indicati
Private Sub ConfirmSelection_Click(sender As Object, e As RoutedEventArgs) Handles ConfirmSelection.Click
Dim nVal As Integer = 0
StringToInt(NbrOfParts.Text, nVal)
If nVal >= 0 Then
m_NumberOfSelection = nVal
Else
' indice non valido per la selezione
m_NumberOfSelection = 0
End If
Me.Close()
End Sub
'' seleziona tutti
'Private Sub SelectAllPart_Click(sender As Object, e As RoutedEventArgs) Handles SelectAllPart.Click
' m_NumberOfSelection = m_NumberOfParts
' Me.Close()
'End Sub
' Deseleziomo tutto
Private Sub CancelSelection_Click(sender As Object, e As RoutedEventArgs) Handles CancelSelection.Click
m_NumberOfSelection = 0
Me.Close()
End Sub
End Class
+11
View File
@@ -166,6 +166,17 @@ Public Module SplitAuto
End Function End Function
'----------------------------------------------------------------------------------------------- '-----------------------------------------------------------------------------------------------
' calcolo il numero di tipi di lavorazioni
Friend Sub CountMachiningType(MachSplit As SplitMach, ByRef nCountSawing As Integer, ByRef nCountWaterjetting As Integer, ByRef nCountOtherMachining As Integer)
If MachSplit.m_nType = MCH_OY.SAWING Then
nCountSawing += 1
ElseIf MachSplit.m_nType = MCH_OY.WATERJETTING Then
nCountWaterjetting += 1
Else
nCountOtherMachining += 1
End If
End Sub
Friend Sub ColorMachining(MachSplit As SplitMach, Optional bReset As Boolean = False) Friend Sub ColorMachining(MachSplit As SplitMach, Optional bReset As Boolean = False)
EgtDisableModified() EgtDisableModified()
' Assegno stato ' Assegno stato
+552 -110
View File
@@ -6,6 +6,9 @@ Public Class SplitPageUC
' Riferimento alla MainWindow ' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
' Flag di pagina attiva
Private m_bActive As Boolean = False
' Tipo movimento dei grezzi (manuale o con testa ventosa) ' Tipo movimento dei grezzi (manuale o con testa ventosa)
Private m_bByHand As Boolean = True Private m_bByHand As Boolean = True
' Abilitazione movimento finale pezzi su tavola ausiliaria ' Abilitazione movimento finale pezzi su tavola ausiliaria
@@ -13,6 +16,16 @@ Public Class SplitPageUC
' Stato ' Stato
Private m_nCurrPhase As Integer = 0 Private m_nCurrPhase As Integer = 0
Private m_MachiningList As New List(Of SplitMach) Private m_MachiningList As New List(Of SplitMach)
' numero di lavorazioni di tipo lama
Private m_nCountSawing As Integer = 0
' numero di lavprazioni di tipo waterjet
Private m_nCountWaterjetting As Integer = 0
' altri tipi di lavorazioni (Foro/Fresa)
Private m_nCountOtherMachining As Integer = 0
' verifico che le lavorazioni selezionate siano omogenee (con lo stesso utensile)
Private m_bAreHomogeneous As Boolean = False
Private m_ItemList As New ObservableCollection(Of NameIdLsBxItem) Private m_ItemList As New ObservableCollection(Of NameIdLsBxItem)
'Private m_CurrInd As Integer = -1 'Private m_CurrInd As Integer = -1
'Private m_CurrItems As New List(Of NameIdLsBxItem) 'Private m_CurrItems As New List(Of NameIdLsBxItem)
@@ -23,6 +36,13 @@ Public Class SplitPageUC
Private m_nNbrGrpId As Integer = GDB_ID.NULL Private m_nNbrGrpId As Integer = GDB_ID.NULL
Private m_bToNext As Boolean = False Private m_bToNext As Boolean = False
Friend m_bOnAuxTab As Boolean = False Friend m_bOnAuxTab As Boolean = False
' Drag
Private m_nDragInd As Integer = -1
Private m_nDragType As Integer = 0 '0=niente, 1=attacco, 2=uscita
Private m_ptDragPrev As Point3d
Private m_bDragging As Boolean = False
' Selected cut
Private m_nSelected As Integer = GDB_ID.NULL
Private Sub SplitPageUC_Initialized(sender As Object, e As EventArgs) Private Sub SplitPageUC_Initialized(sender As Object, e As EventArgs)
PrevBtn.IsEnabled = False PrevBtn.IsEnabled = False
@@ -53,6 +73,10 @@ Public Class SplitPageUC
End Sub End Sub
Private Sub SplitPageUC_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded Private Sub SplitPageUC_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
m_bActive = True
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_nDragInd = -1
m_nDragType = 0
' Leggo tipo movimento grezzi ' Leggo tipo movimento grezzi
m_bByHand = (EgtGetHeadId(VACUUM_HEAD) = GDB_ID.NULL Or m_bByHand = (EgtGetHeadId(VACUUM_HEAD) = GDB_ID.NULL Or
Not m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.AUTO_MANIP) Or Not m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.AUTO_MANIP) Or
@@ -79,7 +103,7 @@ Public Class SplitPageUC
If Not m_bShow Then If Not m_bShow Then
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then ResetAllMachinings() If m_MainWindow.m_CurrentMachine.WaterJettingActive Then ResetAllMachinings()
If SortAllMachinings() Then m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag() If SortAllMachinings() Then m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag()
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
Dim bModif As Boolean = TestAllMachiningsForStrict() Dim bModif As Boolean = TestAllMachiningsForStrict()
If bModif Then m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze If bModif Then m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze
End If End If
@@ -97,12 +121,18 @@ Public Class SplitPageUC
ShowOnePhaseMachiningPreview(m_nCurrPhase) ShowOnePhaseMachiningPreview(m_nCurrPhase)
' Preparo la lista delle lavorazioni ' Preparo la lista delle lavorazioni
CalculateSplitMachList(m_nCurrPhase, m_MachiningList) CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
' azzero i contatori delle lavorazioni
m_nCountSawing = 0
m_nCountWaterjetting = 0
m_nCountOtherMachining = 0
' Aggiorno visualizzazione delle lavorazioni ' Aggiorno visualizzazione delle lavorazioni
For nI As Integer = 0 To m_MachiningList.Count() - 1 For nI As Integer = 0 To m_MachiningList.Count() - 1
' sistemo colore ' sistemo colore
ColorMachining(m_MachiningList(nI)) ColorMachining(m_MachiningList(nI))
' assegno numerazione ' assegno numerazione
NumberDirectionMachining(nI) NumberDirectionMachining(nI)
' conto il numero di tipi di lavorazioni
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
Next Next
' Preparo la lista degli Item ' Preparo la lista degli Item
ShowMachiningList() ShowMachiningList()
@@ -138,33 +168,222 @@ Public Class SplitPageUC
Dim sText As String = String.Empty Dim sText As String = String.Empty
If Math.Abs(Mach.m_dSideAng) < EPS_ANG_SMALL Then If Math.Abs(Mach.m_dSideAng) < EPS_ANG_SMALL Then
sText = EgtMsg(90791) & " " & i.ToString() sText = EgtMsg(90791) & " " & i.ToString()
If Mach.m_sLay = NAME_ONPATH Then AddTopText( sText) If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
Else Else
sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString( Mach.m_dSideAng, 2) & "°" sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString(Mach.m_dSideAng, 2) & "°"
End If End If
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.SAWING))
ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura
Dim sText As String = EgtMsg(90792) & " " & i.ToString() Dim sText As String = EgtMsg(90792) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.DRILLING))
ElseIf Mach.m_nType = MCH_OY.MILLING Then ' Fresatura ElseIf Mach.m_nType = MCH_OY.MILLING Then ' Fresatura
Dim sText As String = EgtMsg(90793) & " " & i.ToString() Dim sText As String = EgtMsg(90793) & " " & i.ToString()
If Mach.m_sLay = NAME_ONPATH Then AddTopText( sText) If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
If Mach.m_bPause Then AddPauseText( sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.MILLING))
ElseIf Mach.m_nType = MCH_OY.POCKETING Then ' Svuotatura ElseIf Mach.m_nType = MCH_OY.POCKETING Then ' Svuotatura
Dim sText As String = EgtMsg(90796) & " " & i.ToString() Dim sText As String = EgtMsg(90796) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.POCKETING))
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then ' Waterjet ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then ' Waterjet
Dim sText As String = EgtMsg(90797) & " " & i.ToString() Dim sText As String = EgtMsg(90797) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.WATERJETTING))
End If End If
Next Next
End Sub End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse m_bShow Then Return
' Si può selezionare solo con il tasto sinistro e se stato NULL
If e.Button <> Windows.Forms.MouseButtons.Left Or
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
Return
End If
' Reset drag
m_nDragInd = -1
m_nDragType = 0
' Reset selection interface
m_nSelected = GDB_ID.NULL
' Verifico se selezionato estremo di taglio con lama
EgtSetObjFilterForSelWin(False, True, False, False, False)
Dim nSel As Integer
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
Dim nId As Integer = EgtGetFirstObjInSelWin()
While nId <> GDB_ID.NULL
' Verifico sia un attacco o uscita di taglio con lama
Dim nType As Integer = 0
Dim sName As String = ""
EgtGetName(nId, sName)
If String.Compare(sName, NAME_PV_PRECUT) = 0 Then
nType = 1
ElseIf String.Compare(sName, NAME_PV_POSTCUT) = 0 Then
nType = 2
ElseIf String.Compare(sName, NAME_PV_CUT) = 0 Then
nType = 3
End If
If nType = 1 Or nType = 2 Then
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
Dim nMchId As Integer = GDB_ID.NULL
If EgtGetInfo(nPvId, "MId", nMchId) Then
For nInd As Integer = 0 To m_MachiningList.Count() - 1
If m_MachiningList(nInd).m_nId = nMchId Then
m_nDragInd = nInd
m_nDragType = nType
End If
For nJ As Integer = 0 To m_MachiningList(nInd).m_vOthId.Count() - 1
If m_MachiningList(nInd).m_vOthId(nJ) = nMchId Then
m_nDragInd = nInd
m_nDragType = nType
Exit For
End If
Next
If m_nDragInd >= 0 Then
' Assegno l'id dell'elemnto selezionato
m_nSelected = m_nDragInd
Exit For
End If
Next
End If
If m_nDragInd >= 0 Then
' Assegno l'id dell'elemnto selezionato
m_nSelected = m_nDragInd
Exit While
End If
ElseIf nType = 3 Then
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
Dim nMchId As Integer = GDB_ID.NULL
If EgtGetInfo(nPvId, "MId", nMchId) Then
For nInd As Integer = 0 To m_MachiningList.Count() - 1
If m_MachiningList(nInd).m_nId = nMchId Then
m_nSelected = nInd
End If
For nJ As Integer = 0 To m_MachiningList(nInd).m_vOthId.Count() - 1
If m_MachiningList(nInd).m_vOthId(nJ) = nMchId Then
m_nSelected = nInd
Exit For
End If
Next
If m_nSelected >= 0 Then Exit For
Next
End If
If m_nSelected >= 0 Then Exit While
End If
nId = EgtGetNextObjInSelWin()
End While
' Sistemazioni per drag
If m_nSelected >= 0 AndAlso EgtUnProjectPoint(e.Location, m_ptDragPrev) Then
MachiningLsBx.SelectedIndex = m_nSelected
Else
m_nDragInd = -1
m_nDragType = 0
m_nSelected = GDB_ID.NULL
End If
End Sub
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseMoveScene
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse m_bShow Then Return
' Se drag non abilitato o in corso
If m_nDragInd = -1L Or m_bDragging Then Return
m_bDragging = True
Dim nOperId As Integer = m_MachiningList(m_nDragInd).m_nId
' Ricavo il punto corrente in coordinate mondo
Dim ptCurr As Point3d
EgtUnProjectPoint(e.Location, ptCurr)
' Ricavo il vettore di movimento e la variazione di lunghezza
Dim vtMove As Vector3d = ptCurr - m_ptDragPrev
Dim dDelta = vtMove * m_MachiningList(m_nDragInd).m_vtDir
If m_nDragType = 1 Then
Dim dOrigUsal As Double = 0
Dim dUsal As Double
' ----------------------- REPEAT -----------------------
Do
dDelta = -dDelta
' Leggo il valore salvato nella geometria
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
dUsal = dOrigUsal + dDelta
' Se c'è limite alla lunghezza libera
If m_MachiningList(m_nDragInd).m_dStartFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUsal = Math.Min(dUsal, m_MachiningList(m_nDragInd).m_dStartFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then
m_bDragging = False
Return
End If
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
Loop Until UpdateMachiningPreview(m_MachiningList(m_nDragInd).m_nId, True)
' ----------------------- REPEAT (solo se il segmento scompare) -----------------------
Else
Dim dOrigUeal As Double = 0
Dim dUeal As Double
dDelta = -dDelta
Do
dDelta = -dDelta
' Leggo il valore salvato nella geometria
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
dUeal = dOrigUeal + dDelta
' Se c'è limite alla lunghezza libera
If m_MachiningList(m_nDragInd).m_dEndFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(m_nDragInd).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
m_bDragging = False
Return
End If
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
Loop Until UpdateMachiningPreview(m_MachiningList(m_nDragInd).m_nId, True)
End If
' verifico interferenza
EgtVerifyMachining(m_MachiningList(m_nDragInd).m_nId, m_MachiningList(m_nDragInd).m_nInterf)
ColorMachining(m_MachiningList(m_nDragInd))
ColorNumberArrow(m_nDragInd)
' Aggiorno visualizzazione
EgtDraw()
m_bModified = True
' Aggiorno punto e stato di drag
m_ptDragPrev = ptCurr
m_bDragging = False
End Sub
Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse m_bShow Then Return
' Se drag in corso
If m_nDragInd >= 0 Then
m_nDragInd = -1
End If
End Sub
Private Sub AddPauseText(ByRef sName As String) Private Sub AddPauseText(ByRef sName As String)
sName &= " " & EgtMsg(MSG_SPLITPAGEUC + 32) ' Pausa sName &= " " & EgtMsg(MSG_SPLITPAGEUC + 32) ' Pausa
End Sub End Sub
@@ -180,31 +399,49 @@ Public Class SplitPageUC
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
If MachiningLsBx.SelectedItems.Count = 0 Then Return If MachiningLsBx.SelectedItems.Count = 0 Then Return
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
' creo lista ordinata dei selezionati ' creo lista ordinata dei selezionati
Dim ItemList As New List(Of NameIdLsBxItem) Dim ItemList As New List(Of NameIdLsBxItem)
For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems
ItemList.Add(Item) ItemList.Add(Item)
Next Next
' verifico che le lavorazioni siano dello stesso tipo
VerifyHomogenousMachining(ItemList)
ItemList.Sort(Function(x, y) Comparer(Of Integer).Default.Compare(m_ItemList.IndexOf(x), m_ItemList.IndexOf(y))) 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 If VerifyContinuity(ItemList) Then
Dim OrdIndex = 0 MoveUpBtn.IsEnabled = True
OrdIndex = MachiningLsBx.SelectedItems(MachiningLsBx.SelectedItems.Count - 1).Ind MoveDownBtn.IsEnabled = True
Dim LastSel As NameIdLsBxItem = MachiningLsBx.SelectedItems(MachiningLsBx.SelectedItems.Count - 1)
If MachiningLsBx.SelectedItems.Count = 1 Then
bContigus = True
Else Else
For Each Item As NameIdLsBxItem In ItemList MoveUpBtn.IsEnabled = False
If Item.Ind = LastSel.Ind + 1 Or Item.Ind = LastSel.Ind - 1 Then MoveDownBtn.IsEnabled = False
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 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 ' resetto marcatura lavorazioni
If m_CurrFirstInd > -1 Then If m_CurrFirstInd > -1 Then
For Index As Integer = m_CurrFirstInd To m_CurrLastInd For Index As Integer = m_CurrFirstInd To m_CurrLastInd
@@ -273,6 +510,9 @@ Public Class SplitPageUC
Private Sub OnOffBtn_Click(sender As Object, e As RoutedEventArgs) Handles OnOffBtn.Click Private Sub OnOffBtn_Click(sender As Object, e As RoutedEventArgs) Handles OnOffBtn.Click
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
If m_MachiningList(nI).m_bEnabled Then If m_MachiningList(nI).m_bEnabled Then
m_MachiningList(nI).m_bEnabled = False m_MachiningList(nI).m_bEnabled = False
@@ -287,8 +527,14 @@ Public Class SplitPageUC
EgtDraw() EgtDraw()
' Imposto flag di modifica ' Imposto flag di modifica
m_bModified = True m_bModified = True
' Abilitazione bottone Next
EnableButtons() ' recupero l'elenco degli elementi selezionati
Dim ItemList As New List(Of NameIdLsBxItem)
For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems
ItemList.Add(Item)
Next
VerifyHomogenousMachining(ItemList)
End Sub End Sub
Private Sub AllOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllOnBtn.Click Private Sub AllOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllOnBtn.Click
@@ -327,6 +573,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
' Provo ad entrambi gli estremi ' Provo ad entrambi gli estremi
Dim bModif As Boolean = AdjustBothCuts(nI) Dim bModif As Boolean = AdjustBothCuts(nI)
@@ -352,6 +601,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
' Eseguo ' Eseguo
If AdjustEndCut(nI) Then If AdjustEndCut(nI) Then
@@ -371,6 +623,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
' Eseguo ' Eseguo
If AdjustStartCut(nI) Then If AdjustStartCut(nI) Then
@@ -499,6 +754,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
EgtSetCurrMachining(m_MachiningList(nI).m_nId) EgtSetCurrMachining(m_MachiningList(nI).m_nId)
@@ -597,6 +855,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
EgtSetCurrMachining(m_MachiningList(nI).m_nId) EgtSetCurrMachining(m_MachiningList(nI).m_nId)
@@ -736,6 +997,8 @@ Public Class SplitPageUC
Private Sub ModifStartBtn_Click(sender As Object, e As RoutedEventArgs) Handles ModifStartBtn.Click 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) ' 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 bFirstInd As Boolean = True
Dim bFirstMill As Boolean = True
Dim bFirstWJ As Boolean = True
' elenco delle variabili : MCH_MY.SAWING/MCH_MY.MILLING ' elenco delle variabili : MCH_MY.SAWING/MCH_MY.MILLING
Dim dUsal As Double = 0 Dim dUsal As Double = 0
@@ -750,6 +1013,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
Dim nOperId As Integer = m_MachiningList(nI).m_nId Dim nOperId As Integer = m_MachiningList(nI).m_nId
Dim nMachiningType As Integer = EgtGetOperationType(nOperId) Dim nMachiningType As Integer = EgtGetOperationType(nOperId)
@@ -763,7 +1029,7 @@ Public Class SplitPageUC
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then If bFirstInd Then
' Dialogo richiesta valore ' 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) ValWnd.SetVal(dOrigUsal)
If Not ValWnd.ShowDialog() Then Return If Not ValWnd.ShowDialog() Then Return
' carico il valore letto dal testierino virtuale ' carico il valore letto dal testierino virtuale
@@ -772,26 +1038,37 @@ Public Class SplitPageUC
bFirstInd = False bFirstInd = False
End If End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
Dim bRepeat As Boolean = False
Do
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dStartFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUsal = Math.Min(dUsal, m_MachiningList(nI).m_dStartFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
' verifico che non sia sull'angolo interno (altrimenti vieto la modifica)
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then
Return
End If
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
bRepeat = Not UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
If bRepeat Then
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
dUsal = dOrigUsal
End If
Loop Until Not bRepeat
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dStartFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUsal = Math.Min(dUsal, m_MachiningList(nI).m_dStartFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then Return
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
' verifico interferenza ' verifico interferenza
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf) EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
ColorMachining(m_MachiningList(nI)) ColorMachining(m_MachiningList(nI))
@@ -804,16 +1081,16 @@ Public Class SplitPageUC
' leggo il valore salvato nella geometria ' leggo il valore salvato nella geometria
Dim dOrigUsal As Double = 0 Dim dOrigUsal As Double = 0
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal) EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
If bFirstInd Then If bFirstMill Then
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
' Dialogo richiesta valore ' 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) ValWnd.SetVal(dOrigUsal)
If Not ValWnd.ShowDialog() Then Return If Not ValWnd.ShowDialog() Then Return
' carico il valore letto dal testierino virtuale ' carico il valore letto dal testierino virtuale
dUsal = ValWnd.GetVal() dUsal = ValWnd.GetVal()
' comunico che ho letto il primo dato ' comunico che ho letto il primo dato
bFirstInd = False bFirstMill = False
End If End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
@@ -830,7 +1107,7 @@ Public Class SplitPageUC
ElseIf nMachiningType = MCH_MY.WATERJETTING Then ElseIf nMachiningType = MCH_MY.WATERJETTING Then
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then If bFirstWJ Then
' Recupero i valori attuali della lavorazione ' Recupero i valori attuali della lavorazione
Dim bOriginalIsLeadIn As Boolean = True Dim bOriginalIsLeadIn As Boolean = True
Dim dOriginalAddLen As Double = 0 Dim dOriginalAddLen As Double = 0
@@ -845,7 +1122,7 @@ Public Class SplitPageUC
EgtGetMachiningParam(MCH_MP.LIPERP, nOriginalPerpDist) EgtGetMachiningParam(MCH_MP.LIPERP, nOriginalPerpDist)
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nOriginalLeadInType) EgtGetMachiningParam(MCH_MP.LEADINTYPE, nOriginalLeadInType)
' Dialogo richiesta valori ' 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.SetElongation(dOriginalAddLen)
ModifStartWnd.SetHole(bOriginalLiHole) ModifStartWnd.SetHole(bOriginalLiHole)
ModifStartWnd.SetLiTangDist(nOriginalTangDist) ModifStartWnd.SetLiTangDist(nOriginalTangDist)
@@ -860,7 +1137,7 @@ Public Class SplitPageUC
nWJPerpDist = ModifStartWnd.GetLiPerpDist() nWJPerpDist = ModifStartWnd.GetLiPerpDist()
nWJLeadInType = ModifStartWnd.GetLeadInType().Id nWJLeadInType = ModifStartWnd.GetLeadInType().Id
' comunico che ho letto il primo dato ' comunico che ho letto il primo dato
bFirstInd = False bFirstWJ = False
End If End If
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
@@ -891,6 +1168,8 @@ Public Class SplitPageUC
Private Sub ModifEndBtn_Click(sender As Object, e As RoutedEventArgs) Handles ModifEndBtn.Click 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) ' 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 bFirstInd As Boolean = True
Dim bFirstMill As Boolean = True
Dim bFirstWJ As Boolean = True
' elenco delle variabili : MCH_MY.SAWING/MCH_MY.MILLING ' elenco delle variabili : MCH_MY.SAWING/MCH_MY.MILLING
Dim dUeal As Double = 0 Dim dUeal As Double = 0
@@ -903,7 +1182,10 @@ Public Class SplitPageUC
' Recupero la lavorazione corrente ' Recupero la lavorazione corrente
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
Dim nOperId As Integer = m_MachiningList(nI).m_nId Dim nOperId As Integer = m_MachiningList(nI).m_nId
Dim nMachiningType As Integer = EgtGetOperationType(nOperId) Dim nMachiningType As Integer = EgtGetOperationType(nOperId)
@@ -917,33 +1199,45 @@ Public Class SplitPageUC
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then If bFirstInd Then
' Dialogo richiesta valore ' 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) ValWnd.SetVal(dOrigUeal)
If Not ValWnd.ShowDialog() Then Return If Not ValWnd.ShowDialog() Then Return
dUeal = ValWnd.GetVal() dUeal = ValWnd.GetVal()
bFirstInd = False bFirstInd = False
End If End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
Dim bRepeat As Boolean = False
Do
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dEndFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(nI).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
Return
End If
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
bRepeat = Not UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
If bRepeat Then
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
dUeal = dOrigUeal
End If
Loop Until Not bRepeat
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dEndFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(nI).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then Return
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
' verifico interferenza ' verifico interferenza
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf) EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
ColorMachining(m_MachiningList(nI)) ColorMachining(m_MachiningList(nI))
@@ -955,13 +1249,13 @@ Public Class SplitPageUC
Dim dOrigUeal As Double = 0 Dim dOrigUeal As Double = 0
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal) EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
If bFirstInd Then If bFirstMill Then
' Dialogo richiesta valore ' 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) ValWnd.SetVal(dOrigUeal)
If Not ValWnd.ShowDialog() Then Return If Not ValWnd.ShowDialog() Then Return
dUeal = ValWnd.GetVal() dUeal = ValWnd.GetVal()
bFirstInd = False bFirstMill = False
End If End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
' Modifica della lavorazione ' Modifica della lavorazione
@@ -975,7 +1269,7 @@ Public Class SplitPageUC
' se altrimenti getto d'acqua ' se altrimenti getto d'acqua
ElseIf nMachiningType = MCH_MY.WATERJETTING Then ElseIf nMachiningType = MCH_MY.WATERJETTING Then
If bFirstInd Then If bFirstWJ Then
' Recupero i valori attuali della lavorazione ' Recupero i valori attuali della lavorazione
Dim dAddLen As Double = 0 Dim dAddLen As Double = 0
Dim LeadOutType As Integer = 0 Dim LeadOutType As Integer = 0
@@ -987,7 +1281,7 @@ Public Class SplitPageUC
EgtGetMachiningParam(MCH_MP.LOTANG, nTangDist) EgtGetMachiningParam(MCH_MP.LOTANG, nTangDist)
EgtGetMachiningParam(MCH_MP.LOPERP, nPerpDist) EgtGetMachiningParam(MCH_MP.LOPERP, nPerpDist)
' Dialogo richiesta valore ' 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.SetElongation(dAddLen)
ModifStartWnd.SetLeadOutType(LeadOutType) ModifStartWnd.SetLeadOutType(LeadOutType)
ModifStartWnd.SetLoTangDist(nTangDist) ModifStartWnd.SetLoTangDist(nTangDist)
@@ -997,7 +1291,7 @@ Public Class SplitPageUC
WJLeadOutType = ModifStartWnd.GetLeadOutType().Id WJLeadOutType = ModifStartWnd.GetLeadOutType().Id
nWJTangDist = ModifStartWnd.GetLoTangDist() nWJTangDist = ModifStartWnd.GetLoTangDist()
nWJPerpDist = ModifStartWnd.GetLoPerpDist() nWJPerpDist = ModifStartWnd.GetLoPerpDist()
bFirstInd = False bFirstWJ = False
End If End If
' Modifica della lavorazione ' Modifica della lavorazione
@@ -1025,42 +1319,45 @@ Public Class SplitPageUC
Private Sub InvertBtn_Click(sender As Object, e As RoutedEventArgs) Handles InvertBtn.Click Private Sub InvertBtn_Click(sender As Object, e As RoutedEventArgs) Handles InvertBtn.Click
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
' Si possono invertire solo i tagli di lama ' 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 Then Continue For
' Non si possono invertire i tagli di lama inclinati ' Non si possono invertire i tagli di lama inclinati
If Math.Abs( m_MachiningList(nI).m_dSideAng) > 0.1 Then Continue For If Math.Abs(m_MachiningList(nI).m_dSideAng) > 0.1 Then Continue For
' Se abilitata inversione automatica e quindi non invertito ' Se abilitata inversione automatica e quindi non invertito
If m_MachiningList( nI).m_bEnableInvert Then If m_MachiningList(nI).m_bEnableInvert Then
' Inverto e disabilito inversione automatica ' Inverto e disabilito inversione automatica
If CamAuto.InvertVerticalCut( m_MachiningList( nI).m_nId) Then If CamAuto.InvertVerticalCut(m_MachiningList(nI).m_nId) Then
m_MachiningList( nI).m_bInvert = True m_MachiningList(nI).m_bInvert = True
m_MachiningList( nI).m_vtDir = - m_MachiningList( nI).m_vtDir m_MachiningList(nI).m_vtDir = -m_MachiningList(nI).m_vtDir
m_MachiningList( nI).m_bEnableInvert = False m_MachiningList(nI).m_bEnableInvert = False
SwapStartEndData( nI) SwapStartEndData(nI)
ResetEnableInvert( m_MachiningList( nI).m_nEntId) ResetEnableInvert(m_MachiningList(nI).m_nEntId)
EgtErase( m_MachiningList( nI).m_nArrId) EgtErase(m_MachiningList(nI).m_nArrId)
NumberDirectionMachining( nI, False) NumberDirectionMachining(nI, False)
EgtDraw() EgtDraw()
End If End If
' se altrimenti disabilitata inversione automatica e invertito ' se altrimenti disabilitata inversione automatica e invertito
ElseIf m_MachiningList( nI).m_bInvert Then ElseIf m_MachiningList(nI).m_bInvert Then
' Tolgo inversione e lascio disabilitazione inv. autom. ' Tolgo inversione e lascio disabilitazione inv. autom.
If CamAuto.InvertVerticalCut( m_MachiningList( nI).m_nId) Then If CamAuto.InvertVerticalCut(m_MachiningList(nI).m_nId) Then
m_MachiningList( nI).m_bInvert = False m_MachiningList(nI).m_bInvert = False
m_MachiningList( nI).m_vtDir = - m_MachiningList( nI).m_vtDir m_MachiningList(nI).m_vtDir = -m_MachiningList(nI).m_vtDir
SwapStartEndData( nI) SwapStartEndData(nI)
EgtErase( m_MachiningList( nI).m_nArrId) EgtErase(m_MachiningList(nI).m_nArrId)
NumberDirectionMachining( nI, False) NumberDirectionMachining(nI, False)
EgtDraw() EgtDraw()
End If End If
' altrimenti disabilitata inversione automatica e non invertito ' altrimenti disabilitata inversione automatica e non invertito
Else Else
' Abilito inversione automatica e lascio non invertito ' Abilito inversione automatica e lascio non invertito
m_MachiningList( nI).m_bEnableInvert = True m_MachiningList(nI).m_bEnableInvert = True
SetEnableInvert( m_MachiningList( nI).m_nEntId) SetEnableInvert(m_MachiningList(nI).m_nEntId)
EgtErase( m_MachiningList( nI).m_nArrId) EgtErase(m_MachiningList(nI).m_nArrId)
NumberDirectionMachining( nI, False) NumberDirectionMachining(nI, False)
EgtDraw() EgtDraw()
End If End If
Next Next
@@ -1070,6 +1367,9 @@ Public Class SplitPageUC
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
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
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
Dim nOperId As Integer = m_MachiningList(nI).m_nId Dim nOperId As Integer = m_MachiningList(nI).m_nId
If GetPause(nOperId) Then If GetPause(nOperId) Then
@@ -1122,7 +1422,7 @@ Public Class SplitPageUC
' Se fase corrente è la prima, imposto partenza normale ' Se fase corrente è la prima, imposto partenza normale
If m_nCurrPhase = 1 Then If m_nCurrPhase = 1 Then
m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart() m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart()
' Altrimenti, imposto la ripartenza dalla fase corrente ' Altrimenti, imposto la ripartenza dalla fase corrente
Else Else
m_MainWindow.m_CurrentProjectPageUC.SetProjectNcRestart(m_nCurrPhase) m_MainWindow.m_CurrentProjectPageUC.SetProjectNcRestart(m_nCurrPhase)
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(MSG_SPLITPAGEUC + 19) & " (" & m_nCurrPhase.ToString() & ")") m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(MSG_SPLITPAGEUC + 19) & " (" & m_nCurrPhase.ToString() & ")")
@@ -1141,7 +1441,7 @@ Public Class SplitPageUC
' Aggiorno le lavorazioni (eliminato sort per lasciare ordine immutato) ' Aggiorno le lavorazioni (eliminato sort per lasciare ordine immutato)
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then ResetAllMachinings() If m_MainWindow.m_CurrentMachine.WaterJettingActive Then ResetAllMachinings()
m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag() m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag()
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
Dim bModif As Boolean = TestAllMachiningsForStrict() Dim bModif As Boolean = TestAllMachiningsForStrict()
If bModif Then m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze If bModif Then m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze
End If End If
@@ -1151,8 +1451,13 @@ Public Class SplitPageUC
HideAllMachinings() HideAllMachinings()
' Preparo la lista delle lavorazioni e le disabilito ' Preparo la lista delle lavorazioni e le disabilito
CalculateSplitMachList(m_nCurrPhase, m_MachiningList) CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
m_nCountSawing = 0
m_nCountWaterjetting = 0
m_nCountOtherMachining = 0
For nI As Integer = 0 To m_MachiningList.Count() - 1 For nI As Integer = 0 To m_MachiningList.Count() - 1
m_MachiningList(nI).m_bEnabled = False m_MachiningList(nI).m_bEnabled = False
' conto il numero di tipi di lavorazioni
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
Next Next
' Aggiorno visualizzazione delle lavorazioni ' Aggiorno visualizzazione delle lavorazioni
EgtEmptyGroup(m_nNbrGrpId) EgtEmptyGroup(m_nNbrGrpId)
@@ -1171,6 +1476,7 @@ Public Class SplitPageUC
End Sub End Sub
Private Sub SplitPageUC_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded Private Sub SplitPageUC_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded
m_bActive = False
m_MainWindow.m_CurrentProjectPageUC.ClearMessage() m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
ExitSplit(Not m_bToNext) ExitSplit(Not m_bToNext)
EgtDraw() EgtDraw()
@@ -1338,6 +1644,117 @@ Public Class SplitPageUC
ModifEndBtn.IsEnabled = Not m_bShow ModifEndBtn.IsEnabled = Not m_bShow
InvertBtn.IsEnabled = Not m_bShow InvertBtn.IsEnabled = Not m_bShow
PauseBtn.IsEnabled = Not m_bShow And m_MainWindow.m_CurrentMachine.bEnablePause PauseBtn.IsEnabled = Not m_bShow And m_MainWindow.m_CurrentMachine.bEnablePause
' nascondo i comandi che non devono essere visualizzati in funzione delle lavorazioni attive
If m_nCountSawing = 0 And (m_nCountWaterjetting > 0 Or m_nCountOtherMachining) Then
VisibilityButtonFromMachinig(MCH_OY.WATERJETTING)
Else
VisibilityButtonFromMachinig(MCH_OY.SAWING)
End If
End Sub
Private Sub VerifyHomogenousMachining(ItemList As List(Of NameIdLsBxItem))
If IsNothing(ItemList) OrElse ItemList.Count = 0 Then
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
Return
End If
Dim nSawing As Integer = 0
Dim nWaterjetting As Integer = 0
Dim nOtherMachining As Integer = 0
' conto il numero di tipi di lavprazioni
For Each Item As NameIdLsBxItem In ItemList
If Item.Type = MCH_OY.SAWING Then
nSawing += 1
ElseIf Item.Type = MCH_OY.WATERJETTING Then
nWaterjetting += 1
Else
nOtherMachining += 1
End If
Next
' verifico se le lavorazioni sono omeogenee
If nSawing > 0 And (nWaterjetting > 0 Or nOtherMachining > 0) Then
m_bAreHomogeneous = False
VisibilityButtonFromMachinig(MCH_OY.SAWING)
ElseIf nSawing = 0 And nOtherMachining > 0 And nWaterjetting > 0 Then
m_bAreHomogeneous = False
VisibilityButtonFromMachinig(MCH_OY.WATERJETTING)
Else
VisibilityButtonFromMachinig(ItemList(0).Type)
m_bAreHomogeneous = True
End If
' eventualmente stampo messaggio
If Not m_bAreHomogeneous Then
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("Lavorazioni non omogenee")
Else
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
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
CutStartBtn.Visibility = Visibility.Hidden
CutEndBtn.Visibility = Visibility.Hidden
OutCenStartBtn.Visibility = Visibility.Hidden
OutCenEndBtn.Visibility = Visibility.Hidden
InvertBtn.Visibility = Visibility.Hidden
PauseBtn.Visibility = Visibility.Hidden
AllOutStartBtn.Visibility = Visibility.Hidden
AllCenStartBtn.Visibility = Visibility.Hidden
AllOutEndBtn.Visibility = Visibility.Hidden
AllCenEndBtn.Visibility = Visibility.Hidden
AllExtendBtn.Visibility = Visibility.Hidden
AllReduceBtn.Visibility = Visibility.Hidden
Else
CutBtn.Visibility = Visibility.Visible
CutStartBtn.Visibility = Visibility.Visible
CutEndBtn.Visibility = Visibility.Visible
OutCenStartBtn.Visibility = Visibility.Visible
OutCenEndBtn.Visibility = Visibility.Visible
InvertBtn.Visibility = Visibility.Visible
PauseBtn.Visibility = Visibility.Visible
AllOutStartBtn.Visibility = Visibility.Visible
AllCenStartBtn.Visibility = Visibility.Visible
AllOutEndBtn.Visibility = Visibility.Visible
AllCenEndBtn.Visibility = Visibility.Visible
AllExtendBtn.Visibility = Visibility.Visible
AllReduceBtn.Visibility = Visibility.Visible
End If
End Sub End Sub
Private Function ModifyOtherLeadIn(nI As Integer, nLiOthType As Integer) As Boolean Private Function ModifyOtherLeadIn(nI As Integer, nLiOthType As Integer) As Boolean
@@ -1515,7 +1932,10 @@ Public Class SplitPageUC
EgtDisableModified() EgtDisableModified()
' cancello evidenziazione ' cancello evidenziazione
If m_CurrFirstInd >= 0 Then 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) MarkMachining(m_ItemList(Index).Ind, False)
Next Next
m_CurrFirstInd = -1 m_CurrFirstInd = -1
@@ -1572,6 +1992,9 @@ Public Class SplitPageUC
Private m_nInd As Integer Private m_nInd As Integer
Private m_sName As String Private m_sName As String
Private m_bIsActive As Boolean Private m_bIsActive As Boolean
Private m_nType As Integer
Private m_IsSelected As Boolean
Public Property Ind As Integer Public Property Ind As Integer
Get Get
@@ -1606,10 +2029,29 @@ Public Class SplitPageUC
End Set End Set
End Property End Property
Sub New(Name As String, Ind As Integer, bIsActive As Boolean) Public Property Type As Integer
Get
Return m_nType
End Get
Set(value As Integer)
m_nType = value
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_sName = Name
Me.m_nInd = Ind Me.m_nInd = Ind
Me.m_bIsActive = bIsActive Me.m_bIsActive = bIsActive
Me.m_nType = nType
End Sub End Sub
Public Sub NotifyPropertyChanged(propName As String) Public Sub NotifyPropertyChanged(propName As String)
+18 -4
View File
@@ -8,6 +8,8 @@ Module VacuumCups
Private m_nVacId As Integer = GDB_ID.NULL Private m_nVacId As Integer = GDB_ID.NULL
Private m_nRefId As Integer = GDB_ID.NULL Private m_nRefId As Integer = GDB_ID.NULL
Private m_dPreferredRot As Double = 0 Private m_dPreferredRot As Double = 0
Private m_dPrefVertRotXMinus As Double = 0
Private m_dPrefVertRotXPlus As Double = 0
Private m_dDripRefAng As Double = 0 Private m_dDripRefAng As Double = 0
' Nome del gruppo temporaneo per le ventose ' Nome del gruppo temporaneo per le ventose
@@ -74,6 +76,9 @@ Module VacuumCups
If m_nVacId = GDB_ID.NULL Then Return False If m_nVacId = GDB_ID.NULL Then Return False
' Angolo di rotazione preferito ' 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_PREFVROTXPLUS, m_dPrefVertRotXPlus)
' Direzione di riferimento per tagli Drip ' 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 ' Nascondo il gruppo ma rendo visibili le curve di contorno delle ventose
@@ -363,6 +368,9 @@ Module VacuumCups
If b3Vac.IsEmpty() Then Return INFINITO If b3Vac.IsEmpty() Then Return INFINITO
' Se box maggiore di quello del pezzo, scarto soluzione ' Se box maggiore di quello del pezzo, scarto soluzione
If b3Vac.Radius() > b3Raw.Radius() Then Return INFINITO If b3Vac.Radius() > b3Raw.Radius() Then Return INFINITO
' Recupero l'area della tavola
Dim b3Tab As New BBox3d
EgtGetTableArea(1, b3Tab)
' Determino il movimento ' Determino il movimento
vtMove = ptRawCen - b3Vac.Center() vtMove = ptRawCen - b3Vac.Center()
b3Vac.Move(vtMove) b3Vac.Move(vtMove)
@@ -374,11 +382,19 @@ Module VacuumCups
frMinRect.VersX().ToSpherical(dLen, dAngVertDeg, dAngOrizzDeg) frMinRect.VersX().ToSpherical(dLen, dAngVertDeg, dAngOrizzDeg)
dRotAngDeg = dAngOrizzDeg dRotAngDeg = dAngOrizzDeg
If b3Vac.DimY() > b3Vac.DimX() + EPS_SMALL Then dRotAngDeg -= 90 If b3Vac.DimY() > b3Vac.DimX() + EPS_SMALL Then dRotAngDeg -= 90
Dim dPreferredRot As Double = m_dPreferredRot
If Math.Abs( dRotAngDeg - 90) < 45 Or Math.Abs( dRotAngDeg - 270) < 45 Then
If frMinRect.Orig().x < b3Tab.Center().x Then
dPreferredRot = m_dPrefVertRotXMinus
else
dPreferredRot = m_dPrefVertRotXPlus
End If
End If
Dim dAngDelta As Double = If( Math.Abs( b3Vac.DimY() - b3Vac.DimX()) < 10 * EPS_SMALL, 90, 180) Dim dAngDelta As Double = If( Math.Abs( b3Vac.DimY() - b3Vac.DimX()) < 10 * EPS_SMALL, 90, 180)
While dRotAngDeg - m_dPreferredRot >= dAngDelta / 2 While dRotAngDeg - dPreferredRot >= dAngDelta / 2
dRotAngDeg -= dAngDelta dRotAngDeg -= dAngDelta
End While End While
While dRotAngDeg - m_dPreferredRot <= -dAngDelta / 2 While dRotAngDeg - dPreferredRot <= -dAngDelta / 2
dRotAngDeg += dAngDelta dRotAngDeg += dAngDelta
End While End While
Else Else
@@ -431,8 +447,6 @@ Module VacuumCups
ptRef.Move(vtMove) ptRef.Move(vtMove)
ptRef.Rotate(ptRotCen, Vector3d.Z_AX(), dRotAngDeg) ptRef.Rotate(ptRotCen, Vector3d.Z_AX(), dRotAngDeg)
' Ne calcolo la distanza dal centro della tavola ' Ne calcolo la distanza dal centro della tavola
Dim b3Tab As New BBox3d
EgtGetTableArea(1, b3Tab)
Dim dDist As Double = Point3d.DistXY(ptRef, b3Tab.Center()) Dim dDist As Double = Point3d.DistXY(ptRef, b3Tab.Center())
Return dDist Return dDist
End Function End Function
+8
View File
@@ -67,6 +67,8 @@ Module ConstGen
Public Const MACHININGS_DIR As String = "Machinings" Public Const MACHININGS_DIR As String = "Machinings"
' Nome file Dati delle lucidature ' Nome file Dati delle lucidature
Public Const KITS_FILE As String = "Kits.data" Public Const KITS_FILE As String = "Kits.data"
' Nome file Dati per waterJet
Public Const WATERJETDB_FILE As String = "WaterjetDB.data"
' File dei pezzi rovinati ' File dei pezzi rovinati
Public Const CURR_RUINED_EPL As String = "RuinedParts.epl" Public Const CURR_RUINED_EPL As String = "RuinedParts.epl"
@@ -90,6 +92,8 @@ Module ConstGen
Public Const KEY_VACLAY_SEL As String = "Sel" Public Const KEY_VACLAY_SEL As String = "Sel"
' Info in gruppo layout per angolo di rotazione preferito ' Info in gruppo layout per angolo di rotazione preferito
Public Const KEY_VACLAY_PREFROT As String = "PreferredRot" Public Const KEY_VACLAY_PREFROT As String = "PreferredRot"
Public Const KEY_VACLAY_PREFVROTXMINUS As String = "PrefVertRotXMinus"
Public Const KEY_VACLAY_PREFVROTXPLUS As String = "PrefVertRotXPlus"
' Info in gruppo layout per direzione di riferimento ventose per tagli da sotto ' Info in gruppo layout per direzione di riferimento ventose per tagli da sotto
Public Const KEY_VACLAY_DRIPREFDIR As String = "DripRefDir" Public Const KEY_VACLAY_DRIPREFDIR As String = "DripRefDir"
' Info in asse rotante ventosa per step discreti ' Info in asse rotante ventosa per step discreti
@@ -143,6 +147,9 @@ Module ConstGen
Public Const INFO_RAW_BLOCK = "Block" Public Const INFO_RAW_BLOCK = "Block"
' Info per numero lastra nel blocco ' Info per numero lastra nel blocco
Public Const INFO_RAW_SLABNBR = "SlabNbr" Public Const INFO_RAW_SLABNBR = "SlabNbr"
' Info per identificazione gruppo pezzi
Public Const INFO_REFGROUP As String = "RefGroup"
Public Const INFO_COUNTERLY As String = "CounterPz"
' Contrassegno di progetto OmagCut ' Contrassegno di progetto OmagCut
Public Const NAME_PROJMARK As String = "OmagCut" Public Const NAME_PROJMARK As String = "OmagCut"
@@ -203,6 +210,7 @@ Module ConstGen
Public Const INFO_DEPTH As String = "Depth" Public Const INFO_DEPTH As String = "Depth"
Public Const INFO_WIDTH As String = "Width" Public Const INFO_WIDTH As String = "Width"
Public Const INFO_DEPTH2 As String = "Depth2" Public Const INFO_DEPTH2 As String = "Depth2"
Public CONST INFO_AGG2 As String = "Agg2"
' Info in entità da tagliare per taglio ristretto ' Info in entità da tagliare per taglio ristretto
Public Const INFO_STRICT As String = "Strict" Public Const INFO_STRICT As String = "Strict"
' Info in entità da tagliare per angolo di lato e tallone ' Info in entità da tagliare per angolo di lato e tallone
+5
View File
@@ -46,6 +46,10 @@ Module ConstIni
Public Const K_THEME As String = "Theme" Public Const K_THEME As String = "Theme"
Public Const K_MANUAL_CUT As String = "ManualCut" Public Const K_MANUAL_CUT As String = "ManualCut"
Public Const K_TEST As String = "Test" 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 S_LANGUAGES As String = "Languages"
Public Const K_LANGUAGE As String = "Language" Public Const K_LANGUAGE As String = "Language"
@@ -148,6 +152,7 @@ Module ConstIni
Public Const K_TEXTCOLOR As String = "TextColor" Public Const K_TEXTCOLOR As String = "TextColor"
Public Const K_AUTOMATICOPTIMIZE As String = "AutomaticOptimize" Public Const K_AUTOMATICOPTIMIZE As String = "AutomaticOptimize"
Public Const K_AUTOMATICMAXTIME As String = "AutomaticMaxTime" Public Const K_AUTOMATICMAXTIME As String = "AutomaticMaxTime"
Public Const K_DRAG_RETTANGLE As String = "DragRectangle"
Public Const S_SPLIT As String = "Split" Public Const S_SPLIT As String = "Split"
Public Const K_MOVE_LEV As String = "MoveLevel" Public Const K_MOVE_LEV As String = "MoveLevel"
+9
View File
@@ -11,9 +11,18 @@
Public Const K_ZIGZAGX As String = "ZigZagX" Public Const K_ZIGZAGX As String = "ZigZagX"
Public Const K_OFFZIGZAGX As String = "OffZigZagX" Public Const K_OFFZIGZAGX As String = "OffZigZagX"
Public Const K_STEPX As String = "StepX" Public Const K_STEPX As String = "StepX"
Public Const K_RADIUSX As String = "RadiusX"
Public Const K_DISTANCEX As String = "DistanceX"
Public Const K_ZIGZAGY As String = "ZigZagY" Public Const K_ZIGZAGY As String = "ZigZagY"
Public Const K_OFFZIGZAGY As String = "OffZigZagY" Public Const K_OFFZIGZAGY As String = "OffZigZagY"
Public Const K_STEPY As String = "StepY" Public Const K_STEPY As String = "StepY"
Public Const K_RADIUSY As String = "RadiusY"
Public Const K_DISTANCEY As String = "DistanceY"
Public Const K_SPIRAL As String = "Spiral"
Public Const K_OFFSPIRAL As String = "OffSpiral"
Public Const K_STEPSPIRAL As String = "StepSpiral"
Public Const K_RADIUSSPIRAL As String = "RadiusSpiral"
Public Const K_DISTANCESPIRAL As String = "DistanceSpiral"
Public Const K_LILEN As String = "LiLen" Public Const K_LILEN As String = "LiLen"
Public Const K_LIHEIGHT As String = "LiHeight" Public Const K_LIHEIGHT As String = "LiHeight"
Public Const K_LILOAD As String = "LiLoad" Public Const K_LILOAD As String = "LiLoad"
+10
View File
@@ -44,6 +44,7 @@
Public Const S_NCNUM As String = "NcNUM" Public Const S_NCNUM As String = "NcNUM"
Public Const K_RESETSENDDELAY As String = "ResetSendDelay" Public Const K_RESETSENDDELAY As String = "ResetSendDelay"
Public Const K_THREADSLEEP As String = "ThreadSleep" Public Const K_THREADSLEEP As String = "ThreadSleep"
Public Const K_PHOTODELEY As String = "PhotoDeley"
Public Const S_NCDATA As String = "NcData" Public Const S_NCDATA As String = "NcData"
Public Const K_NEWVARIABLE As String = "NewVariable" Public Const K_NEWVARIABLE As String = "NewVariable"
@@ -76,6 +77,9 @@
Public Const K_DOORCLOSED As String = "DoorClosed" Public Const K_DOORCLOSED As String = "DoorClosed"
Public Const K_LIMITZ As String = "LimitZ" Public Const K_LIMITZ As String = "LimitZ"
Public Const K_POWEROVR As String = "PowerOvr" Public Const K_POWEROVR As String = "PowerOvr"
Public Const K_PARKING As String = "Parking"
Public Const K_ENABLEZONE As String = "EnableZone"
Public Const K_ENABLEPC As String = "EnablePC"
Public Const K_HSM As String = "Hsm" Public Const K_HSM As String = "Hsm"
Public Const K_VACUUMUP As String = "VacuumUp" Public Const K_VACUUMUP As String = "VacuumUp"
Public Const K_VACUUMDOWN As String = "VacuumDown" Public Const K_VACUUMDOWN As String = "VacuumDown"
@@ -103,6 +107,8 @@
Public Const K_VACUUMOFF As String = "VacuumOff" Public Const K_VACUUMOFF As String = "VacuumOff"
Public Const K_BYPASSTATE As String = "BypassState" Public Const K_BYPASSTATE As String = "BypassState"
Public Const K_FEEDHOLD As String = "FeedHold" Public Const K_FEEDHOLD As String = "FeedHold"
Public Const K_SPOTLIGHT1 As String = "SpotLight1"
Public Const K_SPOTLIGHT2 As String = "SpotLight2"
' Nuove variabili ' Nuove variabili
Public Const K_SPEEDHOLD As String = "SpeedHold" Public Const K_SPEEDHOLD As String = "SpeedHold"
Public Const K_XYJOG As String = "XYJog" Public Const K_XYJOG As String = "XYJog"
@@ -209,6 +215,7 @@
Public Const K_MACH_CUTFSEVENABLE As String = "CutFsevEnable" Public Const K_MACH_CUTFSEVENABLE As String = "CutFsevEnable"
Public Const K_MACH_CUTFSEVLEN As String = "CutFsevLen" Public Const K_MACH_CUTFSEVLEN As String = "CutFsevLen"
Public Const K_MACH_CUTFSEVPERC As String = "CutFsevPerc" Public Const K_MACH_CUTFSEVPERC As String = "CutFsevPerc"
Public Const K_USELASERORIGIN As String = "UseLaserOrigin"
' DrillMillC90 ' DrillMillC90
' CutLongDxSx ' CutLongDxSx
' AngRotMultiCut ' AngRotMultiCut
@@ -244,6 +251,7 @@
Public Const S_MACH_INPROGRESS As String = "InProgress" Public Const S_MACH_INPROGRESS As String = "InProgress"
Public Const K_PHASEVAR As String = "PhaseVar" Public Const K_PHASEVAR As String = "PhaseVar"
Public Const K_WP_STEPTIME As String = "WPStepTime"
Public Const S_MACH_PROBING As String = "Probing" Public Const S_MACH_PROBING As String = "Probing"
Public Const K_PROBINGSTATEVAR As String = "ProbingStateVar" Public Const K_PROBINGSTATEVAR As String = "ProbingStateVar"
@@ -276,9 +284,11 @@
Public Const K_CURRDRIPSAWING As String = "CurrDripSawing" Public Const K_CURRDRIPSAWING As String = "CurrDripSawing"
Public Const K_CURRDRIPDRILLING As String = "CurrDripDrilling" Public Const K_CURRDRIPDRILLING As String = "CurrDripDrilling"
Public Const K_CURRWATERJETTING As String = "CurrWaterJetting" Public Const K_CURRWATERJETTING As String = "CurrWaterJetting"
Public Const K_CURRWATERJETTINGQUALITY As String = "CurrWaterJettingQualilty"
Public Const S_MATERIALS As String = "Materials" Public Const S_MATERIALS As String = "Materials"
Public Const K_CURRMATERIAL As String = "CurrMaterial" Public Const K_CURRMATERIAL As String = "CurrMaterial"
Public Const K_MATERIAL As String = "Material" Public Const K_MATERIAL As String = "Material"
Public Const K_FROMDBWATERJET As String = "FromDBWaterJet"
End Module End Module
@@ -330,6 +330,49 @@ Public Class ControlsMachineButtonUC
End If End If
End Sub End Sub
Friend Sub ParkingStateChanged(ParkingState As Boolean)
Dim ParkingButton As TwoStateButton = Nothing
For Each MachineButton As MachineButton In m_ButtonList
If MachineButton.StateFlag = K_PARKING Then
ParkingButton = MachineButton
End If
Next
If Not IsNothing(ParkingButton) Then
ParkingButton.SetIsChecked(ParkingState)
End If
End Sub
Friend Sub ZoneStateChanged(ZoneState As Integer)
'Dim sFlag As String = String.Empty
'If ZoneState = 1 Then
' sFlag = BTN_ENABLE_ZONE_1
'ElseIf ZoneState = 2 Then
' sFlag = BTN_ENABLE_ZONE_2
'End If
'Dim EnableZoneButton As TwoStateButton = Nothing
'For Each MachineButton As MachineButton In m_ButtonList
' If MachineButton.StateFlag = K_ENABLEZONE Then
' EnableZoneButton = MachineButton
' End If
'Next
'If Not IsNothing(EnableZoneButton) Then
' EnableZoneButton.SetIsChecked(EnableZone)
'End If
End Sub
Friend Sub PcStateChanged(EnablePC As Boolean)
'Dim EnablePCButton As TwoStateButton = Nothing
'For Each MachineButton As MachineButton In m_ButtonList
' If MachineButton.StateFlag = K_ENABLEPC Then
' EnablePCButton = MachineButton
' End If
'Next
'If Not IsNothing(EnablePCButton) Then
' EnablePCButton.SetIsChecked(EnablePC)
'End If
End Sub
Public Function GetPrivateProfileMachineButtons( Public Function GetPrivateProfileMachineButtons(
ByVal lpAppName As String, ByVal lpAppName As String,
ByVal lpKeyName As String, ByVal lpKeyName As String,
@@ -402,6 +445,8 @@ Public MustInherit Class MachineButton
Friend Const BTN_STATE_THREEAXIS As String = "ThreeAxis" Friend Const BTN_STATE_THREEAXIS As String = "ThreeAxis"
Friend Const BTN_STATE_FIVEAXIS As String = "FiveAxis" Friend Const BTN_STATE_FIVEAXIS As String = "FiveAxis"
Friend Const BTN_STATE_NOTHING As String = "Nothing" Friend Const BTN_STATE_NOTHING As String = "Nothing"
Friend Const BTN_ENABLE_ZONE_1 As String = "EnableZone1"
Friend Const BTN_ENABLE_ZONE_2 As String = "EnableZone2"
' Dichiarazione delle Page UserControl ' Dichiarazione delle Page UserControl
Friend Shared m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) Friend Shared m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
@@ -647,6 +692,7 @@ Public Class TwoStateButton
Return m_IsChecked Return m_IsChecked
End Get End Get
Set(value As Boolean) Set(value As Boolean)
' accendo il comando, anche se dovrei aspettare di leggere lo stato da PLC
m_IsChecked = value m_IsChecked = value
If value Then If value Then
ExecuteMDICommand(TLuaScriptName) ExecuteMDICommand(TLuaScriptName)
+7 -5
View File
@@ -201,8 +201,8 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="4*"/> <ColumnDefinition Width="5*"/>
<ColumnDefinition Width="1*"/> <!--<ColumnDefinition Width="1*"/>-->
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
@@ -239,9 +239,11 @@
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"> Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}">
<!--<Image Source="{DynamicResource VacuumImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>--> <!--<Image Source="{DynamicResource VacuumImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>-->
</ToggleButton> </ToggleButton>
<Button Name="ManualModeBtn" Grid.Column="8"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}"> <!--Comando Manula/MDI-->
<Image Source="{DynamicResource ManualImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/> <Button Name="ManualModeBtn" Grid.Column="7"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource ManualImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>
</Button> </Button>
</Grid> </Grid>
+26 -23
View File
@@ -133,25 +133,6 @@ Public Class DirectCutPageUC
' leggo il numero di assi attivi nella macchina ' leggo il numero di assi attivi nella macchina
Dim AxesNumber = GetPrivateProfileInt(S_AXES, K_AXESNUM, 5, m_MainWindow.GetMachIniFile()) Dim AxesNumber = GetPrivateProfileInt(S_AXES, K_AXESNUM, 5, m_MainWindow.GetMachIniFile())
'' leggo se è stata configurata la nuova conole
'If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 And Not bCollapsedNewBottonsConsole Then
' XYBtn.Content = "X - Y"
' XYBtn.Foreground = Brushes.White
' ZCBtn.Content = "Z - C"
' ZCBtn.Foreground = Brushes.White
' If AxesNumber < 5 Then
' ZBBtn.Visibility = Windows.Visibility.Collapsed
' End If
' ZBBtn.Content = "Z - B"
' ZBBtn.Foreground = Brushes.White
' RemoteBtn.Content = "Remote"
' RemoteBtn.Foreground = Brushes.White
'Else
' XYBtn.Visibility = Windows.Visibility.Collapsed
' ZCBtn.Visibility = Windows.Visibility.Collapsed
' ZBBtn.Visibility = Windows.Visibility.Collapsed
'End If
End Sub End Sub
Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
@@ -228,8 +209,12 @@ Public Class DirectCutPageUC
' Se macchina fotografica abilitata ' Se macchina fotografica abilitata
PhotoBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO) PhotoBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO)
' Attivo le lavorazioni solo se esiste il grezzo ' Attivo le lavorazioni solo se esiste il grezzo e se presente testa H1
Dim bRawOk As Boolean = (GetRawHeight() > EPS_SMALL) Dim bRawOk As Boolean = (GetRawHeight() > EPS_SMALL)
Dim bH1Exists As Boolean = (EgtGetHeadId("H1") <> GDB_ID.NULL)
ManualBtn.IsEnabled = bH1Exists
' sviluppo rimasto in sospeso
If m_bManulaCut Then If m_bManulaCut Then
' anche se non è presente un grezzo mantengo abilitato il bottone ' anche se non è presente un grezzo mantengo abilitato il bottone
SingleCutBtn.IsEnabled = True SingleCutBtn.IsEnabled = True
@@ -238,10 +223,14 @@ Public Class DirectCutPageUC
End If End If
MultipleCutBtn.IsEnabled = bRawOk MultipleCutBtn.IsEnabled = bRawOk
GridCutBtn.IsEnabled = bRawOk GridCutBtn.IsEnabled = bRawOk
SingleDrillBtn.IsEnabled = bRawOk SingleDrillBtn.IsEnabled = (bRawOk And bH1Exists)
FlatteningCutBtn.IsEnabled = bRawOk FlatteningCutBtn.IsEnabled = (bRawOk And bH1Exists)
PolishingBtn.IsEnabled = (bRawOk And m_MainWindow.m_CurrentMachine.bPolishing) PolishingBtn.IsEnabled = (bRawOk And m_MainWindow.m_CurrentMachine.bPolishing)
SawTestBtn.IsEnabled = bRawOk SawTestBtn.IsEnabled = (bRawOk And bH1Exists)
CopyTemplateBtn.IsEnabled = bH1Exists
' aggiorno la visualizzazione dei parametri
ReloadParam()
' Nascondo i pezzi in parcheggio ' Nascondo i pezzi in parcheggio
HideParkedParts() HideParkedParts()
@@ -249,6 +238,20 @@ Public Class DirectCutPageUC
End Sub End Sub
Public Sub ReloadParam()
Dim sCurrSawing As String = m_MainWindow.m_CurrentMachine.sCurrSawing
Dim sCurrSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
Dim bSaw As Boolean = False
' se esiste una lavorazione di lama corrente vuol dire che deve essere preferita
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
End If
m_SingleCut.SetEnableParam(bSaw)
m_MultipleCut.SetEnableParam(bSaw)
m_GridCut.SetEnableParam(bSaw)
End Sub
Private Sub SetVisibilityJogButtuns() Private Sub SetVisibilityJogButtuns()
XYBtn.Visibility = Visibility.Collapsed XYBtn.Visibility = Visibility.Collapsed
ZCBtn.Visibility = Visibility.Collapsed ZCBtn.Visibility = Visibility.Collapsed
+27 -11
View File
@@ -444,8 +444,8 @@ Public Class FlatteningCut
StringToLen(WidthTxBx.Text, dWidth) StringToLen(WidthTxBx.Text, dWidth)
' Recupero lo spessore della lama corrente ' Recupero lo spessore della lama corrente
EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw) EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw)
Dim dThick As Double = 0 Dim dThick As Double = GetFootPrintTool()
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick) 'EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
' La larghezza della spianatura nono può essere inferiore allo spessore della lama ' La larghezza della spianatura nono può essere inferiore allo spessore della lama
m_dWid = Math.Max(dWidth, dThick) m_dWid = Math.Max(dWidth, dThick)
WidthTxBx.Text = LenToString(m_dWid, 2) WidthTxBx.Text = LenToString(m_dWid, 2)
@@ -472,8 +472,8 @@ Public Class FlatteningCut
Private Sub OverlapTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OverlapTxBx.EgtClosed Private Sub OverlapTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OverlapTxBx.EgtClosed
' Recupero spessore della lama correntemente attiva ' Recupero spessore della lama correntemente attiva
Dim dThick As Double = 0 Dim dThick As Double = GetFootPrintTool()
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick) 'EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
' Verifico che la sovrapposizione non sia superiore allo spessore della lama (meno 1mm di offset) ' Verifico che la sovrapposizione non sia superiore allo spessore della lama (meno 1mm di offset)
Dim dOverlap As Double = 0 Dim dOverlap As Double = 0
Const MIN_OFFSET As Double = 1.0 Const MIN_OFFSET As Double = 1.0
@@ -612,6 +612,22 @@ Public Class FlatteningCut
m_MainWindow.m_DirectCutPageUC.LeftButtonGrid.Children.Remove(Me) m_MainWindow.m_DirectCutPageUC.LeftButtonGrid.Children.Remove(Me)
End Sub End Sub
' ricavo l'ingombro di lavorazione in funzione dell'utensile selezionato
Private Function GetFootPrintTool() As Double
Dim dFootPrint As Double = 0
' verifico quale lavorazione è attiva
If Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrSawing) Then
EgtTdbGetCurrToolParam(MCH_TP.THICK, dFootPrint)
ElseIf Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrMilling) Then
Dim sCurrMill = m_MainWindow.m_CurrentMachine.sCurrMill
GetDrillFromDrilling(sCurrMill, m_MainWindow.m_CurrentMachine.sCurrMilling)
' recupero informazioni della fresa in uso
EgtTdbSetCurrTool(sCurrMill)
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dFootPrint)
End If
Return dFootPrint
End Function
Private Function CreateFlatteningCut() As Boolean Private Function CreateFlatteningCut() As Boolean
' Verifico sia definito il punto iniziale e il grezzo ' Verifico sia definito il punto iniziale e il grezzo
If Not m_bPointP1Ok Or Not m_bRawOk Then If Not m_bPointP1Ok Or Not m_bRawOk Then
@@ -628,7 +644,8 @@ Public Class FlatteningCut
Dim nPartId = EgtCreateGroup(GDB_ID.ROOT) Dim nPartId = EgtCreateGroup(GDB_ID.ROOT)
EgtSetName(nPartId, NAME_DIRECTCUT) EgtSetName(nPartId, NAME_DIRECTCUT)
Dim nLayerId = EgtCreateGroup(nPartId) Dim nLayerId = EgtCreateGroup(nPartId)
EgtSetName(nLayerId, NAME_OUTLOOP) ' EgtSetName(nLayerId, NAME_OUTLOOP)
EgtSetName(nLayerId, NAME_ONPATH)
' Creo il taglio ' Creo il taglio
Dim ptStart As Point3d = m_ptTipP1 Dim ptStart As Point3d = m_ptTipP1
ptStart.z = 0 ptStart.z = 0
@@ -670,22 +687,21 @@ Public Class FlatteningCut
RemoveFinalHome() RemoveFinalHome()
End If End If
UpdateSimulOkBtn() UpdateSimulOkBtn()
Return m_bCutOk Return m_bCutOk
End Function End Function
Private Function MultiplyCut(nLayerId As Integer, nCutId As Integer) As Boolean Private Function MultiplyCut(nLayerId As Integer, nCutId As Integer) As Boolean
' Recupero spessore della lama correntemente attiva ' Recupero spessore della lama (utensile) correntemente attiva
Dim dThick As Double = 0 Dim dThick As Double = GetFootPrintTool()
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick) If dThick = 0 Then Return False
' Imposto angolo di rotazione a seconda del lato dei tagli ' Imposto angolo di rotazione a seconda del lato dei tagli
Dim dRotAngO As Double = If(SideChBx.IsChecked(), -90, 90) Dim dRotAngO As Double = If(SideChBx.IsChecked(), -90, 90)
' Definisco vettore di spostamento ' Definisco vettore di spostamento
Dim vtDelta As Vector3d Dim vtDelta As Vector3d
vtDelta = Vector3d.FromPolar(1, m_dAngO) vtDelta = Vector3d.FromPolar(1, m_dAngO)
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO) vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
' Calcolo numero di iterazioni necessarie a coprire l'area impostata e lunghezza vettore delta ' Calcolo numero di iterazioni necessarie a coprire l'area impostata e lunghezza vettore delta
Dim nStepNum As Integer Dim nStepNum As Integer
Dim dDelta As Double Dim dDelta As Double
+30 -16
View File
@@ -152,6 +152,7 @@ Public Class GridCut
EgtDraw() EgtDraw()
End Sub End Sub
Friend Sub GridCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded Friend Sub GridCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
' Salvo i dati correnti ' Salvo i dati correnti
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile()) WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile())
@@ -185,6 +186,11 @@ Public Class GridCut
m_bActive = False m_bActive = False
End Sub End Sub
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
' se macchina solo WaterJet Disabilito/Nascondo parametri della lama
DepthTxBx.IsEnabled = bIsSaw
End Sub
Private Sub UpdateSimulOkBtn() Private Sub UpdateSimulOkBtn()
If m_bCutOk Then If m_bCutOk Then
SimulBtn.IsEnabled = True SimulBtn.IsEnabled = True
@@ -242,6 +248,12 @@ Public Class GridCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -256,12 +268,12 @@ Public Class GridCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
End If End If
@@ -285,10 +297,8 @@ Public Class GridCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP1Ok = True m_bPointP1Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Disegno il taglio ' Disegno il taglio
@@ -317,6 +327,12 @@ Public Class GridCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -331,12 +347,12 @@ Public Class GridCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
End If End If
@@ -358,10 +374,8 @@ Public Class GridCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP2Ok = True m_bPointP2Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Se il secondo punto non coincide con il primo, disegno il taglio ' Se il secondo punto non coincide con il primo, disegno il taglio
+7 -2
View File
@@ -19,7 +19,8 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<ToggleButton Name="MachineButton1" Grid.Column="0" Style="{DynamicResource OmagCut_ModifiedGradientYellowIconToggleButton}"> <ToggleButton Name="MachineButton1" Grid.Column="0" Style="{DynamicResource OmagCut_ModifiedGradientYellowIconToggleButton}">
<Image Name="ImageButton1" Style="{StaticResource OmagCut_ButtonIcon}"/> <Image Name="ImageButton1" Style="{StaticResource OmagCut_ButtonIcon}"/>
@@ -61,6 +62,10 @@
<Image Name="ImageButton10" Style="{StaticResource OmagCut_ButtonIcon}"/> <Image Name="ImageButton10" Style="{StaticResource OmagCut_ButtonIcon}"/>
</ToggleButton> </ToggleButton>
</Grid> <ToggleButton Name="MachineButton11" Grid.Column="10" Style="{DynamicResource OmagCut_ModifiedGradientYellowIconToggleButton}">
<Image Name="ImageButton11" Style="{StaticResource OmagCut_ButtonIcon}"/>
</ToggleButton>
</Grid>
</UserControl> </UserControl>
+290 -63
View File
@@ -10,7 +10,8 @@ Public Class MachineButtonsUC
Private m_bOnlyLaser As Boolean = False Private m_bOnlyLaser As Boolean = False
Private m_bFirst As Boolean = True Private m_bFirst As Boolean = True
Private Const MAX_BUTTONS As Integer = 10 ' 9/2 aggiunto spazio per un nuovo bottone
Private Const MAX_BUTTONS As Integer = 11
Private m_nCount As Integer = 0 Private m_nCount As Integer = 0
Private ImageArrayY(MAX_BUTTONS - 1) As String Private ImageArrayY(MAX_BUTTONS - 1) As String
Private ImageArrayN(MAX_BUTTONS - 1) As String Private ImageArrayN(MAX_BUTTONS - 1) As String
@@ -31,6 +32,10 @@ Public Class MachineButtonsUC
Private Const BTN_STATE_NOTHING As String = "Nothing" Private Const BTN_STATE_NOTHING As String = "Nothing"
Private Const BTN_STATE_DOOR_OPENED As String = "DoorOpened" Private Const BTN_STATE_DOOR_OPENED As String = "DoorOpened"
Private Const BTN_STATE_DOOR_CLOSED As String = "DoorClosed" Private Const BTN_STATE_DOOR_CLOSED As String = "DoorClosed"
Private Const BTN_STATE_PARKING As String = "Parking"
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"
Public Sub New(Optional bOnlyLaser As Boolean = False) Public Sub New(Optional bOnlyLaser As Boolean = False)
' This call is required by the designer. ' This call is required by the designer.
@@ -75,7 +80,10 @@ Public Class MachineButtonsUC
For nIndex As Integer = 0 To m_nCount - 1 For nIndex As Integer = 0 To m_nCount - 1
If StateFlagArray(nIndex) = BTN_STATE_NOTHING OrElse If StateFlagArray(nIndex) = BTN_STATE_NOTHING OrElse
StateFlagArray(nIndex) = BTN_STATE_DOOR_OPENED OrElse StateFlagArray(nIndex) = BTN_STATE_DOOR_OPENED OrElse
StateFlagArray(nIndex) = BTN_STATE_DOOR_CLOSED Then StateFlagArray(nIndex) = BTN_STATE_DOOR_CLOSED OrElse
StateFlagArray(nIndex) = BTN_ENABLE_PC OrElse
StateFlagArray(nIndex) = BTN_ENABLE_ZONE_1 OrElse
StateFlagArray(nIndex) = BTN_ENABLE_ZONE_2 Then
' mostra immagine fissa ' mostra immagine fissa
Try Try
Dim s As String Dim s As String
@@ -134,7 +142,8 @@ Public Class MachineButtonsUC
End Sub End Sub
Private Sub MachineButton_Click(sender As Object, e As RoutedEventArgs) Handles MachineButton1.Click, MachineButton2.Click, MachineButton3.Click, MachineButton4.Click, MachineButton5.Click, Private Sub MachineButton_Click(sender As Object, e As RoutedEventArgs) Handles MachineButton1.Click, MachineButton2.Click, MachineButton3.Click, MachineButton4.Click, MachineButton5.Click,
MachineButton6.Click, MachineButton7.Click, MachineButton8.Click, MachineButton9.Click, MachineButton10.Click MachineButton6.Click, MachineButton7.Click, MachineButton8.Click, MachineButton9.Click, MachineButton10.Click,
MachineButton11.Click
Dim CurrentBtn As Primitives.ToggleButton = e.Source Dim CurrentBtn As Primitives.ToggleButton = e.Source
' recupero l'inidce del bottone selezionato ' recupero l'inidce del bottone selezionato
Dim nIndex As Integer = GetToggleButtonIndex(CurrentBtn) - 1 Dim nIndex As Integer = GetToggleButtonIndex(CurrentBtn) - 1
@@ -153,6 +162,18 @@ Public Class MachineButtonsUC
Return Return
End If End If
' Se il bottone chiamantè quello per la selezione del pannello di controllo
If nIndex = Array.IndexOf(StateFlagArray, BTN_ENABLE_PC) Then
Dim sTLuaFile As String = sBaseDir & CommandArrayY(nIndex)
Dim sFLuaFile As String = sBaseDir & CommandArrayN(nIndex)
If m_CN.nEnablePc = 1 Then
ExecuteMDICommand(CurrentBtn, sTLuaFile)
ElseIf m_CN.nEnablePc = 2 Then
ExecuteMDICommand(CurrentBtn, sFLuaFile)
End If
Return
End If
If CurrentBtn.IsChecked() Then If CurrentBtn.IsChecked() Then
'EgtLuaExecFile(sBaseDir & CommandArrayY(nIndex)) 'EgtLuaExecFile(sBaseDir & CommandArrayY(nIndex))
sLuaFileName = sBaseDir & CommandArrayY(nIndex) sLuaFileName = sBaseDir & CommandArrayY(nIndex)
@@ -344,6 +365,7 @@ Public Class MachineButtonsUC
" EType2=" & If(Not String.IsNullOrEmpty(EType2), CInt(EType2).ToString, "")) " EType2=" & If(Not String.IsNullOrEmpty(EType2), CInt(EType2).ToString, ""))
End Sub End Sub
#Region "STATE CHANGED"
Friend Sub SpindleStateChanged(SpindleState As Boolean) Friend Sub SpindleStateChanged(SpindleState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, BTN_STATE_SPINDLE) Dim nIndex As Integer = Array.IndexOf(StateFlagArray, BTN_STATE_SPINDLE)
@@ -584,6 +606,203 @@ Public Class MachineButtonsUC
End If End If
End Sub End Sub
Friend Sub ParkingStateChanged(ParkingState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, BTN_STATE_PARKING)
If nIndex = -1 Then Return
If ParkingState 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
sFlag = BTN_ENABLE_ZONE_1
ElseIf ZoneState = 2 Then
sFlag = BTN_ENABLE_ZONE_2
End If
' recupero il bottone che deve essere acceso (quindi spengo l'altro)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, sFlag)
' se non trovo nessun riferimento allora spengo entrambi i comandi
If nIndex = -1 Then
nIndex = Array.IndexOf(StateFlagArray, BTN_ENABLE_ZONE_1)
GetToggleButton(nIndex + 1).IsChecked = False
nIndex = Array.IndexOf(StateFlagArray, BTN_ENABLE_ZONE_2)
GetToggleButton(nIndex + 1).IsChecked = False
Return
End If
If ZoneState = 1 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
' spengo l'altro bottone (lo stato dei due bottoni sono gestiti da una sola variabile)
nIndex = Array.IndexOf(StateFlagArray, BTN_ENABLE_ZONE_2)
GetToggleButton(nIndex + 1).IsChecked = False
ElseIf ZoneState = 2 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 " & ImageArrayN(nIndex + 1))
End Try
' spengo l'altro bottone (lo stato dei due bottoni sono gestiti da una sola variabile)
nIndex = Array.IndexOf(StateFlagArray, BTN_ENABLE_ZONE_1)
GetToggleButton(nIndex + 1).IsChecked = False
End If
End Sub
Friend Sub EnablePcStateChanged(PcState As Integer)
' il comando ButtonY accendo il Pannello_1, il comando ButtonN accendo il Pannello_2 (uno è la negazione dell'altro)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, BTN_ENABLE_PC)
If nIndex = -1 Then Return
If PcState = 1 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
ElseIf PcState = 2 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\" & ImageArrayN(nIndex)
Else
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\" & ImageArrayN(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
Else
' nessuno dei due pannelli attivo
GetToggleButton(nIndex + 1).IsChecked = False
End If
End Sub
Friend Sub TableUpChanged(TableUpState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, K_TABLEUP)
If nIndex = -1 Then Return
If TableUpState 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\" & ImageArrayN(nIndex)
Else
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\" & ImageArrayN(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 TableDownChanged(TableDownState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, K_TABLEDOWN)
If nIndex = -1 Then Return
If TableDownState 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\" & ImageArrayN(nIndex)
Else
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\" & ImageArrayN(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
'----------------- Queste funzioni determina lo stato del bottone direttamente dalla lettura delle variabili CN '----------------- Queste funzioni determina lo stato del bottone direttamente dalla lettura delle variabili CN
Friend Sub XYJogChanged(ByVal bXYAxes As Boolean) Friend Sub XYJogChanged(ByVal bXYAxes As Boolean)
' recupero le asscociazioni con i bottoni ' recupero le asscociazioni con i bottoni
@@ -619,78 +838,86 @@ Public Class MachineButtonsUC
'----------------------------------------------------------------------------------------------------------------- '-----------------------------------------------------------------------------------------------------------------
#End Region ' State changed
Private Function GetToggleButton(ByVal nIndex As Integer) As Primitives.ToggleButton Private Function GetToggleButton(ByVal nIndex As Integer) As Primitives.ToggleButton
Select Case nIndex Select Case nIndex
Case 1 Case 1
Return MachineButton1 Return MachineButton1
Case 2 Case 2
Return MachineButton2 Return MachineButton2
Case 3 Case 3
Return MachineButton3 Return MachineButton3
Case 4 Case 4
Return MachineButton4 Return MachineButton4
Case 5 Case 5
Return MachineButton5 Return MachineButton5
Case 6 Case 6
Return MachineButton6 Return MachineButton6
Case 7 Case 7
Return MachineButton7 Return MachineButton7
Case 8 Case 8
Return MachineButton8 Return MachineButton8
Case 9 Case 9
Return MachineButton9 Return MachineButton9
Case Else Case 10
Return MachineButton10 Return MachineButton10
Case Else
Return MachineButton11
End Select End Select
End Function End Function
Private Function GetToggleButtonIndex(ByVal nBtnName As Primitives.ToggleButton) As Integer Private Function GetToggleButtonIndex(ByVal nBtnName As Primitives.ToggleButton) As Integer
Select Case nBtnName.Name Select Case nBtnName.Name
Case MachineButton1.Name Case MachineButton1.Name
Return 1 Return 1
Case MachineButton2.Name Case MachineButton2.Name
Return 2 Return 2
Case MachineButton3.Name Case MachineButton3.Name
Return 3 Return 3
Case MachineButton4.Name Case MachineButton4.Name
Return 4 Return 4
Case MachineButton5.Name Case MachineButton5.Name
Return 5 Return 5
Case MachineButton6.Name Case MachineButton6.Name
Return 6 Return 6
Case MachineButton7.Name Case MachineButton7.Name
Return 7 Return 7
Case MachineButton8.Name Case MachineButton8.Name
Return 8 Return 8
Case MachineButton9.Name Case MachineButton9.Name
Return 9 Return 9
Case Else Case MachineButton10.Name
Return 10 Return 10
Case Else
Return 11
End Select End Select
End Function End Function
Private Function GetImage(ByVal nInd As Integer) As Image Private Function GetImage(ByVal nInd As Integer) As Image
Select Case nInd Select Case nInd
Case 1 Case 1
Return ImageButton1 Return ImageButton1
Case 2 Case 2
Return ImageButton2 Return ImageButton2
Case 3 Case 3
Return ImageButton3 Return ImageButton3
Case 4 Case 4
Return ImageButton4 Return ImageButton4
Case 5 Case 5
Return ImageButton5 Return ImageButton5
Case 6 Case 6
Return ImageButton6 Return ImageButton6
Case 7 Case 7
Return ImageButton7 Return ImageButton7
Case 8 Case 8
Return ImageButton8 Return ImageButton8
Case 9 Case 9
Return ImageButton9 Return ImageButton9
Case Else Case 10
Return ImageButton10 Return ImageButton10
Case Else
Return ImageButton11
End Select End Select
End Function End Function
+34 -18
View File
@@ -213,6 +213,10 @@ Public Class MultipleCut
m_bActive = False m_bActive = False
End Sub End Sub
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
DepthTxBx.IsEnabled = bIsSaw
End Sub
Private Sub UpdateSimulOkBtn() Private Sub UpdateSimulOkBtn()
If m_bCutOk Then If m_bCutOk Then
SimulBtn.IsEnabled = True SimulBtn.IsEnabled = True
@@ -270,6 +274,12 @@ Public Class MultipleCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -284,12 +294,14 @@ Public Class MultipleCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama
' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
End If End If
@@ -312,10 +324,9 @@ Public Class MultipleCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP1Ok = True m_bPointP1Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Disegno il taglio ' Disegno il taglio
CreateMultipleCut() CreateMultipleCut()
@@ -343,6 +354,12 @@ Public Class MultipleCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -357,12 +374,12 @@ Public Class MultipleCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
End If End If
@@ -383,10 +400,9 @@ Public Class MultipleCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP2Ok = True m_bPointP2Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Se il secondo punto non coincide con il primo, disegno il taglio ' Se il secondo punto non coincide con il primo, disegno il taglio
+43 -19
View File
@@ -137,6 +137,9 @@ Public Class SingleCutUC
Point2Btn.IsEnabled = False Point2Btn.IsEnabled = False
' Deseleziono bottone primo punto ' Deseleziono bottone primo punto
Point1Btn.IsChecked = False Point1Btn.IsChecked = False
' la visualizzazione dei comandi è gestira dalla DirectCutPageUC richiamando la funzione ReloadParam
' Aggiorno visualizzazione ' Aggiorno visualizzazione
EgtDraw() EgtDraw()
End Sub End Sub
@@ -172,6 +175,12 @@ Public Class SingleCutUC
m_bActive = False m_bActive = False
End Sub End Sub
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
' se macchina solo WaterJet Disabilito/Nascondo parametri della lama
DepthTxBx.IsEnabled = bIsSaw
SawThChBx.IsEnabled = bIsSaw
End Sub
Private Sub UpdateSimulOkBtn() Private Sub UpdateSimulOkBtn()
If m_bCutOk Then If m_bCutOk Then
SimulBtn.IsEnabled = True SimulBtn.IsEnabled = True
@@ -229,6 +238,12 @@ Public Class SingleCutUC
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizione lama o laser ' Se acquisizione lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
' Recupero la posizione macchina ' Recupero la posizione macchina
@@ -242,12 +257,12 @@ Public Class SingleCutUC
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
End If End If
@@ -271,10 +286,9 @@ Public Class SingleCutUC
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP1Ok = True m_bPointP1Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Disegno il taglio ' Disegno il taglio
@@ -303,6 +317,12 @@ Public Class SingleCutUC
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
' Recupero la posizione macchina ' Recupero la posizione macchina
@@ -316,12 +336,14 @@ Public Class SingleCutUC
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama
' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
End If End If
@@ -343,10 +365,8 @@ Public Class SingleCutUC
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP2Ok = True m_bPointP2Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Se il secondo punto non coincide con il primo, disegno il taglio ' Se il secondo punto non coincide con il primo, disegno il taglio
@@ -559,9 +579,13 @@ Public Class SingleCutUC
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
' Recupero spessore lama corrente ' Recupero spessore lama corrente
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
Dim sSawing As String = m_MainWindow.m_CurrentMachine.sCurrSawing
EgtTdbSetCurrTool(sSaw) EgtTdbSetCurrTool(sSaw)
Dim dThick As Double = 0 Dim dThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick) ' se è impostata una lavorazione di lama
If Not String.IsNullOrEmpty(sSawing) Then
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
End If
' Rimuovo eventuale vecchio pezzo per taglio diretto ' Rimuovo eventuale vecchio pezzo per taglio diretto
EraseDirectCutPart() EraseDirectCutPart()
' Disattivo eventuali lavorazioni presenti ' Disattivo eventuali lavorazioni presenti
+37 -37
View File
@@ -71,7 +71,7 @@ Public Class SingleDrillUC
Private Sub SingleDrill_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded Private Sub SingleDrill_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
m_sCurrDrill = m_CurrentMachine.sCurrDrill m_sCurrDrill = m_CurrentMachine.sCurrDrill
GetDrillFromDrilling(m_sCurrDrill) GetDrillFromDrilling(m_sCurrDrill, m_CurrentMachine.sCurrDrilling)
' recupero informazioni del foretto usato ' recupero informazioni del foretto usato
EgtTdbSetCurrTool(m_sCurrDrill) EgtTdbSetCurrTool(m_sCurrDrill)
@@ -267,41 +267,41 @@ Public Class SingleDrillUC
Point1Btn.IsChecked = True Point1Btn.IsChecked = True
End Sub End Sub
Private Sub GetDrillFromDrilling(ByRef sCurrDrill As String) 'Private Sub GetDrillFromDrilling(ByRef sCurrDrill As String)
If String.IsNullOrEmpty(sCurrDrill) Or String.IsNullOrWhiteSpace(sCurrDrill) Then ' If String.IsNullOrEmpty(sCurrDrill) Or String.IsNullOrWhiteSpace(sCurrDrill) Then
' creo l'elenco degli utensili di foratura ' ' creo l'elenco degli utensili di foratura
Dim sToolName As String = String.Empty ' Dim sToolName As String = String.Empty
Dim nType As Integer = MCH_TY.NONE ' Dim nType As Integer = MCH_TY.NONE
Dim DrillToolList As New ObservableCollection(Of String) ' Dim DrillToolList As New ObservableCollection(Of String)
DrillToolList.Clear() ' DrillToolList.Clear()
If EgtTdbGetFirstTool(MCH_TF.DRILLBIT, sToolName, nType) Then ' If EgtTdbGetFirstTool(MCH_TF.DRILLBIT, sToolName, nType) Then
DrillToolList.Add(sToolName) ' DrillToolList.Add(sToolName)
While EgtTdbGetNextTool(MCH_TF.DRILLBIT, sToolName, nType) ' While EgtTdbGetNextTool(MCH_TF.DRILLBIT, sToolName, nType)
DrillToolList.Add(sToolName) ' DrillToolList.Add(sToolName)
End While ' End While
End If ' End If
' recupero l'utensile associato alla lavorazione ' ' recupero l'utensile associato alla lavorazione
Dim sCurrDrilling As String = m_MainWindow.m_CurrentMachine.sCurrDrilling ' Dim sCurrDrilling As String = m_MainWindow.m_CurrentMachine.sCurrDrilling
Dim ToolString As String = String.Empty ' Dim ToolString As String = String.Empty
EgtMdbSetCurrMachining(sCurrDrilling) ' EgtMdbSetCurrMachining(sCurrDrilling)
' Recupero nome utensile tramite TUUID ' ' Recupero nome utensile tramite TUUID
Dim sTuuid As String = String.Empty ' Dim sTuuid As String = String.Empty
EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTuuid) ' EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTuuid)
EgtTdbGetToolFromUUID(sTuuid, ToolString) ' EgtTdbGetToolFromUUID(sTuuid, ToolString)
Dim bToolExist As Boolean = False ' Dim bToolExist As Boolean = False
For Each CurrTool As IEnumerable In DrillToolList ' For Each CurrTool As IEnumerable In DrillToolList
If CurrTool.ToString() = ToolString Then ' If CurrTool.ToString() = ToolString Then
bToolExist = True ' bToolExist = True
Exit For ' Exit For
End If ' End If
Next ' Next
If bToolExist Then ' If bToolExist Then
sCurrDrill = ToolString ' sCurrDrill = ToolString
Else ' Else
sCurrDrill = String.Empty ' sCurrDrill = String.Empty
End If ' End If
End If ' End If
End Sub 'End Sub
Private Sub XcoordTxBx_EgtClosed(sender As Object, e As EventArgs) Handles XcoordTxBx.EgtClosed Private Sub XcoordTxBx_EgtClosed(sender As Object, e As EventArgs) Handles XcoordTxBx.EgtClosed
' Recupero il valore della coordinata (in 0 Tab) ' Recupero il valore della coordinata (in 0 Tab)
@@ -397,7 +397,7 @@ Public Class SingleDrillUC
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
' Recupero spessore lama corrente ' Recupero spessore lama corrente
Dim sDrill As String = m_sCurrDrill Dim sDrill As String = m_sCurrDrill
GetDrillFromDrilling(sDrill) GetDrillFromDrilling(sDrill, m_MainWindow.m_CurrentMachine.sCurrDrilling)
EgtTdbSetCurrTool(sDrill) EgtTdbSetCurrTool(sDrill)
Dim dDiam As Double = 0 Dim dDiam As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dDiam) EgtTdbGetCurrToolParam(MCH_TP.DIAM, dDiam)
+4 -22
View File
@@ -281,32 +281,14 @@ Public Class AlzFrontUC
' restituisce vero se il lato possiede delle info legate al sideangle ' restituisce vero se il lato possiede delle info legate al sideangle
Private Function VerifyIsThereSideAngle(nCurrLine As Integer) As Boolean Private Function VerifyIsThereSideAngle(nCurrLine As Integer) As Boolean
Dim sInfoSideAngle As String = String.Empty Dim dSideAngle As Double
EgtGetInfo(nCurrLine, INFO_SIDE_ANGLE, sInfoSideAngle) return EgtGetInfo(nCurrLine, INFO_SIDE_ANGLE, dSideAngle)
If Not String.IsNullOrWhiteSpace(sInfoSideAngle) Or Not String.IsNullOrEmpty(sInfoSideAngle) Then
' verifico che il dato salvato sia un double
Try
Dim dSideAngle As Double = 0
StringToDouble(sInfoSideAngle, dSideAngle)
If dSideAngle <> 0 Then
Return True
End If
Catch ex As Exception
End Try
End If
Return False
End Function End Function
' restituisce vero se il lato possiede delle info legate alle alette ' restituisce vero se il lato possiede delle info legate alle alette
Private Function VerifyIsThereAlzFront(nCurrLine As Integer) As Boolean Private Function VerifyIsThereAlzFront(nCurrLine As Integer) As Boolean
Dim sInfoAlzFront As String = String.Empty Dim nAlzFront As Integer
EgtGetInfo(nCurrLine, INFO_ALZFRONT, sInfoAlzFront) return EgtGetInfo(nCurrLine, INFO_ALZFRONT, nAlzFront) AndAlso nAlzFront <> 0
If Not String.IsNullOrWhiteSpace(sInfoAlzFront) Or Not String.IsNullOrEmpty(sInfoAlzFront) Then
If sInfoAlzFront.Trim <> "0" Then
Return True
End If
End If
Return False
End Function End Function
' approvo la costruzione dell'aletta sul lato indicato ' approvo la costruzione dell'aletta sul lato indicato
+16 -2
View File
@@ -882,7 +882,7 @@ Public Class DrawPageUC
' permette di inserire più di un part ' permette di inserire più di un part
Private Function MakeMultipleInsert(ByVal nNbr As Integer, sName As String) As Boolean Private Function MakeMultipleInsert(ByVal nNbr As Integer, sName As String) As Boolean
Dim InsertColor As Color3d = CompoColor(m_MainWindow.GetIniFile()) Dim InsertColor As Color3d = CompoColor(m_MainWindow.GetIniFile())
' Imposto il contesto corrente ' Imposto il contesto corrente
@@ -893,6 +893,9 @@ Public Class DrawPageUC
' Cancello layer regioni per selezione buchi ' Cancello layer regioni per selezione buchi
Pz = EgtGetFirstGroupInGroup(GDB_ID.ROOT) Pz = EgtGetFirstGroupInGroup(GDB_ID.ROOT)
' identificativo univoico del gruppo di pezzi, se più di un pezzo
Dim sGUICode As String = String.Empty
While Pz <> -1 While Pz <> -1
' imposto il contesto corrente ' imposto il contesto corrente
EgtSetCurrentContext(DrawScene.GetCtx()) EgtSetCurrentContext(DrawScene.GetCtx())
@@ -1040,6 +1043,11 @@ Public Class DrawPageUC
EgtEraseEmptyParts() EgtEraseEmptyParts()
' Area dei nuovi pezzi ' Area dei nuovi pezzi
Dim dNewArea As Double = 0 Dim dNewArea As Double = 0
If nNbr > 1 Then
sGUICode = System.Guid.NewGuid.ToString
End If
' Se esiste il file del pezzo ' Se esiste il file del pezzo
If My.Computer.FileSystem.FileExists(sTmpFile) Then If My.Computer.FileSystem.FileExists(sTmpFile) Then
' eseguo inserimento ' eseguo inserimento
@@ -1054,7 +1062,13 @@ Public Class DrawPageUC
If m_bTrfData Then EgtSetInfo(nId2, "CsvPart", m_TrfOrderCode & "-" & nId2.ToString()) If m_bTrfData Then EgtSetInfo(nId2, "CsvPart", m_TrfOrderCode & "-" & nId2.ToString())
' Aggiorno l'area dei nuovi pezzi ' Aggiorno l'area dei nuovi pezzi
dNewArea += GeomCalc.GetPartArea(nId2) dNewArea += GeomCalc.GetPartArea(nId2)
' Inserisco in parcheggio
' assegno l'identificatico del pezzo, se esiste
If Not String.IsNullOrEmpty(sGUICode) Then
Dim sPreGuid As String = CreatePreGuidCode(nId2)
EgtSetInfo(nId2, INFO_REFGROUP, sPreGuid & sGUICode)
End If
' muovo il pezzo nella prima posizione di parcheggio libera
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True) m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True)
' ------------------------ AGGIUNGO PEZZO NEL VEINMATCH ---------------------------------- ' ------------------------ AGGIUNGO PEZZO NEL VEINMATCH ----------------------------------
+43 -12
View File
@@ -808,6 +808,10 @@ Public Class ImportPageUC
EgtErase(EgtGetFirstNameInGroup(PartId, SELECT_REGION_LAYER)) EgtErase(EgtGetFirstNameInGroup(PartId, SELECT_REGION_LAYER))
PartId = EgtGetNextPart(PartId) PartId = EgtGetNextPart(PartId)
End While End While
' identificativo univoico del gruppo di pezzi, se più di un pezzo
Dim sGUICode As New List(Of String)
' Scrivo testi per nesting ' Scrivo testi per nesting
SideAngle.WriteSideAngleForNest(ImportScene.GetCtx()) SideAngle.WriteSideAngleForNest(ImportScene.GetCtx())
' Imposto riferimento sul centro geometrico di ogni pezzo ' Imposto riferimento sul centro geometrico di ogni pezzo
@@ -817,26 +821,53 @@ Public Class ImportPageUC
' Salvo tutti i pezzi in un file temporaneo ' Salvo tutti i pezzi in un file temporaneo
Dim sTmpFile As String = m_MainWindow.GetTempDir() & "\FlatPart" & ".Nge" Dim sTmpFile As String = m_MainWindow.GetTempDir() & "\FlatPart" & ".Nge"
If Not EgtSaveFile(sTmpFile, NGE.BIN) Then Return If Not EgtSaveFile(sTmpFile, NGE.BIN) Then Return
' Determino numero ripetizioni
Dim nRepeat = 1
StringToInt(PartNumTxBx.Text, nRepeat)
nRepeat = Math.Min(Math.Max(1, nRepeat), 50)
' creo il riferimento
If nRepeat > 1 Then
' per ogni pezze del file DXF creo un gruppo
Dim nIdTemp As Integer = EgtGetFirstPart()
While nIdTemp <> GDB_ID.NULL
Dim sPreGuid As String = CreatePreGuidCode(nIdTemp)
sGUICode.Add(sPreGuid & System.Guid.NewGuid.ToString)
nIdTemp = EgtGetNextPart(nIdTemp)
End While
End If
' Passo al contesto principale ' Passo al contesto principale
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Recupero flag per inserimento diretto in grezzo (altrimenti in parcheggio) ' Recupero flag per inserimento diretto in grezzo (altrimenti in parcheggio)
Dim bDirect As Boolean = (GetPrivateProfileInt(S_NEST, K_DIRECT, 0, m_MainWindow.GetIniFile()) <> 0) Dim bDirect As Boolean = (GetPrivateProfileInt(S_NEST, K_DIRECT, 0, m_MainWindow.GetIniFile()) <> 0)
' Elimino eventuali precedenti pezzi vuoti ' Elimino eventuali precedenti pezzi vuoti
EgtEraseEmptyParts() EgtEraseEmptyParts()
' Determino numero ripetizioni
Dim nRepeat = 1
StringToInt(PartNumTxBx.Text, nRepeat)
nRepeat = Math.Min(Math.Max(1, nRepeat), 50)
' Inserisco i pezzi nell'ambiente principale e recupero Id primo pezzo inserito ' Inserisco i pezzi nell'ambiente principale e recupero Id primo pezzo inserito
Dim nFirstId As Integer = EgtGetLastPart() Dim nFirstId As Integer = EgtGetLastPart()
For nInd As Integer = 1 To nRepeat For nInd As Integer = 1 To nRepeat
Dim nFirst2Id As Integer = EgtGetLastPart() Dim nFirst2Id As Integer = EgtGetLastPart()
EgtInsertFile(sTmpFile) EgtInsertFile(sTmpFile)
Dim FirstOfImport As Integer = EgtGetNextPart(nFirst2Id)
Dim Index As Integer = 1
While FirstOfImport <> GDB_ID.NULL And Index <= sGUICode.Count
If Not String.IsNullOrEmpty(sGUICode(Index - 1)) Then
EgtSetInfo(FirstOfImport, INFO_REFGROUP, sGUICode(Index - 1))
Index += 1
Else
Exit While
End If
FirstOfImport = EgtGetNextPart(FirstOfImport)
End While
nFirst2Id = If(nFirst2Id <> GDB_ID.NULL, EgtGetNextPart(nFirst2Id), EgtGetFirstPart()) nFirst2Id = If(nFirst2Id <> GDB_ID.NULL, EgtGetNextPart(nFirst2Id), EgtGetFirstPart())
' Eventuale inserimento pezzi in VeinMatching ' Eventuale inserimento pezzi in VeinMatching
VeinMatching.AddParts(sTmpFile, nFirst2Id) VeinMatching.AddParts(sTmpFile, nFirst2Id)
Next Next
nFirstId = If(nFirstId <> GDB_ID.NULL, EgtGetNextPart(nFirstId), EgtGetFirstPart()) nFirstId = If(nFirstId <> GDB_ID.NULL, EgtGetNextPart(nFirstId), EgtGetFirstPart())
' Cancello il file ' Cancello il file
If My.Computer.FileSystem.FileExists(sTmpFile) Then If My.Computer.FileSystem.FileExists(sTmpFile) Then
My.Computer.FileSystem.DeleteFile(sTmpFile) My.Computer.FileSystem.DeleteFile(sTmpFile)
@@ -845,7 +876,7 @@ Public Class ImportPageUC
Dim dNewArea As Double = 0 Dim dNewArea As Double = 0
Dim nId As Integer = nFirstId Dim nId As Integer = nFirstId
While nId <> GDB_ID.NULL While nId <> GDB_ID.NULL
dNewArea += GeomCalc.GetPartArea( nId) dNewArea += GeomCalc.GetPartArea(nId)
' Passo al pezzo successivo ' Passo al pezzo successivo
nId = EgtGetNextPart(nId) nId = EgtGetNextPart(nId)
End While End While
@@ -868,26 +899,26 @@ Public Class ImportPageUC
If m_nFileType = FT.DXF Or m_nFileType = FT.NGE Then If m_nFileType = FT.DXF Or m_nFileType = FT.NGE Then
' Eventuale testo per indicare il sopra ' Eventuale testo per indicare il sopra
If TopBtn.IsChecked() Then If TopBtn.IsChecked() Then
Utility.AddTopToPartRegion( nRegId) Utility.AddTopToPartRegion(nRegId)
End If End If
' Se richiesti, inserisco dati Ordine, Distinta, Nome, Origine ' Se richiesti, inserisco dati Ordine, Distinta, Nome, Origine
If m_bEnableOrderList Then If m_bEnableOrderList Then
' Cerco il nome del pezzo ' Cerco il nome del pezzo
Dim sName As String = "" Dim sName As String = ""
EgtGetName( nId, sName) EgtGetName(nId, sName)
' Recupero il box del pezzo ' Recupero il box del pezzo
Dim b3Reg As New BBox3d : EgtGetBBox( nRegId, GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, b3Reg) Dim b3Reg As New BBox3d : EgtGetBBox(nRegId, GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, b3Reg)
' Aggiungo info equivalenti a CSV ' Aggiungo info equivalenti a CSV
EgtSetInfo(nId, INFO_CSV_PART, sName) EgtSetInfo(nId, INFO_CSV_PART, sName)
EgtSetInfo(nId, INFO_CSV_ORD, m_sOrder) EgtSetInfo(nId, INFO_CSV_ORD, m_sOrder)
EgtSetInfo(nId, INFO_CSV_DIST, m_sList) EgtSetInfo(nId, INFO_CSV_DIST, m_sList)
EgtSetInfo(nId, INFO_CSV_MAT, m_MainWindow.m_CurrentMachine.CurrMat.sName) EgtSetInfo(nId, INFO_CSV_MAT, m_MainWindow.m_CurrentMachine.CurrMat.sName)
EgtSetInfo(nId, INFO_CSV_V1, DoubleToString( b3Reg.DimX(), 1)) EgtSetInfo(nId, INFO_CSV_V1, DoubleToString(b3Reg.DimX(), 1))
EgtSetInfo(nId, INFO_CSV_V2, DoubleToString( b3Reg.DimY(), 1)) EgtSetInfo(nId, INFO_CSV_V2, DoubleToString(b3Reg.DimY(), 1))
End If End If
End If End If
' Imposto colore testi ' Imposto colore testi
Utility.SetTextColor( nRegId) Utility.SetTextColor(nRegId)
' Imposto path di provenienza ' Imposto path di provenienza
EgtSetInfo(nId, INFO_SOU_PATH, IO.Path.Combine(m_sCurrDir, m_sCurrFile)) EgtSetInfo(nId, INFO_SOU_PATH, IO.Path.Combine(m_sCurrDir, m_sCurrFile))
' Inserisco in parcheggio ' Inserisco in parcheggio
@@ -907,7 +938,7 @@ Public Class ImportPageUC
' Eventuale aggiornamento VeinMatching ' Eventuale aggiornamento VeinMatching
VeinMatching.ZoomAll() VeinMatching.ZoomAll()
' Aggiorno Aree totale e da lavorare dei pezzi ' Aggiorno Aree totale e da lavorare dei pezzi
m_MainWindow.m_CurrentProjectPageUC.UpdateTotalArea( dNewArea) m_MainWindow.m_CurrentProjectPageUC.UpdateTotalArea(dNewArea)
m_MainWindow.m_CurrentProjectPageUC.UpdateToProduceArea() m_MainWindow.m_CurrentProjectPageUC.UpdateToProduceArea()
m_MainWindow.m_CurrentProjectPageUC.ShowAreas() m_MainWindow.m_CurrentProjectPageUC.ShowAreas()
' Aggiorno ambiente principale ' Aggiorno ambiente principale
+1 -1
View File
@@ -159,7 +159,7 @@ Module SideAngle
Return True Return True
End Function End Function
Private Function WriteSideAngleOnLoop(LoopId As Integer, TextLayId As Integer) As Boolean Friend Function WriteSideAngleOnLoop(LoopId As Integer, TextLayId As Integer) As Boolean
' Verifiche ' Verifiche
If LoopId = GDB_ID.NULL Or TextLayId = GDB_ID.NULL Then Return False If LoopId = GDB_ID.NULL Or TextLayId = GDB_ID.NULL Then Return False
' Calcolo dimensione ingombro Loop ' Calcolo dimensione ingombro Loop
+4
View File
@@ -755,6 +755,10 @@ Public Class SideAngleUC
vJoint.Add(False) vJoint.Add(False)
End If End If
Next Next
' se non riesco a generare un elenco allora esco
If vJoint.Count < 1 Then Return
If vJoint(0) And vJoint(vJoint.Count - 1) Then If vJoint(0) And vJoint(vJoint.Count - 1) Then
bJointStart = True bJointStart = True
End If End If
+342 -323
View File
@@ -10,27 +10,27 @@
<!-- Definizione della AlarmsPage --> <!-- Definizione della AlarmsPage -->
<Border Style="{DynamicResource OmagCut_PageBorder}" > <Border Style="{DynamicResource OmagCut_PageBorder}" >
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/> <ColumnDefinition Width="4*"/>
<ColumnDefinition Width="4*"/> <ColumnDefinition Width="4*"/>
<ColumnDefinition Width="4*"/> <ColumnDefinition Width="4*"/>
<ColumnDefinition Width="3*"/> <ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Costruisco le riche per la colonna 3--> <RowDefinition Height="1.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Costruisco le riche per la colonna 3-->
<Grid Grid.Column="2" Grid.RowSpan="9"> <Grid Grid.Column="2" Grid.RowSpan="9">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<!--GruopBox: taglio lama--> <!--GruopBox: taglio lama-->
@@ -51,7 +51,7 @@
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="0.375*"/> <RowDefinition Height="0.375*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!--Parametri Taglio Lama: 5 Parametri--> <!--Parametri Taglio Lama: 5 Parametri-->
<GroupBox Name="SawGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.RowSpan="4"> <GroupBox Name="SawGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.RowSpan="4">
<!--definizione della grigli ainterna--> <!--definizione della grigli ainterna-->
@@ -92,8 +92,8 @@
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<CheckBox Name="PreCutExitChBx" Grid.Column="1" Grid.Row="4" Margin="10,0,10,0" <CheckBox Name="PreCutExitChBx" Grid.Column="1" Grid.Row="4" Margin="10,0,10,0"
Style="{StaticResource OmagCut_CheckBox_Single}" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right"/> HorizontalAlignment="Right"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
@@ -200,7 +200,7 @@
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,0,10" VerticalAlignment="Bottom" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,0,10" VerticalAlignment="Bottom" />
<CheckBox Name="WjIntCutsChBx" Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}" <CheckBox Name="WjIntCutsChBx" Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/> HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
@@ -218,78 +218,78 @@
</GroupBox> </GroupBox>
</Grid> </Grid>
<Grid Grid.RowSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="1.75*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<GroupBox Name="SetUpGpBx" Grid.ColumnSpan="3" Grid.RowSpan="9" <Grid Grid.RowSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="1.75*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<GroupBox Name="SetUpGpBx" Grid.ColumnSpan="3" Grid.RowSpan="9"
Style="{DynamicResource OmagCut_GroupBox}"> Style="{DynamicResource OmagCut_GroupBox}">
<Grid Name="CurrToolsGrid" Grid.ColumnSpan="2"> <Grid Name="CurrToolsGrid" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="3*"/> <ColumnDefinition Width="3*"/>
<ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Name="CurrSawTxBl" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" <TextBlock Name="CurrSawTxBl" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/> Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<ComboBox x:Name="CurrSawCmBx" Grid.Column="1" Grid.Row="1" Style="{DynamicResource OmagCut_ComboBox}"> <ComboBox x:Name="CurrSawCmBx" Grid.Column="1" Grid.Row="1" Style="{DynamicResource OmagCut_ComboBox}">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/> <TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<TextBlock Name="AuxiliaryToolTxBl" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="3" <TextBlock Name="AuxiliaryToolTxBl" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
Visibility="Hidden"/> Visibility="Hidden"/>
<ComboBox Name="AuxiliaryToolCmBx" Grid.Column="1" Grid.Row="3" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden"> <ComboBox Name="AuxiliaryToolCmBx" Grid.Column="1" Grid.Row="3" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/> <TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<TextBlock Name="CurrDrillTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3" <TextBlock Name="CurrDrillTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
Visibility="Hidden"/> Visibility="Hidden"/>
<ComboBox Name="CurrDrillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden"> <ComboBox Name="CurrDrillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/> <TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<TextBlock Name="CurrMillTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3" <TextBlock Name="CurrMillTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
Visibility="Hidden"/> Visibility="Hidden"/>
<ComboBox Name="CurrMillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden"> <ComboBox Name="CurrMillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/> <TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<TextBlock Name="CurrCupWheelTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3" <TextBlock Name="CurrCupWheelTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
Visibility="Hidden"/> Visibility="Hidden"/>
<ComboBox Name="CurrCupWheelCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden"> <ComboBox Name="CurrCupWheelCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
@@ -303,24 +303,24 @@
<TextBlock Name="CurrWJetTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3" <TextBlock Name="CurrWJetTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
Visibility="Hidden"/> Visibility="Hidden"/>
<ComboBox Name="CurrWJetCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden"> <ComboBox Name="CurrWJetCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/> <TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<Button Name="SetUpBtn" Grid.Column="1" Grid.Row="3" Grid.RowSpan="2" Visibility="Hidden" <Button Name="SetUpBtn" Grid.Column="1" Grid.Row="3" Grid.RowSpan="2" Visibility="Hidden"
Style="{DynamicResource OmagCut_YellowTextButton}"/> Style="{DynamicResource OmagCut_YellowTextButton}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
</Grid> </Grid>
<!--<Grid Grid.Column="2" Grid.Row="2" Grid.RowSpan="6"> <!--<Grid Grid.Column="2" Grid.Row="2" Grid.RowSpan="6">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition /> <ColumnDefinition />
<ColumnDefinition /> <ColumnDefinition />
@@ -424,96 +424,106 @@
</Grid>--> </Grid>-->
<GroupBox Name="MaterialsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" <GroupBox Name="MaterialsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0"
Grid.Row="3" Grid.ColumnSpan="1" Grid.RowSpan="5"> Grid.Row="3" Grid.ColumnSpan="1" Grid.RowSpan="5">
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="2.5*"/> <RowDefinition Height="2.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<ListBox Name="MaterialsLstBx" Grid.RowSpan="2"> <ListBox Name="MaterialsLstBx" Grid.RowSpan="2">
<ListBox.ItemTemplate> <ListBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/> <TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate> </DataTemplate>
</ListBox.ItemTemplate> </ListBox.ItemTemplate>
</ListBox> </ListBox>
<EgtWPFLib:EgtTextBox Name="MatNameTxBx" Grid.Row="1" Width="240" Visibility="Hidden" <EgtWPFLib:EgtTextBox Name="MatNameTxBx" Grid.Row="1" Width="240" Visibility="Hidden"
Style="{DynamicResource OmagCut_KeyboardTextBox}" /> Style="{DynamicResource OmagCut_KeyboardTextBox}" />
<UniformGrid Grid.Row="2" Columns="2"> <UniformGrid Grid.Row="2" Columns="2">
<Button Name="NewMatBtn" Grid.Column="1" <Button Name="NewMatBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<Button Name="RemoveMatBtn" Grid.Column="1" <Button Name="RemoveMatBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
</UniformGrid> </UniformGrid>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Name="MachiningsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" <GroupBox Name="MachiningsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1"
Grid.Row="0" Grid.ColumnSpan="1" Grid.RowSpan="3"> Grid.Row="0" Grid.ColumnSpan="1" Grid.RowSpan="3">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Name="CurrSawingTxBl" Grid.Column="0" Grid.Row="0" <TextBlock Name="CurrSawingTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrSawingTxBx" Grid.Column="1" Grid.Row="0" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="CurrSawingTxBx" Grid.Column="1" Grid.Row="0" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" /> Style="{DynamicResource OmagCut_FixedTextBox}" />
<TextBlock Name="CurrDrillingTxBl" Grid.Column="0" Grid.Row="1" <TextBlock Name="CurrDrillingTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrDrillingTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="CurrDrillingTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" /> Style="{DynamicResource OmagCut_FixedTextBox}" />
<TextBlock Name="CurrMillingTxBl" Grid.Column="0" Grid.Row="2" <TextBlock Name="CurrMillingTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrMillingTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="CurrMillingTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" /> Style="{DynamicResource OmagCut_FixedTextBox}" />
<TextBlock Name="CurrPocketingTxBl" Grid.Column="0" Grid.Row="3" <TextBlock Name="CurrPocketingTxBl" Grid.Column="0" Grid.Row="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrPocketingTxBx" Grid.Column="1" Grid.Row="3" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="CurrPocketingTxBx" Grid.Column="1" Grid.Row="3" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" /> Style="{DynamicResource OmagCut_FixedTextBox}" />
<TextBlock Name="CurrWaterJettingTxBl" Grid.Column="0" Grid.Row="4" <TextBlock Name="CurrWaterJettingTxBl" Grid.Column="0" Grid.Row="4"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrWaterJettingTxBx" Grid.Column="1" Grid.Row="4" Margin="10,0,10,0"
<Grid Grid.Column="1" Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="1.5*"/>
</Grid.ColumnDefinitions>
<EgtWPFLib:EgtTextBox Name="CurrWaterJettingTxBx" Grid.Column="0" Margin="10,0,5,0"
Style="{DynamicResource OmagCut_FixedTextBox}" />
<EgtWPFLib:EgtTextBox Name="CurrWaterJettingQualityTxBx" Grid.Column="1" Margin="0,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" />
</Grid>
<TextBlock Name="CurrDripSawingTxBl" Grid.Column="0" Grid.Row="5"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrDripSawingTxBx" Grid.Column="1" Grid.Row="5" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" /> Style="{DynamicResource OmagCut_FixedTextBox}" />
<TextBlock Name="CurrDripSawingTxBl" Grid.Column="0" Grid.Row="5" <TextBlock Name="CurrDripDrillingTxBl" Grid.Column="0" Grid.Row="6"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrDripSawingTxBx" Grid.Column="1" Grid.Row="5" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="CurrDripDrillingTxBx" Grid.Column="1" Grid.Row="6" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" /> Style="{DynamicResource OmagCut_FixedTextBox}" />
<TextBlock Name="CurrDripDrillingTxBl" Grid.Column="0" Grid.Row="6" </Grid>
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrDripDrillingTxBx" Grid.Column="1" Grid.Row="6" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" />
</Grid> </GroupBox>
</GroupBox> <!--<GroupBox Name="SawGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.RowSpan="2">
<!--<GroupBox Name="SawGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.RowSpan="2">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
@@ -551,51 +561,51 @@
</GroupBox>--> </GroupBox>-->
<Grid Grid.Column="1" Grid.Row="3" Grid.RowSpan="3"> <Grid Grid.Column="1" Grid.Row="3" Grid.RowSpan="3">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition /> <ColumnDefinition />
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<GroupBox Name="MachineParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="2"> <GroupBox Name="MachineParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="2">
<Grid Grid.Column="2" Grid.Row="1"> <Grid Grid.Column="2" Grid.Row="1">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Name="SafeZTxBl" Grid.Column="0" <TextBlock Name="SafeZTxBl" Grid.Column="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="SafeZTxBx" Grid.Column="1" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="SafeZTxBx" Grid.Column="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<Border Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2"> <Border Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2">
<Grid > <Grid >
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Name="AdditionalTableTxBl" Grid.Column="0" <TextBlock Name="AdditionalTableTxBl" Grid.Column="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<EgtWPFLib:EgtTextBox Name="AdditionalTableTxBx" Grid.Column="1" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="AdditionalTableTxBx" Grid.Column="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid> </Grid>
</Border> </Border>
</Grid> </Grid>
<!--<GroupBox Name="DirectCutsParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.Row="8"> <!--<GroupBox Name="DirectCutsParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.Row="8">
<Grid> <Grid>
<TextBlock Name="FinalHomeTxBl" <TextBlock Name="FinalHomeTxBl"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
@@ -605,199 +615,208 @@
</GroupBox>--> </GroupBox>-->
<GroupBox Name="NestingParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" Grid.Row="6" Grid.RowSpan="3"> <GroupBox Name="NestingParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" Grid.Row="6" Grid.RowSpan="3">
<Grid Name="NestingGrid"> <Grid Name="NestingGrid">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Name="CompleteCutsTxBl" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" <TextBlock Name="CompleteCutsTxBl" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="CompleteCutsChBx" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Style="{DynamicResource OmagCut_CheckBox_Single}" <CheckBox Name="CompleteCutsChBx" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/> HorizontalAlignment="Right" Margin="0,0,10,0"/>
<!--Allineato--> <!--Allineato-->
<TextBlock Name="AlignTxBl" Grid.Row="1" Grid.ColumnSpan="2" <TextBlock Name="AlignTxBl" Grid.Row="1" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="AlignChBx" Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}" <CheckBox Name="AlignChBx" Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/> HorizontalAlignment="Right" Margin="0,0,10,0"/>
<!--Ghigliottina--> <!--Ghigliottina-->
<TextBlock Name="GhigliottinaTxBl" Grid.Row="2" Grid.ColumnSpan="2" <TextBlock Name="GhigliottinaTxBl" Grid.Row="2" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="GhigliottinaChBx" Grid.Row="2" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}" <CheckBox Name="GhigliottinaChBx" Grid.Row="2" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
<!--Automatico-->
<TextBlock Name="AutomaticTxBl" Grid.Row="3" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="AutomaticChBx" Grid.Row="3" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/> HorizontalAlignment="Right" Margin="0,0,10,0"/>
<!--Automatico-->
<TextBlock Name="AutomaticTxBl" Grid.Row="3" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="AutomaticChBx" Grid.Row="3" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Name="AutoRawImageParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2"> <GroupBox Name="AutoRawImageParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Grid Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Button Name="BackImageBtn" Grid.Column="1" <Grid Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Button Name="BackImageBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
</Grid> </Grid>
<TextBlock Name="ThresholdTxBl" Grid.Column="0" Grid.Row="1" <TextBlock Name="ThresholdTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ThresholdTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="ThresholdTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="ToleranceTxBl" Grid.Column="0" Grid.Row="2" <TextBlock Name="ToleranceTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ToleranceTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="ToleranceTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Name="CutFredGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" <GroupBox Name="CutFredGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3"
Grid.Row="2" Grid.RowSpan="1"> Grid.Row="2" Grid.RowSpan="1">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Name="CfrLenTxBl" Grid.Column="0" <TextBlock Name="CfrLenTxBl" Grid.Column="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CfrLenTxBx" Grid.Column="1" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="CfrLenTxBx" Grid.Column="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="CfrPercTxBl" Grid.Column="0" Grid.Row="1" <TextBlock Name="CfrPercTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CfrPercTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="CfrPercTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<!--Incisioni--> <!--Incisioni-->
<GroupBox Name="TopMillGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" <GroupBox Name="TopMillGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3"
Grid.Row="3" Grid.RowSpan="3"> Grid.Row="3" Grid.RowSpan="3">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!--Utilizza fresa--> <!--Utilizza fresa-->
<TextBlock Name="TmEnableTxBl" Grid.Column="0" Grid.Row="0" <TextBlock Name="TmEnableTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="TmEnableChBx" Grid.Column="1" Grid.Row="0" Style="{DynamicResource OmagCut_CheckBox_Single}" <CheckBox Name="TmEnableChBx" Grid.Column="1" Grid.Row="0" Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="10,0,10,0"/> HorizontalAlignment="Right" Margin="10,0,10,0"/>
<!--Affondamento--> <!--Affondamento-->
<TextBlock Name="TmDepthTxBl" Grid.Column="0" Grid.Row="1" <TextBlock Name="TmDepthTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TmDepthTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="TmDepthTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<!--Larghezza--> <!--Larghezza-->
<TextBlock Name="TmWidthTxBl" Grid.Column="0" Grid.Row="2" <TextBlock Name="TmWidthTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TmWidthTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0" <EgtWPFLib:EgtTextBox Name="TmWidthTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/> Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<Border Name="SideAngCutProbeGpBx" Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="3" Grid.Row="6"> <Border Name="SideAngCutProbeGpBx" Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="3" Grid.Row="6">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="SideAngCutProbeTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="SideAngCutProbeChBx" Grid.Column="1" Grid.Row="0" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</Border>
<Border Name="WashingGpBx" Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="3" Grid.Row="7">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="WashingTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="WashingChBx" Grid.Column="1" Grid.Row="0" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</Border>
<!--Cornici-->
<GroupBox Name="FrameGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="8">
<Grid > <Grid >
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Name="FramePauseTxBl" Grid.Column="0" Grid.Row="0" <TextBlock Name="SideAngCutProbeTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="SideAngCutProbeChBx" Grid.Column="1" Grid.Row="0" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</Border>
<Border Name="WashingGpBx" Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="3" Grid.Row="7">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="WashingTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="WashingChBx" Grid.Column="1" Grid.Row="0" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</Border>
<!--Cornici-->
<GroupBox Name="FrameGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="8">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="FramePauseTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="FramePauseChBx" Grid.Column="1" Grid.Row="0" Style="{StaticResource OmagCut_CheckBox_Single}" <CheckBox Name="FramePauseChBx" Grid.Column="1" Grid.Row="0" Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/> HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<UniformGrid Columns="4" Grid.Row="8"> <Grid Grid.Column="0" Grid.Row="8">
<Button x:Name="SawProbingBtn" <Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Button x:Name="SawProbingBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}"> Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource SawProbeImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/> <Image Source="{DynamicResource SawProbeImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>
</Button> </Button>
</UniformGrid>
<TextBlock Name="UseLaserOriginTxBl" Grid.Column="1"
</Grid> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="UseLaserOriginChBx" Style="{DynamicResource OmagCut_CheckBox_Single}" Grid.Column="2"
</Border> HorizontalAlignment="Right" Margin="10,0,10,0"/>
</Grid>
</Grid>
</Border>
</UserControl> </UserControl>
+59 -9
View File
@@ -109,6 +109,7 @@ Public Class AlarmsPageUC
CurrDripDrillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 6) ' DripDrilling CurrDripDrillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 6) ' DripDrilling
FrameGpBx.Header = EgtMsg(91068) ' Cornici FrameGpBx.Header = EgtMsg(91068) ' Cornici
FramePauseTxBl.Text = EgtMsg(91067) ' Inserisci pausa FramePauseTxBl.Text = EgtMsg(91067) ' Inserisci pausa
UseLaserOriginTxBl.Text = EgtMsg(91129) ' Usa laser per origine
AutoRawImageParamGpBx.Visibility = Windows.Visibility.Hidden AutoRawImageParamGpBx.Visibility = Windows.Visibility.Hidden
End Sub End Sub
@@ -118,6 +119,14 @@ Public Class AlarmsPageUC
' Variabile che accorcia il riferimento alla macchina corrente ' Variabile che accorcia il riferimento alla macchina corrente
m_CurrentMachine = m_MainWindow.m_CurrentMachine m_CurrentMachine = m_MainWindow.m_CurrentMachine
' in assenza dell'uscita H1 nascondo i parametri lama
If EgtGetHeadId("H1") = GDB_ID.NULL Then
SawGpBx.Visibility = Visibility.Hidden
TopMillGpBx.Visibility = Visibility.Hidden
CurrSawTxBl.Visibility = Visibility.Hidden
CurrSawCmBx.Visibility = Visibility.Hidden
End If
' Verifico la configurazione della macchina per creare i combobox ' Verifico la configurazione della macchina per creare i combobox
Select Case m_CurrentMachine.MountedToolConfig Select Case m_CurrentMachine.MountedToolConfig
Case CurrentMachine.MountedToolConfigs.SAW Case CurrentMachine.MountedToolConfigs.SAW
@@ -132,7 +141,7 @@ Public Class AlarmsPageUC
' Disattivo il gruppo dei parametri fori ' Disattivo il gruppo dei parametri fori
HolesGpBx.Visibility = Windows.Visibility.Hidden HolesGpBx.Visibility = Windows.Visibility.Hidden
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
'Non faccio alcunchè 'Non faccio alcunchè
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER
'Da implementare 'Da implementare
End Select End Select
@@ -151,7 +160,7 @@ Public Class AlarmsPageUC
' Se non previsti tagli waterjet, disabilito relativo box ' Se non previsti tagli waterjet, disabilito relativo box
If Not m_CurrentMachine.bWaterJetting Then If Not m_CurrentMachine.bWaterJetting Then
WJsParamGpBx.Visibility = Visibility.Hidden WjsParamGpBx.Visibility = Visibility.Hidden
End If End If
' Abilitazione box per contorni grezzo da foto ' Abilitazione box per contorni grezzo da foto
@@ -164,7 +173,7 @@ Public Class AlarmsPageUC
End If End If
' Abilitazione Feed ridotta su inizio/fine tagli ' Abilitazione Feed ridotta su inizio/fine tagli
If m_CurrentMachine.bFsevEnable Then If m_CurrentMachine.bFsevEnable And EgtGetHeadId("H1") <> GDB_ID.NULL Then
CutFredGpBx.Visibility = Windows.Visibility.Visible CutFredGpBx.Visibility = Windows.Visibility.Visible
Else Else
CutFredGpBx.Visibility = Windows.Visibility.Hidden CutFredGpBx.Visibility = Windows.Visibility.Hidden
@@ -179,11 +188,16 @@ Public Class AlarmsPageUC
m_bFirst = False m_bFirst = False
End If End If
' Aggiorno lista delle lame per pagina macchina in cui scegliere quella corrente ' Aggiorno lista delle lame per pagina macchina in cui scegliere quella corrente
CreateToolList(MCH_TF.SAWBLADE, m_SawList) CreateToolList(MCH_TF.SAWBLADE, m_SawList)
' Seleziono lama corrente ' Seleziono lama corrente
CurrSawCmBx.SelectedItem = m_CurrentMachine.sCurrSaw CurrSawCmBx.SelectedItem = m_CurrentMachine.sCurrSaw
' nascondo la lista dei materiali solo se macchina WaterJet
If m_CurrentMachine.bWaterJet Then
MaterialsGpBx.Visibility = Visibility.Hidden
End If
' Verifico la configurazione della macchina per creare i combobox ' Verifico la configurazione della macchina per creare i combobox
Select Case m_CurrentMachine.MountedToolConfig Select Case m_CurrentMachine.MountedToolConfig
Case CurrentMachine.MountedToolConfigs.SAW Case CurrentMachine.MountedToolConfigs.SAW
@@ -374,6 +388,17 @@ Public Class AlarmsPageUC
' Leggo parametri per variazione feed in tagli ' Leggo parametri per variazione feed in tagli
CfrLenTxBx.Text = LenToString(m_CurrentMachine.dFsevLength, 3) CfrLenTxBx.Text = LenToString(m_CurrentMachine.dFsevLength, 3)
CfrPercTxBx.Text = DoubleToString(m_CurrentMachine.dFsevPerc, 0) CfrPercTxBx.Text = DoubleToString(m_CurrentMachine.dFsevPerc, 0)
' leggo flag per tavola definita da laser
Dim nUseLaserOrigin As Integer = GetPrivateProfileInt(S_TABLE, K_USELASERORIGIN, -1, m_MainWindow.GetMachIniFile())
If nUseLaserOrigin = -1 Then
UseLaserOriginTxBl.Visibility = Visibility.Hidden
UseLaserOriginChBx.Visibility = Visibility.Hidden
Else
UseLaserOriginTxBl.Visibility = Visibility.Visible
UseLaserOriginChBx.IsChecked = (nUseLaserOrigin <> 0)
End If
End Sub End Sub
' aggiorna le text delle lavorazioni (la selezione avviene nella pagina del grezzo o dalla pagina del progetto corrente) ' aggiorna le text delle lavorazioni (la selezione avviene nella pagina del grezzo o dalla pagina del progetto corrente)
@@ -414,9 +439,26 @@ Public Class AlarmsPageUC
CurrWaterJettingTxBx.Text = m_CurrentMachine.sCurrWaterJetting CurrWaterJettingTxBx.Text = m_CurrentMachine.sCurrWaterJetting
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Visible CurrWaterJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Visible CurrWaterJettingTxBx.Visibility = Windows.Visibility.Visible
If m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
CurrWaterJettingTxBx.SetValue(Grid.ColumnSpanProperty, 1)
CurrWaterJettingTxBx.SetValue(MarginProperty, New Thickness(CurrWaterJettingTxBx.Margin.Left,
CurrWaterJettingTxBx.Margin.Top,
5,
CurrWaterJettingTxBx.Margin.Bottom))
CurrWaterJettingQualityTxBx.Text = m_CurrentMachine.sCurrWaterJettingQuality
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Visible
Else
CurrWaterJettingTxBx.SetValue(Grid.ColumnSpanProperty, 2)
CurrWaterJettingTxBx.SetValue(MarginProperty, New Thickness(CurrWaterJettingTxBx.Margin.Left,
CurrWaterJettingTxBx.Margin.Top,
10,
CurrWaterJettingTxBx.Margin.Bottom))
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Collapsed
End If
Else Else
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Hidden CurrWaterJettingTxBl.Visibility = Windows.Visibility.Hidden
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Hidden CurrWaterJettingTxBx.Visibility = Windows.Visibility.Hidden
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Hidden
End If End If
If m_CurrentMachine.sCurrDripSawing <> String.Empty Then If m_CurrentMachine.sCurrDripSawing <> String.Empty Then
CurrDripSawingTxBx.Text = m_CurrentMachine.sCurrDripSawing CurrDripSawingTxBx.Text = m_CurrentMachine.sCurrDripSawing
@@ -549,7 +591,7 @@ Public Class AlarmsPageUC
If CurrDrillCmBx.SelectedItem.ToString() = NO_TOOL Then If CurrDrillCmBx.SelectedItem.ToString() = NO_TOOL Then
m_CurrentMachine.sCurrDrill = String.Empty m_CurrentMachine.sCurrDrill = String.Empty
m_CurrentMachine.sCurrDrilling = String.Empty m_CurrentMachine.sCurrDrilling = String.Empty
' Assegno foretto ' Assegno foretto
Else Else
m_CurrentMachine.sCurrDrill = CurrDrillCmBx.SelectedItem.ToString() m_CurrentMachine.sCurrDrill = CurrDrillCmBx.SelectedItem.ToString()
' Reset fresa, waterjet e relative lavorazioni ' Reset fresa, waterjet e relative lavorazioni
@@ -584,7 +626,7 @@ Public Class AlarmsPageUC
If CurrMillCmBx.SelectedItem.ToString() = NO_TOOL Then If CurrMillCmBx.SelectedItem.ToString() = NO_TOOL Then
m_CurrentMachine.sCurrMill = String.Empty m_CurrentMachine.sCurrMill = String.Empty
m_CurrentMachine.sCurrMilling = String.Empty m_CurrentMachine.sCurrMilling = String.Empty
' Assegno fresa ' Assegno fresa
Else Else
m_CurrentMachine.sCurrMill = CurrMillCmBx.SelectedItem.ToString() m_CurrentMachine.sCurrMill = CurrMillCmBx.SelectedItem.ToString()
' Reset foretto, waterjet e relative lavorazioni ' Reset foretto, waterjet e relative lavorazioni
@@ -654,7 +696,7 @@ Public Class AlarmsPageUC
If CurrWJetCmBx.SelectedItem.ToString() = NO_TOOL Then If CurrWJetCmBx.SelectedItem.ToString() = NO_TOOL Then
m_CurrentMachine.sCurrWaterJet = String.Empty m_CurrentMachine.sCurrWaterJet = String.Empty
m_CurrentMachine.sCurrWaterJetting = String.Empty m_CurrentMachine.sCurrWaterJetting = String.Empty
' Assegno Waterjet ' Assegno Waterjet
Else Else
m_CurrentMachine.sCurrWaterJet = CurrWJetCmBx.SelectedItem.ToString() m_CurrentMachine.sCurrWaterJet = CurrWJetCmBx.SelectedItem.ToString()
' Reset foretto, fresa e relative lavorazioni ' Reset foretto, fresa e relative lavorazioni
@@ -857,7 +899,7 @@ Public Class AlarmsPageUC
Else Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, "0", m_MainWindow.GetMachIniFile()) WritePrivateProfileString(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, "0", m_MainWindow.GetMachIniFile())
End If End If
End Sub End Sub
Private Sub TmDepthTxBx_EgtClosed(sender As Object, e As EventArgs) Handles TmDepthTxBx.EgtClosed Private Sub TmDepthTxBx_EgtClosed(sender As Object, e As EventArgs) Handles TmDepthTxBx.EgtClosed
Dim dVal As Double = 0 Dim dVal As Double = 0
@@ -993,6 +1035,14 @@ Public Class AlarmsPageUC
End If End If
End Sub End Sub
Private Sub UseLaserOriginChBx_Click() Handles UseLaserOriginChBx.Click
If UseLaserOriginChBx.IsChecked() Then
WritePrivateProfileString(S_TABLE, K_USELASERORIGIN, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_TABLE, K_USELASERORIGIN, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub WashingChBx_Click(sender As Object, e As RoutedEventArgs) Handles WashingChBx.Click Private Sub WashingChBx_Click(sender As Object, e As RoutedEventArgs) Handles WashingChBx.Click
If WashingChBx.IsChecked() Then If WashingChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_WASHING, "1", m_MainWindow.GetMachIniFile()) WritePrivateProfileString(S_MACH_NEST, K_MACH_WASHING, "1", m_MainWindow.GetMachIniFile())
+159 -11
View File
@@ -1,4 +1,5 @@
Imports System.Collections.ObjectModel Imports System.Collections.ObjectModel
Imports EgtWPFLib5
Imports EgtUILib Imports EgtUILib
Public Class CurrentMachine Public Class CurrentMachine
@@ -76,6 +77,9 @@ Public Class CurrentMachine
Private m_bPolishingWheel As Boolean = False Private m_bPolishingWheel As Boolean = False
Private m_bWaterJet As Boolean = False Private m_bWaterJet As Boolean = False
' Abilitazione DB WaterJet
Private m_bFromDBWaterJet As Boolean = False
' Flag per visualizzazione TcPos, Testa/uscita e Note utente ' Flag per visualizzazione TcPos, Testa/uscita e Note utente
Private m_nShowToolChanger As Integer = 0 ' 0=no, 1=tutti utensili, 2=solo lame Private m_nShowToolChanger As Integer = 0 ' 0=no, 1=tutti utensili, 2=solo lame
Private m_bShowHeadExit As Boolean = False Private m_bShowHeadExit As Boolean = False
@@ -114,6 +118,7 @@ Public Class CurrentMachine
Private m_sCurrDripSawing As String = String.Empty Private m_sCurrDripSawing As String = String.Empty
Private m_sCurrDripDrilling As String = String.Empty Private m_sCurrDripDrilling As String = String.Empty
Private m_sCurrWaterJetting As String = String.Empty Private m_sCurrWaterJetting As String = String.Empty
Private m_sCurrWaterJettingQuality As String = String.Empty
' Spessore sottopezzo ' Spessore sottopezzo
Private m_dAdditionalTable As Double = 0 Private m_dAdditionalTable As Double = 0
@@ -157,6 +162,9 @@ Public Class CurrentMachine
' Lista dei materiali ' Lista dei materiali
Private m_Materials As New ObservableCollection(Of Material) Private m_Materials As New ObservableCollection(Of Material)
' Lista delle qualità di lavorazioni disponibili nel WaterJet
Private m_Qualities As New ObservableCollection(Of String)
' Massimo id della lista materiali nel file ini ' Massimo id della lista materiali nel file ini
Private m_MaxIdMat As Integer = 0 Private m_MaxIdMat As Integer = 0
@@ -431,6 +439,12 @@ Public Class CurrentMachine
End Get End Get
End Property End Property
Friend ReadOnly Property bFromDBWaterJet As Boolean
Get
Return m_bFromDBWaterJet
End Get
End Property
Friend ReadOnly Property ShowToolChanger As Integer Friend ReadOnly Property ShowToolChanger As Integer
Get Get
Return m_nShowToolChanger Return m_nShowToolChanger
@@ -709,6 +723,17 @@ Public Class CurrentMachine
End Set End Set
End Property End Property
Friend Property sCurrWaterJettingQuality As String
Get
Return m_sCurrWaterJettingQuality
End Get
Set(value As String)
If WritePrivateProfileString(S_MACH_MACH, K_CURRWATERJETTINGQUALITY, value, sMachIniFile) Then
m_sCurrWaterJettingQuality = value
End If
End Set
End Property
Friend ReadOnly Property WaterJettingActive As Double Friend ReadOnly Property WaterJettingActive As Double
Get Get
Return m_bWaterJetting AndAlso Not String.IsNullOrWhiteSpace(m_sCurrWaterJetting) Return m_bWaterJetting AndAlso Not String.IsNullOrWhiteSpace(m_sCurrWaterJetting)
@@ -903,6 +928,12 @@ Public Class CurrentMachine
End Get End Get
End Property End Property
Friend ReadOnly Property Qualities As ObservableCollection(Of String)
Get
Return m_Qualities
End Get
End Property
Friend Sub AddMaterial(value As Material) Friend Sub AddMaterial(value As Material)
For Each Material As Material In Materials For Each Material As Material In Materials
If Material.nId = value.nId Then If Material.nId = value.nId Then
@@ -984,7 +1015,11 @@ Public Class CurrentMachine
End Get End Get
Set(value As Material) Set(value As Material)
Dim CurrMatId As String = If(Not IsNothing(value), value.nId.ToString, "") Dim CurrMatId As String = If(Not IsNothing(value), value.nId.ToString, "")
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId, sMachIniFile) If bWaterJet And bFromDBWaterJet Then
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId & If(Not IsNothing(value), "." & value.SubId, ""), sMachIniFile)
Else
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId, sMachIniFile)
End If
m_CurrMat = value m_CurrMat = value
End Set End Set
End Property End Property
@@ -1082,6 +1117,8 @@ Public Class CurrentMachine
' waterjet ' waterjet
m_bWaterJet = (GetPrivateProfileInt(S_TOOLS, K_WATERJET, 0, sMachIniFile) > 0) And m_bWaterJet = (GetPrivateProfileInt(S_TOOLS, K_WATERJET, 0, sMachIniFile) > 0) And
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.ENABLE_WJ) m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.ENABLE_WJ)
' Leggo abilitazione DB WaterJet
m_bFromDBWaterJet = (GetPrivateProfileInt(S_MATERIALS, K_FROMDBWATERJET, 0, sMachIniFile) > 0)
' Leggo abilitazione visualizzazione TcPos, Head/exit e Note utente ' Leggo abilitazione visualizzazione TcPos, Head/exit e Note utente
m_nShowToolChanger = GetPrivateProfileInt(S_TOOLS, K_SHOWTOOLCHANGER, 0, sMachIniFile) m_nShowToolChanger = GetPrivateProfileInt(S_TOOLS, K_SHOWTOOLCHANGER, 0, sMachIniFile)
m_bShowHeadExit = (GetPrivateProfileInt(S_TOOLS, K_SHOWHEADEXIT, 0, sMachIniFile) > 0) m_bShowHeadExit = (GetPrivateProfileInt(S_TOOLS, K_SHOWHEADEXIT, 0, sMachIniFile) > 0)
@@ -1157,6 +1194,8 @@ Public Class CurrentMachine
GetPrivateProfileString(S_MACH_MACH, K_CURRDRIPDRILLING, Nothing, m_sCurrDripDrilling, sMachIniFile) GetPrivateProfileString(S_MACH_MACH, K_CURRDRIPDRILLING, Nothing, m_sCurrDripDrilling, sMachIniFile)
' waterjetting ' waterjetting
GetPrivateProfileString(S_MACH_MACH, K_CURRWATERJETTING, Nothing, m_sCurrWaterJetting, sMachIniFile) GetPrivateProfileString(S_MACH_MACH, K_CURRWATERJETTING, Nothing, m_sCurrWaterJetting, sMachIniFile)
' waterjettingquality
GetPrivateProfileString(S_MACH_MACH, K_CURRWATERJETTINGQUALITY, Nothing, m_sCurrWaterJettingQuality, sMachIniFile)
' Leggo numero di portautensili ' Leggo numero di portautensili
m_ToolChangerNbr = GetPrivateProfileInt(S_TOOLCHANGER, K_NUMBER, 0, sMachIniFile) m_ToolChangerNbr = GetPrivateProfileInt(S_TOOLCHANGER, K_NUMBER, 0, sMachIniFile)
@@ -1218,27 +1257,119 @@ Public Class CurrentMachine
' Leggo la lista dei materiali ' Leggo la lista dei materiali
Dim Material As Material = Nothing Dim Material As Material = Nothing
Dim nIndex As Integer = 1 Dim nIndex As Integer = 1
While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile))
m_Materials.Add(Material) If m_bWaterJet And m_bFromDBWaterJet Then
nIndex += 1 LoadWJMaterial(True)
End While Else
While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile))
m_Materials.Add(Material)
nIndex += 1
End While
End If
' Salvo massimo indice a cui sono arrivato per usarlo quando devo aggiungere nuovi elementi alla lista ' Salvo massimo indice a cui sono arrivato per usarlo quando devo aggiungere nuovi elementi alla lista
m_MaxIdMat = nIndex - 1 m_MaxIdMat = nIndex - 1
' Leggo materiale correntemente attivo ' Leggo materiale correntemente attivo
Dim CurrMatId As Integer = GetPrivateProfileInt(S_MATERIALS, K_CURRMATERIAL, 0, sMachIniFile) Dim sCurrMatId As String = String.Empty
For Each Material In Materials EgtUILib.GetPrivateProfileString(S_MATERIALS, K_CURRMATERIAL, "0", sCurrMatId, sMachIniFile)
If Material.nId = CurrMatId Then If bWaterJet And bFromDBWaterJet Then
m_CurrMat = Material Dim sCurrMatIds As String()
Exit For sCurrMatIds = sCurrMatId.Split("."c)
If sCurrMatIds.Length > 1 Then
Dim nCurrMatId As Integer
Dim nCurrSubMatId As Integer
If Not Integer.TryParse(sCurrMatIds(0), nCurrMatId) Then nCurrMatId = 0
If Not Integer.TryParse(sCurrMatIds(1), nCurrSubMatId) Then nCurrSubMatId = 0
For Each Material In Materials
If Material.nId = nCurrMatId AndAlso Material.SubId = nCurrSubMatId Then
m_CurrMat = Material
Exit For
End If
Next
End If End If
Next Else
Dim nCurrMatId As Integer
If Not Integer.TryParse(sCurrMatId, nCurrMatId) Then nCurrMatId = 0
For Each Material In Materials
If Material.nId = nCurrMatId Then
m_CurrMat = Material
Exit For
End If
Next
End If
' leggo se la macchina ha il tastatore dello spessore tavola ' leggo se la macchina ha il tastatore dello spessore tavola
m_HasRawProbe = (GetPrivateProfileInt(S_MACH_PROBING, K_ENABLERAWPROBE, 1, sMachIniFile) <> 0) m_HasRawProbe = (GetPrivateProfileInt(S_MACH_PROBING, K_ENABLERAWPROBE, 1, sMachIniFile) <> 0)
' leggo se la macchina ha il lettore di codice a barre della lastra ' leggo se la macchina ha il lettore di codice a barre della lastra
m_nEnableBarCodeReader = GetPrivateProfileInt(S_MACH_BARCODEREADER, K_ENABLEBCR, 0, sMachIniFile) m_nEnableBarCodeReader = GetPrivateProfileInt(S_MACH_BARCODEREADER, K_ENABLEBCR, 0, sMachIniFile)
End Sub End Sub
Public Sub LoadWJMaterial(Optional bIsStart As Boolean = False)
Dim TempCurrMat As Material = CurrMat
' Svuoto l'attuale lista di materiali
m_Materials.Clear()
' Leggo valori da file Data e li carico nelle proprietà
Dim sFilePath As String = sMachDir & "\" & MACHININGS_DIR & "\" & WATERJETDB_FILE
Dim Local_MaterialList = New ObservableCollection(Of EgtWPFLib5.WjMaterial)
Local_MaterialList = EgtWPFLib5.WaterjetDbWindowVM.LoadWjMaterials(sFilePath)
' definisco la lista delle qualità (solo se è vuota)
If m_Qualities.Count < 1 Then
m_Qualities.Add("Q1")
m_Qualities.Add("Q2")
m_Qualities.Add("Q3")
m_Qualities.Add("Q4")
m_Qualities.Add("Q5")
m_Qualities.Add("QExtra")
End If
' inserisco il materiale generico di default -- IN SOSPESO
'm_Materials.Add(New Material(0, "***", 0))
' costruiscoi la lista
Dim i As Integer = 0
Dim sName As String = String.Empty
For i = 0 To Local_MaterialList.Count - 1
sName = Local_MaterialList(i).Name
Dim j As Integer = 0
For j = 0 To Local_MaterialList(i).SubMaterialList.Count - 1
m_Materials.Add(New Material(i + 1, sName & "." & Local_MaterialList(i).SubMaterialList(j).Name, j + 1))
Next
Next
If Not bIsStart Then CurrMat = TempCurrMat
End Sub
Public Function GetMaxThicknessCurrMaterial(sCurMat As String) As Double
Dim bFound As Boolean = False
Dim dMaxThick As Double = 0
' Leggo valori da file Data e li carico nelle proprietà
Dim sFilePath As String = sMachDir & "\" & MACHININGS_DIR & "\" & WATERJETDB_FILE
Dim Local_MaterialList = New ObservableCollection(Of EgtWPFLib5.WjMaterial)
Local_MaterialList = EgtWPFLib5.WaterjetDbWindowVM.LoadWjMaterials(sFilePath)
Dim sItems() As String = sCurMat.Split("."c)
If sItems.Count > 1 Then
Dim sMat As String = sItems(0)
Dim sSubMat As String = sItems(1)
For Each ItemMat As EgtWPFLib5.WjMaterial In Local_MaterialList
If ItemMat.Name = sMat Then
For Each ItemSubMat As EgtWPFLib5.WjSubMaterial In ItemMat.SubMaterialList
If ItemSubMat.Name = sSubMat Then
For Each ItemParam As EgtWPFLib5.WjParam In ItemSubMat.ParamList
Dim dParamThick As Double
StringToDouble(ItemParam.Thickness, dParamThick)
If dParamThick > dMaxThick Then
dMaxThick = dParamThick
End If
Next
bFound = True
Exit For
End If
If bFound Then Exit For
Next
End If
If bFound Then Exit For
Next
End If
Return dMaxThick
End Function
Friend Function IsVacuumMovePossible() As Boolean Friend Function IsVacuumMovePossible() As Boolean
' Recupero diametro lama corrente ' Recupero diametro lama corrente
EgtTdbSetCurrTool(sCurrSaw) EgtTdbSetCurrTool(sCurrSaw)
@@ -1333,6 +1464,7 @@ Friend Class Material
Private m_nId As Integer Private m_nId As Integer
Private m_sName As String Private m_sName As String
Private m_SubId As Integer = 0
Public ReadOnly Property nId As Integer Public ReadOnly Property nId As Integer
Get Get
@@ -1349,6 +1481,15 @@ Friend Class Material
End Set End Set
End Property End Property
Public Property SubId As Integer
Get
Return m_SubId
End Get
Set(value As Integer)
m_SubId = value
End Set
End Property
Sub New(sName As String, MaterialList As ObservableCollection(Of Material)) Sub New(sName As String, MaterialList As ObservableCollection(Of Material))
Dim nMaxId As Integer = 0 Dim nMaxId As Integer = 0
For Each Material As Material In MaterialList For Each Material As Material In MaterialList
@@ -1365,4 +1506,11 @@ Friend Class Material
m_sName = sName m_sName = sName
End Sub End Sub
Sub New(nId As Integer, sName As String, nSubId As Integer)
m_nId = nId
m_sName = sName
m_SubId = nSubId
End Sub
End Class End Class
+139
View File
@@ -0,0 +1,139 @@
<Window x:Class="ImportExportMachiningWindowWD"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
FontFamily="{DynamicResource OmagCut_Font}"
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
Title="SaveNameWD" Height="350" Width="426.5" ShowInTaskbar="False">
<!--Definizione della pagina di scelta del nome con cui salvare il progetto-->
<Border Style="{DynamicResource OmagCut_Border}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0" Margin="20">
<TreeView ItemsSource="{Binding FamilyList}" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type EgtWPFLib5:ImpExpMachiningFamily}" ItemsSource="{Binding MachiningList}">
<Grid Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding PictureString}" Height="20" Width="20" Margin="0,0,5,0" />
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="0,-2,5,0" VerticalAlignment="Center" />
</Grid>
<!-- multibinding quando sono attivi.-->
<HierarchicalDataTemplate.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" >
<Setter Property="Foreground" Value="{DynamicResource OmagCut_TreeViewTextColor}" />
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
<Setter Property="IsExpanded" Value="{Binding IsExpanded}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="19" Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<ToggleButton x:Name="Expander" ClickMode="Press" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapseToggleStyle}"/>
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="1" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<ContentPresenter x:Name="PART_Header" ContentSource="Header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ItemsPresenter x:Name="ItemsHost" Grid.ColumnSpan="2" Grid.Column="1" Grid.Row="1"/>
<Rectangle Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" VerticalAlignment="Top" Fill="{DynamicResource OmagCut_TreeViewDelimiterColor}" Height="1" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="false">
<Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/>
</Trigger>
<Trigger Property="HasItems" Value="false">
<Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
</Trigger>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource OmagCut_TreeViewSelectedItemBackground}" />
<Setter Property="BorderBrush" TargetName="Bd" Value="{DynamicResource OmagCut_TreeViewSelectedItemBorder}"/>
<Setter Property="BorderThickness" TargetName="Bd" Value="1"/>
<!--<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/>-->
</Trigger>
<!--<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
</MultiTrigger>-->
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</HierarchicalDataTemplate.ItemContainerStyle>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type EgtWPFLib5:ImpExpMachiningItem}">
<Grid Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<!--<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Margin="0,8,6,4" />-->
<CheckBox Name="ActiveTxBx" Grid.Column="0" Height="15" Width="15"
Margin="-15,0,5,0" VerticalContentAlignment="Center"
IsChecked="{Binding Active}"
Visibility="{Binding Path=DataContext.Active_Visibility,
RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
<TextBlock Grid.Column="1" Text="{Binding Name}"
Style="{StaticResource OmagCut_ListBoxTextBlock}" />
</Grid>
</DataTemplate>
</TreeView.Resources>
</TreeView>
</ScrollViewer>
<Grid Grid.Column="1" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button Name="OkBtn" Grid.Row="0" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}"
Margin="5,-10,5,15"
Command="{Binding OkCommand}">
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="ExitBtn" Grid.Row="0" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}"
Margin="5,-10,5,15"
IsCancel="True">
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
</Grid>
</Grid>
</Border>
</Window>
@@ -0,0 +1,33 @@
Imports EgtWPFLib5
Public Class ImportExportMachiningWindowWD
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private WithEvents m_ImportExportMachiningWindowVM As ImportExportMachiningWindowVM
Private m_OkResult As Boolean = False
Public ReadOnly Property OkResult As Boolean
Get
Return m_OkResult
End Get
End Property
Sub New(Owner As Window, ImportExportToolWindowVM As ImportExportMachiningWindowVM)
Me.Owner = Owner
' This call is required by the designer.
InitializeComponent()
Me.DataContext = ImportExportToolWindowVM
' Assegno al riferimento locale al VM il VM preso dal DataContext
m_ImportExportMachiningWindowVM = ImportExportToolWindowVM
End Sub
Private Sub OkCloseDialogWD() Handles OkBtn.Click
m_OkResult = True
Me.Close()
End Sub
Private Sub CancelCloseDialogWD() Handles ExitBtn.Click
m_OkResult = False
Me.Close()
End Sub
End Class
+18
View File
@@ -5,6 +5,13 @@ Public Class ImportExportToolWD
Private WithEvents m_ImportExportToolWindowVM As ImportExportToolWindowVM Private WithEvents m_ImportExportToolWindowVM As ImportExportToolWindowVM
Private m_OkResult As Boolean = False
Public ReadOnly Property OkResult As Boolean
Get
Return m_OkResult
End Get
End Property
Sub New(Owner As Window, ImportExportToolWindowVM As ImportExportToolWindowVM) Sub New(Owner As Window, ImportExportToolWindowVM As ImportExportToolWindowVM)
Me.Owner = Owner Me.Owner = Owner
' This call is required by the designer. ' This call is required by the designer.
@@ -17,4 +24,15 @@ Public Class ImportExportToolWD
'Private Sub CloseWindow(bDialogResult As Boolean) Handles m_ImportExportToolWindowVM.m_CloseWindow 'Private Sub CloseWindow(bDialogResult As Boolean) Handles m_ImportExportToolWindowVM.m_CloseWindow
' Me.DialogResult = bDialogResult ' Me.DialogResult = bDialogResult
'End Sub 'End Sub
Private Sub OkCloseDialogWD() Handles OkBtn.Click
m_OkResult = True
Me.Close()
End Sub
Private Sub CancelCloseDialogWD() Handles ExitBtn.Click
m_OkResult = False
Me.Close()
End Sub
End Class End Class
+8 -4
View File
@@ -24,9 +24,10 @@
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<ToggleButton Name="AlarmsBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}"> <ToggleButton Name="AlarmsBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
@@ -41,10 +42,13 @@
<ToggleButton Name="PolishingsBtn" Grid.Column="3" Style="{DynamicResource OmagCut_BlueIconToggleButton}"> <ToggleButton Name="PolishingsBtn" Grid.Column="3" Style="{DynamicResource OmagCut_BlueIconToggleButton}">
<!--<Image Source="{DynamicResource LucidaturaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>--> <!--<Image Source="{DynamicResource LucidaturaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>-->
</ToggleButton> </ToggleButton>
<ToggleButton Name="TestingPageBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowIconToggleButton}"> <ToggleButton Name="WaterJetBtn" Grid.Column="4" Style="{DynamicResource OmagCut_BlueIconToggleButton}">
<!--<Image Source="{DynamicResource WaterJetImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>-->
</ToggleButton>
<ToggleButton Name="TestingPageBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource MacchinaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/> <Image Source="{DynamicResource MacchinaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton> </ToggleButton>
<ToggleButton Name="StatisticsBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowToggleButton}"> <ToggleButton Name="StatisticsBtn" Grid.Column="6" Style="{DynamicResource OmagCut_YellowToggleButton}">
</ToggleButton> </ToggleButton>
+190 -1
View File
@@ -10,6 +10,7 @@ Public Class MachinePageUC
Friend m_ToolsDbPageUC As ToolsDbPageUC Friend m_ToolsDbPageUC As ToolsDbPageUC
Friend m_MachiningDbPageUC As MachiningDbPageUC Friend m_MachiningDbPageUC As MachiningDbPageUC
Friend m_PolishingsPageUC As PolishingsPageUC Friend m_PolishingsPageUC As PolishingsPageUC
Friend m_WaterJetPageUC As WaterJetPageUC
Friend m_MachineCNPageUC As MachineCNPageUC Friend m_MachineCNPageUC As MachineCNPageUC
Friend m_StatisticsPageUC As StatisticsPageUC Friend m_StatisticsPageUC As StatisticsPageUC
@@ -21,6 +22,7 @@ Public Class MachinePageUC
ToolsDb ToolsDb
MachiningDb MachiningDb
Polishings Polishings
WaterJet
MachineCN MachineCN
Statistics Statistics
End Enum End Enum
@@ -32,6 +34,7 @@ Public Class MachinePageUC
m_ToolsDbPageUC = New ToolsDbPageUC m_ToolsDbPageUC = New ToolsDbPageUC
m_MachiningDbPageUC = New MachiningDbPageUC m_MachiningDbPageUC = New MachiningDbPageUC
m_PolishingsPageUC = New PolishingsPageUC m_PolishingsPageUC = New PolishingsPageUC
m_WaterJetPageUC = New WaterJetPageUC
m_MachineCNPageUC = New MachineCNPageUC m_MachineCNPageUC = New MachineCNPageUC
m_StatisticsPageUC = New StatisticsPageUC m_StatisticsPageUC = New StatisticsPageUC
@@ -40,6 +43,7 @@ Public Class MachinePageUC
m_ToolsDbPageUC.SetValue(Grid.RowProperty, 1) m_ToolsDbPageUC.SetValue(Grid.RowProperty, 1)
m_MachiningDbPageUC.SetValue(Grid.RowProperty, 1) m_MachiningDbPageUC.SetValue(Grid.RowProperty, 1)
m_PolishingsPageUC.SetValue(Grid.RowProperty, 1) m_PolishingsPageUC.SetValue(Grid.RowProperty, 1)
m_WaterJetPageUC.SetValue(Grid.RowProperty, 1)
m_MachineCNPageUC.SetValue(Grid.RowProperty, 1) m_MachineCNPageUC.SetValue(Grid.RowProperty, 1)
m_StatisticsPageUC.SetValue(Grid.RowProperty, 1) m_StatisticsPageUC.SetValue(Grid.RowProperty, 1)
@@ -47,6 +51,7 @@ Public Class MachinePageUC
ToolsDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 6) ToolsDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 6)
MachiningDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 7) MachiningDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 7)
PolishingsBtn.Content = EgtMsg(91090) PolishingsBtn.Content = EgtMsg(91090)
WaterJetBtn.Content = EgtMsg(91128)
TestingPageBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 8) TestingPageBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 8)
StatisticsBtn.Content = EgtMsg(90709) StatisticsBtn.Content = EgtMsg(90709)
@@ -55,10 +60,14 @@ Public Class MachinePageUC
m_ActiveMachinePage = MachinePages.Alarms m_ActiveMachinePage = MachinePages.Alarms
' Se lucidature non abilitate, disattivo la pagina DB lucidature ' Se lucidature non abilitate, disattivo la pagina DB lucidature
If Not m_MainWindow.m_CurrentMachine.bPolishing Then If Not m_MainWindow.m_CurrentMachine.bPolishing Then
PolishingsBtn.IsEnabled = False PolishingsBtn.IsEnabled = False
End If End If
If Not m_MainWindow.m_CurrentMachine.bWaterJet Or Not m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
WaterJetBtn.IsEnabled = False
End If
' Se controllo numerico 0, disattivo la pagina macchina ' Se controllo numerico 0, disattivo la pagina macchina
If GetPrivateProfileInt(S_NUMERICALCONTROL, K_TYPE, 0, m_MainWindow.GetMachIniFile()) = 0 Then If GetPrivateProfileInt(S_NUMERICALCONTROL, K_TYPE, 0, m_MainWindow.GetMachIniFile()) = 0 Then
TestingPageBtn.IsEnabled = False TestingPageBtn.IsEnabled = False
@@ -134,6 +143,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC) MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_AlarmsPageUC) MachinePageGrid.Children.Add(m_AlarmsPageUC)
m_ActiveMachinePage = MachinePages.Alarms m_ActiveMachinePage = MachinePages.Alarms
Case MachinePages.WaterJet
' Verifica ed eventuale salvataggio Db Waterjet
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
AlarmsBtn.IsChecked = False
WaterJetBtn.IsChecked = True
Return
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
m_WaterJetPageUC.WaterJetPage_Reinitialize()
End If
' passo alla pagina Dati Macchina
AlarmsBtn.IsChecked = True
WaterJetBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
MachinePageGrid.Children.Add(m_AlarmsPageUC)
m_ActiveMachinePage = MachinePages.Alarms
Case MachinePages.MachineCN Case MachinePages.MachineCN
AlarmsBtn.IsChecked = True AlarmsBtn.IsChecked = True
TestingPageBtn.IsChecked = False TestingPageBtn.IsChecked = False
@@ -188,6 +213,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC) MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_ToolsDbPageUC) MachinePageGrid.Children.Add(m_ToolsDbPageUC)
m_ActiveMachinePage = MachinePages.ToolsDb m_ActiveMachinePage = MachinePages.ToolsDb
Case MachinePages.WaterJet
'Verifica ed eventuale salvataggio Db Waterjet
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
ToolsDBBtn.IsChecked = False
WaterJetBtn.IsChecked = True
Return
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
m_WaterJetPageUC.WaterJetPage_Reinitialize()
End If
' passo alla pagina Dati Macchina
ToolsDBBtn.IsChecked = True
WaterJetBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
MachinePageGrid.Children.Add(m_ToolsDbPageUC)
m_ActiveMachinePage = MachinePages.ToolsDb
Case MachinePages.MachineCN Case MachinePages.MachineCN
ToolsDBBtn.IsChecked = True ToolsDBBtn.IsChecked = True
TestingPageBtn.IsChecked = False TestingPageBtn.IsChecked = False
@@ -242,6 +283,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC) MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_MachiningDbPageUC) MachinePageGrid.Children.Add(m_MachiningDbPageUC)
m_ActiveMachinePage = MachinePages.MachiningDb m_ActiveMachinePage = MachinePages.MachiningDb
Case MachinePages.WaterJet
' Verifica ed eventuale salvataggio Db Waterjet
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
MachiningDBBtn.IsChecked = False
WaterJetBtn.IsChecked = True
Return
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
m_WaterJetPageUC.WaterJetPage_Reinitialize()
End If
' passo alla pagina Dati Macchina
MachiningDBBtn.IsChecked = True
WaterJetBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
MachinePageGrid.Children.Add(m_MachiningDbPageUC)
m_ActiveMachinePage = MachinePages.MachiningDb
Case MachinePages.MachineCN Case MachinePages.MachineCN
MachiningDBBtn.IsChecked = True MachiningDBBtn.IsChecked = True
TestingPageBtn.IsChecked = False TestingPageBtn.IsChecked = False
@@ -299,6 +356,22 @@ Public Class MachinePageUC
m_ActiveMachinePage = MachinePages.Polishings m_ActiveMachinePage = MachinePages.Polishings
Case MachinePages.Polishings Case MachinePages.Polishings
PolishingsBtn.IsChecked = True PolishingsBtn.IsChecked = True
Case MachinePages.WaterJet
' Verifica ed eventuale salvataggio Db Waterjet
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
PolishingsBtn.IsChecked = False
WaterJetBtn.IsChecked = True
Return
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
m_WaterJetPageUC.WaterJetPage_Reinitialize()
End If
' passo alla pagina Dati Macchina
PolishingsBtn.IsChecked = True
WaterJetBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
MachinePageGrid.Children.Add(m_PolishingsPageUC)
m_ActiveMachinePage = MachinePages.Polishings
Case MachinePages.MachineCN Case MachinePages.MachineCN
PolishingsBtn.IsChecked = True PolishingsBtn.IsChecked = True
TestingPageBtn.IsChecked = False TestingPageBtn.IsChecked = False
@@ -314,6 +387,77 @@ Public Class MachinePageUC
End Select End Select
End Sub End Sub
Private Sub WaterJetBtn_Click(sender As Object, e As RoutedEventArgs) Handles WaterJetBtn.Click
Select Case m_ActiveMachinePage
Case MachinePages.Alarms
AlarmsBtn.IsChecked = False
WaterJetBtn.IsChecked = True
MachinePageGrid.Children.Remove(m_AlarmsPageUC)
MachinePageGrid.Children.Add(m_WaterJetPageUC)
m_ActiveMachinePage = MachinePages.WaterJet
'DirectCast(m_WaterJetPageUC.DataContext, WaterjetDbWindowVM).RefreshDImensionPage()
Case MachinePages.ToolsDb
' Verifica ed eventuale salvataggio utensile corrente
If Not m_ToolsDbPageUC.SaveCurrTool() Then
PolishingsBtn.IsChecked = False
ToolsDBBtn.IsChecked = True
Return
End If
' salvo il DB utensili
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtTdbSave()
' passo alla pagina WaterJet
WaterJetBtn.IsChecked = True
ToolsDBBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_ToolsDbPageUC)
MachinePageGrid.Children.Add(m_WaterJetPageUC)
m_ActiveMachinePage = MachinePages.WaterJet
Case MachinePages.MachiningDb
' Verifica ed eventuale salvataggio lavorazione corrente
If Not m_MachiningDbPageUC.SaveCurrMachining() Then
WaterJetBtn.IsChecked = False
MachiningDBBtn.IsChecked = True
Return
End If
' salvo il DB lavorazioni
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
EgtMdbSave()
' passo alla pagina WaterJet
WaterJetBtn.IsChecked = True
MachiningDBBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_MachiningDbPageUC)
MachinePageGrid.Children.Add(m_WaterJetPageUC)
m_ActiveMachinePage = MachinePages.WaterJet
Case MachinePages.Polishings
' Verifica ed eventuale salvataggio Lucidatura corrente
If Not m_PolishingsPageUC.SaveKit() Then
WaterJetBtn.IsChecked = False
PolishingsBtn.IsChecked = True
Return
End If
' passo alla pagina WaterJet
WaterJetBtn.IsChecked = True
PolishingsBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_WaterJetPageUC)
m_ActiveMachinePage = MachinePages.WaterJet
Case MachinePages.WaterJet
WaterJetBtn.IsChecked = True
Case MachinePages.MachineCN
WaterJetBtn.IsChecked = True
TestingPageBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_MachineCNPageUC)
MachinePageGrid.Children.Add(m_WaterJetPageUC)
m_ActiveMachinePage = MachinePages.WaterJet
Case MachinePages.Statistics
WaterJetBtn.IsChecked = True
StatisticsBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_StatisticsPageUC)
MachinePageGrid.Children.Add(m_WaterJetPageUC)
m_ActiveMachinePage = MachinePages.WaterJet
End Select
End Sub
Private Sub TestingPageBtn_Checked(sender As Object, e As RoutedEventArgs) Handles TestingPageBtn.Checked Private Sub TestingPageBtn_Checked(sender As Object, e As RoutedEventArgs) Handles TestingPageBtn.Checked
Select Case m_ActiveMachinePage Select Case m_ActiveMachinePage
Case MachinePages.Alarms Case MachinePages.Alarms
@@ -367,6 +511,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC) MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_MachineCNPageUC) MachinePageGrid.Children.Add(m_MachineCNPageUC)
m_ActiveMachinePage = MachinePages.MachineCN m_ActiveMachinePage = MachinePages.MachineCN
Case MachinePages.WaterJet
' Verifica ed eventuale salvataggio Db Waterjet
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
TestingPageBtn.IsChecked = False
WaterJetBtn.IsChecked = True
Return
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
m_WaterJetPageUC.WaterJetPage_Reinitialize()
End If
' passo alla pagina Dati Macchina
TestingPageBtn.IsChecked = True
WaterJetBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
MachinePageGrid.Children.Add(m_MachineCNPageUC)
m_ActiveMachinePage = MachinePages.MachineCN
Case MachinePages.MachineCN Case MachinePages.MachineCN
TestingPageBtn.IsChecked = True TestingPageBtn.IsChecked = True
Case MachinePages.Statistics Case MachinePages.Statistics
@@ -431,6 +591,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC) MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_StatisticsPageUC) MachinePageGrid.Children.Add(m_StatisticsPageUC)
m_ActiveMachinePage = MachinePages.Statistics m_ActiveMachinePage = MachinePages.Statistics
Case MachinePages.WaterJet
' Verifica ed eventuale salvataggio Db Waterjet
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
StatisticsBtn.IsChecked = False
WaterJetBtn.IsChecked = True
Return
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
m_WaterJetPageUC.WaterJetPage_Reinitialize()
End If
' passo alla pagina Dati Macchina
TestingPageBtn.IsChecked = True
WaterJetBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
MachinePageGrid.Children.Add(m_StatisticsPageUC)
m_ActiveMachinePage = MachinePages.Statistics
Case MachinePages.MachineCN Case MachinePages.MachineCN
StatisticsBtn.IsChecked = True StatisticsBtn.IsChecked = True
TestingPageBtn.IsChecked = False TestingPageBtn.IsChecked = False
@@ -467,6 +643,19 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC) MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_AlarmsPageUC) MachinePageGrid.Children.Add(m_AlarmsPageUC)
m_ActiveMachinePage = MachinePages.Alarms m_ActiveMachinePage = MachinePages.Alarms
Case MachinePages.WaterJet
' Verifica ed eventuale salvataggio Lucidatura corrente
'If Not m_PolishingsPageUC.SaveKit() Then
' AlarmsBtn.IsChecked = False
' PolishingsBtn.IsChecked = True
' Return
'End If
' passo alla pagina Dati Macchina
AlarmsBtn.IsChecked = True
WaterJetBtn.IsChecked = False
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
MachinePageGrid.Children.Add(m_AlarmsPageUC)
m_ActiveMachinePage = MachinePages.Alarms
Case MachinePages.MachineCN Case MachinePages.MachineCN
AlarmsBtn.IsChecked = True AlarmsBtn.IsChecked = True
TestingPageBtn.IsChecked = False TestingPageBtn.IsChecked = False
+4 -2
View File
@@ -931,14 +931,16 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="11*"/> <ColumnDefinition Width="10*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Name="NewBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/> <Button Name="NewBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="SaveBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/> <Button Name="SaveBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="RemoveBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/> <Button Name="RemoveBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
<Button Name="ExportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="ImportBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
</Grid> </Grid>
</Grid> </Grid>
+286 -39
View File
@@ -3,6 +3,7 @@ Imports System.ComponentModel
Imports OmagCUT.TreeViewItem Imports OmagCUT.TreeViewItem
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib Imports EgtWPFLib
Imports EgtWPFLib5
Public Class MachiningDbPageUC Public Class MachiningDbPageUC
@@ -78,6 +79,8 @@ Public Class MachiningDbPageUC
NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 16) NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 16)
SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17) SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17)
RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18) RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18)
ExportBtn.Content = "Export"
ImportBtn.Content = "Import"
NameTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 1) NameTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 1)
DepthTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 2) DepthTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 2)
@@ -321,6 +324,193 @@ Public Class MachiningDbPageUC
End If End If
End Sub End Sub
Private Sub ExportBtn_Click(Sender As Object, e As RoutedEventArgs) Handles ExportBtn.Click
' contesto corrente
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' creo lista lavorazioni per esportazione
Dim MachiningToExportList As New ObservableCollection(Of ImpExpMachiningFamily)
Dim Family As CathegoryItem
Dim Machining As CustomItem
For Each Family In MachiningsList
Dim ImpExpMachiningFamily As New ImpExpMachiningFamily(Family.Name, Family.nTType)
For Each Machining In Family.Items
ImpExpMachiningFamily.MachiningList.Add(New ImpExpMachiningItem(Machining.Name, False))
Next
MachiningToExportList.Add(ImpExpMachiningFamily)
Next
Dim ExportWndVM As New ImportExportMachiningWindowVM(MachiningToExportList, true)
Dim ExportWnd As New ImportExportMachiningWindowWD(Application.Current.MainWindow, ExportWndVM)
ExportWnd.ShowDialog()
End Sub
Private Sub ImoportBtn_Click() Handles ImportBtn.Click
' contesto corrente
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' apro dialogo di scelta file
Dim ImportFileDlg As New Microsoft.Win32.OpenFileDialog() With {
.Title = EgtMsg(31161) & " " & EgtMsg(31163),
.DefaultExt = ".data",
.Filter = "Machinings (.data)|*.data",
.CheckFileExists = True,
.ValidateNames = True
}
If ImportFileDlg.ShowDialog() <> True Then Return
Dim ImportFilePath As String = ImportFileDlg.FileName
' recupero liste utensili da importare
Dim ImportFileMachiningNameList As String() = Nothing
Dim ImportFileMachiningFamilyList As Integer() = Nothing
If Not EgtMdbToBeImported(ImportFilePath, ImportFileMachiningNameList, ImportFileMachiningFamilyList) Then Return
' li inserisco in lista per finestra di scelta
Dim MachinigToImportList As New ObservableCollection(Of ImpExpMachiningFamily)
' creo famiglie di utensili in base a quelle trovate in lista importata
For MachiningIndex As Integer = 0 To ImportFileMachiningNameList.Count - 1
Dim MachiningName As String = ImportFileMachiningNameList(MachiningIndex)
Dim MachiningFamily As Integer = ImportFileMachiningFamilyList(MachiningIndex)
MachiningFamily = MachiningFamily And
(MCH_MY.DRILLING Or
MCH_MY.SAWING Or
MCH_MY.MILLING Or
MCH_MY.POCKETING Or
MCH_MY.MORTISING Or
MCH_MY.SAWROUGHING Or
MCH_MY.SAWFINISHING Or
MCH_MY.GENMACHINING Or
MCH_MY.CHISELING Or
MCH_MY.SURFROUGHING Or
MCH_MY.SURFFINISHING Or
MCH_MY.WATERJETTING)
Dim bFounded As Boolean = False
Dim MachinigToImportFamily As ImpExpMachiningFamily
For Each MachinigToImportFamily In MachinigToImportList
If (MachiningFamily = MachinigToImportFamily.FamilyType) Then
MachinigToImportFamily.MachiningList.Add(New ImpExpMachiningItem(MachiningName, AlreadyExist(MachiningName)))
bFounded = True
Exit For
End If
Next
If Not bFounded Then
Dim NewFamily As New ImpExpMachiningFamily(GetMachiningFamilyName(MachiningFamily), MachiningFamily)
NewFamily.MachiningList.Add(New ImpExpMachiningItem(MachiningName, AlreadyExist(MachiningName)))
MachinigToImportList.Add(NewFamily)
End If
Next
Dim ImportWndVM As New ImportExportMachiningWindowVM(MachinigToImportList, False, ImportFilePath, ImportFileMachiningNameList)
Dim ImportWnd As New ImportExportMachiningWindowWD(Application.Current.MainWindow, ImportWndVM)
ImportWnd.ShowDialog()
' Aggiungo all'albero visualizzato gli utensili appena importati
If ImportWnd.OkResult Then
LoadImportedMachineMachinings(ImportWndVM.vsImported)
End If
End Sub
Private Function AlreadyExist(MachiningName As String) As Boolean
Dim MachiningFamily As CathegoryItem
For Each MachiningFamily In MachiningsList
Dim MachiningItem As CustomItem
For Each MachiningItem In MachiningFamily.Items
If MachiningName = MachiningItem.Name Then
Return True
End If
Next
Next
Return False
End Function
Private Function GetMachiningFamilyName(NewMachinigFamily As Integer) As String
Dim MachiningFamily As CathegoryItem
For Each MachiningFamily In MachiningsList
If NewMachinigFamily = MachiningFamily.nTType Then
Return MachiningFamily.Name
End If
Next
Return ""
End Function
Private Sub LoadImportedMachineMachinings(vsImportedMachinings As String())
' Leggo tutte le lavorazioni presenti nella Macchina (quindi anche quelli appena importati).
Dim ActiveMachiningsFamilies() As MachiningsType = MyReadMachiningFamilies(m_MainWindow.m_CurrentMachine.sMachIniFile)
Dim MachiningsFamilyIndex As Integer = 0
Dim MachiningsFamilyItem As MachiningsType
For Each MachiningsFamilyItem In ActiveMachiningsFamilies
Dim FamilyTreeView As New CathegoryItem(MachiningsFamilyItem.Name, MachiningsFamilyItem.Id)
Dim MachiningFamilyItem = MachiningsList.FirstOrDefault(Function(MachiningFamily) MachiningsFamilyItem.Id = MachiningFamily.nTType)
If IsNothing(MachiningFamilyItem) Then
MachiningsList.Insert(MachiningsFamilyIndex, FamilyTreeView)
End If
Dim nType As Integer = 0
Dim MachiningName As String = String.Empty
Dim MachiningIndex As Integer = 0
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Dim bFound As Boolean = EgtMdbGetFirstMachining(MachiningsFamilyItem.Id, MachiningName)
While bFound
Dim MachiningItem = MachiningsList(MachiningsFamilyIndex).Items.FirstOrDefault(Function(Machining) Machining.Name = MachiningName)
Dim bInList As Boolean = vsImportedMachinings.Contains(MachiningName)
If bInList Then
' Se una lavorazione è presente nella MachiningsList visualizzata ma nel contempo è nell'array vsImported
' vuol dire che è stata sovrascritta perciò la rimuovo
MachiningsList(MachiningsFamilyIndex).Items.Remove(MachiningsList(MachiningsFamilyIndex).Items.FirstOrDefault(Function(Machining) Machining.Name = MachiningName))
End If
If bInList OrElse IsNothing(MachiningItem) Then
' recupero tuuid
EgtMdbSetCurrMachining(MachiningName)
Dim sCurrMachTUUID As String = String.Empty
EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sCurrMachTUUID)
' aggiungo la lavorazione importata
MachiningsList(MachiningsFamilyIndex).Items.Insert(MachiningIndex, New CustomItem(MachiningName, MachiningsFamilyItem.Id, ToolDbUtility.IsToolInDb(sCurrMachTUUID)))
' eventualmente evidezio l'ultimo elemento inserito (ERRORE: non espando l'albero)
'MachiningsList(MachiningsFamilyIndex).Items(MachiningIndex).IsSelected = True
End If
MachiningIndex += 1
bFound = EgtMdbGetNextMachining(MachiningsFamilyItem.Id, MachiningName)
End While
MachiningsFamilyIndex += 1
Next
End Sub
Public Function MyReadMachiningFamilies(sMachineIniPath As String) As MachiningsType()
Dim ActiveMachiningsFamiliesList As New List(Of MachiningsType)
' Se il materiale lavorato è Marmo l'ordine di lettura e inserimento di Foratura e Taglio di lama nelle famiglie di lavorazioni attive è invertito
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SAWING, .Name = EgtMsg(31200 + 2)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_DRILLING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.DRILLING, .Name = EgtMsg(31200 + 1)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MILLING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.MILLING, .Name = EgtMsg(31200 + 3)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_POCKETING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.POCKETING, .Name = EgtMsg(31200 + 4)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MORTISING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.MORTISING, .Name = EgtMsg(31200 + 5)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWROUGHING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SAWROUGHING, .Name = EgtMsg(31200 + 6)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWFINISHING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SAWFINISHING, .Name = EgtMsg(31200 + 7)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_GENMACHINING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.GENMACHINING, .Name = EgtMsg(31200 + 8)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_CHISELING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.CHISELING, .Name = EgtMsg(31200 + 9)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SURFFINISHING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SURFFINISHING, .Name = EgtMsg(31211)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_WATERJETTING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.WATERJETTING, .Name = EgtMsg(31210)})
End If
Return ActiveMachiningsFamiliesList.ToArray
End Function
Private Sub InitializeMachiningFamily(bEnabled As Boolean, nFType As Integer, sFName As String) Private Sub InitializeMachiningFamily(bEnabled As Boolean, nFType As Integer, sFName As String)
If Not bEnabled Then Return If Not bEnabled Then Return
' Inserisco categoria ed eventuali elementi ' Inserisco categoria ed eventuali elementi
@@ -362,12 +552,15 @@ Public Class MachiningDbPageUC
HeadSideCmBx.SelectedIndex = ToolInt - 1 HeadSideCmBx.SelectedIndex = ToolInt - 1
EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, ToolInt) EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, ToolInt)
If LeadInTypeCmBx.Items.Count > 0 Then If LeadInTypeCmBx.Items.Count > 0 Then
LeadInTypeCmBx.SelectedItem = LeadInTypeCmBx.Items(0) LeadInTypeCmBx.SelectedItem = LeadInTypeCmBx.Items(0)
Else Else
LeadInTypeCmBx.SelectedItem = Nothing LeadInTypeCmBx.SelectedItem = Nothing
End If End If
For Each LInType As IdNameStruct In LeadInTypeCmBx.Items For Each LInType As IdNameStruct In LeadInTypeCmBx.Items
If ToolInt = LInType.Id Then LeadInTypeCmBx.SelectedItem = LInType If ToolInt = LInType.Id Then
LeadInTypeCmBx.SelectedItem = LInType
Exit For
End If
Next Next
EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, ToolInt) EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, ToolInt)
ExtLinkTypeCmBx.SelectedIndex = ToolInt ExtLinkTypeCmBx.SelectedIndex = ToolInt
@@ -515,7 +708,11 @@ Public Class MachiningDbPageUC
' Lista materiali ' Lista materiali
m_MaterialsList.Clear() m_MaterialsList.Clear()
For Each Material As Material In m_MainWindow.m_CurrentMachine.Materials For Each Material As Material In m_MainWindow.m_CurrentMachine.Materials
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName)) If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName, Material.SubId))
Else
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName))
End If
Next Next
EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, ToolString) EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, ToolString)
If ToolString <> String.Empty Then If ToolString <> String.Empty Then
@@ -523,14 +720,30 @@ Public Class MachiningDbPageUC
Dim Index As Integer = 0 Dim Index As Integer = 0
For Each Material As MachiningMaterial In m_MaterialsList For Each Material As MachiningMaterial In m_MaterialsList
Dim Param() As String = sItems(Index).Split(",".ToCharArray) Dim Param() As String = sItems(Index).Split(",".ToCharArray)
Dim SubParam() As String = Param(0).Split(".".ToCharArray)
Dim nParId As Integer = 0 Dim nParId As Integer = 0
If StringToInt(Param(0), nParId) AndAlso nParId = Material.nId Then Dim nSubParId As Integer = 0
StringToDouble(Param(1), Material.dMinThickness) If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
StringToDouble(Param(2), Material.dMaxThickness) If StringToInt(SubParam(0), nParId) AndAlso nParId = Material.nId AndAlso SubParam.Count > 1 AndAlso
Material.VerifyIfActive() StringToInt(SubParam(1), nSubParId) AndAlso nSubParId = Material.nSubId Then
Index += 1
StringToDouble(Param(1), Material.dMinThickness)
StringToDouble(Param(2), Material.dMaxThickness)
Material.VerifyIfActive()
Index += 1
Else
Material.VerifyIfActive()
End If
Else Else
Material.VerifyIfActive() If StringToInt(Param(0), nParId) AndAlso nParId = Material.nId Then
StringToDouble(Param(1), Material.dMinThickness)
StringToDouble(Param(2), Material.dMaxThickness)
Material.VerifyIfActive()
Index += 1
Else
Material.VerifyIfActive()
End If
End If End If
Next Next
End If End If
@@ -609,13 +822,13 @@ Public Class MachiningDbPageUC
' Parmetri nascosti di svuotatura ' Parmetri nascosti di svuotatura
If nMachiningType = MCH_MY.POCKETING Then If nMachiningType = MCH_MY.POCKETING Then
EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT) EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT)
EgtMdbSetCurrMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.HELIX) ' EgtMdbSetCurrMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.HELIX)
Dim dToolDiam As Double = 100 Dim dToolDiam As Double = 100
If Not IsNothing(ToolCmBx.SelectedItem) Then If Not IsNothing(ToolCmBx.SelectedItem) Then
EgtTdbSetCurrTool( ToolCmBx.SelectedItem.ToString()) EgtTdbSetCurrTool( ToolCmBx.SelectedItem.ToString())
EgtTdbGetCurrToolParam( MCH_TP.DIAM, dToolDiam) EgtTdbGetCurrToolParam( MCH_TP.DIAM, dToolDiam)
End If End If
EgtMdbSetCurrMachiningParam( MCH_MP.LITANG, 0.495 * dToolDiam) EgtMdbSetCurrMachiningParam(MCH_MP.LITANG, 0.99 * dToolDiam)
EgtMdbSetCurrMachiningParam( MCH_MP.LIELEV, 2.0) EgtMdbSetCurrMachiningParam( MCH_MP.LIELEV, 2.0)
End If End If
' Parametri WaterJetting ' Parametri WaterJetting
@@ -684,8 +897,14 @@ Public Class MachiningDbPageUC
' Scrivo stringa materiali da lista ' Scrivo stringa materiali da lista
Dim sMaterialString As String = String.Empty Dim sMaterialString As String = String.Empty
For Each Material As MachiningMaterial In m_MaterialsList For Each Material As MachiningMaterial In m_MaterialsList
If Material.bIsActive Then If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
sMaterialString += Material.nId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";" If Material.bIsActive Then
sMaterialString += Material.nId.ToString & "." & Material.nSubId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";"
End If
Else
If Material.bIsActive Then
sMaterialString += Material.nId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";"
End If
End If End If
Next Next
EgtMdbSetCurrMachiningParam(MCH_MP.SYSNOTES, sMaterialString) EgtMdbSetCurrMachiningParam(MCH_MP.SYSNOTES, sMaterialString)
@@ -922,30 +1141,26 @@ Public Class MachiningDbPageUC
' Definizione della grid TypeGrd con la giusta altezza e numero di righe ' Definizione della grid TypeGrd con la giusta altezza e numero di righe
Dim RowNum As Integer = TypeGrd.RowDefinitions.Count Dim RowNum As Integer = TypeGrd.RowDefinitions.Count
If RowNum > 2 Then If RowNum > 2 Then
' elimino eventuali righe in eccesso
For Index As Integer = RowNum - 1 To 2 Step -1 For Index As Integer = RowNum - 1 To 2 Step -1
TypeGrd.RowDefinitions.RemoveAt(Index) TypeGrd.RowDefinitions.RemoveAt(Index)
Next Next
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
ElseIf RowNum < 2 Then ElseIf RowNum < 2 Then
' costruiso una riga in più da inserire ' costruiso una riga in più da inserire
Dim Row As New RowDefinition Dim Row As New RowDefinition
TypeGrd.RowDefinitions.Add(Row) TypeGrd.RowDefinitions.Add(Row)
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
End If End If
LeadInTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 0)
LeadInTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible
LeadInTypeCmBx.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible
ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden
@@ -1563,7 +1778,7 @@ Public Class MachiningDbPageUC
StepTypeTxBl.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Hidden
StepTypeCmBx.Visibility = Windows.Visibility.Hidden StepTypeCmBx.Visibility = Windows.Visibility.Hidden
SideBrd.SetValue(Grid.RowProperty, 9) SideBrd.SetValue(Grid.RowProperty, 9)
SideBrd.Visibility = Windows.Visibility.Visible SideBrd.Visibility = Windows.Visibility.Hidden
WorkSideTxBl.Visibility = Windows.Visibility.Hidden WorkSideTxBl.Visibility = Windows.Visibility.Hidden
WorkSideCmBx.Visibility = Windows.Visibility.Hidden WorkSideCmBx.Visibility = Windows.Visibility.Hidden
HeadSideTxBl.Visibility = Windows.Visibility.Hidden HeadSideTxBl.Visibility = Windows.Visibility.Hidden
@@ -1575,15 +1790,22 @@ Public Class MachiningDbPageUC
For Index As Integer = RowNum - 1 To 2 Step -1 For Index As Integer = RowNum - 1 To 2 Step -1
TypeGrd.RowDefinitions.RemoveAt(Index) TypeGrd.RowDefinitions.RemoveAt(Index)
Next Next
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2) ElseIf RowNum < 2 Then
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3) ' costruiso una riga in più da inserire
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1) Dim Row As New RowDefinition
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2) TypeGrd.RowDefinitions.Add(Row)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
End If End If
LeadInTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 0)
LeadInTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible
LeadInTypeCmBx.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible
ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden
@@ -2068,6 +2290,16 @@ Public Class MachiningDbPageUC
Private Sub MaxThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MaxThicknessTxBx.EgtClosed Private Sub MaxThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MaxThicknessTxBx.EgtClosed
Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem
Dim dMaxThick As Double = 0
If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
' solo per water jet controllo lo spessore massimo ammissibile
dMaxThick = m_MainWindow.m_CurrentMachine.GetMaxThicknessCurrMaterial(SelectedMaterial.Name)
Dim dVal As Double
StringToLen(MaxThicknessTxBx.Text, dVal)
If dVal > dMaxThick Then
MaxThicknessTxBx.Text = LenToString(dMaxThick, 3)
End If
End If
StringToLen(MaxThicknessTxBx.Text, SelectedMaterial.dMaxThickness) StringToLen(MaxThicknessTxBx.Text, SelectedMaterial.dMaxThickness)
SelectedMaterial.VerifyIfActive() SelectedMaterial.VerifyIfActive()
End Sub End Sub
@@ -2143,7 +2375,6 @@ Public Class MachiningDbPageUC
Case MCH_MY.POCKETING Case MCH_MY.POCKETING
LeadInTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)( LeadInTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)(
{New IdNameStruct(MCH_POCK_LI.NONE, EgtMsg(MSG_COMBOBOXPARAM + 42)), {New IdNameStruct(MCH_POCK_LI.NONE, EgtMsg(MSG_COMBOBOXPARAM + 42)),
New IdNameStruct(MCH_POCK_LI.GLIDE, EgtMsg(MSG_COMBOBOXPARAM + 48)),
New IdNameStruct(MCH_POCK_LI.ZIGZAG, EgtMsg(MSG_COMBOBOXPARAM + 38)), New IdNameStruct(MCH_POCK_LI.ZIGZAG, EgtMsg(MSG_COMBOBOXPARAM + 38)),
New IdNameStruct(MCH_POCK_LI.HELIX, EgtMsg(MSG_COMBOBOXPARAM + 49))}) New IdNameStruct(MCH_POCK_LI.HELIX, EgtMsg(MSG_COMBOBOXPARAM + 49))})
LeadOutTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)( LeadOutTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)(
@@ -2215,6 +2446,7 @@ Class MachiningMaterial
Implements INotifyPropertyChanged Implements INotifyPropertyChanged
Private m_nId As Integer Private m_nId As Integer
Private m_nSubId As Integer
Private m_sName As String Private m_sName As String
Private m_dMinThickness As Double Private m_dMinThickness As Double
Private m_dMaxThickness As Double Private m_dMaxThickness As Double
@@ -2226,6 +2458,12 @@ Class MachiningMaterial
End Get End Get
End Property End Property
Public ReadOnly Property nSubId As Integer
Get
Return m_nSubId
End Get
End Property
Public ReadOnly Property Name As String Public ReadOnly Property Name As String
Get Get
Return m_sName Return m_sName
@@ -2264,6 +2502,15 @@ Class MachiningMaterial
m_bIsActive = False m_bIsActive = False
End Sub End Sub
Sub New(nId As Integer, sName As String, nSubId As Integer)
m_nId = nId
m_nSubId = nSubId
m_sName = sName
m_dMinThickness = 0
m_dMaxThickness = 0
m_bIsActive = False
End Sub
Public Sub VerifyIfActive() Public Sub VerifyIfActive()
Dim bIsActive As Boolean = ( m_dMaxThickness > m_dMinThickness + EPS_SMALL) Dim bIsActive As Boolean = ( m_dMaxThickness > m_dMinThickness + EPS_SMALL)
If bIsActive <> m_bIsActive Then If bIsActive <> m_bIsActive Then
+43 -17
View File
@@ -158,6 +158,9 @@
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
@@ -165,10 +168,12 @@
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/> <RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!--Decrizione immagini-->
<Border Grid.Row="1" Grid.Column="1" Margin="10"> <Border Grid.Row="1" Grid.Column="1" Margin="10">
<Image Source="../Resources/Contour.png" Stretch="Uniform"/> <Image Source="../Resources/Contour.png" Stretch="Uniform"/>
</Border> </Border>
@@ -178,24 +183,45 @@
<Border Grid.Row="3" Grid.Column="1" Margin="10"> <Border Grid.Row="3" Grid.Column="1" Margin="10">
<Image Source="../Resources/ZigZagY.png" Stretch="Uniform"/> <Image Source="../Resources/ZigZagY.png" Stretch="Uniform"/>
</Border> </Border>
<Border Grid.Row="4" Grid.Column="1" Margin="10">
<Image Source="../Resources/Spiral.png" Stretch="Uniform"/>
</Border>
<TextBlock Name="MotionTxBl" Grid.Row="0" Grid.Column="1" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="30,0" HorizontalAlignment="Center"/> <!--Titolazione colonne-->
<TextBlock Name="RepeatTxBl" Grid.Row="0" Grid.Column="2" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="30,0" HorizontalAlignment="Center"/> <TextBlock Name="MotionTxBl" Grid.Row="0" Grid.Column="1" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="5,0" HorizontalAlignment="Center"/>
<TextBlock Name="StepTxBl" Grid.Row="0" Grid.Column="3" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="30,0" HorizontalAlignment="Center"/> <TextBlock Name="RepeatTxBl" Grid.Row="0" Grid.Column="2" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="5,0" HorizontalAlignment="Center"/>
<TextBlock Name="OffSetTxBl" Grid.Row="0" Grid.Column="4" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="30,0" HorizontalAlignment="Center"/> <TextBlock Name="StepTxBl" Grid.Row="0" Grid.Column="3" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="5,0" HorizontalAlignment="Center"/>
<TextBlock Name="OffSetTxBl" Grid.Row="0" Grid.Column="4" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="5,0" HorizontalAlignment="Center"/>
<TextBlock Name="RadiusTxBl" Grid.Row="0" Grid.Column="5" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="5,0" HorizontalAlignment="Center"/>
<TextBlock Name="DistanceTxBl" Grid.Row="0" Grid.Column="6" Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="5,0" HorizontalAlignment="Center"/>
<EgtWPFLib:EgtTextBox Name="ContourTxBx" Grid.Row="1" Grid.Column="2" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <!--Contornatura-->
<EgtWPFLib:EgtTextBox Name="OffContourTxBx" Grid.Row="1" Grid.Column="4" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="ContourTxBx" Grid.Row="1" Grid.Column="2" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="OffContourTxBx" Grid.Row="1" Grid.Column="4" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="ZigZagXTxBx" Grid.Row="2" Grid.Column="2" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <!--Cammino orizzontale X-->
<EgtWPFLib:EgtTextBox Name="StepXTxBx" Grid.Row="2" Grid.Column="3" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="ZigZagXTxBx" Grid.Row="2" Grid.Column="2" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="OffZigZagXTxBx" Grid.Row="2" Grid.Column="4" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="StepXTxBx" Grid.Row="2" Grid.Column="3" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="OffZigZagXTxBx" Grid.Row="2" Grid.Column="4" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="ZigZagYTxBx" Grid.Row="3" Grid.Column="2" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="RadiusXTxBx" Grid.Row="2" Grid.Column="5" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0" Visibility="Collapsed"/>
<EgtWPFLib:EgtTextBox Name="StepYTxBx" Grid.Row="3" Grid.Column="3" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="DistanceXTxBx" Grid.Row="2" Grid.Column="6" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0" Visibility="Collapsed"/>
<EgtWPFLib:EgtTextBox Name="OffZigZagYTxBx" Grid.Row="3" Grid.Column="4" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/>
<GroupBox Name="LiLoGpBx" Grid.Row="4" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="3" Style="{DynamicResource OmagCut_GroupBox}"> <!--Cammino verticale Y-->
<EgtWPFLib:EgtTextBox Name="ZigZagYTxBx" Grid.Row="3" Grid.Column="2" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="StepYTxBx" Grid.Row="3" Grid.Column="3" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="OffZigZagYTxBx" Grid.Row="3" Grid.Column="4" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="RadiusYTxBx" Grid.Row="3" Grid.Column="5" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0" Visibility="Collapsed"/>
<EgtWPFLib:EgtTextBox Name="DistanceYTxBx" Grid.Row="3" Grid.Column="6" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0" Visibility="Collapsed"/>
<!--Cammino a spirale-->
<EgtWPFLib:EgtTextBox Name="SpiralTxBx" Grid.Row="4" Grid.Column="2" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="StepSpiralTxBx" Grid.Row="4" Grid.Column="3" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="OffSpiralTxBx" Grid.Row="4" Grid.Column="4" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="RadiusSpiralTxBx" Grid.Row="4" Grid.Column="5" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<EgtWPFLib:EgtTextBox Name="DistanceSpiralTxBx" Grid.Row="4" Grid.Column="6" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<!--Parametri di lavoro condivisi-->
<GroupBox Name="LiLoGpBx" Grid.Row="5" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="5" Style="{DynamicResource OmagCut_GroupBox}">
<Grid Name="LiLoGrd"> <Grid Name="LiLoGrd">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
@@ -212,11 +238,11 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Name="LiLenTxBl" Grid.Row="1" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> <TextBlock Name="LiLenTxBl" Grid.Row="1" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="LiLenTxBx" Grid.Row="1" Grid.Column="1" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="LiLenTxBx" Grid.Row="1" Grid.Column="1" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<TextBlock Name="LiHeightTxBl" Grid.Row="1" Grid.Column="2" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> <TextBlock Name="LiHeightTxBl" Grid.Row="1" Grid.Column="2" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="LiHeightTxBx" Grid.Row="1" Grid.Column="3" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="LiHeightTxBx" Grid.Row="1" Grid.Column="3" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
<TextBlock Name="LiLoadTxBl" Grid.Row="3" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/> <TextBlock Name="LiLoadTxBl" Grid.Row="3" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="LiLoadTxBx" Grid.Row="3" Grid.Column="1" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="30,0"/> <EgtWPFLib:EgtTextBox Name="LiLoadTxBx" Grid.Row="3" Grid.Column="1" Style="{DynamicResource OmagCut_CalculatorTextBox}" Margin="10,0"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
+427 -101
View File
@@ -61,6 +61,8 @@ Public Class PolishingsPageUC
RepeatTxBl.Text = EgtMsg(91093) ' Ripetizioni RepeatTxBl.Text = EgtMsg(91093) ' Ripetizioni
StepTxBl.Text = EgtMsg(90787) ' Passo StepTxBl.Text = EgtMsg(90787) ' Passo
OffSetTxBl.Text = EgtMsg(91089) ' Offset OffSetTxBl.Text = EgtMsg(91089) ' Offset
RadiusTxBl.Text = "Raggio"
DistanceTxBl.Text = "Distanza"
LiLoGpBx.Header = EgtMsg(91094) ' Attacco/Uscita LiLoGpBx.Header = EgtMsg(91094) ' Attacco/Uscita
LiLenTxBl.Text = EgtMsg(91097) ' Lunghezza LiLenTxBl.Text = EgtMsg(91097) ' Lunghezza
LiHeightTxBl.Text = EgtMsg(91095) ' Altezza LiHeightTxBl.Text = EgtMsg(91095) ' Altezza
@@ -452,7 +454,9 @@ Public Class PolishingsPageUC
If KitMachItem.m_IsModifiedId OrElse KitMachItem.m_IsModifiedToolUUID OrElse KitMachItem.m_IsModifiedToolName OrElse KitMachItem.m_IsModifiedSelTool OrElse If KitMachItem.m_IsModifiedId OrElse KitMachItem.m_IsModifiedToolUUID OrElse KitMachItem.m_IsModifiedToolName OrElse KitMachItem.m_IsModifiedSelTool OrElse
KitMachItem.m_IsModifiedActive OrElse KitMachItem.m_IsModifiedContour OrElse KitMachItem.m_IsModifiedOffCnt OrElse KitMachItem.m_IsModifiedZigZagX OrElse KitMachItem.m_IsModifiedActive OrElse KitMachItem.m_IsModifiedContour OrElse KitMachItem.m_IsModifiedOffCnt OrElse KitMachItem.m_IsModifiedZigZagX OrElse
KitMachItem.m_IsModifiedOffZigZagX OrElse KitMachItem.m_IsModifiedZigZagY OrElse KitMachItem.m_IsModifiedStepX OrElse KitMachItem.m_IsModifiedStepY OrElse KitMachItem.m_IsModifiedOffZigZagX OrElse KitMachItem.m_IsModifiedZigZagY OrElse KitMachItem.m_IsModifiedStepX OrElse KitMachItem.m_IsModifiedStepY OrElse
KitMachItem.m_IsModifiedOffZigZagY OrElse KitMachItem.m_IsModifiedLiLen OrElse KitMachItem.m_IsModifiedLiHeight OrElse KitMachItem.m_IsModifiedLiLoad Then KitMachItem.m_IsModifiedOffZigZagY OrElse KitMachItem.m_IsModifiedSpiral OrElse KitMachItem.m_IsModifiedOffSpiral OrElse KitMachItem.m_IsModifiedStepSpiral OrElse
KitMachItem.m_IsModifiedRadiusSpiral OrElse KitMachItem.m_IsModifiedDistanceSpiral OrElse KitMachItem.m_IsModifiedLiLen OrElse KitMachItem.m_IsModifiedLiHeight OrElse
KitMachItem.m_IsModifiedLiLoad Then
Return True Return True
End If End If
Next Next
@@ -476,10 +480,19 @@ Public Class PolishingsPageUC
KitMachItem.m_IsModifiedOffCnt = False KitMachItem.m_IsModifiedOffCnt = False
KitMachItem.m_IsModifiedZigZagX = False KitMachItem.m_IsModifiedZigZagX = False
KitMachItem.m_IsModifiedOffZigZagX = False KitMachItem.m_IsModifiedOffZigZagX = False
KitMachItem.m_IsModifiedRadiusX = False
KitMachItem.m_IsModifiedDistanceX = False
KitMachItem.m_IsModifiedZigZagY = False KitMachItem.m_IsModifiedZigZagY = False
KitMachItem.m_IsModifiedOffZigZagY = False KitMachItem.m_IsModifiedOffZigZagY = False
KitMachItem.m_IsModifiedRadiusY = False
KitMachItem.m_IsModifiedDistanceY = False
KitMachItem.m_IsModifiedSpiral = False
KitMachItem.m_IsModifiedOffSpiral = False
KitMachItem.m_IsModifiedRadiusSpiral = False
KitMachItem.m_IsModifiedDistanceSpiral = False
KitMachItem.m_IsModifiedStepX = False KitMachItem.m_IsModifiedStepX = False
KitMachItem.m_IsModifiedStepY = False KitMachItem.m_IsModifiedStepY = False
KitMachItem.m_IsModifiedStepSpiral = False
KitMachItem.m_IsModifiedLiLen = False KitMachItem.m_IsModifiedLiLen = False
KitMachItem.m_IsModifiedLiHeight = False KitMachItem.m_IsModifiedLiHeight = False
KitMachItem.m_IsModifiedLiLoad = False KitMachItem.m_IsModifiedLiLoad = False
@@ -493,20 +506,29 @@ Public Class PolishingsPageUC
OffContourTxBx.Text = LenToString(kmShow.dOffsetCnt, 3) OffContourTxBx.Text = LenToString(kmShow.dOffsetCnt, 3)
ZigZagXTxBx.Text = kmShow.nZigZagX.ToString() ZigZagXTxBx.Text = kmShow.nZigZagX.ToString()
OffZigZagXTxBx.Text = LenToString(kmShow.dOffZigZagX, 3) OffZigZagXTxBx.Text = LenToString(kmShow.dOffZigZagX, 3)
StepXTxBx.Text = LenToString( kmShow.dStepX, 3) StepXTxBx.Text = LenToString(kmShow.dStepX, 3)
RadiusXTxBx.Text = LenToString(kmShow.dRadiusX, 3)
DistanceXTxBx.Text = LenToString(kmShow.dDistanceX, 3)
ZigZagYTxBx.Text = kmShow.nZigZagY.ToString() ZigZagYTxBx.Text = kmShow.nZigZagY.ToString()
OffZigZagYTxBx.Text = LenToString(kmShow.dOffZigZagY, 3) OffZigZagYTxBx.Text = LenToString(kmShow.dOffZigZagY, 3)
StepYTxBx.Text = LenToString( kmShow.dStepY, 3) StepYTxBx.Text = LenToString(kmShow.dStepY, 3)
LiLenTxBx.Text = LenToString( kmShow.dLiLen, 3) RadiusYTxBx.Text = LenToString(kmShow.dRadiusY, 3)
LiHeightTxBx.Text = LenToString( kmShow.dLiHeight, 3) DistanceYTxBx.Text = LenToString(kmShow.dDistanceY, 3)
LiLoadTxBx.Text = LenToString( kmShow.dLiLoad, 3) SpiralTxBx.Text = kmShow.nSpiral.ToString()
StepSpiralTxBx.Text = LenToString(kmShow.dStepSpiral, 3)
OffSpiralTxBx.Text = LenToString(kmShow.dOffSpiral, 3)
RadiusSpiralTxBx.Text = LenToString(kmShow.dRadiusSpiral, 3)
DistanceSpiralTxBx.Text = LenToString(kmShow.dDistanceSpiral, 3)
LiLenTxBx.Text = LenToString(kmShow.dLiLen, 3)
LiHeightTxBx.Text = LenToString(kmShow.dLiHeight, 3)
LiLoadTxBx.Text = LenToString(kmShow.dLiLoad, 3)
End Sub End Sub
Private Sub KitMachsLstBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles KitMachsLstBx.SelectionChanged Private Sub KitMachsLstBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles KitMachsLstBx.SelectionChanged
Dim SelectedKitMach As KitMach = KitMachsLstBx.SelectedItem Dim SelectedKitMach As KitMach = KitMachsLstBx.SelectedItem
If Not IsNothing(SelectedKitMach) Then If Not IsNothing(SelectedKitMach) Then
' visualizzo i parametri relativi al KitMach selezionato ' visualizzo i parametri relativi al KitMach selezionato
ShowKitMach( SelectedKitMach) ShowKitMach(SelectedKitMach)
End If End If
End Sub End Sub
@@ -520,14 +542,16 @@ Public Class PolishingsPageUC
End Sub End Sub
Private Sub OffContourTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffContourTxBx.EgtClosed Private Sub OffContourTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffContourTxBx.EgtClosed
Dim nTemp As Integer = 0 Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then If Not IsNothing(KitMachsLstBx.SelectedItem) Then
nTemp = OffContourTxBx.Text StringToLen(OffContourTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dOffsetCnt = nTemp KitMachsLstBx.SelectedItem.dOffsetCnt = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dOffsetCnt = nTemp m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dOffsetCnt = dTemp
End If End If
End Sub End Sub
#Region "ZigZag X"
Private Sub ZigZagXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ZigZagXTxBx.EgtClosed Private Sub ZigZagXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ZigZagXTxBx.EgtClosed
Dim nTemp As Integer = 0 Dim nTemp As Integer = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then If Not IsNothing(KitMachsLstBx.SelectedItem) Then
@@ -538,11 +562,11 @@ Public Class PolishingsPageUC
End Sub End Sub
Private Sub OffZigZagXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffZigZagXTxBx.EgtClosed Private Sub OffZigZagXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffZigZagXTxBx.EgtClosed
Dim nTemp As Integer = 0 Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then If Not IsNothing(KitMachsLstBx.SelectedItem) Then
nTemp = OffZigZagXTxBx.Text StringToLen(OffZigZagXTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dOffZigZagX = nTemp KitMachsLstBx.SelectedItem.dOffZigZagX = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dOffZigZagX = nTemp m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dOffZigZagX = dTemp
End If End If
End Sub End Sub
@@ -555,6 +579,28 @@ Public Class PolishingsPageUC
End If End If
End Sub End Sub
Private Sub RadiusXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles RadiusXTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(RadiusXTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dRadiusX = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dRadiusX = dTemp
End If
End Sub
Private Sub DistanceXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles DistanceXTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(DistanceXTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dDistanceX = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dDistanceX = dTemp
End If
End Sub
#End Region ' ZigZag X
#Region "ZizZag Y"
Private Sub ZigZagYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ZigZagYTxBx.EgtClosed Private Sub ZigZagYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ZigZagYTxBx.EgtClosed
Dim nTemp As Integer = 0 Dim nTemp As Integer = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then If Not IsNothing(KitMachsLstBx.SelectedItem) Then
@@ -565,11 +611,11 @@ Public Class PolishingsPageUC
End Sub End Sub
Private Sub OffZigZagYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffZigZagYTxBx.EgtClosed Private Sub OffZigZagYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffZigZagYTxBx.EgtClosed
Dim nTemp As Integer = 0 Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then If Not IsNothing(KitMachsLstBx.SelectedItem) Then
nTemp = OffZigZagYTxBx.Text StringToLen(OffZigZagYTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dOffZigZagY = nTemp KitMachsLstBx.SelectedItem.dOffZigZagY = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dOffZigZagY = nTemp m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dOffZigZagY = dTemp
End If End If
End Sub End Sub
@@ -582,6 +628,75 @@ Public Class PolishingsPageUC
End If End If
End Sub End Sub
Private Sub RadiusYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles RadiusYTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(RadiusYTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dRadiusY = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dRadiusY = dTemp
End If
End Sub
Private Sub DistanceYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles DistanceYTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(DistanceYTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dDistanceY = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dDistanceY = dTemp
End If
End Sub
#End Region ' ZigZagY
#Region "Spirale"
Private Sub SpiralTxBx_EgtClosed(sender As Object, e As EventArgs) Handles SpiralTxBx.EgtClosed
Dim nTemp As Integer = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
nTemp = SpiralTxBx.Text
KitMachsLstBx.SelectedItem.nSpiral = nTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).nSpiral = nTemp
End If
End Sub
Private Sub OffSpiralTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffSpiralTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(OffSpiralTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dOffSpiral = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dOffSpiral = dTemp
End If
End Sub
Private Sub StepSpiralTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StepSpiralTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(StepSpiralTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dStepSpiral = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dStepSpiral = dTemp
End If
End Sub
Private Sub RadiusSpiralTxBx_EgtClosed(sender As Object, e As EventArgs) Handles RadiusSpiralTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(RadiusSpiralTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dRadiusSpiral = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dRadiusSpiral = dTemp
End If
End Sub
Private Sub DistanceSpiralTxBx_EgtClosed(sender As Object, e As EventArgs) Handles DistanceSpiralTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(DistanceSpiralTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dDistanceSpiral = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dDistanceSpiral = dTemp
End If
End Sub
#End Region ' Spirale
Private Sub LiLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles LiLenTxBx.EgtClosed Private Sub LiLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles LiLenTxBx.EgtClosed
Dim dTemp As Double = 0 Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then If Not IsNothing(KitMachsLstBx.SelectedItem) Then
@@ -616,11 +731,11 @@ Public Class PolishingsPageUC
End Sub End Sub
Private Sub ToolCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Private Sub ToolCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
If Not IsNothing( KitMachsLstBx.SelectedItem) Then If Not IsNothing(KitMachsLstBx.SelectedItem) Then
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).SelTool = KitMachsLstBx.SelectedItem.SelTool m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).SelTool = KitMachsLstBx.SelectedItem.SelTool
If KitMachsLstBx.SelectedItem.SelTool >= 0 then If KitMachsLstBx.SelectedItem.SelTool >= 0 Then
KitMachsLstBx.SelectedItem.sToolName = m_ToolList( KitMachsLstBx.SelectedItem.SelTool) KitMachsLstBx.SelectedItem.sToolName = m_ToolList(KitMachsLstBx.SelectedItem.SelTool)
KitMachsLstBx.SelectedItem.sToolUUID = m_ToolUuidList( KitMachsLstBx.SelectedItem.SelTool) KitMachsLstBx.SelectedItem.sToolUUID = m_ToolUuidList(KitMachsLstBx.SelectedItem.SelTool)
Else Else
KitMachsLstBx.SelectedItem.sToolName = "---" KitMachsLstBx.SelectedItem.sToolName = "---"
KitMachsLstBx.SelectedItem.sToolUUID = "---" KitMachsLstBx.SelectedItem.sToolUUID = "---"
@@ -630,143 +745,176 @@ Public Class PolishingsPageUC
End If End If
End Sub End Sub
Private Function ReadKitName( nKitIndex As Integer) As String Private Function ReadKitName(nKitIndex As Integer) As String
' Leggo il nome del kit ' Leggo il nome del kit
Dim sKey As String = K_KIT & nKitIndex.ToString("D2") Dim sKey As String = K_KIT & nKitIndex.ToString("D2")
Dim sName As String = "" Dim sName As String = ""
GetPrivateProfileString( S_HEADER, sKey, "", sName, m_sKitFile) GetPrivateProfileString(S_HEADER, sKey, "", sName, m_sKitFile)
Return sName Return sName
End Function End Function
Private Function ReadKit( nKitIndex As Integer, removeFlag As Boolean, ByRef Kit As Kit) As Boolean Private Function ReadKit(nKitIndex As Integer, removeFlag As Boolean, ByRef Kit As Kit) As Boolean
' Leggo il nome del kit ' Leggo il nome del kit
Dim sName As String = ReadKitName( nKitIndex) Dim sName As String = ReadKitName(nKitIndex)
If String.IsNullOrWhiteSpace( sName) Then Return False If String.IsNullOrWhiteSpace(sName) Then Return False
' Creo il kit ' Creo il kit
Kit = New Kit( If( removeFlag, nKitIndex - 1, nKitIndex), sName) Kit = New Kit(If(removeFlag, nKitIndex - 1, nKitIndex), sName)
' Leggo le sue lavorazioni ' Leggo le sue lavorazioni
For nkitMachIndex As Integer = 1 To 100 For nkitMachIndex As Integer = 1 To 100
Dim kmItem As KitMach = Nothing Dim kmItem As KitMach = Nothing
if ReadKitMach( sName, nkitMachIndex, kmItem) Then If ReadKitMach(sName, nkitMachIndex, kmItem) Then
Kit.AddKitMach( kmItem) Kit.AddKitMach(kmItem)
Else Else
Exit For Exit For
End If End If
Next Next
' Se non sono state trovate lavorazioni, ne aggiungo una standard ' Se non sono state trovate lavorazioni, ne aggiungo una standard
If Kit.KitMachList.Count() = 0 Then If Kit.KitMachList.Count() = 0 Then
Kit.AddKitMach( New KitMach( 1)) Kit.AddKitMach(New KitMach(1))
End If End If
Return True Return True
End Function End Function
Private Function ReadKitMach( sKitName As String, nKitMachIndex As Integer, ByRef kmItem As KitMach) As Boolean Private Function ReadKitMach(sKitName As String, nKitMachIndex As Integer, ByRef kmItem As KitMach) As Boolean
' Verifico esistenza lavorazione del kit ' Verifico esistenza lavorazione del kit
Dim sSect As String = S_KIT & "." & sKitName Dim sSect As String = S_KIT & "." & sKitName
Dim sKeyInd As String = nkitMachIndex.ToString("D2") & "." Dim sKeyInd As String = nKitMachIndex.ToString("D2") & "."
Dim sName As String = "" Dim sName As String = ""
If GetPrivateProfileString( sSect, sKeyInd & K_TOOLNAME, "", sName, m_sKitFile) = 0 Then Return False If GetPrivateProfileString(sSect, sKeyInd & K_TOOLNAME, "", sName, m_sKitFile) = 0 Then Return False
' Lettura completa ' Lettura completa
kmItem = New KitMach kmItem = New KitMach
kmItem.sToolName = sName kmItem.sToolName = sName
kmItem.nId = nkitMachIndex kmItem.nId = nKitMachIndex
GetPrivateProfileString( sSect, sKeyInd & K_TOOL, "", kmItem.sToolUUID, m_sKitFile) GetPrivateProfileString(sSect, sKeyInd & K_TOOL, "", kmItem.sToolUUID, m_sKitFile)
kmItem.bActive = ( GetPrivateProfileInt( sSect, sKeyInd & K_ACTIVE, 0, m_sKitFile) = 1) kmItem.bActive = (GetPrivateProfileInt(sSect, sKeyInd & K_ACTIVE, 0, m_sKitFile) = 1)
kmItem.nContour = GetPrivateProfileInt(sSect, sKeyInd & K_CONTOUR, 0, m_sKitFile) kmItem.nContour = GetPrivateProfileInt(sSect, sKeyInd & K_CONTOUR, 0, m_sKitFile)
kmItem.dOffsetCnt = GetPrivateProfileInt(sSect, sKeyInd & K_OFFSETCNT, 0, m_sKitFile) kmItem.dOffsetCnt = GetPrivateProfileDouble(sSect, sKeyInd & K_OFFSETCNT, 0, m_sKitFile)
kmItem.nZigZagX = GetPrivateProfileInt(sSect, sKeyInd & K_ZIGZAGX, 0, m_sKitFile) kmItem.nZigZagX = GetPrivateProfileInt(sSect, sKeyInd & K_ZIGZAGX, 0, m_sKitFile)
kmItem.dOffZigZagX = GetPrivateProfileInt(sSect, sKeyInd & K_OFFZIGZAGX, 0, m_sKitFile) kmItem.dOffZigZagX = GetPrivateProfileDouble(sSect, sKeyInd & K_OFFZIGZAGX, 0, m_sKitFile)
kmItem.dStepX = GetPrivateProfileDouble(sSect, sKeyInd & K_STEPX, 0, m_sKitFile) kmItem.dStepX = GetPrivateProfileDouble(sSect, sKeyInd & K_STEPX, 0, m_sKitFile)
kmItem.dRadiusX = GetPrivateProfileDouble(sSect, sKeyInd & K_RADIUSX, 0, m_sKitFile)
kmItem.dDistanceX = GetPrivateProfileDouble(sSect, sKeyInd & K_DISTANCEX, 0, m_sKitFile)
kmItem.nZigZagY = GetPrivateProfileInt(sSect, sKeyInd & K_ZIGZAGY, 0, m_sKitFile) kmItem.nZigZagY = GetPrivateProfileInt(sSect, sKeyInd & K_ZIGZAGY, 0, m_sKitFile)
kmItem.dOffZigZagY = GetPrivateProfileInt(sSect, sKeyInd & K_OFFZIGZAGY, 0, m_sKitFile) kmItem.dOffZigZagY = GetPrivateProfileDouble(sSect, sKeyInd & K_OFFZIGZAGY, 0, m_sKitFile)
kmItem.dStepY = GetPrivateProfileDouble( sSect, sKeyInd & K_STEPY, 0, m_sKitFile) kmItem.dStepY = GetPrivateProfileDouble(sSect, sKeyInd & K_STEPY, 0, m_sKitFile)
kmItem.dLiLen = GetPrivateProfileDouble( sSect, sKeyInd & K_LILEN, 0, m_sKitFile) kmItem.dRadiusY = GetPrivateProfileDouble(sSect, sKeyInd & K_RADIUSY, 0, m_sKitFile)
kmItem.dLiHeight = GetPrivateProfileDouble( sSect, sKeyInd & K_LIHEIGHT, 0, m_sKitFile) kmItem.dDistanceY = GetPrivateProfileDouble(sSect, sKeyInd & K_DISTANCEY, 0, m_sKitFile)
kmItem.dLiLoad = GetPrivateProfileDouble( sSect, sKeyInd & K_LILOAD, 0, m_sKitFile)
kmItem.nSpiral = GetPrivateProfileInt(sSect, sKeyInd & K_SPIRAL, 0, m_sKitFile)
kmItem.dOffSpiral = GetPrivateProfileDouble(sSect, sKeyInd & K_OFFSPIRAL, 0, m_sKitFile)
kmItem.dStepSpiral = GetPrivateProfileDouble(sSect, sKeyInd & K_STEPSPIRAL, 0, m_sKitFile)
kmItem.dRadiusSpiral = GetPrivateProfileDouble(sSect, sKeyInd & K_RADIUSSPIRAL, 0, m_sKitFile)
kmItem.dDistanceSpiral = GetPrivateProfileDouble(sSect, sKeyInd & K_DISTANCESPIRAL, 0, m_sKitFile)
kmItem.dLiLen = GetPrivateProfileDouble(sSect, sKeyInd & K_LILEN, 0, m_sKitFile)
kmItem.dLiHeight = GetPrivateProfileDouble(sSect, sKeyInd & K_LIHEIGHT, 0, m_sKitFile)
kmItem.dLiLoad = GetPrivateProfileDouble(sSect, sKeyInd & K_LILOAD, 0, m_sKitFile)
Return True Return True
End Function End Function
Friend Function WriteKitName( nKitIndex As Integer, sKitName As String) As Boolean Friend Function WriteKitName(nKitIndex As Integer, sKitName As String) As Boolean
Dim sKey As String = K_KIT & nKitIndex.ToString("D2") Dim sKey As String = K_KIT & nKitIndex.ToString("D2")
Return WritePrivateProfileString( S_HEADER, sKey, sKitName, m_sKitFile) Return WritePrivateProfileString(S_HEADER, sKey, sKitName, m_sKitFile)
End Function End Function
Private Function WriteKitMach( nKitIndex As Integer, nKitMachIndex As Integer, kmItem As KitMach) As Boolean Private Function WriteKitMach(nKitIndex As Integer, nKitMachIndex As Integer, kmItem As KitMach) As Boolean
' Leggo il nome del kit ' Leggo il nome del kit
Dim sKitName As String = ReadKitName( nKitIndex) Dim sKitName As String = ReadKitName(nKitIndex)
If String.IsNullOrWhiteSpace( sKitName) Then Return False If String.IsNullOrWhiteSpace(sKitName) Then Return False
' Sezione ' Sezione
Dim sSect As String = S_KIT & "." & sKitName Dim sSect As String = S_KIT & "." & sKitName
' Indice ' Indice
Dim sKeyInd As String = nKitMachIndex.ToString("D2") & "." Dim sKeyInd As String = nKitMachIndex.ToString("D2") & "."
' Scrivo i dati della lavorazione ' Scrivo i dati della lavorazione
If Not IsNothing( kmItem) Then If Not IsNothing(kmItem) Then
WritePrivateProfileString( sSect, sKeyInd & K_TOOL, kmItem.sToolUUID, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_TOOL, kmItem.sToolUUID, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_TOOLNAME, kmItem.sToolName, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_TOOLNAME, kmItem.sToolName, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ACTIVE, If( kmItem.bActive, "1", "0"), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_ACTIVE, If(kmItem.bActive, "1", "0"), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_CONTOUR, kmItem.nContour.ToString(), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_CONTOUR, kmItem.nContour.ToString(), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFSETCNT, kmItem.dOffsetCnt.ToString(), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_OFFSETCNT, DoubleToString(kmItem.dOffsetCnt, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGX, kmItem.nZigZagX.ToString(), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGX, kmItem.nZigZagX.ToString(), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGX, kmItem.dOffZigZagX.ToString(), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGX, DoubleToString(kmItem.dOffZigZagX.ToString, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPX, DoubleToString( kmItem.dStepX, 3), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_STEPX, DoubleToString(kmItem.dStepX, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_RADIUSX, DoubleToString(kmItem.dRadiusX, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_DISTANCEX, DoubleToString(kmItem.dDistanceX, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGY, kmItem.nZigZagY.ToString(), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGY, kmItem.nZigZagY.ToString(), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGY, kmItem.dOffZigZagY.ToString(), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGY, DoubleToString(kmItem.dOffZigZagY, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPY, DoubleToString( kmItem.dStepY, 3), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_STEPY, DoubleToString(kmItem.dStepY, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILEN, DoubleToString( kmItem.dLiLen, 3), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_RADIUSY, DoubleToString(kmItem.dRadiusY, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LIHEIGHT, DoubleToString( kmItem.dLiHeight, 3), m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_DISTANCEY, DoubleToString(kmItem.dDistanceY, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILOAD, DoubleToString( kmItem.dLiLoad, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_SPIRAL, kmItem.nSpiral.ToString(), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFSPIRAL, DoubleToString(kmItem.dOffSpiral.ToString, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_STEPSPIRAL, DoubleToString(kmItem.dStepSpiral, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_RADIUSSPIRAL, DoubleToString(kmItem.dRadiusSpiral, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_DISTANCESPIRAL, DoubleToString(kmItem.dDistanceSpiral, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_LILEN, DoubleToString(kmItem.dLiLen, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_LIHEIGHT, DoubleToString(kmItem.dLiHeight, 3), m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_LILOAD, DoubleToString(kmItem.dLiLoad, 3), m_sKitFile)
Else Else
WritePrivateProfileString( sSect, sKeyInd & K_TOOL, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_TOOL, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_TOOLNAME, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_TOOLNAME, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ACTIVE, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_ACTIVE, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_CONTOUR, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_CONTOUR, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFSETCNT, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_OFFSETCNT, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGX, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGX, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGX, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGX, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPX, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_STEPX, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_RADIUSX, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_DISTANCEX, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGY, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_ZIGZAGY, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGY, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_OFFZIGZAGY, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPY, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_STEPY, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILEN, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_RADIUSY, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LIHEIGHT, Nothing, m_sKitFile) WritePrivateProfileString(sSect, sKeyInd & K_DISTANCEY, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILOAD, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_SPIRAL, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_OFFSPIRAL, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_STEPSPIRAL, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_RADIUSSPIRAL, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_DISTANCESPIRAL, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_LILEN, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_LIHEIGHT, Nothing, m_sKitFile)
WritePrivateProfileString(sSect, sKeyInd & K_LILOAD, Nothing, m_sKitFile)
End If End If
Return True Return True
End Function End Function
Private Function EraseKit( nKitIndex As Integer) As Boolean Private Function EraseKit(nKitIndex As Integer) As Boolean
' Leggo il nome del kit ' Leggo il nome del kit
Dim sKitName As String = ReadKitName( nKitIndex) Dim sKitName As String = ReadKitName(nKitIndex)
If String.IsNullOrWhiteSpace( sKitName) Then Return False If String.IsNullOrWhiteSpace(sKitName) Then Return False
' Lo elimino dalla lista dei kit scalando tutti di una posizione e eliminando l'ultimo ' Lo elimino dalla lista dei kit scalando tutti di una posizione e eliminando l'ultimo
Dim nNextKitIndex As Integer = nKitIndex + 1 Dim nNextKitIndex As Integer = nKitIndex + 1
Dim sNextKitName As String = ReadKitName( nNextKitIndex) Dim sNextKitName As String = ReadKitName(nNextKitIndex)
while Not String.IsNullOrWhiteSpace( sNextKitName) While Not String.IsNullOrWhiteSpace(sNextKitName)
WriteKitName( nNextKitIndex - 1, sNextKitName) WriteKitName(nNextKitIndex - 1, sNextKitName)
nNextKitIndex += 1 nNextKitIndex += 1
sNextKitName = ReadKitName( nNextKitIndex) sNextKitName = ReadKitName(nNextKitIndex)
End While End While
WriteKitName( nNextKitIndex - 1, Nothing) WriteKitName(nNextKitIndex - 1, Nothing)
' Sezione ' Sezione
Dim sSect As String = S_KIT & "." & sKitName Dim sSect As String = S_KIT & "." & sKitName
' Cancello tutte le lavorazioni del kit ' Cancello tutte le lavorazioni del kit
WritePrivateProfileString( sSect, Nothing, Nothing, m_sKitFile) WritePrivateProfileString(sSect, Nothing, Nothing, m_sKitFile)
Return True Return True
End Function End Function
Private Function EraseKitMach( nKitIndex As Integer, nKitMachIndex As Integer) As Boolean Private Function EraseKitMach(nKitIndex As Integer, nKitMachIndex As Integer) As Boolean
' Leggo il nome del kit ' Leggo il nome del kit
Dim sKitName As String = ReadKitName( nKitIndex) Dim sKitName As String = ReadKitName(nKitIndex)
If String.IsNullOrWhiteSpace( sKitName) Then Return False If String.IsNullOrWhiteSpace(sKitName) Then Return False
' Lo elimino dali KitMach scalando tutti di una posizione e eliminando l'ultimo ' Lo elimino dali KitMach scalando tutti di una posizione e eliminando l'ultimo
Dim kmCurr As KitMach = Nothing Dim kmCurr As KitMach = Nothing
Dim nNextKitMachIndex As Integer = nKitMachIndex + 1 Dim nNextKitMachIndex As Integer = nKitMachIndex + 1
While ReadKitMach( sKitName, nNextKitMachIndex, kmCurr) While ReadKitMach(sKitName, nNextKitMachIndex, kmCurr)
kmCurr.nId = nNextKitMachIndex - 1 kmCurr.nId = nNextKitMachIndex - 1
WriteKitMach( nKitIndex, nNextKitMachIndex - 1, kmCurr) WriteKitMach(nKitIndex, nNextKitMachIndex - 1, kmCurr)
nNextKitMachIndex += 1 nNextKitMachIndex += 1
End While End While
WriteKitMach( nKitIndex, nNextKitMachIndex - 1, Nothing) WriteKitMach(nKitIndex, nNextKitMachIndex - 1, Nothing)
Return True Return True
End Function End Function
@@ -804,7 +952,7 @@ Class Kit
Get Get
Return m_nId Return m_nId
End Get End Get
Set( value As Integer) Set(value As Integer)
m_nId = value m_nId = value
End Set End Set
End Property End Property
@@ -824,7 +972,7 @@ Class Kit
End Set End Set
End Property End Property
Sub New( nId As Integer, sName As String) Sub New(nId As Integer, sName As String)
m_nId = nId m_nId = nId
m_sName = sName m_sName = sName
@@ -832,21 +980,21 @@ Class Kit
End Sub End Sub
Sub New( nId As Integer, sName As String, kitSou As Kit) Sub New(nId As Integer, sName As String, kitSou As Kit)
m_nId = nId m_nId = nId
m_sName = sName m_sName = sName
m_KitMachList = New List(Of KitMach) m_KitMachList = New List(Of KitMach)
If IsNothing( kitSou) Then Return If IsNothing(kitSou) Then Return
For Each kmItem As KitMach In kitSou.m_KitMachList For Each kmItem As KitMach In kitSou.m_KitMachList
AddKitMach( kmItem) AddKitMach(kmItem)
Next Next
End Sub End Sub
Sub AddKitMach( kitMachItem As KitMach) Sub AddKitMach(kitMachItem As KitMach)
m_KitMachList.Add(kitMachItem) m_KitMachList.Add(kitMachItem)
End Sub End Sub
@@ -862,15 +1010,29 @@ Class KitMach
Private m_sToolName As String Private m_sToolName As String
Private m_SelTool As Integer Private m_SelTool As Integer
Friend Shared m_ToolList As List(Of String) Friend Shared m_ToolList As List(Of String)
Private m_bActive As Boolean Private m_bActive As Boolean
Private m_nContour As Integer Private m_nContour As Integer
Private m_dOffsetCnt As Double Private m_dOffsetCnt As Double
Private m_nZigZagX As Integer Private m_nZigZagX As Integer
Private m_dStepX As Double Private m_dStepX As Double
Private m_dOffZigZagX As Double Private m_dOffZigZagX As Double
Private m_dRadiusX As Double
Private m_dDistanceX As Double
Private m_nZigZagY As Integer Private m_nZigZagY As Integer
Private m_dStepY As Double Private m_dStepY As Double
Private m_dOffZigZagY As Double Private m_dOffZigZagY As Double
Private m_dRadiusY As Double
Private m_dDistanceY As Double
Private m_nSpiral As Integer
Private m_dOffSpiral As Double
Private m_dStepSpiral As Double
Private m_dRadiusSpiral As Double
Private m_dDistanceSpiral As Double
Private m_dLiLen As Double Private m_dLiLen As Double
Private m_dLiHeight As Double Private m_dLiHeight As Double
Private m_dLiLoad As Double Private m_dLiLoad As Double
@@ -958,6 +1120,8 @@ Class KitMach
End Set End Set
End Property End Property
#Region "Contorno"
Public m_IsModifiedActive As Boolean = False Public m_IsModifiedActive As Boolean = False
Public Property bActive As Boolean Public Property bActive As Boolean
Get Get
@@ -985,11 +1149,11 @@ Class KitMach
End Property End Property
Public m_IsModifiedOffCnt As Boolean = False Public m_IsModifiedOffCnt As Boolean = False
Public Property dOffsetCnt As Integer Public Property dOffsetCnt As Double
Get Get
Return m_dOffsetCnt Return m_dOffsetCnt
End Get End Get
Set(value As Integer) Set(value As Double)
If value <> m_dOffsetCnt Then If value <> m_dOffsetCnt Then
m_dOffsetCnt = value m_dOffsetCnt = value
m_IsModifiedOffCnt = True m_IsModifiedOffCnt = True
@@ -997,6 +1161,10 @@ Class KitMach
End Set End Set
End Property End Property
#End Region ' Contorno
#Region "ZigZag X"
Public m_IsModifiedZigZagX As Boolean = False Public m_IsModifiedZigZagX As Boolean = False
Public Property nZigZagX As Integer Public Property nZigZagX As Integer
Get Get
@@ -1011,11 +1179,11 @@ Class KitMach
End Property End Property
Public m_IsModifiedOffZigZagX As Boolean = False Public m_IsModifiedOffZigZagX As Boolean = False
Public Property dOffZigZagX As Integer Public Property dOffZigZagX As Double
Get Get
Return m_dOffZigZagX Return m_dOffZigZagX
End Get End Get
Set(value As Integer) Set(value As Double)
If value <> m_dOffZigZagX Then If value <> m_dOffZigZagX Then
m_dOffZigZagX = value m_dOffZigZagX = value
m_IsModifiedOffZigZagX = True m_IsModifiedOffZigZagX = True
@@ -1036,6 +1204,36 @@ Class KitMach
End Set End Set
End Property End Property
Public m_IsModifiedRadiusX As Boolean = False
Public Property dRadiusX As Double
Get
Return m_dRadiusX
End Get
Set(value As Double)
If value <> m_dRadiusX Then
m_dRadiusX = value
m_IsModifiedRadiusX = True
End If
End Set
End Property
Public m_IsModifiedDistanceX As Boolean = False
Public Property dDistanceX As Double
Get
Return m_dDistanceX
End Get
Set(value As Double)
If value <> m_dDistanceX Then
m_dDistanceX = value
m_IsModifiedDistanceX = True
End If
End Set
End Property
#End Region ' ZigZag X
#Region "ZigZag Y"
Public m_IsModifiedZigZagY As Boolean = False Public m_IsModifiedZigZagY As Boolean = False
Public Property nZigZagY As Integer Public Property nZigZagY As Integer
Get Get
@@ -1050,11 +1248,11 @@ Class KitMach
End Property End Property
Public m_IsModifiedOffZigZagY As Boolean = False Public m_IsModifiedOffZigZagY As Boolean = False
Public Property dOffZigZagY As Integer Public Property dOffZigZagY As Double
Get Get
Return m_dOffZigZagY Return m_dOffZigZagY
End Get End Get
Set(value As Integer) Set(value As Double)
If value <> m_dOffZigZagY Then If value <> m_dOffZigZagY Then
m_dOffZigZagY = value m_dOffZigZagY = value
m_IsModifiedOffZigZagY = True m_IsModifiedOffZigZagY = True
@@ -1075,6 +1273,105 @@ Class KitMach
End Set End Set
End Property End Property
Public m_IsModifiedRadiusY As Boolean = False
Public Property dRadiusY As Double
Get
Return m_dRadiusY
End Get
Set(value As Double)
If value <> m_dRadiusY Then
m_dRadiusY = value
m_IsModifiedRadiusY = True
End If
End Set
End Property
Public m_IsModifiedDistanceY As Boolean = False
Public Property dDistanceY As Double
Get
Return m_dDistanceY
End Get
Set(value As Double)
If value <> m_dDistanceY Then
m_dDistanceY = value
m_IsModifiedDistanceY = True
End If
End Set
End Property
#End Region ' ZigZag Y
#Region "Spirale"
Public m_IsModifiedSpiral As Boolean = False
Public Property nSpiral As Integer
Get
Return m_nSpiral
End Get
Set(value As Integer)
If value <> m_nSpiral Then
m_nSpiral = value
m_IsModifiedSpiral = True
End If
End Set
End Property
Public m_IsModifiedOffSpiral As Boolean = False
Public Property dOffSpiral As Double
Get
Return m_dOffSpiral
End Get
Set(value As Double)
If value <> m_dOffSpiral Then
m_dOffSpiral = value
m_IsModifiedOffSpiral = True
End If
End Set
End Property
Public m_IsModifiedStepSpiral As Boolean = False
Public Property dStepSpiral As Double
Get
Return m_dStepSpiral
End Get
Set(value As Double)
If value <> m_dStepSpiral Then
m_dStepSpiral = value
m_IsModifiedStepSpiral = True
End If
End Set
End Property
Public m_IsModifiedRadiusSpiral As Boolean = False
Public Property dRadiusSpiral As Double
Get
Return m_dRadiusSpiral
End Get
Set(value As Double)
If value <> m_dRadiusSpiral Then
m_dRadiusSpiral = value
m_IsModifiedRadiusSpiral = True
End If
End Set
End Property
Public m_IsModifiedDistanceSpiral As Boolean = False
Public Property dDistanceSpiral As Double
Get
Return m_dDistanceSpiral
End Get
Set(value As Double)
If value <> m_dDistanceSpiral Then
m_dDistanceSpiral = value
m_IsModifiedDistanceSpiral = True
End If
End Set
End Property
#End Region ' Spirale
#Region "Parametri lavorazione"
Public m_IsModifiedLiLen As Boolean = False Public m_IsModifiedLiLen As Boolean = False
Public Property dLiLen As Double Public Property dLiLen As Double
Get Get
@@ -1114,6 +1411,8 @@ Class KitMach
End Set End Set
End Property End Property
#End Region ' Parametri lavorazione
Sub New() Sub New()
m_nId = 0 m_nId = 0
m_SelTool = 0 m_SelTool = 0
@@ -1125,15 +1424,24 @@ Class KitMach
m_nZigZagX = 0 m_nZigZagX = 0
m_dOffZigZagX = 0 m_dOffZigZagX = 0
m_dStepX = 0 m_dStepX = 0
m_dRadiusX = 0
m_dDistanceX = 0
m_nZigZagY = 0 m_nZigZagY = 0
m_dOffZigZagY = 0 m_dOffZigZagY = 0
m_dStepY = 0 m_dStepY = 0
m_dRadiusY = 0
m_dDistanceY = 0
m_nSpiral = 0
m_dOffSpiral = 0
m_dStepSpiral = 0
m_dRadiusSpiral = 0
m_dDistanceSpiral = 0
m_dLiLen = 0 m_dLiLen = 0
m_dLiHeight = 0 m_dLiHeight = 0
m_dLiLoad = 0 m_dLiLoad = 0
End Sub End Sub
Sub New( nId As Integer) Sub New(nId As Integer)
m_nId = nId m_nId = nId
m_SelTool = 0 m_SelTool = 0
m_sToolUUID = "---" m_sToolUUID = "---"
@@ -1144,17 +1452,26 @@ Class KitMach
m_nZigZagX = 0 m_nZigZagX = 0
m_dOffZigZagX = 0 m_dOffZigZagX = 0
m_dStepX = 0 m_dStepX = 0
m_dRadiusX = 0
m_dDistanceX = 0
m_nZigZagY = 0 m_nZigZagY = 0
m_dOffZigZagY = 0 m_dOffZigZagY = 0
m_dStepY = 0 m_dStepY = 0
m_dRadiusY = 0
m_dDistanceY = 0
m_nSpiral = 0
m_dOffSpiral = 0
m_dStepSpiral = 0
m_dRadiusSpiral = 0
m_dDistanceSpiral = 0
m_dLiLen = 0 m_dLiLen = 0
m_dLiHeight = 0 m_dLiHeight = 0
m_dLiLoad = 0 m_dLiLoad = 0
End Sub End Sub
Sub New( kmSou As KitMach) Sub New(kmSou As KitMach)
m_nId = kmSou.nId m_nId = kmSou.nId
m_SelTool = kmSou.selTool m_SelTool = kmSou.SelTool
m_sToolUUID = kmSou.sToolUUID m_sToolUUID = kmSou.sToolUUID
m_sToolName = kmSou.sToolName m_sToolName = kmSou.sToolName
m_bActive = kmSou.bActive m_bActive = kmSou.bActive
@@ -1163,9 +1480,18 @@ Class KitMach
m_nZigZagX = kmSou.nZigZagX m_nZigZagX = kmSou.nZigZagX
m_dOffZigZagX = kmSou.dOffZigZagX m_dOffZigZagX = kmSou.dOffZigZagX
m_dStepX = kmSou.dStepX m_dStepX = kmSou.dStepX
m_dRadiusX = kmSou.dRadiusX
m_dDistanceX = kmSou.dDistanceX
m_nZigZagY = kmSou.nZigZagY m_nZigZagY = kmSou.nZigZagY
m_dOffZigZagY = kmSou.dOffZigZagY m_dOffZigZagY = kmSou.dOffZigZagY
m_dStepY = kmSou.dStepY m_dStepY = kmSou.dStepY
m_dRadiusY = kmSou.dRadiusY
m_dDistanceY = kmSou.dDistanceY
m_nSpiral = kmSou.nSpiral
m_dOffSpiral = kmSou.dOffSpiral
m_dStepSpiral = kmSou.dStepSpiral
m_dRadiusSpiral = kmSou.dRadiusSpiral
m_dDistanceSpiral = kmSou.dDistanceSpiral
m_dLiLen = kmSou.dLiLen m_dLiLen = kmSou.dLiLen
m_dLiHeight = kmSou.dLiHeight m_dLiHeight = kmSou.dLiHeight
m_dLiLoad = kmSou.m_dLiLoad m_dLiLoad = kmSou.m_dLiLoad
+3 -4
View File
@@ -434,17 +434,16 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Name="NewBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/> <Button Name="NewBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="SaveBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/> <Button Name="SaveBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="RemoveBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/> <Button Name="RemoveBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
<Button Name="ExportBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/> <Button Name="ExportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
<Button Name="ImportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/> <Button Name="ImportBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
</Grid> </Grid>
+62 -14
View File
@@ -56,8 +56,8 @@ Public Class ToolsDbPageUC
NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 15) NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 15)
SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17) SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17)
RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18) RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18)
ExportBtn.Content = "Export" ExportBtn.Content = EgtMsg(91126)
ImportBtn.Content = "Import" ImportBtn.Content = EgtMsg(91127)
NameTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 1) NameTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 1)
TCPosTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 2) TCPosTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 2)
@@ -177,8 +177,8 @@ Public Class ToolsDbPageUC
End If End If
' Verifico se macchina con nuovo SawbladeMaker ' Verifico se macchina con nuovo SawbladeMaker
Dim sSawBladeMaker As String = "" Dim sSawBladeMaker As String = ""
GetPrivateProfileString( S_TOOLS, K_SAWBLADEMAKER, "", sSawBladeMaker, m_MainWindow.GetIniFile()) GetPrivateProfileString(S_TOOLS, K_SAWBLADEMAKER, "", sSawBladeMaker, m_MainWindow.GetIniFile())
m_bNewSawbladeMaker = String.Compare( sSawBladeMaker, "MakeStoneSawBlade.lua", True) m_bNewSawbladeMaker = String.Compare(sSawBladeMaker, "MakeStoneSawBlade.lua", True)
m_bFirst = False m_bFirst = False
Else Else
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
@@ -506,7 +506,7 @@ Public Class ToolsDbPageUC
ToolToExportList.Add(ImpExpToolFamily) ToolToExportList.Add(ImpExpToolFamily)
Next Next
Dim ExportWndVM As New ImportExportToolWindowVM(ToolToExportList) Dim ExportWndVM As New ImportExportToolWindowVM(ToolToExportList, True)
Dim ExportWnd As New ImportExportToolWD(Application.Current.MainWindow, ExportWndVM) Dim ExportWnd As New ImportExportToolWD(Application.Current.MainWindow, ExportWndVM)
ExportWnd.ShowDialog() ExportWnd.ShowDialog()
@@ -528,7 +528,7 @@ Public Class ToolsDbPageUC
' recupero liste utensili da importare ' recupero liste utensili da importare
Dim ImportFileToolNameList As String() = Nothing Dim ImportFileToolNameList As String() = Nothing
Dim ImportFileToolFamilyList As Integer() = Nothing Dim ImportFileToolFamilyList As Integer() = Nothing
EgtTdbToBeImported(ImportFilePath, ImportFileToolNameList, ImportFileToolFamilyList) If Not EgtTdbToBeImported(ImportFilePath, ImportFileToolNameList, ImportFileToolFamilyList) Then Return
' li inserisco in lista per finestra di scelta ' li inserisco in lista per finestra di scelta
Dim ToolToImportList As New ObservableCollection(Of ImpExpToolFamily) Dim ToolToImportList As New ObservableCollection(Of ImpExpToolFamily)
' creo famiglie di utensili in base a quelle trovate in lista importata ' creo famiglie di utensili in base a quelle trovate in lista importata
@@ -558,11 +558,12 @@ Public Class ToolsDbPageUC
ToolToImportList.Add(NewFamily) ToolToImportList.Add(NewFamily)
End If End If
Next Next
Dim ImportWndVM As New ImportExportToolWindowVM(ToolToImportList, ImportFilePath, ImportFileToolNameList) Dim ImportWndVM As New ImportExportToolWindowVM(ToolToImportList, False, ImportFilePath, ImportFileToolNameList)
Dim ImportWnd As New ImportExportToolWD(Application.Current.MainWindow, ImportWndVM) Dim ImportWnd As New ImportExportToolWD(Application.Current.MainWindow, ImportWndVM)
If ImportWnd.ShowDialog() Then ImportWnd.ShowDialog()
' Aggiungo all'albero visualizzato gli utensili appena importati ' Aggiungo all'albero visualizzato gli utensili appena importati
If ImportWnd.OkResult Then
LoadImportedMachineTools(ImportWndVM.vsImported) LoadImportedMachineTools(ImportWndVM.vsImported)
End If End If
End Sub End Sub
@@ -592,31 +593,38 @@ Public Class ToolsDbPageUC
Private Sub LoadImportedMachineTools(vsImportedTools As String()) Private Sub LoadImportedMachineTools(vsImportedTools As String())
' Leggo tutti gli utensili presenti nella Macchina (quindi anche quelli appena importati). ' Leggo tutti gli utensili presenti nella Macchina (quindi anche quelli appena importati).
Dim ActiveToolsFamilies() As ToolsFamily = MachineUtility.ReadToolFamilies(m_CurrMachine.sMachIniFile) Dim ActiveToolsFamilies() As ToolsFamily = MyReadToolFamilies(m_CurrMachine.sMachIniFile)
Dim ToolsFamilyIndex As Integer = 0 Dim ToolsFamilyIndex As Integer = 0
Dim ToolsFamilyItem As ToolsFamily Dim ToolsFamilyItem As ToolsFamily
For Each ToolsFamilyItem In ActiveToolsFamilies For Each ToolsFamilyItem In ActiveToolsFamilies
' dalla lista che ho ricavato dalla libreria recupero gli utensili associati
Dim FamilyTreeView As New CathegoryItem(ToolsFamilyItem.Name, ToolsFamilyItem.Id) Dim FamilyTreeView As New CathegoryItem(ToolsFamilyItem.Name, ToolsFamilyItem.Id)
Dim ToolFamilyItem = ToolsList.FirstOrDefault(Function(ToolFamily) ToolsFamilyItem.Id = FamilyTreeView.nTType) Dim ToolFamilyItem = ToolsList.FirstOrDefault(Function(ToolFamily) ToolFamily.nTType = ToolsFamilyItem.Id)
If IsNothing(ToolFamilyItem) Then If IsNothing(ToolFamilyItem) Then
ToolsList.Insert(ToolsFamilyIndex, FamilyTreeView) ToolsList.Insert(ToolsFamilyIndex, FamilyTreeView)
Else
' ricerco l'indice nella lista Tools
End If End If
Dim nType As Integer = 0 Dim nType As Integer = 0
Dim ToolName As String = String.Empty Dim ToolName As String = String.Empty
Dim ToolIndex As Integer = 0 Dim ToolIndex As Integer = 0
EgtSetCurrentContext(ToolScene.GetCtx()) 'EgtSetCurrentContext(ToolScene.GetCtx())
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
If EgtTdbGetFirstTool(ToolsFamilyItem.Id, ToolName, nType) Then If EgtTdbGetFirstTool(ToolsFamilyItem.Id, ToolName, nType) Then
Dim ToolItem = ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName) Dim ToolItem = ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName)
If IsNothing(ToolItem) Then If IsNothing(ToolItem) Then
' Se leggo un utensile non presente nella ToolsList visualizzata lo aggiungo ad essa. ' Se leggo un utensile non presente nella ToolsList visualizzata lo aggiungo ad essa.
Dim NewToolName As New CustomItem(ToolName, nType) Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName) ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
ElseIf vsImportedTools.Contains(ToolName) Then ElseIf vsImportedTools.Contains(ToolName) Then
' Se un utensile è presente nella ToolsList visualizzata ma nel contempo è nell'array vsImported ' Se un utensile è presente nella ToolsList visualizzata ma nel contempo è nell'array vsImported
' vuol dire che è stato sovrascritto perciò lo rimuovo e lo riaggiungo alla ToolsList. ' vuol dire che è stato sovrascritto perciò lo rimuovo e lo riaggiungo alla ToolsList.
ToolsList(ToolsFamilyIndex).Items.Remove(ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName)) ToolsList(ToolsFamilyIndex).Items.Remove(ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName))
Dim NewToolName As New CustomItem(ToolName, nType) Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName) ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
End If End If
ToolIndex += 1 ToolIndex += 1
While EgtTdbGetNextTool(ToolsFamilyItem.Id, ToolName, nType) While EgtTdbGetNextTool(ToolsFamilyItem.Id, ToolName, nType)
@@ -625,20 +633,60 @@ Public Class ToolsDbPageUC
' Se leggo un utensile non presente nella ToolsList visualizzata lo aggiungo ad essa. ' Se leggo un utensile non presente nella ToolsList visualizzata lo aggiungo ad essa.
Dim NewToolName As New CustomItem(ToolName, nType) Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName) ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
ElseIf vsImportedTools.Contains(ToolName) Then ElseIf vsImportedTools.Contains(ToolName) Then
' Se un utensile è presente nella ToolsList visualizzata ma nel contempo è nell'array vsImported ' Se un utensile è presente nella ToolsList visualizzata ma nel contempo è nell'array vsImported
' vuol dire che è stato sovrascritto perciò lo rimuovo e lo riaggiungo alla ToolsList. ' vuol dire che è stato sovrascritto perciò lo rimuovo e lo riaggiungo alla ToolsList.
ToolsList(ToolsFamilyIndex).Items.Remove(ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName)) ToolsList(ToolsFamilyIndex).Items.Remove(ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName))
Dim NewToolName As New CustomItem(ToolName, nType) Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName) ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
End If End If
ToolIndex += 1 ToolIndex += 1
End While End While
End If End If
ToolsFamilyIndex += 1 ToolsFamilyIndex += 1
Next Next
End Sub End Sub
Public Function MyReadToolFamilies(sMachineIniPath As String) As ToolsFamily()
Dim ActiveToolsFamiliesList As New List(Of ToolsFamily)
' Se il materiale lavorato è Marmo l'ordine di lettura e inserimento di Punta e Lama nelle famiglie di utensili attivi è invertito
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_SAWBLADE, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.SAWBLADE, EgtMsg(31000 + 2)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_DRILLBIT, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.DRILLBIT, EgtMsg(31000 + 1)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_MILL, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MILL, EgtMsg(31000 + 3)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, "CupWheel", 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MILL, EgtMsg(90754)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, "PolishingWheel", 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MILL, EgtMsg(90756)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_MORTISE, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MORTISE, EgtMsg(31000 + 4)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_CHISEL, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.CHISEL, EgtMsg(31000 + 9)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_COMPO, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.COMPO, EgtMsg(31000 + 5)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_WATERJET, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.WATERJET, EgtMsg(31010)))
End If
Return ActiveToolsFamiliesList.ToArray
End Function
Friend Sub InitializeToolGroup(bEnabled As Boolean, nTType As Integer, sFName As String) Friend Sub InitializeToolGroup(bEnabled As Boolean, nTType As Integer, sFName As String)
If Not bEnabled Then Return If Not bEnabled Then Return
' Inserisco categoria ed eventuali elementi ' Inserisco categoria ed eventuali elementi
@@ -1035,7 +1083,7 @@ Public Class ToolsDbPageUC
Dim dCore, dTh As Double Dim dCore, dTh As Double
If EgtTdbGetCurrToolParam(MCH_TP.CORE, dCore) AndAlso If EgtTdbGetCurrToolParam(MCH_TP.CORE, dCore) AndAlso
EgtTdbGetCurrToolParam(MCH_TP.THICK, dTh) Then EgtTdbGetCurrToolParam(MCH_TP.THICK, dTh) Then
Dim dL As Double = Math.Max( dVal, 0.0) + ((dCore + dTh) / 2) Dim dL As Double = Math.Max(dVal, 0.0) + ((dCore + dTh) / 2)
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dL + 1) EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dL + 1)
Return EgtTdbSetCurrToolParam(MCH_TP.LEN, dL) Return EgtTdbSetCurrToolParam(MCH_TP.LEN, dL)
Else Else
@@ -1122,7 +1170,7 @@ Public Class ToolsDbPageUC
Dim dToolCore As Double Dim dToolCore As Double
EgtTdbGetCurrToolParam(MCH_TP.CORE, dToolCore) EgtTdbGetCurrToolParam(MCH_TP.CORE, dToolCore)
If dToolCore < EPS_SMALL Then If dToolCore < EPS_SMALL Then
dToolCore = If( dToolLen >= dToolThick, dToolThick - 1, 2 * dToolLen - dToolThick) dToolCore = If(dToolLen >= dToolThick, dToolThick - 1, 2 * dToolLen - dToolThick)
EgtTdbSetCurrToolParam(MCH_TP.CORE, dToolCore) EgtTdbSetCurrToolParam(MCH_TP.CORE, dToolCore)
EgtOutLog("ToolCore too small ->" & DoubleToString(dToolCore, 1)) EgtOutLog("ToolCore too small ->" & DoubleToString(dToolCore, 1))
End If End If
+263
View File
@@ -0,0 +1,263 @@
<UserControl x:Class="WaterJetPageUC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:self="clr-namespace:OmagCUT.TreeViewItem"
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1280" Initialized="WaterJetPage_Initialized">
<!-- Definizione della PolishingsPage -->
<Border Style="{DynamicResource OmagCut_PageBorder}">
<Grid Name="WaterJetPageGrid" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="8*"/>
<ColumnDefinition Width="4*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Lista dei materiali-->
<GroupBox Name="MaterialGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0"
Header="{Binding Material_Msg}"
Grid.Row="0" BorderThickness="0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Lista dei materiali-->
<ListBox Name="MaterialsLstBx"
ItemsSource="{Binding MaterialList}" SelectedItem="{Binding SelMaterial}"
Grid.RowSpan="2">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<!--Campo visualizzato solo per aggiungere un nuovo materiale-->
<EgtWPFLib:EgtTextBox Name="NewMaterialNameTxBx" Grid.Row="1"
Width="220"
Text="{Binding sNewMaterial}"
Visibility="{Binding NewMaterial_Visibility}"
Style="{DynamicResource OmagCut_KeyboardTextBox}"
KeyboardPosition="Top"/>
<!--Pulsanti per aggiungere/rimuovere/salvare la lista-->
<UniformGrid Grid.Row="2" Columns="3">
<Button Name="NewMaterialBtn" Grid.Column="0"
Content="{Binding New_Msg}"
Command="{Binding NewMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="DeleteMaterialBtn" Grid.Column="1"
Content="{Binding Delete_Msg}"
Command="{Binding DeleteMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="ModifyMaterialBtn" Grid.Column="1"
Content="{Binding Modify_Msg}"
Command="{Binding ModifyMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
</UniformGrid>
</Grid>
</GroupBox>
<!--Raggruppo all'interno della stessa cornice le sottocatogorie e i parametri-->
<Border Style="{DynamicResource OmagCut_Border}"
Grid.Column="1" Grid.Row="0"
Grid.ColumnSpan="2" Grid.RowSpan="1">
<Grid Name="SubMaterialGrd" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<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>
<!--Sottocategoria dei materiali associata alla lista precedente-->
<GroupBox Name="SubMaterialGpBx" Style="{DynamicResource OmagCut_GroupBox}"
Header="{Binding SubMaterial_Msg}"
Grid.Column="0" Grid.Row="0"
Grid.ColumnSpan="1" Grid.RowSpan="8" BorderThickness="0">
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Lista dei materiali-->
<ListBox Name="SubMaterialsLstBx" ItemsSource="{Binding Path=SelectedItem.SubMaterialList, ElementName=MaterialsLstBx}"
SelectedItem="{Binding Path=SelectedItem.SelSubMaterial, ElementName=MaterialsLstBx}"
Grid.RowSpan="2">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<!--Campo visualizzato solo per aggiungere un nuovo materiale-->
<EgtWPFLib:EgtTextBox Name="NewSubMaterialNameTxBx" Grid.Row="1"
Width="220"
Text="{Binding sNewSubMaterial}"
Visibility="{Binding NewSubMaterial_Visibility}"
Style="{DynamicResource OmagCut_KeyboardTextBox}"
KeyboardPosition="Top"/>
<!--Pulsanti per aggiungere/rimuovere/salvare la lista-->
<UniformGrid Grid.Row="2" Columns="3">
<Button Name="NewSubMaterialBtn" Grid.Column="0"
Content="{Binding New_Msg}"
Command="{Binding NewSubMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="RemoveSubMaterialBtn" Grid.Column="1"
Content="{Binding Delete_Msg}"
Command="{Binding DeleteSubMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="ModifySubMaterialBtn" Grid.Column="1"
Content="{Binding Modify_Msg}"
Command="{Binding ModifySubMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
</UniformGrid>
</Grid>
</GroupBox>
<!--Lista dei parametri associata alla sottovcategoria dei materiali-->
<GroupBox Name="ParamsGpBx"
Grid.Column="1" Grid.Row="0" Margin="0,0,0,3"
Grid.ColumnSpan="3" Grid.RowSpan="8" BorderThickness="0">
<!--Titolazione delle colonne della tabella-->
<GroupBox.Header >
<Grid Width="700">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Thickness_Msg}" Grid.Column="0" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q1_Msg}" Grid.Column="1" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q2_Msg}" Grid.Column="2" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q3_Msg}" Grid.Column="3" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q4_Msg}" Grid.Column="4" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q5_Msg}" Grid.Column="5" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding QExtra_Msg}" Grid.Column="6" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
</Grid>
</GroupBox.Header>
<!--Definizione della Grid dei parametri delle lavorazioni-->
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<ListBox Name="ParamLstBx"
ItemsSource="{Binding Path=SelectedItem.ParamList , ElementName=SubMaterialsLstBx}"
SelectedItem="{Binding Path=SelectedItem.SelWjParam , ElementName=SubMaterialsLstBx}"
Margin="0,0,0,0"
Grid.RowSpan="2">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="700">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<EgtWPFLib:EgtTextBox Text="{Binding Thickness}" Grid.Column="0"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q1}" Grid.Column="1"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q2}" Grid.Column="2"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q3}" Grid.Column="3"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q4}" Grid.Column="4"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q5}" Grid.Column="5"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding QExtra}" Grid.Column="6"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<UniformGrid Grid.Row="2" Columns="9" Grid.ColumnSpan="3">
<Button Name="NewParamBtn" Grid.Column="0"
Command="{Binding NewWjParamCommand}"
Content="{Binding New_Msg}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="RemoveParamBtn" Grid.Column="1"
Command="{Binding DeleteWjParamCommand}"
Content="{Binding Delete_Msg}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
</UniformGrid>
</Grid>
</GroupBox>
</Grid>
</Border>
<Button Name="SaveKitBtn" Grid.Row="2" Grid.Column="2"
Command="{Binding SaveCommand}"
Content="{Binding Save_Msg}"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
</Grid>
</Border>
</UserControl>
+55
View File
@@ -0,0 +1,55 @@
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports EgtUILib
Imports EgtWPFLib
Imports EgtWPFLib5
Public Class WaterJetPageUC
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_refWaterjetDbWindowVM As EgtWPFLib5.WaterjetDbWindowVM
Private m_sOrigNewMaterial As String = String.Empty
Private m_sOrigNewSubMaterial As String = String.Empty
Private Sub WaterJetPage_Initialized(sender As Object, e As EventArgs)
m_refWaterjetDbWindowVM = New EgtWPFLib5.WaterjetDbWindowVM(m_MainWindow.m_CurrentMachine.sMachDir)
Me.DataContext = m_refWaterjetDbWindowVM
EgtWPFLib.Utility.MainWindow = m_MainWindow
End Sub
Public Sub WaterJetPage_Reinitialize()
m_refWaterjetDbWindowVM = New EgtWPFLib5.WaterjetDbWindowVM(m_MainWindow.m_CurrentMachine.sMachDir)
Me.DataContext = m_refWaterjetDbWindowVM
End Sub
Private Sub NewMaterial_EgtOpening(sender As Object, e As EventArgs) Handles NewMaterialNameTxBx.EgtOpening
m_sOrigNewMaterial = NewMaterialNameTxBx.Text
End Sub
Private Sub NewSubMaterial_EgtOpening(sender As Object, e As EventArgs) Handles NewSubMaterialNameTxBx.EgtOpening
m_sOrigNewSubMaterial = NewSubMaterialNameTxBx.Text
End Sub
Private Sub NewMaterial_EgtClosed(sender As Object, e As EventArgs) Handles NewMaterialNameTxBx.EgtClosed
m_refWaterjetDbWindowVM.sNewMaterial = NewMaterialNameTxBx.Text
If String.IsNullOrEmpty(m_refWaterjetDbWindowVM.sNewMaterial) OrElse m_refWaterjetDbWindowVM.sNewMaterial = m_sOrigNewMaterial Then
m_refWaterjetDbWindowVM.NewMaterial_Visibility = Visibility.Collapsed
Else
m_refWaterjetDbWindowVM.Done("")
NewMaterialNameTxBx.Clear()
End If
End Sub
Private Sub NewSubMaterial_EgtClosed(sender As Object, e As EventArgs) Handles NewSubMaterialNameTxBx.EgtClosed
m_refWaterjetDbWindowVM.sNewSubMaterial = NewSubMaterialNameTxBx.Text
If String.IsNullOrEmpty(m_refWaterjetDbWindowVM.sNewSubMaterial) OrElse m_refWaterjetDbWindowVM.sNewSubMaterial = m_sOrigNewSubMaterial Then
m_refWaterjetDbWindowVM.NewSubMaterial_Visibility = Visibility.Collapsed
Else
m_refWaterjetDbWindowVM.Done("")
NewSubMaterialNameTxBx.Clear()
End If
End Sub
End Class
+891
View File
@@ -0,0 +1,891 @@
'Imports System.Collections.ObjectModel
'Imports System.ComponentModel
'Imports EgtUILib
'Imports EgtWPFLib
'Public Class WaterJetPageVM
' Private m_refWaterPageV As WaterJetPageUC
' ' lista dei materiali
' Private m_ListMaterial As New ObservableCollection(Of MaterialWJ)
' Public ReadOnly Property ListMaterial As ObservableCollection(Of MaterialWJ)
' Get
' Return m_ListMaterial
' End Get
' End Property
' ' materiale selezionato
' Private m_SelectedMaterial As MaterialWJ
' Public Property SelectedMaterial As MaterialWJ
' Get
' Return m_SelectedMaterial
' End Get
' Set(value As MaterialWJ)
' m_SelectedMaterial = value
' End Set
' End Property
' ' submateriale selezionato
' Private m_SelectedSubMaterial As SubMaterialWJ
' Public Property SelectedSubMaterial As SubMaterialWJ
' Get
' Return m_SelectedSubMaterial
' End Get
' Set(value As SubMaterialWJ)
' m_SelectedSubMaterial = value
' End Set
' End Property
' ' lista parametri selezionata
' Private m_SelectedParam As ParamWJ
' Public Property SelectedParam As ParamWJ
' Get
' Return m_SelectedParam
' End Get
' Set(value As ParamWJ)
' m_SelectedParam = value
' End Set
' End Property
' Private m_sNewMaterial As MaterialWJ
' Public Property sNewMaterial As String
' Get
' Return m_sNewMaterial.sMaterial
' End Get
' Set(value As String)
' m_sNewMaterial = New MaterialWJ(value)
' End Set
' End Property
' Private m_NewMaterialVisibility As Visibility = Visibility.Hidden
' Public Property NewMaterialVisibility As Visibility
' Get
' Return m_NewMaterialVisibility
' End Get
' Set(value As Visibility)
' m_NewMaterialVisibility = value
' End Set
' End Property
' Sub New(WaterJetPageV As WaterJetPageUC)
' m_refWaterPageV = WaterJetPageV
' ' Creo una lista di materiali come esempio
' ListMaterial.Add(New MaterialWJ("Marmo"))
' ListMaterial.Last.ListOfSubMaterial.Add(New SubMaterialWJ("Binaco"))
' ListMaterial.Last.ListOfSubMaterial.Last.ListOfParam.Add(New ParamWJ("10", "Bq1", "Bq2", "Bq3", "Bq4", "Bq5"))
' ListMaterial.Last.ListOfSubMaterial.Add(New SubMaterialWJ("Nero"))
' ListMaterial.Last.ListOfSubMaterial.Last.ListOfParam.Add(New ParamWJ("20", "Nq1", "Nq2", "Nq3", "Nq4", "Nq5"))
' ListMaterial.Add(New MaterialWJ("Granito"))
' ListMaterial.Last.ListOfSubMaterial.Add(New SubMaterialWJ("GR_Binaco"))
' ListMaterial.Last.ListOfSubMaterial.Last.ListOfParam.Add(New ParamWJ("15", "gBq1", "gBq2", "Bq3", "gBq4", "gBq5"))
' ListMaterial.Last.ListOfSubMaterial.Last.ListOfParam.Add(New ParamWJ("15.5", "g_Bq1", "g_Bq2", "g_Bq3", "g_Bq4", "g_Bq5"))
' ListMaterial.Last.ListOfSubMaterial.Last.ListOfParam.Add(New ParamWJ("15.8", "G_Bq1", "G_Bq2", "G_Bq3", "G_Bq4", "G_Bq5"))
' ListMaterial.Last.ListOfSubMaterial.Add(New SubMaterialWJ("GR_Nero"))
' ListMaterial.Last.ListOfSubMaterial.Last.ListOfParam.Add(New ParamWJ("18", "gNq1", "gNq2", "gNq3", "gNq4", "gNq5"))
' SelectedMaterial = m_ListMaterial(0)
' SelectedSubMaterial = m_SelectedMaterial.ListOfSubMaterial(0)
' SelectedParam = SelectedSubMaterial.ListOfParam(0)
' End Sub
' Private m_cmdOk As ICommand
' Public ReadOnly Property OkCommand() As ICommand
' Get
' If m_cmdOk Is Nothing Then
' m_cmdOk = New Command(AddressOf Ok)
' End If
' Return m_cmdOk
' End Get
' End Property
' Private Sub Ok()
' ' Mostro textbox per il nome
' m_refWaterPageV.KitNameTxBx.Text = String.Empty
' m_refWaterPageV.KitNameTxBx.Visibility = Windows.Visibility.Visible
' m_refWaterPageV.KitsLstBx.SetValue(Grid.RowSpanProperty, 1)
' MessageBox.Show("Prova di Binding", "Prova di Binding", MessageBoxButton.OK, MessageBoxImage.Asterisk, MessageBoxResult.OK)
' m_refWaterPageV.KitNameTxBx.Visibility = Windows.Visibility.Hidden
' m_refWaterPageV.KitsLstBx.SetValue(Grid.RowSpanProperty, 2)
' End Sub
'End Class
'Public Class MaterialWJ
' Private m_sMaterial As String = String.Empty
' Public ReadOnly Property sMaterial As String
' Get
' Return m_sMaterial
' End Get
' End Property
' Private m_ListOfSubMaterial As New ObservableCollection(Of SubMaterialWJ)
' Public Property ListOfSubMaterial As ObservableCollection(Of SubMaterialWJ)
' Get
' Return m_ListOfSubMaterial
' End Get
' Set(value As ObservableCollection(Of SubMaterialWJ))
' m_ListOfSubMaterial = value
' End Set
' End Property
' Sub New(sMat As String)
' m_sMaterial = sMat
' End Sub
'End Class
'Public Class SubMaterialWJ
' Dim m_sSubMaterial As String
' Public Property sSubMaterial As String
' Get
' Return m_sSubMaterial
' End Get
' Set(value As String)
' m_sSubMaterial = value
' End Set
' End Property
' Private m_ListOfParam As New ObservableCollection(Of ParamWJ)
' Public Property ListOfParam As ObservableCollection(Of ParamWJ)
' Get
' Return m_ListOfParam
' End Get
' Set(value As ObservableCollection(Of ParamWJ))
' m_ListOfParam = value
' End Set
' End Property
' Sub New(sName As String)
' m_sSubMaterial = sName
' End Sub
'End Class
'Public Class ParamWJ
' Private m_Thickness As String
' Private m_Q1 As String
' Private m_Q2 As String
' Private m_Q3 As String
' Private m_Q4 As String
' Private m_Q5 As String
' Public Property Q1 As String
' Get
' Return m_Q1
' End Get
' Set(value As String)
' m_Q1 = value
' End Set
' End Property
' Public Property Thickness As String
' Get
' Return m_Thickness
' End Get
' Set(value As String)
' m_Thickness = value
' End Set
' End Property
' Public Property Q2 As String
' Get
' Return m_Q2
' End Get
' Set(value As String)
' m_Q2 = value
' End Set
' End Property
' Public Property Q3 As String
' Get
' Return m_Q3
' End Get
' Set(value As String)
' m_Q3 = value
' End Set
' End Property
' Public Property Q4 As String
' Get
' Return m_Q4
' End Get
' Set(value As String)
' m_Q4 = value
' End Set
' End Property
' Public Property Q5 As String
' Get
' Return m_Q5
' End Get
' Set(value As String)
' m_Q5 = value
' End Set
' End Property
' Sub New(sT As String, sQ1 As String, sQ2 As String, sQ3 As String, sQ4 As String, sQ5 As String)
' m_Thickness = sT
' m_Q1 = sQ1
' m_Q2 = sQ2
' m_Q3 = sQ3
' m_Q4 = sQ4
' m_Q5 = sQ5
' End Sub
'End Class
Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Public Class WaterjetDbWindowVM
Inherits VMBase
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_refWaterPageV As WaterJetPageUC
#Region "FIELDS & PROPERTIES"
#Region "Materiali"
Private Property m_MaterialList As ObservableCollection(Of WjMaterial)
Public Property MaterialList As ObservableCollection(Of WjMaterial)
Get
Return m_MaterialList
End Get
Set(value As ObservableCollection(Of WjMaterial))
m_MaterialList = value
End Set
End Property
Private Property m_SelMaterial As WjMaterial
Public Property SelMaterial As WjMaterial
Get
Return m_SelMaterial
End Get
Set(value As WjMaterial)
m_SelMaterial = value
End Set
End Property
Private Property m_sNewMaterial As String
Public Property sNewMaterial As String
Get
Return m_sNewMaterial
End Get
Set(value As String)
m_sNewMaterial = value
End Set
End Property
Private Property m_NewMaterial_Visibility As Visibility = Visibility.Collapsed
Public Property NewMaterial_Visibility As Visibility
Get
Return m_NewMaterial_Visibility
End Get
Set(value As Visibility)
m_NewMaterial_Visibility = value
NotifyPropertyChanged(NameOf(NewMaterial_Visibility))
End Set
End Property
#End Region
#Region "SubMateriali"
Private Property m_SubMaterialList As New ObservableCollection(Of WjSubMaterial)
Public Property SubMaterialList As ObservableCollection(Of WjSubMaterial)
Get
Return m_SubMaterialList
End Get
Set(value As ObservableCollection(Of WjSubMaterial))
m_SubMaterialList = value
End Set
End Property
'Private Property m_SelSubMaterial As WjSubMaterial
'Public Property SelSubMaterial As WjSubMaterial
' Get
' Return m_SelSubMaterial
' End Get
' Set(value As WjSubMaterial)
' m_SelSubMaterial = value
' End Set
'End Property
Private Property m_sNewSubMaterial As String
Public Property sNewSubMaterial As String
Get
Return m_sNewSubMaterial
End Get
Set(value As String)
m_sNewSubMaterial = value
End Set
End Property
Private Property m_NewSubMaterial_Visibility As Visibility = Visibility.Collapsed
Public Property NewSubMaterial_Visibility As Visibility
Get
Return m_NewSubMaterial_Visibility
End Get
Set(value As Visibility)
m_NewSubMaterial_Visibility = value
NotifyPropertyChanged(NameOf(NewSubMaterial_Visibility))
End Set
End Property
#End Region
#Region "Parametri"
Private Property m_ParamList As ObservableCollection(Of WjParam)
Public Property ParamList As ObservableCollection(Of WjParam)
Get
Return m_ParamList
End Get
Set(value As ObservableCollection(Of WjParam))
m_ParamList = value
End Set
End Property
'Private Property m_SelParam As WjParam
'Public Property SelParam As WjParam
' Get
' Return m_SelParam
' End Get
' Set(value As WjParam)
' m_SelParam = value
' End Set
'End Property
Private m_HeadParamLstBx_Width As Double
Public ReadOnly Property HeadParamLstBx_Width As Double
Get
If m_HeadParamLstBx_Width < 10 Then
Return 700
End If
Return m_HeadParamLstBx_Width
End Get
End Property
#End Region
Const S_MATERIALS As String = "Materials"
' Definizione comandi
Private m_cmdNewMaterial As ICommand
Private m_cmdDeleteMaterial As ICommand
Private m_cmdNewSubMaterial As ICommand
Private m_cmdDeleteSubMaterial As ICommand
Private m_cmdNewWjParam As ICommand
Private m_cmdDeleteWjParam As ICommand
Private m_cmdSave As ICommand
Private m_cmdDone As ICommand
#End Region
#Region "MESSAGES"
Public ReadOnly Property Material_Msg As String
Get
Return "Materiale"
End Get
End Property
Public ReadOnly Property SubMaterial_Msg As String
Get
Return "SubMateriale"
End Get
End Property
Public ReadOnly Property Id_Msg As String
Get
Return "Id"
End Get
End Property
Public ReadOnly Property Thickness_Msg As String
Get
Return "Spessore"
End Get
End Property
Public ReadOnly Property Q1_Msg As String
Get
Return "Q1"
End Get
End Property
Public ReadOnly Property Q2_Msg As String
Get
Return "Q2"
End Get
End Property
Public ReadOnly Property Q3_Msg As String
Get
Return "Q3"
End Get
End Property
Public ReadOnly Property Q4_Msg As String
Get
Return "Q4"
End Get
End Property
Public ReadOnly Property Q5_Msg As String
Get
Return "Q5"
End Get
End Property
Public ReadOnly Property QExtra_Msg As String
Get
Return "QExtra"
End Get
End Property
Public ReadOnly Property New_Msg As String
Get
Return "Nuovo"
End Get
End Property
Public ReadOnly Property Delete_Msg As String
Get
Return "Elimina"
End Get
End Property
Public ReadOnly Property Save_Msg As String
Get
Return "Salva"
End Get
End Property
Public ReadOnly Property Modify_Msg As String
Get
Return "Modifica"
End Get
End Property
#End Region
#Region "CONSTRUCTOR"
Sub New(refContext As WaterJetPageUC)
' definisco il riferiento con la pagina xaml
m_refWaterPageV = refContext
' Leggo valori da file Data e li carico nelle proprietà
Dim sFilePath As String = m_MainWindow.m_CurrentMachine.sMachDir & "\" & MACHININGS_DIR & "\" & WATERJETDB_FILE
MaterialList = New ObservableCollection(Of WjMaterial)
If File.Exists(sFilePath) Then
Dim sMaterial As String = String.Empty
If EgtUILib.GetPrivateProfileString(S_MATERIALS, "1", "", sMaterial, sFilePath) > 0 Then
Dim sMaterials() As String = sMaterial.Split(","c)
Dim ind As Integer = 0
For ind = 0 To sMaterials.Length() - 1
'recupero i sottomateriali
Dim Index As Integer = 1
Dim sSubMat As String = String.Empty
Dim SubMatList As New ObservableCollection(Of WjSubMaterial)
While EgtUILib.GetPrivateProfileString(sMaterials(ind), Index.ToString(), "", sSubMat, sFilePath) > 0
' recupero la lista dei Q
Dim QInd As Integer = 1
Dim sParam As String = String.Empty
Dim QParamList As New ObservableCollection(Of WjParam)
While EgtUILib.GetPrivateProfileString(sMaterials(ind) & "." & sSubMat, QInd.ToString(), "", sParam, sFilePath) > 0
Dim sParams() As String = sParam.Split(","c)
If sParams.Length() >= 7 Then
Dim dThickness As Double
Dim dQ1 As Double
Dim dQ2 As Double
Dim dQ3 As Double
Dim dQ4 As Double
Dim dQ5 As Double
Dim dQExtra As Double
StringToDouble(sParams(0), dThickness)
StringToDouble(sParams(1), dQ1)
StringToDouble(sParams(2), dQ2)
StringToDouble(sParams(3), dQ3)
StringToDouble(sParams(4), dQ4)
StringToDouble(sParams(5), dQ5)
StringToDouble(sParams(6), dQExtra)
QParamList.Add(New WjParam(QInd, dThickness, dQ1, dQ2, dQ3, dQ4, dQ5, dQExtra, m_refWaterPageV))
End If
QInd += 1
End While
SubMatList.Add(New WjSubMaterial(sSubMat, QParamList))
Index += 1
End While
MaterialList.Add(New WjMaterial(sMaterials(ind), SubMatList))
Next
End If
End If
End Sub
Public Sub RefreshDImensionPage()
m_HeadParamLstBx_Width = m_refWaterPageV.ParamsGpBx.ActualWidth - 20
NotifyPropertyChanged(NameOf(HeadParamLstBx_Width))
End Sub
#End Region ' Constructor
#Region "COMMANDS"
#Region "NewMaterialCommand"
Public ReadOnly Property NewMaterialCommand As ICommand
Get
If m_cmdNewMaterial Is Nothing Then
m_cmdNewMaterial = New Command(AddressOf NewMaterial)
End If
Return m_cmdNewMaterial
End Get
End Property
Public Sub NewMaterial(ByVal param As Object)
NewSubMaterial_Visibility = Visibility.Collapsed
NewMaterial_Visibility = Visibility.Visible
End Sub
#End Region ' NewMaterial
#Region "DeleteMaterialCommand"
Public ReadOnly Property DeleteMaterialCommand As ICommand
Get
If m_cmdDeleteMaterial Is Nothing Then
m_cmdDeleteMaterial = New Command(AddressOf DeleteMaterial)
End If
Return m_cmdDeleteMaterial
End Get
End Property
Public Sub DeleteMaterial(ByVal param As Object)
If Not IsNothing(SelMaterial) Then
MaterialList.Remove(SelMaterial)
'SelMaterial.NotifyPropertyChanged(NameOf(MaterialList))
End If
End Sub
#End Region ' DeleteMaterial
#Region "NewSubMaterialCommand"
Public ReadOnly Property NewSubMaterialCommand As ICommand
Get
If m_cmdNewSubMaterial Is Nothing Then
m_cmdNewSubMaterial = New Command(AddressOf NewSubMaterial)
End If
Return m_cmdNewSubMaterial
End Get
End Property
Public Sub NewSubMaterial(ByVal param As Object)
If Not IsNothing(SelMaterial) Then
NewMaterial_Visibility = Visibility.Collapsed
NewSubMaterial_Visibility = Visibility.Visible
End If
End Sub
#End Region ' NewSubMaterial
#Region "DeleteSubMaterialCommand"
Public ReadOnly Property DeleteSubMaterialCommand As ICommand
Get
If m_cmdDeleteSubMaterial Is Nothing Then
m_cmdDeleteSubMaterial = New Command(AddressOf DeleteSubMaterial)
End If
Return m_cmdDeleteSubMaterial
End Get
End Property
Public Sub DeleteSubMaterial(ByVal param As Object)
If Not IsNothing(SelMaterial.SelSubMaterial) Then
SelMaterial.SubMaterialList.Remove(SelMaterial.SelSubMaterial)
SelMaterial.NotifyPropertyChanged(NameOf(SubMaterialList))
End If
End Sub
#End Region ' DeleteSubMaterial
#Region "NewWjParamCommand"
Public ReadOnly Property NewWjParamCommand As ICommand
Get
If m_cmdNewWjParam Is Nothing Then
m_cmdNewWjParam = New Command(AddressOf NewWjParam)
End If
Return m_cmdNewWjParam
End Get
End Property
Public Sub NewWjParam(ByVal param As Object)
If Not IsNothing(SelMaterial.SelSubMaterial) Then
Dim nId As Integer = 0
If IsNothing(SelMaterial.SelSubMaterial.ParamList) Then
nId = 1
SelMaterial.SelSubMaterial.ParamList = New ObservableCollection(Of WjParam)
Else
nId = SelMaterial.SelSubMaterial.ParamList.Count + 1
End If
SelMaterial.SelSubMaterial.ParamList.Add(New WjParam(nId, 0, 0, 0, 0, 0, 0, 0, m_refWaterPageV))
SelMaterial.SelSubMaterial.NotifyPropertyChanged(NameOf(ParamList))
End If
End Sub
#End Region ' NewWjParam
#Region "DeleteWjParamCommand"
Public ReadOnly Property DeleteWjParamCommand As ICommand
Get
If m_cmdDeleteWjParam Is Nothing Then
m_cmdDeleteWjParam = New Command(AddressOf DeleteWjParam)
End If
Return m_cmdDeleteWjParam
End Get
End Property
Public Sub DeleteWjParam(ByVal param As Object)
If Not IsNothing(SelMaterial.SelSubMaterial.SelWjParam) Then
SelMaterial.SelSubMaterial.ParamList.Remove(SelMaterial.SelSubMaterial.SelWjParam)
SelMaterial.SelSubMaterial.NotifyPropertyChanged(NameOf(ParamList))
End If
End Sub
#End Region ' DeleteWjParam
#Region "DoneCommand"
Public ReadOnly Property DoneCommand As ICommand
Get
If m_cmdDone Is Nothing Then
m_cmdDone = New Command(AddressOf Done)
End If
Return m_cmdDone
End Get
End Property
Public Sub Done(ByVal param As Object)
If NewMaterial_Visibility = Visibility.Visible Then
MaterialList.Add(New WjMaterial(sNewMaterial))
NotifyPropertyChanged(NameOf(MaterialList))
NewMaterial_Visibility = Visibility.Collapsed
ElseIf NewSubMaterial_Visibility = Visibility.Visible Then
SelMaterial.SubMaterialList.Add(New WjSubMaterial(sNewSubMaterial))
NotifyPropertyChanged(NameOf(SubMaterialList))
NewSubMaterial_Visibility = Visibility.Collapsed
End If
End Sub
#End Region ' Done
#End Region ' Commands
End Class
Public Class WjMaterial
Inherits VMBase
Private m_Name As String
Public Property Name As String
Get
Return m_Name
End Get
Set(value As String)
m_Name = value
End Set
End Property
Private m_SubMaterialList As ObservableCollection(Of WjSubMaterial)
Public Property SubMaterialList As ObservableCollection(Of WjSubMaterial)
Get
Return m_SubMaterialList
End Get
Set(value As ObservableCollection(Of WjSubMaterial))
m_SubMaterialList = value
End Set
End Property
Private Property m_SelSubMaterial As WjSubMaterial
Public Property SelSubMaterial As WjSubMaterial
Get
Return m_SelSubMaterial
End Get
Set(value As WjSubMaterial)
m_SelSubMaterial = value
End Set
End Property
Sub New(sName As String, SubMatList As ObservableCollection(Of WjSubMaterial))
m_Name = sName
m_SubMaterialList = SubMatList
End Sub
Sub New(sName As String)
m_Name = sName
End Sub
End Class
Public Class WjSubMaterial
Inherits VMBase
Private m_Name As String
Public Property Name As String
Get
Return m_Name
End Get
Set(value As String)
m_Name = value
End Set
End Property
Private m_ParamList As ObservableCollection(Of WjParam)
Public Property ParamList As ObservableCollection(Of WjParam)
Get
Return m_ParamList
End Get
Set(value As ObservableCollection(Of WjParam))
m_ParamList = value
End Set
End Property
Private Property m_SelWjParam As WjParam
Public Property SelWjParam As WjParam
Get
Return m_SelWjParam
End Get
Set(value As WjParam)
m_SelWjParam = value
End Set
End Property
Sub New(sName As String, ParamList As ObservableCollection(Of WjParam))
m_Name = sName
m_ParamList = ParamList
End Sub
Sub New(sName As String)
m_Name = sName
End Sub
End Class
Public Class WjParam
Private m_Id As Integer
Public Property Id As Integer
Get
Return m_Id
End Get
Set(value As Integer)
m_Id = value
End Set
End Property
Private m_Thickness As Double
Public Property Thickness As Double
Get
Return m_Thickness
End Get
Set(value As Double)
m_Thickness = value
End Set
End Property
Private m_Q1 As Double
Public Property Q1 As Double
Get
Return m_Q1
End Get
Set(value As Double)
m_Q1 = value
End Set
End Property
Private m_Q2 As Double
Public Property Q2 As Double
Get
Return m_Q2
End Get
Set(value As Double)
m_Q2 = value
End Set
End Property
Private m_Q3 As Double
Public Property Q3 As Double
Get
Return m_Q3
End Get
Set(value As Double)
m_Q3 = value
End Set
End Property
Private m_Q4 As Double
Public Property Q4 As Double
Get
Return m_Q4
End Get
Set(value As Double)
m_Q4 = value
End Set
End Property
Private m_Q5 As Double
Public Property Q5 As Double
Get
Return m_Q5
End Get
Set(value As Double)
m_Q5 = value
End Set
End Property
Private m_QExtra As Double
Public Property QExtra As Double
Get
Return m_QExtra
End Get
Set(value As Double)
m_QExtra = value
End Set
End Property
Public ReadOnly Property ParamLstBx_Width As Double
Get
Return m_refWaterPageV.ParamsGpBx.ActualWidth - 20
End Get
End Property
Private m_refWaterPageV As WaterJetPageUC
Sub New(nId As Integer, dThickness As Double, dQ1 As Double, dQ2 As Double, dQ3 As Double, dQ4 As Double, dQ5 As Double, dQExtra As Double, ByRef refWJPage As WaterJetPageUC)
m_Id = nId
m_Thickness = dThickness
m_Q1 = dQ1
m_Q2 = dQ2
m_Q3 = dQ3
m_Q4 = dQ4
m_Q5 = dQ5
m_QExtra = dQExtra
m_refWaterPageV = refWJPage
End Sub
End Class
+32 -6
View File
@@ -323,8 +323,8 @@ Class MainWindow
' Verifico abilitazione nesting automatico ' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey) m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero opzioni della chiave ' Recupero opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2312, 1, m_nKeyLevel) And Dim bKey As Boolean = EgtGetKeyLevel(9423, 2404, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2312, 1, m_nKeyOptions) EgtGetKeyOptions(9423, 2404, 1, m_nKeyOptions)
' Verifico abilitazione prodotto ' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE) Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
' Inizializzazione generale di EgtInterface ' Inizializzazione generale di EgtInterface
@@ -569,6 +569,8 @@ Class MainWindow
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
' disbilito Test ' disbilito Test
TestOff() TestOff()
' disabilito DragRettangle
DragRettangleOff()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = True WorkInProgressBtn.IsChecked = True
@@ -625,6 +627,7 @@ Class MainWindow
EgtMdbGetGeneralParam(MCH_GP.SAFEZ, DirectCutPageUC.m_dZSafe) EgtMdbGetGeneralParam(MCH_GP.SAFEZ, DirectCutPageUC.m_dZSafe)
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -678,6 +681,7 @@ Class MainWindow
Private Sub CadCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles CadCutBtn.Click Private Sub CadCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles CadCutBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -730,6 +734,7 @@ Class MainWindow
Private Sub FrameCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrameCutBtn.Click Private Sub FrameCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrameCutBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -753,8 +758,8 @@ Class MainWindow
m_ActivePage = Pages.FrameCut m_ActivePage = Pages.FrameCut
Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV Case Pages.Photo, Pages.RawPart, Pages.Draw, Pages.Import, Pages.CSV
' Pages.Simulation: quando sono nella simulazione devo uscire dalla pagina ' Pages.Simulation: quando sono nella simulazione devo uscire dalla pagina
CadCutBtn.IsChecked = True CadCutBtn.IsChecked = False
FrameCutBtn.IsChecked = False FrameCutBtn.IsChecked = True
Case Pages.FrameCut Case Pages.FrameCut
FrameCutBtn.IsChecked = True FrameCutBtn.IsChecked = True
Case Pages.Machine Case Pages.Machine
@@ -783,6 +788,7 @@ Class MainWindow
Private Sub MachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachineBtn.Click Private Sub MachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachineBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -831,6 +837,7 @@ Class MainWindow
Private Sub OptionsBtn_Click(sender As Object, e As RoutedEventArgs) Handles OptionsBtn.Click Private Sub OptionsBtn_Click(sender As Object, e As RoutedEventArgs) Handles OptionsBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -1068,6 +1075,15 @@ Class MainWindow
If Not m_MachinePageUC.m_PolishingsPageUC.SaveKit() Then If Not m_MachinePageUC.m_PolishingsPageUC.SaveKit() Then
Return False Return False
End If End If
Case MachinePageUC.MachinePages.WaterJet
' Verifica ed eventuale salvataggio Db Waterjet
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Dim nPressedBtn As Integer = DirectCast(m_MachinePageUC.m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
Return False
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
m_MachinePageUC.m_WaterJetPageUC.WaterJetPage_Reinitialize()
End If
End Select End Select
Return True Return True
End Function End Function
@@ -1130,7 +1146,8 @@ Class MainWindow
Dim nPrjType As Integer = m_CurrentProjectPageUC.GetCurrentProjectType() Dim nPrjType As Integer = m_CurrentProjectPageUC.GetCurrentProjectType()
' Aggiorno interfaccia ' Aggiorno interfaccia
CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES) CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES)
FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS) FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS) AndAlso (EgtGetHeadId("H1") <> GDB_ID.NULL)
' DirectCutBtn.IsEnabled = (EgtGetHeadId("H1") <> GDB_ID.NULL)
End Sub End Sub
' Nomi dei file per OmagVIEW ' Nomi dei file per OmagVIEW
@@ -1875,8 +1892,17 @@ Class MainWindow
' deseleziono gli oggetti e spengo il bottone ' deseleziono gli oggetti e spengo il bottone
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv) EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv) EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
EgtResetMark(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
m_CadCutPageUC.m_ProjectMgr.TestBtn.IsChecked = False m_CadCutPageUC.m_ProjectMgr.TestBtn.IsChecked = False
m_CurrentProjectPageUC.m_bSelectCurv = False Me.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
End Sub
' spegne il comando per la mofica dei rettangoli
Public Sub DragRettangleOff()
m_CadCutPageUC.m_NestPage.DragRettanleBtn.IsChecked = False
Me.m_CadCutPageUC.m_NestPage.m_bIsCheckedDragRettangle = False
ShowParkedParts()
End Sub End Sub
End Class End Class
+3 -3
View File
@@ -22,7 +22,7 @@ Imports System.Windows
#End If #End If
<Assembly: AssemblyCompany("EgalTech s.r.l.")> <Assembly: AssemblyCompany("EgalTech s.r.l.")>
<Assembly: AssemblyProduct("OmagCUT")> <Assembly: AssemblyProduct("OmagCUT")>
<Assembly: AssemblyCopyright("Copyright © 2015-2021 by EgalTech s.r.l.")> <Assembly: AssemblyCopyright("Copyright © 2015-2022 by EgalTech s.r.l.")>
<Assembly: AssemblyTrademark("")> <Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)> <Assembly: ComVisible(False)>
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.3.12.1")> <Assembly: AssemblyVersion("2.4.4.1")>
<Assembly: AssemblyFileVersion("2.3.12.1")> <Assembly: AssemblyFileVersion("2.4.4.1")>
+22 -1
View File
@@ -281,6 +281,14 @@ Public Class CNCommunication
m_CN.SetCnDataVar(CN_generico.CnData.LimitZ, sVal) m_CN.SetCnDataVar(CN_generico.CnData.LimitZ, sVal)
GetPrivateProfileString(S_NCDATA, K_POWEROVR, "", sVal, m_MainWindow.GetMachIniFile()) GetPrivateProfileString(S_NCDATA, K_POWEROVR, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.PowerOvr, sVal) m_CN.SetCnDataVar(CN_generico.CnData.PowerOvr, sVal)
GetPrivateProfileString(S_NCDATA, K_PARKING, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.Parking, sVal)
GetPrivateProfileString(S_NCDATA, K_ENABLEZONE, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.EnableZone, sVal)
GetPrivateProfileString(S_NCDATA, K_ENABLEPC, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.EnablePC, sVal)
GetPrivateProfileString(S_NCDATA, K_VACUUMUP, "", sVal, m_MainWindow.GetMachIniFile()) GetPrivateProfileString(S_NCDATA, K_VACUUMUP, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.VacuumUp, sVal) m_CN.SetCnDataVar(CN_generico.CnData.VacuumUp, sVal)
GetPrivateProfileString(S_NCDATA, K_VACUUMDOWN, "", sVal, m_MainWindow.GetMachIniFile()) GetPrivateProfileString(S_NCDATA, K_VACUUMDOWN, "", sVal, m_MainWindow.GetMachIniFile())
@@ -539,6 +547,9 @@ Public Class CNCommunication
m_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.DoorClosedChanged(m_CN.nDoorClosedState) m_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.DoorClosedChanged(m_CN.nDoorClosedState)
m_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.LimitZChanged(m_CN.bLimitZState) m_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.LimitZChanged(m_CN.bLimitZState)
m_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.FiveAxisStateChanged(m_CN.Is_G24_active()) m_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.FiveAxisStateChanged(m_CN.Is_G24_active())
m_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.ParkingStateChanged(m_CN.bParkingState)
'm_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.ZoneStateChanged(m_CN.nEnableZone)
'm_MainWindow.m_DirectCutPageUC.m_ControlsMachineButton.PcStateChanged(m_CN.nEnablePc)
m_MainWindow.m_DirectCutPageUC.m_VacuumMachineButton.VacuumUpChanged(m_CN.bVacuumUp) m_MainWindow.m_DirectCutPageUC.m_VacuumMachineButton.VacuumUpChanged(m_CN.bVacuumUp)
m_MainWindow.m_DirectCutPageUC.m_VacuumMachineButton.VacuumDownChanged(m_CN.bVacuumDown) m_MainWindow.m_DirectCutPageUC.m_VacuumMachineButton.VacuumDownChanged(m_CN.bVacuumDown)
m_MainWindow.m_DirectCutPageUC.m_VacuumMachineButton.Vacuum2UpChanged(m_CN.bVacuum2Up) m_MainWindow.m_DirectCutPageUC.m_VacuumMachineButton.Vacuum2UpChanged(m_CN.bVacuum2Up)
@@ -583,7 +594,12 @@ Public Class CNCommunication
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.ThreeAxisStateChanged(True) m_MainWindow.m_DirectCutPageUC.m_MachineButtons.ThreeAxisStateChanged(True)
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.FiveAxisStateChanged(False) m_MainWindow.m_DirectCutPageUC.m_MachineButtons.FiveAxisStateChanged(False)
End If End If
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.DoorStateChanged(m_CN.nDoorClosedState) 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.EnableZoneStateChanged(m_CN.nEnableZone)
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.EnablePcStateChanged(m_CN.nEnablePc)
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.TableUpChanged(m_CN.bTableUpState)
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.TableDownChanged(m_CN.bTableDownState)
' Nuovi bottoni (uso joystick) per Area4 ' Nuovi bottoni (uso joystick) per Area4
If m_IsNewConsole Then If m_IsNewConsole Then
@@ -619,6 +635,11 @@ Public Class CNCommunication
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.FiveAxisStateChanged(False) m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.FiveAxisStateChanged(False)
End If End If
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.DoorStateChanged(m_CN.nDoorClosedState) m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.DoorStateChanged(m_CN.nDoorClosedState)
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.ParkingStateChanged(m_CN.bParkingState)
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.EnableZoneStateChanged(m_CN.nEnableZone)
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.EnablePcStateChanged(m_CN.nEnablePc)
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.TableUpChanged(m_CN.bTableUpState)
m_MainWindow.m_WorkInProgressPageUC.m_MachineButtons.TableDownChanged(m_CN.bTableDownState)
End If End If
End Sub End Sub
+8 -1
View File
@@ -8,7 +8,7 @@ Public MustInherit Class CN_generico
Public Const MAX_VAR As Short = 100 Public Const MAX_VAR As Short = 100
Public Const MAX_VALUES As Short = 9 ' Max. index to read the data from the FXServer array Public Const MAX_VALUES As Short = 9 ' Max. index to read the data from the FXServer array
Public Const MAX_TOOLS As Short = 100 Public Const MAX_TOOLS As Short = 100
Public Const NUM_DATA = 52 ' Numero di dati del CN (Speed,Feed,...) Public Const NUM_DATA = 55 ' Numero di dati del CN (Speed,Feed,...)
Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC
@@ -66,6 +66,10 @@ Public MustInherit Class CN_generico
ZBJog = 49 ZBJog = 49
PowerON = 50 PowerON = 50
Remote = 51 Remote = 51
Parking = 52
EnableZone = 53
EnablePC = 54
End Enum End Enum
#End Region #End Region
@@ -173,6 +177,9 @@ Public MustInherit Class CN_generico
Public nDoorClosedState As Integer Public nDoorClosedState As Integer
Public bLimitZState As Boolean Public bLimitZState As Boolean
Public bPowerOvr As Double Public bPowerOvr As Double
Public bParkingState As Boolean
Public nEnableZone As Integer
Public nEnablePc As Integer
Public bHsm As Double Public bHsm As Double
Public bVacuumUp As Boolean Public bVacuumUp As Boolean
Public bVacuumDown As Boolean Public bVacuumDown As Boolean
+12 -5
View File
@@ -1077,17 +1077,24 @@ Namespace Num
Case CnData.VacuumOff ' (45) Stato aspirazione ventose spento Case CnData.VacuumOff ' (45) Stato aspirazione ventose spento
bVacuumOff = CBool(values(n)) bVacuumOff = CBool(values(n))
Case CnData.XYJog ' (46) Case CnData.XYJog ' (47)
bXYJog = CBool(values(n)) bXYJog = CBool(values(n))
Case CnData.ZCJog ' (47) Case CnData.ZCJog ' (48)
bZCJog = CBool(values(n)) bZCJog = CBool(values(n))
Case CnData.ZBJog ' (48) Case CnData.ZBJog ' (49)
bZBCJog = CBool(values(n)) bZBCJog = CBool(values(n))
Case CnData.PowerON ' (49) Case CnData.PowerON ' (50)
bPowerON = CBool(values(n)) bPowerON = CBool(values(n))
Case CnData.Remote ' (50) Case CnData.Remote ' (51)
bRemote = CBool(values(n)) bRemote = CBool(values(n))
Case CnData.Parking ' (52)
bParkingState = CBool(values(n))
Case CnData.EnableZone ' (53)
nEnableZone = CInt(values(n))
Case CnData.EnablePC ' (54)
nEnablePc = CInt(values(n))
End Select End Select
Next Next
+32
View File
@@ -166,6 +166,9 @@
<Compile Include="AboutBox\AboutBoxWD.xaml.vb"> <Compile Include="AboutBox\AboutBoxWD.xaml.vb">
<DependentUpon>AboutBoxWD.xaml</DependentUpon> <DependentUpon>AboutBoxWD.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="CadCuts\SelectPartFromFamilyWD.xaml.vb">
<DependentUpon>SelectPartFromFamilyWD.xaml</DependentUpon>
</Compile>
<Compile Include="CAM\CamPolishing.vb" /> <Compile Include="CAM\CamPolishing.vb" />
<Compile Include="DirectCuts\Polishing.xaml.vb"> <Compile Include="DirectCuts\Polishing.xaml.vb">
<DependentUpon>Polishing.xaml</DependentUpon> <DependentUpon>Polishing.xaml</DependentUpon>
@@ -196,9 +199,16 @@
<DependentUpon>CadCutPageUC.xaml</DependentUpon> <DependentUpon>CadCutPageUC.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="CAM\CamAuto.vb" /> <Compile Include="CAM\CamAuto.vb" />
<Compile Include="Machine\ImportExportMachiningWindowWD.xaml.vb">
<DependentUpon>ImportExportMachiningWindowWD.xaml</DependentUpon>
</Compile>
<Compile Include="Machine\ImportExportToolWD.xaml.vb"> <Compile Include="Machine\ImportExportToolWD.xaml.vb">
<DependentUpon>ImportExportToolWD.xaml</DependentUpon> <DependentUpon>ImportExportToolWD.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Machine\WaterJetPageVM.vb" />
<Compile Include="Machine\WaterJetPageUC.xaml.vb">
<DependentUpon>WaterJetPageUC.xaml</DependentUpon>
</Compile>
<Compile Include="Project\StartLauncheWD.xaml.vb"> <Compile Include="Project\StartLauncheWD.xaml.vb">
<DependentUpon>StartLauncheWD.xaml</DependentUpon> <DependentUpon>StartLauncheWD.xaml</DependentUpon>
</Compile> </Compile>
@@ -398,6 +408,10 @@
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="CadCuts\SelectPartFromFamilyWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="DirectCuts\Polishing.xaml"> <Page Include="DirectCuts\Polishing.xaml">
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@@ -434,9 +448,17 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Machine\ImportExportMachiningWindowWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Machine\ImportExportToolWD.xaml"> <Page Include="Machine\ImportExportToolWD.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Include="Machine\WaterJetPageUC.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Project\StartLauncheWD.xaml"> <Page Include="Project\StartLauncheWD.xaml">
</Page> </Page>
<Page Include="Project\CicloStartWD.xaml"> <Page Include="Project\CicloStartWD.xaml">
@@ -1223,6 +1245,16 @@
<ItemGroup> <ItemGroup>
<Resource Include="Resources\NewIcons\Acquisisci-P.png" /> <Resource Include="Resources\NewIcons\Acquisisci-P.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<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" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe <PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
+9
View File
@@ -46,6 +46,7 @@
<BitmapImage x:Key="DownArrowImg" UriSource="Resources/NewIcons/DownArrow.png"></BitmapImage> <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="DrawImg" UriSource="Resources/NewIcons/icone-tagli-3.png"></BitmapImage>
<BitmapImage x:Key="FrameMachiningImg" UriSource="Resources/NewIcons/FrameMachining.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="GenericViewImg" UriSource="Resources/NewIcons/GenericView.png"></BitmapImage>
<BitmapImage x:Key="HalfTurnRotateImg" UriSource="Resources/Negative/HalfTurnRotate.png"></BitmapImage> <BitmapImage x:Key="HalfTurnRotateImg" UriSource="Resources/Negative/HalfTurnRotate.png"></BitmapImage>
<BitmapImage x:Key="ImportImg" UriSource="Resources/NewIcons/icone-tagli-6.png"></BitmapImage> <BitmapImage x:Key="ImportImg" UriSource="Resources/NewIcons/icone-tagli-6.png"></BitmapImage>
@@ -105,6 +106,7 @@
<BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage> <BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage>
<BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Drag_RettangleImg" UriSource="Resources/NewIcons/Drag_Rettangle.png"></BitmapImage>
<!--Machine--> <!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage> <BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
@@ -332,6 +334,13 @@
<Setter Property="Foreground" Value="White"/> <Setter Property="Foreground" Value="White"/>
</Style> </Style>
<Style x:Key="OmagCut_WjDbRightGrayGradientYellowTextButton" TargetType="{x:Type Button}" BasedOn="{StaticResource OmagCut_Button_Wrap}">
<Setter Property="Background" Value="#1C1D22"/>
<Setter Property="BorderBrush" Value="#1C1D22"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="15"/>
</Style>
<Style x:Key="OmagCut_YellowIconToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource OmagCut_ToggleButton}"> <Style x:Key="OmagCut_YellowIconToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource OmagCut_ToggleButton}">
<Setter Property="OverridesDefaultStyle" Value="True" /> <Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Background" Value="#636974"/> <Setter Property="Background" Value="#636974"/>
+24 -1
View File
@@ -116,6 +116,7 @@
<BitmapImage x:Key="DownArrowImg" UriSource="Resources/DownArrow.png"></BitmapImage> <BitmapImage x:Key="DownArrowImg" UriSource="Resources/DownArrow.png"></BitmapImage>
<BitmapImage x:Key="DrawImg" UriSource="Resources/Draw.png"></BitmapImage> <BitmapImage x:Key="DrawImg" UriSource="Resources/Draw.png"></BitmapImage>
<BitmapImage x:Key="FrameMachiningImg" UriSource="Resources/FrameMachining.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="GenericViewImg" UriSource="Resources/GenericView.png"></BitmapImage>
<BitmapImage x:Key="HalfTurnRotateImg" UriSource="Resources/HalfTurnRotate.png"></BitmapImage> <BitmapImage x:Key="HalfTurnRotateImg" UriSource="Resources/HalfTurnRotate.png"></BitmapImage>
<BitmapImage x:Key="ImportImg" UriSource="Resources/Import.png"></BitmapImage> <BitmapImage x:Key="ImportImg" UriSource="Resources/Import.png"></BitmapImage>
@@ -173,6 +174,7 @@
<BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage> <BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage>
<BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Drag_RettangleImg" UriSource="Resources/NewIcons/Drag_Rettangle.png"></BitmapImage>
<!--Machine--> <!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage> <BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
@@ -470,6 +472,13 @@
</Style.Triggers> </Style.Triggers>
</Style> </Style>
<Style x:Key="OmagCut_WjDbRightGrayGradientYellowTextButton" TargetType="{x:Type Button}" BasedOn="{StaticResource OmagCut_Button_Wrap}">
<Setter Property="Background" Value="{StaticResource OmagCut_RightGradientGray}"/>
<Setter Property="BorderBrush" Value="{StaticResource OmagCut_Yellow}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="FontSize" Value="15"/>
</Style>
<!-- ______________________________________________________________________________________________________________________ --> <!-- ______________________________________________________________________________________________________________________ -->
<!--CheckBox--> <!--CheckBox-->
@@ -1198,7 +1207,21 @@
<Setter Property="KeyboardDimension" Value="300"/> <Setter Property="KeyboardDimension" Value="300"/>
</Style> </Style>
<Style x:Key="OmagCut_MachToolCalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_CalculatorTextBox}"> <Style x:Key="OmagCut_CalculatorParamWjTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_TextBox}">
<Setter Property="Width" Value="80"/>
<Setter Property="Keyboard" Value="Calculator"/>
<Setter Property="KeyboardDimension" Value="300"/>
<Setter Property="IsHitTestVisible" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ListBoxItem}, AncestorLevel=1}}"
Value="True">
<Setter Property="IsHitTestVisible" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="OmagCut_MachToolCalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_CalculatorTextBox}">
<Setter Property="Margin" Value="{DynamicResource MachToolLeftTextBoxNoBorder_Margin}"/> <Setter Property="Margin" Value="{DynamicResource MachToolLeftTextBoxNoBorder_Margin}"/>
</Style> </Style>
+24 -2
View File
@@ -50,6 +50,7 @@ Namespace TreeViewItem
Private m_sPictureString As String Private m_sPictureString As String
Private m_nTType As Integer Private m_nTType As Integer
Private m_Items As ObservableCollection(Of CustomItem) Private m_Items As ObservableCollection(Of CustomItem)
Friend m_IsValidTool As Boolean
Public ReadOnly Property PictureString As String Public ReadOnly Property PictureString As String
Get Get
@@ -86,12 +87,13 @@ Namespace TreeViewItem
'Private m_sTitle As String 'Private m_sTitle As String
Private m_nType As Integer Private m_nType As Integer
'Private m_sName As String
'Public Property Name As String 'Public Property Name As String
' Get ' Get
' Return m_sTitle ' Return m_sName
' End Get ' End Get
' Set(value As String) ' Set(value As String)
' m_sTitle = value ' m_sName = value
' End Set ' End Set
'End Property 'End Property
@@ -101,11 +103,31 @@ Namespace TreeViewItem
End Get End Get
End Property End Property
Friend m_IsValidTool As Boolean = True
Public Property IsValidTool As Boolean
Get
Return m_IsValidTool
End Get
Set(value As Boolean)
If value <> m_IsValidTool Then
m_IsValidTool = value
NotifyPropertyChanged("ToolColor")
End If
End Set
End Property
Sub New(Title As String, nType As Integer) Sub New(Title As String, nType As Integer)
Me.Name = Title Me.Name = Title
m_nType = nType m_nType = nType
End Sub End Sub
Sub New(sName As String, nType As Integer, bIsValidTool As Boolean)
MyBase.Name = sName
m_nType = nType
m_IsValidTool = bIsValidTool
End Sub
End Class End Class
Public Class PartCathegoryItem Public Class PartCathegoryItem
+1 -1
View File
@@ -18,7 +18,7 @@ Class CicloStartWD
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2 Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2 Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
' imopposto il messaggio di avvio ' imopposto il messaggio di avvio
CicloStartTxbl.Text = "Avvio Ciclo-Start" CicloStartTxbl.Text = EgtMsg(91130) ' Esegui programma?
End Sub End Sub
' creo un progetto nuovo ' creo un progetto nuovo
+23 -40
View File
@@ -6,7 +6,6 @@ Imports EgtWPFLib5
Public Class CurrentProjectPageUC Public Class CurrentProjectPageUC
' Dichiarazione eventi ' Dichiarazione eventi
Friend Event OnMouseDownSceneSelCurv(sender As Object, e As System.Windows.Forms.MouseEventArgs)
Friend Event OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Friend Event OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
Friend Event OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Friend Event OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
Friend Event OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Friend Event OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
@@ -24,8 +23,8 @@ Public Class CurrentProjectPageUC
' Dati del grezzo ' Dati del grezzo
Friend m_nRawId As Integer = GDB_ID.NULL Friend m_nRawId As Integer = GDB_ID.NULL
Friend m_dRawHeight As Double Friend m_dRawHeight As Double
' pagina impostata per selezionare una lavorazione '' Flag per impostata per selezionare di una curva
Friend m_bSelectCurv As Boolean = False 'Friend m_bSelectCurv As Boolean = False
' Costanti tipo progetto ' Costanti tipo progetto
Friend Enum PRJ_TYPE As Integer Friend Enum PRJ_TYPE As Integer
EMPTY = 0 EMPTY = 0
@@ -181,42 +180,12 @@ Public Class CurrentProjectPageUC
EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir()) EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir())
m_bFirst = False 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 ' creo nuovo progetto
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile()) m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
'NewProject() 'NewProject()
' Nascondo progress per fotografia ' Nascondo progress per fotografia
PhotoProgress.Visibility = Windows.Visibility.Hidden 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 Else
EgtSetCurrentContext(CurrentProjectScene.GetCtx()) EgtSetCurrentContext(CurrentProjectScene.GetCtx())
@@ -275,8 +244,10 @@ Public Class CurrentProjectPageUC
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_OpenPage) m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_OpenPage)
m_MainWindow.m_ActivePage = MainWindow.Pages.Open 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 ElseIf MyStartLancherWD.CurrSelection = MODE_LAUNCHER.SelectedProject Then
NewProject() NewProject()
Dim sCurrDir As String = Path.GetDirectoryName(MyStartLancherWD.SelPath) Dim sCurrDir As String = Path.GetDirectoryName(MyStartLancherWD.SelPath)
@@ -305,6 +276,21 @@ Public Class CurrentProjectPageUC
End If End If
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 End Sub
' questo metodo è direttamente richiamato in caso di selezione della regione sinistra della pagina ' questo metodo è direttamente richiamato in caso di selezione della regione sinistra della pagina
@@ -328,12 +314,7 @@ Public Class CurrentProjectPageUC
End Sub End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseDownScene Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseDownScene
If m_bSelectCurv Then RaiseEvent OnMouseDownScene(sender, e)
RaiseEvent OnMouseDownSceneSelCurv(sender, e)
Else
RaiseEvent OnMouseDownScene(sender, e)
End If
End Sub End Sub
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseMoveScene Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseMoveScene
@@ -622,6 +603,8 @@ Public Class CurrentProjectPageUC
File.Copy(sPhoto, sNewPhoto, True) File.Copy(sPhoto, sNewPhoto, True)
Catch ex As FileNotFoundException Catch ex As FileNotFoundException
' non è un problema ' non è un problema
Catch ex As DirectoryNotFoundException
' non è un problema
Catch ex As Exception Catch ex As Exception
Return False Return False
End Try End Try
+14 -15
View File
@@ -34,9 +34,7 @@ Public Class ProjectMgrUC
Private Sub ProjectMgrUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded Private Sub ProjectMgrUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
' Impostazioni ' Impostazioni
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC SetReference()
m_CurrMachine = m_MainWindow.m_CurrentMachine
m_CurrNcComm = m_MainWindow.m_CNCommunication
' Se richiesto carico finestra per VeinMatching e ultimo intarsio ' Se richiesto carico finestra per VeinMatching e ultimo intarsio
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO) And If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO) And
@@ -55,6 +53,12 @@ Public Class ProjectMgrUC
End If End If
End Sub 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 Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx()) EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
@@ -276,7 +280,7 @@ Public Class ProjectMgrUC
m_CurrProjPage.SetWarningMessage("Trial Version") m_CurrProjPage.SetWarningMessage("Trial Version")
#Else #Else
' se sono in modalità Test allora eseguo solo il posizionamento della lama ' se sono in modalità Test allora eseguo solo il posizionamento della lama
If m_CurrProjPage.m_bSelectCurv Then If m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv Then
' Verifico non sia versione Ufficio ' Verifico non sia versione Ufficio
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
m_CurrProjPage.SetWarningMessage("Office Version") m_CurrProjPage.SetWarningMessage("Office Version")
@@ -336,7 +340,7 @@ Public Class ProjectMgrUC
' verifica assi lineari ' verifica assi lineari
EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat) EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat)
If nStat <> 0 Then If nStat <> 0 Then
vtDirT = - vtDirT vtDirT = -vtDirT
ptMid -= vtDirT * dThick ptMid -= vtDirT * dThick
EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2) EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2)
' calcolo la posizione degli assi lineari X, Y, Z ( correggere il punto ptMid.z sommando il raggio utensile) ' calcolo la posizione degli assi lineari X, Y, Z ( correggere il punto ptMid.z sommando il raggio utensile)
@@ -466,20 +470,15 @@ Public Class ProjectMgrUC
' se abilitato e non è restart, lancio eventuale lua post-trasmissione ' se abilitato e non è restart, lancio eventuale lua post-trasmissione
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.SIMPLESTATISTICS) And nPhaseRestart = 0 Then If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.SIMPLESTATISTICS) And nPhaseRestart = 0 Then
m_MainWindow.ExecSentProgScript(False) 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
End If End If
'-------------------Avvio il Ciclo-Start------------------------- '------------------- INIZIO Avvio il Ciclo-Start-------------------------
If GetPrivateProfileInt(S_GENERAL, "StartProgram", 0, m_MainWindow.GetIniFile()) <> 0 Then If GetPrivateProfileInt(S_GENERAL, K_STARTPROGRAM, 0, m_MainWindow.GetIniFile()) <> 0 Then
Dim MyCicloStartWD As New CicloStartWD(m_MainWindow) Dim MyCicloStartWD As New CicloStartWD(m_MainWindow)
MyCicloStartWD.ShowDialog() MyCicloStartWD.ShowDialog()
End If End If
'------------------- FINE Avvio il Ciclo-Start-------------------------
'-------------------Avvio il Ciclo-Start-------------------------
' Altrimenti linea di produzione ' Altrimenti linea di produzione
Else Else
@@ -736,11 +735,11 @@ Public Class ProjectMgrUC
Private Sub TestBtn_Click(sender As Object, e As RoutedEventArgs) Handles TestBtn.Click Private Sub TestBtn_Click(sender As Object, e As RoutedEventArgs) Handles TestBtn.Click
If TestBtn.IsChecked Then If TestBtn.IsChecked Then
m_CurrProjPage.m_bSelectCurv = True m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = True
' deseleziono tutto ' deseleziono tutto
EgtDeselectAll() EgtDeselectAll()
Else Else
m_CurrProjPage.m_bSelectCurv = False m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv) EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv) EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
End If End If
+24 -1
View File
@@ -287,7 +287,6 @@ Public Class Camera
Public Function CameraClick() As Boolean Public Function CameraClick() As Boolean
' Verifiche preliminari ' Verifiche preliminari
Dim nInd As Integer = PrepareCamera() Dim nInd As Integer = PrepareCamera()
If nInd = 0 Then Return False
' Visualizzo progressbar ' Visualizzo progressbar
m_bBusy = True m_bBusy = True
m_MainWindow.m_CurrentProjectPageUC.PhotoProgress.Visibility = Visibility.Visible m_MainWindow.m_CurrentProjectPageUC.PhotoProgress.Visibility = Visibility.Visible
@@ -308,6 +307,30 @@ Public Class Camera
End If End If
Catch ex As Exception Catch ex As Exception
End Try End Try
' ------------------------------------ accensione riflettori ------------------------------------
Dim sPLCVarSpotLight1 As String = String.Empty
GetPrivateProfileString(S_NCDATA, K_SPOTLIGHT1, "", sPLCVarSpotLight1, m_MainWindow.GetMachIniFile())
Dim sPLCVarSpotLight2 As String = String.Empty
GetPrivateProfileString(S_NCDATA, K_SPOTLIGHT2, "", sPLCVarSpotLight2, m_MainWindow.GetMachIniFile())
Dim nPhotoDeley As Integer = GetPrivateProfileInt(S_NCNUM, K_PHOTODELEY, "100", m_MainWindow.GetMachIniFile())
Select Case m_MainWindow.m_CNCommunication.m_nNCType
Case 1, 2
If m_MainWindow.m_CNCommunication.m_nNCType = 2 Then
' solo per Flexium
m_MainWindow.m_CNCommunication.m_CN.DPlcVariables_WriteVariables(If(nInd <> 2, sPLCVarSpotLight1, sPLCVarSpotLight2), "1")
' altrimenti scrittura delle variabili E
Else
m_MainWindow.m_CNCommunication.m_CN.DVariables_WriteVariables2(If(nInd <> 2, sPLCVarSpotLight1, sPLCVarSpotLight2), "1")
End If
System.Threading.Thread.Sleep(nPhotoDeley)
Case 3
' SIEMENS
End Select
' ------------------------------------ accensione riflettori ------------------------------------
' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo) ' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo)
Dim bOk As Boolean = False Dim bOk As Boolean = False
Dim sArgs As String = "2 0" Dim sArgs As String = "2 0"
+27 -9
View File
@@ -80,17 +80,35 @@
</ComboBox> </ComboBox>
<!--WATERJET--> <!--WATERJET-->
<TextBlock Name="CurrWJettingTxBl" Grid.Column="1" Grid.Row="2" <TextBlock Name="CurrWJettingTxBl" Grid.Column="1" Grid.Row="2"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Visibility="Hidden"/> Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Visibility="Hidden"/>
<ComboBox Name="CurrWJettingCmBx" Grid.Column="1" Grid.Row="3" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="20" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!--Bottoni Conferma/Cancel --> <Grid Name="WaterJettingUGrd" Grid.Column="1" Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4.5*"/>
<ColumnDefinition Width="0.2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<ComboBox Name="CurrWJettingCmBx" Grid.Column="0" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="20" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox Name="CurrWJettingQualityCmBx" Grid.Column="2" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="20" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
<!--Bottoni Conferma/Cancel -->
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.Row="3" Grid.RowSpan="2"> <Grid Name="ButtonsGrid" Grid.Column="1" Grid.Row="3" Grid.RowSpan="2">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="0.5*"/>
+64 -13
View File
@@ -41,6 +41,7 @@ Public Class ChooseMachining
CurrMillingCmBx.ItemsSource = m_MillingList CurrMillingCmBx.ItemsSource = m_MillingList
CurrPocketingCmBx.ItemsSource = m_PocketingList CurrPocketingCmBx.ItemsSource = m_PocketingList
CurrWJettingCmBx.ItemsSource = m_WJettingList CurrWJettingCmBx.ItemsSource = m_WJettingList
CurrWJettingQualityCmBx.ItemsSource = m_CurrentMachine.Qualities
CurrSawingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 1) CurrSawingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 1)
AuxiliaryMachiningTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 2) AuxiliaryMachiningTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 2)
@@ -59,6 +60,12 @@ Public Class ChooseMachining
Private Sub InitializeMachiningLists() Private Sub InitializeMachiningLists()
' in assenza dell'uscita H1 nascondo i parametri lama
If EgtGetHeadId("H1") = GDB_ID.NULL Then
CurrSawingTxBl.Visibility = Visibility.Hidden
CurrSawingCmBx.Visibility = Visibility.Hidden
End If
' -- TAGLIO -- ' -- TAGLIO --
CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList) CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList)
' aggiungo un campo vuoto ' aggiungo un campo vuoto
@@ -256,19 +263,38 @@ Public Class ChooseMachining
If SysNotes <> String.Empty Then If SysNotes <> String.Empty Then
Dim MachiningMaterials() = SysNotes.Split(";".ToCharArray) Dim MachiningMaterials() = SysNotes.Split(";".ToCharArray)
SysNotes = String.Empty SysNotes = String.Empty
For Each Material As Object In MachiningMaterials If m_CurrentMachine.bWaterJet And m_CurrentMachine.bFromDBWaterJet Then
Dim Param() As String = Material.Split(",".ToCharArray) For Each Material As Object In MachiningMaterials
If Param(0) = m_CurrentMachine.CurrMat.nId.ToString() Then Dim Param() As String = Material.Split(",".ToCharArray)
Dim dRawHeight = GetRawHeight() Dim SubParam() As String = Param(0).Split(".".ToCharArray)
Dim MatMinH As Double = 0 If SubParam(0) = m_CurrentMachine.CurrMat.nId.ToString() AndAlso SubParam.Count > 1 AndAlso SubParam(1) = m_CurrentMachine.CurrMat.SubId.ToString() Then
StringToDouble(Param(1), MatMinH) Dim dRawHeight = GetRawHeight()
Dim MatMaxH As Double = 0 Dim MatMinH As Double = 0
StringToDouble(Param(2), MatMaxH) StringToDouble(Param(1), MatMinH)
If dRawHeight > MatMinH - EPS_SMALL And dRawHeight < MatMaxH + EPS_SMALL Then Dim MatMaxH As Double = 0
Return True StringToDouble(Param(2), MatMaxH)
If dRawHeight > MatMinH - EPS_SMALL And dRawHeight < MatMaxH + EPS_SMALL Then
Return True
End If
End If End If
End If Next
Next Else
For Each Material As Object In MachiningMaterials
Dim Param() As String = Material.Split(",".ToCharArray)
If Param(0) = m_CurrentMachine.CurrMat.nId.ToString() Then
Dim dRawHeight = GetRawHeight()
Dim MatMinH As Double = 0
StringToDouble(Param(1), MatMinH)
Dim MatMaxH As Double = 0
StringToDouble(Param(2), MatMaxH)
If dRawHeight > MatMinH - EPS_SMALL And dRawHeight < MatMaxH + EPS_SMALL Then
Return True
End If
End If
Next
End If
Return False Return False
Else Else
Return False Return False
@@ -553,7 +579,8 @@ Public Class ChooseMachining
Next Next
m_RowNumber = m_RowNumber + nNewRow m_RowNumber = m_RowNumber + nNewRow
CurrWJettingTxBl.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow) CurrWJettingTxBl.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow)
CurrWJettingCmBx.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow + 1) 'CurrWJettingCmBx.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow + 1)
WaterJettingUGrd.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow + 1)
If m_CurrentMachine.sCurrWaterJetting <> String.Empty Then If m_CurrentMachine.sCurrWaterJetting <> String.Empty Then
CurrWJettingCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJetting CurrWJettingCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJetting
End If End If
@@ -564,6 +591,22 @@ Public Class ChooseMachining
End If End If
CurrWJettingTxBl.Visibility = Windows.Visibility.Visible CurrWJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWJettingCmBx.Visibility = Windows.Visibility.Visible CurrWJettingCmBx.Visibility = Windows.Visibility.Visible
' se DB WaterJet abilitato avrò anche la CmBx della Quality altrimenti espando la CmBx del Waterjetting corrente su tutta la riga
If m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
CurrWJettingCmBx.SetValue(Grid.ColumnSpanProperty, 1)
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
CurrWJettingQualityCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJettingQuality
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrWJettingQualityCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJettingQuality Then m_MachIsModified = True
End If
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Visible
Else
CurrWJettingCmBx.SetValue(Grid.ColumnSpanProperty, 3)
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Collapsed
End If
End If End If
Me.Height = 42 * m_RowNumber Me.Height = 42 * m_RowNumber
@@ -590,12 +633,20 @@ Public Class ChooseMachining
m_MainWindow.m_CurrentMachine.sCurrWaterJetting = CurrWJettingCmBx.SelectedItem.ToString() m_MainWindow.m_CurrentMachine.sCurrWaterJetting = CurrWJettingCmBx.SelectedItem.ToString()
End Sub End Sub
Private Sub CurrQaulityWJettingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrWJettingQualityCmBx.SelectionChanged
m_MainWindow.m_CurrentMachine.sCurrWaterJettingQuality = CurrWJettingQualityCmBx.SelectedItem.ToString()
End Sub
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
DialogResult = True DialogResult = True
' Aggiorno i parametri dei tagli diretti
m_MainWindow.m_DirectCutPageUC.ReloadParam()
End Sub End Sub
Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click
DialogResult = False DialogResult = False
' Aggiorno i parametri dei tagli diretti
m_MainWindow.m_DirectCutPageUC.ReloadParam()
End Sub End Sub
End Class End Class
+68 -39
View File
@@ -140,9 +140,9 @@ Public Class RawPartPageUC
' Nascondo bottone dati lastra se non attivato da file .ini ' Nascondo bottone dati lastra se non attivato da file .ini
m_bSlabId = (Not m_CurrentMachine.bHasRawBarCodeReader And m_bSlabId = (Not m_CurrentMachine.bHasRawBarCodeReader And
GetPrivateProfileInt(S_RAWPART, K_SLABID, 0, m_MainWindow.GetIniFile()) <> 0) GetPrivateProfileInt(S_RAWPART, K_SLABID, 0, m_MainWindow.GetIniFile()) <> 0)
SlabIdBtn.Visibility = If( m_bSlabId, Windows.Visibility.Visible, Windows.Visibility.Collapsed) 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 ' Imposto i messaggi letti dal file dei messaggi
OutlineBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 33) 'Rectangle - Rettangolo OutlineBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 33) 'Rectangle - Rettangolo
@@ -165,10 +165,16 @@ Public Class RawPartPageUC
End Sub End Sub
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs) Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
' aggiorno la lista dei materiali
Dim Index As Integer = 1
If m_CurrentMachine.bWaterJet And m_CurrentMachine.bFromDBWaterJet Then
m_CurrentMachine.LoadWJMaterial()
End If
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_bActive = True m_bActive = True
' Assegno modalità acquisizione punti laser (da disegno se non collegato alla macchina) ' Assegno modalità acquisizione punti laser (da disegno se non collegato alla macchina)
m_bFromDraw = ( m_MainWindow.m_CNCommunication.m_nNCType = 0) m_bFromDraw = (m_MainWindow.m_CNCommunication.m_nNCType = 0)
' Correggo differenza tra machinebuttons che ha 10 colonne e spazio disponibile solo per 9 facendolo sbordare(non si vede perchè la parte che avanza è vuota) ' Correggo differenza tra machinebuttons che ha 10 colonne e spazio disponibile solo per 9 facendolo sbordare(non si vede perchè la parte che avanza è vuota)
m_MachineButtons.Width = LowerButtonGrid.ActualWidth / 12 * 10 m_MachineButtons.Width = LowerButtonGrid.ActualWidth / 12 * 10
' Se disponibile, imposto possibilità di contorno da foto ' Se disponibile, imposto possibilità di contorno da foto
@@ -226,7 +232,7 @@ Public Class RawPartPageUC
End If End If
' aggiorno l'apparenza del grezzo ' aggiorno l'apparenza del grezzo
AdjustRawPartOnStart() AdjustRawPartOnStart()
' Altrimenti lo definisco ' Altrimenti lo definisco
Else Else
' Leggo da Ini gli ultimi valori ' Leggo da Ini gli ultimi valori
m_RawLength = GetPrivateProfileDouble(S_RAWPART, K_RAWLENGTH, 2500, m_MainWindow.GetIniFile()) m_RawLength = GetPrivateProfileDouble(S_RAWPART, K_RAWLENGTH, 2500, m_MainWindow.GetIniFile())
@@ -241,12 +247,12 @@ Public Class RawPartPageUC
' Eventuale gestione dati lastra ' Eventuale gestione dati lastra
If m_bSlabId Then If m_bSlabId Then
Dim sBlock As String = "" Dim sBlock As String = ""
GetPrivateProfileString( S_RAWPART, K_BLOCKNAME, "", sBlock, m_MainWindow.GetIniFile()) GetPrivateProfileString(S_RAWPART, K_BLOCKNAME, "", sBlock, m_MainWindow.GetIniFile())
Dim nSlabNbr As Integer = GetPrivateProfileInt( S_RAWPART, K_SLABNBR, 0, m_MainWindow.GetIniFile()) Dim nSlabNbr As Integer = GetPrivateProfileInt(S_RAWPART, K_SLABNBR, 0, m_MainWindow.GetIniFile())
nSlabNbr += 1 nSlabNbr += 1
Dim sSlabNbr As String = nSlabNbr.ToString() Dim sSlabNbr As String = nSlabNbr.ToString()
WritePrivateProfileString( S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile()) WritePrivateProfileString(S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
Utility.SetBlockAndSlabNbr( sBlock, sSlabNbr) Utility.SetBlockAndSlabNbr(sBlock, sSlabNbr)
End If End If
End If End If
' Assegno dati grezzo rettangolare ai textbox ' Assegno dati grezzo rettangolare ai textbox
@@ -282,8 +288,14 @@ Public Class RawPartPageUC
End If End If
EgtZoom(ZM.ALL) EgtZoom(ZM.ALL)
End If End If
' Imposto il materiale corrente nella combobox 'Imposto il materiale corrente nella combobox
MaterialsCmbx.SelectedItem = m_CurrentMachine.CurrMat 'MaterialsCmbx.SelectedItem = m_CurrentMachine.CurrMat
Dim Item As Material
For Each Item In MaterialsCmbx.Items
If Not IsNothing(m_CurrentMachine.CurrMat) AndAlso Item.sName = m_CurrentMachine.CurrMat.sName Then
MaterialsCmbx.SelectedItem = Item
End If
Next
End Sub End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
@@ -952,13 +964,21 @@ Public Class RawPartPageUC
m_nPtMode = If(AddBtn.IsChecked, PTMODE.ADD, PTMODE.MOVE) m_nPtMode = If(AddBtn.IsChecked, PTMODE.ADD, PTMODE.MOVE)
Case RAWMODE.FROM_LASER Case RAWMODE.FROM_LASER
Dim ptAcquired As Point3d Dim ptAcquired As Point3d
'----------------------------------------- INIZIO ------------------ se decido di inserire i punti laser manualmente -------------------------------------------------- ' Se inserimento manuale dei punti laser
If m_bFromDraw And Not IsNothing(m_ptPrev) Then If m_bFromDraw Then
ptAcquired = m_ptPrev If Not IsNothing(m_ptPrev) Then
ptAcquired.ToLoc(New Frame3d(m_ptTableMin)) ptAcquired = m_ptPrev
'----------------------------------------- FINE ------------------- se decido di inserire i punti laser manualmente -------------------------------------------------- ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
ElseIf Not AcquireLaserPoint(ptAcquired) Then Else
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 32)) m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
' altrimenti da macchina
Else
If Not AcquireLaserPoint(ptAcquired) Then
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
End If End If
' Limito il punto a stare nella tavola con franco pari al kerf ' Limito il punto a stare nella tavola con franco pari al kerf
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
@@ -1002,13 +1022,21 @@ Public Class RawPartPageUC
m_nPtDmgMode = DMGMODE.NONE m_nPtDmgMode = DMGMODE.NONE
Case RAWMODE.DAMAGED_BY_LASER Case RAWMODE.DAMAGED_BY_LASER
Dim ptAcquired As Point3d Dim ptAcquired As Point3d
'----------------------------------------- INIZIO ------------------ se decido di inserire i punti laser manualmente -------------------------------------------------- ' Se inserimento manuale dei punti laser
If m_bFromDraw And Not IsNothing(m_ptPrev) Then If m_bFromDraw Then
ptAcquired = m_ptPrev If Not IsNothing(m_ptPrev) Then
ptAcquired.ToLoc(New Frame3d(m_ptTableMin)) ptAcquired = m_ptPrev
'----------------------------------------- FINE ------------------- se decido di inserire i punti laser manualmente -------------------------------------------------- ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
ElseIf Not AcquireLaserPoint(ptAcquired) Then Else
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 32)) m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
' altrimenti da macchina
Else
If Not AcquireLaserPoint(ptAcquired) Then
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
End If End If
' Limito il punto a stare nella tavola con franco pari al kerf ' Limito il punto a stare nella tavola con franco pari al kerf
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
@@ -1050,8 +1078,11 @@ Public Class RawPartPageUC
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then
Return False Return False
End If End If
' Ricavo dati lama corrente ' Recupero dati utensile e testa corrente
Dim sSaw As String = m_CurrentMachine.sCurrSaw Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Imposto come testa corrente il laser (senza utensile ovviamente) ' Imposto come testa corrente il laser (senza utensile ovviamente)
If Not EgtSetCalcTool("", "H3", 1) Then If Not EgtSetCalcTool("", "H3", 1) Then
Return False Return False
@@ -1060,10 +1091,8 @@ Public Class RawPartPageUC
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then
Return False Return False
End If End If
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then EgtSetCalcTool(sTool, sHead, nExit)
Return False
End If
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
ptAcquired = ptTipP1 ptAcquired = ptTipP1
ptAcquired.ToLoc(New Frame3d(m_ptTableMin)) ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
@@ -1776,7 +1805,7 @@ Public Class RawPartPageUC
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0 m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
' Definisco flag tastatura ' Definisco flag tastatura
Dim bProbingOk As Boolean = False Dim bProbingOk As Boolean = False
For I As integer = 0 To 120 For I As Integer = 0 To 120
' Devo rileggere la variabile ad ogni ciclo ' Devo rileggere la variabile ad ogni ciclo
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(ProbingStateNameVar, 3) m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(ProbingStateNameVar, 3)
System.Threading.Thread.Sleep(100) System.Threading.Thread.Sleep(100)
@@ -1813,7 +1842,7 @@ Public Class RawPartPageUC
Dim RawThicknessNameVar As String = String.Empty Dim RawThicknessNameVar As String = String.Empty
GetPrivateProfileString(S_MACH_PROBING, K_RAWTHICKNESS, "", RawThicknessNameVar, m_MainWindow.GetMachIniFile()) GetPrivateProfileString(S_MACH_PROBING, K_RAWTHICKNESS, "", RawThicknessNameVar, m_MainWindow.GetMachIniFile())
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0 m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
For I As integer = 0 To 20 For I As Integer = 0 To 20
' Devo rileggere la variabile ad ogni ciclo ' Devo rileggere la variabile ad ogni ciclo
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(RawThicknessNameVar, 3) m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(RawThicknessNameVar, 3)
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then
@@ -1900,10 +1929,10 @@ Public Class RawPartPageUC
Dim SlabIdWindow As New SlabIdWD(m_MainWindow) Dim SlabIdWindow As New SlabIdWD(m_MainWindow)
' Recupero eventuali vecchi dati della lastra ' Recupero eventuali vecchi dati della lastra
If nRawId <> GDB_ID.NULL Then If nRawId <> GDB_ID.NULL Then
Dim sBlock As String = "" : EgtGetInfo( nRawId, INFO_RAW_BLOCK, sBlock) Dim sBlock As String = "" : EgtGetInfo(nRawId, INFO_RAW_BLOCK, sBlock)
Dim sSlabNbr As String = "" : EgtGetInfo( nRawId, INFO_RAW_SLABNBR, sSlabNbr) Dim sSlabNbr As String = "" : EgtGetInfo(nRawId, INFO_RAW_SLABNBR, sSlabNbr)
SlabIdWindow.SetBlockName( sBlock) SlabIdWindow.SetBlockName(sBlock)
SlabIdWindow.SetSlabNbr( sSlabNbr) SlabIdWindow.SetSlabNbr(sSlabNbr)
End If End If
' Visualizzo finestra richiesta dati ' Visualizzo finestra richiesta dati
If SlabIdWindow.ShowDialog() Then If SlabIdWindow.ShowDialog() Then
@@ -1911,10 +1940,10 @@ Public Class RawPartPageUC
Dim sBlock As String = SlabIdWindow.GetBlockName() Dim sBlock As String = SlabIdWindow.GetBlockName()
Dim sSlabNbr As String = SlabIdWindow.GetSlabNbr() Dim sSlabNbr As String = SlabIdWindow.GetSlabNbr()
' Li assegno ' Li assegno
Utility.SetBlockAndSlabNbr( sBlock, sSlabNbr) Utility.SetBlockAndSlabNbr(sBlock, sSlabNbr)
' Li salvo ' Li salvo
WritePrivateProfileString( S_RAWPART, K_BLOCKNAME, sBlock, m_MainWindow.GetIniFile()) WritePrivateProfileString(S_RAWPART, K_BLOCKNAME, sBlock, m_MainWindow.GetIniFile())
WritePrivateProfileString( S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile()) WritePrivateProfileString(S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
' Aggiorno visualizzazione ' Aggiorno visualizzazione
EgtDraw() EgtDraw()
End If End If
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

+3
View File
@@ -240,6 +240,9 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </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"> <Button Grid.Column="2" Style="{DynamicResource OmagCut_GradientBlueIconButton}" Click="ExitBtnUC_Click">
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}" /> <Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}" />
</Button> </Button>
+112
View File
@@ -1,5 +1,6 @@
Imports System.Runtime.InteropServices Imports System.Runtime.InteropServices
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib
Public Class SimulationPageUC Public Class SimulationPageUC
' Riferimenti a pagine ' Riferimenti a pagine
@@ -76,6 +77,12 @@ Public Class SimulationPageUC
End If End If
' Pulsante Play ' Pulsante Play
PlayPauseImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/Play.png", UriKind.Relative)) 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 End Sub
Private Sub SimulationPage_Loaded(sender As Object, e As RoutedEventArgs) Private Sub SimulationPage_Loaded(sender As Object, e As RoutedEventArgs)
@@ -559,6 +566,111 @@ Public Class SimulationPageUC
End Sub 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 Private Function ProcessEvents(nProg As Integer, nPause As Integer) As Integer
' Visualizzo assi ' Visualizzo assi
ShowCncData() ShowCncData()
+100
View File
@@ -1,4 +1,5 @@
Imports System.Globalization Imports System.Globalization
Imports System.Collections.ObjectModel
Imports EgtUILib Imports EgtUILib
Module Utility Module Utility
@@ -59,6 +60,69 @@ Module Utility
End If End If
End Function End Function
#Region "PreGuidCode"
' recupero i primi 5 caratteri della stringa
Friend Function GetPreGuidCode(sGuidCode As String) As String
If sGuidCode.Count > 5 Then
Return sGuidCode(0) & sGuidCode(1) & sGuidCode(2) & sGuidCode(3) & sGuidCode(4)
End If
Return String.Empty
End Function
' sostituisce i primi 5 caratteri della stringa con qualle passata
Friend Function UppDateGuidCode(ByRef sGuidCode As String, sPreGuidCode As String) As Boolean
If sPreGuidCode.Count = 5 Then
sGuidCode = sGuidCode.Remove(0, 5)
sGuidCode = sPreGuidCode & sGuidCode
Return True
End If
Return False
End Function
' restituisce 5 caratteri
Friend Function CreatePreGuidCode(nId As Integer) As String
' recupero il frame dell'oggetto
Dim frGlobFrame As New Frame3d
If Not EgtGetGroupGlobFrame(nId, frGlobFrame) Then
Return String.Empty
End If
' recupero il suo versore
Dim vtX As Vector3d = frGlobFrame.VersX
Dim Len As Double
Dim AngV As Double
Dim AngH As Double
vtX.ToSpherical(Len, AngV, AngH)
' costruisco il codice (6 caratteri!) che identifica la posizione del pezzo in parcheggio
Dim sPreGuid As String = GetDirectionCode(AngH)
Return sPreGuid
End Function
Friend Function GetDirectionCode(dVal As Double) As String
Dim bIsNegative As Boolean = False
If dVal < 0 Then
dVal = dVal + (-1)
bIsNegative = True
End If
Dim sVal As String = DoubleToString(dVal * 1000, 0)
Dim nCount As Integer = sVal.Count
For Index As Integer = 1 To 4 - nCount
sVal = "0" & sVal
Next
Dim vVal As Char() = {"+", "1", "0", "0", "0"}
If bIsNegative Then
vVal = {"-"c, sVal(0), sVal(1), sVal(2), sVal(3)}
Else
vVal = {"+"c, sVal(0), sVal(1), sVal(2), sVal(3)}
End If
' ricostruisco la stringa dotata di segno
sVal = vVal(0) & vVal(1) & vVal(2) & vVal(3) & vVal(4)
Return sVal
End Function
#End Region ' PreGiudCode
Friend Function UIExprToExpr(sUIExpr As String) As String Friend Function UIExprToExpr(sUIExpr As String) As String
If String.IsNullOrWhiteSpace(sUIExpr) Then If String.IsNullOrWhiteSpace(sUIExpr) Then
Return "" Return ""
@@ -273,4 +337,40 @@ Module Utility
Return BackBottomColor Return BackBottomColor
End Function End Function
Public Sub GetDrillFromDrilling(ByRef sCurrDrill As String, ByVal sCurrDrilling As String)
If String.IsNullOrEmpty(sCurrDrill) Or String.IsNullOrWhiteSpace(sCurrDrill) Then
' creo l'elenco degli utensili di foratura
Dim sToolName As String = String.Empty
Dim nType As Integer = MCH_TY.NONE
Dim DrillToolList As New ObservableCollection(Of String)
DrillToolList.Clear()
If EgtTdbGetFirstTool(MCH_TF.DRILLBIT, sToolName, nType) Then
DrillToolList.Add(sToolName)
While EgtTdbGetNextTool(MCH_TF.DRILLBIT, sToolName, nType)
DrillToolList.Add(sToolName)
End While
End If
' recupero l'utensile associato alla lavorazione
'Dim sCurrDrilling As String = m_MainWindow.m_CurrentMachine.sCurrDrilling
Dim ToolString As String = String.Empty
EgtMdbSetCurrMachining(sCurrDrilling)
' Recupero nome utensile tramite TUUID
Dim sTuuid As String = String.Empty
EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sTuuid)
EgtTdbGetToolFromUUID(sTuuid, ToolString)
Dim bToolExist As Boolean = False
For Each CurrTool As IEnumerable In DrillToolList
If CurrTool.ToString() = ToolString Then
bToolExist = True
Exit For
End If
Next
If bToolExist Then
sCurrDrill = ToolString
Else
sCurrDrill = String.Empty
End If
End If
End Sub
End Module End Module
+4 -1
View File
@@ -201,6 +201,9 @@ Public Class WorkInProgressPageUC
End If End If
EgtSetCurrPhase(nCurrPhase, True) EgtSetCurrPhase(nCurrPhase, True)
EgtDraw() EgtDraw()
' Tempo di ritardo nel ciclo
Dim nTimeStep As Integer = 50
nTimeStep = GetPrivateProfileInt(S_MACH_INPROGRESS, K_WP_STEPTIME, nTimeStep, m_MainWindow.GetMachIniFile())
' Ciclo ' Ciclo
While m_bContinue While m_bContinue
' Rileggo la variabile di fase ' Rileggo la variabile di fase
@@ -233,7 +236,7 @@ Public Class WorkInProgressPageUC
EgtDraw() EgtDraw()
End If End If
' Per evitare di ciclare rapidissimamente e consumare inutilmente CPU ' Per evitare di ciclare rapidissimamente e consumare inutilmente CPU
System.Threading.Thread.Sleep(10) System.Threading.Thread.Sleep(nTimeStep)
' Leggo la fase ' Leggo la fase
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0 m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0