Compare commits

...

73 Commits

Author SHA1 Message Date
Nicola Pievani 9c8971f52b Merge remote-tracking branch 'origin/Features/New_Manage_Side_Angle' 2025-07-01 15:44:54 +02:00
Nicola Pievani 8d020eeea8 Aggiunto commento per spiegare come gestione scrittura CNCMode per flexium prima versione 2025-06-30 18:15:42 +02:00
Demetrio Cassarino 340276e11c -nuova gestione ottimizzata sideang 2025-06-27 15:50:42 +02:00
Demetrio Cassarino 87a24adaa3 -aggiunto chechi in sideangle da sistemare 2025-06-26 14:49:39 +02:00
Nicola Pievani 02a9f450fb Merge commit '7caca4f961ee6d7772816231a2370c4a160f97e8' 2025-06-20 10:58:08 +02:00
Nicola Pievani 7caca4f961 Aggiunta descrizione di altri tagli diretti 2025-06-20 10:48:58 +02:00
Nicola Pievani a23b18e5cb Aggiunto un flag per specificare il tipo di taglio diretto 2025-06-20 10:32:38 +02:00
Nicola Pievani eb1f776ed7 Migliorata gestione tagli con tallonamento 2025-06-17 16:17:23 +02:00
Nicola Pievani 697807dd79 Merge commit '8f8f781dee62e5be89bb8051c0a6fda0ebb0d3a8' 2025-06-11 12:59:52 +02:00
Nicola Pievani 90676d05ea Gestione cambio tavola con 3 tavole 2025-06-11 12:58:57 +02:00
Demetrio Cassarino 8f8f781dee Merge commit '01ced18fad0b4863f565dae8c01f195aebae3968' into Features/Manage_Msg 2025-06-11 12:56:33 +02:00
Demetrio Cassarino 01ced18fad -aggiornato messaggi 2025-06-11 12:47:23 +02:00
Nicola Pievani 3057c511ed Merge commit '07abfa9b8bc196e18cc8d95c7f52f4b4379a25d8' 2025-06-10 14:57:31 +02:00
Nicola Pievani 6fef662ce9 Migliorato codice e verifiche 2025-06-10 14:57:13 +02:00
Nicola Pievani c577ad9272 Correzione lettura MountedTool 2025-06-09 18:20:50 +02:00
Nicola Pievani 07abfa9b8b Cambio versione 2.7f1 2025-06-05 09:29:23 +02:00
Nicola Pievani fd6018c2e6 Gestione tallonatura e ponticelli per waterjet 2025-06-03 11:21:42 +02:00
Nicola Pievani 62475adcc1 Gestione nuovo flusso sabbia in WJ database 2025-05-20 18:08:13 +02:00
Nicola Pievani e08c196c54 Nuova gestione selezione tavola corrente 2025-05-20 12:46:07 +02:00
Nicola Pievani 0081855b8c Migliorata gestione caricamento progetto senza parcheggi attivi 2025-05-12 17:32:40 +02:00
Nicola Pievani 7e3b85f7a2 Migliorata visualizzazione finestra Selezione lavorazione 2025-05-06 17:32:49 +02:00
Nicola Pievani 8b9c462814 Merge branch 'Features/Set_Machining' 2025-05-06 16:08:46 +02:00
Nicola Pievani ab8051275b Aggiornamento versione 2025-05-06 16:08:30 +02:00
Nicola Pievani 18edeb5ee0 Merge branch 'master' into Features/Set_Machining 2025-05-06 16:02:58 +02:00
Nicola Pievani 471ba49732 Gestione speciale tagli inclinati e cambio lama 2025-05-06 16:02:38 +02:00
Nicola Pievani fd6e15be1e Migliorata gestione uscita simulazione 2025-04-18 13:00:27 +02:00
Nicola Pievani a2bb9e250c Correzione uscita dalla seconda pagina dei tagli diretti 2025-04-08 14:50:30 +02:00
Nicola Pievani 2673d51008 Merge commit '1d5cce387f5490da659622b259ebba41287839a0' 2025-04-04 12:44:34 +02:00
Nicola Pievani 1d5cce387f Ottiimizzata disposizione pezzi DXF in parcheggio 2025-04-04 12:44:10 +02:00
Nicola Pievani 07e5756793 Merge branch 'master' into develop 2025-04-04 11:34:23 +02:00
Nicola Pievani e5e80e9a55 Correzione/miglioramento gestione offset spostamento 2025-04-02 16:09:35 +02:00
Nicola Pievani 233a63b95b Correzione avvio gestione simulazione 2025-04-02 14:49:36 +02:00
Nicola Pievani cd0388b970 Merge commit '135be5f104c891b92201b98e3855117851ed42d5' into develop 2025-03-26 11:26:41 +01:00
Nicola Pievani 135be5f104 Modifica lettura Feed per controllo FANUC 2025-03-24 19:14:54 +01:00
Nicola Pievani 2f116ba3fe Gestione più di un riferimento del grezzo 2025-03-24 15:01:43 +01:00
Nicola Pievani 96ee5b5172 Correzione gestione lama test 2025-03-19 18:32:45 +01:00
Nicola Pievani b1367d543f Merge branch 'develop' into Features/Set_Machining 2025-03-18 18:12:21 +01:00
Nicola Pievani 484f7eb410 Merge branch 'develop' 2025-03-13 17:58:13 +01:00
Nicola Pievani c1eb839fe8 Nascondo le pareti dell'area sicura quando esco dal grezzo 2025-03-13 17:58:01 +01:00
Nicola Pievani 0362f77f23 Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egaltech/OmagCUT into Features/Set_Machining 2025-03-10 14:47:03 +01:00
Nicola Pievani fd28e2f971 Creazione file setup per programmi OFFICE e CAM5 della macchina corrente 2025-03-10 14:46:54 +01:00
Demetrio Cassarino 31264a20a0 -recuperati messagi da file messages 2025-03-07 16:28:30 +01:00
Nicola Pievani bee2c44ba7 Aggiunto un commento all'avvio della simulazione 2025-03-07 16:01:51 +01:00
Demetrio Cassarino 65652f468c -aggiunto colore lavorazione in ChangeWD 2025-03-06 16:16:11 +01:00
Demetrio Cassarino 2236eb12c7 -aggiunto tasto destro su lista apertura ChangeWD 2025-03-06 12:38:51 +01:00
Demetrio Cassarino e48837836b Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egalware-cadcam/interfacce/OmagCUT into Features/Set_Machining 2025-03-06 11:35:18 +01:00
Demetrio Cassarino d05fe9c6b2 -aggiunto messaggio di errore
-aggiunto tooltip
2025-03-06 11:34:40 +01:00
Nicola Pievani 8c8a26b692 Pulizia codice 2025-03-06 10:24:45 +01:00
Nicola Pievani 0b1a39704c Riordinate alcune funzioni 2025-03-05 15:39:35 +01:00
Nicola Pievani 8d1b1adaa9 Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egaltech/OmagCUT into Features/Set_Machining 2025-03-05 11:39:27 +01:00
Nicola Pievani eb881155d9 Migliorata gestione colorazione lavorazione 2025-03-05 11:39:07 +01:00
Demetrio Cassarino 8c0d5a651d Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egalware-cadcam/interfacce/OmagCUT into Features/Set_Machining 2025-03-05 11:38:11 +01:00
Demetrio Cassarino 10655893e4 -introdotto gestione visibilità rettangolo colore lavorazione 2025-03-05 11:38:09 +01:00
Nicola Pievani ec1af67d5b Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egaltech/OmagCUT into Features/Set_Machining 2025-03-05 10:27:55 +01:00
Nicola Pievani e103aa753f Aggiorno il valore di numerazione del taglio 2025-03-05 10:27:50 +01:00
Demetrio Cassarino ecacf89e93 -gestione visibilità pulsante colore lavorazioni 2025-03-05 10:07:08 +01:00
Demetrio Cassarino 7e5b813df1 -gestione pulsante color visibilità 2025-03-05 10:01:11 +01:00
Demetrio Cassarino 108048b559 Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egalware-cadcam/interfacce/OmagCUT into Features/Set_Machining 2025-03-05 09:38:24 +01:00
Demetrio Cassarino 0086345f64 -cambio label con rettangolo per lavorazioni 2025-03-05 09:38:22 +01:00
Nicola Pievani a5cc976810 Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egaltech/OmagCUT into Features/Set_Machining 2025-03-04 17:18:17 +01:00
Nicola Pievani 5bdc4c46bc Gestione colore da lama lavorazioni 2025-03-04 17:18:00 +01:00
Demetrio Cassarino 6e8154d29a -piccola modifica a MachiningLsBx 2025-03-04 17:10:22 +01:00
Demetrio Cassarino c8614fe52d -aggiunto label colore lavorazione 2025-03-04 16:54:25 +01:00
Demetrio Cassarino f420926e3e Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egalware-cadcam/interfacce/OmagCUT into Features/Set_Machining 2025-03-04 15:52:57 +01:00
Demetrio Cassarino 794c5da9e6 -sistemata grafica grid machining 2025-03-04 15:52:54 +01:00
Nicola Pievani 9d58cec30e Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egaltech/OmagCUT into Features/Set_Machining 2025-03-04 15:47:28 +01:00
Nicola Pievani e54c5f006e Migliorate alcune funzioni 2025-03-04 15:47:07 +01:00
Demetrio Cassarino 4a0a398e9f -funzione per la visualizzazione delle lavorazioni 2025-03-04 15:30:25 +01:00
Demetrio Cassarino 778219da1e -gestione colore lavorazione tooldb 2025-03-04 12:28:05 +01:00
Demetrio Cassarino 4ac506fbf0 Merge branch 'Features/Set_Machining' of https://gitlab.steamware.net/egalware-cadcam/interfacce/OmagCUT into Features/Set_Machining 2025-03-04 11:20:50 +01:00
Demetrio Cassarino 9616e211e5 -aggiunto seleziona colore lavorazione 2025-03-04 11:20:46 +01:00
Nicola Pievani 61b16af746 Lettura colore lavorazione da SystemNotes 2025-03-04 11:19:42 +01:00
Nicola Pievani 7d010be835 Prima gestione cambio lavorazione in Splitting 2025-03-04 09:44:18 +01:00
63 changed files with 3847 additions and 1434 deletions
+154 -34
View File
@@ -1,5 +1,6 @@
Imports System.Windows.Forms.Integration
Imports EgtUILib
Imports EgtWPFLib5
Friend Module CamAuto
@@ -33,6 +34,43 @@ Friend Module CamAuto
Return bOk
End Function
Friend Function AddSawMachining(nOperId As Integer, ByRef nNewOperation As Integer) As Boolean
EgtLuaCreateGlobTable("CAM")
SetLuaStandardCamParams()
EgtLuaSetGlobIntVar("CAM.OPERID", nOperId)
Dim nErr As Integer = 999
Dim bOk As Boolean = EgtLuaExecFile(m_MainWindow.GetCamAutoDir() & "\CamAuto.lua")
bOk = bOk AndAlso EgtLuaGetGlobIntVar("CAM.ERR", nErr) AndAlso nErr = 0
bOk = bOk AndAlso EgtLuaCallFunction("CAM.UpdateSawing")
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
EgtLuaGetGlobIntVar("CAM.NEW_OPERATION", nNewOperation)
EgtLuaResetGlobVar("CAM")
If nErr <> 0 Then
bOk = False
EgtOutLog("Error in CamAuto : " & nErr.ToString())
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
End If
Return bOk
End Function
Friend Function ChangePvColor(nOperId As Integer, colCut As Color3d)
EgtLuaCreateGlobTable("CAM")
SetLuaStandardCamParams()
EgtLuaSetGlobIntVar("CAM.OPERID", nOperId)
Dim nErr As Integer = 999
Dim bOk As Boolean = EgtLuaExecFile(m_MainWindow.GetCamAutoDir() & "\CamAuto.lua")
bOk = bOk AndAlso EgtLuaGetGlobIntVar("CAM.ERR", nErr) AndAlso nErr = 0
bOk = bOk AndAlso EgtLuaExecLine("CAM.ChangePvColor( " & nOperId.ToString & ",Color3d(" & colCut.R.ToString & "," & colCut.G.ToString & "," & colCut.B.ToString & "))")
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
EgtLuaResetGlobVar("CAM")
If nErr <> 0 Then
bOk = False
EgtOutLog("Error in CamAuto : " & nErr.ToString())
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
End If
Return bOk
End Function
Friend Function AddWaterJetMachining(nOperId As Integer, ByRef nWarn As Integer) As Boolean
EgtLuaCreateGlobTable("CAM")
SetLuaStandardCamParams()
@@ -134,6 +172,63 @@ Friend Module CamAuto
Return True
End Function
Friend Function RestoreDef_Machinig(Optional bOnlySideAng As Boolean = True)
Dim sSawingTilted As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
Dim bApplySawingTilted As Boolean = m_MainWindow.m_CurrentMachine.bApplySawingTilted
Dim bOk As Boolean = True
Dim nIdPart As Integer = EgtGetFirstPart()
While nIdPart <> GDB_ID.NULL
' accedo al Layer OutLoop dei pezzi nel grezzo
Dim nIdLayerOutLoop As Integer = EgtGetFirstNameInGroup(nIdPart, NAME_OUTLOOP)
Dim nEntId As Integer = EgtGetFirstInGroup(nIdLayerOutLoop)
SetResetDef_Machining(nEntId, sSawingTilted, bApplySawingTilted, bOnlySideAng)
nIdPart = EgtGetNextPart(nIdPart)
End While
Dim nRawId As Integer = CamAuto.GetCurrentRaw()
nIdPart = EgtGetFirstPartInRawPart(nRawId)
While nIdPart <> GDB_ID.NULL
' accedo al Layer OutLoop dei pezzi in parcheggio
Dim nIdLayerOutLoop As Integer = EgtGetFirstNameInGroup(nIdPart, NAME_OUTLOOP)
Dim nEntId As Integer = EgtGetFirstInGroup(nIdLayerOutLoop)
SetResetDef_Machining(nEntId, sSawingTilted, bApplySawingTilted, bOnlySideAng)
nIdPart = EgtGetNextPartInRawPart(nIdPart)
End While
Return bOk
End Function
' ripristina la lavorazone indicata di default per i tagli inclinati
Private Sub SetResetDef_Machining(nEntId As Integer, sSawingTilted As String, bApplySawingTilted As Boolean, bOnlySideAng As Boolean)
While nEntId <> GDB_ID.NULL
Dim sInfoOrigSideAng As String = String.Empty
EgtGetInfo(nEntId, INFO_ORIG_SIDE_ANGLE, sInfoOrigSideAng)
' Se è un'entità associata ad una lavorazione inclinata
If Not String.IsNullOrEmpty(sInfoOrigSideAng) AndAlso sInfoOrigSideAng <> "0" Then
If bApplySawingTilted Then
' forzo la lavorazione inclinata
If String.IsNullOrEmpty(sSawingTilted) Then
' ma se non esiste nessuna lavorezione specifica applico qualla standard
EgtRemoveInfo(nEntId, DEF_MACHINING_TILTED)
Else
' Applico quella specificata
EgtSetInfo(nEntId, DEF_MACHINING_TILTED, sSawingTilted)
End If
Else
' Rimuovo la lavorazione e applico quella standard
EgtRemoveInfo(nEntId, DEF_MACHINING_TILTED)
End If
ElseIf Not bOnlySideAng Then
Dim sInfo As String = String.Empty
EgtGetInfo(nEntId, DEF_MACHINING, sInfo)
If Not String.IsNullOrEmpty(sInfo) Then
' se esiste una lavorazione specificata allora la rimuovo
EgtRemoveInfo(nEntId, DEF_MACHINING)
End If
End If
nEntId = EgtGetNext(nEntId)
End While
End Sub
Friend Function ResetAllSplitCurv() As Boolean
Dim bOk As Boolean = True
Dim nIdPart As Integer = EgtGetFirstPart()
@@ -360,7 +455,7 @@ Friend Module CamAuto
EgtGetGroupObjs(EgtGetFirstNameInGroup(nPartId, NAME_UNDERDRILL)) = 0 Then
Return True
End If
' Se tutti i pezzi
' Se tutti i pezzi
Else
' Salvo fase attualmente corrente
Dim nOriPhase As Integer = EgtGetCurrPhase()
@@ -487,6 +582,7 @@ Friend Module CamAuto
Return EgtRemoveOperationHome(nId)
End Function
' Verifico che per tutte le lavorazioni sia attrezzato l'utensile
Friend Function VerifySetup(ByRef sMissingTools As String) As Boolean
Dim bOk As Boolean = True
Dim bIsMultiCut = (EgtGetHeadId("H101") <> GDB_ID.NULL)
@@ -501,9 +597,9 @@ Friend Module CamAuto
Dim sTool2 As String = String.Empty
EgtGetMachiningParam(MCH_MP.TUUID, sTuuid)
EgtTdbGetToolFromUUID(sTuuid, sTool)
If String.IsNullOrWhiteSpace( sTool) Then
If String.IsNullOrWhiteSpace(sTool) Then
Dim sMchTool As String = ""
EgtGetMachiningParam( MCH_MP.TOOL, sMchTool)
EgtGetMachiningParam(MCH_MP.TOOL, sMchTool)
bOk = False
If sMissingTools.IndexOf(sMchTool) = -1 Then
sMissingTools = sMissingTools & sMchTool & ", "
@@ -516,8 +612,24 @@ Friend Module CamAuto
End If
sTool2 = sTool & "-2"
End If
If String.Compare(sTool, m_MainWindow.m_CurrentMachine.sCurrSaw) <> 0 AndAlso
( String.IsNullOrWhiteSpace( sTool2) OrElse String.Compare(sTool2, m_MainWindow.m_CurrentMachine.sCurrSaw) <> 0) AndAlso
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
Dim bOnHolder As Boolean = False
For Each ToolPosition As ToolChangerPos In m_MainWindow.m_CurrentMachine.ToolChanger
If ToolPosition.sTool <> String.Empty Then
If sTool = ToolPosition.sTool Then
bOnHolder = True
Exit For
End If
End If
Next
If Not bOnHolder Then
bOk = False
If sMissingTools.IndexOf(sTool) = -1 Then
sMissingTools = sMissingTools & sTool & ", "
End If
End If
ElseIf String.Compare(sTool, m_MainWindow.m_CurrentMachine.sCurrSaw) <> 0 AndAlso
(String.IsNullOrWhiteSpace(sTool2) OrElse String.Compare(sTool2, m_MainWindow.m_CurrentMachine.sCurrSaw) <> 0) AndAlso
String.Compare(sTool, m_MainWindow.m_CurrentMachine.sCurrDripSaw) <> 0 Then
bOk = False
If sMissingTools.IndexOf(sTool) = -1 Then
@@ -555,6 +667,8 @@ Friend Module CamAuto
End If
nId = EgtGetNextOperation(nId)
End While
Dim index As Integer = sMissingTools.LastIndexOf(","c)
sMissingTools = If(index >= 0, sMissingTools.Remove(index, 1), sMissingTools)
Return bOk
End Function
@@ -584,7 +698,7 @@ Friend Module CamAuto
Dim LocalListOperId As New List(Of Integer)
While nOperId <> GDB_ID.NULL
' verifico sia una lavorazione valida di taglio con lama
If IsValidMachining( nOperId) And EgtGetOperationType( nOperId) = MCH_OY.SAWING Then
If IsValidMachining(nOperId) And EgtGetOperationType(nOperId) = MCH_OY.SAWING Then
' verifica interferenza
Dim nFlag As Integer = FMI_TYPE.NONE
If Not VerifyComposedMachining(nOperId, nFlag) Then
@@ -599,7 +713,7 @@ Friend Module CamAuto
LocalListOperId.Add(nOperId)
'AddWaterJetMachining(nOperId, nWarn)
End If
End If
End If
End If
nOperId = EgtGetNextOperation(nOperId)
End While
@@ -707,8 +821,8 @@ Friend Module CamAuto
If nOriLeadIn <> MCH_SAW_LI.STRICT Then
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.STRICT)
Dim dUserAddLen As Double = 0
EgtGetInfo( nMchId, INFO_MCH_USER_SAL, dUserAddLen)
EgtRemoveInfo( nMchId, INFO_MCH_USER_SAL)
EgtGetInfo(nMchId, INFO_MCH_USER_SAL, dUserAddLen)
EgtRemoveInfo(nMchId, INFO_MCH_USER_SAL)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen - dUserAddLen - dSafeLen)
@@ -727,8 +841,8 @@ Friend Module CamAuto
If nOriLeadOut <> MCH_SAW_LO.STRICT Then
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.STRICT)
Dim dUserAddLen As Double = 0
EgtGetInfo( nMchId, INFO_MCH_USER_EAL, dUserAddLen)
EgtRemoveInfo( nMchId, INFO_MCH_USER_EAL)
EgtGetInfo(nMchId, INFO_MCH_USER_EAL, dUserAddLen)
EgtRemoveInfo(nMchId, INFO_MCH_USER_EAL)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen - dUserAddLen - dSafeLen)
@@ -885,9 +999,9 @@ Friend Module CamAuto
Friend Function RemoveAllExitPreCuts() As Boolean
Dim nOperId As Integer = EgtGetFirstOperation()
While nOperId <> GDB_ID.NULL
Dim nNextOperId As Integer = EgtGetNextOperation( nOperId)
If EgtGetType( nOperId) <> MCH_OY.DISP AndAlso EgtExistsInfo(nOperId, INFO_MCH_EPC) Then
EgtRemoveOperation( nOperId)
Dim nNextOperId As Integer = EgtGetNextOperation(nOperId)
If EgtGetType(nOperId) <> MCH_OY.DISP AndAlso EgtExistsInfo(nOperId, INFO_MCH_EPC) Then
EgtRemoveOperation(nOperId)
End If
nOperId = nNextOperId
End While
@@ -897,6 +1011,7 @@ Friend Module CamAuto
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 sSawTiltedMch As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
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
@@ -915,6 +1030,7 @@ Friend Module CamAuto
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.SAWTILTEDMCH", sSawTiltedMch)
EgtLuaSetGlobStringVar("CAM.MILLMCH", sMillMch)
EgtLuaSetGlobStringVar("CAM.DRILLMCH", sDrillMch)
EgtLuaSetGlobStringVar("CAM.POCKETMCH", sPocketMch)
@@ -940,20 +1056,24 @@ Friend Module CamAuto
If EgtGetTableId(MAIN_TAB) = GDB_ID.NULL Then Return 0
If EgtGetTableId(SECOND_TAB) = GDB_ID.NULL Then Return 1
If EgtGetTableId(THIRD_TAB) = GDB_ID.NULL Then Return 2
Return 3
If EgtGetTableId(FORTH_TAB) = GDB_ID.NULL Then Return 3
Return 4
End Function
Friend Function GetTableName(nInd As Integer) As String
If nInd = 1 Then Return MAIN_TAB
If nInd = 2 Then Return SECOND_TAB
If nInd = 3 Then Return THIRD_TAB
If nInd = 4 Then Return FORTH_TAB
Return ""
End Function
Friend Function GetCurrentTable() As Integer
Dim sTabName As String = MAIN_TAB
EgtGetTableName(sTabName)
If sTabName = THIRD_TAB Then
If sTabName = FORTH_TAB Then
Return 4
ElseIf sTabName = THIRD_TAB Then
Return 3
ElseIf sTabName = SECOND_TAB Then
Return 2
@@ -1074,13 +1194,13 @@ Friend Module CamAuto
Dim nRawId As Integer = GetCurrentRaw()
If nRawId = GDB_ID.NULL Then Return False
' Se non ci sono pezzi, esco
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
If nPart1Id = GDB_ID.NULL Then Return True
' Verifico se cornice curva
Dim nDir As Integer = 0
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = ( nDir = 0)
Dim bCurved As Boolean = ( nDir >= 2)
Dim bSwap As Boolean = (nDir = 0)
Dim bCurved As Boolean = (nDir >= 2)
' Recupero la lavorazione corrente di sgrossatura con lama
Dim sCurrSawRoughing = m_MainWindow.m_CurrentMachine.sCurrSawRoughing
If String.IsNullOrEmpty(sCurrSawRoughing) Then Return True
@@ -1107,8 +1227,8 @@ Friend Module CamAuto
' Imposto la geometria
EgtSetMachiningGeometry(vId)
' Imposto trim iniziale e finale
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
' Se cornice curva, imposto SCC
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
' Applico la lavorazione
@@ -1123,13 +1243,13 @@ Friend Module CamAuto
Dim nRawId As Integer = GetCurrentRaw()
If nRawId = GDB_ID.NULL Then Return False
' Se non ci sono pezzi, esco
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
If nPart1Id = GDB_ID.NULL Then Return True
' Verifico se cornice curva
Dim nDir As Integer = 0
EgtGetInfo( nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = ( nDir = 0)
Dim bCurved As Boolean = ( nDir >= 2)
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = (nDir = 0)
Dim bCurved As Boolean = (nDir >= 2)
' Recupero la lavorazione corrente di finitura con lama
Dim sCurrSawFinishing = m_MainWindow.m_CurrentMachine.sCurrSawFinishing
If String.IsNullOrEmpty(sCurrSawFinishing) Then Return True
@@ -1166,8 +1286,8 @@ Friend Module CamAuto
' Imposto la geometria
EgtSetMachiningGeometry(vId)
' Imposto trim iniziale e finale
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
' Se cornice curva, imposto SCC
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
' Applico la lavorazione
@@ -1182,13 +1302,13 @@ Friend Module CamAuto
Dim nRawId As Integer = GetCurrentRaw()
If nRawId = GDB_ID.NULL Then Return False
' Se non ci sono pezzi, esco
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
If nPart1Id = GDB_ID.NULL Then Return True
' Verifico se cornice curva
Dim nDir As Integer = 0
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = ( nDir = 0)
Dim bCurved As Boolean = ( nDir >= 2)
Dim bSwap As Boolean = (nDir = 0)
Dim bCurved As Boolean = (nDir >= 2)
' Recupero la lavorazione corrente di spatolatura con lama
Dim sCurrSawSideFinishing = m_MainWindow.m_CurrentMachine.sCurrSawSideFinishing
If String.IsNullOrEmpty(sCurrSawSideFinishing) Then Return True
@@ -1209,8 +1329,8 @@ Friend Module CamAuto
' Imposto la geometria
EgtSetMachiningGeometry(vId)
' Imposto trim iniziale e finale
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
' Se cornice curva, imposto SCC
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
' Applico la lavorazione
@@ -1349,14 +1469,14 @@ Friend Module CamAuto
dStartDist = dEndDist
dEndDist = dTemp
End If
' altrimenti
' altrimenti
Else
Dim vtSide As Vector3d
' Se faccia non limitata da altre o sopra la limitante
If bFree Then
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_DOWN)
vtSide = Vector3d.Z_AX()
' altrimenti è stata trovata una faccia adiacente limitante
' altrimenti è stata trovata una faccia adiacente limitante
Else
If vtAdjN.x > 10 * EPS_SMALL Then
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_LEFT)
+92
View File
@@ -0,0 +1,92 @@
<Window x:Class="ChangeToolWD"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
Title="ChooseTool" Height="382.6" Width="426.6" WindowStyle="None"
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
Background="Transparent">
<Border Style="{DynamicResource OmagCut_Border}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="FilePathTxBl" Grid.Column="1" Grid.Row="0" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" />
<!--TextAlignment="Center"
FontSize="20"
VerticalAlignment="Center"-->
<Grid Grid.Column="1" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.7*"/>
<ColumnDefinition Width="0.7*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="MACHINING" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" />
<TextBlock Grid.Column="1" Text="TOOL" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" />
<TextBlock Grid.Column="2" Text="TC" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Margin="10,0,0,0"/>
</Grid>
<ListBox Name="SetUpToolListBox" Grid.Column="1" Grid.Row="2"
ItemsSource="{Binding ItemList}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="{Binding ActualWidth, ElementName=SetUpToolListBox}" Margin="0,0,-40,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.7*"/>
<ColumnDefinition Width="0.4*"/>
<ColumnDefinition Width="0.0*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Machining}" Style="{StaticResource OmagCut_ListBoxTextBlock}"/>
<TextBlock Grid.Column="1" Text="{Binding ToolName}" Style="{StaticResource OmagCut_ListBoxTextBlock}"/>
<TextBlock Grid.Column="2" Text="{Binding ToolPos}" Style="{StaticResource OmagCut_ListBoxTextBlock}"/>
<Rectangle Grid.Column="2" Style="{DynamicResource Rect_SplitPage}" Margin="15,0,0,0"/>
<Grid.ToolTip>
<StackPanel>
<TextBlock Text="{Binding Machining}" Style="{StaticResource OmagCut_ListBoxTextBlock}"/>
<TextBlock Text="{Binding ToolName}" Style="{StaticResource OmagCut_ListBoxTextBlock}" />
<TextBlock Text="{Binding ToolPos}" Style="{StaticResource OmagCut_ListBoxTextBlock}"/>
</StackPanel>
</Grid.ToolTip>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock Name="ErrorTxBl" Grid.Column="1" Grid.Row="3"
Style="{DynamicResource OmagCut_ErrorTextBlock}"/>
<Grid Grid.Column="1" Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Button Name="OkBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}" >
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="ExitBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}" IsCancel="True">
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
</Grid>
</Grid>
</Border>
</Window>
+381
View File
@@ -0,0 +1,381 @@
Imports System.Collections.ObjectModel
Imports EgtUILib
Public Class ChangeToolWD
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_SetUpMachiningList As New ObservableCollection(Of ItemMachining)
Sub New(Owner As Window)
Me.Owner = Owner
InitializeComponent()
End Sub
' Parametri della lama impostata correntemente in macchina
Private m_DefaultSaw_Name As String = String.Empty
Private m_DefaultSaw_Diam As Double = 0
Private m_DefaultSaw_Thick As Double = 0
Private m_DefaultSaw_Exists As Boolean = False
' Il nome della lavorazione restituito dalla selezione
Private m_NewSawing As String = String.Empty
Public ReadOnly Property NewSawing As String
Get
Return m_NewSawing
End Get
End Property
' Il colore della lavorazione
Private m_EgtColor As New Color3d
Public ReadOnly Property EgtColor As Color3d
Get
Return m_EgtColor
End Get
End Property
' Il nome della posizione sulla rulliera
Private m_TCPos As String = String.Empty
Public ReadOnly Property TCPos As String
Get
Return m_TCPos
End Get
End Property
' Nome della lavorazione corrente
Private m_CurrSawing As String = String.Empty
Public Property CurrSawing As String
Get
Return m_CurrSawing
End Get
Set(value As String)
m_CurrSawing = value
End Set
End Property
Private Sub GetDiamAndThickDefaultSaw()
m_DefaultSaw_Name = m_MainWindow.m_CurrentMachine.sCurrSaw
' Dalla lavorazione corrente recupero il nome della lama
If EgtMdbSetCurrMachining(m_CurrSawing) Then
Dim sNameTool As String = String.Empty
If EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, sNameTool) Then m_DefaultSaw_Name = sNameTool
End If
If EgtTdbSetCurrTool(m_DefaultSaw_Name) Then
' Diametro lama lavorazione
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_DefaultSaw_Diam)
' Spessore lama corrente
EgtTdbGetCurrToolParam(MCH_TP.THICK, m_DefaultSaw_Thick)
m_DefaultSaw_Exists = True
End If
End Sub
Private Sub OpenFile_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' Posizione finestra
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
' Definizione del collegamento tra ItemList e ListBox1
SetUpToolListBox.ItemsSource = m_SetUpMachiningList
' 90378=Seleziona lavorazione
FilePathTxBl.Text = EgtMsg(90378)
End Sub
Private Sub OpenFile_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
If String.IsNullOrEmpty(m_CurrSawing) Then
m_CurrSawing = m_MainWindow.m_CurrentMachine.sCurrSawing
End If
' carico elenco degli utensili impostati attualmente in macchina (anche il laser!)
LoadSetUpMachining()
' ricerco la lavorazione corrente
Dim Item As ItemMachining = m_SetUpMachiningList.FirstOrDefault(Function(x) x.Machining = m_CurrSawing)
Dim Index As Integer = m_SetUpMachiningList.IndexOf(Item)
If Index < 0 Then
' Imposto lavorazione di default
EgtMdbSetCurrMachining(m_CurrSawing)
Dim sTool As String = String.Empty
EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, sTool)
' ⚠️ Utensile {0} non attrezzato
ErrorTxBl.Text = String.Format(EgtMsg(90377), sTool)
Index = 0
End If
' se presente seleziono il primo elemento
If m_SetUpMachiningList.Count > 0 Then
SetUpToolListBox.SelectedItem = m_SetUpMachiningList(Index)
OkBtn.IsEnabled = True
Else
OkBtn.IsEnabled = False
End If
End Sub
#Region "SET UP MACHINING"
' Creo le liste da mostrare nella lista
Private Function LoadSetUpMachining() As Boolean
Dim sNameTool As String = String.Empty
Dim nType As Integer = 0
Dim sHeadTool As String = String.Empty
Dim nExitTool As Integer = 0
' Imposto il contesto corrente
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Recupero la lista di tutte le lavorazioni di lama
Dim local_Sawing As TreeViewItem.CathegoryItem = GetAllSwaing()
' Se non ci sono lavorazioni di lama allora esco
If IsNothing(local_Sawing) Then Return False
' Ripulisco la lista degli utensili
m_SetUpMachiningList.Clear()
CreateSawingList(local_Sawing)
Return True
End Function
' Creo la lista delle delle lavorazioni di lama da proporre
Private Sub CreateSawingList(SawingFam As TreeViewItem.CathegoryItem)
' Recupero le info della lama montata di default
GetDiamAndThickDefaultSaw()
' recupero la prima lavorazione
For Each Item As TreeViewItem.CustomItem In SawingFam.Items
Dim sNameTool As String = String.Empty
' Imposto la lavorazione corrente
EgtMdbSetCurrMachining(Item.Name)
' Recupero il nome dell'utensile della lavorazione
EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, sNameTool)
If Not String.IsNullOrEmpty(sNameTool) And VerifyCurrSawTollerance(sNameTool) Then
' Verifico che sia montata su un portautensile
EgtTdbSetCurrTool(sNameTool)
Dim sTCPos As String = String.Empty
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sTCPos)
If Not String.IsNullOrEmpty(sTCPos) Then
' Cerco nel porta utensili automaitico
For Each ToolPosition As ToolChangerPos In m_MainWindow.m_CurrentMachine.ToolChanger
If ToolPosition.sTool <> String.Empty Then
If sNameTool = ToolPosition.sTool Then
' Verifico che il materiale e lo spessore
If VerifyCurrMachiningMaterial() Then
m_SetUpMachiningList.Add(New ItemMachining(Item.Name, sNameTool, sTCPos, Utility.GetColorPV()))
End If
Exit For
End If
End If
Next
End If
End If
Next
' reimposto la lavorazione di lama e la lama impostate in macchina
EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw)
EgtMdbSetCurrMachining(m_MainWindow.m_CurrentMachine.sCurrSawing)
End Sub
' verifico l'utensile corrente (impostato nella funzione chiamante) se può lavorare il grezzo corrente
Private Function VerifyCurrMachiningMaterial() As Boolean
Dim m_MaterialsList As New ObservableCollection(Of MachiningMaterial)
For Each Material As Material In m_MainWindow.m_CurrentMachine.Materials
If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName, Material.SubId))
Else
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName))
End If
Next
Dim ToolString As String = String.Empty
EgtMdbGetCurrMachiningParam(MCH_MP.SYSNOTES, ToolString)
If ToolString <> String.Empty Then
Dim sItems() = ToolString.Split(";".ToCharArray)
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
Dim nSubParId As Integer = 0
If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
If StringToInt(SubParam(0), nParId) AndAlso nParId = m_MainWindow.m_CurrentMachine.CurrMat.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()
Else
Material.VerifyIfActive()
End If
Else
If StringToInt(Param(0), nParId) AndAlso nParId = m_MainWindow.m_CurrentMachine.CurrMat.nId Then
StringToDouble(Param(1), Material.dMinThickness)
StringToDouble(Param(2), Material.dMaxThickness)
Material.VerifyIfActive()
If m_MainWindow.m_CurrentProjectPageUC.m_dRawHeight > Material.dMinThickness And m_MainWindow.m_CurrentProjectPageUC.m_dRawHeight < Material.dMaxThickness Then
Return True
End If
End If
End If
Index += 1
Next
End If
Return False
End Function
' verifico l'utensile corrente (impostato nella funzione chiamante) se ha le stesse dimensioni della lama di default
Private Function VerifyCurrSawTollerance(sNameTool As String) As Boolean
If m_DefaultSaw_Exists Then
If EgtTdbSetCurrTool(sNameTool) Then
' Diametro nuova lama
Dim NewDiam As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.DIAM, NewDiam)
' Spessore lama
Dim NewThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, NewThick)
' Verifico che la nuova lama possa essere applicata: diametro minore, uguale spessore
Dim Delta_Diam As Double = NewDiam - m_DefaultSaw_Diam
Dim Delta_Thick As Double = Math.Abs(NewThick - m_DefaultSaw_Thick)
If Delta_Diam < EPS_SMALL And Delta_Thick < EPS_SMALL Then
Return True
Else
EgtOutLog(String.Format("New saw {0} can not repalce the current {1}; Delta_Diam={2}, |Delta_Thick|={3} ", sNameTool, m_DefaultSaw_Name, Delta_Diam, Delta_Thick))
End If
Else
EgtOutLog("Impossible to find in tooldb SAW: " & sNameTool)
End If
Else
If String.IsNullOrEmpty(m_DefaultSaw_Name) Then
EgtOutLog("There is no currsaw setted in machine!")
Else
EgtOutLog("Impossible to find in tooldb currsaw setted in machine: " & m_DefaultSaw_Name)
End If
End If
Return False
End Function
' Restituisce tutto l'elenco delle lavorazioni disponibili in macchina
Private Function GetAllSwaing() As TreeViewItem.CathegoryItem
Dim sFName As String = EgtMsg(MSG_MACHININGSDBPAGEUC + 31)
Dim nFType As Integer = MCH_MY.SAWING
If Not m_MainWindow.m_CurrentMachine.bSawing Then Return Nothing
' Inserisco categoria ed eventuali elementi
Dim MachiningCathegory As New TreeViewItem.CathegoryItem(sFName, nFType)
Dim MachiningName As String = String.Empty
If EgtMdbGetFirstMachining(nFType, MachiningName) Then
MachiningCathegory.Items.Add(New TreeViewItem.CustomItem(MachiningName, nFType))
While EgtMdbGetNextMachining(nFType, MachiningName)
MachiningCathegory.Items.Add(New TreeViewItem.CustomItem(MachiningName, nFType))
End While
End If
Return MachiningCathegory
End Function
#End Region ' Set up machinining
Private Sub SetUpToolListBox_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles SetUpToolListBox.PreviewMouseUp
' Disabilito Ok
OkBtn.IsEnabled = False
' Recupero item selezionato
If SetUpToolListBox.SelectedItems.Count() = 0 Then
Return
End If
m_NewSawing = m_SetUpMachiningList(SetUpToolListBox.SelectedIndex).Machining
m_EgtColor = m_SetUpMachiningList(SetUpToolListBox.SelectedIndex).PrintFootToolColor
m_TCPos = m_SetUpMachiningList(SetUpToolListBox.SelectedIndex).ToolPos
' A seconda del tipo
OkBtn.IsEnabled = True
End Sub
Private Sub SetUpToolListBox_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles SetUpToolListBox.SelectionChanged
' Disabilito Ok
OkBtn.IsEnabled = False
' Recupero item selezionato
If SetUpToolListBox.SelectedItems.Count() = 0 Then
Return
Else
m_NewSawing = m_SetUpMachiningList(SetUpToolListBox.SelectedIndex).Machining
m_EgtColor = m_SetUpMachiningList(SetUpToolListBox.SelectedIndex).PrintFootToolColor
m_TCPos = m_SetUpMachiningList(SetUpToolListBox.SelectedIndex).ToolPos
OkBtn.IsEnabled = True
End If
End Sub
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
DialogResult = True
End Sub
End Class
Public Class ItemMachining
Private m_ToolPos As String = String.Empty
Private m_ToolName As String = String.Empty
Private m_Machining As String = String.Empty
Private m_ToolExit As Integer = 1
Private m_ToolType As Integer = -1
Private m_PrintFootToolColor As New Color3d(0, 255, 0, 100)
Private m_cSawColor As SolidColorBrush
' Posizione porta utensile
Public Property ToolPos As String
Get
Return m_ToolPos
End Get
Set(value As String)
m_ToolPos = value
End Set
End Property
' Nome utensile
Public Property ToolName As String
Get
Return m_ToolName
End Get
Set(value As String)
m_ToolName = value
End Set
End Property
' Nome della lavorazione
Public Property Machining As String
Get
Return m_Machining
End Get
Set(value As String)
m_Machining = value
End Set
End Property
Public Property ToolExit As Integer
Get
Return m_ToolExit
End Get
Set(value As Integer)
m_ToolExit = value
End Set
End Property
Public Property ToolType As Integer
Get
Return m_ToolType
End Get
Set(value As Integer)
m_ToolType = value
End Set
End Property
Public Property PrintFootToolColor As Color3d
Get
Return m_PrintFootToolColor
End Get
Set(value As Color3d)
m_PrintFootToolColor = value
End Set
End Property
Public Property SawColor As SolidColorBrush
Get
Return m_cSawColor
End Get
Set(value As SolidColorBrush)
m_cSawColor = value
End Set
End Property
Sub New(sMachining As String, sToolName As String, sToolPos As String, cColor As Color3d)
m_Machining = sMachining
m_ToolPos = sToolPos
m_ToolName = sToolName
m_PrintFootToolColor = cColor
m_cSawColor = New SolidColorBrush(Color.FromRgb(m_PrintFootToolColor.R, m_PrintFootToolColor.G, m_PrintFootToolColor.B))
End Sub
End Class
+30
View File
@@ -74,6 +74,12 @@ Public Class ChooseTestToolWD
End If
Select Case m_MainWindow.m_CurrentMachine.MountedToolConfig
Case CurrentMachine.MountedToolConfigs.SAW
sNameTool = m_MainWindow.m_CurrentMachine.sCurrSaw
If Not String.IsNullOrEmpty(sNameTool) Then
' Imposto la lama
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
End If
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
sNameTool = m_MainWindow.m_CurrentMachine.sCurrSaw
If Not String.IsNullOrEmpty(sNameTool) Then
@@ -136,6 +142,30 @@ Public Class ChooseTestToolWD
End If
Next
Return True
Case CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
For Each ToolChangerPos As ToolChangerPos In m_MainWindow.m_CurrentMachine.ToolChanger
If Not String.IsNullOrWhiteSpace(ToolChangerPos.sTool) Then
'm_SetUpToolList.Add(New ToolPos(ToolChangerPos.sTool, ToolChangerPos.sName, False))
sNameTool = ToolChangerPos.sTool
If Not String.IsNullOrEmpty(sNameTool) Then
' Imposto la lama
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
End If
End If
Next
For Each ToolChangerPos As ToolChangerPos In m_MainWindow.m_CurrentMachine.ManualToolChanger
If Not String.IsNullOrWhiteSpace(ToolChangerPos.sTool) Then
'm_SetUpToolList.Add(New ToolPos(ToolChangerPos.sTool, ToolChangerPos.sName, False))
sNameTool = ToolChangerPos.sTool
If Not String.IsNullOrEmpty(sNameTool) Then
' Imposto la lama
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
End If
End If
Next
Return True
Case Else
Return False
End Select
+21 -13
View File
@@ -44,8 +44,8 @@ Public Class MoveRawPartPage
RemovePartBtn.Content = EgtMsg(MSG_MOVERAWPAGEUC + 1) 'Rimuovi
ModifyBtn.Content = EgtMsg(MSG_SPLITPAGEUC + 17) 'Modifica
ResetBtn.Content = EgtMsg(MSG_NESTPAGEUC + 6) 'Reset
ScrapsBtn.Content = "Add Scraps"
UnloadPartsBtn.Content = "Move part"
ScrapsBtn.Content = EgtMsg(90366) 'Add Scraps
UnloadPartsBtn.Content = EgtMsg(90367) 'Move part
End Sub
Private Sub MoveRawPartPage_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
@@ -124,18 +124,26 @@ Public Class MoveRawPartPage
If m_SplitPage.m_bOnAuxTab And m_SplitPage.m_bEnableOnAuxTab Then
' assegnazione delle info tavola ausiliaria alla dispozione corrente (Spostato nella funzione Refresh)
SetAuxTabInCurrDisposition()
UnloadPartsBtn.Content = "Go to MOVE part"
UnloadPartsBtn.Content = EgtMsg(90368) ' Go to MOVE part
' altrimenti, aggiorno visualizzazione
ElseIf Not m_SplitPage.m_bOnAuxTab And m_SplitPage.m_bEnableOnAuxTab Then
UnloadPartsBtn.Content = "Go to UNLOAD part"
UnloadPartsBtn.Content = EgtMsg(90369) ' Go to UNLOAD part
End If
'---------------------------- AUX TABLE ----------------------------
EgtDraw()
' Carico i parametri di movimento
m_dStep = GetPrivateProfileDouble(S_RAWMOVE, K_RAWSTEP, 50, m_MainWindow.GetIniFile())
' Carico il valore ci
Dim ExtraStep As Double = GetPrivateProfileDouble(S_RAWMOVE, K_EXTRASTEP, 1, m_MainWindow.GetIniFile())
' Ricavo la lunghezza del baffo di taglio
m_dStep = SplitAuto.MaxCuttingMustache(m_dStep)
StepMoveTxBx.Text = LenToString(m_dStep, 1) & "+1"
If ExtraStep < EPS_SMALL Then
StepMoveTxBx.Text = LenToString(m_dStep, 1)
Else
StepMoveTxBx.Text = LenToString(m_dStep, 1) & "+" & LenToString(ExtraStep, 1)
' Aggiorno il valore sommando l'extra
m_dStep = m_dStep + ExtraStep
End If
m_dRotation = GetPrivateProfileDouble(S_RAWMOVE, K_RAWROTATION, 30, m_MainWindow.GetIniFile())
RotationAngleTxBx.Text = DoubleToString(m_dRotation, 3)
' Se movimento manuale perpendicolare
@@ -207,10 +215,10 @@ Public Class MoveRawPartPage
Else
UnloadPartsBtn.Visibility = Visibility.Visible
If m_SplitPage.m_bOnAuxTab Then
UnloadPartsBtn.Content = "Go to MOVE part"
UnloadPartsBtn.Content = EgtMsg(90368) ' Go to MOVE part
' altrimenti, aggiorno visualizzazione
Else
UnloadPartsBtn.Content = "Go to UNLOAD part"
UnloadPartsBtn.Content = EgtMsg(90369) ' Go to UNLOAD part
End If
End If
' Aggiorno interfaccia per taglio perpendicolare
@@ -334,7 +342,7 @@ Public Class MoveRawPartPage
If VerifyCollisionWithOtherRawPart(nId) Then
' mantengo la selezione del pezzo
EgtSetStatus(nId, GDB_ST.SEL)
m_CurrProjPage.SetErrorMessage("Collisione pezzi")
m_CurrProjPage.SetErrorMessage(EgtMsg(91231)) ' Collisione pezzi
Else
' Se con ventose, le nascondo
If Not m_bByHand Then EgtSetStatus(GetVacuumId(), GDB_ST.OFF)
@@ -344,7 +352,7 @@ Public Class MoveRawPartPage
If VerifyCollisionWithOtherRawPart(m_CurrRawOnVacuum) Then
' mantengo la selezione del pezzo
EgtSetStatus(m_CurrRawOnVacuum, GDB_ST.SEL)
m_CurrProjPage.SetErrorMessage("Collisione pezzi")
m_CurrProjPage.SetErrorMessage(EgtMsg(91231)) ' Collisione pezzi
EgtDraw()
' esco dal ciclo, prima devo depositare correttamente il pezzo
Exit While
@@ -353,7 +361,7 @@ Public Class MoveRawPartPage
If VerifyCollisionWithOtherRawPart(nId, True) Then
' mantengo la selezione del pezzo
EgtSetStatus(m_CurrRawOnVacuum, GDB_ST.SEL)
m_CurrProjPage.SetErrorMessage("Collisione pezzi")
m_CurrProjPage.SetErrorMessage(EgtMsg(91231)) ' Collisione pezzi
EgtDraw()
' esco dal ciclo, prima devo depositare correttamente il pezzo
Exit While
@@ -530,18 +538,18 @@ Public Class MoveRawPartPage
If EgtGetInfo(nMyId, K_ISNEWSCRAPS, nVal) Then
If nVal = 1 Or nVal = 2 Then
' 1 → è stato definito come nuovo grezzo oppure, 2 → è stato definito come nuovo grezzo ed è stato inserito nel DB delle lastre
ScrapsBtn.Content = "Remove Scrap"
ScrapsBtn.Content = EgtMsg(91228) ' Remove Scrap
ScrapsBtn.IsEnabled = True And Not m_SplitPage.m_bShow
Return True
ElseIf nVal = 3 Then
' non è possibile rimuovere il grezzo in questa fase
ScrapsBtn.Content = "Defined as Scrap"
ScrapsBtn.Content = EgtMsg(91229) ' Defined as Scrap
ScrapsBtn.IsEnabled = False
Return True
End If
End If
' non è un nuovo grezzo
ScrapsBtn.Content = "Add Scrap"
ScrapsBtn.Content = EgtMsg(91230) ' Add Scrap
ScrapsBtn.IsEnabled = True And Not m_SplitPage.m_bShow
Return False
End Function
+36 -19
View File
@@ -110,7 +110,7 @@ Public Class NestPageUC
RemovePartBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 3) 'Remove part - Elimina pezzo
SelectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 4) 'Select All - Seleziona Tutto
DeselectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 5) 'Deselect All - Deseleziona Tutto
DragRettanleBtn.ToolTip = "Strech"
DragRettanleBtn.ToolTip = EgtMsg(91207) 'Strech
' Nascondo i pulsanti in uso quando attivo la modalità REG
UG0_Reg.Visibility = Visibility.Hidden
@@ -356,7 +356,7 @@ Public Class NestPageUC
End While
If nIdMy = GDB_ID.NULL Then
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage("Select OUTLOOP")
m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(91208)) ' Select OUTLOOP
End If
Return
End Sub
@@ -544,7 +544,7 @@ Public Class NestPageUC
m_nIdSelectedOutLoopRettangle = nIdParent
If Not IsRettangle(m_SideListRettangle) Then
m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage("Non è un rettangolo (0)")
m_CurrProjPage.SetWarningMessage(EgtMsg(91209)) ' Non è un rettangolo (0)
Return
End If
' recupero il gruppo della lavorazione associata
@@ -553,13 +553,13 @@ Public Class NestPageUC
' se non esiste un gruppo di lavorazione associato allora esco
If nIdPV = GDB_ID.NULL Then
m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage("Pezzo in parcheggio (1)")
m_CurrProjPage.SetWarningMessage(EgtMsg(91210)) ' Pezzo in parcheggio (1)
Return
End If
' se esiste ma è vuoto (pezzo scaricato da tavola)
If EgtGetFirstInGroup(nIdPV) = GDB_ID.NULL Then
m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage("Pezzo in parcheggio (2)")
m_CurrProjPage.SetWarningMessage(EgtMsg(91211)) ' Pezzo in parcheggio (2)
Return
End If
' Devo verificare che sia una lavorazione solo di lama?
@@ -1017,7 +1017,7 @@ Public Class NestPageUC
AddPointRegBtn.IsChecked = False
Else
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("Max spot for reg: " & m_nCountSpot.ToString)
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(91212) & m_nCountSpot.ToString) ' Max spot for reg:
End If
ElseIf RemovePointRegBtn.IsChecked Then
' Verifico se selezionato indicativo di pezzo
@@ -1179,12 +1179,18 @@ Public Class NestPageUC
Exit While
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
If EgtGetType(nId) = GDB_TY.EXT_TEXT AndAlso (sNamePartId = MAIN_TAB Or
sNamePartId = SECOND_TAB Or
sNamePartId = THIRD_TAB Or
sNamePartId = FORTH_TAB) Then
' Apro la finestra per la selezione della tavola da usare
Dim nRes As Integer = m_MainWindow.m_CadCutPageUC.m_ProjectMgr.ChangeTable()
' se non è stata eseguita nessuna scelta esco dal ciclo
If nRes = 0 Then Exit While
' imposto l'altra tavola
Dim sOtherTab = If(sNamePartId = MAIN_TAB, SECOND_TAB, MAIN_TAB)
' recupero il nome della tavola corrente
Dim sOtherTab As String = GetTableName(nRes)
EgtChangeTable(sOtherTab, True)
m_CurrProjPage.AdjustAdditionalTable(True)
EgtSetMachineLook(MCH_LOOK.TAB)
@@ -2854,20 +2860,22 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
Return False
End Function
Friend Function StoreOnePartDXF(nId As Integer, X As Double, Y As Double) As Boolean
Const STORE_LARGH As Double = 6000
Friend Function StoreOnePartDXF(nId As Integer, DimX As Double, DimY As Double, MaxPt As Point3d) As Boolean
'Const STORE_LARGH As Double = 6000
Const STORE_DIST As Double = 200
Const STORE_OFFS As Double = 20 + 40 + 20
Dim dStoreLarg As Double = GetPrivateProfileDouble("Store", "StoreLargh", STORE_LARGH, m_MainWindow.GetMachIniFile())
'Const STORE_OFFS As Double = 20 + 40 + 20
'Dim dStoreLarg As Double = GetPrivateProfileDouble("Store", "StoreLargh", STORE_LARGH, m_MainWindow.GetMachIniFile())
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, m_MainWindow.GetMachIniFile())
Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
'Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
' Recupero box tavola
Dim b3Tab As New BBox3d
If Not EgtGetTableArea(1, b3Tab) Then
b3Tab.Add(New Point3d(0, 0, 0))
b3Tab.Add(New Point3d(-3600, -2600, 0))
End If
Dim vt As New Vector3d(b3Tab.Min.x, b3Tab.Min.y - Y - STORE_DIST, b3Tab.Min.z)
Dim Offs_y As Double = b3Tab.Min.y - MaxPt.y - STORE_DIST
Dim Offs_x As Double = b3Tab.Min.x - (MaxPt.x - DimX) + (b3Tab.DimX - DimX) / 2
Dim vt As New Vector3d(Offs_x, Offs_y, b3Tab.Min.z)
EgtMove(nId, vt, GDB_RT.GLOB)
' Recupero il centro del pezzo in parcheggio e lo salvo
Dim ptCenter As Point3d
@@ -2995,11 +3003,12 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
If ParkIndBtn.IsChecked Then
m_SelParkInd.UpdateList()
End If
UpdateImageParkInd()
' abilito la notofica di modifica
UpdateImageParkInd(False)
End Sub
' Aggiorna immagine e restituisce il numero di parcheggi (+1) disponibili (+1 perchè conto anche il comando All_Off)
Private Function UpdateImageParkInd() As Integer
Private Function UpdateImageParkInd(Optional bDisableModified As Boolean = True) As Integer
' Carcico la lista dei parcheggi
Dim ListparkInd As New List(Of ParkInd)
SelParkIndWD.LoadParkInd(ListparkInd)
@@ -3014,6 +3023,11 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
End If
ParkIndImg.Source = ImageConverter.ConvertFromString(s)
Else
Dim bOldEnMod As Boolean = False
If bDisableModified Then
bOldEnMod = EgtGetEnableModified()
If bOldEnMod Then EgtDisableModified()
End If
' Se il comando non è abilitato allora provvedo a selezionare il primo parcheggio
Dim CurrparkInd As ParkInd = SelParkIndWD.GetCurrentParkIndSelected()
If Not IsNothing(CurrparkInd) Then
@@ -3024,6 +3038,8 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
SelParkIndWD.SetStatusPartInParkInd(ListparkInd(1), True)
End If
End If
' Se necessario, ripristino precedente impostazione modificato
If bOldEnMod Then EgtEnableModified()
End If
Return nCount
End Function
@@ -3172,7 +3188,8 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
If Not IsNothing(m_SelParkInd) Then
m_SelParkInd.UpdateList()
End If
UpdateImageParkInd()
' abilito la notofica di modifica
UpdateImageParkInd(False)
End Sub
@@ -3699,7 +3716,7 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
' Verifico che almeno un punto sia stato inserito
If m_nCountSpotCUT < 1 Then
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("Insert one spot reg to start.")
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(91213)) ' Insert one spot reg to start.
End If
' recupero l'elenco non ordinato degli Id dei punti SpotReg (da Office)
+2 -2
View File
@@ -33,8 +33,8 @@
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
TitleWDTxbl.Text = "Selection parts"
NbrOfPartsMsg.Text = "Number of parts"
TitleWDTxbl.Text = EgtUILib.EgtMsg(91232) ' Selection parts
NbrOfPartsMsg.Text = EgtUILib.EgtMsg(91233) ' Number of parts
NbrOfParts.Text = m_NumberOfParts.ToString
End Sub
+82
View File
@@ -0,0 +1,82 @@
<Window x:Class="SelectTableWD"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
Title="ChooseTool" Height="282.6" Width="326.6" WindowStyle="None"
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
Background="Transparent">
<Border Style="{DynamicResource OmagCut_Border}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="1.0*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="Title" Grid.Row="1" Grid.Column="1"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<ItemsControl Name="TableList"
Grid.Row="2" Grid.Column="1">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<RadioButton GroupName="TabGrp"
IsChecked="{Binding IsActive}"
Width="60" Height="60">
<RadioButton.Style>
<Style TargetType="ToggleButton" BasedOn="{StaticResource OmagCut_ToggleButton}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Foreground" Value="white"/>
<Setter Property="Background" Value="{StaticResource OmagCut_Blue}"/>
</Trigger>
</Style.Triggers>
</Style>
</RadioButton.Style>
<Grid>
<TextBlock Text="{Binding sName}" Background="Transparent"/>
<Image Source="{Binding ImgTab}" Margin="0,10,0,0"
Style="{StaticResource OmagCut_ButtonIcon}"/>
</Grid>
</RadioButton>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Grid Grid.Column="1" Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Button Name="OkBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}" >
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="ExitBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}" IsCancel="True">
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
</Grid>
</Grid>
</Border>
</Window>
+96
View File
@@ -0,0 +1,96 @@
Imports System.ComponentModel
Public Class SelectTableWD
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_nSelectedTable As Integer = 0
Public ReadOnly Property nSelectedTable As Integer
Get
Return m_nSelectedTable
End Get
End Property
Sub New(Owner As Window)
Me.Owner = Owner
Me.WindowStartupLocation = WindowStartupLocation.CenterOwner
InitializeComponent()
End Sub
Public CurrTableList As New List(Of TableToChange)
Private Sub ChangeTable_Initialized() Handles Me.Initialized
Title.Text = EgtUILib.EgtMsg(91234) ' Seleziona la tavola da usare
' recuepero l'inidce della tavola corrente
Dim nIndeXCurrTab As Integer = GetCurrentTable()
' creo la lista delle tavole disponibili (attivo il bottone della tavola attualmente in uso)
For nInd As Integer = 0 To GetTableCount() - 1
CurrTableList.Add(New TableToChange("Tab", (nInd + 1).ToString, ((nInd + 1) = nIndeXCurrTab)))
Next
End Sub
Private Sub ChangeTable_Loaded() Handles Me.Loaded
TableList.ItemsSource = CurrTableList
End Sub
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
' recupero l'indice della tavola impostata
For Each ItemTab As TableToChange In CurrTableList
If ItemTab.IsActive Then
m_nSelectedTable = ItemTab.nIndex
Exit For
End If
Next
DialogResult = True
End Sub
End Class
Public Class TableToChange
Implements INotifyPropertyChanged
Private Property m_sName As String = "Tab"
Public ReadOnly Property sName As String
Get
Return m_sName
End Get
End Property
Public ReadOnly Property ImgTab As String
Get
Return DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\table.png"
End Get
End Property
Private Property m_nIndex As Integer = 3
Public ReadOnly Property nIndex As Integer
Get
Return m_nIndex
End Get
End Property
Private m_bIsActive As Boolean = False
Public Property IsActive As Boolean
Get
Return m_bIsActive
End Get
Set(value As Boolean)
m_bIsActive = value
NotifyPropertyChanged("IsActive")
End Set
End Property
Public Sub New(Name As String, Ind As Integer, IsCurrent As Boolean)
m_sName = Name & " " & Ind.ToString
m_nIndex = Ind
m_bIsActive = IsCurrent
NotifyPropertyChanged("IsActive")
End Sub
Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
Public Sub NotifyPropertyChanged(propName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
End Sub
End Class
+296 -142
View File
@@ -1,6 +1,4 @@
Imports System.Net
Imports System.Windows.Forms.Integration
Imports EgtUILib
Imports EgtUILib
Public Module SplitAuto
@@ -51,151 +49,296 @@ Public Module SplitAuto
While nOperId <> GDB_ID.NULL
' verifico sia una lavorazione valida della fase corrente
If IsValidMachining(nOperId) And EgtGetOperationPhase(nOperId) = nCurrPhase Then
' se appartiene ad un grezzo attivo la inserisco in lista
If IsMachiningInActiveRaw(nOperId) Then
Dim Mach As New SplitMach
Mach.m_nEntId = GDB_ID.NULL
' identificativo
Mach.m_nId = nOperId
' eventuali lavorazioni inglobate
Dim sInfo As String = String.Empty
If EgtGetInfo(nOperId, INFO_MCH_OTHMID, sInfo) Then
Dim sItems() As String = sInfo.Split(",".ToCharArray)
For Each sId As String In sItems
Dim nId As Integer = 0
StringToInt(sId, nId)
If nId > 0 Then Mach.m_vOthId.Add(nId)
Next
End If
' tipo
Mach.m_nType = EgtGetOperationType(nOperId)
' layer di origine
EgtGetInfo(nOperId, INFO_MCH_LAYER, Mach.m_sLay)
' se taglio con lama
If Mach.m_nType = MCH_OY.SAWING Then
' verifica interferenza
If Mach.m_sLay = NAME_OUTLOOP Then
EgtVerifyMachining(nOperId, Mach.m_nInterf)
For Each nId As Integer In Mach.m_vOthId
Dim nRes As Integer = FMI_TYPE.LI Or FMI_TYPE.RM Or FMI_TYPE.LO
EgtVerifyMachining(nId, nRes)
Mach.m_nInterf = Mach.m_nInterf Or nRes
Next
Else
Mach.m_nInterf = FMI_TYPE.NONE
End If
' la imposto come lavorazione corrente
EgtSetCurrMachining(nOperId)
' inversione
EgtGetMachiningParam(MCH_MP.INVERT, Mach.m_bInvert)
' recupero l'angolo di fianco
EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
' recupero allungamento iniziale e finale (negativi vicino ad angoli interni)
Dim dStartAddLen As Double = -10
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dStartAddLen)
Dim dEndAddLen As Double = -10
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dEndAddLen)
' recupero tipo entità, angolo con entità precedente e successiva, lunghezze libere iniziale e finale
Mach.m_bIsLine = True
Mach.m_dPrevAng = 0
Mach.m_dNextAng = 0
Mach.m_dStartFreeLen = FREELEN_INF + 1
Mach.m_dEndFreeLen = FREELEN_INF + 1
Dim nEntId, nSub As Integer
If EgtGetMachiningGeometry(0, nEntId, nSub) Then
' EgtGetType( nEntId) = GDB_TY.CRV_ARC OrElse
If EgtGetType(nEntId) = GDB_TY.CRV_COMPO Then Mach.m_bIsLine = False
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_PREVANG, INFO_NEXTANG), Mach.m_dPrevAng)
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_NEXTANG, INFO_PREVANG), Mach.m_dNextAng)
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_START_FREELEN, INFO_END_FREELEN), Mach.m_dStartFreeLen)
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_END_FREELEN, INFO_START_FREELEN), Mach.m_dEndFreeLen)
Mach.m_bEnableInvert = GetEnableInvert(nEntId)
EgtMidVector(nEntId, GDB_ID.ROOT, Mach.m_vtDir)
If Mach.m_bInvert Then Mach.m_vtDir = -Mach.m_vtDir
Mach.m_nEntId = nEntId
EgtGetInfo(nOperId, "ManageLeadInOnIntCorner", Mach.m_bMngLeadInOnIntCorner)
End If
' verifico se trasformabile in un taglio di separazione (almeno da un lato)
If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_sLay = NAME_OUTLOOP And ( Mach.m_nInterf And FMI_TYPE.RM) = 0 Then
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
Dim bIn As Boolean = False
Dim bOut As Boolean = False
CanExtendSides(Mach, bIn, bOut)
Mach.m_bCanStartAll = ((dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LI_OK) <> 0) And
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn
Mach.m_bCanEndAll = ((dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LO_OK) <> 0) And
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut
If nRes = 0 Then
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
End If
Dim Mach As New SplitMach
If CreateMach(Mach, nOperId) Then MachSplitList.Add(Mach)
'' se appartiene ad un grezzo attivo la inserisco in lista
'If IsMachiningInActiveRaw(nOperId) Then
' Dim Mach As New SplitMach
' Mach.m_nEntId = GDB_ID.NULL
' ' identificativo
' Mach.m_nId = nOperId
' ' eventuali lavorazioni inglobate
' Dim sInfo As String = String.Empty
' If EgtGetInfo(nOperId, INFO_MCH_OTHMID, sInfo) Then
' Dim sItems() As String = sInfo.Split(",".ToCharArray)
' For Each sId As String In sItems
' Dim nId As Integer = 0
' StringToInt(sId, nId)
' If nId > 0 Then Mach.m_vOthId.Add(nId)
' Next
' End If
' ' tipo
' Mach.m_nType = EgtGetOperationType(nOperId)
' ' layer di origine
' EgtGetInfo(nOperId, INFO_MCH_LAYER, Mach.m_sLay)
' ' se taglio con lama
' If Mach.m_nType = MCH_OY.SAWING Then
' ' verifica interferenza
' If Mach.m_sLay = NAME_OUTLOOP Then
' EgtVerifyMachining(nOperId, Mach.m_nInterf)
' For Each nId As Integer In Mach.m_vOthId
' Dim nRes As Integer = FMI_TYPE.LI Or FMI_TYPE.RM Or FMI_TYPE.LO
' EgtVerifyMachining(nId, nRes)
' Mach.m_nInterf = Mach.m_nInterf Or nRes
' Next
' Else
' Mach.m_nInterf = FMI_TYPE.NONE
' End If
' ' la imposto come lavorazione corrente
' EgtSetCurrMachining(nOperId)
' ' inversione
' EgtGetMachiningParam(MCH_MP.INVERT, Mach.m_bInvert)
' ' recupero l'angolo di fianco
' EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
' ' recupero allungamento iniziale e finale (negativi vicino ad angoli interni)
' Dim dStartAddLen As Double = -10
' EgtGetMachiningParam(MCH_MP.STARTADDLEN, dStartAddLen)
' Dim dEndAddLen As Double = -10
' EgtGetMachiningParam(MCH_MP.ENDADDLEN, dEndAddLen)
' ' recupero tipo entità, angolo con entità precedente e successiva, lunghezze libere iniziale e finale
' Mach.m_bIsLine = True
' Mach.m_dPrevAng = 0
' Mach.m_dNextAng = 0
' Mach.m_dStartFreeLen = FREELEN_INF + 1
' Mach.m_dEndFreeLen = FREELEN_INF + 1
' Dim nEntId, nSub As Integer
' If EgtGetMachiningGeometry(0, nEntId, nSub) Then
' ' EgtGetType( nEntId) = GDB_TY.CRV_ARC OrElse
' If EgtGetType(nEntId) = GDB_TY.CRV_COMPO Then Mach.m_bIsLine = False
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_PREVANG, INFO_NEXTANG), Mach.m_dPrevAng)
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_NEXTANG, INFO_PREVANG), Mach.m_dNextAng)
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_START_FREELEN, INFO_END_FREELEN), Mach.m_dStartFreeLen)
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_END_FREELEN, INFO_START_FREELEN), Mach.m_dEndFreeLen)
' Mach.m_bEnableInvert = GetEnableInvert(nEntId)
' EgtMidVector(nEntId, GDB_ID.ROOT, Mach.m_vtDir)
' If Mach.m_bInvert Then Mach.m_vtDir = -Mach.m_vtDir
' Mach.m_nEntId = nEntId
' EgtGetInfo(nOperId, "ManageLeadInOnIntCorner", Mach.m_bMngLeadInOnIntCorner)
' End If
' ' verifico se trasformabile in un taglio di separazione (almeno da un lato)
' If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
' Mach.m_sLay = NAME_OUTLOOP And ( Mach.m_nInterf And FMI_TYPE.RM) = 0 Then
' Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
' Dim bIn As Boolean = False
' Dim bOut As Boolean = False
' CanExtendSides(Mach, bIn, bOut)
' Mach.m_bCanStartAll = ((dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LI_OK) <> 0) And
' Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn
' Mach.m_bCanEndAll = ((dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LO_OK) <> 0) And
' Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut
' If nRes = 0 Then
' EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
' End If
' ElseIf (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
' Mach.m_sLay = NAME_OUTLOOP And
' (Mach.m_nInterf = FMI_TYPE.LI Or Mach.m_nInterf = FMI_TYPE.LO Or Mach.m_nInterf = FMI_TYPE.RM) Then
' Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
' Dim bIn As Boolean = False
' Dim bOut As Boolean = False
' CanExtendSides(Mach, bIn, bOut)
' ' And (nRes And CAR_RES.LI_OK) <> 0 : da aggiungere
' Mach.m_bCanStartAll = (dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
' Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn And
' Mach.m_nInterf <> FMI_TYPE.LI
' ' And (nRes And CAR_RES.LO_OK) <> 0 : da aggiungere come sopra
' Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
' Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut And
' Mach.m_nInterf <> FMI_TYPE.LO
' If nRes = 0 Then
' EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
' End If
' End If
' ' se trasformabile in taglio di separazione, verifico se lo è
' If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
' EgtSetCurrMachining(nOperId)
' Dim nLiType As Integer
' EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiType)
' Dim nLoType As Integer
' EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoType)
' Mach.m_bStartAll = (nLiType = MCH_SAW_LI.EXT_CENT Or nLiType = MCH_SAW_LI.EXT_OUT)
' Mach.m_bEndAll = (nLoType = MCH_SAW_LO.EXT_CENT Or nLoType = MCH_SAW_LO.EXT_OUT)
' Else
' Mach.m_bStartAll = False
' Mach.m_bEndAll = False
' End If
' ' Waterjet
' ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then
' Mach.m_nInterf = FMI_TYPE.NONE
' ' recupero l'angolo di fianco
' EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
' Mach.m_bCanStartAll = False
' Mach.m_bCanEndAll = False
' Mach.m_bStartAll = False
' Mach.m_bEndAll = False
' ' Forature e fresature
' Else
' Mach.m_nInterf = FMI_TYPE.NONE
' Mach.m_dSideAng = 0
' Mach.m_bCanStartAll = False
' Mach.m_bCanEndAll = False
' Mach.m_bStartAll = False
' Mach.m_bEndAll = False
' End If
' ' abilitazione
' Mach.m_bEnabled = Not EgtExistsInfo(nOperId, INFO_MCH_USER_OFF)
' ' pausa
' Mach.m_bPause = GetPause(nOperId)
' ' inserisco in lista
' MachSplitList.Add(Mach)
' ' altrimenti la disattivo
'Else
' EgtSetOperationMode(nOperId, False)
'End If
ElseIf (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_sLay = NAME_OUTLOOP And
(Mach.m_nInterf = FMI_TYPE.LI Or Mach.m_nInterf = FMI_TYPE.LO Or Mach.m_nInterf = FMI_TYPE.RM) Then
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
Dim bIn As Boolean = False
Dim bOut As Boolean = False
CanExtendSides(Mach, bIn, bOut)
' And (nRes And CAR_RES.LI_OK) <> 0 : da aggiungere
Mach.m_bCanStartAll = (dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn And
Mach.m_nInterf <> FMI_TYPE.LI
' And (nRes And CAR_RES.LO_OK) <> 0 : da aggiungere come sopra
Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut And
Mach.m_nInterf <> FMI_TYPE.LO
If nRes = 0 Then
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
End If
End If
' se trasformabile in taglio di separazione, verifico se lo è
If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
EgtSetCurrMachining(nOperId)
Dim nLiType As Integer
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiType)
Dim nLoType As Integer
EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoType)
Mach.m_bStartAll = (nLiType = MCH_SAW_LI.EXT_CENT Or nLiType = MCH_SAW_LI.EXT_OUT)
Mach.m_bEndAll = (nLoType = MCH_SAW_LO.EXT_CENT Or nLoType = MCH_SAW_LO.EXT_OUT)
Else
Mach.m_bStartAll = False
Mach.m_bEndAll = False
End If
' Waterjet
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then
Mach.m_nInterf = FMI_TYPE.NONE
' recupero l'angolo di fianco
EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
Mach.m_bCanStartAll = False
Mach.m_bCanEndAll = False
Mach.m_bStartAll = False
Mach.m_bEndAll = False
' Forature e fresature
Else
Mach.m_nInterf = FMI_TYPE.NONE
Mach.m_dSideAng = 0
Mach.m_bCanStartAll = False
Mach.m_bCanEndAll = False
Mach.m_bStartAll = False
Mach.m_bEndAll = False
End If
' abilitazione
Mach.m_bEnabled = Not EgtExistsInfo(nOperId, INFO_MCH_USER_OFF)
' pausa
Mach.m_bPause = GetPause(nOperId)
' inserisco in lista
MachSplitList.Add(Mach)
' altrimenti la disattivo
Else
EgtSetOperationMode(nOperId, False)
End If
End If
nOperId = EgtGetNextOperation(nOperId)
End While
Return True
End Function
Friend Function CreateMach(ByRef Mach As SplitMach, nOperId As Integer) As Boolean
Dim bOk As Boolean = True
' se appartiene ad un grezzo attivo la inserisco in lista
If IsMachiningInActiveRaw(nOperId) Then
Mach.m_nEntId = GDB_ID.NULL
' identificativo
Mach.m_nId = nOperId
' eventuali lavorazioni inglobate
Dim sInfo As String = String.Empty
If EgtGetInfo(nOperId, INFO_MCH_OTHMID, sInfo) Then
Dim sItems() As String = sInfo.Split(",".ToCharArray)
For Each sId As String In sItems
Dim nId As Integer = 0
StringToInt(sId, nId)
If nId > 0 Then Mach.m_vOthId.Add(nId)
Next
End If
' tipo
Mach.m_nType = EgtGetOperationType(nOperId)
' layer di origine
EgtGetInfo(nOperId, INFO_MCH_LAYER, Mach.m_sLay)
' se taglio con lama
If Mach.m_nType = MCH_OY.SAWING Then
' verifica interferenza
If Mach.m_sLay = NAME_OUTLOOP Then
EgtVerifyMachining(nOperId, Mach.m_nInterf)
For Each nId As Integer In Mach.m_vOthId
Dim nRes As Integer = FMI_TYPE.LI Or FMI_TYPE.RM Or FMI_TYPE.LO
EgtVerifyMachining(nId, nRes)
Mach.m_nInterf = Mach.m_nInterf Or nRes
Next
Else
Mach.m_nInterf = FMI_TYPE.NONE
End If
' la imposto come lavorazione corrente
EgtSetCurrMachining(nOperId)
' inversione
EgtGetMachiningParam(MCH_MP.INVERT, Mach.m_bInvert)
' recupero l'angolo di fianco
EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
' recupero allungamento iniziale e finale (negativi vicino ad angoli interni)
Dim dStartAddLen As Double = -10
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dStartAddLen)
Dim dEndAddLen As Double = -10
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dEndAddLen)
' recupero tipo entità, angolo con entità precedente e successiva, lunghezze libere iniziale e finale
Mach.m_bIsLine = True
Mach.m_dPrevAng = 0
Mach.m_dNextAng = 0
Mach.m_dStartFreeLen = FREELEN_INF + 1
Mach.m_dEndFreeLen = FREELEN_INF + 1
Dim nEntId, nSub As Integer
If EgtGetMachiningGeometry(0, nEntId, nSub) Then
' EgtGetType( nEntId) = GDB_TY.CRV_ARC OrElse
If EgtGetType(nEntId) = GDB_TY.CRV_COMPO Then Mach.m_bIsLine = False
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_PREVANG, INFO_NEXTANG), Mach.m_dPrevAng)
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_NEXTANG, INFO_PREVANG), Mach.m_dNextAng)
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_START_FREELEN, INFO_END_FREELEN), Mach.m_dStartFreeLen)
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_END_FREELEN, INFO_START_FREELEN), Mach.m_dEndFreeLen)
Mach.m_bEnableInvert = GetEnableInvert(nEntId)
EgtMidVector(nEntId, GDB_ID.ROOT, Mach.m_vtDir)
If Mach.m_bInvert Then Mach.m_vtDir = -Mach.m_vtDir
Mach.m_nEntId = nEntId
EgtGetInfo(nOperId, "ManageLeadInOnIntCorner", Mach.m_bMngLeadInOnIntCorner)
End If
' verifico se trasformabile in un taglio di separazione (almeno da un lato)
If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_sLay = NAME_OUTLOOP And (Mach.m_nInterf And FMI_TYPE.RM) = 0 Then
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
Dim bIn As Boolean = False
Dim bOut As Boolean = False
CanExtendSides(Mach, bIn, bOut)
Mach.m_bCanStartAll = ((dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LI_OK) <> 0) And
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn
Mach.m_bCanEndAll = ((dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LO_OK) <> 0) And
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut
If nRes = 0 Then
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
End If
ElseIf (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_sLay = NAME_OUTLOOP And
(Mach.m_nInterf = FMI_TYPE.LI Or Mach.m_nInterf = FMI_TYPE.LO Or Mach.m_nInterf = FMI_TYPE.RM) Then
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
Dim bIn As Boolean = False
Dim bOut As Boolean = False
CanExtendSides(Mach, bIn, bOut)
' And (nRes And CAR_RES.LI_OK) <> 0 : da aggiungere
Mach.m_bCanStartAll = (dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn And
Mach.m_nInterf <> FMI_TYPE.LI
' And (nRes And CAR_RES.LO_OK) <> 0 : da aggiungere come sopra
Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut And
Mach.m_nInterf <> FMI_TYPE.LO
If nRes = 0 Then
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
End If
End If
' se trasformabile in taglio di separazione, verifico se lo è
If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
EgtSetCurrMachining(nOperId)
Dim nLiType As Integer
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiType)
Dim nLoType As Integer
EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoType)
Mach.m_bStartAll = (nLiType = MCH_SAW_LI.EXT_CENT Or nLiType = MCH_SAW_LI.EXT_OUT)
Mach.m_bEndAll = (nLoType = MCH_SAW_LO.EXT_CENT Or nLoType = MCH_SAW_LO.EXT_OUT)
Else
Mach.m_bStartAll = False
Mach.m_bEndAll = False
End If
' Waterjet
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then
Mach.m_nInterf = FMI_TYPE.NONE
' recupero l'angolo di fianco
EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
Mach.m_bCanStartAll = False
Mach.m_bCanEndAll = False
Mach.m_bStartAll = False
Mach.m_bEndAll = False
' Forature e fresature
Else
Mach.m_nInterf = FMI_TYPE.NONE
Mach.m_dSideAng = 0
Mach.m_bCanStartAll = False
Mach.m_bCanEndAll = False
Mach.m_bStartAll = False
Mach.m_bEndAll = False
End If
' abilitazione
Mach.m_bEnabled = Not EgtExistsInfo(nOperId, INFO_MCH_USER_OFF)
' pausa
Mach.m_bPause = GetPause(nOperId)
Else
' altrimenti la disattivo
EgtSetOperationMode(nOperId, False)
bOk = False
End If
Return bOk
End Function
Private Function CanExtendSides(CurrMach As SplitMach, ByRef bIn As Boolean, ByRef bOut As Boolean) As Boolean
If CurrMach.m_dPrevAng < -EPS_ANG_SMALL And CurrMach.m_dNextAng > EPS_ANG_SMALL Then
' Posso estendere SOLO l'uscita
@@ -283,8 +426,19 @@ Public Module SplitAuto
ElseIf Math.Abs(dSideAng) > EPS_ANG_SMALL Then
colCut = COL_MCH_CUT_ANG()
Else
colCut = COL_MCH_CUT()
' Se macchina con cambio utensile di lama
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
Dim sSawing As String = String.Empty, sSaw As String = String.Empty
m_MainWindow.m_CadCutPageUC.m_SplitPage.GetCurrSawingAndSaw(nOperId, sSawing, sSaw)
' Setto l'utensile corrente
EgtTdbSetCurrTool(sSaw)
' recupero il colore della lavorazione direttamente dall'utensile
colCut = Utility.GetColorPV()
Else
colCut = COL_MCH_CUT()
End If
End If
For Each nId In vCutId
EgtSetColor(nId, colCut)
Next
+57 -32
View File
@@ -1,10 +1,10 @@
<UserControl x:Class="SplitPageUC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="SplitPageUC_Initialized">
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="SplitPageUC_Initialized">
<!-- Definizione della SplitPage -->
<Grid Name="SplitPageGrid" >
@@ -64,24 +64,49 @@
</Grid.RowDefinitions>
<ListBox Name="MachiningLsBx" Grid.Row="1"
SelectionMode="Extended">
SelectionMode="Extended">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}">
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_CurrProjSummeryTextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding bIsActive}" Value="False">
<Setter Property="TextDecorations" Value="Strikethrough"/>
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
</DataTrigger>
<DataTrigger Binding="{Binding bIsActive}" Value="True">
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<Grid Width="210">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.8*"/>
<ColumnDefinition Width="1.2*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}">
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_CurrProjSummeryTextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding bIsActive}" Value="False">
<Setter Property="TextDecorations" Value="Strikethrough"/>
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
</DataTrigger>
<DataTrigger Binding="{Binding bIsActive}" Value="True">
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<TextBlock Grid.Column="1" Text="{Binding TCPos}">
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_CurrProjSummeryTextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding bIsActive}" Value="False">
<Setter Property="TextDecorations" Value="Strikethrough"/>
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
</DataTrigger>
<DataTrigger Binding="{Binding bIsActive}" Value="True">
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<Rectangle Grid.Column="2"
Visibility="{Binding MachiningTCPosVisibility}"
Style="{DynamicResource Rect_SplitPage}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
@@ -100,14 +125,14 @@
<Button Name="MoveDownBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconButton}">
<Image Source="{DynamicResource DownArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
<ToggleButton Name="LayNbArrTgBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowIconToggleButton}"
Height="25" Width="25">
<Image Name="LayNbArrImg"
HorizontalAlignment="Center"
VerticalAlignment="Center" Stretch="Uniform"/>
<ToggleButton Name="LayNbArrTgBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowIconToggleButton}"
Height="25" Width="25">
<Image Name="LayNbArrImg"
HorizontalAlignment="Center"
VerticalAlignment="Center" Stretch="Uniform"/>
</ToggleButton>
</Grid>
</Grid>
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
@@ -138,7 +163,7 @@
<Button Name="CutBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowIconButton}">
<Image Source="{DynamicResource Allunga-AccorciaImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
<Button Name="CutStartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
<Image Source="{DynamicResource Inizio-Allunga-AccorciaImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
@@ -152,17 +177,17 @@
<Image Source="{DynamicResource PonticelliWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</ToggleButton>
<!--solo per macchine con lavorazioni Waterjet-->
<!--solo per macchine con lavorazioni Waterjet-->
<Button Name="QualityWJBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
<Image Source="{DynamicResource QualityWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
<!-- solo per macchine con lavorazioni Waterjet -->
<ToggleButton Name="BridgesDeleteWJBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource PonticelliDeleteWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</ToggleButton>
</Grid>
+242 -24
View File
@@ -1,6 +1,5 @@
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports System.Drawing
Imports EgtUILib
Public Class SplitPageUC
@@ -94,8 +93,8 @@ Public Class SplitPageUC
ModifyBtn.Content = EgtMsg(MSG_SPLITPAGEUC + 17) ' Modifica
AutoBtn.Content = EgtMsg(MSG_SPLITPAGEUC + 18) ' Auto
RestartBtn.Content = EgtMsg(MSG_SPLITPAGEUC + 19) ' Restart
BridgesWJBtn.ToolTip = "Bridges"
BridgesDeleteWJBtn.ToolTip = "Remove bridges"
BridgesWJBtn.ToolTip = EgtMsg(91214) ' Bridges
BridgesDeleteWJBtn.ToolTip = EgtMsg(91215) ' Remove bridges
End Sub
Private Sub SplitPageUC_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
@@ -206,28 +205,54 @@ Public Class SplitPageUC
sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString(Mach.m_dSideAng, 2) & "°"
End If
If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.SAWING))
AddItemToList(i, Mach, sText, MCH_OY.SAWING)
ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura
Dim sText As String = EgtMsg(90792) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.DRILLING))
'm_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.DRILLING))
AddItemToList(i, Mach, sText, MCH_OY.DRILLING)
ElseIf Mach.m_nType = MCH_OY.MILLING Then ' Fresatura
Dim sText As String = EgtMsg(90793) & " " & i.ToString()
If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.MILLING))
'm_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.MILLING))
AddItemToList(i, Mach, sText, MCH_OY.MILLING)
ElseIf Mach.m_nType = MCH_OY.POCKETING Then ' Svuotatura
Dim sText As String = EgtMsg(90796) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.POCKETING))
'm_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.POCKETING))
AddItemToList(i, Mach, sText, MCH_OY.POCKETING)
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then ' Waterjet
Dim sText As String = EgtMsg(90797) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.WATERJETTING))
'm_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.WATERJETTING))
AddItemToList(i, Mach, sText, MCH_OY.WATERJETTING)
End If
Next
End Sub
Private Sub AddItemToList(i As Integer, Mach As SplitMach, sText As String, nMach As Integer)
Dim sTCPos As String = String.Empty
' Visualizzo la posizione utensile solo se configurata
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
Dim sSawing As String = String.Empty, sSaw As String = String.Empty
GetCurrSawingAndSaw(Mach.m_nId, sSawing, sSaw)
' Verifico che sia montata su un portautensile
EgtTdbSetCurrTool(sSaw)
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sTCPos)
End If
' Se TCPos non trovato
If String.IsNullOrEmpty(sTCPos) Then
' Inserisco solo nome lavorazione
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, nMach))
Else
' altrimenti se esiste una lama impostata nell'if sopra
Dim sawColor As Color3d = Utility.GetColorPV()
Dim tmpSawColor As System.Windows.Media.Color = System.Windows.Media.Color.FromRgb(sawColor.R, sawColor.G, sawColor.B)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, nMach, sTCPos, New SolidColorBrush(tmpSawColor)))
End If
End Sub
#Region "BRIDGE"
Private Sub OnMyMouseDownSceneBridges(sender As Object, e As System.Windows.Forms.MouseEventArgs,
@@ -252,7 +277,7 @@ Public Class SplitPageUC
' recupero il nome del Layer
EgtGetName(nIdParent, sLayer)
' solo se il nome del layer è quello associato ad un lato esterno allora procedo con l'evidenziazione
If sLayer = NAME_OUTLOOP Then
If sLayer = NAME_OUTLOOP Or sLayer = "WjRectification" Then
If (EgtGetType(nIdMy) = GDB_TY.CRV_ARC OrElse EgtGetType(nIdMy) = GDB_TY.CRV_COMPO OrElse EgtGetType(nIdMy) = GDB_TY.CRV_LINE) AndAlso VerifySideIsAcceptable(nIdMy) Then
If m_nIdSelectedSideWJ <> GDB_ID.NULL Or m_nIdSelectedSideWJ = nIdMy Then
EgtDeselectObj(m_nIdSelectedSideWJ)
@@ -285,7 +310,7 @@ Public Class SplitPageUC
m_nIdSelectedSideWJ = GDB_ID.NULL
nIdParentPart = GDB_ID.NULL
m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage("Bridge intersects part")
m_CurrProjPage.SetWarningMessage(EgtMsg(91216)) ' Bridge intersects part
Return
End If
End If
@@ -376,21 +401,22 @@ Public Class SplitPageUC
Private Function VerifySideIsAcceptable(nMyId As Integer) As Boolean
Dim dVal As Double = 0
' verifico che l'entità selezionata non contenga questi parametri
If EgtGetInfo(nMyId, INFO_SIDE_ANGLE2, dVal) Then
If dVal <> 0 Then
Return False
End If
End If
' If EgtGetInfo(nMyId, INFO_SIDE_ANGLE2, dVal) Then
' If dVal <> 0 Then
' Return False
' End If
' End If
If EgtGetInfo(nMyId, INFO_SIDE_ANGLE, dVal) Then
If dVal <> 0 Then
Return False
End If
End If
If EgtGetInfo(nMyId, INFO_ORIG_SIDE_ANGLE, dVal) Then
If dVal <> 0 Then
Return False
End If
End If
' ' Non bastano i controlli sopra...?
' If EgtGetInfo(nMyId, INFO_ORIG_SIDE_ANGLE, dVal) Then
' If dVal <> 0 Then
' Return False
' End If
' End If
' altrimenti l'entità è accettabile
Return True
End Function
@@ -470,6 +496,39 @@ Public Class SplitPageUC
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse m_bShow Then Return
If e.Button = Windows.Forms.MouseButtons.Right And m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
Dim nCurrCtx As Integer = EgtGetCurrentContext()
Dim nSel1 As Integer = GDB_ID.NULL
Dim nPvId As Integer = GDB_ID.NULL
Dim nMchId As Integer = GDB_ID.NULL
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel1)
Dim nId1 As Integer = EgtGetFirstObjInSelWin()
While nId1 <> GDB_ID.NULL
' Verifico sia un attacco o uscita di taglio con lama
Dim nType As Integer = 0
Dim sName As String = ""
EgtGetName(nId1, sName)
nPvId = EgtGetParent(EgtGetParent(nId1))
nMchId = GDB_ID.NULL
If String.Compare(sName, NAME_PV_PRECUT) = 0 Or String.Compare(sName, NAME_PV_POSTCUT) = 0 Or String.Compare(sName, NAME_PV_CUT) = 0 Then
If EgtGetInfo(nPvId, "MId", nMchId) Then
Exit While
End If
End If
nId1 = EgtGetNextObjInSelWin()
End While
If nMchId = GDB_ID.NULL Then
GetCurrSelection()
Return
End If
ChangeMachinig(nMchId)
GetCurrSelection()
Return
End If
' Si può selezionare solo con il tasto sinistro e se stato NULL
If e.Button <> Windows.Forms.MouseButtons.Left Or
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
@@ -489,6 +548,7 @@ Public Class SplitPageUC
If m_nIdSelectedPartWJ_Srt <> GDB_ID.NULL And m_nIdSelectedPartWJ_End <> GDB_ID.NULL Then
DeselectWJBridgesPart()
End If
GetCurrSelection()
Return
End If
@@ -497,6 +557,7 @@ Public Class SplitPageUC
OnMyMouseDownSceneBridgesDelete(sender, e)
' aggiorno la visualizzazione delle lavorazioni e la lista
RefreshMachList()
GetCurrSelection()
Return
End If
@@ -584,6 +645,102 @@ Public Class SplitPageUC
End If
MachiningLsBx.SelectedIndex = -1
End If
GetCurrSelection()
End Sub
Private Sub ChangeMachinig(nMchId As Integer)
' Imposto la lavorazione corrente
Dim sSawing As String = String.Empty
Dim EntId As Integer = GDB_ID.NULL
Dim SubEntId As Integer = GDB_ID.NULL
EgtSetCurrMachining(nMchId)
If Not EgtGetMachiningGeometry(0, EntId, SubEntId) Then Return
' verifico se la lavorazione selezionata ha un angolo di inclinazione
Dim dSideAng As Double = 0.0
EgtGetMachiningParam(MCH_MP.SIDEANGLE, dSideAng)
Dim sDefMach As String = DEF_MACHINING
If Math.Abs(dSideAng) > 0 Then
sDefMach = DEF_MACHINING_TILTED
End If
' Recupero il nome della lavorazione
EgtGetInfo(EntId, sDefMach, sSawing)
' Apro pagina di selezione della lavorazione
Dim m_ChangeToolPage = New ChangeToolWD(m_MainWindow)
' Imposto nome lavorazione corrente
m_ChangeToolPage.CurrSawing = sSawing
' apro la finestra per la selezione delle lavorazioni
m_ChangeToolPage.ShowDialog()
' se seleziono "Ok" allora resetto tutte le lavorazioni del progetto
If m_ChangeToolPage.DialogResult Then
EgtSetInfo(EntId, sDefMach, m_ChangeToolPage.NewSawing)
Dim Index As Integer = 0
For Index = 0 To m_MachiningList.Count() - 1
If m_MachiningList(Index).m_nId = nMchId Then
Exit For
End If
Next
Dim nNewMchId As Integer = -1
CamAuto.AddSawMachining(nMchId, nNewMchId)
' Elimino la numerazione e la freccia
EgtErase(m_MachiningList(Index).m_nArrId)
EgtErase(m_MachiningList(Index).m_nNbrId)
Dim Mach As New SplitMach
' Sostituisco la vecchia lavorazione con la nuova
If SplitAuto.CreateMach(Mach, nNewMchId) Then
' Assegno la lavorazione alla lista
m_MachiningList(Index) = Mach
' Riassegno la numerazione
NumberDirectionMachining(Index)
m_ItemList(Index).TCPos = m_ChangeToolPage.TCPos
' Recupero il colore della lavorazione
Dim EgtCol As Color3d = m_ChangeToolPage.EgtColor
Dim tmpSawColor As System.Windows.Media.Color = System.Windows.Media.Color.FromRgb(EgtCol.R, EgtCol.G, EgtCol.B)
m_ItemList(Index).SawColor = New SolidColorBrush(tmpSawColor)
m_ItemList(Index).MachiningTCPosVisibility = Visibility.Visible
EgtDraw()
End If
End If
End Sub
Public Sub GetCurrSawingAndSaw(ByVal nMchId As Integer, ByRef sSawing As String, ByRef sNameTool As String)
Dim EntId As Integer = GDB_ID.NULL
Dim SubEntId As Integer = GDB_ID.NULL
EgtSetCurrMachining(nMchId)
If Not EgtGetMachiningGeometry(0, EntId, SubEntId) Then Return
' verifico se la lavorazione selezionata ha un angolo di inclinazione
Dim dSideAng As Double = 0.0
EgtGetMachiningParam(MCH_MP.SIDEANGLE, dSideAng)
Dim sDefMach As String = DEF_MACHINING
If Math.Abs(dSideAng) > EPS_ANG_SMALL Then
sDefMach = DEF_MACHINING_TILTED
End If
' Eventualmente recupero il nome della lavorazione
EgtGetInfo(EntId, sDefMach, sSawing)
If String.IsNullOrEmpty(sSawing) Then sSawing = m_MainWindow.m_CurrentMachine.sCurrSawing
' Imposto la lavorazione corrente
EgtMdbSetCurrMachining(sSawing)
' Recupero il nome dell'utensile della lavorazione
EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, sNameTool)
End Sub
' Dato l'id della lavorazione nel grezzo colora il taglio del colore assegnato
Public Sub ColorsCut(nOperId As Integer, EgtCol As Color3d)
' Recupero la lavorazione
Dim nPVRawId As Integer = EgtGetFirstNameInGroup(nOperId, "PV")
Dim nPVPartId As Integer = GDB_ID.NULL
EgtGetInfo(nPVRawId, "PvId", nPVPartId)
Dim nId2 As Integer = EgtGetFirstInGroup(EgtGetFirstInGroup(nPVPartId))
Dim sName As String = ""
EgtGetName(nId2, sName)
While nId2 <> GDB_ID.NULL
If String.Compare(sName, NAME_PV_CUT) = 0 Then
EgtSetColor(nId2, EgtCol)
Exit While
End If
nId2 = EgtGetNext(nId2)
End While
End Sub
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseMoveScene
@@ -703,7 +860,7 @@ Public Class SplitPageUC
End Sub
Private Sub AddTopText(ByRef sName As String)
sName &= " Top"
sName &= EgtMsg(91217) ' Top
End Sub
Private Sub RemovePauseText(ByRef sName As String)
@@ -764,6 +921,15 @@ Public Class SplitPageUC
OnOffCut()
End Sub
Private Sub MachiningLsBx_MouseRightButtonDown(sender As Object, e As MouseEventArgs) Handles MachiningLsBx.PreviewMouseRightButtonDown
' se disabilitata la modifica allora esco
If m_bShow Then Return
If m_IsCtrlKeyDown Or m_IsShiftKeyDown Then Return
Dim Index As Integer = MachiningLsBx.SelectedIndex
If Index = -1 Then Return
ChangeMachinig(m_MachiningList(Index).m_nId)
End Sub
Private Sub MoveUpBtn_Click(sender As Object, e As RoutedEventArgs) Handles MoveUpBtn.Click
MoveItem(-1)
End Sub
@@ -780,12 +946,12 @@ Public Class SplitPageUC
Private Sub SetLayNbArrTgBtn_Click()
If LayNbArrTgBtn.IsChecked Then
StatusOffNumbArrow(GDB_ST.ON_)
LayNbArrTgBtn.ToolTip = "Hide"
LayNbArrTgBtn.ToolTip = EgtMsg(91218) ' Hide
Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOn.png")
LayNbArrImg.Source = Img
Else
StatusOffNumbArrow(GDB_ST.OFF)
LayNbArrTgBtn.ToolTip = "Show"
LayNbArrTgBtn.ToolTip = EgtMsg(91219) ' Show
Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOff.png")
LayNbArrImg.Source = Img
End If
@@ -2269,7 +2435,7 @@ Public Class SplitPageUC
' eventualmente stampo messaggio
If Not m_bAreHomogeneous Then
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("Lavorazioni non omogenee")
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(91220)) ' Lavorazioni non omogenee
Else
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
End If
@@ -2666,6 +2832,10 @@ Public Class SplitPageUC
Private m_sName As String
Private m_bIsActive As Boolean
Private m_nType As Integer
' Posizione porta utensile (parametro non obbligatorio)
Private m_sTCPos As String = ""
Private m_cSawColor As SolidColorBrush
Private m_bMachiningTCPosVisibility As Visibility = Visibility.Hidden
Private m_IsSelected As Boolean
@@ -2690,6 +2860,31 @@ Public Class SplitPageUC
End Set
End Property
'!!!!!!!!!!!!!!!!!!!!
Public Property TCPos As String
Get
Return m_sTCPos
End Get
Set(value As String)
If value <> m_sTCPos Then
m_sTCPos = value
NotifyPropertyChanged("TCPos")
End If
End Set
End Property
'!!!!!!!!!!!!!!!!!!!!
Public Property SawColor As SolidColorBrush
Get
Return m_cSawColor
End Get
Set(value As SolidColorBrush)
m_cSawColor = value
NotifyPropertyChanged("SawColor")
End Set
End Property
Public Property bIsActive As Boolean
Get
Return m_bIsActive
@@ -2720,11 +2915,34 @@ Public Class SplitPageUC
End Set
End Property
Public Property MachiningTCPosVisibility As Visibility
Get
Return m_bMachiningTCPosVisibility
End Get
Set(value As Visibility)
If value <> m_bMachiningTCPosVisibility Then
m_bMachiningTCPosVisibility = value
NotifyPropertyChanged("MachiningTCPosVisibility")
End If
End Set
End Property
Sub New(Name As String, Ind As Integer, bIsActive As Boolean, nType As Integer)
Me.m_sName = Name
Me.m_nInd = Ind
Me.m_bIsActive = bIsActive
Me.m_nType = nType
Me.m_bMachiningTCPosVisibility = Visibility.Hidden
End Sub
Sub New(Name As String, Ind As Integer, bIsActive As Boolean, nType As Integer, sTCPos As String, cSawColor As SolidColorBrush)
Me.m_sName = Name
Me.m_nInd = Ind
Me.m_bIsActive = bIsActive
Me.m_nType = nType
Me.m_sTCPos = sTCPos
Me.m_cSawColor = cSawColor
Me.m_bMachiningTCPosVisibility = Visibility.Visible
End Sub
Public Sub NotifyPropertyChanged(propName As String)
+5
View File
@@ -112,6 +112,7 @@ Module ConstGen
Public Const MAIN_TAB As String = "MainTab"
Public Const SECOND_TAB As String = "2ndTab"
Public Const THIRD_TAB As String = "3rdTab"
Public Const FORTH_TAB As String = "4thTab"
' Nome tavola ausiliaria per spostamento finale pezzi
Public Const AUX_TAB As String = "AuxTab"
@@ -324,6 +325,10 @@ Module ConstGen
Public Const INFO_START As String = "Start"
' Nome dei tagli diretti inseriti in fase di Splitting
Public Const SPLIT_CUT As String = "SplitCut"
' Forzo specifica lavorazione
Public Const DEF_MACHINING As String = "Def_Machining"
' Forzo specifica lavorazione solo per tagli con inclinazione
Public Const DEF_MACHINING_TILTED As String = "Def_Machining_Tilted"
' Nome di pezzo che è una cornice
Public Const NAME_FRAME As String = "Frame"
+3
View File
@@ -237,10 +237,13 @@ Module ConstIni
Public Const K_OTHERREFTABX As String = "OtherRefTabX"
Public Const K_OTHERREFTABY As String = "OtherRefTabY"
Public Const K_OTHERREFTABPOS As String = "OtherRefTabPos"
Public Const K_REFTAB As String = "RefTab"
Public Const K_CURRENTREFTAB As String = "CurrRefTab"
Public Const S_RAWMOVE As String = "RawMove"
Public Const K_RAWSTEP As String = "Step"
Public Const K_EXTRASTEP As String = "ExtraStep"
Public Const K_RAWROTATION As String = "Rotation"
Public Const K_PERPENDICULAR As String = "Perpendicular"
+4
View File
@@ -173,6 +173,7 @@
Public Const K_ADDITIONALTABLE As String = "AdditionalTable"
Public Const K_TAB2_ADDITIONALTABLE As String = "Tab2AdditionalTable"
Public Const K_TAB3_ADDITIONALTABLE As String = "Tab3AdditionalTable"
Public Const K_TAB4_ADDITIONALTABLE As String = "Tab4AdditionalTable"
Public Const K_CENTER_RAW_ONX As String = "CenterRawOnX"
Public Const K_CHANGETABWD As String = "ChangeTabWD"
@@ -313,6 +314,7 @@
Public Const S_MACH_MACH As String = "Mach"
Public Const K_CURRSAW As String = "CurrSaw"
Public Const K_CURRSAWTILTED As String = "CurrSawTilted"
Public Const K_CURRDRILL As String = "CurrDrill"
Public Const K_CURRMILL As String = "CurrMill"
Public Const K_CURRMILLNOTIP As String = "CurrMillNoTip"
@@ -320,6 +322,8 @@
Public Const K_CURRDRIPDRILL As String = "CurrDripDrill"
Public Const K_CURRWATERJET As String = "CurrWaterJet"
Public Const K_CURRSAWING As String = "CurrSawing"
Public Const K_CURRSAWINGTILTED As String = "CurrSawingTilted"
Public Const K_APPLYSAWINGTILTED As String = "ApplySawingTilted"
Public Const K_CURRDRILLING As String = "CurrDrilling"
Public Const K_CURRMILLING As String = "CurrMilling"
Public Const K_CURRPOCKETING As String = "CurrPocketing"
-1
View File
@@ -53,7 +53,6 @@ Public Class ControlsDirectCutUC
FlatteningCut
Polishing
CopyTemplate
SawTest
SingleCutAuto
SingleDrill
Squaring
+2 -2
View File
@@ -179,11 +179,11 @@ Public Class DirectCutPageUC
Case K_REMOTE
RemoteBtn.Visibility = Visibility.Visible
RemoteBtn.Foreground = Brushes.White
RemoteBtn.Content = "Remote"
RemoteBtn.Content = EgtMsg(90262) 'Remote
Case K_PARKING
ParkingBtn.Visibility = Visibility.Visible
ParkingBtn.Foreground = Brushes.White
ParkingBtn.ToolTip = "Parking"
ParkingBtn.ToolTip = EgtMsg(90263) 'Parking
End Select
Next
End Sub
+12 -7
View File
@@ -1,6 +1,7 @@
Imports System.Reflection
Imports EgtUILib
Imports EgtUILib.EgtInterface
Imports OmagCUT.MainWindow
Public Class FlatteningCut
@@ -11,6 +12,8 @@ Public Class FlatteningCut
Private m_bActive As Boolean = False
' Flag di simulazione in corso
Private m_bSimul As Boolean = False
' Definizione del taglio diretto di questa pagina
Private Const FLATTENING As String = "Flattening"
' Origine tavola e dati grezzo
Private m_bRawOk As Boolean = False
@@ -100,15 +103,15 @@ Public Class FlatteningCut
DirectionTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 15)
WidthTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 26)
OverlapTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 27)
ZReleasedTxBl.Text = "Z Svincolo"
ZReleasedTxBl.Text = EgtMsg(91235) 'Z Svincolo
SideTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 23)
RotLockTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 29)
ChainedPathTxBl.Text = "Chained path"
ChainedPathTxBl.Text = EgtMsg(91236) 'Chained path
SimulBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 1)
OkBtn.ToolTip = EgtMsg(MSG_DIRECTCUTPAGEUC + 30)
' tipo di utensile in uso per la lavorazione
m_ToolsArray(TOOL.SAW) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24)
m_ToolsArray(TOOL.MILL) = "Mill"
m_ToolsArray(TOOL.MILL) = EgtMsg(91237) 'Mill
SelToolCmBx.ItemsSource = m_ToolsArray
' Carico i dati dell'ultimo taglio
m_dDepth = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_DEPTH, m_dDepth, m_MainWindow.GetIniFile())
@@ -725,7 +728,8 @@ Public Class FlatteningCut
Dim ptStart As Point3d = m_ptTipP1
ptStart.z = 0
Dim nCutId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, m_dLen)
EgtSetInfo(nCutId, INFO_DIRECTCUT, 1)
' Inidico che è un taglio Diretto di tipo Flattening
EgtSetInfo(nCutId, INFO_DIRECTCUT, FlagDirectCuts.Flattening)
' Imposto affondamento e angolo di fianco sul taglio
EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth)
If (m_nTool = TOOL.MILL) Then
@@ -844,8 +848,8 @@ Public Class FlatteningCut
End If
End If
End If
CutsList.Add(nCut2Id)
End If
CutsList.Add(nCut2Id)
End If
' ----------------------- CREO SEGMENTI PER CONCATENAMENTO CURVE -----------------------
Next
@@ -876,7 +880,8 @@ Public Class FlatteningCut
Dim ptNear As Point3d
EgtStartPoint(CutsList(0), ptNear)
Dim IdJointCurv As Integer = EgtCreateCurveCompoByChain(nLayerId, CutsList.ToArray, ptNear, True)
EgtSetInfo(IdJointCurv, INFO_DIRECTCUT, 1)
' Inidico che è un taglio Diretto di tipo Flattening
EgtSetInfo(IdJointCurv, INFO_DIRECTCUT, FlagDirectCuts.Flattening)
EgtSetInfo(IdJointCurv, INFO_STEP_TYPE, m_nMachType)
EgtSetInfo(IdJointCurv, INFO_WIDTH, dThick)
' Se unisco il percorso devo per forza usare la fresa!
+41 -38
View File
@@ -1,4 +1,5 @@
Imports EgtUILib
Imports OmagCUT.MainWindow
Public Class GridCut
' Riferimenti a pagine
@@ -78,21 +79,21 @@ Public Class GridCut
SimulBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 1)
OkBtn.ToolTip = EgtMsg(MSG_DIRECTCUTPAGEUC + 30)
' Carico i dati dell'ultimo taglio
m_dDepth = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_DEPTH, m_dDepth, m_MainWindow.GetIniFile())
m_dAngO = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_ANGH, m_dAngO, m_MainWindow.GetIniFile())
m_dAngV = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_ANGV, m_dAngV, m_MainWindow.GetIniFile())
m_nNumX = GetPrivateProfileInt( S_DIRECTCUTS, K_DC_GRID_NUMX, m_nNumX, m_MainWindow.GetIniFile())
m_dDimX = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_DIMX, m_dDimX, m_MainWindow.GetIniFile())
m_nNumY = GetPrivateProfileInt( S_DIRECTCUTS, K_DC_GRID_NUMY, m_nNumY, m_MainWindow.GetIniFile())
m_dDepth = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_GRID_DEPTH, m_dDepth, m_MainWindow.GetIniFile())
m_dAngO = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_GRID_ANGH, m_dAngO, m_MainWindow.GetIniFile())
m_dAngV = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_GRID_ANGV, m_dAngV, m_MainWindow.GetIniFile())
m_nNumX = GetPrivateProfileInt(S_DIRECTCUTS, K_DC_GRID_NUMX, m_nNumX, m_MainWindow.GetIniFile())
m_dDimX = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_GRID_DIMX, m_dDimX, m_MainWindow.GetIniFile())
m_nNumY = GetPrivateProfileInt(S_DIRECTCUTS, K_DC_GRID_NUMY, m_nNumY, m_MainWindow.GetIniFile())
m_dDimY = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_GRID_DIMY, m_dDimY, m_MainWindow.GetIniFile())
' --- INIZIO GESTIONE SPECIALE --- per macchina sinistrorsa
m_bSawTh = (GetPrivateProfileInt(S_DIRECTCUTS, K_DC_SING_SAWTH, 0, m_MainWindow.GetIniFile()) <> 0)
' --- FINE GESTIONE SPECIALE --- per macchina sinistrorsa
m_bHeadSide = ( GetPrivateProfileInt( S_DIRECTCUTS, K_DC_GRID_HEADSIDE, 0, m_MainWindow.GetIniFile()) <> 0)
m_ptTipP1.x = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_POSX, m_ptTipP1.x, m_MainWindow.GetIniFile())
m_ptTipP1.y = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_POSY, m_ptTipP1.y, m_MainWindow.GetIniFile())
m_bHeadSide = (GetPrivateProfileInt(S_DIRECTCUTS, K_DC_GRID_HEADSIDE, 0, m_MainWindow.GetIniFile()) <> 0)
m_ptTipP1.x = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_GRID_POSX, m_ptTipP1.x, m_MainWindow.GetIniFile())
m_ptTipP1.y = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_GRID_POSY, m_ptTipP1.y, m_MainWindow.GetIniFile())
End Sub
Private Sub GridCut_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
@@ -131,7 +132,7 @@ Public Class GridCut
m_bPointP1Ok = False
m_bPointP2Ok = False
' Inizializzo primo punto acquisito dal disegno
m_ptPrev = m_ptTipP1 + ( m_ptTabOri - Point3d.ORIG())
m_ptPrev = m_ptTipP1 + (m_ptTabOri - Point3d.ORIG())
m_ptPrev.z = m_ptRawMax.z
' Disegno crocetta che indica il punto acquisito
CreateCross(m_nTempLay, m_ptPrev)
@@ -140,13 +141,13 @@ Public Class GridCut
SetCoordVisibility(True)
ShowCoord()
' Assegno parametri di lavorazione
DepthTxBx.Text = LenToString( m_dDepth, 1)
DirectionTxBx.Text = DoubleToString( m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
SideAngleTxBx.Text = DoubleToString( m_dAngV, 2)
DepthTxBx.Text = LenToString(m_dDepth, 1)
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
SideAngleTxBx.Text = DoubleToString(m_dAngV, 2)
NumPzXTxBx.Text = m_nNumX.ToString()
DimPzXTxBx.Text = LenToString( m_dDimX, 1)
DimPzXTxBx.Text = LenToString(m_dDimX, 1)
NumPzYTxBx.Text = m_nNumY.ToString()
DimPzYTxBx.Text = LenToString( m_dDimY, 1)
DimPzYTxBx.Text = LenToString(m_dDimY, 1)
SideChBx.IsChecked = m_bHeadSide
' --- INIZIO GESTIONE SPECIALE --- per macchina sinistrorsa
@@ -167,16 +168,16 @@ Public Class GridCut
Friend Sub GridCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
' Salvo i dati correnti
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_ANGH, DoubleToString( m_dAngO, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_ANGV, DoubleToString( m_dAngV, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_NUMX, m_nNumX.ToString(), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DIMX, DoubleToString( m_dDimX, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_NUMY, m_nNumY.ToString(), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DIMY, DoubleToString( m_dDimY, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_HEADSIDE, If( m_bHeadSide, "1", "0"), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_POSX, DoubleToString( m_ptTipP1.x, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_POSY, DoubleToString( m_ptTipP1.y, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_DEPTH, DoubleToString(m_dDepth, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_ANGH, DoubleToString(m_dAngO, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_ANGV, DoubleToString(m_dAngV, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_NUMX, m_nNumX.ToString(), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_DIMX, DoubleToString(m_dDimX, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_NUMY, m_nNumY.ToString(), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_DIMY, DoubleToString(m_dDimY, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_HEADSIDE, If(m_bHeadSide, "1", "0"), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_POSX, DoubleToString(m_ptTipP1.x, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_DIRECTCUTS, K_DC_GRID_POSY, DoubleToString(m_ptTipP1.y, 2), m_MainWindow.GetIniFile())
' Se non vado in simulazione
If Not m_bSimul Then
' Dichiaro sottopagina da non riattivare
@@ -315,7 +316,7 @@ Public Class GridCut
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
SideAngleTxBx.Text = DoubleToString(m_dAngV, 2)
' Altrimenti punto da click di mouse
' Altrimenti punto da click di mouse
Else
' Assegno punto selezionato nel disegno a m_ptTipP1
m_ptTipP1 = m_ptPrev
@@ -405,7 +406,7 @@ Public Class GridCut
m_dAngV = 90 - dTAngV
SideAngleTxBx.Text = DoubleToString(m_dAngV, 2)
' Altrimenti punto da click di mouse
' Altrimenti punto da click di mouse
Else
' Assegno punto selezionato nel disegno a m_ptTipP2
m_ptTipP2 = m_ptPrev
@@ -544,9 +545,9 @@ Public Class GridCut
m_CurrProjPage.SetWarningMessage("Trial Version")
#Else
' Verifico non sia versione Ufficio
If m_MainWindow.GetKeyOption( MainWindow.KEY_OPT.OFFICE_TYPE) Then
m_CurrProjPage.SetWarningMessage( "Office Version")
Return
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
m_CurrProjPage.SetWarningMessage("Office Version")
Return
End If
' Verifico ci sia un taglio valido
If Not m_bCutOk Then Return
@@ -632,9 +633,9 @@ Public Class GridCut
Private Function MultiplyCut(nLayerId As Integer) As Boolean
' Recupero lo spessore del taglio della lama o del waterjet correntemente attiva
Dim nType As Integer = 0
EgtTdbGetCurrToolParam( MCH_TP.TYPE, nType)
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
Dim dThick As Double = 0
EgtTdbGetCurrToolParam( If( nType = MCH_TY.SAW_STD, MCH_TP.THICK, MCH_TP.DIAM), dThick)
EgtTdbGetCurrToolParam(If(nType = MCH_TY.SAW_STD, MCH_TP.THICK, MCH_TP.DIAM), dThick)
' Ricalcolo lo spessore in base all'inclinazione
dThick = dThick / Math.Cos(m_dAngV * Math.PI / 180)
' Imposto angolo di rotazione a seconda del lato dei tagli paralleli
@@ -656,7 +657,8 @@ Public Class GridCut
If dDimPzY <> 0 And nNumPzY > 0 And dDimPzX <> 0 And nNumPzX > 0 Then
Dim dLenX As Double = dThick + (dDimPzX + dThick) * nNumPzX
Dim nCutParaId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, dLenX + 0.1)
' Inidico che è un taglio Diretto di tipo GridCut
EgtSetInfo(nCutParaId, INFO_DIRECTCUT, FlagDirectCuts.GridCut)
' --- INIZIO GESTIONE SPECIALE --- per macchina sinistrorsa
' Recupero spessore lama corrente
Dim sSawing As String = m_MainWindow.m_CurrentMachine.sCurrSawing
@@ -683,7 +685,8 @@ Public Class GridCut
' Arretro il punto di partenza di uno spessore lama
Dim vtDeltaPos As Vector3d = Vector3d.FromPolar(dThick + 0.1, m_dAngO - 90)
Dim nCutPerpId = EgtCreateLinePDL(nLayerId, ptStart + vtDeltaPos, m_dAngO + 90, dLenY + 0.2)
' Inidico che è un taglio Diretto di tipo GridCut
EgtSetInfo(nCutPerpId, INFO_DIRECTCUT, FlagDirectCuts.GridCut)
' --- INIZIO GESTIONE SPECIALE --- per macchina sinistrorsa
If m_bSawTh And Not String.IsNullOrEmpty(sSawing) Then
EgtOffsetCurve(nCutPerpId, -dThick, OFF_TYPE.EXTEND)
@@ -725,10 +728,10 @@ Public Class GridCut
Private Sub NumPzsTxBx_EgtClosed(sender As Object, e As EventArgs) Handles NumPzXTxBx.EgtClosed, NumPzYTxBx.EgtClosed,
DimPzXTxBx.EgtClosed, DimPzYTxBx.EgtClosed, SideChBx.Click
StringToInt( NumPzXTxBx.Text, m_nNumX)
StringToLen( DimPzXTxBx.Text, m_dDimX)
StringToInt( NumPzYTxBx.Text, m_nNumY)
StringToLen( DimPzYTxBx.Text, m_dDimY)
StringToInt(NumPzXTxBx.Text, m_nNumX)
StringToLen(DimPzXTxBx.Text, m_dDimX)
StringToInt(NumPzYTxBx.Text, m_nNumY)
StringToLen(DimPzYTxBx.Text, m_dDimY)
m_bHeadSide = SideChBx.IsChecked
' Disegno il taglio
CreateGridCut()
+1 -1
View File
@@ -136,7 +136,7 @@ Public Class MachineButtonsUC
ElseIf StateFlagArray(nIndex) = K_ZBJOG Then
CurrToggleBtn.Content = "Z - B"
ElseIf StateFlagArray(nIndex) = K_REMOTE Then
CurrToggleBtn.Content = "Remote"
CurrToggleBtn.Content = EgtMsg(90262) 'Remote
End If
Catch ex As Exception
EgtOutLog("Error loading content " & StateFlagArray(nIndex))
+6 -1
View File
@@ -1,5 +1,6 @@
Imports System.Windows.Threading
Imports EgtUILib
Imports OmagCUT.MainWindow
Public Class SingleCutUC
@@ -147,6 +148,8 @@ Public Class SingleCutUC
' Deseleziono bottone primo punto
Point1Btn.IsChecked = False
' forzo la verifica dell'affondamento in relazione allo spessore del pezzo
DepthTxBx_EgtClosed(Nothing, Nothing)
' la visualizzazione dei comandi è gestita dalla DirectCutPageUC richiamando la funzione ReloadParam
' forzo la macchina ad essere visibile fin da subito
@@ -159,7 +162,7 @@ Public Class SingleCutUC
' Aggiorno visualizzazione
EgtDraw()
' Avvi il timer
' Avvio il timer
m_RefreshTimer.Start()
End Sub
@@ -672,6 +675,8 @@ Public Class SingleCutUC
' Imposto affondamento e angolo di fianco sul taglio
EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth)
EgtSetInfo(nCutId, INFO_SIDE_ANGLE, m_dAngV)
' Inidico che è un taglio Diretto di tipo SingleCut
EgtSetInfo(nCutId, INFO_DIRECTCUT, FlagDirectCuts.SingleCut)
' Imposto se disabilitare l'inversine di direzione del taglio
If Not m_MainWindow.m_CurrentMachine.bEnableInvert Then EgtSetInfo(nCutId, INFO_ENABLE_INVERT, 0)
' Creo layer per crocetta di riferimento
+3 -1
View File
@@ -1,4 +1,5 @@
Imports EgtUILib
Imports OmagCUT.MainWindow
Imports System.Collections.ObjectModel
Public Class SingleDrillUC
' Riferimenti a pagine
@@ -438,7 +439,8 @@ Public Class SingleDrillUC
End If
Dim nCutId = EgtCreateCircle(nLayerId, ptStart, m_dDiameter / 2)
' Inidico che è un taglio Diretto di tipo SingleDrill
EgtSetInfo(nCutId, INFO_DIRECTCUT, FlagDirectCuts.SingleDrill)
' Calcolo punto di inserimento nel grezzo
Dim ptMin, ptMax As Point3d
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, ptMin, ptMax)
+3
View File
@@ -1,4 +1,5 @@
Imports EgtUILib
Imports OmagCUT.MainWindow
Public Class SquaringUC
@@ -368,6 +369,8 @@ Public Class SquaringUC
If dDimPzY <> 0 And nNumPzY > 0 And dDimPzX <> 0 And nNumPzX > 0 Then
Dim dLenX As Double = dThick + (dDimPzX + dThick) * nNumPzX
Dim nCutParaId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, dLenX + 0.1)
' Inidico che è un taglio Diretto di tipo Squaring
EgtSetInfo(nCutParaId, INFO_DIRECTCUT, FlagDirectCuts.Squaring)
' Imposto affondamento e angolo di fianco sul taglio (solo se non lama STD)
If Not nType = MCH_TY.SAW_STD Then
EgtSetInfo(nCutParaId, INFO_DEPTH, m_dDepth)
+10 -10
View File
@@ -29,43 +29,43 @@
</Grid.RowDefinitions>
<TextBlock Name="Label1" Grid.Row="0"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox1" Grid.Column="1" Grid.Row="0" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label2" Grid.Row="1"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox2" Grid.Column="1" Grid.Row="1" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label3" Grid.Row="2"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox3" Grid.Column="1" Grid.Row="2" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label4" Grid.Row="3"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox4" Grid.Column="1" Grid.Row="3" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label5" Grid.Row="4"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox5" Grid.Column="1" Grid.Row="4" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label6" Grid.Row="5"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox6" Grid.Column="1" Grid.Row="5" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label7" Grid.Row="6"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox7" Grid.Column="1" Grid.Row="6" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label8" Grid.Row="7"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox8" Grid.Column="1" Grid.Row="7" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label9" Grid.Row="8"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox9" Grid.Column="1" Grid.Row="8" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Label10" Grid.Row="9"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TextBox10" Grid.Column="1" Grid.Row="9" Width="90"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
+2 -2
View File
@@ -95,7 +95,7 @@
<Grid Name="TopGrd">
<TextBlock Name="TopTxBl"
Style="{StaticResource OmagCut_ToolsDBTextBlock}" />
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="TopChBx" Style="{StaticResource OmagCut_CheckBox}"
HorizontalAlignment="Right" Margin="6,0,6,0"/>
@@ -122,7 +122,7 @@
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="PartNumTxBl" Grid.Column="0" Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"
<TextBlock Name="PartNumTxBl" Grid.Column="0" Style="{DynamicResource OmagCut_CurrProjSummeryTextBlock}"
TextAlignment="Right"/>
<EgtWPFLib:EgtTextBox Name="PartNumTxBx" Grid.Column="1" Width="60" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
+8 -7
View File
@@ -84,13 +84,13 @@ Public Class ImportPageUC
ResetBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 3) 'Reset
mmBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 4) 'mm
inchBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 5) 'inch
OrderListBtn.Content = EgtMsg(90398) 'Dati Csv
TopBtn.Content = EgtMsg(90384) 'Indica Lato Sopra
OrderListBtn.Content = EgtMsg(90398) 'Dati Csv
TopBtn.Content = EgtMsg(90384) 'Indica Lato Sopra
PartNumTxBl.Text = EgtMsg(MSG_IMPORTPAGEUC + 15) 'Numero
SideAngleBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 7) 'Inclina lati
FiloTopBtn.Content = EgtMsg(90400) 'Filo Top
FiloTopBtn.Content = EgtMsg(90400) 'Filo Top
DripCutBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 8) 'Incidi da sotto
EngraveBtn.Content = "Engrave"
EngraveBtn.Content = EgtMsg(91238) 'Engrave
DripDrillBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 14) 'Foro da sotto
Cad2dBtn.Content = "Cad 2d"
@@ -1074,8 +1074,9 @@ Public Class ImportPageUC
' Passo al pezzo successivo
nId = EgtGetNextPart(nId)
End While
Dim x As Double = GlobBBox.DimX
Dim Y As Double = GlobBBox.DimY
Dim DimX As Double = GlobBBox.DimX
Dim DimY As Double = GlobBBox.DimY
Dim BBoxMaxPt As Point3d = GlobBBox.Max
' Ciclo sui pezzi inseriti
nId = nFirstId
@@ -1114,7 +1115,7 @@ Public Class ImportPageUC
' Inserisco in parcheggio
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
' Mantengo la posizione relativa tra i pezzi
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePartDXF(nId, x, Y)
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePartDXF(nId, DimX, DimY, BBoxMaxPt)
Else
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId, True)
End If
+4
View File
@@ -226,6 +226,10 @@ Module SideAngle
EgtSetInfo(EntId, INFO_SIDE_ANGLE, dAng)
EgtSetInfo(EntId, INFO_ORIG_SIDE_ANGLE, dAng)
EgtSetInfo(EntId, INFO_HEEL, dHeel)
Dim sSawingTilted As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
If Not String.IsNullOrEmpty(sSawingTilted) Then
EgtSetInfo(EntId, DEF_MACHINING_TILTED, sSawingTilted)
End If
End If
End If
End If
+83
View File
@@ -0,0 +1,83 @@
<Window x:Class="SideAngleOneForAllWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
Title="ChooseTool" Height="255.9" Width="426.6" WindowStyle="None"
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
Background="Transparent">
<Border Style="{DynamicResource OmagCut_Border}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.7*"/>
<RowDefinition Height="0.3*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="TitleTxBl"
Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<Grid Grid.Row="1"
Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="A °"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<TextBlock Grid.Column="1"
Text="T"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<ComboBox Grid.Row="1"
Name="SideAngleOneForAllCBx"
Margin="10,0,10,0">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="20"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox Grid.Row="1"
Grid.Column="1"
Name="SideHeelOneForAllCBx"
Margin="10,0,10,0">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="20"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.Row="3" Grid.RowSpan="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Button Name="OkBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="ExitBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}"
IsCancel="True">
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
</Grid>
</Grid>
</Border>
</Window>
@@ -0,0 +1,20 @@
Public Class SideAngleOneForAllWindow
Sub New()
' La chiamata è richiesta dalla finestra di progettazione.
InitializeComponent()
' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
TitleTxBl.Text = EgtUILib.EgtMsg(91253)
End Sub
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
DialogResult = True
End Sub
Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click
DialogResult = False
End Sub
End Class
+135 -126
View File
@@ -1,17 +1,17 @@
<UserControl x:Class="SideAngleUC"
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"
mc:Ignorable="d"
d:DesignHeight="636.9" d:DesignWidth="255.9">
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"
mc:Ignorable="d"
d:DesignHeight="636.9" d:DesignWidth="255.9">
<!-- Definizione della Grid Laterale -->
<Grid Name="VariablesCompoGrid" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.2*"/>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
@@ -34,182 +34,191 @@
<RowDefinition Height="0.5*"/>-->
</Grid.RowDefinitions>
<Grid>
<Grid Name="SideAngleGrid" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.4*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.4*"/>
<!--<ColumnDefinition Width="0.4*"/>-->
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.8*"/>
</Grid.ColumnDefinitions>
<Button Name="PrevBtn" Grid.Column="1" Margin="4,0,4,0" Padding="0" Content="&lt;" Style="{StaticResource OmagCut_YellowTextButton}"/>
<Button Name="NextBtn" Grid.Column="2" Margin="4,0,4,0" Padding="0" Content="&gt;" Style="{StaticResource OmagCut_YellowTextButton}"/>
<Button Name="PrevBtn" Grid.Column="0" Margin="2,0,2,0" Padding="0" Content="&lt;" Style="{StaticResource OmagCut_YellowTextButton}"/>
<Button Name="NextBtn" Grid.Column="1" Margin="2,0,2,0" Padding="0" Content="&gt;" Style="{StaticResource OmagCut_YellowTextButton}"/>
<CheckBox Name="SideAngleChBx" Grid.Column="2" Margin="2,0,0,0" Padding="0"/>
</Grid>
<TextBlock Name="SideAngleBl" Grid.Row="0" Grid.Column="2" Text="A °"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<TextBlock Name="HeelBl" Grid.Row="0" Grid.Column="3" Text="T"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<TextBlock Name="Entity1" Grid.Row="1" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="NewEntity" Grid.Row="1" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="NewA1" Grid.Column="1" Grid.Row="1" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="NewA1TxBx" Grid.Column="2" Grid.Row="1" Width="60" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="NewH1TxBx" Grid.Column="3" Grid.Row="1" Width="60"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity1" Grid.Row="1" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A1" Grid.Column="1" Grid.Row="1" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A1TxBx" Grid.Column="2" Grid.Row="1" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H1TxBx" Grid.Column="3" Grid.Row="1" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity2" Grid.Row="2" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity2" Grid.Row="2" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A2" Grid.Column="1" Grid.Row="2" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A2TxBx" Grid.Column="2" Grid.Row="2" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H2TxBx" Grid.Column="3" Grid.Row="2" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity3" Grid.Row="3" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity3" Grid.Row="3" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A3" Grid.Column="1" Grid.Row="3" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A3TxBx" Grid.Column="2" Grid.Row="3" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H3TxBx" Grid.Column="3" Grid.Row="3" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity4" Grid.Row="4" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity4" Grid.Row="4" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A4" Grid.Column="1" Grid.Row="4" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A4TxBx" Grid.Column="2" Grid.Row="4" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H4TxBx" Grid.Column="3" Grid.Row="4" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity5" Grid.Row="5" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity5" Grid.Row="5" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A5" Grid.Column="1" Grid.Row="5" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A5TxBx" Grid.Column="2" Grid.Row="5" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H5TxBx" Grid.Column="3" Grid.Row="5" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity6" Grid.Row="6" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity6" Grid.Row="6" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A6" Grid.Column="1" Grid.Row="6" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A6TxBx" Grid.Column="2" Grid.Row="6" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H6TxBx" Grid.Column="3" Grid.Row="6" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity7" Grid.Row="7" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity7" Grid.Row="7" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A7" Grid.Column="1" Grid.Row="7" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A7TxBx" Grid.Column="2" Grid.Row="7" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H7TxBx" Grid.Column="3" Grid.Row="7" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity8" Grid.Row="8" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity8" Grid.Row="8" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A8" Grid.Column="1" Grid.Row="8" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A8TxBx" Grid.Column="2" Grid.Row="8" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H8TxBx" Grid.Column="3" Grid.Row="8" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity9" Grid.Row="9" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity9" Grid.Row="9" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A9" Grid.Column="1" Grid.Row="9" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A9TxBx" Grid.Column="2" Grid.Row="9" Width="60" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H9TxBx" Grid.Column="3" Grid.Row="9" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Entity10" Grid.Row="10" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="Entity10" Grid.Row="10" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A10" Grid.Column="1" Grid.Row="10" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A10TxBx" Grid.Column="2" Grid.Row="10" Width="60" IsLength="False"
Margin="0,0,0,-2"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H10TxBx" Grid.Column="3" Grid.Row="10" Width="60"
Margin="0,0,0,-2"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<Grid Grid.Column="0" Grid.Row="12" Grid.ColumnSpan="4" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="0.6*"/>
<ColumnDefinition Width="0.6*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="0.6*"/>
<ColumnDefinition Width="0.6*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
<RowDefinition Height="0.9*"/>
</Grid.RowDefinitions>
<TextBlock Name="Parameter1TxBl" Grid.Row="0" Grid.ColumnSpan="2"
Text="Offset"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter1TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="0"
Width="85" Height="30"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter1TxBl" Grid.Row="0" Grid.ColumnSpan="2"
Text="Offset"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter1TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="0"
Width="85" Height="30"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter2TxBl" Grid.Row="1" Grid.ColumnSpan="2"
Text="Offset2"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter2TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" Width="85"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<UniformGrid Rows="1" Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" Width="90" >
<EgtWPFLib:EgtTextBox Name="Parameter2aTxBx"
Grid.Column="2" Grid.Row="12"
Width="40" Height="30" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="Parameter2bTxBx"
Grid.Column="3" Grid.Row="12"
Width="40" Height="30"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
</UniformGrid>
<TextBlock Name="Parameter2TxBl" Grid.Row="1" Grid.ColumnSpan="2"
Text="Offset2"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter2TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" Width="85"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<UniformGrid Rows="1" Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" Width="90" >
<EgtWPFLib:EgtTextBox Name="Parameter2aTxBx"
Grid.Column="2" Grid.Row="12"
Width="40" Height="30" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="Parameter2bTxBx"
Grid.Column="3" Grid.Row="12"
Width="40" Height="30"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</UniformGrid>
<TextBlock Name="Parameter3TxBl" Grid.Row="2" Grid.ColumnSpan="2"
Text="Affondamento"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter3TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="2"
Margin="0,0,0,-2"
Width="85" Height="30"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter3TxBl" Grid.Row="2" Grid.ColumnSpan="2"
Text="Affondamento"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter3TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="2"
Margin="0,0,0,-2"
Width="85" Height="30"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter4TxBl" Grid.Row="3" Grid.ColumnSpan="2"
Text="Accorciamento"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter4TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="3"
Margin="0,0,0,-2"
Width="85" Height="30"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter5TxBl" Grid.Row="4" Grid.ColumnSpan="2"
Text="Angolo"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter5TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="4"
Margin="0,0,0,-2"
Width="85" Height="30" IsLength="False"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter4TxBl" Grid.Row="3" Grid.ColumnSpan="2"
Text="Accorciamento"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter4TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="3"
Margin="0,0,0,-2"
Width="85" Height="30"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter5TxBl" Grid.Row="4" Grid.ColumnSpan="2"
Text="Angolo"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter5TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="4"
Margin="0,0,0,-2"
Width="85" Height="30" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid>
</Grid>
<!--<TextBlock Name="Parameter1TxBl" Grid.Row="11" Text="Offset"
<!--<TextBlock Name="Parameter1TxBl" Grid.Row="11" Text="Offset"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter1TxBx" Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="11" Width="90"
+199 -33
View File
@@ -171,25 +171,25 @@ Public Class SideAngleUC
' Aggiorno valori
If m_Mode = ModeOpt.DRIP Then
m_dDripOffset = GetPrivateProfileDouble( S_SIDES, K_DRIPOFFSET, 20, m_MainWindow.GetIniFile())
m_dDripOffset2 = GetPrivateProfileDouble( S_SIDES, K_DRIPOFFSET2, 0, m_MainWindow.GetIniFile())
m_dDripDepth = GetPrivateProfileDouble( S_SIDES, K_DRIPDEPTH, 10, m_MainWindow.GetIniFile())
m_dDripShort = GetPrivateProfileDouble( S_SIDES, K_DRIPSHORT, 0, m_MainWindow.GetIniFile())
Parameter1TxBx.Text = LenToString( m_dDripOffset, 3)
Parameter2TxBx.Text = LenToString( m_dDripOffset2, 3)
Parameter3TxBx.Text = LenToString( m_dDripDepth, 3)
Parameter4TxBx.Text = LenToString( m_dDripShort, 3)
m_dDripOffset = GetPrivateProfileDouble(S_SIDES, K_DRIPOFFSET, 20, m_MainWindow.GetIniFile())
m_dDripOffset2 = GetPrivateProfileDouble(S_SIDES, K_DRIPOFFSET2, 0, m_MainWindow.GetIniFile())
m_dDripDepth = GetPrivateProfileDouble(S_SIDES, K_DRIPDEPTH, 10, m_MainWindow.GetIniFile())
m_dDripShort = GetPrivateProfileDouble(S_SIDES, K_DRIPSHORT, 0, m_MainWindow.GetIniFile())
Parameter1TxBx.Text = LenToString(m_dDripOffset, 3)
Parameter2TxBx.Text = LenToString(m_dDripOffset2, 3)
Parameter3TxBx.Text = LenToString(m_dDripDepth, 3)
Parameter4TxBx.Text = LenToString(m_dDripShort, 3)
ElseIf m_Mode = ModeOpt.ENGRAVE Then
m_dDripOffset = GetPrivateProfileDouble( S_SIDES, K_ENGRAVEOFFSET, 20, m_MainWindow.GetIniFile())
m_nEngrNbr2 = GetPrivateProfileInt( S_SIDES, K_ENGRAVENUMBER2, 1, m_MainWindow.GetIniFile())
m_dDripOffset2 = GetPrivateProfileDouble( S_SIDES, K_ENGRAVEOFFSET2, 0, m_MainWindow.GetIniFile())
m_dDripDepth = GetPrivateProfileDouble( S_SIDES, K_ENGRAVEDEPTH, 10, m_MainWindow.GetIniFile())
m_dDripOffset = GetPrivateProfileDouble(S_SIDES, K_ENGRAVEOFFSET, 20, m_MainWindow.GetIniFile())
m_nEngrNbr2 = GetPrivateProfileInt(S_SIDES, K_ENGRAVENUMBER2, 1, m_MainWindow.GetIniFile())
m_dDripOffset2 = GetPrivateProfileDouble(S_SIDES, K_ENGRAVEOFFSET2, 0, m_MainWindow.GetIniFile())
m_dDripDepth = GetPrivateProfileDouble(S_SIDES, K_ENGRAVEDEPTH, 10, m_MainWindow.GetIniFile())
m_dEngraveDepth2 = GetPrivateProfileDouble(S_SIDES, K_ENGRAVEDEPTH2, 0, m_MainWindow.GetIniFile())
m_dEngraveAngle = GetPrivateProfileDouble(S_SIDES, K_ENGRAVEANGLE, 0, m_MainWindow.GetIniFile())
Parameter1TxBx.Text = LenToString(m_dDripOffset, 3)
Parameter2aTxBx.Text = m_nEngrNbr2.ToString()
Parameter2bTxBx.Text = LenToString( m_dDripOffset2, 3)
Parameter3TxBx.Text = LenToString( m_dDripDepth, 3)
Parameter2bTxBx.Text = LenToString(m_dDripOffset2, 3)
Parameter3TxBx.Text = LenToString(m_dDripDepth, 3)
Parameter4TxBx.Text = LenToString(m_dEngraveDepth2, 3)
Parameter5TxBx.Text = DoubleToString(m_dEngraveAngle, 3)
End If
@@ -311,8 +311,14 @@ 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
SideAngleChBx.Visibility = Windows.Visibility.Hidden
NewEntity.Visibility = Windows.Visibility.Hidden
NewA1.Visibility = Windows.Visibility.Hidden
NewA1TxBx.Visibility = Windows.Visibility.Hidden
NewH1TxBx.Visibility = Windows.Visibility.Hidden
Else
Grid.SetRow(PrevBtn, MAX_LINES - m_nShow)
PrevBtn.Visibility = Windows.Visibility.Visible
@@ -320,6 +326,8 @@ Public Class SideAngleUC
Grid.SetRow(NextBtn, MAX_LINES - m_nShow)
NextBtn.Visibility = Windows.Visibility.Visible
NextBtn.IsEnabled = (m_nCount > m_nCurrPage * MAX_LINES)
Grid.SetRow(SideAngleGrid, MAX_LINES - m_nShow)
SideAngleChBx.Visibility = Windows.Visibility.Visible
End If
' Intestazione per angoli di lato
@@ -335,6 +343,8 @@ Public Class SideAngleUC
Grid.SetRow(HeelBl, MAX_LINES - m_nShow)
HeelBl.Text = EgtMsg(91654) ' T
HeelBl.Visibility = Windows.Visibility.Visible
Grid.SetRow(SideAngleGrid, MAX_LINES - m_nShow)
SideAngleChBx.Visibility = Windows.Visibility.Visible
End If
Else
If m_nCount = 0 Then
@@ -371,7 +381,7 @@ Public Class SideAngleUC
GetHeelTxBxFromIndex(Index).Text = GetPrivateProfileDouble(S_SIDES, K_DRIPSHORT & "A" & nI.ToString & "_End", 0, m_MainWindow.GetIniFile())
End If
End If
Dim TxBlIndex As Integer = (m_nCurrPage - 1) * MAX_LINES + nI - 1
Dim TxBlIndex As Integer = (m_nCurrPage - 1) * MAX_LINES + nI - 1
GetTxBlFromIndex(Index).Text = If(m_Mode = ModeOpt.SIDEANGLE,
m_SideAngleEntityList(TxBlIndex).sEntityName,
m_DripEntityList(TxBlIndex).sEntityName)
@@ -391,6 +401,145 @@ Public Class SideAngleUC
Next
End Sub
Private Sub CheckedSideAngle() Handles SideAngleChBx.Checked
Grid.SetRow(NewEntity, MAX_LINES - m_nShow + 1)
Grid.SetRow(NewA1TxBx, MAX_LINES - m_nShow + 1)
Grid.SetRow(NewH1TxBx, MAX_LINES - m_nShow + 1)
NewEntity.Text = "A#"
' Se interrompo la creazione di un unico SideAng
If Not GetSideAngleFromAllEntities() Then Return
PrevBtn.Visibility = Visibility.Collapsed
NextBtn.Visibility = Visibility.Collapsed
NewEntity.Visibility = Visibility.Visible
NewA1TxBx.Visibility = Visibility.Visible
NewH1TxBx.Visibility = Visibility.Visible
Entity1.Visibility = Visibility.Collapsed
A1TxBx.Visibility = Visibility.Collapsed
H1TxBx.Visibility = Visibility.Collapsed
Entity2.Visibility = Visibility.Collapsed
A2TxBx.Visibility = Visibility.Collapsed
H2TxBx.Visibility = Visibility.Collapsed
Entity3.Visibility = Visibility.Collapsed
A3TxBx.Visibility = Visibility.Collapsed
H3TxBx.Visibility = Visibility.Collapsed
Entity4.Visibility = Visibility.Collapsed
A4TxBx.Visibility = Visibility.Collapsed
H4TxBx.Visibility = Visibility.Collapsed
Entity5.Visibility = Visibility.Collapsed
A5TxBx.Visibility = Visibility.Collapsed
H5TxBx.Visibility = Visibility.Collapsed
Entity6.Visibility = Visibility.Collapsed
A6TxBx.Visibility = Visibility.Collapsed
H6TxBx.Visibility = Visibility.Collapsed
Entity7.Visibility = Visibility.Collapsed
A7TxBx.Visibility = Visibility.Collapsed
H7TxBx.Visibility = Visibility.Collapsed
Entity8.Visibility = Visibility.Collapsed
A8TxBx.Visibility = Visibility.Collapsed
H8TxBx.Visibility = Visibility.Collapsed
Entity9.Visibility = Visibility.Collapsed
A9TxBx.Visibility = Visibility.Collapsed
H9TxBx.Visibility = Visibility.Collapsed
Entity10.Visibility = Visibility.Collapsed
A10TxBx.Visibility = Visibility.Collapsed
H10TxBx.Visibility = Visibility.Collapsed
End Sub
Private Sub UnCheckSideAngle() Handles SideAngleChBx.Unchecked
NewEntity.Visibility = Visibility.Collapsed
NewA1TxBx.Visibility = Visibility.Collapsed
NewH1TxBx.Visibility = Visibility.Collapsed
TxBlChBxView()
RefreshCheckAndValue()
End Sub
Private Function GetSideAngleFromAllEntities() As Boolean
Dim tmpSideAngleList As New List(Of Double)
tmpSideAngleList.Clear()
Dim tmpSideHeelList As New List(Of Double)
tmpSideHeelList.Clear()
Dim m_SideAngleOneForAllWindow As New SideAngleOneForAllWindow
For i As Integer = 0 To m_SideAngleEntityList.Count - 1
If Not tmpSideAngleList.Contains(m_SideAngleEntityList(i).dSideAngle) Then
tmpSideAngleList.Add(m_SideAngleEntityList(i).dSideAngle)
End If
If Not tmpSideHeelList.Contains(m_SideAngleEntityList(i).dSideHeel) Then
tmpSideHeelList.Add(m_SideAngleEntityList(i).dSideHeel)
End If
Next
NewA1TxBx.Text = DoubleToString(tmpSideAngleList(0), 2)
NewH1TxBx.Text = LenToString(tmpSideHeelList(0), 2)
If tmpSideAngleList.Count > 1 Or tmpSideHeelList.Count > 1 Then
m_SideAngleOneForAllWindow.SideAngleOneForAllCBx.ItemsSource = tmpSideAngleList
m_SideAngleOneForAllWindow.SideAngleOneForAllCBx.SelectedIndex = 0
m_SideAngleOneForAllWindow.SideHeelOneForAllCBx.ItemsSource = tmpSideHeelList
m_SideAngleOneForAllWindow.SideHeelOneForAllCBx.SelectedIndex = 0
m_SideAngleOneForAllWindow.ShowDialog()
If m_SideAngleOneForAllWindow.DialogResult Then
NewA1TxBx.Text = DoubleToString(m_SideAngleOneForAllWindow.SideAngleOneForAllCBx.SelectedItem, 2)
NewH1TxBx.Text = LenToString(m_SideAngleOneForAllWindow.SideHeelOneForAllCBx.SelectedItem, 2)
UpdateSideAngleAllEntities()
UpdateHeelAllEntities()
Else
SideAngleChBx.IsChecked = False
Return False
End If
End If
Return True
End Function
Private Sub UpdateHeelAllEntities()
' Nuovo tallone
Dim dSideHeel As Double
StringToLen(NewH1TxBx.Text, dSideHeel)
' Verifico stia nei limiti
If dSideHeel < 0 Then
dSideHeel = 0
NewH1TxBx.Text = "0"
End If
For Each Entity As SideAngleEntity In m_SideAngleEntityList
' Lo modifico nella geometria e nella lista inclinazioni
ModifySideHeel(Entity.sEntityName, dSideHeel)
' Aggiorno tutti i testi
RefreshSideAngleText()
Next
End Sub
Private Sub UpdateSideAngleAllEntities()
' Nuovo angolo di inclinazione
Dim dSideAngle As Double
StringToDouble(NewA1TxBx.Text, dSideAngle)
' Verifico stia nei limiti
If dSideAngle < -m_dMaxSideAng Then
dSideAngle = -m_dMaxSideAng
NewA1TxBx.Text = DoubleToString(dSideAngle, 2)
ElseIf dSideAngle > m_dMaxSideAng Then
dSideAngle = m_dMaxSideAng
NewA1TxBx.Text = DoubleToString(dSideAngle, 2)
End If
For Each Entity As SideAngleEntity In m_SideAngleEntityList
' Lo modifico nella geometria e nella lista inclinazioni
ModifySideAngle(Entity.sEntityName, dSideAngle)
' Aggiorno tutti i testi
RefreshSideAngleText()
Next
End Sub
'-------------> Restituisce gli oggetto della grafica assegnato l'indice
Private Function GetChBxFromIndex(Index As Integer) As CheckBox
@@ -495,15 +644,15 @@ Public Class SideAngleUC
'-------------> Restituisce gli oggetto della grafica assegnato l'indice
' quando esco salvo nel file l'ultima configurazione per le incisioni
Private Sub SideAngleUC_Unloaded( sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
Private Sub SideAngleUC_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
If m_CallingPage = MainWindow.Pages.Draw Then
' Ricavo nome pezzo
Dim PartId As Integer = EgtGetFirstInGroup( GDB_ID.ROOT)
Dim PartId As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
' Svuoto layer in cui sono presenti i testi con le inclinazioni dei lati
If m_Mode = ModeOpt.SIDEANGLE Then
EgtEmptyGroup( EgtGetFirstNameInGroup( PartId, SIDE_ANGLE_LAYER))
EgtEmptyGroup(EgtGetFirstNameInGroup(PartId, SIDE_ANGLE_LAYER))
Else
EgtEmptyGroup( EgtGetFirstNameInGroup( PartId, SIDE_ANGLE_LAYER))
EgtEmptyGroup(EgtGetFirstNameInGroup(PartId, SIDE_ANGLE_LAYER))
End If
ElseIf m_CallingPage = MainWindow.Pages.Import Then
' Nessuna azione necessaria
@@ -516,7 +665,7 @@ Public Class SideAngleUC
'WritePrivateProfileString( S_SIDES, K_DRIPSHORT, DoubleToString( m_dDripShort, 3), m_MainWindow.GetIniFile())
ElseIf m_Mode = ModeOpt.ENGRAVE Then
WritePrivateProfileString(S_SIDES, K_ENGRAVEOFFSET, LenToString(m_dDripOffset, 3), m_MainWindow.GetIniFile())
WritePrivateProfileString( S_SIDES, K_ENGRAVENUMBER2, m_nEngrNbr2.ToString(), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_SIDES, K_ENGRAVENUMBER2, m_nEngrNbr2.ToString(), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_SIDES, K_ENGRAVEOFFSET2, LenToString(m_dDripOffset2, 3), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_SIDES, K_ENGRAVEDEPTH, LenToString(m_dDripDepth, 3), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_SIDES, K_ENGRAVEDEPTH2, LenToString(m_dEngraveDepth2, 3), m_MainWindow.GetIniFile())
@@ -527,7 +676,6 @@ Public Class SideAngleUC
EgtDraw()
End Sub
' aggiunge il messaggio nel disegno, se DripGeom creo la geometria
Private Sub RefreshSideAngleText()
Dim PartId As Integer = GDB_ID.NULL
@@ -538,7 +686,7 @@ Public Class SideAngleUC
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
@@ -600,7 +748,7 @@ Public Class SideAngleUC
For nIndex As Integer = 1 To m_nCount
Dim Entity As DripEntity = m_DripEntityList(nIndex - 1)
' Imposto check box (se sono stati definiti il numero corretto di CheckBox
If nIndex < ( m_nCurrPage - 1) * MAX_LINES Or nIndex > m_nCurrPage * MAX_LINES Then Continue For
If nIndex < (m_nCurrPage - 1) * MAX_LINES Or nIndex > m_nCurrPage * MAX_LINES Then Continue For
Dim nChIndex As Integer = nIndex - (m_nCurrPage - 1) * MAX_LINES + MAX_LINES - m_nShow
' verifico se l'entità ha un gocciolatoio
GetChBxFromIndex(nChIndex).IsChecked = Entity.bHaveDrip
@@ -973,15 +1121,15 @@ Public Class SideAngleUC
Private Sub PrevBtn_Click(sender As Object, e As RoutedEventArgs) Handles PrevBtn.Click
If m_nCurrPage = 1 Then Return
m_nCurrPage -= 1
m_nShow = Math.Min( m_nCount - ( m_nCurrPage - 1) * MAX_LINES, MAX_LINES)
m_nShow = Math.Min(m_nCount - (m_nCurrPage - 1) * MAX_LINES, MAX_LINES)
TxBlChBxView()
RefreshCheckAndValue()
End Sub
Private Sub NextBtn_Click(sender As Object, e As RoutedEventArgs) Handles NextBtn.Click
If m_nCount <= ( m_nCurrPage - 1) * MAX_LINES Then Return
If m_nCount <= (m_nCurrPage - 1) * MAX_LINES Then Return
m_nCurrPage += 1
m_nShow = Math.Min( m_nCount - ( m_nCurrPage - 1) * MAX_LINES, MAX_LINES)
m_nShow = Math.Min(m_nCount - (m_nCurrPage - 1) * MAX_LINES, MAX_LINES)
TxBlChBxView()
RefreshCheckAndValue()
End Sub
@@ -993,7 +1141,7 @@ Public Class SideAngleUC
Dim bVal As Boolean = CurrCheckBox.IsChecked()
Dim SideIndex As Integer = CInt(CurrCheckBox.Name.Substring(1))
' Converto nome checkbox in nome elemento tenendo conto della pagina e dello slittamento verso il basso
Dim nCurrSide As Integer = ( m_nCurrPage - 1) * MAX_LINES + SideIndex - ( MAX_LINES - m_nShow)
Dim nCurrSide As Integer = (m_nCurrPage - 1) * MAX_LINES + SideIndex - (MAX_LINES - m_nShow)
Dim sCurrSide As String = m_DripEntityList(nCurrSide - 1).sEntityName
' aggiorno l'entità con i valori scritti nel campo di testo
Dim CurrEntity As DripEntity = DripEntity.FindEntity(sCurrSide)
@@ -1179,6 +1327,19 @@ Public Class SideAngleUC
End If
End Sub
'-------> riga nuova
Private Sub NewA1TxBx_EgtClosed(sender As Object, e As EventArgs) Handles NewA1TxBx.EgtClosed
If m_Mode = ModeOpt.SIDEANGLE Then
UpdateSideAngleAllEntities()
End If
End Sub
Private Sub NewH1TxBx_EgtClosed(sender As Object, e As EventArgs) Handles NewH1TxBx.EgtClosed
If m_Mode = ModeOpt.SIDEANGLE Then
UpdateHeelAllEntities()
End If
End Sub
Private Sub SetSideAngleFromTxBx(SideIndex As Integer, AngleTxBx As EgtWPFLib.EgtTextBox)
' Nuovo angolo di inclinazione
Dim dSideAngle As Double
@@ -1192,7 +1353,7 @@ Public Class SideAngleUC
AngleTxBx.Text = DoubleToString(dSideAngle, 2)
End If
' Converto nome checkbox in nome elemento tenendo conto della pagina e dello slittamento verso il basso
Dim nCurrSide As Integer = ( m_nCurrPage - 1) * MAX_LINES + SideIndex - ( MAX_LINES - m_nShow)
Dim nCurrSide As Integer = (m_nCurrPage - 1) * MAX_LINES + SideIndex - (MAX_LINES - m_nShow)
Dim sCurrSide As String = m_SideAngleEntityList(nCurrSide - 1).sEntityName
' Lo modifico nella geometria e nella lista inclinazioni
ModifySideAngle(sCurrSide, dSideAngle)
@@ -1262,7 +1423,7 @@ Public Class SideAngleUC
HeelTxBx.Text = "0"
End If
' Converto nome checkbox in nome elemento tenendo conto della pagina e dello slittamento verso il basso
Dim nCurrSide As Integer = ( m_nCurrPage - 1) * MAX_LINES + SideIndex - ( MAX_LINES - m_nShow)
Dim nCurrSide As Integer = (m_nCurrPage - 1) * MAX_LINES + SideIndex - (MAX_LINES - m_nShow)
Dim sCurrSide As String = m_SideAngleEntityList(nCurrSide - 1).sEntityName
' Lo modifico nella geometria e nella lista inclinazioni
ModifySideHeel(sCurrSide, dSideHeel)
@@ -1303,10 +1464,15 @@ Public Class SideAngleUC
If dSideAngle <> 0 Then
EgtSetInfo(CurrEntity.nGeomId, INFO_SIDE_ANGLE, dSideAngle)
EgtSetInfo(CurrEntity.nGeomId, INFO_ORIG_SIDE_ANGLE, dSideAngle)
' Cancello inclinazione nell'apposito campo info
Dim sSawingTilted As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
If Not String.IsNullOrEmpty(sSawingTilted) Then
EgtSetInfo(CurrEntity.nGeomId, DEF_MACHINING_TILTED, sSawingTilted)
End If
' Cancello inclinazione nell'apposito campo info
Else
EgtRemoveInfo(CurrEntity.nGeomId, INFO_SIDE_ANGLE)
EgtRemoveInfo(CurrEntity.nGeomId, INFO_ORIG_SIDE_ANGLE)
EgtRemoveInfo(CurrEntity.nGeomId, DEF_MACHINING_TILTED)
End If
' Aggiorno lista entità con nuova inclinazione
CurrEntity.dSideAngle = dSideAngle
@@ -1324,7 +1490,7 @@ Public Class SideAngleUC
' Scrivo nuovo tallone nelle info
If dSideHeel > 10 * EPS_SMALL Then
EgtSetInfo(CurrEntity.nGeomId, INFO_HEEL, dSideHeel)
' Cancello inclinazione nell'apposito campo info
' Cancello inclinazione nell'apposito campo info
Else
EgtRemoveInfo(CurrEntity.nGeomId, INFO_HEEL)
End If
+537 -517
View File
File diff suppressed because it is too large Load Diff
+113 -7
View File
@@ -57,6 +57,7 @@ Public Class AlarmsPageUC
' Imposto i messaggi letti dal file dei messaggi
CurrSawTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 1)
CurrSawTiltedTxBl.Text = EgtMsg(91049) ' Current saw tilted
AuxiliaryToolTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 2)
CurrDrillTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 3)
CurrCupWheelTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 20)
@@ -93,13 +94,13 @@ Public Class AlarmsPageUC
WJsParamGpBx.Header = EgtMsg( 91058) ' Parametri waterjet
WjIntCutsTxBl.Text = EgtMsg(90930) ' Sempre sugli interni
'-- INIZIO -- nuovi parametri per preforo lavello
HolesDiameterWJTxBl.Text = "Diameter"
HolesOffsetWJTxBl.Text = "Offset"
MinRadiusWJTxBl.Text = "Min Radius"
HolesDiameterWJTxBl.Text = EgtMsg(91044) ' Diametro
HolesOffsetWJTxBl.Text = EgtMsg(91045) ' Offset
MinRadiusWJTxBl.Text = EgtMsg(91046) ' Raggio Minimo
OneHoleInCornerWJTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 26)
'-- INIZIO -- nuovi parametro Rettifica tagli sottosquadra WJ
REctificationWJParamGpBx.Header = "Rectification"
EnableRectificationTxBl.Text = "Enable (on subsquare angle)"
RectificationWJParamGpBx.Header = EgtMsg(91047) ' Rettifica
EnableRectificationTxBl.Text = EgtMsg(91048) ' Abilita (sottosquadra)
'-- FINE -- nuovi parametro Rettifica tagli sottosquadra WJ
NestingParamGpBx.Header = EgtMsg(MSG_ALARMSPAGEUC + 31) ' Nesting
AlignTxBl.Text = EgtMsg(90932) ' Allineato
@@ -120,6 +121,7 @@ Public Class AlarmsPageUC
CfrPercTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 48) ' Riduzione %
MachiningsGpBx.Header = EgtMsg(MSG_ALARMS2PAGEUC + 1) ' Lavorazioni
CurrSawingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 2) ' Taglio lama
CurrSawingTiltedTxBl.Text = EgtMsg(91050) ' Taglio inclinato
CurrDrillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 3) ' Foratura
CurrMillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 4) ' Fresatura
CurrPocketingTxBl.Text = EgtMsg(91069) ' Svuotatura
@@ -159,7 +161,7 @@ Public Class AlarmsPageUC
HolesGpBx.Visibility = Windows.Visibility.Hidden
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
'Non faccio alcunchè
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
'Da implementare
End Select
@@ -292,6 +294,59 @@ Public Class AlarmsPageUC
' attivo il bottone per l'apertura della pagina che mostra la configurazione degli utensili in parcheggio
SetUpBtn.Visibility = Windows.Visibility.Visible
Case CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
' Aggiorno la lista delle lame con quelle montate sul portautensile automatico
Dim m_SawOnHolderList As New ObservableCollection(Of String)
Dim bOnHolder As Boolean = False
For Each sNameTool As String In m_SawList
If Not String.IsNullOrEmpty(sNameTool) Then
' Verifico che sia montata su un portautensile
EgtTdbSetCurrTool(sNameTool)
Dim sTCPos As String = String.Empty
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sTCPos)
If Not String.IsNullOrEmpty(sTCPos) Then
' Cerco nel porta utensili automaitico
For Each ToolPosition As ToolChangerPos In m_MainWindow.m_CurrentMachine.ToolChanger
If ToolPosition.sTool <> String.Empty Then
If sNameTool = ToolPosition.sTool Then
m_SawOnHolderList.Add(sNameTool)
' Se il nome dell'utensile è lo stesso di quello impostato nella combo allora lo setto
If sNameTool = m_CurrentMachine.sCurrSaw Then
bOnHolder = True
End If
Exit For
End If
End If
Next
End If
End If
Next
m_SawList = m_SawOnHolderList
CurrSawCmBx.ItemsSource = m_SawList
If bOnHolder Then
' reimposto la lavorazione di lama e la lama impostate in macchina
EgtTdbSetCurrTool(m_CurrentMachine.sCurrSaw)
' Seleziono lama corrente
CurrSawCmBx.SelectedItem = m_CurrentMachine.sCurrSaw
Else
m_CurrentMachine.sCurrSawing = ""
End If
CurrSawTiltedCmBx.ItemsSource = m_SawList
If m_SawList.IndexOf(m_CurrentMachine.sCurrSawTilted) > -1 Then
' Seleziono lama corrente
CurrSawTiltedCmBx.SelectedItem = m_CurrentMachine.sCurrSawTilted
Else
m_CurrentMachine.sCurrSawingTilted = ""
End If
' attivo la selezione della lama per il taglio in inlinato
CurrSawTiltedTxBl.Visibility = Visibility.Visible
CurrSawTiltedCmBx.Visibility = Visibility.Visible
' attivo il bottone per l'apertura della pagina che mostra la configurazione degli utensili in parcheggio
SetUpBtn.Visibility = Windows.Visibility.Visible
End Select
' aggiorno le TextBlock con le lavorazioni correnti
@@ -441,6 +496,21 @@ Public Class AlarmsPageUC
CurrSawingTxBl.Visibility = Windows.Visibility.Hidden
CurrSawingTxBx.Visibility = Windows.Visibility.Hidden
End If
If m_CurrentMachine.sCurrSawingTilted <> String.Empty Then
If Not m_CurrentMachine.bApplySawingTilted Then
CurrSawingTiltedTxBx.Foreground = Brushes.Gray
CurrSawingTiltedTxBx.TextDecorations = TextDecorations.Strikethrough
Else
CurrSawingTiltedTxBx.Foreground = Brushes.White
CurrSawingTiltedTxBx.TextDecorations = Nothing
End If
CurrSawingTiltedTxBx.Text = m_CurrentMachine.sCurrSawingTilted
CurrSawingTiltedTxBl.Visibility = Windows.Visibility.Visible
CurrSawingTiltedTxBx.Visibility = Windows.Visibility.Visible
Else
CurrSawingTiltedTxBl.Visibility = Windows.Visibility.Hidden
CurrSawingTiltedTxBx.Visibility = Windows.Visibility.Hidden
End If
If m_CurrentMachine.sCurrDrilling <> String.Empty Then
CurrDrillingTxBx.Text = m_CurrentMachine.sCurrDrilling
CurrDrillingTxBl.Visibility = Windows.Visibility.Visible
@@ -641,6 +711,42 @@ Public Class AlarmsPageUC
RefreschMachining()
End Sub
' -- SAW TILTED --
Private Sub CurrSawTiltedCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrSawTiltedCmBx.SelectionChanged
If IsNothing(CurrSawTiltedCmBx.SelectedItem) Then Return
' Assegno
m_CurrentMachine.sCurrSawTilted = CurrSawTiltedCmBx.SelectedItem.ToString()
' Se nuova lama incompatibile con lavorazione di taglio corrente, resetto quest'ultima
Dim sMchTuuid As String = String.Empty
Dim sMchTool As String = String.Empty
If Not EgtMdbSetCurrMachining(m_CurrentMachine.sCurrSawingTilted) Or
Not EgtMdbGetCurrMachiningParam(MCH_MP.TUUID, sMchTuuid) Or
Not EgtTdbGetToolFromUUID(sMchTuuid, sMchTool) Or
String.Compare(sMchTool, m_CurrentMachine.sCurrSawTilted, True) <> 0 Then
m_CurrentMachine.sCurrSawingTilted = String.Empty
End If
' Dim sVal As String = String.Empty
' Dim dVal As Double = 0
' If m_CurrentMachine.GetUserNote("FsevLength", sVal, m_CurrentMachine.sCurrSaw) Then
' StringToDouble(sVal, dVal)
' m_CurrentMachine.SetFsevLength(dVal)
' End If
' If m_CurrentMachine.GetUserNote("FsevPerc", sVal, m_CurrentMachine.sCurrSaw) Then
' StringToDouble(sVal, dVal)
' m_CurrentMachine.SetFsevPerc(dVal)
' End If
'
' ' Leggo parametri per variazione feed in tagli aggiornati in funzione della lama
' CfrLenTxBx.Text = LenToString(m_CurrentMachine.dFsevLength, 3)
' CfrPercTxBx.Text = DoubleToString(m_CurrentMachine.dFsevPerc, 0)
' Aggiorno utensili per lavoro in corso
m_MainWindow.m_WorkInProgressPageUC.UpdateTools()
' aggiorno la lista delle lavorazioni
RefreschMachining()
End Sub
' -- DRILL --
Private Sub CurrDrillCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrDrillCmBx.SelectionChanged
If IsNothing(CurrDrillCmBx.SelectedItem) Then Return
@@ -1375,7 +1481,7 @@ Public Class AlarmsPageUC
Select Case m_CurrentMachine.MountedToolConfig
Case CurrentMachine.MountedToolConfigs.SAW
Return New ToolPos(m_CurrentMachine.sCurrSaw, "T100", True)
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL, CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL, CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
Dim ChooseTool As New ChooseToolWD(m_MainWindow)
If ChooseTool.ShowDialog Then
Return ChooseTool.GetSelectedTool
+12
View File
@@ -76,6 +76,18 @@ Public Class ChooseToolWD
End If
Next
Return True
Case CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
For Each ToolChangerPos As ToolChangerPos In m_MainWindow.m_CurrentMachine.ToolChanger
If Not String.IsNullOrWhiteSpace(ToolChangerPos.sTool) Then
m_SetUpToolList.Add(New ToolPos(ToolChangerPos.sTool, ToolChangerPos.sName, False))
End If
Next
For Each ToolChangerPos As ToolChangerPos In m_MainWindow.m_CurrentMachine.ManualToolChanger
If Not String.IsNullOrWhiteSpace(ToolChangerPos.sTool) Then
m_SetUpToolList.Add(New ToolPos(ToolChangerPos.sTool, ToolChangerPos.sName, False))
End If
Next
Return True
Case Else
Return False
End Select
+73 -14
View File
@@ -107,6 +107,7 @@ Public Class CurrentMachine
' Variabili che contengono il nome degli utensili disponibili per tipo
Private m_sCurrSaw As String = String.Empty
Private m_sCurrSawTilted As String = String.Empty
Private m_sCurrDrill As String = String.Empty
Private m_sCurrMill As String = String.Empty
Private m_sCurrMillNoTip As String = String.Empty
@@ -116,6 +117,8 @@ Public Class CurrentMachine
' Variabili che contengono le lavorazioni correntemente attive (utilizzate per definire lavorazioni nel programma)
Private m_sCurrSawing As String = String.Empty
Private m_sCurrSawingTilted As String = String.Empty
Private m_bApplySawingTilted As Boolean = False
Private m_sCurrDrilling As String = String.Empty
Private m_sCurrMilling As String = String.Empty
Private m_sCurrPocketing As String = String.Empty
@@ -132,6 +135,7 @@ Public Class CurrentMachine
Private m_dAdditionalTable As Double = 0
Private m_dTab2AdditionalTable As Double = 0
Private m_dTab3AdditionalTable As Double = 0
Private m_dTab4AdditionalTable As Double = 0
Private m_bCenterRawOnX As Boolean = False
' Offset aggiuntivi per fotografia
@@ -193,6 +197,7 @@ Public Class CurrentMachine
SAWANDAUXTOOL = 1
MANUALTOOLCHANGER = 2
TOOLCHANGER = 3
TOOLCHANGERWITHSAW = 4
End Enum
' Massimo numero di utensili su Tc
@@ -573,6 +578,18 @@ Public Class CurrentMachine
End Set
End Property
Friend Property sCurrSawTilted As String
Get
Return m_sCurrSawTilted
End Get
Set(value As String)
If WritePrivateProfileString(S_MACH_MACH, K_CURRSAWTILTED, value, sMachIniFile) Then
m_sCurrSawTilted = value
' m_MainWindow.m_CurrentProjectPageUC.ToolTxBx.Text = value
End If
End Set
End Property
Friend Property sCurrDrill As String
Get
Return m_sCurrDrill
@@ -647,18 +664,32 @@ Public Class CurrentMachine
If WritePrivateProfileString(S_MACH_MACH, K_CURRSAWING, value, sMachIniFile) Then
m_sCurrSawing = value
m_MainWindow.m_CurrentProjectPageUC.MachiningTxBx.Text = value
'' aggiorno il file ini della macchina con i valori correnti della lavorazione
'Dim sVal As String = String.Empty
'Dim dVal As Double = m_dFsevLength
'If GetUserNote("FsevLength", sVal, m_sCurrSawing, False) Then
' StringToDouble(sVal, dVal)
' SetFsevLength(dVal)
'End If
'dVal = m_dFsevPerc
'If GetUserNote("FsevPerc", sVal, m_sCurrSawing, False) Then
' StringToDouble(sVal, m_dFsevPerc)
' SetFsevPerc(dVal)
'End If
End If
End Set
End Property
Friend Property sCurrSawingTilted As String
Get
Return m_sCurrSawingTilted
End Get
Set(value As String)
If WritePrivateProfileString(S_MACH_MACH, K_CURRSAWINGTILTED, value, sMachIniFile) Then
m_sCurrSawingTilted = value
'm_MainWindow.m_CurrentProjectPageUC.MachiningTxBx.Text = value
End If
End Set
End Property
Friend Property bApplySawingTilted As Boolean
Get
Return m_bApplySawingTilted
End Get
Set(value As Boolean)
m_bApplySawingTilted = value
If m_bApplySawingTilted Then
WritePrivateProfileString(S_MACH_MACH, K_APPLYSAWINGTILTED, "1", sMachIniFile)
Else
WritePrivateProfileString(S_MACH_MACH, K_APPLYSAWINGTILTED, "0", sMachIniFile)
End If
End Set
End Property
@@ -803,10 +834,12 @@ Public Class CurrentMachine
Friend Property dAdditionalTable As Double
Get
Select Case GetCurrentTable()
Case 3
Return m_dTab3AdditionalTable
Case 2
Return m_dTab2AdditionalTable
Case 3
Return m_dTab3AdditionalTable
Case 4
Return m_dTab4AdditionalTable
Case Else
Return m_dAdditionalTable
End Select
@@ -814,6 +847,19 @@ Public Class CurrentMachine
Set(value As Double)
Dim dValue As Double = 0
Select Case GetCurrentTable()
Case 4
If Math.Abs(value - m_dTab4AdditionalTable) > EPS_SMALL And
WritePrivateProfileString(S_TABLE, K_TAB4_ADDITIONALTABLE, DoubleToString(value, 3), sMachIniFile) Then
' Aggiorno il valore corrente
m_dTab4AdditionalTable = value
' Aggiorno il progetto corrente
m_MainWindow.m_CurrentProjectPageUC.AdjustAdditionalTable()
' salvo il valore della sovratavola nel progetto
EgtGetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB3_ADDITIONALTABLE, dValue)
If Math.Abs(dValue - value) > EPS_SMALL Then
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB3_ADDITIONALTABLE, value)
End If
End If
Case 3
If Math.Abs(value - m_dTab3AdditionalTable) > EPS_SMALL And
WritePrivateProfileString(S_TABLE, K_TAB3_ADDITIONALTABLE, DoubleToString(value, 3), sMachIniFile) Then
@@ -1273,6 +1319,14 @@ Public Class CurrentMachine
' Leggo utensili correnti
' lama
GetPrivateProfileString(S_MACH_MACH, K_CURRSAW, Nothing, m_sCurrSaw, sMachIniFile)
' lama inclinata
If m_MountedToolConfig = 4 Then
GetPrivateProfileString(S_MACH_MACH, K_CURRSAWTILTED, Nothing, m_sCurrSawTilted, sMachIniFile)
Else
' se non è configurato il cambio utensile e allora imposto l'unica lama disponibile per i tagli inclinati
m_sCurrSawTilted = m_sCurrSaw
End If
' foretto
GetPrivateProfileString(S_MACH_MACH, K_CURRDRILL, Nothing, m_sCurrDrill, sMachIniFile)
' fresa
@@ -1289,6 +1343,10 @@ Public Class CurrentMachine
' Leggo lavorazioni correnti
' lama
GetPrivateProfileString(S_MACH_MACH, K_CURRSAWING, Nothing, m_sCurrSawing, sMachIniFile)
' lama inlicnata
GetPrivateProfileString(S_MACH_MACH, K_CURRSAWINGTILTED, Nothing, m_sCurrSawingTilted, sMachIniFile)
' applica lavorazione di lama inclinata
m_bApplySawingTilted = (GetPrivateProfileInt(S_MACH_MACH, K_APPLYSAWINGTILTED, 0, sMachIniFile) <> 0)
' foretto
GetPrivateProfileString(S_MACH_MACH, K_CURRDRILLING, Nothing, m_sCurrDrilling, sMachIniFile)
' fresa
@@ -1342,6 +1400,7 @@ Public Class CurrentMachine
m_dAdditionalTable = GetPrivateProfileDouble(S_TABLE, K_ADDITIONALTABLE, 0, sMachIniFile)
m_dTab2AdditionalTable = GetPrivateProfileDouble(S_TABLE, K_TAB2_ADDITIONALTABLE, 0, sMachIniFile)
m_dTab3AdditionalTable = GetPrivateProfileDouble(S_TABLE, K_TAB3_ADDITIONALTABLE, 0, sMachIniFile)
m_dTab4AdditionalTable = GetPrivateProfileDouble(S_TABLE, K_TAB4_ADDITIONALTABLE, 0, sMachIniFile)
' Leggo centratura del pezzo in X sulla tavola (per macchine con nastro)
m_bCenterRawOnX = (GetPrivateProfileInt(S_TABLE, K_CENTER_RAW_ONX, 0, sMachIniFile) <> 0)
+5 -5
View File
@@ -41,7 +41,7 @@ Public Class MachineCNPageUC
If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
PowerONBtn.Content = "ON"
PowerOFFBtn.Content = "OFF"
PowerGpBx.Header = "Power"
PowerGpBx.Header = EgtMsg(90974) 'Power
Else
PowerGpBx.Visibility = Visibility.Collapsed
End If
@@ -49,7 +49,7 @@ Public Class MachineCNPageUC
' verifico che sia attiva la modalità per l'uso di due fotocamere
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ENABLE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
CameraHQ.Visibility = Visibility.Visible
CameraHQ.Header = "Photo on table"
CameraHQ.Header = EgtMsg(90975) 'Photo on table
CameraHQBtn.Content = "HQ"
' verifico quale camera è impostata
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ACTIVATE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
@@ -177,7 +177,7 @@ Public Class MachineCNPageUC
If m_MainWindow.m_CNCommunication.m_nNCType = 3 AndAlso m_MainWindow.m_CNCommunication.m_CN.m_IsSiemensOne Then
Dim sDBVarPath As String = ""
GetPrivateProfileString(S_NCSIEMENS, K_DBVARPATH, "", sDBVarPath, m_MainWindow.GetMachIniFile)
sDBVarPath &= "Start_Cycle"
sDBVarPath &= EgtMsg(90976) ' Start_Cycle
m_CN.DVariables_WriteVariables3(sDBVarPath, 1, 1, 0, 0, "") ' Modalità manuale
Else
m_CN.DGeneralFunctions_CycleStart()
@@ -188,7 +188,7 @@ Public Class MachineCNPageUC
If m_MainWindow.m_CNCommunication.m_nNCType = 3 AndAlso m_MainWindow.m_CNCommunication.m_CN.m_IsSiemensOne Then
Dim sDBVarPath As String = ""
GetPrivateProfileString(S_NCSIEMENS, K_DBVARPATH, "", sDBVarPath, m_MainWindow.GetMachIniFile)
sDBVarPath &= "Stop_Cycle"
sDBVarPath &= EgtMsg(90977) ' Stop_Cycle
m_CN.DVariables_WriteVariables3(sDBVarPath, 1, 0, 0, 0, "") ' Modalità manuale
Else
m_CN.DGeneralFunctions_FeedHold()
@@ -199,7 +199,7 @@ Public Class MachineCNPageUC
If m_MainWindow.m_CNCommunication.m_nNCType = 3 AndAlso m_MainWindow.m_CNCommunication.m_CN.m_IsSiemensOne Then
Dim sDBVarPath As String = ""
GetPrivateProfileString(S_NCSIEMENS, K_DBVARPATH, "", sDBVarPath, m_MainWindow.GetMachIniFile)
sDBVarPath &= "Reset_Cycle"
sDBVarPath &= EgtMsg(90978) ' Reset_Cycle
m_CN.DVariables_WriteVariables3(sDBVarPath, 1, 1, 0, 0, "") ' Modalità manuale
Else
Call m_CN.DGeneralFunctions_Reset()
+10 -6
View File
@@ -279,12 +279,16 @@ Public Class MachineStatusUC
Sub DisplayFeed()
Dim dRealFeed As Double = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
' modifica richiesta 26/05/2023 da Rosario per cliente Lanzetta
If m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
dRealFeed = m_CN.d_DInterpo_Prog_Feed
Else
dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
End If
'' modifica richiesta 26/05/2023 da Rosario per cliente Lanzetta (lettura feed per CN Fanuc)
'If m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
' dRealFeed = m_CN.d_DInterpo_Prog_Feed
'Else
' dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
'End If
' modifica richiesta 24/03/2025 da Fabio per cliente Frigerio
dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
'Feed = DoubleToString(dRealFeed, 0)
FeedTxBx.Text = LenToString(dRealFeed, 0, True)
'FeedOverride = DoubleToString(m_CN.d_DInterpo_Feed_override, 0) & "%"
+2 -2
View File
@@ -79,8 +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"
ExportBtn.Content = EgtMsg(91126) ' Export
ImportBtn.Content = EgtMsg(91127) ' Import
NameTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 1)
DepthTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 2)
+90 -37
View File
@@ -3,6 +3,8 @@ Imports System.ComponentModel
Imports OmagCUT.TreeViewItem
Imports EgtUILib
Imports EgtWPFLib
Imports EgtWPFLib5
Imports FXServer
Public Class SetUpPage
@@ -13,6 +15,7 @@ Public Class SetUpPage
Private m_CurrMachine As CurrentMachine = m_MainWindow.m_CurrentMachine
Private m_ToolTreeList As New ObservableCollection(Of CathegoryItem)
Private m_SawsList As CathegoryItem
Private m_DrillbitsList As CathegoryItem
Private m_MillsList As CathegoryItem
Private m_CupsList As CathegoryItem
@@ -26,10 +29,10 @@ Public Class SetUpPage
' Assegno la lista utensili come sorgente dell'albero
ToolTree.ItemsSource = m_ToolTreeList
If m_CurrMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then
If m_CurrMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Or m_CurrMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
'' Cambio utensile macchina
' Modifico numero colonne della griglia in base al numero di porta utensili disponibili sulla macchina
Dim ColNum As Integer = CInt( Math.Ceiling( m_CurrMachine.ToolChangerNbr / 5.0))
Dim ColNum As Integer = CInt(Math.Ceiling(m_CurrMachine.ToolChangerNbr / 5.0))
If ColNum > 12 Then
EgtOutLog("TC warning : too many tools (max 12 * 5)")
ColNum = 12
@@ -59,11 +62,11 @@ Public Class SetUpPage
'' Cambio utensile manuale
' Modifico numero colonne della griglia in base al numero di porta utensili disponibili sulla macchina
Dim ManColNum As Integer = CInt( Math.Ceiling( m_CurrMachine.ManualToolChangerNbr / 5.0))
If ManColNum > 12 Then
EgtOutLog("ManTC warning : too many tools (max 12 * 5)")
ManColNum = 12
End If
Dim ManColNum As Integer = CInt(Math.Ceiling(m_CurrMachine.ManualToolChangerNbr / 5.0))
If ManColNum > 12 Then
EgtOutLog("ManTC warning : too many tools (max 12 * 5)")
ManColNum = 12
End If
For Index As Integer = 12 To ManColNum + 1 Step -1
For Index2 As Integer = Index * 5 To (Index - 1) * 5 + 1 Step -1
ManTlChGrid.Children.Remove(GetManTlChPosFromIndex(Index2))
@@ -85,7 +88,7 @@ Public Class SetUpPage
Next
' Se portautensili della macchina presente
If m_CurrMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then
If m_CurrMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Or m_CurrMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
' Apro quello
TlChScVw.Visibility = Windows.Visibility.Visible
ToolChangerBtn.IsChecked = True
@@ -106,15 +109,25 @@ Public Class SetUpPage
Private Sub SetUpPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
' Inizializzo le famiglie di utensili nell'albero
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
InitializeToolGroup( m_CurrMachine.bDrill, MCH_TY.DRILL_STD, EgtMsg( 90752), m_DrillbitsList)
InitializeToolGroup( m_CurrMachine.bMill, MCH_TY.MILL_STD, EgtMsg( 90753), m_MillsList)
InitializeToolGroup( m_CurrMachine.bCupWheel, MCH_TY.MILL_NOTIP, EgtMsg( 90754), m_CupsList)
InitializeToolGroup( m_CurrMachine.bPolishingWheel, MCH_TY.MILL_POLISHING, EgtMsg( 90756), m_PolishingsList)
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then InitializeToolGroup(m_CurrMachine.bSaw, MCH_TY.SAW_STD, EgtMsg(90751), m_SawsList)
InitializeToolGroup(m_CurrMachine.bDrill, MCH_TY.DRILL_STD, EgtMsg(90752), m_DrillbitsList)
InitializeToolGroup(m_CurrMachine.bMill, MCH_TY.MILL_STD, EgtMsg(90753), m_MillsList)
InitializeToolGroup(m_CurrMachine.bCupWheel, MCH_TY.MILL_NOTIP, EgtMsg(90754), m_CupsList)
InitializeToolGroup(m_CurrMachine.bPolishingWheel, MCH_TY.MILL_POLISHING, EgtMsg(90756), m_PolishingsList)
' Posiziono utensili già posizionati sul portautensili
For Each ToolPosition As ToolChangerPos In m_CurrMachine.ToolChanger
If ToolPosition.sTool <> String.Empty Then
If Not IsNothing( m_DrillbitsList) Then
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW AndAlso Not IsNothing(m_SawsList) Then
For Each Item As CustomItem In m_SawsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
m_SawsList.Items.Remove(Item)
Exit For
End If
Next
End If
If Not IsNothing(m_DrillbitsList) Then
For Each Item As CustomItem In m_DrillbitsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -123,7 +136,7 @@ Public Class SetUpPage
End If
Next
End If
If Not IsNothing( m_MillsList) Then
If Not IsNothing(m_MillsList) Then
For Each Item As CustomItem In m_MillsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -132,7 +145,7 @@ Public Class SetUpPage
End If
Next
End If
If Not IsNothing( m_CupsList) Then
If Not IsNothing(m_CupsList) Then
For Each Item As CustomItem In m_CupsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -141,7 +154,7 @@ Public Class SetUpPage
End If
Next
End If
If Not IsNothing( m_PolishingsList) Then
If Not IsNothing(m_PolishingsList) Then
For Each Item As CustomItem In m_PolishingsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -158,7 +171,7 @@ Public Class SetUpPage
' Posiziono utensili già posizionati sul portautensili manuale
For Each ToolPosition As ToolChangerPos In m_CurrMachine.ManualToolChanger
If ToolPosition.sTool <> String.Empty Then
If Not IsNothing( m_DrillbitsList) Then
If Not IsNothing(m_DrillbitsList) Then
For Each Item As CustomItem In m_DrillbitsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -167,7 +180,7 @@ Public Class SetUpPage
End If
Next
End If
If Not IsNothing( m_MillsList) Then
If Not IsNothing(m_MillsList) Then
For Each Item As CustomItem In m_MillsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -176,7 +189,7 @@ Public Class SetUpPage
End If
Next
End If
If Not IsNothing( m_CupsList) Then
If Not IsNothing(m_CupsList) Then
For Each Item As CustomItem In m_CupsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -185,7 +198,7 @@ Public Class SetUpPage
End If
Next
End If
If Not IsNothing( m_PolishingsList) Then
If Not IsNothing(m_PolishingsList) Then
For Each Item As CustomItem In m_PolishingsList.Items
If Item.Name = ToolPosition.sTool Then
m_SetUpToolsList.Items.Add(Item)
@@ -710,16 +723,16 @@ Public Class SetUpPage
End Function
' Funzione che carica gli utensili del Db nell'albero
Friend Sub InitializeToolGroup( bEnabled As Boolean, nTType As Integer, sFName As String, ByRef ToolCathegory As CathegoryItem)
Friend Sub InitializeToolGroup(bEnabled As Boolean, nTType As Integer, sFName As String, ByRef ToolCathegory As CathegoryItem)
If Not bEnabled Then Return
' Inserisco categoria ed eventuali elementi
ToolCathegory = New CathegoryItem( sFName, nTType)
ToolCathegory = New CathegoryItem(sFName, nTType)
Dim nType As Integer = 0
Dim ToolName As String = String.Empty
Dim bFound As Boolean = EgtTdbGetFirstTool( nTType, ToolName, nType)
Dim bFound As Boolean = EgtTdbGetFirstTool(nTType, ToolName, nType)
While bFound
If nType = nTType Then ToolCathegory.Items.Add( New CustomItem( ToolName, nType))
bFound = EgtTdbGetNextTool( nTType, ToolName, nType)
If nType = nTType Then ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
bFound = EgtTdbGetNextTool(nTType, ToolName, nType)
End While
m_ToolTreeList.Add(ToolCathegory)
End Sub
@@ -761,7 +774,7 @@ Public Class SetUpPage
ToolHolderClicked.Tool.IsChecked = False
GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty
End If
' altrimenti da levare
' altrimenti da levare
Else
RestoreToolInList(GetTxBxFromTlChPos(ToolHolderClicked.Name).Text)
GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty
@@ -771,14 +784,17 @@ Public Class SetUpPage
' Funzione che rimuove l'utensile selezionato dall'albero
Private Sub RemoveToolFromList()
If Not IsNothing( m_DrillbitsList) AndAlso m_DrillbitsList.Items.Contains( ToolTree.SelectedItem) Then
m_DrillbitsList.Items.Remove( ToolTree.SelectedItem)
ElseIf Not IsNothing( m_MillsList) AndAlso m_MillsList.Items.Contains( ToolTree.SelectedItem) Then
m_MillsList.Items.Remove( ToolTree.SelectedItem)
ElseIf Not IsNothing( m_CupsList) AndAlso m_CupsList.Items.Contains( ToolTree.SelectedItem) Then
m_CupsList.Items.Remove( ToolTree.SelectedItem)
ElseIf Not IsNothing( m_PolishingsList) AndAlso m_PolishingsList.Items.Contains( ToolTree.SelectedItem) Then
m_PolishingsList.Items.Remove( ToolTree.SelectedItem)
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW AndAlso
Not IsNothing(m_SawsList) AndAlso m_SawsList.Items.Contains(ToolTree.SelectedItem) Then
m_SawsList.Items.Remove(ToolTree.SelectedItem)
ElseIf Not IsNothing(m_DrillbitsList) AndAlso m_DrillbitsList.Items.Contains(ToolTree.SelectedItem) Then
m_DrillbitsList.Items.Remove(ToolTree.SelectedItem)
ElseIf Not IsNothing(m_MillsList) AndAlso m_MillsList.Items.Contains(ToolTree.SelectedItem) Then
m_MillsList.Items.Remove(ToolTree.SelectedItem)
ElseIf Not IsNothing(m_CupsList) AndAlso m_CupsList.Items.Contains(ToolTree.SelectedItem) Then
m_CupsList.Items.Remove(ToolTree.SelectedItem)
ElseIf Not IsNothing(m_PolishingsList) AndAlso m_PolishingsList.Items.Contains(ToolTree.SelectedItem) Then
m_PolishingsList.Items.Remove(ToolTree.SelectedItem)
End If
End Sub
@@ -786,7 +802,9 @@ Public Class SetUpPage
Private Sub RestoreToolInList(sToolName As String)
For Each Tool As CustomItem In m_SetUpToolsList.Items
If Tool.Name = sToolName Then
If Tool.nType = MCH_TY.DRILL_STD Then
If Tool.nType = MCH_TY.SAW_STD Then
m_SawsList.Items.Add(Tool)
ElseIf Tool.nType = MCH_TY.DRILL_STD Then
m_DrillbitsList.Items.Add(Tool)
ElseIf Tool.nType = MCH_TY.MILL_STD Then
m_MillsList.Items.Add(Tool)
@@ -1084,6 +1102,39 @@ Public Class SetUpPage
EgtTdbSave()
End Sub
' Funzione che genera il file di setup corrente (per Cam5 e Office)
Private Sub SaveSetUpFile()
If m_CurrMachine.MountedToolConfig <> CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then Return
Dim sContentFile As String = EgtMsg(91239) & vbCrLf ' ; this file has been created by program OmagCUT by current setup
sContentFile &= EgtMsg(91240) & vbCrLf ' [General]
For Each ToolPosition As ToolChangerPos In m_CurrMachine.ToolChanger
Dim sToolName As String = ToolPosition.sTool
Dim sPositionName As String = ToolPosition.sName
Dim sPosition As Integer = ToolPosition.nPosition
If Not String.IsNullOrEmpty(sToolName) Then
EgtTdbSetCurrTool(sToolName)
' Recupero l'uscita
Dim nExit As Integer = 1
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nExit)
' Recupero la testa
Dim sHead As String = ""
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sHead)
' Recupero nome file nge dell'utensile
Dim sUUID As String = ""
EgtTdbGetCurrToolParam(MCH_TP.UUID, sUUID)
'local sRaw='Pos'..tostring(Index)..'='..TcPos..';'..EgtTdbGetCurrToolParam( MCH_TP.HEAD)..';'..EgtTdbGetCurrToolParam( MCH_TP.EXIT)..'/'..EgtTdbGetCurrToolParam( MCH_TP.UUID)..'/'..ToolName
sContentFile &= "Pos" & sPosition.ToString & "=" & sPositionName & ";" & sHead & ";" & nExit.ToString & "/" & sUUID & "/" & sToolName & vbCrLf
End If
Next
' Apro il file e lo sovrascrivo
Dim sFileOmagCutSetUp As String = m_CurrMachine.sMachDir & "\SetUp\CurrOmagCUT.stu"
Try
My.Computer.FileSystem.WriteAllText(sFileOmagCutSetUp, sContentFile, False)
Catch ex As Exception
EgtOutLog("Error in creatinf file CurrOmagCUT.stu: " & ex.ToString)
End Try
End Sub
' Evento che permette di aprire le cartelle degli utensili con un click singolo
Private Sub ToolTree_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ToolTree.PreviewMouseUp
If TypeOf ToolTree.SelectedItem Is CathegoryItem Then
@@ -1095,6 +1146,8 @@ Public Class SetUpPage
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
' Eseguo salvataggio (DB utensili + attrezzaggio)
SaveToolChangerStatus()
' Salvo nel file di setup l'attuale configurazione
SaveSetUpFile()
' Esco
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_MainWindow.m_MachinePageUC.m_AlarmsPageUC)
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(Me)
@@ -1131,7 +1184,7 @@ Public Class SetUpPage
RemoveToolFromList()
Else
' Altrimenti segnalo che la posizione è già occupata
Dim InfoMsgBox As New EgtMsgBox(m_MainWindow, "", EgtMsg( 90759), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.ESCLAMATION)
Dim InfoMsgBox As New EgtMsgBox(m_MainWindow, "", EgtMsg(90759), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.ESCLAMATION)
End If
Return
End If
@@ -1149,7 +1202,7 @@ Public Class SetUpPage
RemoveToolFromList()
Else
' Altrimenti segnalo che la posizione è già occupata
Dim InfoMsgBox As New EgtMsgBox(m_MainWindow, "", EgtMsg( 90759), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.ESCLAMATION)
Dim InfoMsgBox As New EgtMsgBox(m_MainWindow, "", EgtMsg(90759), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.ESCLAMATION)
End If
Return
End If
+1 -1
View File
@@ -18,7 +18,7 @@
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Fill" TargetName="Ellipse" Value="#FFB4B4B4"/>
<Setter Property="Fill" TargetName="Ellipse" Value="#414141"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
+69 -38
View File
@@ -1,12 +1,12 @@
<UserControl x:Class="ToolsDbPageUC"
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="ToolsDbPage_Initialized" Loaded="ToolsDbPage_Loaded">
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="ToolsDbPage_Initialized" Loaded="ToolsDbPage_Loaded">
<!-- Definizione della ImportPage -->
<Border Style="{DynamicResource OmagCut_PageBorder}">
@@ -24,7 +24,7 @@
<TreeView Name="ToolTreeView" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}" >
<TreeView.Resources>
<!--Modifico HierarchicalDataTemplate del CathegoryItem per poter inserire immagine e testo e per -->
<!--Modifico HierarchicalDataTemplate del CathegoryItem per poter inserire immagine e testo e per -->
<!--renderlo apribile con un solo click -->
<HierarchicalDataTemplate DataType="{x:Type self:CathegoryItem}" ItemsSource="{Binding Items}">
@@ -224,12 +224,12 @@
</Grid.RowDefinitions>
<TextBlock Name="NameTxBl" Grid.Column="0" Grid.Row="0" Grid.RowSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="NameTxBx" Grid.Column="1" Grid.Row="0" Grid.RowSpan="3"
Style="{DynamicResource OmagCut_LeftKeyboardTextBoxNoBorder}"/>
Style="{DynamicResource OmagCut_LeftKeyboardTextBoxNoBorder}"/>
<Border Name="TCPosBrd" Grid.Column="2" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="3"
BorderThickness="0" BorderBrush="Black" CornerRadius="3">
BorderThickness="0" BorderBrush="Black" CornerRadius="3">
<Grid>
<Grid.ColumnDefinitions>
@@ -237,17 +237,27 @@
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="TCPosTxBl" Grid.Column="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<TextBlock Name="TCPosTxBl" Grid.Column="0">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_LowerCaseCharacterTextBlock}">
<Setter Property="Margin" Value="10,0,0,0"/>
<Style.Triggers>
<Trigger Property="ToolTip" Value="">
<Setter Property="ToolTipService.IsEnabled" Value="False" />
</Trigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<EgtWPFLib:EgtTextBox Name="TCPosTxBx" Grid.Column="1" Grid.Row="0" Margin="0,0,15,0"
Style="{DynamicResource OmagCut_KeyboardTextBox}" />
Style="{DynamicResource OmagCut_KeyboardTextBox}" />
</Grid>
</Border>
<Border Name="HeadExitBrd" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="3"
Style="{DynamicResource OmagCut_NoNameGroupBorder}">
Style="{DynamicResource OmagCut_NoNameGroupBorder}">
<Grid>
<Grid.ColumnDefinitions>
@@ -259,18 +269,18 @@
<TextBlock Name="HeadTxBl" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="HeadTxBx" Grid.Column="1"
Style="{DynamicResource OmagCut_LeftKeyboardTextBoxNoBorder}" />
Style="{DynamicResource OmagCut_LeftKeyboardTextBoxNoBorder}" />
<TextBlock Name="ExitTxBl" Grid.Column="2" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ExitTxBx" Grid.Column="3"
Style="{DynamicResource OmagCut_RightCalculatorTextBoxInBorder}" />
Style="{DynamicResource OmagCut_RightCalculatorTextBoxInBorder}" />
</Grid>
</Border>
<GroupBox Name="SpeedGpBx" Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="4" Grid.RowSpan="4"
Style="{DynamicResource OmagCut_GroupBox}">
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
@@ -282,19 +292,19 @@
<TextBlock Name="SpeedTxBl" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="SpeedTxBx" Grid.Column="1" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
<TextBlock Name="MaxSpeedTxBl" Grid.Column="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="MaxSpeedTxBx" Grid.Column="3" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
</Grid>
</GroupBox>
<GroupBox Name="FeedGpBx" Grid.Column="0" Grid.Row="10" Grid.ColumnSpan="4" Grid.RowSpan="6"
Style="{DynamicResource OmagCut_GroupBox}">
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
@@ -309,23 +319,23 @@
</Grid.RowDefinitions>
<TextBlock Name="FeedTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="FeedTxBx" Grid.Column="1" Grid.Row="0"
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
<TextBlock Name="TipFeedTxBl" Grid.Column="2" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="TipFeedTxBx" Grid.Column="3" Grid.Row="0"
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
<TextBlock Name="StartFeedTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="StartFeedTxBx" Grid.Column="1" Grid.Row="1"
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
<TextBlock Name="EndFeedTxBl" Grid.Column="2" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="EndFeedTxBx" Grid.Column="3" Grid.Row="1"
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
</Grid>
@@ -336,7 +346,7 @@
<ComboBox Name="CoolantCmBx" Grid.Column="1" Grid.Row="16" Grid.RowSpan="3" Style="{StaticResource OmagCut_LeftComboBoxNoBorder}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
<TextBlock Text="{Binding}" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
@@ -420,11 +430,32 @@
<CheckBox Name="EndLifeChBx" Grid.Column="3" Grid.Row="31" Grid.RowSpan="3"
Style="{StaticResource OmagCut_CheckBox_Single}" Margin="0,8,0,0"/>
<TextBlock Name="UserNotesTxBl" Grid.Column="0" Grid.Row="33" Grid.RowSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="UserNotesTxBx" Grid.Column="1" Grid.Row="33"
Grid.RowSpan="3" Grid.ColumnSpan="3" Margin="0,0,15,0"
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
<Grid Grid.Column="0" Grid.Row="33" Grid.RowSpan="3" Grid.ColumnSpan="4">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Name="UserNotesTxBl"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="UserNotesTxBx"
Grid.RowSpan="3" Grid.ColumnSpan="3" Margin="0,0,15,0"
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,12,0">
<TextBlock Name="ColorTxBl" Margin="0,0,15,0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<Button Name="ColorBtn"
Style="{StaticResource Color_Button}" />
</StackPanel>
</Grid>
</Grid>
@@ -445,7 +476,7 @@
<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>
</Grid>
</Grid>
+96 -2
View File
@@ -1,6 +1,5 @@
Imports System.Collections.ObjectModel
Imports OmagCUT.TreeViewItem
Imports System.ComponentModel
Imports EgtUILib
Imports EgtWPFLib
Imports EgtWPFLib5
@@ -84,6 +83,7 @@ Public Class ToolsDbPageUC
CodeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 27) ' Code
SupplierTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 28) ' Supplier
EndLifeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 29) ' End Life
ColorTxBl.Text = EgtMsg(91018) ' Colore lavorazione
' Associo TextBox e Label
Dim TempLabel1 As New Label
@@ -122,7 +122,6 @@ Public Class ToolsDbPageUC
Dim TempLabel12 As New Label
TempLabel12.Content = MaxMatTxBl.Text
MaxMatTxBx.Tag = TempLabel12
End Sub
Private Sub ToolsDbPage_Loaded(sender As Object, e As RoutedEventArgs)
@@ -568,6 +567,15 @@ Public Class ToolsDbPageUC
End If
End Sub
Private Sub ColorBtn_Click(sender As Object, e As RoutedEventArgs) Handles ColorBtn.Click
' Il click sul bottone aprirà la finestra ChooseColor che permetterà la scelta del colore
m_MainWindow.m_brCurrentColor = ColorBtn.Background
Dim ChooseColor As New ChooseColor(m_MainWindow)
If ChooseColor.ShowDialog() Then
ColorBtn.Background = m_MainWindow.m_brCurrentColor
End If
End Sub
Private Function AlreadyExist(ToolName As String) As Boolean
Dim ToolFamily As CathegoryItem
For Each ToolFamily In ToolsList
@@ -766,6 +774,50 @@ Public Class ToolsDbPageUC
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, ToolString)
UserNotesTxBx.Text = ToolString
End If
' Inizializzo colore di default
Dim EgtCol As Color3d = Utility.GetColorPV()
ColorBtn.Background = New SolidColorBrush(Color.FromRgb(EgtCol.R, EgtCol.G, EgtCol.B))
' Eventualmente verifico se inserito nel setup
VerifyToolInSetUp(m_sToolName, TCPosTxBx.Text)
End Sub
Private Sub VerifyToolInSetUp(sNameTool As String, sTCPos As String)
' Se configurato cambio utensile lama
If m_MainWindow.m_CurrentMachine.MountedToolConfig <> CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then Return
Dim bFound As Boolean = False
Dim sCurrTCPos As String = String.Empty
For Each ToolPosition As ToolChangerPos In m_MainWindow.m_CurrentMachine.ToolChanger
If ToolPosition.sTool <> String.Empty Then
If sNameTool = ToolPosition.sTool Then
sCurrTCPos = ToolPosition.sName
bFound = True
Exit For
End If
End If
Next
If Not bFound Then
TCPosTxBl.Foreground = Brushes.Red
If String.IsNullOrEmpty(sTCPos) Then
TCPosTxBl.ToolTip = EgtMsg(91019)
Else
TCPosTxBl.ToolTip = EgtMsg(91020)
End If
Else
If String.IsNullOrEmpty(sTCPos) Then
TCPosTxBl.Foreground = Brushes.Gold
TCPosTxBl.ToolTip = EgtMsg(91021) & " " & sCurrTCPos
Else
If sTCPos <> sCurrTCPos Then
TCPosTxBl.Foreground = Brushes.Gold
TCPosTxBl.ToolTip = EgtMsg(91022) & " " & sCurrTCPos
Else
TCPosTxBl.Foreground = Brushes.White
TCPosTxBl.ToolTip = ""
End If
End If
End If
End Sub
Private Sub SetToolParams()
@@ -821,8 +873,40 @@ Public Class ToolsDbPageUC
If Not SetSpecials() Then
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotesTxBx.Text)
End If
EgtTdbSetCurrToolValInNotes(MCH_TP.SYSNOTES, "COLOR", ColorToString(ColorBtn.Background.ToString()))
End Sub
Private Function ColorToString(color As String) As String
Dim colorCut As Color = HexToRbgNew(color)
Return colorCut.R & "," & colorCut.G & "," & colorCut.B
End Function
Public Function HexToRbgNew(ByVal Hex As String) As Color
If Hex.StartsWith("#") Then
Hex = Hex.Remove(0, 3)
End If
Dim red As Byte = CByte(HexadecimalToDecimal(Hex.Substring(0, 2)))
Dim green As Byte = CByte(HexadecimalToDecimal(Hex.Substring(2, 2)))
Dim blue As Byte = CByte(HexadecimalToDecimal(Hex.Substring(4, 2)))
Return Color.FromArgb(255, red, green, blue)
End Function
Private Shared Function HexadecimalToDecimal(hex As String) As Integer
hex = hex.ToUpper()
Dim hexLength As Integer = hex.Length
Dim dec As Double = 0
For i As Integer = 0 To hexLength - 1
Dim b As Byte = CByte(AscW(hex(i)))
If b >= 48 AndAlso b <= 57 Then
b -= 48
ElseIf b >= 65 AndAlso b <= 70 Then
b -= 55
End If
dec += b * Math.Pow(16, ((hexLength - i) - 1))
Next
Return CInt(Math.Truncate(dec))
End Function
Private Sub ViewToolParams()
NameTxBl.Visibility = Windows.Visibility.Visible
NameTxBx.Visibility = Windows.Visibility.Visible
@@ -863,6 +947,9 @@ Public Class ToolsDbPageUC
SupplierTxBx.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
EndLifeTxBl.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
EndLifeChBx.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
ColorTxBl.Visibility = If(m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW, Visibility.Visible, Visibility.Hidden)
ColorBtn.Visibility = If(m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW, Visibility.Visible, Visibility.Hidden)
End Sub
Private Sub HideToolParams()
@@ -890,6 +977,9 @@ Public Class ToolsDbPageUC
SupplierTxBx.Visibility = Windows.Visibility.Hidden
EndLifeTxBl.Visibility = Windows.Visibility.Hidden
EndLifeChBx.Visibility = Windows.Visibility.Hidden
ColorTxBl.Visibility = Visibility.Hidden
ColorBtn.Visibility = Visibility.Hidden
End Sub
Private Sub ToolTreeView_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ToolTreeView.PreviewMouseUp
@@ -1338,4 +1428,8 @@ Public Class ToolsDbPageUC
End If
End Sub
Private Sub TCPosTxBx_EgtClosed(sender As Object, e As EventArgs) Handles TCPosTxBx.EgtClosed
VerifyToolInSetUp(m_sToolName, TCPosTxBx.Text)
End Sub
End Class
+190 -164
View File
@@ -8,266 +8,292 @@
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1280" Initialized="WaterJetPage_Initialized">
<!-- Definizione della PolishingsPage -->
<Border Style="{DynamicResource OmagCut_PageBorder}">
<!-- 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>
<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"
<!--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>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Lista dei materiali-->
<ListBox Name="MaterialsLstBx"
<!--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"
<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"
<!--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"
<Button Name="DeleteMaterialBtn" Grid.Column="1"
Content="{Binding Delete_Msg}"
Command="{Binding DeleteMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="ModifyMaterialBtn" Grid.Column="1"
<Button Name="ModifyMaterialBtn" Grid.Column="1"
Content="{Binding Modify_Msg}"
Command="{Binding ModifyMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
</UniformGrid>
</UniformGrid>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
<!--Raggruppo all'interno della stessa cornice le sottocatogorie e i parametri-->
<Border Style="{DynamicResource OmagCut_Border}"
<!--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>
<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}"
<!--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>
<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}"
<!--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>
<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"
<!--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"
<!--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"
<Button Name="RemoveSubMaterialBtn" Grid.Column="1"
Content="{Binding Delete_Msg}"
Command="{Binding DeleteSubMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="ModifySubMaterialBtn" Grid.Column="1"
<Button Name="ModifySubMaterialBtn" Grid.Column="1"
Content="{Binding Modify_Msg}"
Command="{Binding ModifySubMaterialCommand}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
</UniformGrid>
</UniformGrid>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
<!--Lista dei parametri associata alla sottovcategoria dei materiali-->
<GroupBox Name="ParamsGpBx"
<!--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*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<!--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*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Thickness_Msg}" Grid.Column="0" HorizontalAlignment="Center"
<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"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
<Border Grid.Column="1" Margin="1,0,-1,-1"
Background="{StaticResource Omag_Blue}">
<TextBlock Text="{Binding Flux_Msg}" Grid.Column="1" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
</Border>
<TextBlock Text="{Binding Q1_Msg}" Grid.Column="2" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q2_Msg}" Grid.Column="2" HorizontalAlignment="Center"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
<TextBlock Text="{Binding Q2_Msg}" Grid.Column="3" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q3_Msg}" Grid.Column="3" HorizontalAlignment="Center"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
<TextBlock Text="{Binding Q3_Msg}" Grid.Column="4" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q4_Msg}" Grid.Column="4" HorizontalAlignment="Center"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
<TextBlock Text="{Binding Q4_Msg}" Grid.Column="5" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding Q5_Msg}" Grid.Column="5" HorizontalAlignment="Center"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
<TextBlock Text="{Binding Q5_Msg}" Grid.Column="6" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding QExtra_Msg}" Grid.Column="6" HorizontalAlignment="Center"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
<TextBlock Text="{Binding QExtra_Msg}" Grid.Column="7" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
<TextBlock Text="{Binding AngComp_Msg}" Grid.Column="7" HorizontalAlignment="Center"
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
<TextBlock Text="{Binding AngComp_Msg}" Grid.Column="8" HorizontalAlignment="Center"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_GroupBoxHeader}"/>
</Grid>
Foreground="{StaticResource Omag_White}"
FontSize="{DynamicResource FontSize_GroupBoxHeaderWJ}"/>
</Grid>
</GroupBox.Header>
</GroupBox.Header>
<!--Definizione della Grid dei parametri delle lavorazioni-->
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="308*"/>
<ColumnDefinition Width="73*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Definizione della Grid dei parametri delle lavorazioni-->
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="308*"/>
<ColumnDefinition Width="73*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<ListBox Name="ParamLstBx"
<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" Grid.ColumnSpan="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*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<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*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<EgtWPFLib:EgtTextBox Text="{Binding Thickness}" Grid.Column="0"
<EgtWPFLib:EgtTextBox Text="{Binding Thickness}" Grid.Column="0"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q1}" Grid.Column="1"
<Border Grid.Column="1" Margin="0,-5,0,-5"
Background="Transparent"
BorderBrush="{StaticResource Omag_Blue}" BorderThickness="3, 4, 3, 4">
<EgtWPFLib:EgtTextBox Text="{Binding Flux}" Grid.Column="1"
Margin="-2,0,-2,0"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q2}" Grid.Column="2"
</Border>
<EgtWPFLib:EgtTextBox Text="{Binding Q1}" Grid.Column="2"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q3}" Grid.Column="3"
<EgtWPFLib:EgtTextBox Text="{Binding Q2}" Grid.Column="3"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q4}" Grid.Column="4"
<EgtWPFLib:EgtTextBox Text="{Binding Q3}" Grid.Column="4"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding Q5}" Grid.Column="5"
<EgtWPFLib:EgtTextBox Text="{Binding Q4}" Grid.Column="5"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding QExtra}" Grid.Column="6"
<EgtWPFLib:EgtTextBox Text="{Binding Q5}" Grid.Column="6"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
<EgtWPFLib:EgtTextBox Text="{Binding dAngComp}" Grid.Column="7" IsLength="False"
<EgtWPFLib:EgtTextBox Text="{Binding QExtra}" Grid.Column="7"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<EgtWPFLib:EgtTextBox Text="{Binding dAngComp}" Grid.Column="8" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorParamWjTextBox}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<UniformGrid Grid.Row="2" Columns="9" Grid.ColumnSpan="2">
<Button Name="NewParamBtn" Grid.Column="0"
<UniformGrid Grid.Row="2" Columns="9" Grid.ColumnSpan="2">
<Button Name="NewParamBtn" Grid.Column="0"
Command="{Binding NewWjParamCommand}"
Content="{Binding New_Msg}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
<Button Name="RemoveParamBtn" Grid.Column="1"
<Button Name="RemoveParamBtn" Grid.Column="1"
Command="{Binding DeleteWjParamCommand}"
Content="{Binding Delete_Msg}"
Style="{DynamicResource OmagCut_WjDbRightGrayGradientYellowTextButton}"/>
</UniformGrid>
</UniformGrid>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
</Grid>
</Border>
<Button Name="SaveKitBtn" Grid.Row="2" Grid.Column="2"
</Grid>
</Border>
<Button Name="SaveKitBtn" Grid.Row="2" Grid.Column="2"
Command="{Binding SaveCommand}"
Content="{Binding Save_Msg}"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
</Grid>
</Grid>
</Border>
</Border>
</UserControl>
+7 -1
View File
@@ -405,7 +405,13 @@ Public Class WaterjetDbWindowVM
Public ReadOnly Property Thickness_Msg As String
Get
Return "Spessore"
Return "Spess."
End Get
End Property
Public ReadOnly Property Flux_Msg As String
Get
Return "mg/min"
End Get
End Property
+20 -3
View File
@@ -149,6 +149,19 @@ Class MainWindow
Options
End Enum
' Elenco delle operazioni tagli diretti (decoficiato in CamAuto per riconoscere il tipo taglio diretto)
Friend Enum FlagDirectCuts
ManualMove = 1
SingleCut = 2
GridCut = 3
SingleDrill = 4
Flattening = 5
Squaring = 6
SawTest = 7
Polishing = 8
CopyTemplate = 9
End Enum
Public Function GetExeRootDir() As String
Return m_sExeRoot
End Function
@@ -345,8 +358,8 @@ Class MainWindow
' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2703, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2703, 1, m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2705, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2705, 1, m_nKeyOptions)
' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
' Impostazione per programma OnlyFrame: solo se CUT_BASE non attivo
@@ -1218,13 +1231,17 @@ Class MainWindow
m_DirectCutPageUC.m_ControlsDirectCutUC.m_GridCut.GridCut_Unloaded(sender, e)
Case ControlsDirectCutUC.DirectCutPages.FlatteningCut
m_DirectCutPageUC.m_ControlsDirectCutUC.m_FlatteningCut.FlatteningCut_Unloaded(sender, e)
End Select
Select Case m_DirectCutPageUC.m_ControlsDirectCutUC1.m_ActiveDirectCutPage
Case ControlsDirectCutUC.DirectCutPages.CopyTemplate
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_CopyTemplate.CopyTemplate_Unloaded(sender, e)
Case ControlsDirectCutUC.DirectCutPages.Polishing
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_Polishing.Polishing_Unloaded(sender, e)
Case ControlsDirectCutUC.DirectCutPages.SawTest
Case ControlsDirectCutUC1.DirectCutPages.SawTest
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_SawTest.SawTest_Unloaded(sender, e)
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.7.3.2")>
<Assembly: AssemblyFileVersion("2.7.3.2")>
<Assembly: AssemblyVersion("2.7.6.2")>
<Assembly: AssemblyFileVersion("2.7.6.2")>
+14 -2
View File
@@ -1651,6 +1651,11 @@ Namespace Num
n_ret = objDGeneralFunctions.ActivateProgram(l_glbPartProgramNumber, 0)
If n_ret <> 0 Then
EgtOutLog("Error: ActivateProgram error : " + n_ret.ToString())
Return n_ret
End If
Return n_ret
End Function
@@ -1698,17 +1703,24 @@ Namespace Num
Dim ngroup0 As Short = 0
Dim nTimeOut As Integer = 0
bSetModeDone = False
' ' Per prima versione FLEXIUM (3.5.040 - 2013)
' EgtOutLog("Scrittura modalità (" & nmode.ToString & ")")
' objDGeneralFunctions.WriteCncMode(nmode, ngroup0)
' Return 0
' Per ultime versioni FLEXIUM
objDGeneralFunctions.WriteCncMode2(nHandle, nmode, ngroup0)
While Not bSetModeDone And nTimeOut < SHORTSLEEPCOUNT
System.Threading.Thread.Sleep(SHORTSLEEPTIME)
nTimeOut += 1
End While
If Not bSetModeDone Then
EgtOutLog("Errore cambio modalit in MDI: " & TIMEOUT)
EgtOutLog("Errore cambio modalità in MDI: " & TIMEOUT)
Return TIMEOUT 'Errore di timeout
End If
If nSetModeResult <> 0 Then
EgtOutLog("Errore 2 cambio modalit in MDI: " & nSetModeResult)
EgtOutLog("Errore 2 cambio modalità in MDI: " & nSetModeResult)
End If
Return nSetModeResult
+21
View File
@@ -174,9 +174,15 @@
<Compile Include="AboutBox\AboutBoxWD.xaml.vb">
<DependentUpon>AboutBoxWD.xaml</DependentUpon>
</Compile>
<Compile Include="CadCuts\SelectTableWD.xaml.vb">
<DependentUpon>SelectTableWD.xaml</DependentUpon>
</Compile>
<Compile Include="CadCuts\ChooseTestToolWD.xaml.vb">
<DependentUpon>ChooseTestToolWD.xaml</DependentUpon>
</Compile>
<Compile Include="CadCuts\ChangeToolWD.xaml.vb">
<DependentUpon>ChangeToolWD.xaml</DependentUpon>
</Compile>
<Compile Include="CadCuts\SelectPartFromFamilyWD.xaml.vb">
<DependentUpon>SelectPartFromFamilyWD.xaml</DependentUpon>
</Compile>
@@ -212,6 +218,9 @@
<Compile Include="DrawImport\FiloTopUC.xaml.vb">
<DependentUpon>FiloTopUC.xaml</DependentUpon>
</Compile>
<Compile Include="DrawImport\SideAngleOneForAllWindow.xaml.vb">
<DependentUpon>SideAngleOneForAllWindow.xaml</DependentUpon>
</Compile>
<Compile Include="DrawImport\UnderDrillUC.xaml.vb">
<DependentUpon>UnderDrillUC.xaml</DependentUpon>
</Compile>
@@ -450,10 +459,18 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="CadCuts\SelectTableWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="CadCuts\ChooseTestToolWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="CadCuts\ChangeToolWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="CadCuts\SelectPartFromFamilyWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -498,6 +515,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="DrawImport\SideAngleOneForAllWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="DrawImport\UnderDrillUC.xaml">
<SubType>Designer</SubType>
<Generator>XamlIntelliSenseFileGenerator</Generator>
+10 -9
View File
@@ -387,7 +387,7 @@
<Setter Property="Keyboard" Value="Calculator"/>
<Setter Property="KeyboardDimension" Value="300"/>
<Setter Property="Background" Value="#636974"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
</Style>
<Style x:Key="OmagCut_MachToolCalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_CalculatorTextBox}">
@@ -509,6 +509,7 @@
<!--<Setter Property="BorderBrush" Value="{StaticResource OmagCut_Yellow}"/>-->
<Setter Property="Background" Value="#1C1D22"/>
<Setter Property="BorderBrush" Value="#1C1D22"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
<Setter Property="FontSize" Value="{StaticResource FontSize_UpperCaseCharacter}"/>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
@@ -629,21 +630,21 @@
<Style x:Key="OmagCut_CenteredLowerCaseCharacterTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_UpperCaseCharacterTextBlock}">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
</Style>
<Style x:Key="OmagCut_KeyboardTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_TextBox}">
<Setter Property="Keyboard" Value="Alphanumeric"/>
<Setter Property="KeyboardDimension" Value="600"/>
<Setter Property="Background" Value="#636974"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
</Style>
<Style x:Key="OmagCut_LowerCaseCharacterTextBlock" TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
</Style>
<DataTemplate x:Key="GroupBoxHeaderTemplate">
@@ -717,10 +718,10 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
</Style>
<Style x:Key="OmagCut_WindowBorder" TargetType="{x:Type Border}" BasedOn="{StaticResource OmagCut_EmptyBorder}">
<Setter Property="CornerRadius" Value="{StaticResource Page_CornerRadius}"/>
<Setter Property="BorderBrush" Value="{StaticResource OmagCut_DarkGray}"/>
<Setter Property="Background" Value="LightGray"/>
</Style>
<Style x:Key="OmagCut_WindowBorder" TargetType="{x:Type Border}" BasedOn="{StaticResource OmagCut_EmptyBorder}">
<Setter Property="CornerRadius" Value="{StaticResource Page_CornerRadius}"/>
<Setter Property="BorderBrush" Value="{StaticResource OmagCut_DarkGray}"/>
<Setter Property="Background" Value="LightGray"/>
</Style>
</ResourceDictionary>
+53 -3
View File
@@ -81,6 +81,7 @@
<system:Double x:Key="FontSize_LowerBarOverride">18.6</system:Double> <!--14pt-->
<system:Double x:Key="FontSize_UnitOfMeasure">13.3</system:Double> <!--10pt-->
<system:Double x:Key="FontSize_GroupBoxHeader">22</system:Double>
<system:Double x:Key="FontSize_GroupBoxHeaderWJ">18</system:Double>
<system:Double x:Key="ComboBox_Height">40</system:Double>
<system:Double x:Key="ComboBoxTextBlock_Height">40</system:Double>
<system:Double x:Key="ArrowImage_Height">65</system:Double>
@@ -338,7 +339,36 @@
</Style.Triggers>
</Style>
<Style x:Key="OmagCut_Button_Wrap" TargetType="{x:Type Button}" BasedOn="{StaticResource OmagCut_Button}">
<Style x:Key="Color_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="BorderThickness" Value="{StaticResource BorderThickness}"/>
<Setter Property="project:ButtonExtensions.CornerRadius" Value="{StaticResource Button_CornerRadius}"/>
<Setter Property="Margin" Value="{StaticResource Button_MarginThickness}"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="Width" Value="60"/>
<Setter Property="Height" Value="35"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="TextBlock.TextAlignment" Value="Center"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFB8C3CD"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="OpacityMask" Value="#33FF0000"/>
</Trigger>
<Trigger Property="ToggleButton.IsChecked" Value="True">
<Setter Property="Background" Value="Transparent"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="#FFF4F4F4"/>
<Setter Property="BorderBrush" Value="#FFADB2B5"/>
<Setter Property="TextElement.Foreground" Value="#FF838383"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="OmagCut_Button_Wrap" TargetType="{x:Type Button}" BasedOn="{StaticResource OmagCut_Button}">
<Setter Property="ContentTemplate" Value="{StaticResource Button_DataTemplate_Wrap}" />
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}" />
</Style>
@@ -1194,11 +1224,19 @@
</Style>
<Style x:Key="OmagCut_CenteredLowerCaseCharacterTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_UpperCaseCharacterTextBlock}">
<Setter Property="Foreground" Value="{StaticResource Omag_Black}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<!-- ______________________________________________________________________________________________________________________ -->
<Style x:Key="OmagCut_ErrorTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_UpperCaseCharacterTextBlock}">
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontStyle" Value="Italic"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<!-- ______________________________________________________________________________________________________________________ -->
<!--TextBox-->
@@ -1220,13 +1258,14 @@
</Style>
<Style x:Key="OmagCut_CalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_TextBox}">
<Setter Property="Foreground" Value="{StaticResource Omag_Black}"/>
<Setter Property="Keyboard" Value="Calculator"/>
<Setter Property="IsLength" Value="True"/>
<Setter Property="KeyboardDimension" Value="300"/>
</Style>
<Style x:Key="OmagCut_CalculatorParamWjTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_TextBox}">
<Setter Property="Width" Value="80"/>
<Setter Property="Width" Value="70"/>
<Setter Property="Keyboard" Value="Calculator"/>
<Setter Property="KeyboardDimension" Value="300"/>
<Setter Property="IsHitTestVisible" Value="False" />
@@ -2746,5 +2785,16 @@
</Style>
<!-- *************************************************************************** -->
<!--Stile Rettangolo in SplitPaceUC-->
<Style x:Key="Rect_SplitPage" TargetType="{x:Type Rectangle}">
<Setter Property="Fill" Value="{Binding SawColor}"/>
<Setter Property="Stroke" Value="Black"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Height" Value="20"/>
<Setter Property="Width" Value="5"/>
<Setter Property="StrokeThickness" Value="0.5"/>
</Style>
</ResourceDictionary>
+1 -1
View File
@@ -91,7 +91,7 @@ Public Class AddToDataBaseUC
WritePrivateProfileString(S_SCRAPS, K_LASTBLOCK, EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock, m_OmagPhotoWD.m_MainWindow.GetIniFile())
End If
' aggiorno il testo del messaggio "Add" "Save"
AddBtn.Content = "Save"
AddBtn.Content = EgtMsg(91252) ' Save
' notifico che da ora la lastra inserita è in modalità di modifica (non salvo la lastra come nuova, ma la sovrascrivo come in modifica)
EgtPHOTOLib.PhotoMap.refProjectVM.SetSelProjectMode(ProjectSlabVM.ProjectModeOpt.DETAIL)
+1 -1
View File
@@ -145,7 +145,7 @@ Public Class OmagPhotoWD
m_AddToDataBaseUC.ThicknessTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Thickness
m_AddToDataBaseUC.ProjectTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.ProjectAssignedTo
' aggiorno il testo del messaggio "Add" "Save"
m_AddToDataBaseUC.AddBtn.Content = "Save"
m_AddToDataBaseUC.AddBtn.Content = EgtMsg(91252) ' Save
Return
End If
' inizializzo i campi
+23 -2
View File
@@ -43,9 +43,30 @@
<ToggleButton Name="RegisterBtn"
Style="{DynamicResource OmagCut_YellowToggleButton}"></ToggleButton>
<Button Name="ResetCutBtn"
<Button Name="ResetCutBtn"
Style="{DynamicResource OmagCut_YellowTextButton}"></Button>
<!--Abilito la selezione delle linee da disegno-->
<Popup Name="ResetCutPopUp"
IsOpen="False"
AllowsTransparency="False"
PopupAnimation="Scroll"
StaysOpen="False"
Placement="Top"
PlacementTarget="{Binding ElementName=ResetCutBtn}">
<WrapPanel Orientation="Vertical"
Background="{DynamicResource OmagCut_Gray}">
<Button x:Name="ResetCut1Btn"
Width ="78" Height="78"
Style="{DynamicResource OmagCut_YellowTextButton}"></Button>
<Button x:Name="ResetCut2Btn"
Width ="78" Height="78"
Style="{DynamicResource OmagCut_YellowTextButton}"></Button>
</WrapPanel>
</Popup>
<!--Abilito la selezione delle linee da disegno-->
<ToggleButton Name="TestBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource Test-lamaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
+71 -51
View File
@@ -26,6 +26,8 @@ Public Class ProjectMgrUC
RegisterBtn.Content = "REG" 'Shape Registration
ResetCutBtn.Content = EgtMsg(MSG_NESTPAGEUC + 6) 'Reset
ResetCut2Btn.Content = EgtMsg(91024) 'Reset lavorazioni
ResetCut1Btn.Content = EgtMsg(91025) 'Aggiorna feed/speed
SimulateBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 1) 'Simulate - Simula
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
WorkBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 10) 'Export - Esporta
@@ -33,7 +35,7 @@ Public Class ProjectMgrUC
WorkBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 2) 'Work - Lavora
End If
TestBtn.ToolTip = EgtMsg(90255) 'Test
ResetCutBtn.ToolTip = "Reset Cuts" & vbCrLf & "Reset Feed (Shift)"
ResetCutBtn.ToolTip = EgtMsg(91241) & vbCrLf & EgtMsg(91242) ' Reset Cuts - Other Reset (Shift)
End Sub
Private Sub ProjectMgrUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
@@ -111,25 +113,6 @@ Public Class ProjectMgrUC
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
SelParkIndWD.CopyImgSvg(sNewFileName)
'Dim Extension As String = ".svg"
'If Not MainWindow.m_bShowSVGParkInd Then Extension = ".png"
'For Each ItemParkInd As ParkInd In ListParkInd
' If ItemParkInd.Ind <> 0 And ItemParkInd.Ind <> 999 And ItemParkInd.nPartInPark > 0 Then
' Try
' Dim sNewFile As String = sNewFileName & ItemParkInd.Ind.ToString & Extension
' If MainWindow.m_bShowSVGParkInd Then
' WriteMyXML(sNewFile, ItemParkInd.LocalMyCanvas)
' Else
' If File.Exists(sNewFile) Then
' File.Delete(sNewFile)
' End If
' File.Copy(If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img), sNewFile)
' End If
' Catch ex As Exception
' EgtOutLog("Copia immagine " & If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img) & " di ParkInd non roiscita")
' End Try
' End If
'Next
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
@@ -140,26 +123,11 @@ Public Class ProjectMgrUC
Friend Function ChooseTable() As Integer
Dim nTabInd As Integer = 0
Select Case GetTableCount()
Case 3
' Tavolo da usare ?
Dim TableToUse As New EgtMsgBox(m_MainWindow, "", EgtMsg(91111), EgtMsgBox.Buttons.ONE_TWO_THREE, EgtMsgBox.Icons.NULL)
Select Case TableToUse.m_nPressedBtn
Case 1 ' 1
nTabInd = 1
Case 2 ' 2
nTabInd = 2
Case 0 ' 3
nTabInd = 3
End Select
Case 2
' Tavolo da usare ?
Dim TableToUse As New EgtMsgBox(m_MainWindow, "", EgtMsg(91111), EgtMsgBox.Buttons.ONE_TWO, EgtMsgBox.Icons.NULL)
Select Case TableToUse.m_nPressedBtn
Case 1 ' 1
nTabInd = 1
Case 0 ' 2
nTabInd = 2
End Select
Case 4, 3, 2
Dim SelTabWD As New SelectTableWD(m_MainWindow)
SelTabWD.ShowDialog()
nTabInd = SelTabWD.nSelectedTable
SelTabWD.Close()
Case Else
nTabInd = 1
End Select
@@ -172,13 +140,18 @@ Public Class ProjectMgrUC
If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 0 Then
Return nRes
End If
Select Case GetTableCount()
Case 2
' Vuoi cambiare tavola?
Dim TableToUse As New EgtMsgBox(m_MainWindow, "", String.Format(EgtMsg(90968)), EgtMsgBox.Buttons.OK_CANCEL, EgtMsgBox.Icons.NULL)
nRes = TableToUse.m_nPressedBtn
Dim nCountTable As Integer = GetTableCount()
Select Case nCountTable
Case 4, 3, 2
' visualizzo l'elenco dei bottoni associati alle tavole disponibili
Dim SelTabWD As New SelectTableWD(m_MainWindow)
SelTabWD.ShowDialog()
If SelTabWD.DialogResult Then
nRes = SelTabWD.nSelectedTable
End If
SelTabWD.Close()
Case Else
' negli altri casi (3 tavole o una tavola non fare nulla)
' non fare nulla
End Select
Return nRes
End Function
@@ -287,11 +260,58 @@ Public Class ProjectMgrUC
End Sub
Private Sub ResetCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles ResetCutBtn.Click
If (Keyboard.Modifiers And ModifierKeys.Shift) Then
' eseguo il ricalcolo delle sole FEED di lavorazione
UpdateFeedAllMachining()
Return
If (Keyboard.Modifiers And ModifierKeys.Shift) > 0 Then
If ResetCutPopUp.IsOpen Then
ResetCutPopUp.IsOpen = False
Else
ResetCutPopUp.IsOpen = True
End If
Else
ResetCut3Btn_Click()
End If
End Sub
' Reimposto le feed di tutte le lavorazioni
Private Sub ResetCut1Btn_Click(sender As Object, e As RoutedEventArgs) Handles ResetCut1Btn.Click
' eseguo il ricalcolo delle sole FEED di lavorazione
UpdateFeedAllMachining()
End Sub
' Reimposto le lavorazioni di default e ripristino i parametri
Private Sub ResetCut2Btn_Click(sender As Object, e As RoutedEventArgs) Handles ResetCut2Btn.Click
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
' Cancello eventuali messaggi
m_CurrProjPage.ClearMessage()
' cancello tutti i tagli di separazione (Waterjet)
ResetAllSplitCurv()
' cancello tutti i punti di inizio (Waterjet)
ResetAllStartCurv()
' cancello tutti i ponticelli disegnati
ResetAllBRidges()
' cancella tutti i tagli di separazione inseriti in OFFICE
ResetAllSplitCut()
' assegno la lavorazione corrente per i tagli di lama inclinati (solo se specificato nella ComboBox della ChooseMachinig)
RestoreDef_Machinig(True)
' assegno la lavorazione corrente per i tagli verticali
RestoreDef_Machinig(False)
' Ricalcolo tutte le lavorazioni
Dim nWarn As Integer = 0
ResetAllMachinings(nWarn)
If nWarn = 1 Then m_CurrProjPage.SetWarningMessage(EgtMsg(MSG_SPLITPAGEUC + 11)) ' Lama troppo grande per utilizzo ventosa
' Se eistono elimino i grezzi delle fasi che non contengono lavorazioni
ResetAllRawPart()
' Aggiorno Info C Home
Dim dCHome As Double
EgtGetAxisHomePos("C", dCHome)
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_CAXESHOME, DoubleToString(dCHome, 0))
' Aggiorno visualizzazione
EgtDraw()
End Sub
' Resetta i valori dei parametri (ma non le lavorazioni)
Private Sub ResetCut3Btn_Click()
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
' Cancello eventuali messaggi
m_CurrProjPage.ClearMessage()
@@ -1009,7 +1029,7 @@ Public Class ProjectMgrUC
End If
Next
Next
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage("Lavorazione aggiornate: " & nMachUpdated & "/ " & nMach)
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(91243) & nMachUpdated & "/ " & nMach) ' Lavorazione aggiornate:
End Sub
' ------------------------------------------------ GENERA COMANDI CNC MOVIMENTO ------------------------------------------------
+1 -1
View File
@@ -6,7 +6,7 @@ Public Class SceneButtonsUC
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private Sub Init() Handles Me.Initialized
TopViewBtn.ToolTip = "Top View" & vbCrLf & "Select View (Shift)"
TopViewBtn.ToolTip = EgtMsg(91244) & vbCrLf & EgtMsg(91245) ' Top View - Select View (Shift)
End Sub
Private Sub MeasureBtn_Checked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Checked
+2 -2
View File
@@ -17,7 +17,7 @@ Public Class ScrapsWD
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
' inserisco il titolo della pagina aperta
TitleTxBl.Content = "Scraps List"
TitleTxBl.Content = EgtMsg(91246) ' Scraps List
ScrapsListBox.ItemsSource = m_ScrapList
' definzione posizione finetra
Me.Left = 25
@@ -137,7 +137,7 @@ Public Class ScrapsWD
MyOmagPhotoWD.ShowDialog()
Else
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage("Error loading contour scrap")
m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(91247)) ' Error loading contour scrap
End If
' ripristino il contesto corrente dell'immagine
+36 -1
View File
@@ -35,7 +35,42 @@
</ComboBox.ItemTemplate>
</ComboBox>
<!--LAVORAZIONE SECONDARIA-->
<!--TAGLIO TILTED-->
<Grid Grid.Column="1" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="9*"/>
</Grid.ColumnDefinitions>
<CheckBox Name ="ApplySawingTiltedChBx" Grid.Column="0"
Style="{StaticResource OmagCut_CheckBox_Single}"
Margin="1.5,0,0,0"/>
<TextBlock Name="CurrSawingTiltedTxBl" Grid.Column="1"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
</Grid>
<ComboBox Name="CurrSawingTiltedCmBx" Grid.Column="1" Grid.Row="1">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontSize="20">
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_CurrProjSummeryTextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ApplySawingTiltedChBx, Path=IsChecked}" Value="False">
<Setter Property="TextDecorations" Value="Strikethrough"/>
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=ApplySawingTiltedChBx, Path=IsChecked}" Value="True">
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!--LAVORAZIONE SECONDARIA-->
<TextBlock Name="AuxiliaryMachiningTxBl" Grid.Column="1" Grid.Row="2"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Visibility="Hidden"/>
<ComboBox Name="AuxiliaryMachiningCmBx" Grid.Column="1" Grid.Row="3" Visibility="Hidden">
+64 -4
View File
@@ -8,6 +8,7 @@ Public Class ChooseMachining
Private m_CurrentMachine As CurrentMachine = m_MainWindow.m_CurrentMachine
' Liste che contengono gli elementi appartenenti alle ComboBox
Private m_SawingList As New List(Of String)
Private m_SawingTiltedList As New List(Of String)
Private m_AuxMachTypeList As New List(Of StringIdCmBx)
Private m_DrillingList As New List(Of String)
Private m_MillingList As New List(Of String)
@@ -36,6 +37,7 @@ Public Class ChooseMachining
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
CurrSawingCmBx.ItemsSource = m_SawingList
CurrSawingTiltedCmBx.ItemsSource = m_SawingTiltedList
AuxiliaryMachiningCmBx.ItemsSource = m_AuxMachTypeList
CurrDrillingCmBx.ItemsSource = m_DrillingList
CurrMillingCmBx.ItemsSource = m_MillingList
@@ -44,6 +46,7 @@ Public Class ChooseMachining
CurrWJettingQualityCmBx.ItemsSource = m_CurrentMachine.Qualities
CurrSawingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 1)
CurrSawingTiltedTxBl.Text = EgtMsg(91023) ' Lavorazione inclinata
AuxiliaryMachiningTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 2)
CurrDrillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 3)
CurrMillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 4)
@@ -69,7 +72,13 @@ Public Class ChooseMachining
' -- TAGLIO --
CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList)
' aggiungo un campo vuoto
m_SawingList.Add( "")
m_SawingList.Add("")
' -- TAGLIO TILTED --
CurrSawingTiltedCmBx.IsEnabled = m_MainWindow.m_CurrentMachine.bApplySawingTilted
ApplySawingTiltedChBx.IsChecked = m_MainWindow.m_CurrentMachine.bApplySawingTilted
CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSawTilted, m_SawingTiltedList)
' aggiungo un campo vuoto
m_SawingTiltedList.Add("")
' Verifico la configurazione della macchina per creare i combobox
Select Case m_CurrentMachine.MountedToolConfig
@@ -78,7 +87,7 @@ Public Class ChooseMachining
ChooseMachiningGrid.Children.Remove(AuxiliaryMachiningTxBl)
ChooseMachiningGrid.Children.Remove(AuxiliaryMachiningCmBx)
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL, CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL, CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
' Creo lista lavorazioni foretto e fresa
If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL Then
CreateMachiningList(MCH_MY.DRILLING, m_CurrentMachine.sCurrDrill, m_DrillingList)
@@ -114,7 +123,10 @@ Public Class ChooseMachining
' ---- MACCHINA CON CAMBIO UTENSILE ----
ElseIf m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER Or
m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then
m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Or
m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
' -- TAGLIO --
' Il taglio è aggiunto sempre (all'inizio di questo metodo)
' -- FORATURA --
CreateMachiningList(MCH_MY.DRILLING, m_DrillingList)
' Se la lista è vuota cancello la lavorazione corrente di questo tipo
@@ -206,7 +218,8 @@ Public Class ChooseMachining
m_AuxMachTypeList.Add(New StringIdCmBx(4, EgtMsg(91069)))
End If
If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER Or
m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then
m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Or
m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
m_AuxMachTypeList.Add(New StringIdCmBx(3, EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 8)))
End If
End If
@@ -490,6 +503,10 @@ Public Class ChooseMachining
Dim nDeltaRow As Integer = 4
Dim nNewRow As Integer = 2
' nascondo tutte le CmBx e TxBl
CurrSawingTiltedTxBl.Visibility = Windows.Visibility.Hidden
CurrSawingTiltedCmBx.Visibility = Windows.Visibility.Hidden
ApplySawingTiltedChBx.Visibility = Windows.Visibility.Hidden
CurrSawingTiltedTxBl.Visibility = Windows.Visibility.Hidden
CurrDrillingTxBl.Visibility = Windows.Visibility.Hidden
CurrDrillingCmBx.Visibility = Windows.Visibility.Hidden
CurrMillingTxBl.Visibility = Windows.Visibility.Hidden
@@ -499,6 +516,35 @@ Public Class ChooseMachining
CurrWJettingTxBl.Visibility = Windows.Visibility.Hidden
CurrWJettingCmBx.Visibility = Windows.Visibility.Hidden
' -- LAMA TILTED -- se definito il cambio utensile con lama
'If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
If Not String.IsNullOrEmpty(m_CurrentMachine.sCurrSawTilted) Then
' Definizione di due righe della tabella con la giusta altezza
For Index As Integer = 1 To nNewRow
Dim Row As New RowDefinition
Row.Height = New GridLength(0.5, GridUnitType.Star)
ChooseMachiningGrid.RowDefinitions.Add(Row)
Next
m_RowNumber = m_RowNumber + nNewRow
' titolo della ComboBox
CurrSawingTiltedTxBl.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow)
' ComboBox (nella riga successiva al titolo)
CurrSawingTiltedCmBx.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow + 1)
'ButtonsGrid.SetValue(Grid.RowProperty, 5)
If m_CurrentMachine.sCurrSawingTilted <> String.Empty Then
CurrSawingTiltedCmBx.SelectedItem = m_CurrentMachine.sCurrSawingTilted
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrSawingTiltedCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrSawingTiltedCmBx.SelectedItem <> m_CurrentMachine.sCurrSawingTilted Then m_MachIsModified = True
End If
CurrSawingTiltedTxBl.Visibility = Windows.Visibility.Visible
CurrSawingTiltedCmBx.Visibility = Windows.Visibility.Visible
ApplySawingTiltedChBx.Visibility = Windows.Visibility.Visible
CurrSawingTiltedTxBl.Visibility = Windows.Visibility.Visible
End If
' -- FORATURA -- se foretto presente
If m_CurrentMachine.bDrill And m_DrillingList.Count() > 0 Then
' Definizione di due righe della tabella con la giusta altezza
@@ -621,6 +667,20 @@ Public Class ChooseMachining
m_MainWindow.m_CurrentMachine.sCurrSawing = CurrSawingCmBx.SelectedItem.ToString()
End Sub
Private Sub ApplySawingTiltedChBx_Checked() Handles ApplySawingTiltedChBx.Click
If ApplySawingTiltedChBx.IsChecked Then
CurrSawingTiltedCmBx.IsEnabled = True
m_MainWindow.m_CurrentMachine.bApplySawingTilted = True
Else
CurrSawingTiltedCmBx.IsEnabled = False
m_MainWindow.m_CurrentMachine.bApplySawingTilted = False
End If
End Sub
Private Sub CurrSawingTiltedCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrSawingTiltedCmBx.SelectionChanged
m_MainWindow.m_CurrentMachine.sCurrSawingTilted = CurrSawingTiltedCmBx.SelectedItem.ToString()
End Sub
Private Sub CurrDrillingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrDrillingCmBx.SelectionChanged
m_MainWindow.m_CurrentMachine.sCurrDrilling = CurrDrillingCmBx.SelectedItem.ToString()
End Sub
+25 -9
View File
@@ -4,7 +4,7 @@
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
Title="ModifStartEndWD" Height="250" Width="320" ShowInTaskbar="False">
Title="ModifStartEndWD" Height="350" Width="320" ShowInTaskbar="False">
<!--Definizione della pagina di scelta del nome con cui salvare il progetto-->
<Border Style="{DynamicResource OmagCut_Border}">
@@ -28,14 +28,30 @@
<RowDefinition Height="0.2*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="0.2*"/>
</Grid.RowDefinitions>
<TextBlock Name="RefRawTxbl" Grid.Column="1" Grid.Row="1"
<TextBlock Name="SelRefTxbl" Grid.Column="1" Grid.Row="1"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<ComboBox Name="RefTabModeCmBx" Grid.Column="2" Grid.Row="1" Style="{StaticResource OmagCut_ComboBox}"
<ComboBox Name="RefTabCmBx" Grid.Column="2" Grid.Row="1" Style="{StaticResource OmagCut_ComboBox}"
MaxDropDownHeight="300" Margin="0,0,0,0">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Name="RefRawTxbl" Grid.Column="1" Grid.Row="3"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<ComboBox Name="RefTabOrientationCmBx" Grid.Column="2" Grid.Row="3" Style="{StaticResource OmagCut_ComboBox}"
MaxDropDownHeight="300" Margin="0,0,0,0">
<ComboBox.ItemTemplate>
<DataTemplate>
@@ -44,17 +60,17 @@
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Name="RefTabXTxbl" Grid.Column="1" Grid.Row="3"
<TextBlock Name="RefTabXTxbl" Grid.Column="1" Grid.Row="5"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="RefTabXTxBx" Grid.Column="2" Grid.Row="3"
<EgtWPFLib:EgtTextBox Name="RefTabXTxBx" Grid.Column="2" Grid.Row="5"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="RefTabYTxbl" Grid.Column="1" Grid.Row="5"
<TextBlock Name="RefTabYTxbl" Grid.Column="1" Grid.Row="7"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="RefTabYTxBx" Grid.Column="2" Grid.Row="5"
<EgtWPFLib:EgtTextBox Name="RefTabYTxBx" Grid.Column="2" Grid.Row="7"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="7" Grid.RowSpan="1">
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="10" Grid.RowSpan="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
+138 -17
View File
@@ -1,4 +1,5 @@
Imports System.IO
Imports System.Reflection
Imports EgtUILib
Imports EgtWPFLib
@@ -12,9 +13,14 @@ Public Class OtherRefTabWD
Private m_dPrevOffsetX As Double = 0
Private m_dPrevOffsetY As Double = 0
Private m_bModifX As Boolean = False
Private m_bModifY As Boolean = False
Private m_SelIndex As Integer = 0
Sub New(Owner As Window, PosX As String, PosY As String, OffsetX As Double, OffsetY As Double, OtherRefMode As Integer)
Private m_SelRef As Integer = 0
Sub New(Owner As Window, PosX As String, PosY As String, OffsetX As Double, OffsetY As Double, OtherRefMode As Integer, SelRef As Integer)
Me.Owner = Owner
' La chiamata è richiesta dalla finestra di progettazione.
InitializeComponent()
@@ -25,6 +31,7 @@ Public Class OtherRefTabWD
m_dPrevOffsetX = OffsetX
m_dPrevOffsetY = OffsetY
m_SelIndex = OtherRefMode
m_SelRef = SelRef
End Sub
Private Sub OtherRrefTabWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
@@ -33,11 +40,14 @@ Public Class OtherRefTabWD
' posiziono la finestra
Me.Top = Owner.Top + Owner.Height / 4 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 6 - Me.Width / 2
RefRawTxbl.Text = "Raw reference"
RefTabXTxbl.Text = "Position X"
RefTabYTxbl.Text = "Position Y"
RefTabModeCmBx.ItemsSource = m_RawPartPage.m_OtherRefTabList
RefTabModeCmBx.SelectedIndex = m_RawPartPage.m_OtherRefTabPos
RefRawTxbl.Text = EgtMsg(91248) ' Raw reference
RefTabXTxbl.Text = EgtMsg(91249) ' Position X
RefTabYTxbl.Text = EgtMsg(91250) ' Position Y
SelRefTxbl.Text = EgtMsg(91251) ' Sel reference
RefTabOrientationCmBx.ItemsSource = m_RawPartPage.m_OtherRefTabOrientationList
RefTabOrientationCmBx.SelectedIndex = m_RawPartPage.m_OtherRefTabPos
RefTabCmBx.ItemsSource = m_RawPartPage.m_OtherRefTabList
RefTabCmBx.SelectedIndex = m_RawPartPage.m_CurrRefTab
End Sub
Private Sub OtherRrefTabWD_Load(sender As Object, e As EventArgs) Handles Me.Loaded
@@ -45,9 +55,44 @@ Public Class OtherRefTabWD
RefTabYTxBx.Text = m_sPosY
End Sub
Private Sub RefTabModeCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabModeCmBx.SelectionChanged
m_RawPartPage.m_OtherRefTabPos = RefTabModeCmBx.SelectedIndex
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABPOS, m_RawPartPage.m_OtherRefTabPos.ToString, m_MainWindow.GetIniFile())
Private Sub RefTabCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabCmBx.SelectionChanged
If m_bModifX Or m_bModifY Then
Dim SaveCurrToolWnd = New EgtMsgBox(m_MainWindow, "", EgtMsg(MSG_EGTMSGBOX + 2), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
Select Case SaveCurrToolWnd.m_nPressedBtn
Case 0 ' Annulla
' annullo l'operazione di cambio indice
RefTabCmBx.SelectedIndex = m_RawPartPage.m_CurrRefTab
Return
Case 1 ' Si
' salvo i valori modificati
UpdateCurrOffset()
' recupero l'oggetto precedentemente selezionato e lo aggiorno (per evitare di rileggere il file ini)
Dim temp_RefTab As ReferenceTable = m_RawPartPage.m_OtherRefTabList(m_RawPartPage.m_CurrRefTab)
temp_RefTab.dOffsetX = m_RawPartPage.m_OtherRefTabX
temp_RefTab.dOffsetY = m_RawPartPage.m_OtherRefTabY
temp_RefTab.nPos = m_RawPartPage.m_OtherRefTabPos
Case 2 ' No
' Non salvo e vado oltre
m_bModifX = False
m_bModifY = False
End Select
End If
' recupero l'oggetto selezionato
Dim local_RefTab As ReferenceTable = m_RawPartPage.m_OtherRefTabList(RefTabCmBx.SelectedIndex)
m_RawPartPage.m_CurrRefTab = RefTabCmBx.SelectedIndex
' Imposto gli Offset del riferimento selezionato
RefTabXTxBx.Text = LenToString(local_RefTab.dOffsetX, 2)
m_RawPartPage.m_OtherRefTabX = local_RefTab.dOffsetX
RefTabYTxBx.Text = LenToString(local_RefTab.dOffsetY, 2)
m_RawPartPage.m_OtherRefTabY = local_RefTab.dOffsetY
' Aggiorno la posizine del grezzo
m_RawPartPage.RefTabModeChange()
m_bModifX = False
m_bModifY = False
End Sub
Private Sub RefTabOrientationCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabOrientationCmBx.SelectionChanged
m_RawPartPage.m_OtherRefTabPos = RefTabOrientationCmBx.SelectedIndex
m_RawPartPage.RefTabModeChange()
End Sub
@@ -66,6 +111,7 @@ Public Class OtherRefTabWD
' errore, posizione fuori dalla tavola
End If
m_RawPartPage.m_OtherRefTabX = dX
m_bModifX = True
m_RawPartPage.RefTabModeChange()
End If
End Sub
@@ -85,24 +131,99 @@ Public Class OtherRefTabWD
' errore, posizione fuori dalla tavola
End If
m_RawPartPage.m_OtherRefTabY = dY
m_bModifY = True
m_RawPartPage.RefTabModeChange()
End If
End Sub
Private Sub OkBtn_Click() Handles OkBtn.Click
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABX, DoubleToString(RefTabXTxBx.Text, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABY, DoubleToString(RefTabYTxBx.Text, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABPOS, m_RawPartPage.m_OtherRefTabPos.ToString, m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_CURRENTREFTAB, m_RawPartPage.m_CurrRefTab.ToString, m_MainWindow.GetIniFile())
' Aggiorno il valore del riferimento correntemente modificato
UpdateCurrOffset()
m_RawPartPage.RefTabModeChange()
Me.Close()
End Sub
Private Sub UpdateCurrOffset()
Dim sKeyMsg As String = K_REFTAB & m_RawPartPage.m_CurrRefTab.ToString
Dim sValMsg As String = DoubleToString(m_RawPartPage.m_OtherRefTabX, 2) & "," & DoubleToString(m_RawPartPage.m_OtherRefTabY, 2) & "," & m_RawPartPage.m_OtherRefTabPos.ToString
WritePrivateProfileString(S_RAWPART, sKeyMsg, sValMsg, m_MainWindow.GetIniFile())
End Sub
Private Sub ExitBtn_Click() Handles ExitBtn.Click
' riposiziono l'origine
m_RawPartPage.m_OtherRefTabX = m_sPosX
m_RawPartPage.m_OtherRefTabY = m_sPosY
' ripristino il valore della combobox
m_RawPartPage.m_OtherRefTabPos = m_SelIndex
' Recupero la prima selezione eseguita
m_RawPartPage.m_CurrRefTab = m_SelRef
Dim temp_RefTab As ReferenceTable = m_RawPartPage.m_OtherRefTabList(m_RawPartPage.m_CurrRefTab)
' aggiorno i valori
m_RawPartPage.m_OtherRefTabX = temp_RefTab.dOffsetX
m_RawPartPage.m_OtherRefTabY = temp_RefTab.dOffsetY
m_RawPartPage.m_OtherRefTabPos = temp_RefTab.nPos
m_RawPartPage.RefTabModeChange()
End Sub
End Class
Public Class ReferenceTable
Private m_dOffsetX As Double
Private m_dOffsetY As Double
Private m_nPos As RawPartPageUC.OTHERREFMODE = RawPartPageUC.OTHERREFMODE.BL
Private m_nIndexRef As Integer = 0
Public Property dOffsetX As Double
Get
Return m_dOffsetX
End Get
Set(value As Double)
m_dOffsetX = value
End Set
End Property
Public Property dOffsetY As Double
Get
Return m_dOffsetY
End Get
Set(value As Double)
m_dOffsetY = value
End Set
End Property
Public Property nPos As Integer
Get
Return m_nPos
End Get
Set(value As Integer)
m_nPos = value
End Set
End Property
Public Property nIndexRef As Integer
Get
Return m_nIndexRef
End Get
Set(value As Integer)
m_nIndexRef = value
End Set
End Property
Public ReadOnly Property Name As String
Get
Return "REF_" & m_nIndexRef.ToString()
End Get
End Property
Public ReadOnly bOk As Boolean = True
Sub New(sStringFromIni As String, IndexRef As Integer)
Dim sItems() As String = sStringFromIni.Split(","c)
If sItems.Count = 3 Then
bOk = bOk And StringToLen(sItems(0), m_dOffsetX)
bOk = bOk And StringToLen(sItems(1), m_dOffsetY)
bOk = bOk And StringToInt(sItems(2), m_nPos)
m_nIndexRef = IndexRef
Else
bOk = False
End If
End Sub
End Class
+87 -25
View File
@@ -1,11 +1,12 @@
Imports System.IO
Imports System.Reflection
Imports EgtUILib
Imports EgtWPFLib
Public Class RawPartPageUC
' Dati generali CN
Friend m_CN As CN_generico
' Friend m_CN As CN_generico
' Riferimento alla MainWindow
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
@@ -92,10 +93,12 @@ Public Class RawPartPageUC
' Riferimento grezzo
Private m_bEnableOtherRefTab As Boolean = False
Private m_bOtherRefTab As Boolean
Public m_OtherRefTabX As Double = 0
Public m_OtherRefTabY As Double = 0
Public m_OtherRefTabList(3) As String
Public m_OtherRefTabPos As Integer = 0
Public m_OtherRefTabX As Double = 0 ' offset riferimento corrente
Public m_OtherRefTabY As Double = 0 ' offset riferimento corrente
Public m_OtherRefTabPos As Integer = 0 ' poisizione riferimento (Bottom-Left, ..)
Public m_OtherRefTabOrientationList(3) As String ' oriemtazione riferiemnto
Public m_OtherRefTabList As New List(Of ReferenceTable) ' lista dei riferiemneti configurata nel programma
Public m_CurrRefTab As Integer = 1 ' inidice del riferimento della lista corrente
Private m_nOtherRefTabLay As Integer = GDB_ID.NULL
Private m_OtherRefTabPoint As Point3d
@@ -126,7 +129,7 @@ Public Class RawPartPageUC
FROM_SAW = 7
End Enum
Private Enum OTHERREFMODE As Integer
Friend Enum OTHERREFMODE As Integer
BL = 0
BR = 1
TR = 2
@@ -159,18 +162,18 @@ Public Class RawPartPageUC
KerfTxBx.Tag = KerfTxBl
' Creo lista modalità di definizione del grezzo
m_RawModeList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 1) 'Rettangolo
m_RawModeList(1) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
m_RawModeList(2) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
m_RawModeList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 1) 'Rettangolo
m_RawModeList(1) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
m_RawModeList(2) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
If m_MainWindow.m_CurrentMachine.bSaw Then
m_RawModeList(3) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24) 'Da Lama
Else
' se non insrisco "Lama" allora ridimensiono il vettore
ReDim Preserve m_RawModeList(2)
End If
m_RawModeListEx(0) = EgtMsg(MSG_RAWPARTPAGEUC + 1) 'Rettangolo
m_RawModeListEx(1) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
m_RawModeListEx(2) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
m_RawModeListEx(0) = EgtMsg(MSG_RAWPARTPAGEUC + 1) 'Rettangolo
m_RawModeListEx(1) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
m_RawModeListEx(2) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
If m_MainWindow.m_CurrentMachine.bSaw Then
m_RawModeListEx(3) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24) 'Da Lama
m_RawModeListEx(4) = EgtMsg(MSG_RAWPARTPAGEUC + 35) 'Da Fotografia
@@ -182,14 +185,14 @@ Public Class RawPartPageUC
RawModeCmBx.ItemsSource = m_RawModeList
' Creo la lista dei riferimenti tavola
m_OtherRefTabList(OTHERREFMODE.BL) = "Bottom left"
m_OtherRefTabList(OTHERREFMODE.BR) = "Bottom right"
m_OtherRefTabList(OTHERREFMODE.TR) = "Top right"
m_OtherRefTabList(OTHERREFMODE.TL) = "Top left"
m_OtherRefTabOrientationList(OTHERREFMODE.BL) = EgtMsg(91221) 'Bottom left
m_OtherRefTabOrientationList(OTHERREFMODE.BR) = EgtMsg(91222) 'Bottom right
m_OtherRefTabOrientationList(OTHERREFMODE.TR) = EgtMsg(91223) 'Top right
m_OtherRefTabOrientationList(OTHERREFMODE.TL) = EgtMsg(91224) 'Top left
' lista per selezione RawModeDamaged
m_RawModeDamagedList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
m_RawModeDamagedList(1) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
m_RawModeDamagedList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
m_RawModeDamagedList(1) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
If m_MainWindow.m_CurrentMachine.bSaw Then
m_RawModeDamagedList(2) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24) 'Da Lama
Else
@@ -225,10 +228,10 @@ Public Class RawPartPageUC
AddBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 14) 'Add - Aggiungi
RemoveBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 15) 'Remove - Rimuovi
CloseBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 31) 'Close - Chiudi
RectangleBtn.Content = "Rectangle"
RectangleBtn.Content = EgtMsg(90501) 'Rectangle
ConfirmPhotoBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 24) 'Conferma
OtherRefTabTxBl.Text = "New Ref On Tab"
OtherRefTabTxBl.Text = EgtMsg(91225) 'New Ref On Tab
End Sub
@@ -400,9 +403,36 @@ Public Class RawPartPageUC
OtherRefTabBtn.Visibility = Visibility.Visible
End If
m_bOtherRefTab = (GetPrivateProfileInt(S_RAWPART, K_OTHERREFTAB, 0, m_MainWindow.GetIniFile()) <> 0)
m_OtherRefTabX = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABX, 0, m_MainWindow.GetIniFile())
m_OtherRefTabY = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABY, 0, m_MainWindow.GetIniFile())
m_OtherRefTabPos = GetPrivateProfileInt(S_RAWPART, K_OTHERREFTABPOS, 0, m_MainWindow.GetIniFile())
' Recupero il riferimento attivo
m_CurrRefTab = GetPrivateProfileInt(S_RAWPART, K_CURRENTREFTAB, 0, m_MainWindow.GetIniFile())
' carico l'elenco dei riferimenti da usare
LoadRefTabList()
' Solo se non esiste una lista allora leggo i valori
If m_OtherRefTabList.Count = 0 Then
' Versione precedente 2.7c# DEPRECABILE
Dim Off_X As Double = -1000
Dim Off_Y As Double = -1000
Dim Pos_Ind As Integer = -1
Off_X = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABX, -1000, m_MainWindow.GetIniFile())
Off_Y = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABY, -1000, m_MainWindow.GetIniFile())
Pos_Ind = GetPrivateProfileInt(S_RAWPART, K_OTHERREFTABPOS, -1, m_MainWindow.GetIniFile())
If Off_X <> -1000 And Off_Y <> -1000 And Pos_Ind <> -1 Then
Dim Local_Text As String = DoubleToString(Off_X, 2) & "," & DoubleToString(Off_Y, 2) & "," & Pos_Ind.ToString
Dim local_NewRef As New ReferenceTable(Local_Text, 0)
If local_NewRef.bOk Then
m_OtherRefTabList.Add(local_NewRef)
m_CurrRefTab = 0
' Carico i valori
m_OtherRefTabX = m_OtherRefTabList(m_CurrRefTab).dOffsetX
m_OtherRefTabY = m_OtherRefTabList(m_CurrRefTab).dOffsetY
m_OtherRefTabPos = m_OtherRefTabList(m_CurrRefTab).nPos
' Creo la nuova configurazione da usare
Dim sKeyMsg As String = K_REFTAB & m_CurrRefTab.ToString
Dim sValMsg As String = DoubleToString(m_OtherRefTabX, 2) & "," & DoubleToString(m_OtherRefTabY, 2) & "," & m_OtherRefTabPos.ToString
WritePrivateProfileString(S_RAWPART, sKeyMsg, sValMsg, m_MainWindow.GetIniFile())
End If
End If
End If
' RefTabPosCmbx.SelectedIndex = m_OtherRefTabPos
OtherRefTabChBx.IsChecked = m_bOtherRefTab
' se riferimento tavola differente da quello atteso
@@ -421,6 +451,29 @@ Public Class RawPartPageUC
' EgtDraw()
End Sub
Private Sub LoadRefTabList()
m_OtherRefTabList.Clear()
Dim sRefTab As String = String.Empty
Dim nIndex As Integer = 0
While GetPrivateProfileString(S_RAWPART, K_REFTAB & nIndex.ToString, "", sRefTab, m_MainWindow.GetIniFile()) > 0
Dim local_NewRef As New ReferenceTable(sRefTab, nIndex)
If local_NewRef.bOk Then
m_OtherRefTabList.Add(local_NewRef)
nIndex += 1
Else
EgtOutLog("ERROR in reading RefTab" & nIndex.ToString & " is not correctly defined in file OmagCUT.ini, any other reference will not loaded")
Exit While
End If
End While
' Assegno il riferimento corrente
If m_CurrRefTab < m_OtherRefTabList.Count Then
m_OtherRefTabX = m_OtherRefTabList(m_CurrRefTab).dOffsetX
m_OtherRefTabY = m_OtherRefTabList(m_CurrRefTab).dOffsetY
m_OtherRefTabPos = m_OtherRefTabList(m_CurrRefTab).nPos
End If
End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
' Verifico di essere il gestore attivo
If Not m_bActive Then Return
@@ -809,6 +862,13 @@ Public Class RawPartPageUC
If m_bProbingOn Then Return
' reimposto il comando OutLine
OutlineBtn_Click(Nothing, Nothing)
' Nasocndo eventuali pareti
If m_bExistsSafetyZone Then
' gestisco la visualizzazione delle pareti che delimitano l'area sicura
EgtSetStatus(m_nIdMinRedX, GDB_ST.OFF)
EgtSetStatus(m_nIdMinRedY, GDB_ST.OFF)
End If
' Se confermata uscita
If ExitRawPart(True) Then
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
@@ -1922,7 +1982,7 @@ Public Class RawPartPageUC
m_CurrProjPage.ClearMessage()
Else
OkBtn.IsEnabled = False
m_CurrProjPage.SetErrorMessage("Errore nella posizione o dimensione del grezzo")
m_CurrProjPage.SetErrorMessage(EgtMsg(91226)) ' Errore nella posizione o dimensione del grezzo
End If
End Sub
@@ -2362,8 +2422,10 @@ Public Class RawPartPageUC
End Sub
Private Sub OtherRefTabBtn_Click(sender As Object, e As EventArgs) Handles OtherRefTabBtn.Click
' Aggiorno la lista dei riferimenti
LoadRefTabList()
' apro la finestra per gestire il riferimento
Dim OthWD As New OtherRefTabWD(m_MainWindow, LenToString(m_OtherRefTabX, 2), LenToString(m_OtherRefTabY, 2), m_RawOffsX, m_RawOffsY, m_OtherRefTabPos)
Dim OthWD As New OtherRefTabWD(m_MainWindow, LenToString(m_OtherRefTabX, 2), LenToString(m_OtherRefTabY, 2), m_RawOffsX, m_RawOffsY, m_OtherRefTabPos, m_CurrRefTab)
OthWD.ShowDialog()
End Sub
+22 -12
View File
@@ -36,6 +36,7 @@ Public Class SimulationPageUC
Friend Sub ResetSimulation()
' Termino la simulazione
SetStatus(MCH_SIM_ST.UI_STOP)
System.Threading.Thread.Sleep(250)
EgtSimExit()
' Salvo valore dello slider
Dim sVal As String = DoubleToString(SpeedSlider.Value, 1)
@@ -86,8 +87,15 @@ Public Class SimulationPageUC
End Sub
Private Sub SimulationPage_Loaded(sender As Object, e As RoutedEventArgs)
EgtOutLog(" -- PREPARE SIMUL --")
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
Dim bOk As Boolean = True
' Visualizzo opportunamente la macchina
m_nMachLook = MCH_LOOK.ALL
EgtSetMachineLook(m_nMachLook)
' Imposto vista 3d isometrica di tutto
EgtSetView(VT.ISO_SE, False)
EgtZoom(ZM.ALL)
' Elimino eventuale attrezzaggio da OmagOFFICE
EgtEraseCurrSetup()
' Verifico l'attrezzaggio degli utensili utilizzati
@@ -110,9 +118,9 @@ Public Class SimulationPageUC
If bOk Then m_CurrProjPage.SetOrderMachiningFlag()
Dim bModif As Boolean = TestAllMachiningsForStrict()
If bModif Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze
m_CurrProjPage.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze
Else
m_CurrProjPage.SetInfoMessage(EgtMsg(90399)) 'Aggiornate tutte le lavorazioni
m_CurrProjPage.SetInfoMessage(EgtMsg(90399)) 'Aggiornate tutte le lavorazioni
End If
End If
' Costringo ad aggiornare UI
@@ -130,7 +138,7 @@ Public Class SimulationPageUC
' Se errore in setup, lo segnalo
If Not bSetup Then
m_CurrProjPage.SetErrorMessage(EgtMsg(90322) & " " & sMissingTools) 'Mancano gli utensili : ...
' Se errore in generazione, segnalo l'errore
' Se errore in generazione, segnalo l'errore
ElseIf Not bOk Then
m_CurrProjPage.SetErrorMessage(EgtMsg(90314)) 'Errore nella generazione del programma CN
End If
@@ -170,7 +178,7 @@ Public Class SimulationPageUC
' Nascondo eventuale contorno da foto
m_CurrProjPage.ShowContour(False)
' Nascondo eventuali testi con dati su aree
m_CurrProjPage.SetAreasStatus( false)
m_CurrProjPage.SetAreasStatus(False)
' Recupero eventuale fase di ripartenza
m_nRestart = m_MainWindow.m_CurrentProjectPageUC.GetProjectNcRestart()
' Imposto prima fase
@@ -178,12 +186,6 @@ Public Class SimulationPageUC
ShowAllCurrPhaseMachinings()
' Costringo ad aggiornare UI
UpdateUI()
' Visualizzo opportunamente la macchina
m_nMachLook = MCH_LOOK.ALL
EgtSetMachineLook(m_nMachLook)
' Imposto vista 3d isometrica di tutto
EgtSetView(VT.ISO_SE, False)
EgtZoom(ZM.ALL)
' Registro funzione su aggiornamento interfaccia da sotto
EgtSetProcessEvents(m_ProcEventsCallback)
EgtSetOutText(m_OutTextCallback)
@@ -206,6 +208,13 @@ Public Class SimulationPageUC
Else
PlayPauseImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Play.png", UriKind.Relative))
End If
Dim nIdBase As Integer = EgtGetBaseId("Base")
Dim m_nIdMinRedX = EgtGetFirstNameInGroup(nIdBase, "MinRedX")
If m_nIdMinRedX <> GDB_ID.NULL Then EgtSetStatus(m_nIdMinRedX, GDB_ST.OFF)
Dim m_nIdMinRedY = EgtGetFirstNameInGroup(nIdBase, "MinRedY")
If m_nIdMinRedY <> GDB_ID.NULL Then EgtSetStatus(m_nIdMinRedY, GDB_ST.OFF)
EgtOutLog(" -- END PREPARE SIMUL --")
End Sub
Private Sub StepBtn_Click(sender As Object, e As RoutedEventArgs) Handles StepBtn.Click
@@ -477,7 +486,8 @@ Public Class SimulationPageUC
Private Function LoadCurrTools() As Boolean
' Se macchina senza cambio utensile automatico devo caricare gli utensili
If m_MainWindow.m_CurrentMachine.MountedToolConfig <> CurrentMachine.MountedToolConfigs.TOOLCHANGER Then
If m_MainWindow.m_CurrentMachine.MountedToolConfig <> CurrentMachine.MountedToolConfigs.TOOLCHANGER And
m_MainWindow.m_CurrentMachine.MountedToolConfig <> CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
' Imposto la lama corrente
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
If Not EgtLoadTool("H1", 1, sSaw) Then Return False
@@ -613,7 +623,7 @@ Public Class SimulationPageUC
' Ripristino come fase corrente quella iniziale
EgtSetCurrPhase(1)
If bOk Then
m_CurrProjPage.SetInfoMessage("Genarato file " & sFileName & m_MainWindow.m_CurrentMachine.sIsoFileExt)
m_CurrProjPage.SetInfoMessage(EgtMsg(90571) & sFileName & m_MainWindow.m_CurrentMachine.sIsoFileExt) ' Genarato file
Else
m_CurrProjPage.SetErrorMessage(EgtMsg(90314)) 'Errore nella generazione del programma CN
End If
+21
View File
@@ -453,6 +453,27 @@ Module Utility
Return True
End Function
' Restituisce il colore dell'utensile correntemente settato, se non trova l'utesile o il colore ritorna il default (0,255,0)
Friend Function GetColorPV() As Color3d
Dim ToolString As String = String.Empty
Dim ToolColor As String = String.Empty
'EgtTdbGetCurrToolParam(MCH_MP.SYSNOTES, ToolString)
EgtTdbGetCurrToolParam(MCH_TP.SYSNOTES, ToolString)
EgtTdbGetCurrToolValInNotes(MCH_TP.SYSNOTES, "COLOR", ToolColor)
Dim sItems As String() = ToolColor.Split(","c)
' Verifico che siano almeno 3 campi
If sItems.Count < 3 Then
Return New Color3d(0, 255, 0, 100)
Else
' Verifico che tutti i campi siano numerici
If IsNumeric(sItems(0)) And IsNumeric(sItems(1)) And IsNumeric(sItems(2)) Then
Return New Color3d(CInt(sItems(0)), CInt(sItems(1)), CInt(sItems(2)), 100)
Else
Return New Color3d(0, 255, 0, 100)
End If
End If
End Function
'--------------------------------------------------------------------------------------------------
Public Class Language