Compare commits

...

66 Commits

Author SHA1 Message Date
NicolaP 2919cc2dde Gestione dello spessore massimo nelle lavorazioni WJ 2021-12-29 13:10:23 +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
NicolaP 992686a5a2 Correzione funzionamento per macchina Siemens 2021-12-15 19:01:23 +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
NicolaP 5b2b39789d Commento esecuzione comando lettura ActiveMode 2021-12-15 12:58:13 +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
NicolaP ad74579ee6 Merge branch 'release/AlzatineFrontalini' 2021-12-02 15:50:45 +01:00
NicolaP f3f9db7bb7 Correzione SingleDrill per cambio utensile automatico 2021-12-02 15:46:25 +01:00
NicolaP 2900aa98f8 Merge remote-tracking branch 'origin/develop' into release/AlzatineFrontalini 2021-11-29 15:11:19 +01:00
SaraP 153374cd5d correzione gestione texture alzatine e frontalini 2021-11-29 15:08:55 +01:00
NicolaP 1076abd8de Merge branch 'master' into release/AlzatineFrontalini 2021-11-25 14:33:03 +01:00
NicolaP 0e260a570e Correzione configurazione linea di produzione. 2021-11-24 18:11:38 +01:00
NicolaP 59176a1269 Modifica versione 2.3k5 2021-11-22 19:12:51 +01:00
NicolaP 2e2de2ade4 Correzione aggiuna Incisioni 2021-11-22 19:11:45 +01:00
NicolaP b6f19b04cb GHestione Kerf negativo 2021-11-22 19:11:06 +01:00
NicolaP 7289e84d7b Scrittura dei messaggi nel file dei messaggi 2021-11-18 18:08:35 +01:00
NicolaP c5757cb3c7 Merge commit '311f6fca992ee31e37e2e2771bb2d8a5d64a9c26' into release/AlzatineFrontalini 2021-11-17 10:29:14 +01:00
DarioS 311f6fca99 OmagCUT 2.3k4 :
- cambiata effettivamente la versione del programma.
2021-11-16 13:49:58 +01:00
Emmanuele Sassi 0efe5b51e4 - Gestione casi che davano eccezione su macchina 2021-11-16 13:34:35 +01:00
NicolaP 38bf52893b Merge commit '09e8c0f6b4b124387e0f60f3a8ff67f18b36965e' into release/AlzatineFrontalini 2021-11-11 17:53:47 +01:00
NicolaP d4b49699c8 Migliorato gestione dei lati per alette 2021-11-11 17:53:03 +01:00
SaraP 09e8c0f6b4 - aggiunto disegno 3D piani cucina
- correzione errori nella gestione texture per disegno 3D
- migliorie disegno 3D alette.
2021-11-11 15:07:18 +01:00
NicolaP 03fdc33be0 Merge branch 'master' into develop 2021-11-10 18:59:37 +01:00
NicolaP 50c3eac8fe Merge remote-tracking branch 'origin/master' 2021-11-10 18:51:53 +01:00
NicolaP 004258a469 Gestione delle alzatine come per i tagli inclinati 2021-11-10 18:51:03 +01:00
NicolaP ce83d8ee49 Correzione scrittura variabili per NUM 2021-11-10 18:50:06 +01:00
DarioS 9db1f5085c OmagCUT 2.3j4 :
- aggiunta possibilità di spostare su seconda tavola con rotazione di 180deg (da Ini Macchina [Table] ChangeTabWD=2)
- aggiunto livello di movimento per split automatico da 1 a 5 fino a 3 passo completo poi metà e un quarto (da Ini [Split] MoveLevel=1...5)
2021-10-26 09:56:18 +02:00
DarioS 49435ba828 OmagCUT 2.3j3 :
- modifiche per assegnare il colore delle regioni anche ai relativi layer
- il colore si assegna alle regioni e non ai testi
- migliorato colore standard pezzo se non trovato nel file ini
- sistemazioni costanti per lettura da file ini.
2021-10-19 17:53:58 +02:00
SaraP 6e963ad6a2 Correzione gestione texture per alette in 3D VeinMatch 2021-10-19 12:00:02 +02:00
NicolaP 4d12d4a129 Correzione CN Siemens 2021-10-18 20:38:18 +02:00
NicolaP c46b7d1aa0 Correzzione/modifica comunicazione Siemens (Ampere,Mode) 2021-10-14 18:45:12 +02:00
NicolaP 08d71ecec2 Correzione visualizzazione dato di Amperaggio 2021-10-14 18:39:37 +02:00
NicolaP 9f4448220e Miogliorata gestione spostamenti grezzi e cambio versione 2021-10-14 10:50:52 +02:00
NicolaP 6117963ac1 Valore di spostamento pezzi pari alla dimensione baffo di taglio 2021-10-13 19:40:41 +02:00
NicolaP 941fa96d03 Correzione sfondo Machining 2021-10-11 14:11:01 +02:00
NicolaP 9f995079e2 Aggiunte icone in interfaccia chiara 2021-10-11 13:03:06 +02:00
SaraP 604f0f744c Aggiunto controllo sulla necessità di eseguire comando 3D nel VeinMatch 2021-10-11 12:57:36 +02:00
SaraP 185cfffe71 Correzione errori disegno 3D alette 2021-10-11 11:19:49 +02:00
DarioS 289c58f867 OmagCUT 2.3 j1 :
- promozione modifiche per fiera
- sistemazione VeinMatching con top cucina da componenti
- gestione anima per lame.
2021-10-10 20:08:04 +02:00
DarioS 5d75e658fb OmagCUT 2.3i4 :
- ricompilazione con cambio versione.
2021-09-24 11:50:42 +02:00
58 changed files with 4699 additions and 1765 deletions
+4
View File
@@ -719,10 +719,12 @@ Friend Module CamAuto
End Function
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 sMillMch As String = m_MainWindow.m_CurrentMachine.sCurrMilling
Dim sDrillMch As String = m_MainWindow.m_CurrentMachine.sCurrDrilling
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 sDripSawMch As String = If(bDripOk, m_MainWindow.m_CurrentMachine.sCurrDripSawing, "")
Dim sDripDrillMch As String = If(bDripOk, m_MainWindow.m_CurrentMachine.sCurrDripDrilling, "")
@@ -735,11 +737,13 @@ Friend Module CamAuto
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 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.MILLMCH", sMillMch)
EgtLuaSetGlobStringVar("CAM.DRILLMCH", sDrillMch)
EgtLuaSetGlobStringVar("CAM.POCKETMCH", sPocketMch)
EgtLuaSetGlobStringVar("CAM.WATERJETMCH", sWaterJetMch)
EgtLuaSetGlobStringVar("CAM.WATERJETQLTY", sWaterJetQual)
EgtLuaSetGlobStringVar("CAM.DRIPSAWMCH", sDripSawMch)
EgtLuaSetGlobStringVar("CAM.DRIPDRILLMCH", sDripDrillMch)
EgtLuaSetGlobNumVar("CAM.REDUCEDDEPTH", dReducedDepth)
+3 -1
View File
@@ -94,7 +94,9 @@ Public Class MoveRawPartPage
End If
' Carico i parametri di movimento
m_dStep = GetPrivateProfileDouble(S_RAWMOVE, K_RAWSTEP, 50, m_MainWindow.GetIniFile())
StepMoveTxBx.Text = LenToString(m_dStep, 3)
' Ricavo la lunghezza del baffo di taglio
m_dStep = SplitAuto.MaxCuttingMustache(m_dStep)
StepMoveTxBx.Text = LenToString(m_dStep, 1) & "+1"
m_dRotation = GetPrivateProfileDouble(S_RAWMOVE, K_RAWROTATION, 30, m_MainWindow.GetIniFile())
RotationAngleTxBx.Text = DoubleToString(m_dRotation, 3)
' Se movimento manuale perpendicolare
+67 -8
View File
@@ -214,9 +214,9 @@ Public Class NestPageUC
Else
' verifico se l'elemento selezionato è il nome della tavola
If EgtGetType(nId) = GDB_TY.EXT_TEXT AndAlso (sNamePartId = MAIN_TAB Or sNamePartId = SECOND_TAB) Then
Dim nTab As Integer = m_MainWindow.m_CadCutPageUC.m_ProjectMgr.ChangeTable()
Dim nRes As Integer = m_MainWindow.m_CadCutPageUC.m_ProjectMgr.ChangeTable()
' se non è stata eseguita nessuna scelta esco dal ciclo
If nTab = 0 Then Exit While
If nRes = 0 Then Exit While
' imposto l'altra tavola
Dim sOtherTab = If( sNamePartId = MAIN_TAB, SECOND_TAB, MAIN_TAB)
EgtChangeTable( sOtherTab, True)
@@ -241,6 +241,49 @@ Public Class NestPageUC
PackPartInStore(nPPId)
nPPId = EgtGetNextPart( nPPId)
End While
' se prevista rotazione
If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 2 Then
' Dati tavola
Dim b3Tab As New BBox3d
EgtGetTableArea( 1, b3Tab)
' Box lastra
Dim b3OrigRaw As New BBox3d
GetRawBox( b3OrigRaw)
' Allargo i limiti della tavola in tutte le fasi
Const TAB_OFFS As Double = 3000
For nI As Integer = 1 To EgtGetPhaseCount()
EgtSetCurrPhase(nI)
EgtSetTableAreaOffset( TAB_OFFS, TAB_OFFS, TAB_OFFS, TAB_OFFS)
Next
EgtSetCurrPhase(1)
' Rotazione
Dim dAngRot As Double = If(sOtherTab = SECOND_TAB, 180, -180)
if Not RotateAllRawParts(dAngRot, False) Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile
End If
' Traslazione per riportare la lastra nella stessa posizione rispetto all'angolo BL che diveta TR e viceversa
Dim b3Raw As New BBox3d
GetRawBox( b3Raw)
Dim vtMove As Vector3d
If sOtherTab = SECOND_TAB Then
Dim vtDiffIni As Vector3d = b3OrigRaw.Min() - b3Tab.Min()
Dim vtDiffFin As Vector3d = b3Tab.Max() - b3Raw.Max()
vtMove = vtDiffFin - vtDiffIni
Else
Dim vtDiffIni As Vector3d = b3Tab.Max() - b3OrigRaw.Max()
Dim vtDiffFin As Vector3d = b3Raw.Min() - b3Tab.Min()
vtMove = -( vtDiffFin - vtDiffIni)
End If
vtMove.z = 0
MoveAllRawParts(vtMove)
' Ripristino i limiti della tavola in tutte le fasi
For nI As Integer = 1 To EgtGetPhaseCount()
EgtSetCurrPhase(nI)
EgtSetTableAreaOffset( 0, 0, 0, 0)
Next
EgtSetCurrPhase(1)
HideAllMachinings()
End If
' visualizzazione
EgtZoom(ZM.ALL)
Exit While
@@ -669,7 +712,7 @@ Public Class NestPageUC
nId = EgtGetNextSelectedObj()
End While
Else
RotateAllRawParts(m_dRegAngStep)
UserRotateAllRawParts(m_dRegAngStep)
EgtDraw()
End If
End Sub
@@ -687,7 +730,7 @@ Public Class NestPageUC
nId = EgtGetNextSelectedObj()
End While
Else
RotateAllRawParts(-m_dRegAngStep)
UserRotateAllRawParts(-m_dRegAngStep)
EgtDraw()
End If
End Sub
@@ -739,7 +782,7 @@ Public Class NestPageUC
End If
End Function
Private Sub RotateAllRawParts(dAngDeg As Double)
Private Sub UserRotateAllRawParts(dAngDeg As Double)
' Recupero rotazione totale
Dim dRegRot As Double = GetRegistrationRotation()
' Verifico se nuova rotazione totale ammissibile
@@ -748,6 +791,13 @@ Public Class NestPageUC
m_CurrProjPage.SetWarningMessage(EgtMsg(90338)) 'Angolo di registrazione oltre i limiti
Return
End If
Dim bMoveOk As Boolean = RotateAllRawParts( dAngDeg)
If Not bMoveOk Then m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile
End Sub
Friend Function RotateAllRawParts(dAngDeg As Double, Optional bIsReg As Boolean = True) As Boolean
' Recupero rotazione totale
Dim dRegRot As Double = GetRegistrationRotation()
' Recupero il centro del grezzo iniziale per usarlo come centro della rotazione
Dim ptCen As New Point3d
GetRawCenter(ptCen)
@@ -782,7 +832,6 @@ Public Class NestPageUC
End While
' Se rotazione impossibile, ripristino posizione dei grezzi già spostati
If Not bMoveOk Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile
Dim nRevPhase As Integer = 1
Dim nRevRawId As Integer = GDB_ID.NULL
While nRevPhase <= nPhase
@@ -865,15 +914,25 @@ Public Class NestPageUC
End If
nOpeId = EgtGetNextActiveOperation(nOpeId)
End While
' Se non è registrazione, ruoto anche l'eventuale foto della lastra
'If Not bIsReg Then
' Dim nPhotoId = m_CurrProjPage.GetPhoto()
' If nPhotoId <> GDB_ID.NULL then EgtRotatePhoto(nPhotoId, ptCen, Vector3d.Z_AX(), dAngDeg)
'End If
' Aggiorno rotazione totale
SetRegistrationRotation(dRegRot + dAngDeg)
If bIsReg Then
SetRegistrationRotation(dRegRot + dAngDeg)
Else
SetRegistrationRotation(0)
End If
' Dichiaro grezzo per punti
EgtSetInfo(GetCurrentRaw(), KEY_RAWBYPOINTS, 1)
End If
' Ripristino lo stato iniziale
EgtSetCurrPhase(1)
HideAllMachinings()
End Sub
Return bMoveOk
End Function
Private Sub InsertPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles InsertPartBtn.Click
' Se inserimento automatico
+63 -12
View File
@@ -5,6 +5,11 @@ Public Module SplitAuto
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_dLastDT As Double = 0
Public ReadOnly Property dLastDT As Double
Get
Return m_dLastDT
End Get
End Property
'-----------------------------------------------------------------------------------------------
Friend Class SplitMach
@@ -737,35 +742,55 @@ Public Module SplitAuto
End Function
Private Function SafeMoveRawPart(nRawId As Integer, ByRef vtMove As Vector3d, dMindist As Double) As Boolean
' Spostamento originale
Dim vtOriMove As New Vector3d( vtMove)
' Livello di movimento
Dim nMoveLevel As Integer = GetPrivateProfileInt( S_SPLIT, K_MOVE_LEV, 5, m_MainWindow.GetIniFile())
Dim nMove As Integer = 1
' Se esce dalla tavola, movimento già annullato ed esco con errore
If Not EgtMoveRawPart(nRawId, vtMove) Then Return False
If Not EgtMoveRawPart(nRawId, vtOriMove) Then Return False
' Se interferisce con altri grezzi, annullo movimento ed esco con errore
If Not VerifyRawWithOtherRaws(nRawId, dMindist) Then
EgtMoveRawPart(nRawId, -vtMove)
EgtMoveRawPart(nRawId, -vtOriMove)
Return False
End If
If nMoveLevel < 2 Then Return True
' Provo ad aggiungere un altro movimento
If EgtMoveRawPart(nRawId, vtMove) Then
If EgtMoveRawPart(nRawId, vtOriMove) Then
If VerifyRawWithOtherRaws(nRawId, dMindist) Then
vtMove += vtMove
vtMove += vtOriMove
nMove += 1
If nMoveLevel = nMove Then Return True
Else
EgtMoveRawPart(nRawId, -vtMove)
EgtMoveRawPart(nRawId, -vtOriMove)
End If
End If
' Provo ad aggiungere un altro movimento
If EgtMoveRawPart(nRawId, vtOriMove) Then
If VerifyRawWithOtherRaws(nRawId, dMindist) Then
vtMove += vtOriMove
nMove += 1
If nMoveLevel = nMove Then Return True
Else
EgtMoveRawPart(nRawId, -vtOriMove)
End If
End If
' Provo ad aggiungere un movimento dimezzato
If EgtMoveRawPart(nRawId, 0.5 * vtMove) Then
If EgtMoveRawPart(nRawId, 0.5 * vtOriMove) Then
If VerifyRawWithOtherRaws(nRawId, dMindist) Then
vtMove += 0.5 * vtMove
vtMove += 0.5 * vtOriMove
nMove += 1
If nMoveLevel = nMove Then return True
Else
EgtMoveRawPart(nRawId, -0.5 * vtMove)
EgtMoveRawPart(nRawId, -0.5 * vtOriMove)
End If
End If
' Provo ad aggiunger un movimento 1/4
If EgtMoveRawPart(nRawId, 0.25 * vtMove) Then
' Provo ad aggiungere un movimento 1/4
If EgtMoveRawPart(nRawId, 0.25 * vtOriMove) Then
If VerifyRawWithOtherRaws(nRawId, dMindist) Then
vtMove += 0.25 * vtMove
vtMove += 0.25 * vtOriMove
Else
EgtMoveRawPart(nRawId, -0.25 * vtMove)
EgtMoveRawPart(nRawId, -0.25 * vtOriMove)
End If
End If
Return True
@@ -817,4 +842,30 @@ Public Module SplitAuto
Return (Not bInterf)
End Function
Public Function MaxCuttingMustache(dMustache As Double) As Double
Dim MachSplitList As New List(Of SplitMach)
' Recupero l'indice della fase corrente
Dim nCurrPhase As Integer = EgtGetCurrPhase()
' se non è stata creata nessuna lista allora restituisco il valore di Default
If Not CalculateSplitMachList(nCurrPhase, MachSplitList) Then Return dMustache
Dim NewMustache As Double = 0
Dim ItemMachSplit As SplitMach
For Each ItemMachSplit In MachSplitList
' Recupero lunghezza baffo secondo taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(ItemMachSplit.m_nId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double
If EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT) Then
If NewMustache < dDT Then NewMustache = dDT
End If
Next
Dim dExtraL As Double = 0
EgtMdbGetGeneralParam(MCH_GP.EXTRALONCUTREG, dExtraL)
' se esiste il valore di un baffo allora sovrascrivo il valore di default
If NewMustache > 0 Then
dMustache = Math.Ceiling(NewMustache)
End If
Return dMustache + dExtraL
End Function
End Module
+7
View File
@@ -67,6 +67,8 @@ Module ConstGen
Public Const MACHININGS_DIR As String = "Machinings"
' Nome file Dati delle lucidature
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
Public Const CURR_RUINED_EPL As String = "RuinedParts.epl"
@@ -334,6 +336,8 @@ Module ConstGen
' Nome di pezzo temporaneo che serve per copia dime
Public Const NAME_COPYTEMPLATE As String = "CopyTemplate"
' Nome layer solidi per VM
Public Const NAME_VM_SOLID As String = "Solid"
' Chiave per Id originale del pezzo per VeinMatch
Public Const KEY_ORI_ID As String = "OriId"
@@ -343,6 +347,9 @@ Module ConstGen
' Lunghezza libera infinita
Public Const FREELEN_INF = 9999
' Costante per lunghezza gambo di lama
Public Const STEM = 131072
' Colori per lavorazioni
Public Function COL_MCH_CUT() As Color3d
Return New Color3d(0, 255, 0)
+12
View File
@@ -105,6 +105,15 @@ Module ConstIni
Public Const K_TRFDATA As String = "TrfData"
Public Const K_CSVDATA As String = "CsvData"
Public Const K_COMPODIR As String = "CompoDir"
Public Const K_CMP_COUNT As String = "Count"
Public Const K_LASTCOLOR As String = "LastColor"
Public Const K_COLOR As String = "Color"
Public Const S_EXTCOMPO As String = "Compo"
Public Const S_INTCOMPO As String = "InternalCompo"
Public Const K_INT_COMPODIR As String = "CompoDir"
Public Const K_INT_COUNT As String = "Count"
Public Const S_FLATPARTS As String = "FlatParts"
Public Const K_FLPCURRDIR As String = "CurrDir"
@@ -140,6 +149,9 @@ Module ConstIni
Public Const K_AUTOMATICOPTIMIZE As String = "AutomaticOptimize"
Public Const K_AUTOMATICMAXTIME As String = "AutomaticMaxTime"
Public Const S_SPLIT As String = "Split"
Public Const K_MOVE_LEV As String = "MoveLevel"
Public Const S_CSV As String = "Csv"
Public Const K_FULL As String = "Full"
Public Const K_MAXDIMONX As String = "MaxDimOnX"
+5
View File
@@ -37,7 +37,9 @@
Public Const K_PATH_HMI As String = "PathHmi"
Public Const K_USENEWMDI As String = "UseNewMDI"
Public Const K_ISSIEMENSONE As String = "IsSiemensOne"
Public Const K_ISACTIVEMODESUBSCR As String = "IsActiveModeSubscr"
Public Const K_DBVARPATH As String = "DBVarPath"
Public Const K_NEWWRITECNCMODE As String = "NewWriteCNCMode"
Public Const S_NCNUM As String = "NcNUM"
Public Const K_RESETSENDDELAY As String = "ResetSendDelay"
@@ -46,6 +48,7 @@
Public Const S_NCDATA As String = "NcData"
Public Const K_NEWVARIABLE As String = "NewVariable"
Public Const K_NEWCONSOLE As String = "NewConsole"
Public Const K_WRITECNCMODEVAR As String = "WriteCNCModeVar"
Public Const K_COMM As String = "Comm"
Public Const K_REFRESH As String = "Refresh"
Public Const K_MODE As String = "Mode"
@@ -206,6 +209,7 @@
Public Const K_MACH_CUTFSEVENABLE As String = "CutFsevEnable"
Public Const K_MACH_CUTFSEVLEN As String = "CutFsevLen"
Public Const K_MACH_CUTFSEVPERC As String = "CutFsevPerc"
Public Const K_USELASERORIGIN As String = "UseLaserOrigin"
' DrillMillC90
' CutLongDxSx
' AngRotMultiCut
@@ -273,6 +277,7 @@
Public Const K_CURRDRIPSAWING As String = "CurrDripSawing"
Public Const K_CURRDRIPDRILLING As String = "CurrDripDrilling"
Public Const K_CURRWATERJETTING As String = "CurrWaterJetting"
Public Const K_CURRWATERJETTINGQUALITY As String = "CurrWaterJettingQualilty"
Public Const S_MATERIALS As String = "Materials"
Public Const K_CURRMATERIAL As String = "CurrMaterial"
+1 -1
View File
@@ -475,7 +475,7 @@ Public MustInherit Class MachineButton
If m_CN.m_NewVariable And m_MainWindow.m_CNCommunication.m_nNCType = 2 Then
' solo per Flexium
m_CN.DPlcVariables_WriteVariables(ENumber, EValue)
If Not IsNothing(ENumber2) And Not IsNothing(EValue2) Then
If Not String.IsNullOrEmpty(ENumber2) And Not String.IsNullOrEmpty(EValue2) Then
m_CN.DPlcVariables_WriteVariables(ENumber2, EValue2)
End If
' altrimenti scrittura delle variabili E
-120
View File
@@ -567,124 +567,4 @@ Public Class DirectCutPageUC
End Sub
'' ------------------------ GESTIONE SECONDA PAGINA ------------------------
'Private Sub ClearButton(nCount As Integer)
' Dim nEndIndex As Integer
' If m_bIsFirstPage Then
' nEndIndex = If(nCount < 8, nCount, 8)
' Else
' nEndIndex = If(nCount < 16, nCount - 8, 8)
' End If
' For index As Integer = 1 To nEndIndex
' GetLabel(index).Text = String.Empty
' GetImage(index).Source = Nothing
' GetButton(index).Visibility = Windows.Visibility.Visible
' Next
' For index As Integer = nEndIndex + 1 To 8
' GetLabel(index).Text = String.Empty
' GetImage(index).Source = Nothing
' GetButton(index).Visibility = Windows.Visibility.Hidden
' Next
'End Sub
'Private Sub LoadPage()
' Dim nDeltaSecondPage As Integer = 8
' ' Leggo numero di componenti presenti
' Dim nCompoNumber As Integer = GetPrivateProfileInt("Compo", "Count", 0, m_MainWindow.GetIniFile())
' ' Calcolo indici a seconda della pagina in cui sono
' If m_bIsFirstPage Then
' ClearButton(nCompoNumber)
' nDeltaSecondPage = 0
' Else
' ClearButton(nCompoNumber)
' nDeltaSecondPage = 8
' End If
' ' Creazione converter da String a ImageSource
' Dim ImageConverter As New ImageSourceConverter
' Dim ThicknessConverter As New ThicknessConverter
' 'Assegnazione immagine e testo ai Button
' For index As Integer = 1 To 8
' Dim CustomThickness As New Thickness(0)
' Dim nCompoName As Integer = GetPrivateProfileInt("Compo" & index + nDeltaSecondPage, "Name", 0, m_MainWindow.GetIniFile())
' Dim sCompoImage As String = ""
' Dim sCompoImageSource As ImageSource
' 'verifico presenza immagine e la aggiungo
' If GetPrivateProfileString("Compo" & index + nDeltaSecondPage, "Image", "", sCompoImage, m_MainWindow.GetIniFile()) <> 0 Then
' Try
' sCompoImageSource = ImageConverter.ConvertFromString(m_MainWindow.GetResourcesDir() & "\" & sCompoImage)
' GetImage(index).Height = 65
' GetImage(index).Width = 65
' GetImage(index).Source = sCompoImageSource
' Catch ex As Exception
' EgtOutLog("Error loading image " & sCompoImage)
' sCompoImage = String.Empty
' GetImage(index).Height = 0
' GetImage(index).Width = 0
' CustomThickness.Right = 0
' GetImage(index).Margin = CustomThickness
' End Try
' Else
' 'Se non c'è l'immagine azzero la distanza tra testo e immagine
' CustomThickness.Right = 0
' GetImage(index).Margin = CustomThickness
' End If
' 'verifico presenza testo
' If nCompoName > 0 Then
' Dim sCompoName As String = EgtMsg(MSG_COMPONENTPAGEUC + nCompoName)
' 'verifico presenza immagine
' If sCompoImage.Length > 0 Then
' 'se la lunghezza del testo è maggiore di 15 lo taglio
' If sCompoName.Length > 15 Then
' sCompoName = sCompoName.Substring(0, 15)
' End If
' GetLabel(index).Text = sCompoName
' 'Se ci sono sia testo che immagine imposto un margine di 10
' CustomThickness.Right = 10
' GetImage(index).Margin = CustomThickness
' Else
' 'se l'immagine non c'è e il testo è maggiore di 20 lo taglio
' If sCompoName.Length > 20 Then
' sCompoName = sCompoName.Substring(0, 20)
' End If
' GetLabel(index).Text = sCompoName
' End If
' Else
' 'Se non c'è testo azzero la distanza tra testo e immagine
' CustomThickness.Right = 0
' GetImage(index).Margin = CustomThickness
' End If
' Next
'End Sub
'' Gestione bottone altri componenti
'Private Sub Compo9_Click(sender As Object, e As RoutedEventArgs) Handles Compo9.Click
' If m_bIsFirstPage Then
' m_bIsFirstPage = False
' LoadPage()
' 'Compo9.SetValue(Grid.ColumnProperty, 1)
' 'Compo9.SetValue(Grid.ColumnSpanProperty, 1)
' 'ImageCompo9.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NumericKeyboardArrow.png", UriKind.Relative))
' 'ImageCompo9.Visibility = Windows.Visibility.Visible
' 'LabelCompo9.Visibility = Windows.Visibility.Hidden
' Compo9.SetValue(Grid.ColumnProperty, 0)
' Compo9.SetValue(Grid.ColumnSpanProperty, 2)
' ImageCompo9.Visibility = Windows.Visibility.Hidden
' LabelCompo9.Visibility = Windows.Visibility.Visible
' Else
' m_bIsFirstPage = True
' LoadPage()
' Compo9.SetValue(Grid.ColumnProperty, 0)
' Compo9.SetValue(Grid.ColumnSpanProperty, 2)
' ImageCompo9.Visibility = Windows.Visibility.Hidden
' LabelCompo9.Visibility = Windows.Visibility.Visible
' End If
'End Sub
End Class
+25 -10
View File
@@ -444,8 +444,8 @@ Public Class FlatteningCut
StringToLen(WidthTxBx.Text, dWidth)
' Recupero lo spessore della lama corrente
EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw)
Dim dThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
Dim dThick As Double = GetFootPrintTool()
'EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
' La larghezza della spianatura nono può essere inferiore allo spessore della lama
m_dWid = Math.Max(dWidth, dThick)
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
' Recupero spessore della lama correntemente attiva
Dim dThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
Dim dThick As Double = GetFootPrintTool()
'EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
' Verifico che la sovrapposizione non sia superiore allo spessore della lama (meno 1mm di offset)
Dim dOverlap As Double = 0
Const MIN_OFFSET As Double = 1.0
@@ -612,6 +612,22 @@ Public Class FlatteningCut
m_MainWindow.m_DirectCutPageUC.LeftButtonGrid.Children.Remove(Me)
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
' Verifico sia definito il punto iniziale e il grezzo
If Not m_bPointP1Ok Or Not m_bRawOk Then
@@ -670,22 +686,21 @@ Public Class FlatteningCut
RemoveFinalHome()
End If
UpdateSimulOkBtn()
Return m_bCutOk
End Function
Private Function MultiplyCut(nLayerId As Integer, nCutId As Integer) As Boolean
' Recupero spessore della lama correntemente attiva
Dim dThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
' Recupero spessore della lama (utensile) correntemente attiva
Dim dThick As Double = GetFootPrintTool()
If dThick = 0 Then Return False
' Imposto angolo di rotazione a seconda del lato dei tagli
Dim dRotAngO As Double = If(SideChBx.IsChecked(), -90, 90)
' Definisco vettore di spostamento
Dim vtDelta As Vector3d
vtDelta = Vector3d.FromPolar(1, m_dAngO)
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
' Calcolo numero di iterazioni necessarie a coprire l'area impostata e lunghezza vettore delta
Dim nStepNum As Integer
Dim dDelta As Double
+7 -3
View File
@@ -550,7 +550,11 @@ Public Class MachineButtonsUC
End Sub
Friend Sub DoorStateChanged(DoorState As Integer)
' recupero le asscociazioni con i bottoni
If IsNothing(DoorState) Then
EgtOutLog("Error: door state null!")
Return
End If
' recupero le associazioni con i bottoni
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, BTN_STATE_DOOR_OPENED)
If nIndex = -1 Then Return
' bottone di apertura porte
@@ -560,7 +564,7 @@ Public Class MachineButtonsUC
' bottone di chiusura porte
Dim DoorClosedButton As Primitives.ToggleButton = GetToggleButton(nIndex + 1)
' modifico il colore dei bottoni
If Not IsNothing(DoorState) Then
If Not IsNothing(DoorState) AndAlso Not IsNothing(DoorClosedButton) Then
Select Case DoorState
Case 0
DoorClosedButton.Background = Application.Current.FindResource("OmagCut_Red")
@@ -568,7 +572,7 @@ Public Class MachineButtonsUC
DoorClosedButton.Background = Application.Current.FindResource("OmagCut_LightGray")
End Select
End If
If Not IsNothing(DoorState) Then
If Not IsNothing(DoorState) AndAlso Not IsNothing(DoorOpenedButton) Then
Select Case DoorState
Case 0
DoorOpenedButton.Background = Application.Current.FindResource("OmagCut_LightGray")
+50 -7
View File
@@ -1,4 +1,5 @@
Imports EgtUILib
Imports System.Collections.ObjectModel
Public Class SingleDrillUC
' Riferimenti a pagine
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
@@ -37,6 +38,8 @@ Public Class SingleDrillUC
Private m_dDiameter As Double = 0
Private m_sCurrDrill As String = String.Empty
' Costanti
Private Const MAX_TAB_DEPTH As Double = 10.0
Private Const MIN_CUT_LEN As Double = 10.0
@@ -67,8 +70,11 @@ Public Class SingleDrillUC
End Sub
Private Sub SingleDrill_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
m_sCurrDrill = m_CurrentMachine.sCurrDrill
GetDrillFromDrilling(m_sCurrDrill, m_CurrentMachine.sCurrDrilling)
' recupero informazioni del foretto usato
EgtTdbSetCurrTool(m_CurrentMachine.sCurrDrill)
EgtTdbSetCurrTool(m_sCurrDrill)
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_dDiameter)
' Attivo la pagina
@@ -215,7 +221,7 @@ Public Class SingleDrillUC
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
' Ricavo dati Foretto corrente
Dim sDrill As String = m_MainWindow.m_CurrentMachine.sCurrDrill
Dim sDrill As String = m_sCurrDrill
' Se punto da laser
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
' Imposto come testa corrente il laser (senza utensile ovviamente)
@@ -245,9 +251,9 @@ Public Class SingleDrillUC
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP1Ok = True
' Ricavo dati lama corrente
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrDrill
Dim sDrill As String = m_sCurrDrill
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
If Not EgtSetCalcTool(sDrill, "H1", 1) Then Return
End If
' Disegno il taglio
@@ -261,6 +267,42 @@ Public Class SingleDrillUC
Point1Btn.IsChecked = True
End Sub
'Private Sub GetDrillFromDrilling(ByRef sCurrDrill 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
Private Sub XcoordTxBx_EgtClosed(sender As Object, e As EventArgs) Handles XcoordTxBx.EgtClosed
' Recupero il valore della coordinata (in 0 Tab)
Dim dXcoord As Double = 0
@@ -354,10 +396,11 @@ Public Class SingleDrillUC
' Spessore grezzo
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
' Recupero spessore lama corrente
Dim sDrill As String = m_MainWindow.m_CurrentMachine.sCurrDrill
Dim sDrill As String = m_sCurrDrill
GetDrillFromDrilling(sDrill, m_MainWindow.m_CurrentMachine.sCurrDrilling)
EgtTdbSetCurrTool(sDrill)
Dim dThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
Dim dDiam As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dDiam)
' Rimuovo eventuale vecchio pezzo per taglio diretto
EraseDirectCutPart()
' Disattivo eventuali lavorazioni presenti
+73 -31
View File
@@ -20,6 +20,7 @@ Public Class AlzFrontUC
' nome della info riferita alle alzatine e ai frontalini (1=Alz, 2=Front, 0=niente)
Private Const INFO_ALZFRONT As String = "AF"
Private Const INFO_ENABLE As String = "EnableAF"
' Properties
Private m_sCompoDir As String = String.Empty
@@ -140,38 +141,41 @@ Public Class AlzFrontUC
' inserisco il lato nella lista
While CurrLine <> GDB_ID.NULL
' escludo tutte le forme che non sono delle linee
If EgtGetType(CurrLine) = GDB_TY.CRV_LINE Then
' Aggiungo il lato alla lista di quelli su cui è possibile mettere una alzatina o un frontalino
Dim sNameCurrLine As String = String.Empty
Dim nInfo As Integer = 0
Dim dSideAng As Integer = 0
EgtSetName(CurrLine, "A" & nEntityIndex.ToString)
EgtGetName(CurrLine, sNameCurrLine)
' inserisco la numerazione dei lati della figura
AddTextToLine(sNameCurrLine, LabelId, CurrLine, 20, m_dBBoxRad, True)
' recupero l'informazione
EgtGetInfo(CurrLine, INFO_ALZFRONT, nInfo)
If nInfo = 1 Then
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine, AlzFrontEntity.AlzFront.ALZATINA))
ElseIf nInfo = 2 Then
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine, AlzFrontEntity.AlzFront.FRONTALINO))
Else
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine))
End If
' inserisco riferimento univoco al lato (solo se non esiste)
Dim sInfoRef As String = String.Empty
EgtGetInfo(CurrLine, "RefAF", sInfoRef)
If String.IsNullOrEmpty(sInfoRef) Then
Dim sRefGUID As String = System.Guid.NewGuid().ToString()
EgtSetInfo(CurrLine, "RefAF", sRefGUID)
End If
nEntityIndex += 1
Else
EgtSetName(CurrLine, "B" & nOtherIndex.ToString)
nOtherIndex = nOtherIndex + 1
End If
Dim NextId As Integer = EgtGetNext(CurrLine)
If NextId = GDB_ID.NULL Then NextId = EgtGetFirstInGroup(LoopId)
If VerifySideAnglePossible(PrevLine, CurrLine, NextId, bOutLoop) Then
If ApprovedSideToAlzFront(CurrLine) Then
' Aggiungo il lato alla lista di quelli su cui è possibile mettere una alzatina o un frontalino
Dim sNameCurrLine As String = String.Empty
Dim nInfo As Integer = 0
Dim dSideAng As Integer = 0
EgtSetName(CurrLine, "A" & nEntityIndex.ToString)
EgtGetName(CurrLine, sNameCurrLine)
' inserisco la numerazione dei lati della figura
AddTextToLine(sNameCurrLine, LabelId, CurrLine, 20, m_dBBoxRad, True)
' recupero l'informazione
EgtGetInfo(CurrLine, INFO_ALZFRONT, nInfo)
If nInfo = 1 Then
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine, AlzFrontEntity.AlzFront.ALZATINA))
ElseIf nInfo = 2 Then
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine, AlzFrontEntity.AlzFront.FRONTALINO))
Else
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine))
End If
' inserisco riferimento univoco al lato (solo se non esiste)
Dim sInfoRef As String = String.Empty
EgtGetInfo(CurrLine, "RefAF", sInfoRef)
If String.IsNullOrEmpty(sInfoRef) Then
Dim sRefGUID As String = System.Guid.NewGuid().ToString()
EgtSetInfo(CurrLine, "RefAF", sRefGUID)
End If
nEntityIndex += 1
Else
EgtSetName(CurrLine, "B" & nOtherIndex.ToString)
nOtherIndex = nOtherIndex + 1
End If
End If
PrevLine = CurrLine
CurrLine = EgtGetNext(CurrLine)
End While
@@ -275,6 +279,44 @@ Public Class AlzFrontUC
bInternalSelection = False
End Sub
' restituisce vero se il lato possiede delle info legate al sideangle
Private Function VerifyIsThereSideAngle(nCurrLine As Integer) As Boolean
Dim sInfoSideAngle As String = String.Empty
EgtGetInfo(nCurrLine, INFO_SIDE_ANGLE, sInfoSideAngle)
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
' restituisce vero se il lato possiede delle info legate alle alette
Private Function VerifyIsThereAlzFront(nCurrLine As Integer) As Boolean
Dim sInfoAlzFront As String = String.Empty
EgtGetInfo(nCurrLine, INFO_ALZFRONT, sInfoAlzFront)
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
' approvo la costruzione dell'aletta sul lato indicato
Private Function ApprovedSideToAlzFront(nCurrLine As Integer) As Boolean
If VerifyIsThereSideAngle(nCurrLine) And Not VerifyIsThereAlzFront(nCurrLine) Then
' se esiste SideAngle e un'aletta allora NON approvo
Return False
End If
Return True
End Function
' Permette di aggiugere accanto alla linea passata
Friend Function AddTextToLine(sText As String, TextLayer As Integer, CurrLine As Integer, dDistance As Double,
+12 -7
View File
@@ -105,6 +105,9 @@ Public Class DrawPageUC
Return m_nSelectedLayer
End Get
End Property
Public Sub SetCurrLayer(ByVal nCurrLayer As Integer)
m_nSelectedLayer = nCurrLayer
End Sub
Enum Pages
MainComponent
@@ -879,8 +882,8 @@ Public Class DrawPageUC
' permette di inserire più di un part
Private Function MakeMultipleInsert(ByVal nNbr As Integer, sName As String) As Boolean
Dim InsertColor As Color3d = New Color3d(89, 210, 210)
CompoColor(InsertColor, m_MainWindow.GetIniFile())
Dim InsertColor As Color3d = CompoColor(m_MainWindow.GetIniFile())
' Imposto il contesto corrente
EgtSetCurrentContext(DrawScene.GetCtx())
@@ -893,8 +896,6 @@ Public Class DrawPageUC
While Pz <> -1
' imposto il contesto corrente
EgtSetCurrentContext(DrawScene.GetCtx())
' salvo il file temporaneo per studio delle alzatine
EgtSaveFile("c:\EgtData\OmagCUT\Temp\TempAlzatine.nge", NGE.CMPTEXT)
' cerco un altro pezzo nell'elenco
NxtPz = EgtGetNextPart(Pz)
@@ -1018,8 +1019,12 @@ Public Class DrawPageUC
' Imposto colore testi
Utility.SetTextColor(nRegLayId)
' Imposto il colore del pezzo inserito nel progetto
Dim nPartInRegion As Integer = EgtGetFirstInGroup(nRegLayId)
EgtSetColor(nPartInRegion, InsertColor)
EgtSetColor(nRegLayId, InsertColor)
Dim EntId As Integer = EgtGetFirstInGroup(nRegLayId)
While EntId <> GDB_ID.NULL
If EgtGetType( EntId) = GDB_TY.SRF_FRGN Then EgtSetColor(EntId, InsertColor)
EntId = EgtGetNext(EntId)
End While
' Esporto il pezzo in un file temporaneo
Dim sTmpFile As String = m_MainWindow.GetTempDir() & "\FlatPartCompo.Nge"
@@ -1059,7 +1064,7 @@ Public Class DrawPageUC
If sCMP.StartsWith("PCucina") Or sCMP.StartsWith("PBagno") Or sCMP.StartsWith("AlzFront") Then
' Aggiungo riferimento e lo inserisco in VeinMatching
VeinMatching.SetRefOnPart(nId2)
VeinMatching.AddPartFromDraw(nId2, True)
VeinMatching.AddPartFromDraw(nId2)
' Se richiesto posizionamento diretto, lo eseguo
If bDirect Then
If m_MainWindow.m_CadCutPageUC.m_NestPage.InsertOnePart(nId2) Then
+5 -5
View File
@@ -578,23 +578,23 @@ Public Class ImportPageUC
' metodo utilizzato per definire il colore dei pezzi DXF importati
Private Sub ColorRegion(nCtx As Integer)
' Leggo dati corrispondenza colore
Dim InsertColor As Color3d = New Color3d(89, 210, 210)
CompoColor(InsertColor, m_MainWindow.GetIniFile())
Dim InsertColor As Color3d = CompoColor(m_MainWindow.GetIniFile())
' Imposto contesto corrente
EgtSetCurrentContext(nCtx)
' Ciclo sui pezzi
Dim PartId As Integer = EgtGetFirstPart()
While PartId <> GDB_ID.NULL
' Ciclo sui layer di contorno
Dim bOutLoop As Boolean = True
' Ciclo sui layer delle regioni
Dim RegionId As Integer = EgtGetFirstNameInGroup(PartId, NAME_REGION)
While RegionId <> GDB_ID.NULL
EgtSetColor(RegionId, InsertColor)
' Ciclo sulle regioni
Dim EntId As Integer = EgtGetFirstInGroup(RegionId)
While EntId <> GDB_ID.NULL
EgtSetColor(EntId, InsertColor)
If EgtGetType( EntId) = GDB_TY.SRF_FRGN Then EgtSetColor(EntId, InsertColor)
EntId = EgtGetNext(EntId)
End While
RegionId = EgtGetNextName(PartId, NAME_REGION)
+4 -4
View File
@@ -24,7 +24,7 @@ Public Class InternalComponentPageUC
ImageCompo9.Visibility = Windows.Visibility.Hidden
LabelCompo9.Visibility = Windows.Visibility.Visible
' Se i componenti interni sono più di 8 viene visualizzato il bottone "Altri" altrimenti no
Dim nCount As Integer = GetPrivateProfileInt("InternalCompo", "Count", 0, m_MainWindow.GetIniFile())
Dim nCount As Integer = GetPrivateProfileInt(S_INTCOMPO, K_INT_COUNT, 0, m_MainWindow.GetIniFile())
If nCount > 8 Then
Compo9.Visibility = Windows.Visibility.Visible
Else
@@ -163,10 +163,10 @@ Public Class InternalComponentPageUC
Private Sub Compo_Click(sender As Object, e As RoutedEventArgs) Handles Compo1.Click, Compo2.Click, Compo3.Click, Compo4.Click, Compo5.Click, Compo6.Click, Compo7.Click, Compo8.Click
CurrentBtn = e.Source
Dim CompoName As String = "InternalCompo" & GetIndexFromButton(CurrentBtn).ToString
Dim CompoName As String = S_INTCOMPO & GetIndexFromButton(CurrentBtn).ToString
m_sCurrCompoFam = CompoName
' m_SecondaryComponentPage.m_sCurrCompo = String.Empty
Dim nCount As Integer = GetPrivateProfileInt(CompoName, "Count", 0, m_MainWindow.GetIniFile())
Dim nCount As Integer = GetPrivateProfileInt(CompoName, K_CMP_COUNT, 0, m_MainWindow.GetIniFile())
If nCount > 1 Then
m_MainWindow.m_DrawPageUC.LeftButtonGrd.Children.Remove(Me)
m_MainWindow.m_DrawPageUC.m_ActiveComponentPage = DrawPageUC.Pages.SecondaryComponent
@@ -252,7 +252,7 @@ Public Class InternalComponentPageUC
Private Sub LoadPage()
Dim nDeltaSecondPage As Integer = 8
' Leggo numero di componenti presenti
Dim nCompoNumber As Integer = GetPrivateProfileInt("InternalCompo", "Count", 0, m_MainWindow.GetIniFile())
Dim nCompoNumber As Integer = GetPrivateProfileInt(S_INTCOMPO, K_INT_COUNT, 0, m_MainWindow.GetIniFile())
' Calcolo indici a seconda della pagina in cui sono
If m_bIsFirstPage Then
ClearButton(nCompoNumber)
+3 -3
View File
@@ -167,10 +167,10 @@ Public Class MainComponentPageUC
Private Sub Compo_Click(sender As Object, e As RoutedEventArgs) Handles Compo1.Click, Compo2.Click, Compo3.Click, Compo4.Click, Compo5.Click, Compo6.Click, Compo7.Click, Compo8.Click
CurrentBtn = DirectCast(e.Source, Button)
Dim CompoName As String = "Compo" & GetIndexFromButton(CurrentBtn).ToString
Dim CompoName As String = S_COMPO & GetIndexFromButton(CurrentBtn).ToString
m_sCurrCompoFam = CompoName
m_SecondaryComponentPage.m_sCurrCompo = String.Empty
Dim nCount As Integer = GetPrivateProfileInt(CompoName, "Count", 0, m_MainWindow.GetIniFile())
Dim nCount As Integer = GetPrivateProfileInt(CompoName, K_CMP_COUNT, 0, m_MainWindow.GetIniFile())
If nCount > 1 Then
m_MainWindow.m_DrawPageUC.LeftButtonGrd.Children.Remove(Me)
m_MainWindow.m_DrawPageUC.m_ActiveComponentPage = DrawPageUC.Pages.SecondaryComponent
@@ -253,7 +253,7 @@ Public Class MainComponentPageUC
Private Sub LoadPage()
Dim nDeltaSecondPage As Integer = 8
' Leggo numero di componenti presenti
Dim nCompoNumber As Integer = GetPrivateProfileInt("Compo", "Count", 0, m_MainWindow.GetIniFile())
Dim nCompoNumber As Integer = GetPrivateProfileInt(S_COMPO, K_CMP_COUNT, 0, m_MainWindow.GetIniFile())
' Calcolo indici a seconda della pagina in cui sono
If m_bIsFirstPage Then
ClearButton(nCompoNumber)
+4 -4
View File
@@ -26,17 +26,17 @@ Public Class SecondaryComponentPageUC
Dim ImageConverter As New ImageSourceConverter
Dim ThicknessConverter As New ThicknessConverter
m_sMainCompoName = m_MainComponentPage.m_sCurrCompoFam '"Compo" & m_MainComponentPage.GetIndexFromButton(CurrentMainBtn)
m_sMainCompoName = m_MainComponentPage.m_sCurrCompoFam
'Assegnazione immagine e testo ai Button
Dim nCount As Integer = GetPrivateProfileInt(m_sMainCompoName, "Count", 0, m_MainWindow.GetIniFile())
Dim nCount As Integer = GetPrivateProfileInt(m_sMainCompoName, K_CMP_COUNT, 0, m_MainWindow.GetIniFile())
ClearButton(nCount)
For index As Integer = 1 To nCount
Dim CustomThickness As Thickness = ThicknessConverter.ConvertFromString("0")
Dim nCompoName As Integer = GetPrivateProfileInt(m_sMainCompoName, "Compo" & index, 0, m_MainWindow.GetIniFile())
Dim nCompoName As Integer = GetPrivateProfileInt(m_sMainCompoName, S_EXTCOMPO & index, 0, m_MainWindow.GetIniFile())
Dim sCompo As String = ""
Dim sCompoImage As String = ""
m_MainComponentPage.GetPrivateProfileCompo(m_sMainCompoName, "Compo" & index, nCompoName, sCompo, sCompoImage, m_MainWindow.GetIniFile())
m_MainComponentPage.GetPrivateProfileCompo(m_sMainCompoName, S_EXTCOMPO & index, nCompoName, sCompo, sCompoImage, m_MainWindow.GetIniFile())
Dim sCompoImageSource As ImageSource
'verifico presenza immagine e la aggiungo
+25 -8
View File
@@ -75,10 +75,12 @@ Public Class SideAngleUC
' Inizializzo lati per angoli e per gocciolatoi (ne compilo la lista e aggiungo la scritta nel disegno)
InitSides()
' Aggiorno testi nel disegno e creo i gocciolatoi
RefreshSideAngleText()
'' Aggiorno testi nel disegno e creo i gocciolatoi
'RefreshSideAngleText()
' Aggiorno check e valori
RefreshCheckAndValue()
' Aggiorno testi nel disegno e creo i gocciolatoi
RefreshSideAngleText()
' Gestisco visualizzazione di tutti i parametri
If m_Mode = ModeOpt.SIDEANGLE Then
@@ -179,6 +181,10 @@ Public Class SideAngleUC
' Imposto contesto corrente
EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
' Ricavo nome primo pezzo e lo sistemo
If m_Mode = ModeOpt.ENGRAVE And m_MainWindow.m_DrawPageUC.SelectedLayer = GDB_ID.NULL Then
PartId = EgtGetFirstPart()
m_MainWindow.m_DrawPageUC.SetCurrLayer(EgtGetFirstNameInGroup(PartId, NAME_OUTLOOP))
End If
PartId = If(m_MainWindow.m_DrawPageUC.SelectedLayer <> GDB_ID.NULL, EgtGetFirstPart(), GDB_ID.NULL)
' Recupero nome layer con geometria di contorno (esterno o interno) del pezzo
LoopId = m_MainWindow.m_DrawPageUC.SelectedLayer
@@ -275,8 +281,8 @@ Public Class SideAngleUC
' Attualmente il vaore m_nCount è inizializzato ad "1"..
' Bottoni Prev Next
If m_nCount <= MAX_LINES Then
PrevBtn.Visibility = Windows.Visibility.Hidden
NextBtn.Visibility = Windows.Visibility.Hidden
PrevBtn.Visibility= Windows.Visibility.Hidden
NextBtn.Visibility= Windows.Visibility.Hidden
Else
Grid.SetRow(PrevBtn, MAX_LINES - m_nShow)
PrevBtn.Visibility = Windows.Visibility.Visible
@@ -497,11 +503,10 @@ Public Class SideAngleUC
If m_CallingPage = MainWindow.Pages.Draw Then
' Imposto contesto corrente
EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
' Ricavo nome primo pezzo
PartId = If(m_MainWindow.m_DrawPageUC.SelectedLayer <> GDB_ID.NULL, EgtGetFirstPart(), GDB_ID.NULL)
' Recupero nome layer con geometria di contorno (esterno o interno) del pezzo
LoopId = m_MainWindow.m_DrawPageUC.SelectedLayer
ElseIf m_CallingPage = MainWindow.Pages.Import Then
ElseIf m_CallingPage = MainWindow.Pages.Import Then
' Imposto contesto corrente
EgtSetCurrentContext(m_MainWindow.m_ImportPageUC.ImportScene.GetCtx())
' Recupero nome pezzo
@@ -568,8 +573,20 @@ Public Class SideAngleUC
' verifico se l'entità ha un gocciolatoio
GetChBxFromIndex(nChIndex).IsChecked = Entity.bHaveDrip
' aggiorno i valore delle caselle di testo per le entità caricate (Start/End)
GetAngleTxBxFromIndex(nChIndex).Text = DoubleToString(Entity.dShortStart, 1)
GetHeelTxBxFromIndex(nChIndex).Text = LenToString(Entity.dShortStart, 1)
If m_Mode = ModeOpt.ENGRAVE Then
Dim dVal As Double = 0
If StringToLen(GetPrivateProfileDouble(S_SIDES, K_ENGRAVESHORT & "A" & nIndex.ToString & "_Start", 0, m_MainWindow.GetIniFile()), dVal) Then
Entity.dShortStart = dVal
End If
If StringToLen(GetPrivateProfileDouble(S_SIDES, K_ENGRAVESHORT & "A" & nIndex.ToString & "_End", 0, m_MainWindow.GetIniFile()), dVal) Then
Entity.dShortEnd = dVal
End If
Else
'GetAngleTxBxFromIndex(Index).Text = GetPrivateProfileDouble(S_SIDES, K_DRIPSHORT & "A" & nI.ToString & "_Start", 0, m_MainWindow.GetIniFile())
'GetHeelTxBxFromIndex(Index).Text = GetPrivateProfileDouble(S_SIDES, K_DRIPSHORT & "A" & nI.ToString & "_End", 0, m_MainWindow.GetIniFile())
End If
GetAngleTxBxFromIndex(nChIndex).Text = LenToString(Entity.dShortStart, 1)
GetHeelTxBxFromIndex(nChIndex).Text = LenToString(Entity.dShortEnd, 1)
Next
End If
End Sub
+341 -323
View File
@@ -10,27 +10,27 @@
<!-- Definizione della AlarmsPage -->
<Border Style="{DynamicResource OmagCut_PageBorder}" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<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>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="0.5*"/>
<!--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.RowDefinitions>
<!--GruopBox: taglio lama-->
@@ -51,7 +51,7 @@
<RowDefinition Height="1*"/>
<RowDefinition Height="0.375*"/>
</Grid.RowDefinitions>
<!--Parametri Taglio Lama: 5 Parametri-->
<GroupBox Name="SawGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.RowSpan="4">
<!--definizione della grigli ainterna-->
@@ -92,8 +92,8 @@
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<CheckBox Name="PreCutExitChBx" Grid.Column="1" Grid.Row="4" Margin="10,0,10,0"
Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right"/>
HorizontalAlignment="Right"/>
</Grid>
</GroupBox>
@@ -200,7 +200,7 @@
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}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</GroupBox>
@@ -218,78 +218,78 @@
</GroupBox>
</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}">
<Grid Name="CurrToolsGrid" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<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*"/>
</Grid.RowDefinitions>
<Grid Name="CurrToolsGrid" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<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*"/>
</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}"/>
<ComboBox x:Name="CurrSawCmBx" Grid.Column="1" Grid.Row="1" Style="{DynamicResource OmagCut_ComboBox}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox x:Name="CurrSawCmBx" Grid.Column="1" Grid.Row="1" Style="{DynamicResource OmagCut_ComboBox}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</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}"
Visibility="Hidden"/>
<ComboBox Name="AuxiliaryToolCmBx" Grid.Column="1" Grid.Row="3" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox Name="AuxiliaryToolCmBx" Grid.Column="1" Grid.Row="3" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</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}"
Visibility="Hidden"/>
<ComboBox Name="CurrDrillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox Name="CurrDrillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</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}"
Visibility="Hidden"/>
<ComboBox Name="CurrMillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox Name="CurrMillCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</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}"
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"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
Visibility="Hidden"/>
<ComboBox Name="CurrWJetCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox Name="CurrWJetCmBx" Grid.Column="1" Grid.Row="5" Style="{StaticResource OmagCut_ComboBox}" Visibility="Hidden">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</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}"/>
</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>
<ColumnDefinition />
<ColumnDefinition />
@@ -424,96 +424,106 @@
</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>
<Grid.RowDefinitions>
<RowDefinition Height="2.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<ListBox Name="MaterialsLstBx" Grid.RowSpan="2">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox Name="MaterialsLstBx" Grid.RowSpan="2">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding sName}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</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}" />
<UniformGrid Grid.Row="2" Columns="2">
<Button Name="NewMatBtn" Grid.Column="1"
<UniformGrid Grid.Row="2" Columns="2">
<Button Name="NewMatBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<Button Name="RemoveMatBtn" Grid.Column="1"
<Button Name="RemoveMatBtn" Grid.Column="1"
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>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<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*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<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*"/>
</Grid.RowDefinitions>
<TextBlock Name="CurrSawingTxBl" Grid.Column="0" Grid.Row="0"
<TextBlock Name="CurrSawingTxBl" Grid.Column="0" Grid.Row="0"
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}" />
<TextBlock Name="CurrDrillingTxBl" Grid.Column="0" Grid.Row="1"
<TextBlock Name="CurrDrillingTxBl" Grid.Column="0" Grid.Row="1"
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}" />
<TextBlock Name="CurrMillingTxBl" Grid.Column="0" Grid.Row="2"
<TextBlock Name="CurrMillingTxBl" Grid.Column="0" Grid.Row="2"
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}" />
<TextBlock Name="CurrPocketingTxBl" Grid.Column="0" Grid.Row="3"
<TextBlock Name="CurrPocketingTxBl" Grid.Column="0" Grid.Row="3"
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}" />
<TextBlock Name="CurrWaterJettingTxBl" Grid.Column="0" Grid.Row="4"
<TextBlock Name="CurrWaterJettingTxBl" Grid.Column="0" Grid.Row="4"
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}" />
<TextBlock Name="CurrDripSawingTxBl" Grid.Column="0" Grid.Row="5"
<TextBlock Name="CurrDripDrillingTxBl" Grid.Column="0" Grid.Row="6"
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}" />
<TextBlock Name="CurrDripDrillingTxBl" Grid.Column="0" Grid.Row="6"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CurrDripDrillingTxBx" Grid.Column="1" Grid.Row="6" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_FixedTextBox}" />
</Grid>
</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.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -551,51 +561,51 @@
</GroupBox>-->
<Grid Grid.Column="1" Grid.Row="3" Grid.RowSpan="3">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Column="1" Grid.Row="3" Grid.RowSpan="3">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<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.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<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.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="SafeZTxBl" Grid.Column="0"
<TextBlock Name="SafeZTxBl" Grid.Column="0"
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}"/>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
<Border Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Border Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="AdditionalTableTxBl" Grid.Column="0"
<TextBlock Name="AdditionalTableTxBl" Grid.Column="0"
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}"/>
</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>
<TextBlock Name="FinalHomeTxBl"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
@@ -605,199 +615,207 @@
</GroupBox>-->
<GroupBox Name="NestingParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" Grid.Row="6" Grid.RowSpan="3">
<Grid Name="NestingGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<GroupBox Name="NestingParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" Grid.Row="6" Grid.RowSpan="3">
<Grid Name="NestingGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</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}" />
<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"/>
<!--Allineato-->
<TextBlock Name="AlignTxBl" Grid.Row="1" Grid.ColumnSpan="2"
<!--Allineato-->
<TextBlock Name="AlignTxBl" Grid.Row="1" Grid.ColumnSpan="2"
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"/>
<!--Ghigliottina-->
<TextBlock Name="GhigliottinaTxBl" Grid.Row="2" Grid.ColumnSpan="2"
<!--Ghigliottina-->
<TextBlock Name="GhigliottinaTxBl" Grid.Row="2" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<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}"
<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"/>
</Grid>
</GroupBox>
</GroupBox>
<GroupBox Name="AutoRawImageParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2">
<Grid>
<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*"/>
<GroupBox Name="AutoRawImageParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
</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}"/>
</Grid>
</Grid>
<TextBlock Name="ThresholdTxBl" Grid.Column="0" Grid.Row="1"
<TextBlock Name="ThresholdTxBl" Grid.Column="0" Grid.Row="1"
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}"/>
<TextBlock Name="ToleranceTxBl" Grid.Column="0" Grid.Row="2"
<TextBlock Name="ToleranceTxBl" Grid.Column="0" Grid.Row="2"
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}"/>
</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>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="CfrLenTxBl" Grid.Column="0"
<TextBlock Name="CfrLenTxBl" Grid.Column="0"
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}"/>
<TextBlock Name="CfrPercTxBl" Grid.Column="0" Grid.Row="1"
<TextBlock Name="CfrPercTxBl" Grid.Column="0" Grid.Row="1"
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}"/>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
<!--Incisioni-->
<GroupBox Name="TopMillGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3"
<!--Incisioni-->
<GroupBox Name="TopMillGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3"
Grid.Row="3" Grid.RowSpan="3">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<!--Utilizza fresa-->
<TextBlock Name="TmEnableTxBl" Grid.Column="0" Grid.Row="0"
<!--Utilizza fresa-->
<TextBlock Name="TmEnableTxBl" Grid.Column="0" Grid.Row="0"
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"/>
<!--Affondamento-->
<TextBlock Name="TmDepthTxBl" Grid.Column="0" Grid.Row="1"
<!--Affondamento-->
<TextBlock Name="TmDepthTxBl" Grid.Column="0" Grid.Row="1"
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}"/>
<!--Larghezza-->
<TextBlock Name="TmWidthTxBl" Grid.Column="0" Grid.Row="2"
<!--Larghezza-->
<TextBlock Name="TmWidthTxBl" Grid.Column="0" Grid.Row="2"
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}"/>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
<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">
<Border Name="SideAngCutProbeGpBx" Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="3" Grid.Row="6">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</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}" />
<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"/>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
<UniformGrid Columns="4" Grid.Row="8">
<Button x:Name="SawProbingBtn"
<Grid Grid.Column="0" Grid.Row="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Button x:Name="SawProbingBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource SawProbeImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>
</Button>
<Image Source="{DynamicResource SawProbeImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>
</Button>
</UniformGrid>
</Grid>
</Border>
<TextBlock Name="UseLaserOriginTxBl" Grid.Column="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="UseLaserOriginChBx" Style="{DynamicResource OmagCut_CheckBox_Single}" Grid.Column="2"
HorizontalAlignment="Right" Margin="10,0,10,0"/>
</Grid>
</Grid>
</Border>
</UserControl>
+40 -4
View File
@@ -109,6 +109,7 @@ Public Class AlarmsPageUC
CurrDripDrillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 6) ' DripDrilling
FrameGpBx.Header = EgtMsg(91068) ' Cornici
FramePauseTxBl.Text = EgtMsg(91067) ' Inserisci pausa
UseLaserOriginTxBl.Text = EgtMsg(91129) ' Usa laser per origine
AutoRawImageParamGpBx.Visibility = Windows.Visibility.Hidden
End Sub
@@ -184,6 +185,11 @@ Public Class AlarmsPageUC
' Seleziono lama corrente
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
Select Case m_CurrentMachine.MountedToolConfig
Case CurrentMachine.MountedToolConfigs.SAW
@@ -374,6 +380,17 @@ Public Class AlarmsPageUC
' Leggo parametri per variazione feed in tagli
CfrLenTxBx.Text = LenToString(m_CurrentMachine.dFsevLength, 3)
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
' aggiorna le text delle lavorazioni (la selezione avviene nella pagina del grezzo o dalla pagina del progetto corrente)
@@ -412,11 +429,14 @@ Public Class AlarmsPageUC
End If
If m_CurrentMachine.sCurrWaterJetting <> String.Empty Then
CurrWaterJettingTxBx.Text = m_CurrentMachine.sCurrWaterJetting
CurrWaterJettingQualityTxBx.Text = m_CurrentMachine.sCurrWaterJettingQuality
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Visible
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Visible
Else
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Hidden
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Hidden
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Hidden
End If
If m_CurrentMachine.sCurrDripSawing <> String.Empty Then
CurrDripSawingTxBx.Text = m_CurrentMachine.sCurrDripSawing
@@ -549,7 +569,7 @@ Public Class AlarmsPageUC
If CurrDrillCmBx.SelectedItem.ToString() = NO_TOOL Then
m_CurrentMachine.sCurrDrill = String.Empty
m_CurrentMachine.sCurrDrilling = String.Empty
' Assegno foretto
' Assegno foretto
Else
m_CurrentMachine.sCurrDrill = CurrDrillCmBx.SelectedItem.ToString()
' Reset fresa, waterjet e relative lavorazioni
@@ -584,7 +604,7 @@ Public Class AlarmsPageUC
If CurrMillCmBx.SelectedItem.ToString() = NO_TOOL Then
m_CurrentMachine.sCurrMill = String.Empty
m_CurrentMachine.sCurrMilling = String.Empty
' Assegno fresa
' Assegno fresa
Else
m_CurrentMachine.sCurrMill = CurrMillCmBx.SelectedItem.ToString()
' Reset foretto, waterjet e relative lavorazioni
@@ -654,7 +674,7 @@ Public Class AlarmsPageUC
If CurrWJetCmBx.SelectedItem.ToString() = NO_TOOL Then
m_CurrentMachine.sCurrWaterJet = String.Empty
m_CurrentMachine.sCurrWaterJetting = String.Empty
' Assegno Waterjet
' Assegno Waterjet
Else
m_CurrentMachine.sCurrWaterJet = CurrWJetCmBx.SelectedItem.ToString()
' Reset foretto, fresa e relative lavorazioni
@@ -857,7 +877,7 @@ Public Class AlarmsPageUC
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
End Sub
Private Sub TmDepthTxBx_EgtClosed(sender As Object, e As EventArgs) Handles TmDepthTxBx.EgtClosed
Dim dVal As Double = 0
@@ -993,6 +1013,14 @@ Public Class AlarmsPageUC
End If
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
If WashingChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_WASHING, "1", m_MainWindow.GetMachIniFile())
@@ -1026,6 +1054,14 @@ Public Class AlarmsPageUC
End Sub
Private Sub SawProbingBtn_Click(sender As Object, e As RoutedEventArgs) Handles SawProbingBtn.Click
' imposto modo automatico
Select Case m_MainWindow.m_CNCommunication.m_nNCType
Case 1, 2
' in attesa di verifica
Case 3
Dim nResult As Short = m_CN.DGeneralFunctions_WriteCncMode(0)
EgtOutLog("Impostata modalità automatica: esito " & nResult.ToString)
End Select
' Recupero file LUA
EgtLuaExecFile(m_MainWindow.m_CurrentMachine.sMachDir() & "\DirectCmd\SawProbing.lua")
' Recupero utensile da tastare
+149 -11
View File
@@ -1,4 +1,5 @@
Imports System.Collections.ObjectModel
Imports EgtWPFLib5
Imports EgtUILib
Public Class CurrentMachine
@@ -114,6 +115,7 @@ Public Class CurrentMachine
Private m_sCurrDripSawing As String = String.Empty
Private m_sCurrDripDrilling As String = String.Empty
Private m_sCurrWaterJetting As String = String.Empty
Private m_sCurrWaterJettingQuality As String = String.Empty
' Spessore sottopezzo
Private m_dAdditionalTable As Double = 0
@@ -157,6 +159,9 @@ Public Class CurrentMachine
' Lista dei materiali
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
Private m_MaxIdMat As Integer = 0
@@ -709,6 +714,17 @@ Public Class CurrentMachine
End Set
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
Get
Return m_bWaterJetting AndAlso Not String.IsNullOrWhiteSpace(m_sCurrWaterJetting)
@@ -903,6 +919,12 @@ Public Class CurrentMachine
End Get
End Property
Friend ReadOnly Property Qualities As ObservableCollection(Of String)
Get
Return m_Qualities
End Get
End Property
Friend Sub AddMaterial(value As Material)
For Each Material As Material In Materials
If Material.nId = value.nId Then
@@ -984,7 +1006,11 @@ Public Class CurrentMachine
End Get
Set(value As Material)
Dim CurrMatId As String = If(Not IsNothing(value), value.nId.ToString, "")
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId, sMachIniFile)
If bWaterJet 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
End Set
End Property
@@ -1157,6 +1183,8 @@ Public Class CurrentMachine
GetPrivateProfileString(S_MACH_MACH, K_CURRDRIPDRILLING, Nothing, m_sCurrDripDrilling, sMachIniFile)
' waterjetting
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
m_ToolChangerNbr = GetPrivateProfileInt(S_TOOLCHANGER, K_NUMBER, 0, sMachIniFile)
@@ -1218,27 +1246,120 @@ Public Class CurrentMachine
' Leggo la lista dei materiali
Dim Material As Material = Nothing
Dim nIndex As Integer = 1
While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile))
m_Materials.Add(Material)
nIndex += 1
End While
If m_bWaterJet Then
LoadWJMaterial(True)
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
m_MaxIdMat = nIndex - 1
' Leggo materiale correntemente attivo
Dim CurrMatId As Integer = GetPrivateProfileInt(S_MATERIALS, K_CURRMATERIAL, 0, sMachIniFile)
For Each Material In Materials
If Material.nId = CurrMatId Then
m_CurrMat = Material
Exit For
Dim sCurrMatId As String = String.Empty
EgtUILib.GetPrivateProfileString(S_MATERIALS, K_CURRMATERIAL, "0", sCurrMatId, sMachIniFile)
If bWaterJet Then
Dim sCurrMatIds As String()
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
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
m_HasRawProbe = (GetPrivateProfileInt(S_MACH_PROBING, K_ENABLERAWPROBE, 1, sMachIniFile) <> 0)
' leggo se la macchina ha il lettore di codice a barre della lastra
m_nEnableBarCodeReader = GetPrivateProfileInt(S_MACH_BARCODEREADER, K_ENABLEBCR, 0, sMachIniFile)
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("")
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
' Recupero diametro lama corrente
EgtTdbSetCurrTool(sCurrSaw)
@@ -1333,6 +1454,7 @@ Friend Class Material
Private m_nId As Integer
Private m_sName As String
Private m_SubId As Integer = 0
Public ReadOnly Property nId As Integer
Get
@@ -1349,6 +1471,15 @@ Friend Class Material
End Set
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))
Dim nMaxId As Integer = 0
For Each Material As Material In MaterialList
@@ -1365,4 +1496,11 @@ Friend Class Material
m_sName = sName
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
+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
+2 -2
View File
@@ -18,7 +18,7 @@
<ScrollViewer Grid.Row="0" Margin="20">
<TreeView ItemsSource="{Binding FamilyList}" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type EgtWPFLib5:ImpExpFamily}" ItemsSource="{Binding ToolList}">
<HierarchicalDataTemplate DataType="{x:Type EgtWPFLib5:ImpExpToolFamily}" ItemsSource="{Binding ToolList}">
<Grid Height="20">
<Grid.ColumnDefinitions>
@@ -88,7 +88,7 @@
</HierarchicalDataTemplate.ItemContainerStyle>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type EgtWPFLib5:ImpExpItem}">
<DataTemplate DataType="{x:Type EgtWPFLib5:ImpExpToolItem}">
<Grid Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
+18
View File
@@ -5,6 +5,13 @@ Public Class ImportExportToolWD
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)
Me.Owner = Owner
' 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
' Me.DialogResult = bDialogResult
'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
+8 -4
View File
@@ -24,9 +24,10 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<ToggleButton Name="AlarmsBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
@@ -41,10 +42,13 @@
<ToggleButton Name="PolishingsBtn" Grid.Column="3" Style="{DynamicResource OmagCut_BlueIconToggleButton}">
<!--<Image Source="{DynamicResource LucidaturaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>-->
</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}"/>
</ToggleButton>
<ToggleButton Name="StatisticsBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowToggleButton}">
<ToggleButton Name="StatisticsBtn" Grid.Column="6" Style="{DynamicResource OmagCut_YellowToggleButton}">
</ToggleButton>
+190 -1
View File
@@ -10,6 +10,7 @@ Public Class MachinePageUC
Friend m_ToolsDbPageUC As ToolsDbPageUC
Friend m_MachiningDbPageUC As MachiningDbPageUC
Friend m_PolishingsPageUC As PolishingsPageUC
Friend m_WaterJetPageUC As WaterJetPageUC
Friend m_MachineCNPageUC As MachineCNPageUC
Friend m_StatisticsPageUC As StatisticsPageUC
@@ -21,6 +22,7 @@ Public Class MachinePageUC
ToolsDb
MachiningDb
Polishings
WaterJet
MachineCN
Statistics
End Enum
@@ -32,6 +34,7 @@ Public Class MachinePageUC
m_ToolsDbPageUC = New ToolsDbPageUC
m_MachiningDbPageUC = New MachiningDbPageUC
m_PolishingsPageUC = New PolishingsPageUC
m_WaterJetPageUC = New WaterJetPageUC
m_MachineCNPageUC = New MachineCNPageUC
m_StatisticsPageUC = New StatisticsPageUC
@@ -40,6 +43,7 @@ Public Class MachinePageUC
m_ToolsDbPageUC.SetValue(Grid.RowProperty, 1)
m_MachiningDbPageUC.SetValue(Grid.RowProperty, 1)
m_PolishingsPageUC.SetValue(Grid.RowProperty, 1)
m_WaterJetPageUC.SetValue(Grid.RowProperty, 1)
m_MachineCNPageUC.SetValue(Grid.RowProperty, 1)
m_StatisticsPageUC.SetValue(Grid.RowProperty, 1)
@@ -47,6 +51,7 @@ Public Class MachinePageUC
ToolsDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 6)
MachiningDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 7)
PolishingsBtn.Content = EgtMsg(91090)
WaterJetBtn.Content = EgtMsg(91128)
TestingPageBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 8)
StatisticsBtn.Content = EgtMsg(90709)
@@ -55,10 +60,14 @@ Public Class MachinePageUC
m_ActiveMachinePage = MachinePages.Alarms
' 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
End If
If Not m_MainWindow.m_CurrentMachine.bWaterJet Then
WaterJetBtn.IsEnabled = False
End If
' Se controllo numerico 0, disattivo la pagina macchina
If GetPrivateProfileInt(S_NUMERICALCONTROL, K_TYPE, 0, m_MainWindow.GetMachIniFile()) = 0 Then
TestingPageBtn.IsEnabled = False
@@ -134,6 +143,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_AlarmsPageUC)
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
AlarmsBtn.IsChecked = True
TestingPageBtn.IsChecked = False
@@ -188,6 +213,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_ToolsDbPageUC)
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
ToolsDBBtn.IsChecked = True
TestingPageBtn.IsChecked = False
@@ -242,6 +283,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_MachiningDbPageUC)
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
MachiningDBBtn.IsChecked = True
TestingPageBtn.IsChecked = False
@@ -299,6 +356,22 @@ Public Class MachinePageUC
m_ActiveMachinePage = MachinePages.Polishings
Case MachinePages.Polishings
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
PolishingsBtn.IsChecked = True
TestingPageBtn.IsChecked = False
@@ -314,6 +387,77 @@ Public Class MachinePageUC
End Select
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
Select Case m_ActiveMachinePage
Case MachinePages.Alarms
@@ -367,6 +511,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_MachineCNPageUC)
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
TestingPageBtn.IsChecked = True
Case MachinePages.Statistics
@@ -431,6 +591,22 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_StatisticsPageUC)
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
StatisticsBtn.IsChecked = True
TestingPageBtn.IsChecked = False
@@ -467,6 +643,19 @@ Public Class MachinePageUC
MachinePageGrid.Children.Remove(m_PolishingsPageUC)
MachinePageGrid.Children.Add(m_AlarmsPageUC)
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
AlarmsBtn.IsChecked = True
TestingPageBtn.IsChecked = False
+2 -2
View File
@@ -423,8 +423,8 @@
<TextBlock Grid.Column="0" Name="ConsumptionNameTxBx" Text="A"
Style="{StaticResource OmagCut_LowerBarTitleTextBlock}"/>
<TextBlock Grid.Column="1" Name="ConsumptionTxBx" Text="25"
Style="{StaticResource OmagCut_LowerBarValueTextBlock}"/>
<TextBlock Grid.Column="1" Name="ConsumptionTxBx" Text="25.00"
Style="{StaticResource OmagCut_LowerBarValueTextBlock}" FontSize="22"/>
</Grid>
+4 -2
View File
@@ -931,14 +931,16 @@
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="11*"/>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button Name="NewBtn" Grid.Column="0" 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="ExportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="ImportBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
</Grid>
</Grid>
+251 -9
View File
@@ -3,6 +3,7 @@ Imports System.ComponentModel
Imports OmagCUT.TreeViewItem
Imports EgtUILib
Imports EgtWPFLib
Imports EgtWPFLib5
Public Class MachiningDbPageUC
@@ -78,6 +79,8 @@ Public Class MachiningDbPageUC
NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 16)
SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17)
RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18)
ExportBtn.Content = "Export"
ImportBtn.Content = "Import"
NameTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 1)
DepthTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 2)
@@ -321,6 +324,193 @@ Public Class MachiningDbPageUC
End If
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)
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, 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)
If Not bEnabled Then Return
' Inserisco categoria ed eventuali elementi
@@ -515,7 +705,11 @@ Public Class MachiningDbPageUC
' Lista materiali
m_MaterialsList.Clear()
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 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
EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, ToolString)
If ToolString <> String.Empty Then
@@ -523,14 +717,30 @@ Public Class MachiningDbPageUC
Dim Index As Integer = 0
For Each Material As MachiningMaterial In m_MaterialsList
Dim Param() As String = sItems(Index).Split(",".ToCharArray)
Dim SubParam() As String = Param(0).Split(".".ToCharArray)
Dim nParId As Integer = 0
If StringToInt(Param(0), nParId) AndAlso nParId = Material.nId Then
StringToDouble(Param(1), Material.dMinThickness)
StringToDouble(Param(2), Material.dMaxThickness)
Material.VerifyIfActive()
Index += 1
Dim nSubParId As Integer = 0
If m_MainWindow.m_CurrentMachine.bWaterJet Then
If StringToInt(SubParam(0), nParId) AndAlso nParId = Material.nId AndAlso SubParam.Count > 1 AndAlso
StringToInt(SubParam(1), nSubParId) AndAlso nSubParId = Material.nSubId Then
StringToDouble(Param(1), Material.dMinThickness)
StringToDouble(Param(2), Material.dMaxThickness)
Material.VerifyIfActive()
Index += 1
Else
Material.VerifyIfActive()
End If
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
Next
End If
@@ -684,8 +894,14 @@ Public Class MachiningDbPageUC
' Scrivo stringa materiali da lista
Dim sMaterialString As String = String.Empty
For Each Material As MachiningMaterial In m_MaterialsList
If Material.bIsActive Then
sMaterialString += Material.nId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";"
If m_MainWindow.m_CurrentMachine.bWaterJet Then
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
Next
EgtMdbSetCurrMachiningParam(MCH_MP.SYSNOTES, sMaterialString)
@@ -2068,6 +2284,16 @@ Public Class MachiningDbPageUC
Private Sub MaxThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MaxThicknessTxBx.EgtClosed
Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem
Dim dMaxThick As Double = 0
If m_MainWindow.m_CurrentMachine.bWaterJet 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)
SelectedMaterial.VerifyIfActive()
End Sub
@@ -2215,6 +2441,7 @@ Class MachiningMaterial
Implements INotifyPropertyChanged
Private m_nId As Integer
Private m_nSubId As Integer
Private m_sName As String
Private m_dMinThickness As Double
Private m_dMaxThickness As Double
@@ -2226,6 +2453,12 @@ Class MachiningMaterial
End Get
End Property
Public ReadOnly Property nSubId As Integer
Get
Return m_nSubId
End Get
End Property
Public ReadOnly Property Name As String
Get
Return m_sName
@@ -2264,6 +2497,15 @@ Class MachiningMaterial
m_bIsActive = False
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()
Dim bIsActive As Boolean = ( m_dMaxThickness > m_dMinThickness + EPS_SMALL)
If bIsActive <> m_bIsActive Then
+3 -4
View File
@@ -434,17 +434,16 @@
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button Name="NewBtn" Grid.Column="0" 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="ExportBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
<Button Name="ImportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
<Button Name="ExportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
<Button Name="ImportBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
</Grid>
+133 -25
View File
@@ -17,6 +17,8 @@ Public Class ToolsDbPageUC
Dim ToolsList As New ObservableCollection(Of CathegoryItem)
' Proprietà
Private m_bFirst As Boolean = True
' Flag nuova gestione parametri lama in disegno
Private m_bNewSawbladeMaker As Boolean = False
' Stringa identificativa variabile geometrica in modifica
Private m_sCurrVar As String = String.Empty
' Parametri dell'utensile corrente
@@ -54,8 +56,8 @@ Public Class ToolsDbPageUC
NewBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 15)
SaveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17)
RemoveBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18)
ExportBtn.Content = "Export"
ImportBtn.Content = "Import"
ExportBtn.Content = EgtMsg(91126)
ImportBtn.Content = EgtMsg(91127)
NameTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 1)
TCPosTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 2)
@@ -173,6 +175,10 @@ Public Class ToolsDbPageUC
If Not m_CurrMachine.bShowHeadExit Then
MoveParam()
End If
' Verifico se macchina con nuovo SawbladeMaker
Dim sSawBladeMaker As String = ""
GetPrivateProfileString(S_TOOLS, K_SAWBLADEMAKER, "", sSawBladeMaker, m_MainWindow.GetIniFile())
m_bNewSawbladeMaker = String.Compare(sSawBladeMaker, "MakeStoneSawBlade.lua", True)
m_bFirst = False
Else
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
@@ -487,17 +493,17 @@ Public Class ToolsDbPageUC
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' creo lista utensili per esportazione
Dim ToolToExportList = New ObservableCollection(Of ImpExpFamily)
Dim ToolToExportList = New ObservableCollection(Of ImpExpToolFamily)
Dim Family As CathegoryItem
Dim Tool As CustomItem
For Each Family In ToolsList
Dim ImpExpFamily As New ImpExpFamily(Family.Name, Family.nTType)
ImpExpFamily.PictureString = "/Resources/ToolsTreeviewImages/Folder.png"
Dim ImpExpToolFamily As New ImpExpToolFamily(Family.Name, Family.nTType)
ImpExpToolFamily.PictureString = "/Resources/ToolsTreeviewImages/Folder.png"
For Each Tool In Family.Items
Dim CurrTool = New ImpExpItem(Tool.Name, False)
ImpExpFamily.ToolList.Add(CurrTool)
Dim CurrTool = New ImpExpToolItem(Tool.Name, False)
ImpExpToolFamily.ToolList.Add(CurrTool)
Next
ToolToExportList.Add(ImpExpFamily)
ToolToExportList.Add(ImpExpToolFamily)
Next
Dim ExportWndVM As New ImportExportToolWindowVM(ToolToExportList)
@@ -522,9 +528,9 @@ Public Class ToolsDbPageUC
' recupero liste utensili da importare
Dim ImportFileToolNameList As String() = 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
Dim ToolToImportList As New ObservableCollection(Of ImpExpFamily)
Dim ToolToImportList As New ObservableCollection(Of ImpExpToolFamily)
' creo famiglie di utensili in base a quelle trovate in lista importata
For ToolIndex As Integer = 0 To ImportFileToolNameList.Count - 1
Dim ToolName As String = ImportFileToolNameList(ToolIndex)
@@ -538,25 +544,26 @@ Public Class ToolsDbPageUC
MCH_TF.WATERJET Or
MCH_TF.COMPO)
Dim bFounded As Boolean = False
Dim ToolToImportFamily As ImpExpFamily
Dim ToolToImportFamily As ImpExpToolFamily
For Each ToolToImportFamily In ToolToImportList
If (ToolFamily = ToolToImportFamily.FamilyType) Then
ToolToImportFamily.ToolList.Add(New ImpExpItem(ToolName, AlreadyExist(ToolName)))
ToolToImportFamily.ToolList.Add(New ImpExpToolItem(ToolName, AlreadyExist(ToolName)))
bFounded = True
Exit For
End If
Next
If Not bFounded Then
Dim NewFamily As New ImpExpFamily(GetToolFamilyName(ToolFamily), ToolFamily)
NewFamily.ToolList.Add(New ImpExpItem(ToolName, AlreadyExist(ToolName)))
Dim NewFamily As New ImpExpToolFamily(GetToolFamilyName(ToolFamily), ToolFamily)
NewFamily.ToolList.Add(New ImpExpToolItem(ToolName, AlreadyExist(ToolName)))
ToolToImportList.Add(NewFamily)
End If
Next
Dim ImportWndVM As New ImportExportToolWindowVM(ToolToImportList, ImportFilePath, ImportFileToolNameList)
Dim ImportWnd As New ImportExportToolWD(Application.Current.MainWindow, ImportWndVM)
If ImportWnd.ShowDialog() Then
' Aggiungo all'albero visualizzato gli utensili appena importati
ImportWnd.ShowDialog()
' Aggiungo all'albero visualizzato gli utensili appena importati
If ImportWnd.OkResult Then
LoadImportedMachineTools(ImportWndVM.vsImported)
End If
End Sub
@@ -586,31 +593,38 @@ Public Class ToolsDbPageUC
Private Sub LoadImportedMachineTools(vsImportedTools As String())
' 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 ToolsFamilyItem As ToolsFamily
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 ToolFamilyItem = ToolsList.FirstOrDefault(Function(ToolFamily) ToolsFamilyItem.Id = FamilyTreeView.nTType)
Dim ToolFamilyItem = ToolsList.FirstOrDefault(Function(ToolFamily) ToolFamily.nTType = ToolsFamilyItem.Id)
If IsNothing(ToolFamilyItem) Then
ToolsList.Insert(ToolsFamilyIndex, FamilyTreeView)
Else
' ricerco l'indice nella lista Tools
End If
Dim nType As Integer = 0
Dim ToolName As String = String.Empty
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
Dim ToolItem = ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName)
If IsNothing(ToolItem) Then
' Se leggo un utensile non presente nella ToolsList visualizzata lo aggiungo ad essa.
Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
ElseIf vsImportedTools.Contains(ToolName) Then
' 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.
ToolsList(ToolsFamilyIndex).Items.Remove(ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName))
Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
End If
ToolIndex += 1
While EgtTdbGetNextTool(ToolsFamilyItem.Id, ToolName, nType)
@@ -619,20 +633,60 @@ Public Class ToolsDbPageUC
' Se leggo un utensile non presente nella ToolsList visualizzata lo aggiungo ad essa.
Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
ElseIf vsImportedTools.Contains(ToolName) Then
' 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.
ToolsList(ToolsFamilyIndex).Items.Remove(ToolsList(ToolsFamilyIndex).Items.FirstOrDefault(Function(Tool) Tool.Name = ToolName))
Dim NewToolName As New CustomItem(ToolName, nType)
ToolsList(ToolsFamilyIndex).Items.Insert(ToolIndex, NewToolName)
'NewToolName.IsSelected = True
End If
ToolIndex += 1
End While
End If
ToolsFamilyIndex += 1
Next
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)
If Not bEnabled Then Return
' Inserisco categoria ed eventuali elementi
@@ -915,8 +969,8 @@ Public Class ToolsDbPageUC
nMsg = MSG_TOOLSDBPAGEUC + 24 ' Tagliente
Case MCH_TP.CORE
nMsg = 90720 ' Anima
'Case MCH_TP.STEM
'nMsg = "Portautensile" ' Portautensile
Case STEM
nMsg = 90719 ' Lunghezza portautensile
End Select
' Predispongo calcolatrice (converto sempre in UIUnits perchè tutte lunghezze)
Dim EgtCalculator As New EgtCalculatorWD(m_MainWindow, EgtToUiUnits(dVal), 300, WidthType.PIXEL, 0, 0, EgtMsg(nMsg))
@@ -947,7 +1001,20 @@ Public Class ToolsDbPageUC
Private Function GetVariableValue(ByRef dVal As Double) As Boolean
' Recupero valore variabile
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
Return EgtTdbGetCurrToolParam(GetVariableType(), dVal)
Dim nVarType As Integer = GetVariableType()
If m_nToolType <> MCH_TY.SAW_STD OrElse nVarType <> STEM Then
Return EgtTdbGetCurrToolParam(nVarType, dVal)
Else
Dim dL, dCore, dTh As Double
If EgtTdbGetCurrToolParam(MCH_TP.LEN, dL) AndAlso
EgtTdbGetCurrToolParam(MCH_TP.CORE, dCore) AndAlso
EgtTdbGetCurrToolParam(MCH_TP.THICK, dTh) Then
dVal = Math.Max(dL - (dCore + dTh) / 2, 0.0)
Return True
Else
Return False
End If
End If
End Function
Private Function SetVariableValue(ByVal dVal As Double) As Boolean
@@ -961,8 +1028,30 @@ Public Class ToolsDbPageUC
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dVal + 1)
Case MCH_TP.DIAM
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dVal)
Case MCH_TP.THICK
If m_bNewSawbladeMaker Then
Dim dTh, dLen As Double
If EgtTdbGetCurrToolParam(MCH_TP.THICK, dTh) AndAlso
EgtTdbGetCurrToolParam(MCH_TP.LEN, dLen) Then
Dim dNewLen As Double = dLen + ((dVal - dTh) / 2)
EgtTdbSetCurrToolParam(MCH_TP.LEN, dNewLen)
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dNewLen + 1)
Else
Return False
End If
End If
Case MCH_TP.CORE
EgtTdbSetCurrToolParam(MCH_TP.CORE, dVal)
If m_bNewSawbladeMaker Then
Dim dCore, dLen As Double
If EgtTdbGetCurrToolParam(MCH_TP.CORE, dCore) AndAlso
EgtTdbGetCurrToolParam(MCH_TP.LEN, dLen) Then
Dim dNewLen As Double = dLen + ((dVal - dCore) / 2)
EgtTdbSetCurrToolParam(MCH_TP.LEN, dNewLen)
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dNewLen + 1)
Else
Return False
End If
End If
End Select
ElseIf m_nToolType = MCH_TY.DRILL_STD Then
Select Case nType
@@ -988,7 +1077,19 @@ Public Class ToolsDbPageUC
EgtTdbSetCurrToolParam(MCH_TP.TOTDIAM, dVal)
End Select
End If
Return EgtTdbSetCurrToolParam(nType, dVal)
If m_nToolType <> MCH_TY.SAW_STD OrElse nType <> STEM Then
Return EgtTdbSetCurrToolParam(nType, dVal)
Else
Dim dCore, dTh As Double
If EgtTdbGetCurrToolParam(MCH_TP.CORE, dCore) AndAlso
EgtTdbGetCurrToolParam(MCH_TP.THICK, dTh) Then
Dim dL As Double = Math.Max(dVal, 0.0) + ((dCore + dTh) / 2)
EgtTdbSetCurrToolParam(MCH_TP.TOTLEN, dL + 1)
Return EgtTdbSetCurrToolParam(MCH_TP.LEN, dL)
Else
Return False
End If
End If
End Function
Private Function GetVariableType() As Integer
@@ -1004,7 +1105,7 @@ Public Class ToolsDbPageUC
ElseIf m_sCurrVar = "CORE" Then
nType = MCH_TP.CORE
ElseIf m_sCurrVar = "STEM" Then
'nType = MCH_TP.STEM
nType = STEM
End If
Return nType
End Function
@@ -1066,6 +1167,13 @@ Public Class ToolsDbPageUC
EgtTdbSetCurrToolParam(MCH_TP.THICK, dToolThick)
EgtOutLog("ToolThick too small ->" & DoubleToString(dToolThick, 1))
End If
Dim dToolCore As Double
EgtTdbGetCurrToolParam(MCH_TP.CORE, dToolCore)
If dToolCore < EPS_SMALL Then
dToolCore = If(dToolLen >= dToolThick, dToolThick - 1, 2 * dToolLen - dToolThick)
EgtTdbSetCurrToolParam(MCH_TP.CORE, dToolCore)
EgtOutLog("ToolCore too small ->" & DoubleToString(dToolCore, 1))
End If
Dim dToolMaxMat As Double
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dToolMaxMat)
If dToolMaxMat < EPS_SMALL Then
+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
+11 -2
View File
@@ -323,8 +323,8 @@ Class MainWindow
' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2309, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2309, 1, m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2312, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2312, 1, m_nKeyOptions)
' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
' Inizializzazione generale di EgtInterface
@@ -1068,6 +1068,15 @@ Class MainWindow
If Not m_MachinePageUC.m_PolishingsPageUC.SaveKit() Then
Return False
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
Return True
End Function
+2 -2
View File
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.3.9.5")>
<Assembly: AssemblyFileVersion("2.3.9.5")>
<Assembly: AssemblyVersion("2.3.12.1")>
<Assembly: AssemblyFileVersion("2.3.12.1")>
+23 -10
View File
@@ -11,6 +11,8 @@ Public Class CNCommunication
Private m_AlarmsPage As AlarmsPageUC = m_MainWindow.m_MachinePageUC.m_AlarmsPageUC
Private m_CurrProjPage As CurrentProjectPageUC = m_MainWindow.m_CurrentProjectPageUC
Friend m_nCountRefresh As Integer = 0
' Variabile per tipologia CN
Friend m_nNCType As Integer
@@ -225,8 +227,11 @@ Public Class CNCommunication
' definisco il tipo di varibili che devono essere scritte nl plc
Dim sVal As String = String.Empty
GetPrivateProfileString(S_NCDATA, K_NEWVARIABLE, "0", sVal, m_MainWindow.GetMachIniFile())
m_CN.m_NewVariable = sVal <> 0
Dim nVal As Integer = 0
'GetPrivateProfileString(S_NCDATA, K_NEWVARIABLE, "0", sVal, m_MainWindow.GetMachIniFile())
nVal = GetPrivateProfileInt(S_NCDATA, K_NEWVARIABLE, nVal, m_MainWindow.GetMachIniFile())
'm_CN.m_NewVariable = sVal <> "0"
m_CN.m_NewVariable = (nVal <> 0)
EgtOutLog("NewVariable=" & If(m_CN.m_NewVariable, "1", "0"))
' Recupero e imposto le variabili per i dati del CN (feed, speed,...)
@@ -326,8 +331,8 @@ Public Class CNCommunication
m_CN.SetCnDataVar(CN_generico.CnData.BypassState, sVal)
' nuove variabili: stato dei nuovi pulsanti
GetPrivateProfileString(S_NCDATA, K_NEWCONSOLE, "", sVal, m_MainWindow.GetMachIniFile())
m_IsNewConsole = (sVal = 1)
nVal = GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile())
m_IsNewConsole = (nVal = 1)
If m_IsNewConsole Then
GetPrivateProfileString(S_NCDATA, K_XYJOG, "", sVal, m_MainWindow.GetMachIniFile())
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.XYJog, sVal)
@@ -376,6 +381,7 @@ Public Class CNCommunication
EgtOutLog("ProcessStart : " & """" & m_sCNSiemensHMIPath & """" & " " & sArg)
Process.Start(m_sCNSiemensHMIPath, sArg)
m_CN.m_IsSiemensOne = GetPrivateProfileInt(S_NCSIEMENS, K_ISSIEMENSONE, 0, m_MainWindow.GetMachIniFile()) > 0
m_CN.m_IsActiveModeSubscription = GetPrivateProfileInt(S_NCSIEMENS, K_ISACTIVEMODESUBSCR, 0, m_MainWindow.GetMachIniFile()) > 0
If m_CN.m_IsSiemensOne Then
' stati bottoni parte 1
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.Laser), VarType.TInteger, 0)
@@ -392,6 +398,8 @@ Public Class CNCommunication
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.SpeedOvr), VarType.TDouble, 1)
GetPrivateProfileString(S_NCSIEMENS, K_DBVARPATH, "", m_CN.m_DbVarPath, m_MainWindow.GetMachIniFile)
ElseIf m_CN.m_IsActiveModeSubscription Then
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.BlowState), VarType.TInteger, 3)
End If
Catch ex As Exception
EgtOutLog("Error starting Process -> NcLink=True type=0")
@@ -695,12 +703,17 @@ Public Class CNCommunication
m_MachineStatus.DisplayVar()
'EgtOutLog("Modo attivato: " & m_CN.read_active_mode & " modo attivo: " & m_nCurrMode)
Dim TempCurrMode As Short = m_CN.read_active_mode()
'EgtOutLog("Machine status: " & TempCurrMode)
If TempCurrMode <> m_nCurrMode Then
'EgtOutLog("Modo attivo: " & m_CN.read_active_mode)
m_nCurrMode = CInt(TempCurrMode)
m_MachineStatus.DisplayActiveMode(m_nCurrMode)
If m_nCountRefresh > 10 Then
Dim TempCurrMode As Short = m_CN.read_active_mode()
'EgtOutLog("Machine status: " & TempCurrMode)
If TempCurrMode <> m_nCurrMode Then
'EgtOutLog("Modo attivo: " & m_CN.read_active_mode)
m_nCurrMode = CInt(TempCurrMode)
m_MachineStatus.DisplayActiveMode(m_nCurrMode)
End If
m_nCountRefresh = 0
Else
m_nCountRefresh = m_nCountRefresh + 1
End If
If m_CN.b_NC_error Then
+5 -3
View File
@@ -131,8 +131,7 @@ Public Class CN_Siemens
Public Overrides Function read_active_mode() As Short
'EgtOutLog("Modo attivo: " & M_MMFiles.SiemensRet.n_param2)
'Return M_MMFiles.read_active_mode()
If m_IsSiemensOne Then
If m_IsSiemensOne Or m_IsActiveModeSubscription Then
Select Case n_data(3)
Case 1
Return 0
@@ -144,7 +143,10 @@ Public Class CN_Siemens
Return 0
End Select
Else
Return CShort(M_MMFiles.SiemensRet.n_param2)
' per verificare che la comunicazione funzioni correttamente
EgtOutLog("Modo -read_active_mode-: " & M_MMFiles.SiemensRet.n_param2.ToString)
Return M_MMFiles.read_active_mode()
'Return CShort(M_MMFiles.SiemensRet.n_param2)
End If
End Function
+2
View File
@@ -88,6 +88,8 @@ Public MustInherit Class CN_generico
#Region " Interface"
Friend m_IsSiemensOne As Boolean = False
Friend m_IsActiveModeSubscription As Boolean = False
Friend m_DbVarPath As String = ""
Public IsFlexiumPlus As Boolean = False
+51 -28
View File
@@ -398,13 +398,35 @@ Module M_MMFiles
End Function
Function WriteCncMode(ByVal nmode As Short) As Short
'EgtOutLog("WriteCncMode start dell'm_mmFiles")
SiemensSend.n_Command = CMD.CMD_WriteCncMode
SiemensSend.n_param1 = nmode
execute_command()
'EgtOutLog("WriteCncMode end dell'm_mmFiles")
Return SiemensRet.n_result
Dim nNewWriteCNCMode As Integer = 0
If GetPrivateProfileInt(S_NCSIEMENS, K_NEWWRITECNCMODE, nNewWriteCNCMode, m_MainWindow.GetMachIniFile()) <> 0 Then
Dim s_var As String = String.Empty
GetPrivateProfileString(S_NCDATA, K_WRITECNCMODEVAR, "db11.dbx0", s_var, m_MainWindow.GetMachIniFile())
Select Case nmode
Case 0
' Auto
s_var &= ".0"
Case 2
' MDI
s_var &= ".1"
Case 7
' manuale
s_var &= ".2"
Case Else
' manuale
s_var &= ".2"
End Select
EgtOutLog("Nuova scrittura modo: case(" & nmode.ToString & ") -> " & s_var)
Return Write_var(s_var, CShort(1), CInt(1), 0, 0, "")
Else
'EgtOutLog("WriteCncMode start dell'm_mmFiles")
SiemensSend.n_Command = CMD.CMD_WriteCncMode
SiemensSend.n_param1 = nmode
EgtOutLog("Attivata modalità: " & SiemensSend.n_param1.ToString)
execute_command()
'EgtOutLog("WriteCncMode end dell'm_mmFiles")
Return SiemensRet.n_result
End If
End Function
@@ -454,6 +476,7 @@ Module M_MMFiles
SiemensSend.n_param1 = nChannel
execute_command()
'EgtOutLog("MDI_command end dell'm_mmFiles")
Return SiemensRet.n_result
@@ -592,7 +615,6 @@ Module M_MMFiles
'----------------------------------------------------------------------------------------------------------
'
Sub execute_command()
Try
' Attesa eventuale busy iniziale
Dim nCount As Integer = 0
@@ -619,25 +641,25 @@ Module M_MMFiles
bEnd = False
While Not bEnd
Select Case nState
Case State.Command_on ' alzato il comando attendo il busy
If SiemensRet.b_busy Then
nState = State.Busy_On
Else
System.Threading.Thread.Sleep(50)
End If
Case State.Busy_On ' trovato il busy abbasso il comando
SiemensSend.n_Flag = COMMAND_OFF ' abbasso il comando
' scrivo !!!!!
Marshal.StructureToPtr(SiemensSend, pView, False)
nState = State.Command_off
Case State.Command_off ' abbassato il comando attendo il busy basso
If SiemensRet.b_busy Then
System.Threading.Thread.Sleep(50)
Else
nState = State.Busy_Off
End If
Case State.Busy_Off
bEnd = True
Case State.Command_on ' alzato il comando attendo il busy
If SiemensRet.b_busy Then
nState = State.Busy_On
Else
System.Threading.Thread.Sleep(50)
End If
Case State.Busy_On ' trovato il busy abbasso il comando
SiemensSend.n_Flag = COMMAND_OFF ' abbasso il comando
' scrivo !!!!!
Marshal.StructureToPtr(SiemensSend, pView, False)
nState = State.Command_off
Case State.Command_off ' abbassato il comando attendo il busy basso
If SiemensRet.b_busy Then
System.Threading.Thread.Sleep(50)
Else
nState = State.Busy_Off
End If
Case State.Busy_Off
bEnd = True
End Select
' controllo massimo numero di cicli
nCount += 1
@@ -723,7 +745,8 @@ Module M_MMFiles
CurrCN.d_Dvariable_values(n) = SiemensRet.d_interf_variable_values(n)
Next
' copy spindle current
' copy spindle current: per debuggare errore di comunicazione
'EgtOutLog("Spindle -d_interf_spindle_power-: " & SiemensRet.d_interf_spindle_power.ToString)
CurrCN.d_spindle_power = SiemensRet.d_interf_spindle_power
CurrCN.n_spindle_override(0) = SiemensRet.n_interf_spindle_override
+10 -1
View File
@@ -1578,7 +1578,16 @@ Namespace Num
End Sub
Public Overrides Sub DPlcVariables_WriteVariables(sz_var_names As String, sz_values As String)
Dim _ret As Short = objDPlcVariables.WriteVariables(sz_var_names, CShort(sz_values))
Dim value As Short = 0
If Not Short.TryParse(sz_values, value) Then
If Not IsNothing( sz_values) then
EgtOutLog("Write variable: " & sz_var_names & ", value:" & sz_values & " failed!")
Else
EgtOutLog("Write variable: " & sz_var_names & ", value:nothing failed!")
End If
Return
End If
Dim _ret As Short = objDPlcVariables.WriteVariables(sz_var_names, value)
If _ret <> 0 Then
EgtOutLog("Scrittura " & sz_var_names & " fallita")
Else
+15
View File
@@ -196,9 +196,16 @@
<DependentUpon>CadCutPageUC.xaml</DependentUpon>
</Compile>
<Compile Include="CAM\CamAuto.vb" />
<Compile Include="Machine\ImportExportMachiningWindowWD.xaml.vb">
<DependentUpon>ImportExportMachiningWindowWD.xaml</DependentUpon>
</Compile>
<Compile Include="Machine\ImportExportToolWD.xaml.vb">
<DependentUpon>ImportExportToolWD.xaml</DependentUpon>
</Compile>
<Compile Include="Machine\WaterJetPageVM.vb" />
<Compile Include="Machine\WaterJetPageUC.xaml.vb">
<DependentUpon>WaterJetPageUC.xaml</DependentUpon>
</Compile>
<Compile Include="Project\StartLauncheWD.xaml.vb">
<DependentUpon>StartLauncheWD.xaml</DependentUpon>
</Compile>
@@ -434,9 +441,17 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Machine\ImportExportMachiningWindowWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Machine\ImportExportToolWD.xaml">
<SubType>Designer</SubType>
</Page>
<Page Include="Machine\WaterJetPageUC.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Project\StartLauncheWD.xaml">
</Page>
<Page Include="Project\CicloStartWD.xaml">
+8
View File
@@ -118,6 +118,7 @@
<BitmapImage x:Key="Taglio-grigliaImg" UriSource="Resources/NewIcons/Taglio-griglia.png"></BitmapImage>
<BitmapImage x:Key="Taglio-multiploImg" UriSource="Resources/NewIcons/Taglio-multiplo.png"></BitmapImage>
<BitmapImage x:Key="Taglio-singoloImg" UriSource="Resources/NewIcons/Taglio-singolo.png"></BitmapImage>
<BitmapImage x:Key="Foro-singoloImg" UriSource="Resources/NewIcons/Foro-singolo.png"></BitmapImage>
<BitmapImage x:Key="SpianaturaImg" UriSource="Resources/NewIcons/Spianatura.png"></BitmapImage>
<BitmapImage x:Key="Movimento-manualeImg" UriSource="Resources/NewIcons/Movimento-manuale.png"></BitmapImage>
<BitmapImage x:Key="Copia-dimaImg" UriSource="Resources/NewIcons/Copia-dima.png"></BitmapImage>
@@ -331,6 +332,13 @@
<Setter Property="Foreground" Value="White"/>
</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}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Background" Value="#636974"/>
+75 -3
View File
@@ -156,18 +156,32 @@
<BitmapImage x:Key="VacuumImg" UriSource="Resources/Vacuum.png"></BitmapImage>
<!--sono le stesse immagini usate per l'interfaccia Dark-->
<!--General-->
<BitmapImage x:Key="EseguiImg" UriSource="Resources/NewIcons/Esegui.png"></BitmapImage>
<BitmapImage x:Key="SimulaImg" UriSource="Resources/NewIcons/Simula.png"></BitmapImage>
<!--ProjectManager-->
<BitmapImage x:Key="NuovoImg" UriSource="Resources/NewIcons/Nuovo.png"></BitmapImage>
<BitmapImage x:Key="CaricaImg" UriSource="Resources/NewIcons/Carica.png"></BitmapImage>
<BitmapImage x:Key="SalvaImg" UriSource="Resources/NewIcons/Salva.png"></BitmapImage>
<BitmapImage x:Key="Salva-con-nomeImg" UriSource="Resources/NewIcons/Salva-con-nome.png"></BitmapImage>
<BitmapImage x:Key="CSVImg" UriSource="Resources/NewIcons/CSV.png"></BitmapImage>
<BitmapImage x:Key="CSVImg" UriSource="Resources/NewIcons/File-CSV.png"></BitmapImage>
<BitmapImage x:Key="Vein-matchImg" UriSource="Resources/NewIcons/Vein-match.png"></BitmapImage>
<BitmapImage x:Key="Test-lamaImg" UriSource="Resources/NewIcons/Test-lama.png"></BitmapImage>
<BitmapImage x:Key="Parcheggia-pezzoImg" UriSource="Resources/NewIcons/Parcheggia-pezzo.png"></BitmapImage>
<BitmapImage x:Key="Inserisci-pezzoImg" UriSource="Resources/NewIcons/Inserisci-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="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage>
<!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
<BitmapImage x:Key="DB-lavorazioniImg" UriSource="Resources/NewIcons/DB-lavorazioni.png"></BitmapImage>
<BitmapImage x:Key="DB-utensiliImg" UriSource="Resources/NewIcons/DB-utensili.png"></BitmapImage>
<BitmapImage x:Key="MacchinaImg" UriSource="Resources/NewIcons/Macchina.png"></BitmapImage>
<BitmapImage x:Key="LucidaturaImg" UriSource="Resources/NewIcons/Lucidatura.png"></BitmapImage>
<!--Direct cuts-->
<BitmapImage x:Key="Taglio-grigliaImg" UriSource="Resources/NewIcons/Taglio-griglia.png"></BitmapImage>
<BitmapImage x:Key="Taglio-multiploImg" UriSource="Resources/NewIcons/Taglio-multiplo.png"></BitmapImage>
@@ -176,9 +190,46 @@
<BitmapImage x:Key="SpianaturaImg" UriSource="Resources/NewIcons/Spianatura.png"></BitmapImage>
<BitmapImage x:Key="Movimento-manualeImg" UriSource="Resources/NewIcons/Movimento-manuale.png"></BitmapImage>
<BitmapImage x:Key="Copia-dimaImg" UriSource="Resources/NewIcons/Copia-dima.png"></BitmapImage>
<BitmapImage x:Key="Acquisisci-P1_P2Img" UriSource="Resources/NewIcons/Acquisisci-P1_P2.png"></BitmapImage>
<BitmapImage x:Key="Acquisisci-P1Img" UriSource="Resources/NewIcons/Acquisisci-P1.png"></BitmapImage>
<BitmapImage x:Key="Acquisisci-P2Img" UriSource="Resources/NewIcons/Acquisisci-P2.png"></BitmapImage>
<BitmapImage x:Key="Acquisisci-PImg" UriSource="Resources/NewIcons/Acquisisci-P.png"></BitmapImage>
<BitmapImage x:Key="ArcoImg" UriSource="Resources/NewIcons/Arco.png"></BitmapImage>
<BitmapImage x:Key="LineaImg" UriSource="Resources/NewIcons/Linea.png"></BitmapImage>
<BitmapImage x:Key="Rimuovi-segmentoImg" UriSource="Resources/NewIcons/Rimuovi-segmento.png"></BitmapImage>
<BitmapImage x:Key="ChiudiImg" UriSource="Resources/NewIcons/Chiudi.png"></BitmapImage>
<BitmapImage x:Key="Salva-taglioImg" UriSource="Resources/NewIcons/Salva-taglio.png"></BitmapImage>
<BitmapImage x:Key="Take-pointImg" UriSource="Resources/NewIcons/Take-point.png"></BitmapImage>
<BitmapImage x:Key="XYJogImg" UriSource="Resources/NewIcons/XYJog.png"></BitmapImage>
<BitmapImage x:Key="ZCJogImg" UriSource="Resources/NewIcons/ZCJog.png"></BitmapImage>
<BitmapImage x:Key="ZBJogImg" UriSource="Resources/NewIcons/ZBJog.png"></BitmapImage>
<!--Frame-->
<BitmapImage x:Key="Sezione-corniceImg" UriSource="Resources/NewIcons/Sezione-cornice.png"></BitmapImage>
<BitmapImage x:Key="SpecchiaImg" UriSource="Resources/NewIcons/Specchia.png"></BitmapImage>
<BitmapImage x:Key="Rimuovi_eliminaImg" UriSource="Resources/NewIcons/Rimuovi_elimina.png"></BitmapImage>
<!--Machinig-->
<BitmapImage x:Key="Allunga-AccorciaImg" UriSource="Resources/NewIcons/Allunga-o-accorcia.png"></BitmapImage>
<BitmapImage x:Key="Inizio-Allunga-AccorciaImg" UriSource="Resources/NewIcons/Inizio-allunga-o-accorcia.png"></BitmapImage>
<BitmapImage x:Key="Fine-Allunga-AccorciaImg" UriSource="Resources/NewIcons/Fine-allunga-o-accorcia.png"></BitmapImage>
<BitmapImage x:Key="ON_OFF-singolo-taglioImg" UriSource="Resources/NewIcons/ON_OFF-singolo-taglio.png"></BitmapImage>
<BitmapImage x:Key="Tutti-ONImg" UriSource="Resources/NewIcons/Tutti-ON.png"></BitmapImage>
<BitmapImage x:Key="Tutti-OFFImg" UriSource="Resources/NewIcons/Tutti-OFF.png"></BitmapImage>
<BitmapImage x:Key="Inizio-Centro-FuoriImg" UriSource="Resources/NewIcons/Inizio-centro-fuori.png"></BitmapImage>
<BitmapImage x:Key="Fine-Centro-FuoriImg" UriSource="Resources/NewIcons/Fine-centro-fuori.png"></BitmapImage>
<BitmapImage x:Key="Modifica-InizioImg" UriSource="Resources/NewIcons/Modifica-inizio.png"></BitmapImage>
<BitmapImage x:Key="Modifica-FineImg" UriSource="Resources/NewIcons/Modifica-fine.png"></BitmapImage>
<BitmapImage x:Key="InvertiImg" UriSource="Resources/NewIcons/Inverti.png"></BitmapImage>
<BitmapImage x:Key="Pausa-ON_OFFImg" UriSource="Resources/NewIcons/Pausa-ON_OFF.png"></BitmapImage>
<BitmapImage x:Key="Inizio-tutti-fuoriImg" UriSource="Resources/NewIcons/Inizio-tutti-fuori.png"></BitmapImage>
<BitmapImage x:Key="Inizio-tutti-centroImg" UriSource="Resources/NewIcons/Inizio-tutti-centro.png"></BitmapImage>
<BitmapImage x:Key="Fine-tutti-fuoriImg" UriSource="Resources/NewIcons/Fine-tutti-fuori.png"></BitmapImage>
<BitmapImage x:Key="Fine-tutti-centroImg" UriSource="Resources/NewIcons/Fine-tutti-centro.png"></BitmapImage>
<BitmapImage x:Key="Tutti-allungaImg" UriSource="Resources/NewIcons/Tutti-allunga.png"></BitmapImage>
<BitmapImage x:Key="Tutti-accorciaImg" UriSource="Resources/NewIcons/Tutti-accorcia.png"></BitmapImage>
<BitmapImage x:Key="LastProjImg" UriSource="Resources/NewIcons/PlayStep.png"></BitmapImage>
<FontFamily x:Key="OmagCut_Font">./Resources/Fonts/#Century Gothic</FontFamily>
@@ -199,7 +250,14 @@
<Setter Property="Margin" Value="1" />
</Style>
<!--Border-->
<Style x:Key="OmagCut_MachiningBorder" TargetType="{x:Type Border}" BasedOn="{StaticResource OmagCut_EmptyBorder}">
<!--<Setter Property="Background" Value="#636974" #3C3F48/>
<Setter Property="BorderBrush" Value="#636974" #3C3F48/>-->
<Setter Property="Background" Value="{StaticResource OmagCut_Yellow}"/>
<Setter Property="BorderBrush" Value="#3C3F48"/>
</Style>
<!--Border-->
<Style x:Key="OmagCut_Border" TargetType="{x:Type Border}" BasedOn="{StaticResource OmagCut_EmptyBorder}">
<Setter Property="Background" Value="{StaticResource OmagCut_LightGray}"/>
<Setter Property="BorderBrush" Value="{StaticResource OmagCut_Blue}"/>
@@ -412,6 +470,13 @@
</Style.Triggers>
</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-->
@@ -1140,7 +1205,13 @@
<Setter Property="KeyboardDimension" Value="300"/>
</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"/>
</Style>
<Style x:Key="OmagCut_MachToolCalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_CalculatorTextBox}">
<Setter Property="Margin" Value="{DynamicResource MachToolLeftTextBoxNoBorder_Margin}"/>
</Style>
@@ -1174,6 +1245,7 @@
<Style x:Key="OmagCut_FixedTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_TextBox}">
<Setter Property="BorderBrush" Value="{StaticResource OmagCut_Gray}"/>
<Setter Property="Background" Value="White"/>
<Setter Property="IsReadOnly" Value="True"/>
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Template" Value="{StaticResource FixedTextBoxTemplate}" />
+24 -2
View File
@@ -50,6 +50,7 @@ Namespace TreeViewItem
Private m_sPictureString As String
Private m_nTType As Integer
Private m_Items As ObservableCollection(Of CustomItem)
Friend m_IsValidTool As Boolean
Public ReadOnly Property PictureString As String
Get
@@ -86,12 +87,13 @@ Namespace TreeViewItem
'Private m_sTitle As String
Private m_nType As Integer
'Private m_sName As String
'Public Property Name As String
' Get
' Return m_sTitle
' Return m_sName
' End Get
' Set(value As String)
' m_sTitle = value
' m_sName = value
' End Set
'End Property
@@ -101,11 +103,31 @@ Namespace TreeViewItem
End Get
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)
Me.Name = Title
m_nType = nType
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
Public Class PartCathegoryItem
+3 -2
View File
@@ -9,7 +9,8 @@ Public Class OptionsPageUC
Private UnitsList() As String = {"inch", "mm"}
Private ThemesList() As String = {"Classic", "Dark"}
Private StartLauncherList() As String = {"Last Project", "New Project", "Open Folder", "Show Window"}
' "Last Project", "New Project", "Open Folder", "Show Window"
Private StartLauncherList() As String = {EgtMsg(91013), EgtMsg(91014), EgtMsg(91015), EgtMsg(91016)}
Private Sub OptionsPageUC_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
@@ -109,7 +110,7 @@ Public Class OptionsPageUC
ToleranceEMsgTxBl.Text = EgtMsg(MSG_OPTIONSPAGEUC + 21)
AffondamentoMsgTxBl.Text = EgtMsg(MSG_OPTIONSPAGEUC + 27)
LarghezzaMsgTxBl.Text = EgtMsg(MSG_OPTIONSPAGEUC + 28)
StartLauncherGpBx.Header = "Avvio Programma"
StartLauncherGpBx.Header = EgtMsg(91009)
End Sub
Private Sub UpdateSlabDxf()
+8 -23
View File
@@ -276,7 +276,7 @@ Public Class CurrentProjectPageUC
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_OpenPage)
m_MainWindow.m_ActivePage = MainWindow.Pages.Open
' seleziono il file dalla lista della finestra (= 4)
' seleziono il file dalla lista della finestra (= 4)
ElseIf MyStartLancherWD.CurrSelection = MODE_LAUNCHER.SelectedProject Then
NewProject()
Dim sCurrDir As String = Path.GetDirectoryName(MyStartLancherWD.SelPath)
@@ -303,29 +303,8 @@ Public Class CurrentProjectPageUC
End If
m_MruFiles.Add(sCurrDir & "\" & sCurrFile)
End If
'If Not LoadProject(MyStartLancherWD.SelPath, False) Then
' ' altrimenti apro un nuovo progetto
' NewProject()
'Else
' ' salvo il nome del file caricato
' m_MruFiles.Add(MyStartLancherWD.SelPath)
'End If
'EgtResetModified()
End If
'' Nascondo progress per fotografia
'PhotoProgress.Visibility = Windows.Visibility.Hidden
'' Carico sottopagina opportuna
'If GetProjectType() <> PRJ_TYPE.FRAMES Then
' CurrentProjectPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC)
' m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
' m_MainWindow.CadCutBtn.IsChecked = True
'Else
' CurrentProjectPageGrid.Children.Add(m_MainWindow.m_FrameCutPageUC)
' m_MainWindow.m_ActivePage = MainWindow.Pages.FrameCut
' m_MainWindow.FrameCutBtn.IsChecked = True
'End If
End Sub
' questo metodo è direttamente richiamato in caso di selezione della regione sinistra della pagina
@@ -478,6 +457,12 @@ Public Class CurrentProjectPageUC
UpdateContour()
If EgtGetRawPartCount() > 0 Then
ShowPhoto(False)
Dim nRawGrpId As Integer = EgtGetFirstRawPart()
While nRawGrpId <> GDB_ID.NULL
Dim nRawSolidId As Integer = EgtGetFirstNameInGroup( nRawGrpId, NAME_RAW_SOLID)
If nRawSolidId <> GDB_ID.NULL Then EgtSetTextureName( nRawSolidId, PHOTO_NAME)
nRawGrpId = EgtGetNextRawPart( nRawGrpId)
End While
End If
End If
End If
@@ -568,7 +553,7 @@ Public Class CurrentProjectPageUC
End If
' Se la macchina del file è quella impostata
If String.Compare(sFileMachine, m_MainWindow.GetCurrMachine(), True) = 0 Then
AdjustAdditionalTable()
AdjustAdditionalTable( True)
' altrimenti avverto, porto i pezzi in parcheggio e cancello il grezzo
Else
' Emetto messaggio
+6 -11
View File
@@ -128,25 +128,20 @@ Public Class ProjectMgrUC
End Function
Friend Function ChangeTable() As Integer
Dim nTabInd As Integer = 0
Dim nRes As Integer = 0
' se non abilitato esco dalla pagina
If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 0 Then
Return nTabInd
Return nRes
End If
Select Case GetTableCount()
Case 2
' Tavolo da usare ?
' Vuoi cambiare tavola?
Dim TableToUse As New EgtMsgBox(m_MainWindow, "", String.Format(EgtMsg(90968)), EgtMsgBox.Buttons.OK_CANCEL, EgtMsgBox.Icons.NULL)
Select Case TableToUse.m_nPressedBtn
Case 1 ' 1
nTabInd = 1
Case 0 ' 2
nTabInd = 2
End Select
nRes = TableToUse.m_nPressedBtn
Case Else
' negli altri casi (3 tavole o una tavola non fare nulla)
End Select
Return nTabInd
Return nRes
End Function
Private Sub LoadBtn_Click(sender As Object, e As RoutedEventArgs) Handles LoadBtn.Click
@@ -462,7 +457,7 @@ Public Class ProjectMgrUC
' Costringo ad aggiornare UI
UpdateUI()
' Se macchina normale
If Not m_CurrMachine.bProdLine Or Not m_CurrMachine.bDemo Then
If Not (m_CurrMachine.bProdLine Or m_CurrMachine.bDemo) Then
' Download programma (eventuali errori sono segnalati dalla funzione)
If m_CurrNcComm.SendProgram(sCncPath, 900) Then
' copio il progetto corrente come progetto in lavorazione
+6 -3
View File
@@ -111,9 +111,12 @@ Public Class StartLauncherWD
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
' imopposto il messaggio di avvio
SlectLauncherTxbl.Text = "Seleziona modalità di avvio"
FileName.Text = "Progetti recenti"
DataFile.Text = "Ultima apertura"
SlectLauncherTxbl.Text = EgtMsg(91010) ' Seleziona modalità di avvio
FileName.Text = EgtMsg(91011) ' Progetti recenti
DataFile.Text = EgtMsg(91012) ' Ultima apertura
LastProject.ToolTip = EgtMsg(91013)
NewProject.ToolTip = EgtMsg(91014)
OpenFolder.ToolTip = EgtMsg(91015)
End Sub
' lancio l'apertura della pagina dei progetti
+27 -9
View File
@@ -80,17 +80,35 @@
</ComboBox>
<!--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"/>
<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.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
+48 -13
View File
@@ -41,6 +41,7 @@ Public Class ChooseMachining
CurrMillingCmBx.ItemsSource = m_MillingList
CurrPocketingCmBx.ItemsSource = m_PocketingList
CurrWJettingCmBx.ItemsSource = m_WJettingList
CurrWJettingQualityCmBx.ItemsSource = m_CurrentMachine.Qualities
CurrSawingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 1)
AuxiliaryMachiningTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 2)
@@ -256,19 +257,38 @@ Public Class ChooseMachining
If SysNotes <> String.Empty Then
Dim MachiningMaterials() = SysNotes.Split(";".ToCharArray)
SysNotes = String.Empty
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
If m_CurrentMachine.bWaterJet Then
For Each Material As Object In MachiningMaterials
Dim Param() As String = Material.Split(",".ToCharArray)
Dim SubParam() As String = Param(0).Split(".".ToCharArray)
If SubParam(0) = m_CurrentMachine.CurrMat.nId.ToString() AndAlso SubParam.Count > 1 AndAlso SubParam(1) = m_CurrentMachine.CurrMat.SubId.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
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
Else
Return False
@@ -553,7 +573,8 @@ Public Class ChooseMachining
Next
m_RowNumber = m_RowNumber + 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
CurrWJettingCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJetting
End If
@@ -562,6 +583,16 @@ Public Class ChooseMachining
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJetting Then m_MachIsModified = True
End If
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
CurrWJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWJettingCmBx.Visibility = Windows.Visibility.Visible
End If
@@ -590,6 +621,10 @@ Public Class ChooseMachining
m_MainWindow.m_CurrentMachine.sCurrWaterJetting = CurrWJettingCmBx.SelectedItem.ToString()
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
DialogResult = True
End Sub
+142 -30
View File
@@ -41,6 +41,7 @@ Public Class RawPartPageUC
Private m_RawOffsX As Double = 0
Private m_RawOffsY As Double = 0
Private m_RawKerf As Double = 0
Private m_PrecKerf As Double = 0
' Layer per crocette temporanee
Private m_nTempLay As Integer = GDB_ID.NULL
' Definizione lista modalità di definizione grezzo per ComboBox
@@ -139,7 +140,7 @@ Public Class RawPartPageUC
' Nascondo bottone dati lastra se non attivato da file .ini
m_bSlabId = (Not m_CurrentMachine.bHasRawBarCodeReader And
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
@@ -164,10 +165,16 @@ Public Class RawPartPageUC
End Sub
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
' aggiorno la lista dei materiali
Dim Index As Integer = 1
If m_CurrentMachine.bWaterJet Then
m_CurrentMachine.LoadWJMaterial()
End If
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_bActive = True
' 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)
m_MachineButtons.Width = LowerButtonGrid.ActualWidth / 12 * 10
' Se disponibile, imposto possibilità di contorno da foto
@@ -225,7 +232,7 @@ Public Class RawPartPageUC
End If
' aggiorno l'apparenza del grezzo
AdjustRawPartOnStart()
' Altrimenti lo definisco
' Altrimenti lo definisco
Else
' Leggo da Ini gli ultimi valori
m_RawLength = GetPrivateProfileDouble(S_RAWPART, K_RAWLENGTH, 2500, m_MainWindow.GetIniFile())
@@ -234,17 +241,18 @@ Public Class RawPartPageUC
m_RawOffsX = GetPrivateProfileDouble(S_RAWPART, K_RAWOFFSX, 100, m_MainWindow.GetIniFile())
m_RawOffsY = GetPrivateProfileDouble(S_RAWPART, K_RAWOFFSY, 100, m_MainWindow.GetIniFile())
m_RawKerf = GetPrivateProfileDouble(S_RAWPART, K_RAWKERF, 50, m_MainWindow.GetIniFile())
m_PrecKerf = m_RawKerf
' Richiedo ricalcolo quota eventuale foto
UpdateRawPart(True)
' Eventuale gestione dati lastra
If m_bSlabId Then
Dim sBlock As String = ""
GetPrivateProfileString( S_RAWPART, K_BLOCKNAME, "", sBlock, m_MainWindow.GetIniFile())
Dim nSlabNbr As Integer = GetPrivateProfileInt( S_RAWPART, K_SLABNBR, 0, 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())
nSlabNbr += 1
Dim sSlabNbr As String = nSlabNbr.ToString()
WritePrivateProfileString( S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
Utility.SetBlockAndSlabNbr( sBlock, sSlabNbr)
WritePrivateProfileString(S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
Utility.SetBlockAndSlabNbr(sBlock, sSlabNbr)
End If
End If
' Assegno dati grezzo rettangolare ai textbox
@@ -270,11 +278,24 @@ Public Class RawPartPageUC
m_ActiveRawMode = RAWMODE.RECTANGLE
RawModeCmBx.SelectedIndex = RAWMODE.RECTANGLE
PointsGpBx.Visibility = Windows.Visibility.Hidden
AdjustRawPartPosition()
If dInvertKerf < 1 Then
AdjustRawPartPositionNegativeKerf()
' assegno il giosto colore al kerf
Dim nKerfId As Integer = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
EgtSetColor(nKerfId, m_KerfCol)
Else
AdjustRawPartPosition()
End If
EgtZoom(ZM.ALL)
End If
' Imposto il materiale corrente nella combobox
MaterialsCmbx.SelectedItem = m_CurrentMachine.CurrMat
'Imposto il materiale corrente nella combobox
'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
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
@@ -1171,6 +1192,8 @@ Public Class RawPartPageUC
' box grezzo
Dim ptMin, ptMax As Point3d
GetRawBox(ptMin, ptMax)
Dim Lenght As Double = ptMax.x - ptMin.x
Dim Width As Double = ptMax.y - ptMin.y
ptMin.x += m_RawKerf
ptMin.y += m_RawKerf
ptMin.z = ptMax.z
@@ -1185,6 +1208,41 @@ Public Class RawPartPageUC
Return True
End Function
#Region "Negative Kerf"
Private Function AdjustRawPartNegativeKerf(Optional NegativeOffset As Boolean = True) As Boolean
' Se non c'è il grezzo, esco
If m_CurrProjPage.m_nRawId = GDB_ID.NULL Then Return False
' Cancello eventuale vecchio contorno di kerf
Dim nKerfId As Integer = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
Dim nInvert As Double = 1
If Not NegativeOffset Then
nInvert = -1
End If
EgtOffsetCurve(nKerfId, (-m_RawKerf - m_PrecKerf) * nInvert, OFF_TYPE.EXTEND)
EgtSetColor(nKerfId, m_KerfCol)
' Salvo il valore del kerf (sempre in mm)
EgtSetInfo(m_CurrProjPage.m_nRawId, KEY_KERF, m_RawKerf)
Return True
End Function
Private Function AdjustRawPartPositionNegativeKerf() As Boolean
' Sistemo la posizione
Dim ptRef As New Point3d(m_RawOffsX, m_RawOffsY, m_CurrentMachine.dAdditionalTable)
If EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, ptRef, MCH_CR.BL) Then
OkBtn.IsEnabled = True
m_CurrProjPage.ClearMessage()
Else
OkBtn.IsEnabled = False
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 47)) ' Errore nella posizione o dimensione del grezzo
End If
' Aggiorno visualizzazione
EgtZoom(ZM.ALL)
Return True
End Function
#End Region ' Negative Kerf
Private Sub UpdateRawPartHeight()
' Se da creare
If m_CurrProjPage.m_nRawId = GDB_ID.NULL Then
@@ -1514,8 +1572,10 @@ Public Class RawPartPageUC
End If
Dim dMinOffsetX = m_RawKerf
If dKerf < 0 And dOffsetX >= 0 Then
m_RawOffsX = dOffsetX + m_RawKerf
UpdateRawPart()
'm_RawOffsX = dOffsetX + m_RawKerf
'UpdateRawPart()
m_RawOffsX = dOffsetX
AdjustRawPartPositionNegativeKerf()
ElseIf dKerf >= 0 And dOffsetX >= dMinOffsetX Then
m_RawOffsX = dOffsetX
UpdateRawPart()
@@ -1534,8 +1594,10 @@ Public Class RawPartPageUC
End If
Dim dMinOffsetY = m_RawKerf
If dKerf < 0 And dOffsetY >= 0 Then
m_RawOffsY = dOffsetY + m_RawKerf
UpdateRawPart()
'm_RawOffsY = dOffsetY + m_RawKerf
'UpdateRawPart()
m_RawOffsY = dOffsetY
AdjustRawPartPositionNegativeKerf()
ElseIf dKerf >= 0 And dOffsetY >= dMinOffsetY Then
m_RawOffsY = dOffsetY
UpdateRawPart()
@@ -1554,9 +1616,23 @@ Public Class RawPartPageUC
Dim dMaxKerf = Math.Min(Math.Min(m_RawOffsX, m_RawOffsY),
Math.Min(m_dTableLength - m_RawLength - m_RawOffsX, m_dTableWidth - m_RawWidth - m_RawOffsY))
Dim dMinKerf = -Math.Min(m_RawLength, m_RawWidth) / 2
' recuper il segno del valore del Kerf precedente
Dim dInvertKerf As Double = 1
EgtGetInfo(EgtGetFirstRawPart(), KEY_INVERT_KERF, dInvertKerf)
m_PrecKerf = Math.Abs(m_RawKerf)
m_PrecKerf = m_PrecKerf * dInvertKerf
' Sostituisco: dKerf >= dMinKerf And dKerf <= dMaxKerf
If dKerf >= 0 And dKerf <= dMaxKerf Then
m_RawKerf = dKerf
If m_PrecKerf < 0 Then
' definsco la dimensione del grezzo pari a quella del kerf
m_RawKerf = 0
AdjustRawPartNegativeKerf()
UpdateCircles()
UpdateRawPartKerf()
m_RawKerf = dKerf
m_PrecKerf = 0
End If
If m_ActiveRawMode <> RAWMODE.FROM_PHOTO Then
StringToLen(LengthTxBx.Text, m_RawLength)
StringToLen(WidthTxBx.Text, m_RawWidth)
@@ -1576,20 +1652,56 @@ Public Class RawPartPageUC
' Ridisegno
EgtDraw()
ElseIf dKerf >= dMinKerf And dKerf < 0 Then
' aggiorno il valore del Kerf corrente
m_RawKerf = dKerf
If m_ActiveRawMode <> RAWMODE.FROM_PHOTO Then
' aggiorno dati grezzo
' recupero dati grezzo
StringToLen(LengthTxBx.Text, m_RawLength)
m_RawLength = m_RawLength + 2 * m_RawKerf
StringToLen(WidthTxBx.Text, m_RawWidth)
m_RawWidth = m_RawWidth + 2 * m_RawKerf
StringToLen(OffsetXTxBx.Text, m_RawOffsX)
m_RawOffsX = m_RawOffsX - m_RawKerf
StringToLen(OffsetYTxBx.Text, m_RawOffsY)
m_RawOffsY = m_RawOffsY - m_RawKerf
' UpdateRawPart()
If m_PrecKerf >= 0 Then
m_RawLength = m_RawLength + 2 * m_RawKerf
m_RawWidth = m_RawWidth + 2 * m_RawKerf
m_RawOffsX = m_RawOffsX - m_RawKerf
m_RawOffsY = m_RawOffsY - m_RawKerf
End If
m_RawKerf = -m_RawKerf
UpdateRawPartKerf()
' esegue l'aggiornamento della dimensione del grezzo solo quando passo dal kerf positivo a quello negativo
If m_PrecKerf >= 0 Then
' definsco la dimensione del grezzo pari a quella del kerf
m_RawKerf = 0
AdjustRawPartNegativeKerf(False)
UpdateCircles()
UpdateRawPartKerf()
m_RawKerf = -dKerf
m_PrecKerf = 0
End If
AdjustRawPartNegativeKerf()
UpdateCircles()
'If m_PrecKerf > 0 And m_RawKerf < 0 Then
' m_RawLength = m_RawLength + 2 * m_RawKerf
' m_RawWidth = m_RawWidth + 2 * m_RawKerf
' m_RawOffsX = m_RawOffsX - m_RawKerf - m_PrecKerf
' m_RawOffsY = m_RawOffsY - m_RawKerf - m_PrecKerf
' m_RawKerf = -m_RawKerf
' UpdateRawPartKerf()
'If m_PrecKerf >=0 And m_RawKerf < 0 Then
' m_RawOffsX = m_RawOffsX - m_PrecKerf
' m_RawOffsY = m_RawOffsY - m_PrecKerf
' UpdateNegativeRawPart()
'Else
' UpdateNegativeRawPart()
'End If
'UpdateRawPart()
'UpdateNegativeRawPart()
'm_RawKerf = -m_RawKerf
'UpdateRawPartKerf()
' Recupero id contorno kerf
Dim nKerfId As Integer = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
' Modifico il colore
@@ -1676,7 +1788,7 @@ Public Class RawPartPageUC
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
' Definisco flag tastatura
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
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(ProbingStateNameVar, 3)
System.Threading.Thread.Sleep(100)
@@ -1713,7 +1825,7 @@ Public Class RawPartPageUC
Dim RawThicknessNameVar As String = String.Empty
GetPrivateProfileString(S_MACH_PROBING, K_RAWTHICKNESS, "", RawThicknessNameVar, m_MainWindow.GetMachIniFile())
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
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(RawThicknessNameVar, 3)
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then
@@ -1800,10 +1912,10 @@ Public Class RawPartPageUC
Dim SlabIdWindow As New SlabIdWD(m_MainWindow)
' Recupero eventuali vecchi dati della lastra
If nRawId <> GDB_ID.NULL Then
Dim sBlock As String = "" : EgtGetInfo( nRawId, INFO_RAW_BLOCK, sBlock)
Dim sSlabNbr As String = "" : EgtGetInfo( nRawId, INFO_RAW_SLABNBR, sSlabNbr)
SlabIdWindow.SetBlockName( sBlock)
SlabIdWindow.SetSlabNbr( sSlabNbr)
Dim sBlock As String = "" : EgtGetInfo(nRawId, INFO_RAW_BLOCK, sBlock)
Dim sSlabNbr As String = "" : EgtGetInfo(nRawId, INFO_RAW_SLABNBR, sSlabNbr)
SlabIdWindow.SetBlockName(sBlock)
SlabIdWindow.SetSlabNbr(sSlabNbr)
End If
' Visualizzo finestra richiesta dati
If SlabIdWindow.ShowDialog() Then
@@ -1811,10 +1923,10 @@ Public Class RawPartPageUC
Dim sBlock As String = SlabIdWindow.GetBlockName()
Dim sSlabNbr As String = SlabIdWindow.GetSlabNbr()
' Li assegno
Utility.SetBlockAndSlabNbr( sBlock, sSlabNbr)
Utility.SetBlockAndSlabNbr(sBlock, sSlabNbr)
' Li salvo
WritePrivateProfileString( S_RAWPART, K_BLOCKNAME, sBlock, m_MainWindow.GetIniFile())
WritePrivateProfileString( S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_BLOCKNAME, sBlock, m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
' Aggiorno visualizzazione
EgtDraw()
End If
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+51 -13
View File
@@ -1,16 +1,18 @@
Imports System.Globalization
Imports System.Collections.ObjectModel
Imports EgtUILib
Module Utility
Friend Sub CompoColor(ByRef InsertColor As Color3d, sIniFile As String)
InsertColor = New Color3d(89, 210, 210)
Dim IndexColor As Integer = GetPrivateProfileInt(S_COMPO, "LastColor", "1", sIniFile)
If Not GetPrivateProfileColor(S_COMPO, "Color" & IndexColor.ToString, InsertColor, sIniFile) Then
Friend Function CompoColor(sIniFile As String) As Color3d
Dim InsertColor As New Color3d(89, 210, 210, 25)
Dim IndexColor As Integer = GetPrivateProfileInt(S_COMPO, K_LASTCOLOR, 1, sIniFile)
If Not GetPrivateProfileColor(S_COMPO, K_COLOR & IndexColor.ToString, InsertColor, sIniFile) Then
IndexColor = 1
GetPrivateProfileColor(S_COMPO, "Color" & IndexColor.ToString, InsertColor, sIniFile)
GetPrivateProfileColor(S_COMPO, K_COLOR & IndexColor.ToString, InsertColor, sIniFile)
End If
WritePrivateProfileString(S_COMPO, "LastColor", (IndexColor + 1).ToString, sIniFile)
End Sub
WritePrivateProfileString(S_COMPO, K_LASTCOLOR, (IndexColor + 1).ToString, sIniFile)
Return InsertColor
End Function
'--------------------------------------------------------------------------------------------------
@@ -22,7 +24,7 @@ Module Utility
End Sub
'--------------------------------------------------------------------------------------------------
Friend Function DoubleToString(ByVal dVal As Double, ByVal nNumDec As Integer) As String
Friend Function DoubleToString(dVal As Double, nNumDec As Integer) As String
Dim sFormat As String = "F" + Math.Abs(nNumDec).ToString()
Dim sVal As String = dVal.ToString(sFormat, CultureInfo.InvariantCulture)
If nNumDec > 0 Then
@@ -32,7 +34,7 @@ Module Utility
End If
End Function
Friend Function StringToDouble(ByVal sVal As String, ByRef dVal As Double) As Boolean
Friend Function StringToDouble(sVal As String, ByRef dVal As Double) As Boolean
If String.IsNullOrEmpty(sVal) Then Return False
Return EgtLuaEvalNumExpr(sVal, dVal)
End Function
@@ -44,11 +46,11 @@ Module Utility
Return True
End Function
Friend Function LenToString(ByVal dVal As Double, ByVal nNumDec As Integer) As String
Friend Function LenToString(dVal As Double, nNumDec As Integer) As String
Return DoubleToString(EgtToUiUnits(dVal), nNumDec)
End Function
Friend Function StringToLen(ByVal sVal As String, ByRef dVal As Double) As Boolean
Friend Function StringToLen(sVal As String, ByRef dVal As Double) As Boolean
If String.IsNullOrEmpty(sVal) Then Return False
If EgtLuaEvalNumExpr(sVal, dVal) Then
dVal = EgtFromUiUnits(dVal)
@@ -58,14 +60,14 @@ Module Utility
End If
End Function
Friend Function UIExprToExpr(ByVal sUIExpr As String) As String
Friend Function UIExprToExpr(sUIExpr As String) As String
If String.IsNullOrWhiteSpace(sUIExpr) Then
Return ""
End If
Return sUIExpr.Replace("""", "*GEO.ONE_INCH")
End Function
Friend Function ExprToUIExpr(ByVal sExpr As String) As String
Friend Function ExprToUIExpr(sExpr As String) As String
If String.IsNullOrWhiteSpace(sExpr) Then
Return ""
End If
@@ -272,4 +274,40 @@ Module Utility
Return BackBottomColor
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
File diff suppressed because it is too large Load Diff