Compare commits
202 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ab8051275b | |||
| 18edeb5ee0 | |||
| 471ba49732 | |||
| fd6e15be1e | |||
| a2bb9e250c | |||
| 2673d51008 | |||
| 1d5cce387f | |||
| 07e5756793 | |||
| e5e80e9a55 | |||
| 233a63b95b | |||
| cd0388b970 | |||
| 135be5f104 | |||
| 2f116ba3fe | |||
| 96ee5b5172 | |||
| b1367d543f | |||
| 484f7eb410 | |||
| c1eb839fe8 | |||
| f3b1d80de7 | |||
| 14b4897575 | |||
| 213a66d916 | |||
| c9c7aeafae | |||
| 07d54499b7 | |||
| 9f266f1c56 | |||
| 0362f77f23 | |||
| fd28e2f971 | |||
| 31264a20a0 | |||
| bee2c44ba7 | |||
| 65652f468c | |||
| 2236eb12c7 | |||
| e48837836b | |||
| d05fe9c6b2 | |||
| 8c8a26b692 | |||
| 0b1a39704c | |||
| 8d1b1adaa9 | |||
| eb881155d9 | |||
| 8c0d5a651d | |||
| 10655893e4 | |||
| ec1af67d5b | |||
| e103aa753f | |||
| ecacf89e93 | |||
| 7e5b813df1 | |||
| 108048b559 | |||
| 0086345f64 | |||
| a5cc976810 | |||
| 5bdc4c46bc | |||
| 6e8154d29a | |||
| c8614fe52d | |||
| f420926e3e | |||
| 794c5da9e6 | |||
| 9d58cec30e | |||
| e54c5f006e | |||
| 4a0a398e9f | |||
| 778219da1e | |||
| 4ac506fbf0 | |||
| 9616e211e5 | |||
| 61b16af746 | |||
| 7d010be835 | |||
| 48e523ce26 | |||
| a73b45d23e | |||
| 8ea607611c | |||
| bdf0971c20 | |||
| 7d77297695 | |||
| bdcdcaecf0 | |||
| 44011c5775 | |||
| cba095188e | |||
| ebedccf46a | |||
| 8bd7d9e3fa | |||
| 8dfa932bd7 | |||
| 5422e905e7 | |||
| da396cc82e | |||
| da8e7a9e42 | |||
| d8cbe1a2c6 | |||
| 79c2c17d6b | |||
| ccb8945a4f | |||
| 842ab19e8b | |||
| 5cfc72be27 | |||
| 45d3f5c7d8 | |||
| ac67a14fea | |||
| 1df823cdec | |||
| be29ea050d | |||
| cd4d2b1ccb | |||
| c730513f27 | |||
| 9f3920a2b2 | |||
| f388dc0c50 | |||
| 6613b3d551 | |||
| 615d6d2652 | |||
| 3ea8335357 | |||
| bbdac91894 | |||
| c424ff6661 | |||
| 4d64328b1b | |||
| 10c4c7ecc1 | |||
| 03def4b530 | |||
| a3b56444f6 | |||
| 837380226a | |||
| f15935ecbc | |||
| 00360013e3 | |||
| 0010deb7fc | |||
| 9c267aacf7 | |||
| 311cf40a8e | |||
| 4c34b62e65 | |||
| 87037b6c6a | |||
| 74c479d17d | |||
| ee6c0ad146 | |||
| ead6bcec6d | |||
| a1ad658f27 | |||
| 4ab7811b50 | |||
| 1899c9a735 | |||
| 3f769c49da | |||
| da4ddb2a7f | |||
| 3667ecb3b7 | |||
| 206af48539 | |||
| 253e92b111 | |||
| 123d6118e9 | |||
| a2104eaa03 | |||
| 65b9bfdcdb | |||
| 004591896c | |||
| 02af01052b | |||
| 2bc386807f | |||
| 82af1baae3 | |||
| 68b4dfed80 | |||
| ffc7536177 | |||
| 70368b73be | |||
| 05b4e2e95a | |||
| 1d7cdf8fa0 | |||
| 5190a41470 | |||
| 3afe6bb35b | |||
| c546df45ca | |||
| 554ae16e48 | |||
| 1b4d239202 | |||
| 3b2d15703a | |||
| 8e5a4d4ac5 | |||
| ef621a340a | |||
| f2ce55ff27 | |||
| ae3b16b715 | |||
| 8ff4b74725 | |||
| 18fb37b497 | |||
| 246e55f733 | |||
| e7e1946230 | |||
| 8dc6b63801 | |||
| 9b29b16a33 | |||
| 1debeab653 | |||
| 63c3a4e085 | |||
| 7830105bc4 | |||
| 8a11051575 | |||
| 0b50832b4e | |||
| 7f548e5ba6 | |||
| 40bdcec46e | |||
| 2cf1be7348 | |||
| bb932788f9 | |||
| 4c0da9af53 | |||
| 9eaca47566 | |||
| 7c53ecceb4 | |||
| 9a6f6ad37e | |||
| 8174c6137a | |||
| b84699e3c1 | |||
| 5101c1cca9 | |||
| 3ad3694454 | |||
| 9d9e184efa | |||
| cf3f756683 | |||
| 72544190cc | |||
| 2ce454ad0a | |||
| 5a3ad4356f | |||
| ba4414c9f6 | |||
| aa29e4106d | |||
| 76eb17868c | |||
| 829b58a0e5 | |||
| 79847e3cce | |||
| 59be071d12 | |||
| d9150c75f4 | |||
| 00088315cd | |||
| e12a310010 | |||
| 449fe3ad57 | |||
| e8d8637832 | |||
| 6671f2269e | |||
| 26ef6b2d3b | |||
| b5e9686da2 | |||
| f57410dffb | |||
| 346c452546 | |||
| 2eff34e8b6 | |||
| 7c3a107c31 | |||
| e119e9673a | |||
| 2407d3a0ae | |||
| fd32ba3ea1 | |||
| 9045469c0d | |||
| 10972a466d | |||
| e6b674ec46 | |||
| 68cdd41b20 | |||
| cf23a2b7c2 | |||
| 67c2a9d0ec | |||
| 7b70a27ff4 | |||
| 00c37ad74f | |||
| 18e079d235 | |||
| f734885de5 | |||
| 0cc673b047 | |||
| acc1365fd2 | |||
| 7dcf1fe8dc | |||
| 03ecf3493b | |||
| cd748dea7a | |||
| c2f03a883a | |||
| 9b09eeaa9c | |||
| fa0bc2ffdd | |||
| 529fb6d3a6 |
@@ -36,7 +36,7 @@
|
|||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Border Name="LogoBrd" Grid.Column="1">
|
<Border Name="LogoBrd" Grid.Column="1">
|
||||||
<Image Source="../Resources/AboutBoxImage.png" Stretch="Uniform"/>
|
<Image Source="../Resources/NewIcons/Logo-Egalware (3).png" Stretch="Uniform"/>
|
||||||
</Border>
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
<TextBlock Name="DescriptionLbl" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Center"
|
<TextBlock Name="DescriptionLbl" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Center"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
Imports System.Windows.Forms.Integration
|
Imports System.Windows.Forms.Integration
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
|
Imports EgtWPFLib5
|
||||||
|
|
||||||
Friend Module CamAuto
|
Friend Module CamAuto
|
||||||
|
|
||||||
@@ -22,11 +23,51 @@ Friend Module CamAuto
|
|||||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Add")
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Add")
|
||||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
EgtLuaResetGlobVar("CAM")
|
EgtLuaResetGlobVar("CAM")
|
||||||
|
If nErr > 0 Then
|
||||||
|
bOk = False
|
||||||
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(91017))
|
||||||
|
End If
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
||||||
|
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
|
If nErr <> 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
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
|
End If
|
||||||
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
|
||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -40,9 +81,34 @@ Friend Module CamAuto
|
|||||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.AddWaterJet")
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.AddWaterJet")
|
||||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
EgtLuaResetGlobVar("CAM")
|
EgtLuaResetGlobVar("CAM")
|
||||||
If nErr <> 0 Then
|
If nErr > 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
|
End If
|
||||||
|
Return bOk
|
||||||
|
End Function
|
||||||
|
|
||||||
|
' versione CamAuto 2.6l1: gestione tagli con ridotto affondamento
|
||||||
|
Friend Function AddWaterJetMachining(LocaList As List(Of Integer), ByRef nWarn As Integer) As Boolean
|
||||||
|
EgtLuaCreateGlobTable("CAM")
|
||||||
|
SetLuaStandardCamParams()
|
||||||
|
For i As Integer = 0 To LocaList.Count - 1
|
||||||
|
EgtLuaSetGlobIntVar("CAM.TAB_OPERID." & (i + 1).ToString, LocaList(i))
|
||||||
|
Next
|
||||||
|
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.AddWaterJets")
|
||||||
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
|
EgtLuaResetGlobVar("CAM")
|
||||||
|
If nErr > 0 Then
|
||||||
|
bOk = False
|
||||||
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
End If
|
End If
|
||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
@@ -56,9 +122,11 @@ Friend Module CamAuto
|
|||||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Erase")
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Erase")
|
||||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
EgtLuaResetGlobVar("CAM")
|
EgtLuaResetGlobVar("CAM")
|
||||||
If nErr <> 0 Then
|
If nErr > 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
End If
|
End If
|
||||||
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
||||||
m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart()
|
m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart()
|
||||||
@@ -74,9 +142,11 @@ Friend Module CamAuto
|
|||||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.InvertVerticalCut")
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.InvertVerticalCut")
|
||||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
EgtLuaResetGlobVar("CAM")
|
EgtLuaResetGlobVar("CAM")
|
||||||
If nErr <> 0 Then
|
If nErr > 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
End If
|
End If
|
||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
@@ -102,6 +172,63 @@ Friend Module CamAuto
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
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 sInfoSIdeAng As String = String.Empty
|
||||||
|
EgtGetInfo(nEntId, INFO_SIDE_ANGLE, sInfoSIdeAng)
|
||||||
|
' Se è un'entità associata ad una lavorazione inclinata
|
||||||
|
If Not String.IsNullOrEmpty(sInfoSIdeAng) 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)
|
||||||
|
Else
|
||||||
|
' Applico quella specificata
|
||||||
|
EgtSetInfo(nEntId, DEF_MACHINING, sSawingTilted)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
' Rimuovo la lavorazione e applico quella standard
|
||||||
|
EgtRemoveInfo(nEntId, DEF_MACHINING)
|
||||||
|
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
|
Friend Function ResetAllSplitCurv() As Boolean
|
||||||
Dim bOk As Boolean = True
|
Dim bOk As Boolean = True
|
||||||
Dim nIdPart As Integer = EgtGetFirstPart()
|
Dim nIdPart As Integer = EgtGetFirstPart()
|
||||||
@@ -271,9 +398,11 @@ Friend Module CamAuto
|
|||||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.UpdateAllTp")
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.UpdateAllTp")
|
||||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
EgtLuaResetGlobVar("CAM")
|
EgtLuaResetGlobVar("CAM")
|
||||||
If nErr <> 0 Then
|
If nErr > 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
End If
|
End If
|
||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
@@ -287,9 +416,11 @@ Friend Module CamAuto
|
|||||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Sort")
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Sort")
|
||||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
EgtLuaResetGlobVar("CAM")
|
EgtLuaResetGlobVar("CAM")
|
||||||
If nErr <> 0 Then
|
If nErr > 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
End If
|
End If
|
||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
@@ -304,9 +435,11 @@ Friend Module CamAuto
|
|||||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.SpecApplyDisp")
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.SpecApplyDisp")
|
||||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
EgtLuaResetGlobVar("CAM")
|
EgtLuaResetGlobVar("CAM")
|
||||||
If nErr <> 0 Then
|
If nErr > 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
ElseIf nErr < 0 Then
|
||||||
|
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||||
End If
|
End If
|
||||||
If ResetOrderMachiningFlag Then
|
If ResetOrderMachiningFlag Then
|
||||||
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
||||||
@@ -322,7 +455,7 @@ Friend Module CamAuto
|
|||||||
EgtGetGroupObjs(EgtGetFirstNameInGroup(nPartId, NAME_UNDERDRILL)) = 0 Then
|
EgtGetGroupObjs(EgtGetFirstNameInGroup(nPartId, NAME_UNDERDRILL)) = 0 Then
|
||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
' Se tutti i pezzi
|
' Se tutti i pezzi
|
||||||
Else
|
Else
|
||||||
' Salvo fase attualmente corrente
|
' Salvo fase attualmente corrente
|
||||||
Dim nOriPhase As Integer = EgtGetCurrPhase()
|
Dim nOriPhase As Integer = EgtGetCurrPhase()
|
||||||
@@ -449,6 +582,7 @@ Friend Module CamAuto
|
|||||||
Return EgtRemoveOperationHome(nId)
|
Return EgtRemoveOperationHome(nId)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
' Verifico che per tutte le lavorazioni sia attrezzato l'utensile
|
||||||
Friend Function VerifySetup(ByRef sMissingTools As String) As Boolean
|
Friend Function VerifySetup(ByRef sMissingTools As String) As Boolean
|
||||||
Dim bOk As Boolean = True
|
Dim bOk As Boolean = True
|
||||||
Dim bIsMultiCut = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
Dim bIsMultiCut = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
@@ -463,9 +597,9 @@ Friend Module CamAuto
|
|||||||
Dim sTool2 As String = String.Empty
|
Dim sTool2 As String = String.Empty
|
||||||
EgtGetMachiningParam(MCH_MP.TUUID, sTuuid)
|
EgtGetMachiningParam(MCH_MP.TUUID, sTuuid)
|
||||||
EgtTdbGetToolFromUUID(sTuuid, sTool)
|
EgtTdbGetToolFromUUID(sTuuid, sTool)
|
||||||
If String.IsNullOrWhiteSpace( sTool) Then
|
If String.IsNullOrWhiteSpace(sTool) Then
|
||||||
Dim sMchTool As String = ""
|
Dim sMchTool As String = ""
|
||||||
EgtGetMachiningParam( MCH_MP.TOOL, sMchTool)
|
EgtGetMachiningParam(MCH_MP.TOOL, sMchTool)
|
||||||
bOk = False
|
bOk = False
|
||||||
If sMissingTools.IndexOf(sMchTool) = -1 Then
|
If sMissingTools.IndexOf(sMchTool) = -1 Then
|
||||||
sMissingTools = sMissingTools & sMchTool & ", "
|
sMissingTools = sMissingTools & sMchTool & ", "
|
||||||
@@ -478,8 +612,24 @@ Friend Module CamAuto
|
|||||||
End If
|
End If
|
||||||
sTool2 = sTool & "-2"
|
sTool2 = sTool & "-2"
|
||||||
End If
|
End If
|
||||||
If String.Compare(sTool, m_MainWindow.m_CurrentMachine.sCurrSaw) <> 0 AndAlso
|
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW Then
|
||||||
( String.IsNullOrWhiteSpace( sTool2) OrElse String.Compare(sTool2, m_MainWindow.m_CurrentMachine.sCurrSaw) <> 0) AndAlso
|
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
|
String.Compare(sTool, m_MainWindow.m_CurrentMachine.sCurrDripSaw) <> 0 Then
|
||||||
bOk = False
|
bOk = False
|
||||||
If sMissingTools.IndexOf(sTool) = -1 Then
|
If sMissingTools.IndexOf(sTool) = -1 Then
|
||||||
@@ -517,6 +667,8 @@ Friend Module CamAuto
|
|||||||
End If
|
End If
|
||||||
nId = EgtGetNextOperation(nId)
|
nId = EgtGetNextOperation(nId)
|
||||||
End While
|
End While
|
||||||
|
Dim index As Integer = sMissingTools.LastIndexOf(","c)
|
||||||
|
sMissingTools = If(index >= 0, sMissingTools.Remove(index, 1), sMissingTools)
|
||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -543,9 +695,10 @@ Friend Module CamAuto
|
|||||||
Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile())
|
Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile())
|
||||||
' Ciclo sulle lavorazioni
|
' Ciclo sulle lavorazioni
|
||||||
Dim nOperId As Integer = EgtGetFirstOperation()
|
Dim nOperId As Integer = EgtGetFirstOperation()
|
||||||
|
Dim LocalListOperId As New List(Of Integer)
|
||||||
While nOperId <> GDB_ID.NULL
|
While nOperId <> GDB_ID.NULL
|
||||||
' verifico sia una lavorazione valida di taglio con lama
|
' 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
|
' verifica interferenza
|
||||||
Dim nFlag As Integer = FMI_TYPE.NONE
|
Dim nFlag As Integer = FMI_TYPE.NONE
|
||||||
If Not VerifyComposedMachining(nOperId, nFlag) Then
|
If Not VerifyComposedMachining(nOperId, nFlag) Then
|
||||||
@@ -557,12 +710,14 @@ Friend Module CamAuto
|
|||||||
' se abilitato e attivo waterjet, lo aggiungo per completare il taglio
|
' se abilitato e attivo waterjet, lo aggiungo per completare il taglio
|
||||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
||||||
Dim nWarn As Integer = 0
|
Dim nWarn As Integer = 0
|
||||||
AddWaterJetMachining(nOperId, nWarn)
|
LocalListOperId.Add(nOperId)
|
||||||
|
'AddWaterJetMachining(nOperId, nWarn)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
nOperId = EgtGetNextOperation(nOperId)
|
nOperId = EgtGetNextOperation(nOperId)
|
||||||
End While
|
End While
|
||||||
|
If LocalListOperId.Count > 0 Then AddWaterJetMachining(LocalListOperId, 0)
|
||||||
Return bModified
|
Return bModified
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -666,8 +821,8 @@ Friend Module CamAuto
|
|||||||
If nOriLeadIn <> MCH_SAW_LI.STRICT Then
|
If nOriLeadIn <> MCH_SAW_LI.STRICT Then
|
||||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.STRICT)
|
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.STRICT)
|
||||||
Dim dUserAddLen As Double = 0
|
Dim dUserAddLen As Double = 0
|
||||||
EgtGetInfo( nMchId, INFO_MCH_USER_SAL, dUserAddLen)
|
EgtGetInfo(nMchId, INFO_MCH_USER_SAL, dUserAddLen)
|
||||||
EgtRemoveInfo( nMchId, INFO_MCH_USER_SAL)
|
EgtRemoveInfo(nMchId, INFO_MCH_USER_SAL)
|
||||||
Dim dAddLen As Double = 0
|
Dim dAddLen As Double = 0
|
||||||
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
|
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
|
||||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen - dUserAddLen - dSafeLen)
|
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen - dUserAddLen - dSafeLen)
|
||||||
@@ -686,8 +841,8 @@ Friend Module CamAuto
|
|||||||
If nOriLeadOut <> MCH_SAW_LO.STRICT Then
|
If nOriLeadOut <> MCH_SAW_LO.STRICT Then
|
||||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.STRICT)
|
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.STRICT)
|
||||||
Dim dUserAddLen As Double = 0
|
Dim dUserAddLen As Double = 0
|
||||||
EgtGetInfo( nMchId, INFO_MCH_USER_EAL, dUserAddLen)
|
EgtGetInfo(nMchId, INFO_MCH_USER_EAL, dUserAddLen)
|
||||||
EgtRemoveInfo( nMchId, INFO_MCH_USER_EAL)
|
EgtRemoveInfo(nMchId, INFO_MCH_USER_EAL)
|
||||||
Dim dAddLen As Double = 0
|
Dim dAddLen As Double = 0
|
||||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
||||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen - dUserAddLen - dSafeLen)
|
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen - dUserAddLen - dSafeLen)
|
||||||
@@ -844,9 +999,9 @@ Friend Module CamAuto
|
|||||||
Friend Function RemoveAllExitPreCuts() As Boolean
|
Friend Function RemoveAllExitPreCuts() As Boolean
|
||||||
Dim nOperId As Integer = EgtGetFirstOperation()
|
Dim nOperId As Integer = EgtGetFirstOperation()
|
||||||
While nOperId <> GDB_ID.NULL
|
While nOperId <> GDB_ID.NULL
|
||||||
Dim nNextOperId As Integer = EgtGetNextOperation( nOperId)
|
Dim nNextOperId As Integer = EgtGetNextOperation(nOperId)
|
||||||
If EgtGetType( nOperId) <> MCH_OY.DISP AndAlso EgtExistsInfo(nOperId, INFO_MCH_EPC) Then
|
If EgtGetType(nOperId) <> MCH_OY.DISP AndAlso EgtExistsInfo(nOperId, INFO_MCH_EPC) Then
|
||||||
EgtRemoveOperation( nOperId)
|
EgtRemoveOperation(nOperId)
|
||||||
End If
|
End If
|
||||||
nOperId = nNextOperId
|
nOperId = nNextOperId
|
||||||
End While
|
End While
|
||||||
@@ -856,6 +1011,7 @@ Friend Module CamAuto
|
|||||||
Private Function SetLuaStandardCamParams(Optional bDripOk As Boolean = True) As Boolean
|
Private Function SetLuaStandardCamParams(Optional bDripOk As Boolean = True) As Boolean
|
||||||
Dim sMaterial As String = m_MainWindow.m_CurrentMachine.CurrMat.sName
|
Dim sMaterial As String = m_MainWindow.m_CurrentMachine.CurrMat.sName
|
||||||
Dim sSawMch As String = m_MainWindow.m_CurrentMachine.sCurrSawing
|
Dim sSawMch As String = m_MainWindow.m_CurrentMachine.sCurrSawing
|
||||||
|
Dim sSawTiltedMch As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
|
||||||
Dim sMillMch As String = m_MainWindow.m_CurrentMachine.sCurrMilling
|
Dim sMillMch As String = m_MainWindow.m_CurrentMachine.sCurrMilling
|
||||||
Dim sDrillMch As String = m_MainWindow.m_CurrentMachine.sCurrDrilling
|
Dim sDrillMch As String = m_MainWindow.m_CurrentMachine.sCurrDrilling
|
||||||
Dim sWaterJetMch As String = m_MainWindow.m_CurrentMachine.sCurrWaterJetting
|
Dim sWaterJetMch As String = m_MainWindow.m_CurrentMachine.sCurrWaterJetting
|
||||||
@@ -874,6 +1030,7 @@ Friend Module CamAuto
|
|||||||
Dim dMillingShort As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile())
|
Dim dMillingShort As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile())
|
||||||
EgtLuaSetGlobStringVar("CAM.MATERIAL", sMaterial)
|
EgtLuaSetGlobStringVar("CAM.MATERIAL", sMaterial)
|
||||||
EgtLuaSetGlobStringVar("CAM.SAWMCH", sSawMch)
|
EgtLuaSetGlobStringVar("CAM.SAWMCH", sSawMch)
|
||||||
|
EgtLuaSetGlobStringVar("CAM.SAWTILTEDMCH", sSawTiltedMch)
|
||||||
EgtLuaSetGlobStringVar("CAM.MILLMCH", sMillMch)
|
EgtLuaSetGlobStringVar("CAM.MILLMCH", sMillMch)
|
||||||
EgtLuaSetGlobStringVar("CAM.DRILLMCH", sDrillMch)
|
EgtLuaSetGlobStringVar("CAM.DRILLMCH", sDrillMch)
|
||||||
EgtLuaSetGlobStringVar("CAM.POCKETMCH", sPocketMch)
|
EgtLuaSetGlobStringVar("CAM.POCKETMCH", sPocketMch)
|
||||||
@@ -1033,13 +1190,13 @@ Friend Module CamAuto
|
|||||||
Dim nRawId As Integer = GetCurrentRaw()
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
If nRawId = GDB_ID.NULL Then Return False
|
If nRawId = GDB_ID.NULL Then Return False
|
||||||
' Se non ci sono pezzi, esco
|
' 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
|
If nPart1Id = GDB_ID.NULL Then Return True
|
||||||
' Verifico se cornice curva
|
' Verifico se cornice curva
|
||||||
Dim nDir As Integer = 0
|
Dim nDir As Integer = 0
|
||||||
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
||||||
Dim bSwap As Boolean = ( nDir = 0)
|
Dim bSwap As Boolean = (nDir = 0)
|
||||||
Dim bCurved As Boolean = ( nDir >= 2)
|
Dim bCurved As Boolean = (nDir >= 2)
|
||||||
' Recupero la lavorazione corrente di sgrossatura con lama
|
' Recupero la lavorazione corrente di sgrossatura con lama
|
||||||
Dim sCurrSawRoughing = m_MainWindow.m_CurrentMachine.sCurrSawRoughing
|
Dim sCurrSawRoughing = m_MainWindow.m_CurrentMachine.sCurrSawRoughing
|
||||||
If String.IsNullOrEmpty(sCurrSawRoughing) Then Return True
|
If String.IsNullOrEmpty(sCurrSawRoughing) Then Return True
|
||||||
@@ -1066,8 +1223,8 @@ Friend Module CamAuto
|
|||||||
' Imposto la geometria
|
' Imposto la geometria
|
||||||
EgtSetMachiningGeometry(vId)
|
EgtSetMachiningGeometry(vId)
|
||||||
' Imposto trim iniziale e finale
|
' Imposto trim iniziale e finale
|
||||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
|
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
|
||||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
|
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
|
||||||
' Se cornice curva, imposto SCC
|
' Se cornice curva, imposto SCC
|
||||||
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
||||||
' Applico la lavorazione
|
' Applico la lavorazione
|
||||||
@@ -1082,13 +1239,13 @@ Friend Module CamAuto
|
|||||||
Dim nRawId As Integer = GetCurrentRaw()
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
If nRawId = GDB_ID.NULL Then Return False
|
If nRawId = GDB_ID.NULL Then Return False
|
||||||
' Se non ci sono pezzi, esco
|
' 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
|
If nPart1Id = GDB_ID.NULL Then Return True
|
||||||
' Verifico se cornice curva
|
' Verifico se cornice curva
|
||||||
Dim nDir As Integer = 0
|
Dim nDir As Integer = 0
|
||||||
EgtGetInfo( nPart1Id, INFO_FRAME_DIR, nDir)
|
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
||||||
Dim bSwap As Boolean = ( nDir = 0)
|
Dim bSwap As Boolean = (nDir = 0)
|
||||||
Dim bCurved As Boolean = ( nDir >= 2)
|
Dim bCurved As Boolean = (nDir >= 2)
|
||||||
' Recupero la lavorazione corrente di finitura con lama
|
' Recupero la lavorazione corrente di finitura con lama
|
||||||
Dim sCurrSawFinishing = m_MainWindow.m_CurrentMachine.sCurrSawFinishing
|
Dim sCurrSawFinishing = m_MainWindow.m_CurrentMachine.sCurrSawFinishing
|
||||||
If String.IsNullOrEmpty(sCurrSawFinishing) Then Return True
|
If String.IsNullOrEmpty(sCurrSawFinishing) Then Return True
|
||||||
@@ -1125,8 +1282,8 @@ Friend Module CamAuto
|
|||||||
' Imposto la geometria
|
' Imposto la geometria
|
||||||
EgtSetMachiningGeometry(vId)
|
EgtSetMachiningGeometry(vId)
|
||||||
' Imposto trim iniziale e finale
|
' Imposto trim iniziale e finale
|
||||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
|
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
|
||||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
|
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
|
||||||
' Se cornice curva, imposto SCC
|
' Se cornice curva, imposto SCC
|
||||||
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
||||||
' Applico la lavorazione
|
' Applico la lavorazione
|
||||||
@@ -1141,13 +1298,13 @@ Friend Module CamAuto
|
|||||||
Dim nRawId As Integer = GetCurrentRaw()
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
If nRawId = GDB_ID.NULL Then Return False
|
If nRawId = GDB_ID.NULL Then Return False
|
||||||
' Se non ci sono pezzi, esco
|
' 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
|
If nPart1Id = GDB_ID.NULL Then Return True
|
||||||
' Verifico se cornice curva
|
' Verifico se cornice curva
|
||||||
Dim nDir As Integer = 0
|
Dim nDir As Integer = 0
|
||||||
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
||||||
Dim bSwap As Boolean = ( nDir = 0)
|
Dim bSwap As Boolean = (nDir = 0)
|
||||||
Dim bCurved As Boolean = ( nDir >= 2)
|
Dim bCurved As Boolean = (nDir >= 2)
|
||||||
' Recupero la lavorazione corrente di spatolatura con lama
|
' Recupero la lavorazione corrente di spatolatura con lama
|
||||||
Dim sCurrSawSideFinishing = m_MainWindow.m_CurrentMachine.sCurrSawSideFinishing
|
Dim sCurrSawSideFinishing = m_MainWindow.m_CurrentMachine.sCurrSawSideFinishing
|
||||||
If String.IsNullOrEmpty(sCurrSawSideFinishing) Then Return True
|
If String.IsNullOrEmpty(sCurrSawSideFinishing) Then Return True
|
||||||
@@ -1168,8 +1325,8 @@ Friend Module CamAuto
|
|||||||
' Imposto la geometria
|
' Imposto la geometria
|
||||||
EgtSetMachiningGeometry(vId)
|
EgtSetMachiningGeometry(vId)
|
||||||
' Imposto trim iniziale e finale
|
' Imposto trim iniziale e finale
|
||||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
|
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
|
||||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
|
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
|
||||||
' Se cornice curva, imposto SCC
|
' Se cornice curva, imposto SCC
|
||||||
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
||||||
' Applico la lavorazione
|
' Applico la lavorazione
|
||||||
@@ -1308,14 +1465,14 @@ Friend Module CamAuto
|
|||||||
dStartDist = dEndDist
|
dStartDist = dEndDist
|
||||||
dEndDist = dTemp
|
dEndDist = dTemp
|
||||||
End If
|
End If
|
||||||
' altrimenti
|
' altrimenti
|
||||||
Else
|
Else
|
||||||
Dim vtSide As Vector3d
|
Dim vtSide As Vector3d
|
||||||
' Se faccia non limitata da altre o sopra la limitante
|
' Se faccia non limitata da altre o sopra la limitante
|
||||||
If bFree Then
|
If bFree Then
|
||||||
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_DOWN)
|
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_DOWN)
|
||||||
vtSide = Vector3d.Z_AX()
|
vtSide = Vector3d.Z_AX()
|
||||||
' altrimenti è stata trovata una faccia adiacente limitante
|
' altrimenti è stata trovata una faccia adiacente limitante
|
||||||
Else
|
Else
|
||||||
If vtAdjN.x > 10 * EPS_SMALL Then
|
If vtAdjN.x > 10 * EPS_SMALL Then
|
||||||
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_LEFT)
|
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_LEFT)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!--Griglia per oscurare i bottoni della pagina sottostante-->
|
<!--Griglia per oscurare i bottoni della pagina sottostante-->
|
||||||
<Grid Background="{DynamicResource OmagCut_Gray}">
|
<Grid Background="{DynamicResource OmagCut_Gray}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
<Label Name="CsvPathTxBl" Grid.Row="1" Background="White" FontSize="16" VerticalAlignment="Center" Padding="2,5,0,5"/>
|
<Label Name="CsvPathTxBl" Grid.Row="1" Background="White" FontSize="16" VerticalAlignment="Center" Padding="2,5,0,5"/>
|
||||||
|
|
||||||
<TreeView Name="PartsTreeView" Grid.Row="2" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}">
|
<TreeView Name="PartsTreeView" Grid.Row="2" Background="{StaticResource OmagCut_TreeViewGradientGray}">
|
||||||
<TreeView.Resources>
|
<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 -->
|
<!--renderlo apribile con un solo click -->
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />
|
<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />
|
||||||
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" />
|
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" Foreground="Black" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
@@ -123,7 +123,10 @@
|
|||||||
</Setter>
|
</Setter>
|
||||||
<Style.Triggers>
|
<Style.Triggers>
|
||||||
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
||||||
<Setter Property="Foreground" Value="{StaticResource OmagCut_LightGray}"/>
|
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
||||||
|
</DataTrigger>
|
||||||
|
<DataTrigger Binding="{Binding bIsActive}" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="Black"/>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
</Style.Triggers>
|
</Style.Triggers>
|
||||||
</Style>
|
</Style>
|
||||||
@@ -131,18 +134,25 @@
|
|||||||
</HierarchicalDataTemplate>
|
</HierarchicalDataTemplate>
|
||||||
<!--Modifico DataTemplate del ToolItem per poter inserire immagine e testo-->
|
<!--Modifico DataTemplate del ToolItem per poter inserire immagine e testo-->
|
||||||
<DataTemplate DataType="{x:Type self:PartCustomItem}">
|
<DataTemplate DataType="{x:Type self:PartCustomItem}">
|
||||||
<Grid Width="246" Margin="0,5,0,5" HorizontalAlignment="Right">
|
<Grid Width="234.8" Margin="0,5,0,5" HorizontalAlignment="Right">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="60"/>
|
<ColumnDefinition Width="60"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<TextBlock Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
|
<TextBlock x:Name="TbName" Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
|
||||||
<TextBlock Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
|
<TextBlock x:Name="TbText1" Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
|
||||||
<TextBlock Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
|
<TextBlock x:Name="TbText2" Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<DataTemplate.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
||||||
|
<Setter TargetName="TbName" Property="TextDecorations" Value="Strikethrough" />
|
||||||
|
<Setter TargetName="TbText1" Property="TextDecorations" Value="Strikethrough" />
|
||||||
|
<Setter TargetName="TbText2" Property="TextDecorations" Value="Strikethrough" />
|
||||||
|
</DataTrigger>
|
||||||
|
</DataTemplate.Triggers>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</TreeView.Resources>
|
</TreeView.Resources>
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
Imports System.Reflection
|
Imports System.Reflection
|
||||||
Imports System.Globalization
|
Imports System.Globalization
|
||||||
|
Imports EgtWPFLib5
|
||||||
|
|
||||||
Public Class CadCutPageUC
|
Public Class CadCutPageUC
|
||||||
|
|
||||||
|
|||||||
@@ -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}"/>
|
||||||
|
</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.6*"/>
|
||||||
|
<ColumnDefinition Width="0.7*"/>
|
||||||
|
<ColumnDefinition Width="0.3*"/>
|
||||||
|
<ColumnDefinition Width="0.005*"/>
|
||||||
|
</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}"/>
|
||||||
|
<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>
|
||||||
@@ -0,0 +1,376 @@
|
|||||||
|
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
|
||||||
|
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
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<Window x:Class="ChooseTestToolWD"
|
||||||
|
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="OpenFile" 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="1*"/>
|
||||||
|
<RowDefinition Height="0.5*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<TextBlock Name="FilePathTxBl" Grid.Column="1" Grid.Row="1" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" />
|
||||||
|
<!--TextAlignment="Center"
|
||||||
|
FontSize="20"
|
||||||
|
VerticalAlignment="Center"-->
|
||||||
|
<ListBox Name="SetUpToolListBox" Grid.Column="1" Grid.Row="2"
|
||||||
|
ItemsSource="{Binding ItemList}">
|
||||||
|
<ListBox.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<TextBlock Text="{Binding ToolAlias}" Style="{StaticResource OmagCut_ListBoxTextBlock}" />
|
||||||
|
</DataTemplate>
|
||||||
|
</ListBox.ItemTemplate>
|
||||||
|
</ListBox>
|
||||||
|
|
||||||
|
<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>
|
||||||
@@ -0,0 +1,311 @@
|
|||||||
|
Imports System.Collections.ObjectModel
|
||||||
|
Imports System.IO
|
||||||
|
Imports EgtUILib
|
||||||
|
|
||||||
|
Public Class ChooseTestToolWD
|
||||||
|
|
||||||
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
|
|
||||||
|
Private m_SetUpToolList As New ObservableCollection(Of TestTool)
|
||||||
|
|
||||||
|
Sub New(Owner As Window)
|
||||||
|
Me.Owner = Owner
|
||||||
|
InitializeComponent()
|
||||||
|
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_SetUpToolList
|
||||||
|
FilePathTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 45) ' Selezionare l'utensile da tastare
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub OpenFile_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
|
||||||
|
' carico elenco degli utensili impostati attualmente in macchina (anche il laser!)
|
||||||
|
LoadSetUpTool()
|
||||||
|
' ricerco l'utensile della lavorazione indicata
|
||||||
|
Dim Item As TestTool = m_SetUpToolList.FirstOrDefault(Function(x) x.ToolName = m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrToolFromSelectedSawCurv)
|
||||||
|
Dim Index As Integer = m_SetUpToolList.IndexOf(Item)
|
||||||
|
If Index < 0 Then
|
||||||
|
Index = 0
|
||||||
|
End If
|
||||||
|
' se presente seleziono il primo elemento
|
||||||
|
If m_SetUpToolList.Count > 0 Then
|
||||||
|
SetUpToolListBox.SelectedItem = m_SetUpToolList(Index)
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
Else
|
||||||
|
OkBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function LoadSetUpTool() As Boolean
|
||||||
|
Dim sNameTool As String = String.Empty
|
||||||
|
Dim sHeadTool As String = String.Empty
|
||||||
|
Dim nExitTool As Integer = 0
|
||||||
|
|
||||||
|
'sNameTool = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
'If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' ' Imposto la lama
|
||||||
|
' m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool, True))
|
||||||
|
'End If
|
||||||
|
'sNameTool = m_MainWindow.m_CurrentMachine.sCurrMill
|
||||||
|
'If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' ' Imposto la fresa
|
||||||
|
' m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool, False))
|
||||||
|
'End If
|
||||||
|
'sNameTool = m_MainWindow.m_CurrentMachine.sCurrDrill
|
||||||
|
'If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' ' Imposto il foretto
|
||||||
|
' m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool, False))
|
||||||
|
'End If
|
||||||
|
|
||||||
|
sNameTool = "Laser point"
|
||||||
|
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' Imposto laser di puntamento
|
||||||
|
m_SetUpToolList.Add(New TestTool(sNameTool, ""))
|
||||||
|
End If
|
||||||
|
|
||||||
|
sNameTool = m_MainWindow.m_CurrentMachine.sCurrWaterJet
|
||||||
|
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' Imposto WJ
|
||||||
|
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
|
||||||
|
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
|
||||||
|
' Imposto la lama
|
||||||
|
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
|
||||||
|
End If
|
||||||
|
sNameTool = m_MainWindow.m_CurrentMachine.sCurrMill
|
||||||
|
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' Imposto la fresa
|
||||||
|
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
|
||||||
|
End If
|
||||||
|
sNameTool = m_MainWindow.m_CurrentMachine.sCurrDrill
|
||||||
|
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' Imposto il foretto
|
||||||
|
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
|
||||||
|
End If
|
||||||
|
|
||||||
|
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER
|
||||||
|
sNameTool = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' Imposto la lama
|
||||||
|
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
|
||||||
|
End If
|
||||||
|
' Recupero tutti gli utensili attrezzati (nel ToolChanger e nel ManualToolChanger)
|
||||||
|
For Each ToolChangerPos As ToolChangerPos In m_MainWindow.m_CurrentMachine.ManualToolChanger
|
||||||
|
'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
|
||||||
|
Next
|
||||||
|
Return True
|
||||||
|
|
||||||
|
Case CurrentMachine.MountedToolConfigs.TOOLCHANGER
|
||||||
|
' Recupero tutti gli utensili attrezzati (nel ToolChanger e nel ManualToolChanger)
|
||||||
|
sNameTool = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||||
|
' Imposto la lama
|
||||||
|
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
|
||||||
|
End If
|
||||||
|
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 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
|
||||||
|
|
||||||
|
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
|
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
|
||||||
|
' 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
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||||
|
DialogResult = True
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' restituisce l'oggetto selezionato in elenco e lo imposta come attivo
|
||||||
|
Friend Function GetSelectedTool() As TestTool
|
||||||
|
Dim SelTestTool As TestTool = DirectCast(SetUpToolListBox.SelectedItem, TestTool)
|
||||||
|
If SelTestTool.ToolAlias = "Laser point" Then
|
||||||
|
SelTestTool.ToolHead = "H3"
|
||||||
|
SelTestTool.ToolExit = 1
|
||||||
|
SelTestTool.ToolIsSaw = False
|
||||||
|
SelTestTool.ToolIsLaser = True
|
||||||
|
Else
|
||||||
|
EgtTdbSetCurrTool(SelTestTool.ToolName)
|
||||||
|
Dim sHeadTool As String = String.Empty
|
||||||
|
Dim nExitTool As Integer = 0
|
||||||
|
Dim sTypeTool As String = String.Empty
|
||||||
|
Dim nTypeTool As Integer
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nTypeTool)
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sHeadTool)
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nExitTool)
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, sTypeTool)
|
||||||
|
SelTestTool.ToolHead = sHeadTool
|
||||||
|
SelTestTool.ToolExit = nExitTool
|
||||||
|
SelTestTool.ToolType = nTypeTool
|
||||||
|
SelTestTool.ToolIsSaw = (nTypeTool = MCH_TY.SAW_STD)
|
||||||
|
SelTestTool.ToolIsLaser = False
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return SelTestTool
|
||||||
|
End Function
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class TestTool
|
||||||
|
|
||||||
|
Private m_ToolAlias As String = String.Empty
|
||||||
|
Private m_ToolName As String = String.Empty
|
||||||
|
Private m_ToolHead As String = "H1"
|
||||||
|
Private m_ToolExit As Integer = 1
|
||||||
|
Private m_ToolIsSaw As Boolean = False
|
||||||
|
Private m_ToolIsLaser As Boolean = False
|
||||||
|
Private m_ToolType As Integer = -1
|
||||||
|
|
||||||
|
Public Property ToolAlias As String
|
||||||
|
Get
|
||||||
|
Return m_ToolAlias
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_ToolAlias = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property ToolName As String
|
||||||
|
Get
|
||||||
|
Return m_ToolName
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_ToolName = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property ToolHead As String
|
||||||
|
Get
|
||||||
|
Return m_ToolHead
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_ToolHead = 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 ToolIsSaw As Boolean
|
||||||
|
Get
|
||||||
|
Return m_ToolIsSaw
|
||||||
|
End Get
|
||||||
|
Set(value As Boolean)
|
||||||
|
m_ToolIsSaw = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property ToolIsLaser As Boolean
|
||||||
|
Get
|
||||||
|
Return m_ToolIsLaser
|
||||||
|
End Get
|
||||||
|
Set(value As Boolean)
|
||||||
|
m_ToolIsLaser = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(sToolAlias As String, sToolName As String)
|
||||||
|
m_ToolAlias = sToolAlias
|
||||||
|
m_ToolName = sToolName
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
@@ -127,16 +127,23 @@ Public Class MoveRawPartPage
|
|||||||
UnloadPartsBtn.Content = "Go to MOVE part"
|
UnloadPartsBtn.Content = "Go to MOVE part"
|
||||||
' altrimenti, aggiorno visualizzazione
|
' altrimenti, aggiorno visualizzazione
|
||||||
ElseIf Not m_SplitPage.m_bOnAuxTab And m_SplitPage.m_bEnableOnAuxTab Then
|
ElseIf Not m_SplitPage.m_bOnAuxTab And m_SplitPage.m_bEnableOnAuxTab Then
|
||||||
EgtDraw()
|
|
||||||
UnloadPartsBtn.Content = "Go to UNLOAD part"
|
UnloadPartsBtn.Content = "Go to UNLOAD part"
|
||||||
End If
|
End If
|
||||||
'---------------------------- AUX TABLE ----------------------------
|
'---------------------------- AUX TABLE ----------------------------
|
||||||
|
EgtDraw()
|
||||||
' Carico i parametri di movimento
|
' Carico i parametri di movimento
|
||||||
m_dStep = GetPrivateProfileDouble(S_RAWMOVE, K_RAWSTEP, 50, m_MainWindow.GetIniFile())
|
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
|
' Ricavo la lunghezza del baffo di taglio
|
||||||
m_dStep = SplitAuto.MaxCuttingMustache(m_dStep)
|
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())
|
m_dRotation = GetPrivateProfileDouble(S_RAWMOVE, K_RAWROTATION, 30, m_MainWindow.GetIniFile())
|
||||||
RotationAngleTxBx.Text = DoubleToString(m_dRotation, 3)
|
RotationAngleTxBx.Text = DoubleToString(m_dRotation, 3)
|
||||||
' Se movimento manuale perpendicolare
|
' Se movimento manuale perpendicolare
|
||||||
@@ -341,7 +348,6 @@ Public Class MoveRawPartPage
|
|||||||
If Not m_bByHand Then EgtSetStatus(GetVacuumId(), GDB_ST.OFF)
|
If Not m_bByHand Then EgtSetStatus(GetVacuumId(), GDB_ST.OFF)
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
|
|
||||||
' verifico che il pezzo precedente possa essere depositato correttamente
|
' verifico che il pezzo precedente possa essere depositato correttamente
|
||||||
If VerifyCollisionWithOtherRawPart(m_CurrRawOnVacuum) Then
|
If VerifyCollisionWithOtherRawPart(m_CurrRawOnVacuum) Then
|
||||||
' mantengo la selezione del pezzo
|
' mantengo la selezione del pezzo
|
||||||
@@ -351,6 +357,15 @@ Public Class MoveRawPartPage
|
|||||||
' esco dal ciclo, prima devo depositare correttamente il pezzo
|
' esco dal ciclo, prima devo depositare correttamente il pezzo
|
||||||
Exit While
|
Exit While
|
||||||
End If
|
End If
|
||||||
|
' Verifico che il pezzo corrente sia prelevabile - versione 2.6c3 -
|
||||||
|
If VerifyCollisionWithOtherRawPart(nId, True) Then
|
||||||
|
' mantengo la selezione del pezzo
|
||||||
|
EgtSetStatus(m_CurrRawOnVacuum, GDB_ST.SEL)
|
||||||
|
m_CurrProjPage.SetErrorMessage("Collisione pezzi")
|
||||||
|
EgtDraw()
|
||||||
|
' esco dal ciclo, prima devo depositare correttamente il pezzo
|
||||||
|
Exit While
|
||||||
|
End If
|
||||||
' salvo l'indice del pezzo correntemente attaccato alle ventose
|
' salvo l'indice del pezzo correntemente attaccato alle ventose
|
||||||
m_CurrRawOnVacuum = nId
|
m_CurrRawOnVacuum = nId
|
||||||
|
|
||||||
@@ -421,7 +436,7 @@ Public Class MoveRawPartPage
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' Veririfica che il grezzo non entri in colliosione con altri pezzi
|
' Veririfica che il grezzo non entri in colliosione con altri pezzi
|
||||||
Private Function VerifyCollisionWithOtherRawPart(nIdOnVacumm As Integer) As Boolean
|
Private Function VerifyCollisionWithOtherRawPart_0(nIdOnVacumm As Integer) As Boolean
|
||||||
' se movimento su tavola di scarico non eseguo il controllo (evito di segnalre errori per pezzi ricavati interni al grezzo...)
|
' se movimento su tavola di scarico non eseguo il controllo (evito di segnalre errori per pezzi ricavati interni al grezzo...)
|
||||||
If m_SplitPage.m_bOnAuxTab Then Return False
|
If m_SplitPage.m_bOnAuxTab Then Return False
|
||||||
If nIdOnVacumm = GDB_ID.NULL Then Return False
|
If nIdOnVacumm = GDB_ID.NULL Then Return False
|
||||||
@@ -455,6 +470,69 @@ Public Class MoveRawPartPage
|
|||||||
Return False
|
Return False
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
' Veririfica che il grezzo non entri in colliosione con altri pezzi - versione 2.6c3 -
|
||||||
|
Private Function VerifyCollisionWithOtherRawPart(nIdOnVacumm As Integer, Optional IsTaking As Boolean = False) As Boolean
|
||||||
|
' se movimento su tavola di scarico non eseguo il controllo (evito di segnalre errori per pezzi ricavati interni al grezzo...)
|
||||||
|
If m_SplitPage.m_bOnAuxTab Then Return False
|
||||||
|
If nIdOnVacumm = GDB_ID.NULL Then Return False
|
||||||
|
' Creo gruppo temporaneo in cui generare le superfici per la veririfica di collisione
|
||||||
|
Dim m_nTempId As Integer = EgtCreateGroup(GDB_ID.ROOT)
|
||||||
|
If m_nTempId = GDB_ID.NULL Then Return False
|
||||||
|
EgtSetName(m_nTempId, "RawTemp")
|
||||||
|
' recupero il contorno del'ID attaccato alle ventose e da questo genero una superificie
|
||||||
|
Dim nIdUpRegionOnVac As Integer = EgtGetFirstNameInGroup(nIdOnVacumm, "RawUpReg")
|
||||||
|
Dim nIdDwnRegionOnVac As Integer = EgtGetFirstNameInGroup(nIdOnVacumm, "RawDwnReg")
|
||||||
|
' recupero gli ID di tutti i grezzi della fase corrente
|
||||||
|
Dim nCurrPhase As Integer = EgtGetCurrPhase()
|
||||||
|
Dim nRawGroupId = EgtGetParent(EgtGetFirstRawPart())
|
||||||
|
Dim nIdRaw As Integer = EgtGetFirstRawPart()
|
||||||
|
' ciclo su tutti i grezzi per veririficare eventuali collisioni
|
||||||
|
While nIdRaw <> GDB_ID.NULL
|
||||||
|
' verifico la fase del grezzo
|
||||||
|
If EgtVerifyRawPartCurrPhase(nIdRaw) And nIdOnVacumm <> nIdRaw Then
|
||||||
|
' recupero il contorno del pezzo e genero la sua sueperificie
|
||||||
|
Dim nIdUpRegion As Integer = EgtGetFirstNameInGroup(nIdRaw, "RawUpReg")
|
||||||
|
Dim nIdDwnRegion As Integer = EgtGetFirstNameInGroup(nIdRaw, "RawDwnReg")
|
||||||
|
' creo la copia delle superifici
|
||||||
|
Dim nCopy_IdDwnRegionOnVac As Integer = EgtCopyGlob(nIdDwnRegionOnVac, m_nTempId)
|
||||||
|
Dim nCopy_nIdUpRegion As Integer = EgtCopyGlob(nIdUpRegion, m_nTempId)
|
||||||
|
' PRELIEVO
|
||||||
|
If EgtSurfFrIntersect(nCopy_IdDwnRegionOnVac, nCopy_nIdUpRegion) Then
|
||||||
|
' se esite una superficie allora esiste un'intersezione
|
||||||
|
If EgtExistsObj(nCopy_IdDwnRegionOnVac) Then
|
||||||
|
EgtErase(m_nTempId)
|
||||||
|
' Esco: Intersezione TROVATA → true
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
If Not IsTaking Then
|
||||||
|
' DEPOSITO : devono essere esguiti due controlli ulteririori
|
||||||
|
Dim nCopy_IdUpRegionOnVac As Integer = EgtCopyGlob(nIdUpRegionOnVac, m_nTempId)
|
||||||
|
Dim nCopy_nIdDwnRegion As Integer = EgtCopyGlob(nIdDwnRegion, m_nTempId)
|
||||||
|
If EgtSurfFrIntersect(nCopy_IdDwnRegionOnVac, nCopy_nIdDwnRegion) Then
|
||||||
|
' se esite una superficie allora esiste un'intersezione
|
||||||
|
If EgtExistsObj(nCopy_IdDwnRegionOnVac) Then
|
||||||
|
EgtErase(m_nTempId)
|
||||||
|
' Esco: Intersezione TROVATA → true
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
If EgtSurfFrIntersect(nCopy_IdUpRegionOnVac, nCopy_nIdUpRegion) Then
|
||||||
|
' se esite una superficie allora esiste un'intersezione
|
||||||
|
If EgtExistsObj(nCopy_IdUpRegionOnVac) Then
|
||||||
|
EgtErase(m_nTempId)
|
||||||
|
' Esco: Intersezione TROVATA → true
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nIdRaw = EgtGetNextRawPart(nIdRaw)
|
||||||
|
End While
|
||||||
|
EgtErase(m_nTempId)
|
||||||
|
Return False
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Function VerifyIsNewScrap(nMyId As Integer) As Boolean
|
Private Function VerifyIsNewScrap(nMyId As Integer) As Boolean
|
||||||
Dim nVal As Integer = 0
|
Dim nVal As Integer = 0
|
||||||
If EgtGetInfo(nMyId, K_ISNEWSCRAPS, nVal) Then
|
If EgtGetInfo(nMyId, K_ISNEWSCRAPS, nVal) Then
|
||||||
@@ -789,6 +867,12 @@ Public Class MoveRawPartPage
|
|||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub RemovePart_KeyCancel(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles m_CurrProjPage.OnKeyCancelDownScene
|
||||||
|
If e.KeyCode = System.Windows.Forms.Keys.Delete Then
|
||||||
|
RemovePartBtn_Click(Nothing, Nothing)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub RemovePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemovePartBtn.Click
|
Private Sub RemovePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemovePartBtn.Click
|
||||||
Dim nRawId As Integer = EgtGetFirstSelectedObj()
|
Dim nRawId As Integer = EgtGetFirstSelectedObj()
|
||||||
While nRawId <> GDB_ID.NULL
|
While nRawId <> GDB_ID.NULL
|
||||||
@@ -856,6 +940,7 @@ Public Class MoveRawPartPage
|
|||||||
' Mantengo la fase che è stata creata e passo a gestire solo la visualizzazione dei bottoni
|
' Mantengo la fase che è stata creata e passo a gestire solo la visualizzazione dei bottoni
|
||||||
RefreshVisibility()
|
RefreshVisibility()
|
||||||
EgtZoom(ZM.ALL, True)
|
EgtZoom(ZM.ALL, True)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub StepMoveTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StepMoveTxBx.EgtClosed
|
Private Sub StepMoveTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StepMoveTxBx.EgtClosed
|
||||||
@@ -1291,7 +1376,7 @@ Public Class MoveRawPartPage
|
|||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' ------- VISUALIZZAZIONE -------
|
' ------- VISUALIZZAZIONE (navigazione tra le fasi) -------
|
||||||
If m_SplitPage.m_bShow Then
|
If m_SplitPage.m_bShow Then
|
||||||
' verifico se la fase successiva è uno scarico frontale
|
' verifico se la fase successiva è uno scarico frontale
|
||||||
If NextOperationIsUnloading(m_nCurrDisposition) Then
|
If NextOperationIsUnloading(m_nCurrDisposition) Then
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="3*"/>
|
<ColumnDefinition Width="3*"/>
|
||||||
<ColumnDefinition Width="12*"/>
|
<ColumnDefinition Width="12*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
<RowDefinition Height="8*"/>
|
<RowDefinition Height="8*"/>
|
||||||
@@ -149,29 +149,31 @@
|
|||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
</UniformGrid>
|
</UniformGrid>
|
||||||
|
|
||||||
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
|
<UniformGrid Name ="UG2" Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="3" >
|
||||||
<Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource Seleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource Seleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Name="DeselectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="DeselectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource Deseleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource Deseleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</UniformGrid>
|
<ToggleButton Name="ParkIndBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||||
|
<Image Name="ParkIndImg" Source="{DynamicResource ParkingImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
|
</ToggleButton>
|
||||||
|
</UniformGrid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!--LowerButtonGrid-->
|
<!--LowerButtonGrid-->
|
||||||
<Grid Grid.Column="2" Grid.Row="2">
|
<Grid Grid.Column="2" Grid.Row="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="5*"/>
|
<ColumnDefinition Width="5*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="4*"/>
|
<ColumnDefinition Width="4*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
</Grid>
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ Public Class NestPageUC
|
|||||||
' Riferimento alla MainWindow
|
' Riferimento alla MainWindow
|
||||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
||||||
|
' Fisetra per la gestione dei parcheggi
|
||||||
|
Private m_SelParkInd As SelParkIndWD
|
||||||
|
|
||||||
' Flag di pagina attiva
|
' Flag di pagina attiva
|
||||||
Private m_bActive As Boolean = False
|
Private m_bActive As Boolean = False
|
||||||
' Flag per modalità nesting standard o registrazione posizione lastra
|
' Flag per modalità nesting standard o registrazione posizione lastra
|
||||||
@@ -30,6 +33,7 @@ Public Class NestPageUC
|
|||||||
' Id della curva e del taglio selezionati per eseguire il test
|
' Id della curva e del taglio selezionati per eseguire il test
|
||||||
Friend m_CurrSelectedCurv As Integer = GDB_ID.NULL
|
Friend m_CurrSelectedCurv As Integer = GDB_ID.NULL
|
||||||
Friend m_CurrSelectedSawCurv As Integer = GDB_ID.NULL
|
Friend m_CurrSelectedSawCurv As Integer = GDB_ID.NULL
|
||||||
|
Friend m_CurrToolFromSelectedSawCurv As String = String.Empty
|
||||||
|
|
||||||
' Id del rettangolo, del taglio e della curva da modificare tramite Drag
|
' Id del rettangolo, del taglio e della curva da modificare tramite Drag
|
||||||
Private m_nIdSelectedOutLoopRettangle As Integer = GDB_ID.NULL
|
Private m_nIdSelectedOutLoopRettangle As Integer = GDB_ID.NULL
|
||||||
@@ -143,11 +147,30 @@ Public Class NestPageUC
|
|||||||
StartCurveWJBtn.Visibility = Visibility.Collapsed
|
StartCurveWJBtn.Visibility = Visibility.Collapsed
|
||||||
End If
|
End If
|
||||||
UG0.Columns = nColumnIn_UG0
|
UG0.Columns = nColumnIn_UG0
|
||||||
|
|
||||||
|
' Gestione dei comandi di parcheggio e selezione (UniformGrid2)
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) = 0 Then
|
||||||
|
EgtOutLog("Button 'EnableDXFPark' is not enable, check in file *.ini program.")
|
||||||
|
ParkIndBtn.Visibility = Visibility.Collapsed
|
||||||
|
UG2.Columns = 2
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Dim ImageConverter As New ImageSourceConverter
|
||||||
|
|
||||||
Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs)
|
Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||||
m_bActive = True
|
m_bActive = True
|
||||||
LoadParams()
|
LoadParams()
|
||||||
|
Dim nCpuntParkInd As Integer = UpdateImageParkInd()
|
||||||
|
If nCpuntParkInd > 2 Then
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) = 0 Then
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("There are " & (nCpuntParkInd - 1).ToString & " park in project.")
|
||||||
|
EgtOutLog("WARNONG: Enable button 'EnableDXFPark' in file *.ini program.")
|
||||||
|
End If
|
||||||
|
ParkIndBtn.IsChecked = True
|
||||||
|
End If
|
||||||
|
ParkIndBtn_Click()
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -219,14 +242,21 @@ Public Class NestPageUC
|
|||||||
m_nCountSpot = 0
|
m_nCountSpot = 0
|
||||||
m_nCountSpotCUT = 0
|
m_nCountSpotCUT = 0
|
||||||
End If
|
End If
|
||||||
|
'EgtOutLog("Numero di SPOT caricati da OFFICE: " & m_nCountSpot.ToString)
|
||||||
' Se nel progetto non sono inseriti punti SpotReg disabilito i comandi
|
' Se nel progetto non sono inseriti punti SpotReg disabilito i comandi
|
||||||
If m_nCountSpot < 1 Then
|
If m_nCountSpot < 1 Then
|
||||||
UG0_Reg.IsEnabled = False
|
UG0_Reg.IsEnabled = False
|
||||||
UG1_Reg.IsEnabled = False
|
UG1_Reg.IsEnabled = False
|
||||||
|
'EgtOutLog(" Abilito comandi gestione SPOT")
|
||||||
|
Else
|
||||||
|
UG0_Reg.IsEnabled = True
|
||||||
|
UG1_Reg.IsEnabled = True
|
||||||
|
'EgtOutLog(" Disabilito comandi gestione SPOT")
|
||||||
End If
|
End If
|
||||||
' Se nel progetto non sono inseriti punti SpotRegCUT provvedo ad aggiungerli
|
' Se nel progetto non sono inseriti punti SpotRegCUT provvedo ad aggiungerli
|
||||||
If m_nCountSpotCUT < 1 Then
|
If m_nCountSpotCUT < 1 Then
|
||||||
InsertSpotRegistration()
|
InsertSpotRegistration()
|
||||||
|
'EgtOutLog(" Creo SPOT_CUT")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Se necessario riabilito impostazione modificato
|
' Se necessario riabilito impostazione modificato
|
||||||
@@ -255,7 +285,9 @@ Public Class NestPageUC
|
|||||||
End If
|
End If
|
||||||
' Se esiste un elemento selezionato
|
' Se esiste un elemento selezionato
|
||||||
EgtResetMark(m_CurrSelectedSawCurv)
|
EgtResetMark(m_CurrSelectedSawCurv)
|
||||||
' provo a riconoscere il valore medio del segmento
|
m_CurrToolFromSelectedSawCurv = String.Empty
|
||||||
|
' ripulisco da eventuali messaggi
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
' Verifico se selezionato indicativo di pezzo
|
' Verifico se selezionato indicativo di pezzo
|
||||||
EgtSetObjFilterForSelWin(False, True, False, False, False)
|
EgtSetObjFilterForSelWin(False, True, False, False, False)
|
||||||
Dim nSelMy As Integer
|
Dim nSelMy As Integer
|
||||||
@@ -280,20 +312,52 @@ Public Class NestPageUC
|
|||||||
' recupero il gruppo della lavorazione associata
|
' recupero il gruppo della lavorazione associata
|
||||||
Dim nIdParentPart As Integer = EgtGetParent(nIdParent)
|
Dim nIdParentPart As Integer = EgtGetParent(nIdParent)
|
||||||
Dim nIdPV As Integer = EgtGetFirstNameInGroup(nIdParentPart, NAME_PREVIEW)
|
Dim nIdPV As Integer = EgtGetFirstNameInGroup(nIdParentPart, NAME_PREVIEW)
|
||||||
Dim nIdSaw As Integer = EgtGetFirstNameInGroup(nIdPV, "Saw" & nIdMy.ToString)
|
|
||||||
If Not EgtGetGroupObjs(nIdSaw) Then
|
Dim nIdMachining As Integer = EgtGetFirstInGroup(nIdPV)
|
||||||
m_CurrSelectedSawCurv = nIdSaw
|
While nIdMachining <> GDB_ID.NULL
|
||||||
m_CurrSelectedCurv = nIdMy
|
Dim sNameMachining As String = String.Empty
|
||||||
EgtSetMark(nIdSaw)
|
EgtGetName(nIdMachining, sNameMachining)
|
||||||
EgtSelectObj(nIdMy)
|
If sNameMachining.Contains(nIdMy.ToString) Then
|
||||||
EgtDraw()
|
Exit While
|
||||||
Exit While
|
End If
|
||||||
End If
|
nIdMachining = EgtGetNext(nIdMachining)
|
||||||
|
End While
|
||||||
|
|
||||||
|
' recupero la lavorazione associata nel gruppo Opers
|
||||||
|
Dim sIdRefMachining As Integer = -1
|
||||||
|
EgtGetInfo(nIdMachining, "MId", sIdRefMachining)
|
||||||
|
EgtSetCurrMachining(sIdRefMachining)
|
||||||
|
' recupero il nome dell'utensile associato alla lavorazione
|
||||||
|
Dim sToolCurrMachining As String = String.Empty
|
||||||
|
EgtGetMachiningParam(MCH_MP.TOOL, sToolCurrMachining)
|
||||||
|
' seleziono le entità nel disegno
|
||||||
|
m_CurrToolFromSelectedSawCurv = sToolCurrMachining
|
||||||
|
m_CurrSelectedSawCurv = nIdMachining
|
||||||
|
m_CurrSelectedCurv = nIdMy
|
||||||
|
EgtSetMark(nIdMachining)
|
||||||
|
EgtSelectObj(nIdMy)
|
||||||
|
EgtDraw()
|
||||||
|
|
||||||
|
'Dim nIdSaw As Integer = EgtGetFirstNameInGroup(nIdPV, "Saw" & nIdMy.ToString)
|
||||||
|
'If Not EgtGetGroupObjs(nIdSaw) Then
|
||||||
|
' m_CurrSelectedSawCurv = nIdSaw
|
||||||
|
' m_CurrSelectedCurv = nIdMy
|
||||||
|
' EgtSetMark(nIdSaw)
|
||||||
|
' EgtSelectObj(nIdMy)
|
||||||
|
' EgtDraw()
|
||||||
|
' Exit While
|
||||||
|
'End If
|
||||||
|
|
||||||
|
Exit While
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
nIdMy = EgtGetNextObjInSelWin()
|
nIdMy = EgtGetNextObjInSelWin()
|
||||||
End While
|
End While
|
||||||
|
If nIdMy = GDB_ID.NULL Then
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage("Select OUTLOOP")
|
||||||
|
End If
|
||||||
Return
|
Return
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1031,8 +1095,7 @@ Public Class NestPageUC
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
' Si può selezionare solo con il tasto sinistro e se stato NULL
|
' Si può selezionare solo con il tasto sinistro e se stato NULL
|
||||||
If e.Button <> Windows.Forms.MouseButtons.Left Or
|
If e.Button <> Windows.Forms.MouseButtons.Left Or Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
||||||
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1044,7 +1107,6 @@ Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
|||||||
m_bIsCounterLy = False
|
m_bIsCounterLy = False
|
||||||
' se in modalità DragRettangle (deformazione delle componenti rettangolari)
|
' se in modalità DragRettangle (deformazione delle componenti rettangolari)
|
||||||
If m_bIsCheckedDragRettangle Then
|
If m_bIsCheckedDragRettangle Then
|
||||||
OnMyMouseDownSceneSelSideRettangle(sender, e)
|
|
||||||
' Dati per drag (abilito il Drag)
|
' Dati per drag (abilito il Drag)
|
||||||
m_locPrev = e.Location
|
m_locPrev = e.Location
|
||||||
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRettangle <> GDB_ID.NULL
|
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRettangle <> GDB_ID.NULL
|
||||||
@@ -1528,6 +1590,10 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
' Eseguo verifica
|
' Eseguo verifica
|
||||||
If VerifyTrfData(nMoveId) And EgtVerifyPart(nMoveId, m_bReducedCut) Then
|
If VerifyTrfData(nMoveId) And EgtVerifyPart(nMoveId, m_bReducedCut) Then
|
||||||
m_CurrProjPage.ResetOrderMachiningFlag()
|
m_CurrProjPage.ResetOrderMachiningFlag()
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
' Non superata riporto alla posizione iniziale
|
' Non superata riporto alla posizione iniziale
|
||||||
Else
|
Else
|
||||||
If m_bFromParking Then
|
If m_bFromParking Then
|
||||||
@@ -1559,7 +1625,7 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
CountPartInFamily(sRefGroup)
|
CountPartInFamily(sRefGroup)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
'---------------------- COUNTER PART ----------------------
|
'---------------------- COUNTER PART ----------------------
|
||||||
End If
|
End If
|
||||||
m_bFromParking = False
|
m_bFromParking = False
|
||||||
End If
|
End If
|
||||||
@@ -2229,7 +2295,10 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Else
|
Else
|
||||||
StandardInsert()
|
StandardInsert()
|
||||||
End If
|
End If
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub StandardInsert()
|
Private Sub StandardInsert()
|
||||||
@@ -2671,6 +2740,7 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
#End Region ' Manager Counter Part
|
#End Region ' Manager Counter Part
|
||||||
|
|
||||||
Private Sub DragRettangle_Click() Handles DragRettanleBtn.Click
|
Private Sub DragRettangle_Click() Handles DragRettanleBtn.Click
|
||||||
If DragRettanleBtn.IsChecked Then
|
If DragRettanleBtn.IsChecked Then
|
||||||
m_bIsCheckedDragRettangle = True
|
m_bIsCheckedDragRettangle = True
|
||||||
@@ -2736,6 +2806,12 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Dim nNextId = EgtGetNextSelectedObj()
|
Dim nNextId = EgtGetNextSelectedObj()
|
||||||
' Metto in parcheggio, se in grezzo
|
' Metto in parcheggio, se in grezzo
|
||||||
StoreOnePart(nId)
|
StoreOnePart(nId)
|
||||||
|
' Aggiorno lo stato di visualizzazione
|
||||||
|
Dim nInfoStatus As Integer = 1
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtGetInfo(nId, INFO_PARKSTATUS, nInfoStatus)
|
||||||
|
' Imposto lo stato
|
||||||
|
EgtSetStatus(nId, nInfoStatus)
|
||||||
' Eventuale notifiche al VeinMatching
|
' Eventuale notifiche al VeinMatching
|
||||||
VeinMatching.OnRemovePartFromRaw(nId)
|
VeinMatching.OnRemovePartFromRaw(nId)
|
||||||
' Passo al successivo selezionato
|
' Passo al successivo selezionato
|
||||||
@@ -2745,6 +2821,8 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
m_nPartPos = PART_POS.NONE_TABLE
|
m_nPartPos = PART_POS.NONE_TABLE
|
||||||
' Aggiorno vista
|
' Aggiorno vista
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
ReloadListParkInd()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' ripulisco la lista dei pezzi in parcheggio
|
' ripulisco la lista dei pezzi in parcheggio
|
||||||
@@ -2776,6 +2854,31 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Return False
|
Return False
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
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())
|
||||||
|
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, 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 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
|
||||||
|
EgtCenterPoint(nId, GDB_ID.ROOT, ptCenter)
|
||||||
|
EgtSetInfo(nId, "PosInPark", ptCenter)
|
||||||
|
EgtSetStatus(nId, GDB_ST.ON_)
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
Friend Function PackPartInStore(nId As Integer) As Boolean
|
Friend Function PackPartInStore(nId As Integer) As Boolean
|
||||||
' Recupero box tavola
|
' Recupero box tavola
|
||||||
Dim b3Tab As New BBox3d
|
Dim b3Tab As New BBox3d
|
||||||
@@ -2791,6 +2894,17 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, 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())
|
||||||
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (dStoreLarg - b3Tab.DimX())
|
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (dStoreLarg - b3Tab.DimX())
|
||||||
|
|
||||||
|
' Verifico che il pezzo ha una posizione salvata
|
||||||
|
Dim ptCenter As Point3d
|
||||||
|
If EgtGetInfo(nId, "PosInPark", ptCenter) Then
|
||||||
|
Dim ptCurrPos As Point3d
|
||||||
|
EgtCenterPoint(nId, GDB_ID.ROOT, ptCurrPos)
|
||||||
|
Dim vt As New Vector3d(ptCenter - ptCurrPos)
|
||||||
|
EgtMove(nId, vt, GDB_RT.GLOB)
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
|
||||||
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + dStoreLarg, b3Tab.Min().y - dStoreDist, dStoreOffs, False)
|
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + dStoreLarg, b3Tab.Min().y - dStoreDist, dStoreOffs, False)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -2879,8 +2993,43 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
m_CurrProjPage.ShowAreas()
|
m_CurrProjPage.ShowAreas()
|
||||||
' Aggiorno vista
|
' Aggiorno vista
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
|
UpdateImageParkInd()
|
||||||
End Sub
|
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
|
||||||
|
' Carcico la lista dei parcheggi
|
||||||
|
Dim ListparkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListparkInd)
|
||||||
|
Dim nCount As Integer = ListparkInd.Count
|
||||||
|
' Se il comando è abilitato allora provvedo ad aggiornare l'immagine
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||||
|
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\Parking.png"
|
||||||
|
If nCount > 1 Then
|
||||||
|
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Busy.png"
|
||||||
|
Else
|
||||||
|
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Empty.png"
|
||||||
|
End If
|
||||||
|
ParkIndImg.Source = ImageConverter.ConvertFromString(s)
|
||||||
|
Else
|
||||||
|
' Se il comando non è abilitato allora provvedo a selezionare il primo parcheggio
|
||||||
|
Dim CurrparkInd As ParkInd = SelParkIndWD.GetCurrentParkIndSelected()
|
||||||
|
If Not IsNothing(CurrparkInd) Then
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(CurrparkInd, True)
|
||||||
|
Else
|
||||||
|
If nCount > 1 Then
|
||||||
|
ListparkInd(1).Status = GDB_ST.ON_
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(ListparkInd(1), True)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Return nCount
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Sub DeleteBridgeAssociated(nMyId As Integer)
|
Private Sub DeleteBridgeAssociated(nMyId As Integer)
|
||||||
' verifico se esistono dei ponticelli associati al pezzo indicato
|
' verifico se esistono dei ponticelli associati al pezzo indicato
|
||||||
' recuoero il gruppo di lavorazione corrente
|
' recuoero il gruppo di lavorazione corrente
|
||||||
@@ -2924,6 +3073,13 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
|
|
||||||
Private Sub SelectAllBtn_Click(sender As Object, e As RoutedEventArgs) Handles SelectAllBtn.Click
|
Private Sub SelectAllBtn_Click(sender As Object, e As RoutedEventArgs) Handles SelectAllBtn.Click
|
||||||
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||||
|
' Recupero il ParkInd attualmente attivo
|
||||||
|
Dim CurrParkInd As ParkInd = SelParkIndWD.GetCurrentParkIndSelected()
|
||||||
|
' Il default è ZERO
|
||||||
|
Dim nCurrParkInd As Integer = 0
|
||||||
|
If Not IsNothing(CurrParkInd) Then
|
||||||
|
nCurrParkInd = CurrParkInd.Ind
|
||||||
|
End If
|
||||||
' Numero dei pezzi in tavola
|
' Numero dei pezzi in tavola
|
||||||
Dim nPartTab As Integer = EgtGetPartInRawPartCount(m_nRawId)
|
Dim nPartTab As Integer = EgtGetPartInRawPartCount(m_nRawId)
|
||||||
' Se già selezionati in tavola o non ci sono selezionati e pezzi in tavola
|
' Se già selezionati in tavola o non ci sono selezionati e pezzi in tavola
|
||||||
@@ -2932,8 +3088,21 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
' Seleziono tutti i pezzi in tavola
|
' Seleziono tutti i pezzi in tavola
|
||||||
Dim nPartId As Integer = EgtGetFirstGroupInGroup(m_nRawId)
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(m_nRawId)
|
||||||
While nPartId <> GDB_ID.NULL
|
While nPartId <> GDB_ID.NULL
|
||||||
EgtSelectObj(nPartId)
|
' ------------------ INIZIO ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
VeinMatching.OnSelectPart(nPartId, False)
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' ------------------ FINE ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
|
' Se l'indice di parcheggio è valido (uguale al parcheggio corrente)
|
||||||
|
If nInfoParkInd = nCurrParkInd Then
|
||||||
|
EgtSelectObj(nPartId)
|
||||||
|
VeinMatching.OnSelectPart(nPartId, False)
|
||||||
|
End If
|
||||||
nPartId = EgtGetNextGroup(nPartId)
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
End While
|
End While
|
||||||
' Aggiorno flag
|
' Aggiorno flag
|
||||||
@@ -2943,8 +3112,21 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
' Seleziono tutti i pezzi in parcheggio
|
' Seleziono tutti i pezzi in parcheggio
|
||||||
Dim nPartId As Integer = EgtGetFirstPart()
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
While nPartId <> GDB_ID.NULL
|
While nPartId <> GDB_ID.NULL
|
||||||
EgtSelectObj(nPartId)
|
' ------------------ INIZIO ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
VeinMatching.OnSelectPart(nPartId, False)
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' ------------------ FINE ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
|
' Se l'indice di parcheggio è valido (uguale al parcheggio corrente)
|
||||||
|
If nInfoParkInd = nCurrParkInd Then
|
||||||
|
EgtSelectObj(nPartId)
|
||||||
|
VeinMatching.OnSelectPart(nPartId, False)
|
||||||
|
End If
|
||||||
nPartId = EgtGetNextPart(nPartId)
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
End While
|
End While
|
||||||
' Aggiorno flag
|
' Aggiorno flag
|
||||||
@@ -2967,6 +3149,35 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ParkIndBtn_Click() Handles ParkIndBtn.Click
|
||||||
|
If ParkIndBtn.Visibility = Visibility.Collapsed Then
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
If IsNothing(m_SelParkInd) Then
|
||||||
|
m_SelParkInd = New SelParkIndWD(m_MainWindow)
|
||||||
|
End If
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 1)
|
||||||
|
m_SelParkInd.SetValue(Grid.ColumnProperty, 1)
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Add(m_SelParkInd)
|
||||||
|
Else
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
|
m_SelParkInd = Nothing
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
EgtZoom(ZM.ALL)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub ReloadListParkInd()
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
|
UpdateImageParkInd()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Private Sub PartRotOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles PartRotOnBtn.Click
|
Private Sub PartRotOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles PartRotOnBtn.Click
|
||||||
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||||
' Se non ci sono pezzi selezionati o non sono in parcheggio, esco
|
' Se non ci sono pezzi selezionati o non sono in parcheggio, esco
|
||||||
@@ -3090,6 +3301,13 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub NestPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
Private Sub NestPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
||||||
|
' se esiste l'elenco dei parcheggi lo nascondo
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
' m_SelParkInd.Close()
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
|
m_SelParkInd = Nothing
|
||||||
|
End If
|
||||||
m_bActive = False
|
m_bActive = False
|
||||||
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.VeinMatchingHide()
|
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.VeinMatchingHide()
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
<UserControl x:Class="SelParkIndWD"
|
||||||
|
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}"
|
||||||
|
Background="Transparent">
|
||||||
|
|
||||||
|
<Border Style="{DynamicResource OmagCut_Border}">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="0.1*"/>
|
||||||
|
<ColumnDefinition Width="10*"/>
|
||||||
|
<ColumnDefinition Width="0.1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="0.0*"/>
|
||||||
|
<RowDefinition Height="0.1*"/>
|
||||||
|
<RowDefinition Height="10*"/>
|
||||||
|
<RowDefinition Height="0.1*"/>
|
||||||
|
<RowDefinition Height="0.0*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<TextBlock Name="FilePathTxBl" Grid.Column="1" Grid.Row="1" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
|
||||||
|
Visibility="Collapsed"/>
|
||||||
|
<!--TextAlignment="Center"
|
||||||
|
FontSize="20"
|
||||||
|
VerticalAlignment="Center"-->
|
||||||
|
<ListBox Name="ParkIndListBox" Grid.Column="1" Grid.Row="2"
|
||||||
|
ItemsSource="{Binding ItemList}" ScrollViewer.CanContentScroll="False" ScrollViewer.HorizontalScrollBarVisibility="Hidden">
|
||||||
|
<ListBox.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<StackPanel Orientation="Vertical" >
|
||||||
|
<UniformGrid Columns="2" Visibility="{Binding TitleVisibility}">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Image Source="{Binding ImgTab}" Height="20" Stretch="Uniform"/>
|
||||||
|
<TextBlock Text="{Binding CountInTab}" Height="20" Width="30">
|
||||||
|
<TextBlock.Style>
|
||||||
|
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_ListBoxTextBlock}">
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="False">
|
||||||
|
<Setter Property="FontStyle" Value="Oblique"/>
|
||||||
|
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
||||||
|
</DataTrigger>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="black"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</TextBlock.Style>
|
||||||
|
</TextBlock>
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Image Source="{Binding ImgPark}" Height="20" Stretch="Uniform"/>
|
||||||
|
<TextBlock Text="{Binding CountInPark}" Height="20" Width="30">
|
||||||
|
<TextBlock.Style>
|
||||||
|
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_ListBoxTextBlock}">
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="False">
|
||||||
|
<Setter Property="FontStyle" Value="Oblique"/>
|
||||||
|
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
||||||
|
</DataTrigger>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="black"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</TextBlock.Style>
|
||||||
|
</TextBlock>
|
||||||
|
</StackPanel>
|
||||||
|
</UniformGrid>
|
||||||
|
<Image Source="{Binding Img}" Width="120" Stretch="Uniform" Visibility="{Binding MyVisibilityImg}"/>
|
||||||
|
<Viewbox Name="ViewBoxPark" Visibility="{Binding MyVisibilitySvg}">
|
||||||
|
<ContentPresenter Content="{Binding LocalMyCanvas.CurrCanvas}"/>
|
||||||
|
</Viewbox>
|
||||||
|
</StackPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListBox.ItemTemplate>
|
||||||
|
</ListBox>
|
||||||
|
|
||||||
|
<Grid Grid.Column="1" Grid.Row="4" Visibility="Collapsed">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="0.5*"/>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Border>
|
||||||
|
</UserControl>
|
||||||
@@ -0,0 +1,920 @@
|
|||||||
|
Imports System.ComponentModel
|
||||||
|
Imports System.Globalization
|
||||||
|
Imports System.Windows.Ink
|
||||||
|
Imports System.Xml
|
||||||
|
Imports EgtUILib
|
||||||
|
Imports OmagCUT.NestPageUC
|
||||||
|
|
||||||
|
Public Class SelParkIndWD
|
||||||
|
|
||||||
|
Private Shared m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
|
Private m_nCtx As Integer = -1
|
||||||
|
Public Const nIndAllOff As Integer = 999
|
||||||
|
|
||||||
|
Public Shared sActualProj As String = String.Empty
|
||||||
|
|
||||||
|
Private m_ParkIndList As New List(Of ParkInd)
|
||||||
|
Public Property ParkIndList As List(Of ParkInd)
|
||||||
|
Get
|
||||||
|
Return m_ParkIndList
|
||||||
|
End Get
|
||||||
|
Set(value As List(Of ParkInd))
|
||||||
|
m_ParkIndList = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Owner As Window, Optional nCtx As Integer = -1)
|
||||||
|
'Me.Owner = Owner
|
||||||
|
InitializeComponent()
|
||||||
|
If nCtx > -1 Then m_nCtx = nCtx
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub Me_Laoded() Handles Me.Loaded
|
||||||
|
' Aggiorno la lista
|
||||||
|
UpdateList()
|
||||||
|
' Imposto la selezione del primo parcheggio disponibile
|
||||||
|
UpdateDefaultSelection()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub UpdateList()
|
||||||
|
' Carico lista dei pezzi
|
||||||
|
LoadParkInd(m_ParkIndList, m_nCtx)
|
||||||
|
ParkIndListBox.ItemsSource = m_ParkIndList
|
||||||
|
UpdateDefaultSelection()
|
||||||
|
' Forzo l'aggiornamento della grafica
|
||||||
|
ParkIndListBox.Items.Refresh()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub UpdateDefaultSelection()
|
||||||
|
' Procedo a selezionare il primo (E FORSE ANCHE L'UNICO?) parcheggio attivo
|
||||||
|
Dim bFound As Boolean = False
|
||||||
|
For Each ItemPark As ParkInd In m_ParkIndList
|
||||||
|
If ItemPark.IsStatusON Then
|
||||||
|
ParkIndListBox.SelectedItem = ItemPark
|
||||||
|
bFound = True
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
If Not bFound And m_ParkIndList.Count > 0 Then
|
||||||
|
m_ParkIndList(0).Status = GDB_ST.ON_
|
||||||
|
ParkIndListBox.SelectedItem = m_ParkIndList(0)
|
||||||
|
End If
|
||||||
|
'' Provedo a spegnere tutti gli altri parcheggi
|
||||||
|
'For Each ItemParkInd As ParkInd In m_ParkIndList
|
||||||
|
' If ParkIndListBox.SelectedItem.Ind <> ItemParkInd.Ind Then
|
||||||
|
' ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
' SetStatusPartInParkInd(ItemParkInd)
|
||||||
|
' End If
|
||||||
|
'Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ParkIndListBox_SelectionChanged() Handles ParkIndListBox.MouseLeftButtonUp
|
||||||
|
' Non so se il click sta accendeno o spegnendo quinid faccio una verifica dello stato attuale del parcheggio
|
||||||
|
Dim localParkInd As ParkInd = ParkIndListBox.SelectedItem
|
||||||
|
' Se l'elemento selezionato è attivo allora esco (perchè altrimenti lo spegnerei)
|
||||||
|
If localParkInd.IsStatusON Then Return
|
||||||
|
Dim bFound As Boolean = False
|
||||||
|
If localParkInd.Ind = nIndAllOff Then
|
||||||
|
localParkInd.Status = GDB_ST.ON_
|
||||||
|
bFound = True
|
||||||
|
End If
|
||||||
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
|
' Cerco il primo pezzo del parcheggio indicato
|
||||||
|
While nPartId <> GDB_ID.NULL And Not bFound
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio di default vale "0"
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then sInfoParkInd = "0"
|
||||||
|
If localParkInd.Ind.ToString = sInfoParkInd Then
|
||||||
|
' Determino lo stato da assegnare al parcheggio (prendo il primo pezzo del parcheggio come riferimento)
|
||||||
|
Dim OppositStat As Integer = If(localParkInd.Status = GDB_ST.ON_, GDB_ST.OFF, GDB_ST.ON_)
|
||||||
|
localParkInd.Status = OppositStat
|
||||||
|
bFound = True
|
||||||
|
' termino la ricerca
|
||||||
|
Exit While
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
' Assegno lo stato del parcheggio a tutti i pezzi i parcheggio
|
||||||
|
If bFound Then
|
||||||
|
SetStatusPartInParkInd(localParkInd, True, m_nCtx)
|
||||||
|
Else
|
||||||
|
' Significa che i pezzi sono tutti in macchina: quindi i pezzi sono (SICURAMENTE?) accesi
|
||||||
|
Dim OppositStat As Integer = If(localParkInd.Status = GDB_ST.ON_, GDB_ST.OFF, GDB_ST.ON_)
|
||||||
|
localParkInd.Status = OppositStat
|
||||||
|
SetStatusPartInParkInd(localParkInd, True, m_nCtx)
|
||||||
|
End If
|
||||||
|
' Se accendo un parcheggio procedo a spegnere tutto gli atri
|
||||||
|
If localParkInd.Status = GDB_ST.ON_ Then
|
||||||
|
For Each ItemParkInd As ParkInd In m_ParkIndList
|
||||||
|
If localParkInd.Ind <> ItemParkInd.Ind Then
|
||||||
|
ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
SetStatusPartInParkInd(ItemParkInd, True, m_nCtx)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
EgtZoom(ZM.ALL)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#Region "METODI SHARED per gestione della lista parcheggi"
|
||||||
|
|
||||||
|
' Restituisce il primo indice di parcheggio libero
|
||||||
|
Public Shared Function NewParkInd(Optional nCtx As Integer = -1) As Integer
|
||||||
|
' recupero il contesto corrente
|
||||||
|
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||||
|
' recupero il contesto del progetto
|
||||||
|
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||||
|
If nCtx > -1 Then ProjCtx = nCtx
|
||||||
|
EgtSetCurrentContext(ProjCtx)
|
||||||
|
Dim LastParkInd As Integer = 0
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Leggo l'indice di parcheggio dei pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
If IsNumeric(sInfoParkInd) Then
|
||||||
|
Dim nInfoParkIndn As Integer = CInt(sInfoParkInd)
|
||||||
|
LastParkInd = Math.Max(LastParkInd, nInfoParkIndn)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
' Leggo l'indice di parcheggio dei pezzi in parcheggio
|
||||||
|
nPartId = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio (COPIA della funzione sopra)
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
If IsNumeric(sInfoParkInd) Then
|
||||||
|
Dim nInfoParkIndn As Integer = CInt(sInfoParkInd)
|
||||||
|
LastParkInd = Math.Max(LastParkInd, nInfoParkIndn)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
' Ripristino il contesto corrente
|
||||||
|
EgtSetCurrentContext(CurrCtx)
|
||||||
|
Return LastParkInd + 1
|
||||||
|
End Function
|
||||||
|
|
||||||
|
' Gestisce lo stato dei pezzi associati al parcheggio indicato
|
||||||
|
Public Shared Sub SetStatusPartInParkInd(localParkInd As ParkInd, Optional bDraw As Boolean = True, Optional nCtx As Integer = -1)
|
||||||
|
If IsNothing(localParkInd) Then Return
|
||||||
|
' recupero il contesto corrente
|
||||||
|
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||||
|
' recupero il contesto del progetto
|
||||||
|
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||||
|
If nCtx > -1 Then ProjCtx = nCtx
|
||||||
|
EgtSetCurrentContext(ProjCtx)
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then sInfoParkInd = "0"
|
||||||
|
If localParkInd.Ind.ToString = sInfoParkInd Then
|
||||||
|
' Salvo lo stato del parcheggio (per gestire la navigazione) ANCHE SE I PEZZI SONO ACCESI
|
||||||
|
EgtSetInfo(nPartId, INFO_PARKSTATUS, localParkInd.Status)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
' Pezzi in parcheggio
|
||||||
|
nPartId = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then sInfoParkInd = "0"
|
||||||
|
If localParkInd.Ind.ToString = sInfoParkInd Then
|
||||||
|
' Setto lo stato
|
||||||
|
EgtSetStatus(nPartId, localParkInd.Status)
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtSetInfo(nPartId, INFO_PARKSTATUS, localParkInd.Status)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
If bDraw Then EgtDraw()
|
||||||
|
' Ripristino il contesto corrente
|
||||||
|
EgtSetCurrentContext(CurrCtx)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Restituuisce la lista dei parcheggi del progetto corrente
|
||||||
|
Public Shared Sub LoadParkInd(P_List As List(Of ParkInd), Optional nCtx As Integer = -1)
|
||||||
|
If IsNothing(P_List) Then Return
|
||||||
|
P_List.Clear()
|
||||||
|
P_List.Add(New ParkInd(nIndAllOff, "All off", 0))
|
||||||
|
' recupero il contesto corrente
|
||||||
|
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||||
|
' recupero il contesto del progetto
|
||||||
|
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||||
|
If nCtx > -1 Then ProjCtx = nCtx
|
||||||
|
EgtSetCurrentContext(ProjCtx)
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' Se l'indice di parcheggio restituito è valido (Maggiore di -1)
|
||||||
|
If nInfoParkInd > -1 Then
|
||||||
|
' Verifico se nella lista dei parcheggi è già presente l'indice indicato
|
||||||
|
Dim localParkInd As ParkInd = P_List.Find(Function(x) x.Ind = nInfoParkInd)
|
||||||
|
' Se non trovo nessun parcheggio con questo indice allora lo aggiungo
|
||||||
|
If IsNothing(localParkInd) Then
|
||||||
|
Dim nStatus As Integer
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus) Then nStatus = GDB_ST.ON_
|
||||||
|
' EgtGetStatus(nPartId, nStatus)
|
||||||
|
P_List.Add(New ParkInd(nInfoParkInd, "Park_" & nInfoParkInd.ToString, nStatus))
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
' Pezzi in parcheggio
|
||||||
|
nPartId = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' Se l'indice di parcheggio restituito è valido (Maggiore di -1)
|
||||||
|
If nInfoParkInd > -1 Then
|
||||||
|
' Verifico se nella lista dei parcheggi è già presente l'indice indicato
|
||||||
|
Dim localParkInd As ParkInd = P_List.Find(Function(x) x.Ind = nInfoParkInd)
|
||||||
|
' Se non trovo nessun parcheggio con questo indice allora lo aggiungo
|
||||||
|
If IsNothing(localParkInd) Then
|
||||||
|
Dim nStatus As Integer
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus) Then nStatus = GDB_ST.ON_
|
||||||
|
' EgtGetStatus(nPartId, nStatus)
|
||||||
|
P_List.Add(New ParkInd(nInfoParkInd, "Park_" & nInfoParkInd.ToString, nStatus))
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
EgtSetCurrentContext(CurrCtx)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Aggiorna la lista dei parcheggi, se "bDraw=true" aggiorno la scena
|
||||||
|
Public Shared Sub UpdateViewOnParkInd(Optional bDraw As Boolean = True)
|
||||||
|
' Ricarico la lista dei parcheggi
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
' Aggiorna la vista dei parcheggi
|
||||||
|
For Each Item As ParkInd In ListParkInd
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(Item, bDraw)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Restituisce il primo parcheggio attivo (
|
||||||
|
Public Shared Function GetCurrentParkIndSelected() As ParkInd
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
' Procedo a selezionare il primo (E ANCHE UNICO?..a volte no..) parcheggio attivo -> guarda funzione UpdateList <-
|
||||||
|
For Each ItemPark As ParkInd In ListParkInd
|
||||||
|
If ItemPark.IsStatusON Then
|
||||||
|
Return ItemPark
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Nothing
|
||||||
|
End Function
|
||||||
|
|
||||||
|
' Restitusice il nome del file immagine del parcheggio (manance solo dell'Indice di parcheggio e dell'esetensione png)
|
||||||
|
Public Shared Function GetPathCurrProj() As String
|
||||||
|
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
|
||||||
|
Dim sParkPath As String = m_MainWindow.GetSaveDir() & "\" & Math.Abs(nProj).ToString("D4") & "_ParkInd_"
|
||||||
|
If Not String.IsNullOrEmpty(sActualProj) Then
|
||||||
|
Dim sDir As String = System.IO.Path.GetDirectoryName(sActualProj)
|
||||||
|
Dim sFile As String = System.IO.Path.GetFileNameWithoutExtension(sActualProj)
|
||||||
|
sParkPath = sDir & "\" & sFile & "_ParkInd_"
|
||||||
|
End If
|
||||||
|
Return sParkPath
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Shared Sub CopyImgSvg(sNewFileName As String, Optional nCtx As Integer = -1)
|
||||||
|
If sNewFileName.EndsWith(".nge") Then
|
||||||
|
sNewFileName = sNewFileName.Remove(sNewFileName.Length - 4, 4) & "_ParkInd_"
|
||||||
|
End If
|
||||||
|
Dim Extension As String = ".svg"
|
||||||
|
If Not MainWindow.m_bShowSVGParkInd Then Extension = ".png"
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
' ricarico la lista
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd, nCtx)
|
||||||
|
'SelParkIndWD.sActualProj = Path.GetFileNameWithoutExtension(sPath)
|
||||||
|
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 System.IO.File.Exists(sNewFile) Then
|
||||||
|
System.IO.File.Delete(sNewFile)
|
||||||
|
End If
|
||||||
|
System.IO.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
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#End Region ' Metodi Shared
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class ParkInd
|
||||||
|
Implements INotifyPropertyChanged
|
||||||
|
|
||||||
|
Private m_VisbilityAllOff As Visibility = Visibility.Hidden
|
||||||
|
|
||||||
|
Private m_Ind As Integer
|
||||||
|
Public Property Ind As Integer
|
||||||
|
Get
|
||||||
|
Return m_Ind
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_Ind = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Name As String
|
||||||
|
Public Property Name As String
|
||||||
|
Get
|
||||||
|
Return m_Name
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_Name = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Img As String = String.Empty
|
||||||
|
Public Property Img As String
|
||||||
|
Get
|
||||||
|
Return m_Img
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_Img = value
|
||||||
|
NotifyPropertyChanged("MyVisibilityImg")
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Svg As String = String.Empty
|
||||||
|
Public Property Svg As String
|
||||||
|
Get
|
||||||
|
Return m_Svg
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_Svg = value
|
||||||
|
NotifyPropertyChanged("MyVisibilitySvg")
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_nPartInTable As Integer = 0
|
||||||
|
Public Property nPartInTable As Integer
|
||||||
|
Get
|
||||||
|
Return m_nPartInTable
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_nPartInTable = value
|
||||||
|
NotifyPropertyChanged(NameOf(nPartInTable))
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_nPartInPark As Integer = GDB_ST.ON_
|
||||||
|
Public Property nPartInPark As Integer
|
||||||
|
Get
|
||||||
|
Return m_nPartInPark
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_nPartInPark = value
|
||||||
|
NotifyPropertyChanged(NameOf(nPartInPark))
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property CountInTab As String
|
||||||
|
Get
|
||||||
|
Return m_nPartInTable.ToString
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property ImgTab As String
|
||||||
|
Get
|
||||||
|
Return DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\table.png"
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property CountInPark As String
|
||||||
|
Get
|
||||||
|
Return m_nPartInPark.ToString
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property ImgPark As String
|
||||||
|
Get
|
||||||
|
Return DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park.png"
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Status As Integer
|
||||||
|
|
||||||
|
Public Property Status As Integer
|
||||||
|
Get
|
||||||
|
Return m_Status
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_Status = value
|
||||||
|
NotifyPropertyChanged(NameOf(IsStatusON))
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property IsStatusON As Boolean
|
||||||
|
Get
|
||||||
|
Return (m_Status = GDB_ST.ON_)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property MyVisibilityTmg As Visibility
|
||||||
|
Get
|
||||||
|
Return If(Not System.IO.File.Exists(m_Img), Visibility.Collapsed, Visibility.Visible)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property MyVisibilitySvg As Visibility
|
||||||
|
Get
|
||||||
|
Return If(Not System.IO.File.Exists(m_Svg), Visibility.Collapsed, Visibility.Visible)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property TitleVisibility As Visibility
|
||||||
|
Get
|
||||||
|
Return If(m_Ind = 999, m_VisbilityAllOff, Visibility.Visible)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_LocalMyCanvas As MyCanvas
|
||||||
|
Public ReadOnly Property LocalMyCanvas As MyCanvas
|
||||||
|
Get
|
||||||
|
Return m_LocalMyCanvas
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Ind As Integer, Name As String, Stat As Integer)
|
||||||
|
m_Ind = Ind
|
||||||
|
m_Name = Name
|
||||||
|
m_Status = Stat
|
||||||
|
' Costruisco il percorso immagine
|
||||||
|
If m_Ind = 0 Then
|
||||||
|
' Se Ind=0 allora applico il default: C:\EgtData\OmagCUT\Resources\MachineButtonsImage\NewIcons
|
||||||
|
m_Img = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_On.png"
|
||||||
|
m_Svg = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_On.svg"
|
||||||
|
ElseIf m_Ind = 999 Then
|
||||||
|
' Se Ind=0 allora applico il default: C:\EgtData\OmagCUT\Resources\MachineButtonsImage\NewIcons
|
||||||
|
m_Img = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Off.png"
|
||||||
|
m_Svg = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Off.svg"
|
||||||
|
Else
|
||||||
|
m_Img = SelParkIndWD.GetPathCurrProj() & m_Ind.ToString & ".png"
|
||||||
|
m_Svg = SelParkIndWD.GetPathCurrProj() & m_Ind.ToString & ".svg"
|
||||||
|
End If
|
||||||
|
|
||||||
|
If MainWindow.m_bShowSVGParkInd Then
|
||||||
|
Dim CanvWidth As Integer = 145
|
||||||
|
Dim CanvHeight As Integer = CInt(CanvWidth / 1.4)
|
||||||
|
m_LocalMyCanvas = New MyCanvas(CanvWidth, CanvHeight)
|
||||||
|
If System.IO.File.Exists(m_Svg) Then
|
||||||
|
ReadMyXML(m_Svg, m_LocalMyCanvas)
|
||||||
|
m_Img = ""
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
m_Svg = ""
|
||||||
|
End If
|
||||||
|
|
||||||
|
' Conto il numero di pezzi in Tavola
|
||||||
|
CountPartInTable()
|
||||||
|
' Conto il numero di pezzi in parcheggio
|
||||||
|
CountPartInPark()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Conta in numero di pezzi di questo parcheggio in Tavola
|
||||||
|
Private Sub CountPartInTable()
|
||||||
|
Dim nCount As Integer = 0
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Leggo l'indice di parcheggio dei pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Aggiorno il valore del contatore
|
||||||
|
If IncreaseCounterPart(nPartId, nCount) Then
|
||||||
|
UpdateEntInCanvas(nPartId, 0.2)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
m_nPartInTable = nCount
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Conta il numero di pezzi di questo parcheggio in Parcheggio
|
||||||
|
Private Sub CountPartInPark()
|
||||||
|
Dim nCount As Integer = 0
|
||||||
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Aggiorno il valore del contatore
|
||||||
|
If IncreaseCounterPart(nPartId, nCount) Then
|
||||||
|
UpdateEntInCanvas(nPartId, 1)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
m_nPartInPark = nCount
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub UpdateEntInCanvas(nPartId, dOpacity)
|
||||||
|
If Not IsNothing(m_LocalMyCanvas) Then
|
||||||
|
' modifico il colore del pezzo nel SVG
|
||||||
|
Dim nIdRegion As Integer = EgtGetFirstNameInGroup(nPartId, "Region")
|
||||||
|
If nIdRegion <> GDB_ID.NULL Then
|
||||||
|
Dim nIdEnt As Integer = EgtGetFirstInGroup(nIdRegion)
|
||||||
|
While nIdEnt <> GDB_ID.NULL
|
||||||
|
If EgtGetType(nIdEnt) = GDB_TY.SRF_FRGN Then
|
||||||
|
Exit While
|
||||||
|
End If
|
||||||
|
End While
|
||||||
|
If nIdEnt <> GDB_ID.NULL Then
|
||||||
|
Dim sName As String = ""
|
||||||
|
EgtGetName(nIdEnt, sName)
|
||||||
|
Dim Idpath As MyPath = m_LocalMyCanvas.ListPath.Find(Function(x) x.id = sName)
|
||||||
|
If Not IsNothing(Idpath) Then
|
||||||
|
Idpath.fill_opacity = dOpacity
|
||||||
|
m_LocalMyCanvas.UpdateMyPath(Idpath)
|
||||||
|
Idpath.LoadPath()
|
||||||
|
NotifyPropertyChanged(NameOf(LocalMyCanvas))
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Verifica se il pezzo passato (da parcheggio o tavola) appartiene al ParkInd corrente e quindi aggiorna il valore di nCount+=1
|
||||||
|
Private Function IncreaseCounterPart(nPartId As Integer, ByRef nCount As Integer) As Boolean
|
||||||
|
Dim bOk As Boolean = False
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' Se l'indice di parcheggio restituito è valido (Maggiore di -1)
|
||||||
|
If nInfoParkInd > -1 Then
|
||||||
|
' e uguale a quallo del parcheggio correntemente selezionato
|
||||||
|
If nInfoParkInd = m_Ind Then
|
||||||
|
nCount = nCount + 1
|
||||||
|
bOk = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return bOk
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
||||||
|
|
||||||
|
Public Sub NotifyPropertyChanged(propName As String)
|
||||||
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
#Region "ELEMENTI PER LA GESTIONE SVG"
|
||||||
|
|
||||||
|
Public Class MyCanvas
|
||||||
|
|
||||||
|
Private m_CurrCanvas As New Canvas
|
||||||
|
Public Property CurrCanvas As Canvas
|
||||||
|
Get
|
||||||
|
Return m_CurrCanvas
|
||||||
|
End Get
|
||||||
|
Set(value As Canvas)
|
||||||
|
m_CurrCanvas = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_ListPath As New List(Of MyPath)
|
||||||
|
Public Property ListPath As List(Of MyPath)
|
||||||
|
Get
|
||||||
|
Return m_ListPath
|
||||||
|
End Get
|
||||||
|
Set(value As List(Of MyPath))
|
||||||
|
m_ListPath = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_ViewBoxDim As String
|
||||||
|
Public Property ViewBoxDim As String
|
||||||
|
Get
|
||||||
|
Return m_ViewBoxDim
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_ViewBoxDim = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Width As Integer, Height As Integer)
|
||||||
|
m_CurrCanvas.Width = Width
|
||||||
|
m_CurrCanvas.Height = Height
|
||||||
|
m_CurrCanvas.ClipToBounds = True
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub LoadCanvas()
|
||||||
|
For Each ItemPath As MyPath In m_ListPath
|
||||||
|
m_CurrCanvas.Children.Add(ItemPath.CurrPath)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub UpdateMyPath(CurrPath As MyPath)
|
||||||
|
m_CurrCanvas.Children.Remove(CurrPath.CurrPath)
|
||||||
|
m_CurrCanvas.Children.Add(CurrPath.CurrPath)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class MyPath
|
||||||
|
|
||||||
|
Private m_CurrPath As New System.Windows.Shapes.Path
|
||||||
|
Public Property CurrPath As System.Windows.Shapes.Path
|
||||||
|
Get
|
||||||
|
Return m_CurrPath
|
||||||
|
End Get
|
||||||
|
Set(value As System.Windows.Shapes.Path)
|
||||||
|
m_CurrPath = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_CanvX As Double
|
||||||
|
Public ReadOnly Property CanvX As Double
|
||||||
|
Get
|
||||||
|
Return m_CanvX
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_CanvY As Double
|
||||||
|
Public ReadOnly Property CanvY As Double
|
||||||
|
Get
|
||||||
|
Return m_CanvY
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_DimX As Double
|
||||||
|
Public ReadOnly Property DimX As Double
|
||||||
|
Get
|
||||||
|
Return m_DimX
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_DimY As Double
|
||||||
|
Public ReadOnly Property DimY As Double
|
||||||
|
Get
|
||||||
|
Return m_DimY
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_id As String
|
||||||
|
Public ReadOnly Property id As String
|
||||||
|
Get
|
||||||
|
Return m_id
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_d As String
|
||||||
|
Public ReadOnly Property d As String
|
||||||
|
Get
|
||||||
|
Return m_d
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_fill As String
|
||||||
|
Public Property fill As String
|
||||||
|
Get
|
||||||
|
Return m_fill
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_fill = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_fill_opacity As Double
|
||||||
|
Public Property fill_opacity As Double
|
||||||
|
Get
|
||||||
|
Return m_fill_opacity
|
||||||
|
End Get
|
||||||
|
Set(value As Double)
|
||||||
|
m_fill_opacity = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_stroke As String
|
||||||
|
Public Property stroke As String
|
||||||
|
Get
|
||||||
|
Return m_stroke
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_stroke = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_stroke_opacity As Double
|
||||||
|
Public Property stroke_opacity As Double
|
||||||
|
Get
|
||||||
|
Return m_stroke_opacity
|
||||||
|
End Get
|
||||||
|
Set(value As Double)
|
||||||
|
m_stroke_opacity = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_stroke_width As Double
|
||||||
|
Public Property stroke_width As Double
|
||||||
|
Get
|
||||||
|
Return m_stroke_width
|
||||||
|
End Get
|
||||||
|
Set(value As Double)
|
||||||
|
m_stroke_width = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Id As String, D As String, CanvX As Double, CanvY As Double, DimX As Double, DimY As Double, Fill As String, FillOpacity As Double, Stroke As String, StrokeOpacity As Double)
|
||||||
|
m_id = Id
|
||||||
|
m_d = D
|
||||||
|
m_CanvX = CanvX
|
||||||
|
m_CanvY = CanvY
|
||||||
|
m_DimX = DimX
|
||||||
|
m_DimY = DimY
|
||||||
|
m_fill = Fill
|
||||||
|
m_fill_opacity = FillOpacity
|
||||||
|
m_stroke = Stroke
|
||||||
|
m_stroke_opacity = StrokeOpacity
|
||||||
|
LoadPath()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub LoadPath()
|
||||||
|
' Carico la geometria
|
||||||
|
m_CurrPath.Data = Geometry.Parse(d)
|
||||||
|
' Carico il colore di sfondo
|
||||||
|
SetBrushFromRGBString(m_fill, m_CurrPath.Fill)
|
||||||
|
' Applico l'opacità della superificie
|
||||||
|
m_CurrPath.Opacity = m_fill_opacity
|
||||||
|
' Calcolo e applico la traslazione e la scalatura
|
||||||
|
Dim myTransformGroup As New TransformGroup()
|
||||||
|
Dim ScaleX As Double = m_CanvX / DimX
|
||||||
|
Dim ScaleY As Double = m_CanvY / DimY
|
||||||
|
Dim OffX As Double = (m_CanvX - Math.Min(ScaleX, ScaleY) * DimX) / 2
|
||||||
|
Dim OffY As Double = (m_CanvY - Math.Min(ScaleX, ScaleY) * DimY) / 2
|
||||||
|
myTransformGroup.Children.Add(New ScaleTransform(Math.Min(ScaleX, ScaleY), Math.Min(ScaleX, ScaleY)))
|
||||||
|
myTransformGroup.Children.Add(New TranslateTransform(OffX, OffY))
|
||||||
|
m_CurrPath.RenderTransform = myTransformGroup
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub SetBrushFromRGBString(sFill As String, ByRef brFill As Brush)
|
||||||
|
If String.IsNullOrEmpty(sFill) Then
|
||||||
|
brFill = Brushes.DarkRed
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Dim s1 As String = sFill
|
||||||
|
If s1.Contains("rgb") Then
|
||||||
|
s1 = s1.Replace("rgb(", "")
|
||||||
|
s1 = s1.Replace(")", "")
|
||||||
|
Dim s2 As String = ""
|
||||||
|
For Each s As String In s1.Split(",")
|
||||||
|
s2 &= CInt(s).ToString("x2")
|
||||||
|
Next
|
||||||
|
brFill = New BrushConverter().ConvertFrom("#" & s2)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Module XMLReader
|
||||||
|
|
||||||
|
Public Sub ReadMyXML(FilePath As String, Canv As MyCanvas)
|
||||||
|
'Create the XML Reader
|
||||||
|
Dim m_xmlr As XmlTextReader = New XmlTextReader(FilePath)
|
||||||
|
'Disable whitespace so that you don't have to read over whitespaces
|
||||||
|
m_xmlr.WhitespaceHandling = WhitespaceHandling.None
|
||||||
|
' Leggo la prima riga: '?xml' tag
|
||||||
|
m_xmlr.Read()
|
||||||
|
' Passo a leggere la successiva: 'svg' tag
|
||||||
|
m_xmlr.Read()
|
||||||
|
' Leggo gli attributi di questo tag (dimensioni)
|
||||||
|
Dim ViewBoxDim = m_xmlr.GetAttribute("viewBox")
|
||||||
|
Canv.ViewBoxDim = ViewBoxDim
|
||||||
|
' Elaboro i dati per avere la scalatura del disegno
|
||||||
|
Dim DimViewBox As String() = ViewBoxDim.ToString.Split(" ")
|
||||||
|
Dim DimX As Integer = Math.Abs(CInt(DimViewBox(2))) + Math.Abs(CInt(DimViewBox(0)))
|
||||||
|
Dim DimY As Integer = Math.Abs(CInt(DimViewBox(3))) + Math.Abs(CInt(DimViewBox(1)))
|
||||||
|
|
||||||
|
' Leggo in loop i tag: 'path'
|
||||||
|
While Not m_xmlr.EOF
|
||||||
|
m_xmlr.Read()
|
||||||
|
If Not m_xmlr.IsStartElement() Then
|
||||||
|
Continue While
|
||||||
|
End If
|
||||||
|
' recupero il valore dell'attributo 'id'
|
||||||
|
Dim idAttribute = m_xmlr.GetAttribute("id")
|
||||||
|
' recupero il valore dell'attributo 'd'
|
||||||
|
Dim dAttribute = m_xmlr.GetAttribute("d")
|
||||||
|
' recupero il valore dell'attributo 'fill'
|
||||||
|
Dim fillAttribute = m_xmlr.GetAttribute("fill")
|
||||||
|
' recupero il valore dell'attributo 'fill-opacity'
|
||||||
|
Dim fillOpacityAttribute = m_xmlr.GetAttribute("fill-opacity")
|
||||||
|
' recupero il valore dell'attributo 'stroke'
|
||||||
|
Dim strokeAttribute = m_xmlr.GetAttribute("stroke")
|
||||||
|
' recupero il valore dell'attributo 'stroke-opacity'
|
||||||
|
Dim strokeOpacityAttribute = m_xmlr.GetAttribute("stroke-opacity")
|
||||||
|
' recupero il valore dell'attributo 'stroke - Width'
|
||||||
|
Dim strokeWidthAttribute = m_xmlr.GetAttribute("stroke-width")
|
||||||
|
' carico l'elemento in lista solo se esiste un'immagine
|
||||||
|
If Not String.IsNullOrEmpty(idAttribute) And Not String.IsNullOrEmpty(dAttribute) Then
|
||||||
|
Dim fillOpacity As Double = 1 ' CDbl(fillOpacityAttribute)
|
||||||
|
StringToDouble(fillOpacityAttribute, fillOpacity)
|
||||||
|
Dim strokeOpacity As Double = 1 ' CDbl(strokeOpacityAttribute)
|
||||||
|
StringToDouble(strokeOpacityAttribute, strokeOpacity)
|
||||||
|
Canv.ListPath.Add(New MyPath(idAttribute, dAttribute, Canv.CurrCanvas.Width, Canv.CurrCanvas.Height, DimX, DimY, fillAttribute, fillOpacity, strokeAttribute, strokeOpacity))
|
||||||
|
End If
|
||||||
|
|
||||||
|
End While
|
||||||
|
' Libero il file dalla lettura
|
||||||
|
m_xmlr.Close()
|
||||||
|
' popolo la canvas con le Ptah che ho caricato
|
||||||
|
Canv.LoadCanvas()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub WriteMyXML(FilePath As String, Canv As MyCanvas)
|
||||||
|
|
||||||
|
Dim _namespaceDefault As String = "http://www.w3.org/2000/svg"
|
||||||
|
|
||||||
|
Dim doc As New Xml.XmlDocument
|
||||||
|
|
||||||
|
Dim elm As System.Xml.XmlNode
|
||||||
|
Dim elmSub As System.Xml.XmlNode
|
||||||
|
Dim elmMain As Xml.XmlNode
|
||||||
|
|
||||||
|
doc = New Xml.XmlDocument
|
||||||
|
|
||||||
|
elmMain = doc.CreateElement("svg")
|
||||||
|
elmSub = elmMain.Attributes.Append(doc.CreateAttribute("viewBox"))
|
||||||
|
elmSub.Value = Canv.ViewBoxDim
|
||||||
|
elmSub = elmMain.Attributes.Append(doc.CreateAttribute("xmlns"))
|
||||||
|
elmSub.Value = _namespaceDefault
|
||||||
|
|
||||||
|
For Each itemPath As MyPath In Canv.ListPath
|
||||||
|
elm = elmMain.AppendChild(doc.CreateElement("path"))
|
||||||
|
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("id"))
|
||||||
|
elmSub.Value = itemPath.id
|
||||||
|
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("d"))
|
||||||
|
elmSub.Value = itemPath.d
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.fill) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("fill"))
|
||||||
|
elmSub.Value = itemPath.fill
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.fill_opacity) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("fill-opacity"))
|
||||||
|
elmSub.Value = itemPath.fill_opacity.ToString(CultureInfo.InvariantCulture)
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.stroke) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("stroke"))
|
||||||
|
elmSub.Value = itemPath.stroke
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.stroke_opacity) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("stroke-opacity"))
|
||||||
|
elmSub.Value = itemPath.stroke_opacity.ToString(CultureInfo.InvariantCulture)
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.stroke_width) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("stroke-width"))
|
||||||
|
elmSub.Value = itemPath.stroke_width.ToString(CultureInfo.InvariantCulture)
|
||||||
|
End If
|
||||||
|
|
||||||
|
Next
|
||||||
|
|
||||||
|
doc.AppendChild(doc.CreateXmlDeclaration("1.0", "UTF-8", ""))
|
||||||
|
doc.AppendChild(elmMain)
|
||||||
|
doc.Save(FilePath)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Module
|
||||||
|
|
||||||
|
#End Region ' Elementi per la gestione SVG
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
Imports System.Net
|
Imports EgtUILib
|
||||||
Imports System.Windows.Forms.Integration
|
|
||||||
Imports EgtUILib
|
|
||||||
|
|
||||||
Public Module SplitAuto
|
Public Module SplitAuto
|
||||||
|
|
||||||
@@ -38,6 +36,8 @@ Public Module SplitAuto
|
|||||||
Public m_dStartFreeLen As Double
|
Public m_dStartFreeLen As Double
|
||||||
Public m_dEndFreeLen As Double
|
Public m_dEndFreeLen As Double
|
||||||
Public m_vtDir As Vector3d
|
Public m_vtDir As Vector3d
|
||||||
|
' ver 2.6f4: tagli corti gestiti con LeadIn.OUT/LeadOut.OUT
|
||||||
|
Public m_bMngLeadInOnIntCorner As Boolean
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
'-----------------------------------------------------------------------------------------------
|
'-----------------------------------------------------------------------------------------------
|
||||||
@@ -49,128 +49,316 @@ Public Module SplitAuto
|
|||||||
While nOperId <> GDB_ID.NULL
|
While nOperId <> GDB_ID.NULL
|
||||||
' verifico sia una lavorazione valida della fase corrente
|
' verifico sia una lavorazione valida della fase corrente
|
||||||
If IsValidMachining(nOperId) And EgtGetOperationPhase(nOperId) = nCurrPhase Then
|
If IsValidMachining(nOperId) And EgtGetOperationPhase(nOperId) = nCurrPhase Then
|
||||||
' se appartiene ad un grezzo attivo la inserisco in lista
|
Dim Mach As New SplitMach
|
||||||
If IsMachiningInActiveRaw(nOperId) Then
|
If CreateMach(Mach, nOperId) Then MachSplitList.Add(Mach)
|
||||||
Dim Mach As New SplitMach
|
'' se appartiene ad un grezzo attivo la inserisco in lista
|
||||||
Mach.m_nEntId = GDB_ID.NULL
|
'If IsMachiningInActiveRaw(nOperId) Then
|
||||||
' identificativo
|
' Dim Mach As New SplitMach
|
||||||
Mach.m_nId = nOperId
|
' Mach.m_nEntId = GDB_ID.NULL
|
||||||
' eventuali lavorazioni inglobate
|
' ' identificativo
|
||||||
Dim sInfo As String = String.Empty
|
' Mach.m_nId = nOperId
|
||||||
If EgtGetInfo(nOperId, INFO_MCH_OTHMID, sInfo) Then
|
' ' eventuali lavorazioni inglobate
|
||||||
Dim sItems() As String = sInfo.Split(",".ToCharArray)
|
' Dim sInfo As String = String.Empty
|
||||||
For Each sId As String In sItems
|
' If EgtGetInfo(nOperId, INFO_MCH_OTHMID, sInfo) Then
|
||||||
Dim nId As Integer = 0
|
' Dim sItems() As String = sInfo.Split(",".ToCharArray)
|
||||||
StringToInt(sId, nId)
|
' For Each sId As String In sItems
|
||||||
If nId > 0 Then Mach.m_vOthId.Add(nId)
|
' Dim nId As Integer = 0
|
||||||
Next
|
' StringToInt(sId, nId)
|
||||||
End If
|
' If nId > 0 Then Mach.m_vOthId.Add(nId)
|
||||||
' tipo
|
' Next
|
||||||
Mach.m_nType = EgtGetOperationType(nOperId)
|
' End If
|
||||||
' layer di origine
|
' ' tipo
|
||||||
EgtGetInfo(nOperId, INFO_MCH_LAYER, Mach.m_sLay)
|
' Mach.m_nType = EgtGetOperationType(nOperId)
|
||||||
' se taglio con lama
|
' ' layer di origine
|
||||||
If Mach.m_nType = MCH_OY.SAWING Then
|
' EgtGetInfo(nOperId, INFO_MCH_LAYER, Mach.m_sLay)
|
||||||
' verifica interferenza
|
' ' se taglio con lama
|
||||||
If Mach.m_sLay = NAME_OUTLOOP Then
|
' If Mach.m_nType = MCH_OY.SAWING Then
|
||||||
EgtVerifyMachining(nOperId, Mach.m_nInterf)
|
' ' verifica interferenza
|
||||||
For Each nId As Integer In Mach.m_vOthId
|
' If Mach.m_sLay = NAME_OUTLOOP Then
|
||||||
Dim nRes As Integer = FMI_TYPE.LI Or FMI_TYPE.RM Or FMI_TYPE.LO
|
' EgtVerifyMachining(nOperId, Mach.m_nInterf)
|
||||||
EgtVerifyMachining(nId, nRes)
|
' For Each nId As Integer In Mach.m_vOthId
|
||||||
Mach.m_nInterf = Mach.m_nInterf Or nRes
|
' Dim nRes As Integer = FMI_TYPE.LI Or FMI_TYPE.RM Or FMI_TYPE.LO
|
||||||
Next
|
' EgtVerifyMachining(nId, nRes)
|
||||||
Else
|
' Mach.m_nInterf = Mach.m_nInterf Or nRes
|
||||||
Mach.m_nInterf = FMI_TYPE.NONE
|
' Next
|
||||||
End If
|
' Else
|
||||||
' la imposto come lavorazione corrente
|
' Mach.m_nInterf = FMI_TYPE.NONE
|
||||||
EgtSetCurrMachining(nOperId)
|
' End If
|
||||||
' inversione
|
' ' la imposto come lavorazione corrente
|
||||||
EgtGetMachiningParam(MCH_MP.INVERT, Mach.m_bInvert)
|
' EgtSetCurrMachining(nOperId)
|
||||||
' recupero l'angolo di fianco
|
' ' inversione
|
||||||
EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
|
' EgtGetMachiningParam(MCH_MP.INVERT, Mach.m_bInvert)
|
||||||
' recupero allungamento iniziale e finale (negativi vicino ad angoli interni)
|
' ' recupero l'angolo di fianco
|
||||||
Dim dStartAddLen As Double = -10
|
' EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
|
||||||
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dStartAddLen)
|
' ' recupero allungamento iniziale e finale (negativi vicino ad angoli interni)
|
||||||
Dim dEndAddLen As Double = -10
|
' Dim dStartAddLen As Double = -10
|
||||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dEndAddLen)
|
' EgtGetMachiningParam(MCH_MP.STARTADDLEN, dStartAddLen)
|
||||||
' recupero tipo entità, angolo con entità precedente e successiva, lunghezze libere iniziale e finale
|
' Dim dEndAddLen As Double = -10
|
||||||
Mach.m_bIsLine = True
|
' EgtGetMachiningParam(MCH_MP.ENDADDLEN, dEndAddLen)
|
||||||
Mach.m_dPrevAng = 0
|
' ' recupero tipo entità, angolo con entità precedente e successiva, lunghezze libere iniziale e finale
|
||||||
Mach.m_dNextAng = 0
|
' Mach.m_bIsLine = True
|
||||||
Mach.m_dStartFreeLen = FREELEN_INF + 1
|
' Mach.m_dPrevAng = 0
|
||||||
Mach.m_dEndFreeLen = FREELEN_INF + 1
|
' Mach.m_dNextAng = 0
|
||||||
Dim nEntId, nSub As Integer
|
' Mach.m_dStartFreeLen = FREELEN_INF + 1
|
||||||
If EgtGetMachiningGeometry(0, nEntId, nSub) Then
|
' Mach.m_dEndFreeLen = FREELEN_INF + 1
|
||||||
' EgtGetType( nEntId) = GDB_TY.CRV_ARC OrElse
|
' Dim nEntId, nSub As Integer
|
||||||
If EgtGetType(nEntId) = GDB_TY.CRV_COMPO Then Mach.m_bIsLine = False
|
' If EgtGetMachiningGeometry(0, nEntId, nSub) Then
|
||||||
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_PREVANG, INFO_NEXTANG), Mach.m_dPrevAng)
|
' ' EgtGetType( nEntId) = GDB_TY.CRV_ARC OrElse
|
||||||
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_NEXTANG, INFO_PREVANG), Mach.m_dNextAng)
|
' If EgtGetType(nEntId) = GDB_TY.CRV_COMPO Then Mach.m_bIsLine = False
|
||||||
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_START_FREELEN, INFO_END_FREELEN), Mach.m_dStartFreeLen)
|
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_PREVANG, INFO_NEXTANG), Mach.m_dPrevAng)
|
||||||
EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_END_FREELEN, INFO_START_FREELEN), Mach.m_dEndFreeLen)
|
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_NEXTANG, INFO_PREVANG), Mach.m_dNextAng)
|
||||||
Mach.m_bEnableInvert = GetEnableInvert(nEntId)
|
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_START_FREELEN, INFO_END_FREELEN), Mach.m_dStartFreeLen)
|
||||||
EgtMidVector(nEntId, GDB_ID.ROOT, Mach.m_vtDir)
|
' EgtGetInfo(nEntId, If(Not Mach.m_bInvert, INFO_END_FREELEN, INFO_START_FREELEN), Mach.m_dEndFreeLen)
|
||||||
If Mach.m_bInvert Then Mach.m_vtDir = -Mach.m_vtDir
|
' Mach.m_bEnableInvert = GetEnableInvert(nEntId)
|
||||||
Mach.m_nEntId = nEntId
|
' EgtMidVector(nEntId, GDB_ID.ROOT, Mach.m_vtDir)
|
||||||
End If
|
' If Mach.m_bInvert Then Mach.m_vtDir = -Mach.m_vtDir
|
||||||
' verifico se trasformabile in un taglio di separazione (almeno da un lato)
|
' Mach.m_nEntId = nEntId
|
||||||
If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL) And
|
' EgtGetInfo(nOperId, "ManageLeadInOnIntCorner", Mach.m_bMngLeadInOnIntCorner)
|
||||||
Mach.m_sLay = NAME_OUTLOOP And Mach.m_nInterf = FMI_TYPE.NONE Then
|
' End If
|
||||||
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
|
' ' verifico se trasformabile in un taglio di separazione (almeno da un lato)
|
||||||
Mach.m_bCanStartAll = (dStartAddLen > -EPS_SMALL And (nRes And CAR_RES.LI_OK) <> 0) And
|
' If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine
|
' Mach.m_sLay = NAME_OUTLOOP And ( Mach.m_nInterf And FMI_TYPE.RM) = 0 Then
|
||||||
Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL And (nRes And CAR_RES.LO_OK) <> 0) And
|
' Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
|
||||||
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine
|
' Dim bIn As Boolean = False
|
||||||
If nRes = 0 Then
|
' Dim bOut As Boolean = False
|
||||||
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
|
' CanExtendSides(Mach, bIn, bOut)
|
||||||
End If
|
' Mach.m_bCanStartAll = ((dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LI_OK) <> 0) And
|
||||||
End If
|
' Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn
|
||||||
' se trasformabile in taglio di separazione, verifico se lo è
|
' Mach.m_bCanEndAll = ((dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And (nRes And CAR_RES.LO_OK) <> 0) And
|
||||||
If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
|
' Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut
|
||||||
EgtSetCurrMachining(nOperId)
|
' If nRes = 0 Then
|
||||||
Dim nLiType As Integer
|
' EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
|
||||||
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiType)
|
' End If
|
||||||
Dim nLoType As Integer
|
|
||||||
EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoType)
|
' ElseIf (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
Mach.m_bStartAll = (nLiType = MCH_SAW_LI.EXT_CENT Or nLiType = MCH_SAW_LI.EXT_OUT)
|
' Mach.m_sLay = NAME_OUTLOOP And
|
||||||
Mach.m_bEndAll = (nLoType = MCH_SAW_LO.EXT_CENT Or nLoType = MCH_SAW_LO.EXT_OUT)
|
' (Mach.m_nInterf = FMI_TYPE.LI Or Mach.m_nInterf = FMI_TYPE.LO Or Mach.m_nInterf = FMI_TYPE.RM) Then
|
||||||
Else
|
' Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
|
||||||
Mach.m_bStartAll = False
|
' Dim bIn As Boolean = False
|
||||||
Mach.m_bEndAll = False
|
' Dim bOut As Boolean = False
|
||||||
End If
|
' CanExtendSides(Mach, bIn, bOut)
|
||||||
' Waterjet
|
' ' And (nRes And CAR_RES.LI_OK) <> 0 : da aggiungere
|
||||||
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then
|
' Mach.m_bCanStartAll = (dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
Mach.m_nInterf = FMI_TYPE.NONE
|
' Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn And
|
||||||
' recupero l'angolo di fianco
|
' Mach.m_nInterf <> FMI_TYPE.LI
|
||||||
EgtGetMachiningParam(MCH_MP.SIDEANGLE, Mach.m_dSideAng)
|
' ' And (nRes And CAR_RES.LO_OK) <> 0 : da aggiungere come sopra
|
||||||
Mach.m_bCanStartAll = False
|
' Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
Mach.m_bCanEndAll = False
|
' Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut And
|
||||||
Mach.m_bStartAll = False
|
' Mach.m_nInterf <> FMI_TYPE.LO
|
||||||
Mach.m_bEndAll = False
|
' If nRes = 0 Then
|
||||||
' Forature e fresature
|
' EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
|
||||||
Else
|
' End If
|
||||||
Mach.m_nInterf = FMI_TYPE.NONE
|
' End If
|
||||||
Mach.m_dSideAng = 0
|
' ' se trasformabile in taglio di separazione, verifico se lo è
|
||||||
Mach.m_bCanStartAll = False
|
' If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
|
||||||
Mach.m_bCanEndAll = False
|
' EgtSetCurrMachining(nOperId)
|
||||||
Mach.m_bStartAll = False
|
' Dim nLiType As Integer
|
||||||
Mach.m_bEndAll = False
|
' EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiType)
|
||||||
End If
|
' Dim nLoType As Integer
|
||||||
' abilitazione
|
' EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoType)
|
||||||
Mach.m_bEnabled = Not EgtExistsInfo(nOperId, INFO_MCH_USER_OFF)
|
' Mach.m_bStartAll = (nLiType = MCH_SAW_LI.EXT_CENT Or nLiType = MCH_SAW_LI.EXT_OUT)
|
||||||
' pausa
|
' Mach.m_bEndAll = (nLoType = MCH_SAW_LO.EXT_CENT Or nLoType = MCH_SAW_LO.EXT_OUT)
|
||||||
Mach.m_bPause = GetPause(nOperId)
|
' Else
|
||||||
' inserisco in lista
|
' Mach.m_bStartAll = False
|
||||||
MachSplitList.Add(Mach)
|
' Mach.m_bEndAll = False
|
||||||
' altrimenti la disattivo
|
' End If
|
||||||
Else
|
' ' Waterjet
|
||||||
EgtSetOperationMode(nOperId, False)
|
' ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then
|
||||||
End If
|
' 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
|
End If
|
||||||
nOperId = EgtGetNextOperation(nOperId)
|
nOperId = EgtGetNextOperation(nOperId)
|
||||||
End While
|
End While
|
||||||
Return True
|
Return True
|
||||||
End Function
|
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
|
||||||
|
bOut = True
|
||||||
|
bIn = False
|
||||||
|
ElseIf CurrMach.m_dPrevAng > EPS_ANG_SMALL And CurrMach.m_dNextAng < -EPS_ANG_SMALL Then
|
||||||
|
' Posso estendere SOLO l'ingresso
|
||||||
|
bIn = True
|
||||||
|
bOut = False
|
||||||
|
ElseIf CurrMach.m_dPrevAng < -EPS_ANG_SMALL And CurrMach.m_dNextAng < -EPS_ANG_SMALL Then
|
||||||
|
' NON Posso estendere
|
||||||
|
bIn = False
|
||||||
|
bOut = False
|
||||||
|
Else
|
||||||
|
bIn = True
|
||||||
|
bOut = True
|
||||||
|
End If
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
'-----------------------------------------------------------------------------------------------
|
'-----------------------------------------------------------------------------------------------
|
||||||
' calcolo il numero di tipi di lavorazioni
|
' calcolo il numero di tipi di lavorazioni
|
||||||
Friend Sub CountMachiningType(MachSplit As SplitMach, ByRef nCountSawing As Integer, ByRef nCountWaterjetting As Integer, ByRef nCountOtherMachining As Integer)
|
Friend Sub CountMachiningType(MachSplit As SplitMach, ByRef nCountSawing As Integer, ByRef nCountWaterjetting As Integer, ByRef nCountOtherMachining As Integer)
|
||||||
@@ -238,8 +426,19 @@ Public Module SplitAuto
|
|||||||
ElseIf Math.Abs(dSideAng) > EPS_ANG_SMALL Then
|
ElseIf Math.Abs(dSideAng) > EPS_ANG_SMALL Then
|
||||||
colCut = COL_MCH_CUT_ANG()
|
colCut = COL_MCH_CUT_ANG()
|
||||||
Else
|
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
|
End If
|
||||||
|
|
||||||
For Each nId In vCutId
|
For Each nId In vCutId
|
||||||
EgtSetColor(nId, colCut)
|
EgtSetColor(nId, colCut)
|
||||||
Next
|
Next
|
||||||
@@ -799,13 +998,13 @@ Public Module SplitAuto
|
|||||||
|
|
||||||
Private Function ExecMove(nDispId As Integer, vNewRaws As List(Of Integer),
|
Private Function ExecMove(nDispId As Integer, vNewRaws As List(Of Integer),
|
||||||
vtMove As Vector3d, dMinMove As Double) As Boolean
|
vtMove As Vector3d, dMinMove As Double) As Boolean
|
||||||
Dim bTwoHeadVac As Boolean = ( EgtGetHeadId( VACUUM_HEAD_2) <> GDB_ID.NULL)
|
Dim bTwoHeadVac As Boolean = (EgtGetHeadId(VACUUM_HEAD_2) <> GDB_ID.NULL)
|
||||||
Dim rmData As New RawMoveData
|
Dim rmData As New RawMoveData
|
||||||
Dim vtMove2 As Vector3d = -vtMove
|
Dim vtMove2 As Vector3d = -vtMove
|
||||||
|
|
||||||
VacuumCups.ResetHeadName()
|
VacuumCups.ResetHeadName()
|
||||||
Dim bPutVacuum As Boolean = PutVacuumCupsOnRaw(vNewRaws(1), rmData)
|
Dim bPutVacuum As Boolean = PutVacuumCupsOnRaw(vNewRaws(1), rmData)
|
||||||
If Not bPutVacuum And bTwoHeadVac Then bPutVacuum= PutVacuumCupsOnRaw(vNewRaws(1), rmData)
|
If Not bPutVacuum And bTwoHeadVac Then bPutVacuum = PutVacuumCupsOnRaw(vNewRaws(1), rmData)
|
||||||
If bPutVacuum AndAlso SafeMoveRawPart(vNewRaws(1), vtMove, dMinMove) Then
|
If bPutVacuum AndAlso SafeMoveRawPart(vNewRaws(1), vtMove, dMinMove) Then
|
||||||
rmData.m_vtRawMove = vtMove
|
rmData.m_vtRawMove = vtMove
|
||||||
SaveOneMoveInfoInDisposition(nDispId, rmData)
|
SaveOneMoveInfoInDisposition(nDispId, rmData)
|
||||||
@@ -826,9 +1025,9 @@ Public Module SplitAuto
|
|||||||
|
|
||||||
Private Function SafeMoveRawPart(nRawId As Integer, ByRef vtMove As Vector3d, dMindist As Double) As Boolean
|
Private Function SafeMoveRawPart(nRawId As Integer, ByRef vtMove As Vector3d, dMindist As Double) As Boolean
|
||||||
' Spostamento originale
|
' Spostamento originale
|
||||||
Dim vtOriMove As New Vector3d( vtMove)
|
Dim vtOriMove As New Vector3d(vtMove)
|
||||||
' Livello di movimento
|
' Livello di movimento
|
||||||
Dim nMoveLevel As Integer = GetPrivateProfileInt( S_SPLIT, K_MOVE_LEV, 5, m_MainWindow.GetIniFile())
|
Dim nMoveLevel As Integer = GetPrivateProfileInt(S_SPLIT, K_MOVE_LEV, 5, m_MainWindow.GetIniFile())
|
||||||
Dim nMove As Integer = 1
|
Dim nMove As Integer = 1
|
||||||
' Se esce dalla tavola, movimento già annullato ed esco con errore
|
' Se esce dalla tavola, movimento già annullato ed esco con errore
|
||||||
If Not EgtMoveRawPart(nRawId, vtOriMove) Then Return False
|
If Not EgtMoveRawPart(nRawId, vtOriMove) Then Return False
|
||||||
@@ -863,7 +1062,7 @@ Public Module SplitAuto
|
|||||||
If VerifyRawWithOtherRaws(nRawId, dMindist) Then
|
If VerifyRawWithOtherRaws(nRawId, dMindist) Then
|
||||||
vtMove += 0.5 * vtOriMove
|
vtMove += 0.5 * vtOriMove
|
||||||
nMove += 1
|
nMove += 1
|
||||||
If nMoveLevel = nMove Then return True
|
If nMoveLevel = nMove Then Return True
|
||||||
Else
|
Else
|
||||||
EgtMoveRawPart(nRawId, -0.5 * vtOriMove)
|
EgtMoveRawPart(nRawId, -0.5 * vtOriMove)
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<UserControl x:Class="SplitPageUC"
|
<UserControl x:Class="SplitPageUC"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="SplitPageUC_Initialized">
|
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="SplitPageUC_Initialized">
|
||||||
|
|
||||||
<!-- Definizione della SplitPage -->
|
<!-- Definizione della SplitPage -->
|
||||||
<Grid Name="SplitPageGrid" >
|
<Grid Name="SplitPageGrid" >
|
||||||
@@ -64,24 +64,49 @@
|
|||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<ListBox Name="MachiningLsBx" Grid.Row="1"
|
<ListBox Name="MachiningLsBx" Grid.Row="1"
|
||||||
SelectionMode="Extended">
|
SelectionMode="Extended">
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<TextBlock Text="{Binding Name}">
|
<Grid Width="210">
|
||||||
<TextBlock.Style>
|
<Grid.ColumnDefinitions>
|
||||||
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_CurrProjSummeryTextBlock}">
|
<ColumnDefinition Width="2.8*"/>
|
||||||
<Style.Triggers>
|
<ColumnDefinition Width="1.2*"/>
|
||||||
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
<ColumnDefinition Width="Auto"/>
|
||||||
<Setter Property="TextDecorations" Value="Strikethrough"/>
|
</Grid.ColumnDefinitions>
|
||||||
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
<TextBlock Text="{Binding Name}">
|
||||||
</DataTrigger>
|
<TextBlock.Style>
|
||||||
<DataTrigger Binding="{Binding bIsActive}" Value="True">
|
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_CurrProjSummeryTextBlock}">
|
||||||
<Setter Property="Foreground" Value="Black"/>
|
<Style.Triggers>
|
||||||
</DataTrigger>
|
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
||||||
</Style.Triggers>
|
<Setter Property="TextDecorations" Value="Strikethrough"/>
|
||||||
</Style>
|
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
||||||
</TextBlock.Style>
|
</DataTrigger>
|
||||||
</TextBlock>
|
<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>
|
</DataTemplate>
|
||||||
</ListBox.ItemTemplate>
|
</ListBox.ItemTemplate>
|
||||||
</ListBox>
|
</ListBox>
|
||||||
@@ -100,6 +125,12 @@
|
|||||||
<Button Name="MoveDownBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="MoveDownBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource DownArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource DownArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</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>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
@@ -132,7 +163,7 @@
|
|||||||
<Button Name="CutBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="CutBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource Allunga-AccorciaImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource Allunga-AccorciaImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button Name="CutStartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="CutStartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource Inizio-Allunga-AccorciaImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource Inizio-Allunga-AccorciaImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
@@ -146,17 +177,17 @@
|
|||||||
<Image Source="{DynamicResource PonticelliWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource PonticelliWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|
||||||
<!--solo per macchine con lavorazioni Waterjet-->
|
<!--solo per macchine con lavorazioni Waterjet-->
|
||||||
<Button Name="QualityWJBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="QualityWJBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource QualityWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource QualityWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<!-- solo per macchine con lavorazioni Waterjet -->
|
<!-- solo per macchine con lavorazioni Waterjet -->
|
||||||
<ToggleButton Name="BridgesDeleteWJBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
<ToggleButton Name="BridgesDeleteWJBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||||
<Image Source="{DynamicResource PonticelliDeleteWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource PonticelliDeleteWJImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ Public Class SplitPageUC
|
|||||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
||||||
|
|
||||||
|
' Creazione converter da String a ImageSource
|
||||||
|
Private ImageConverter As New ImageSourceConverter
|
||||||
|
|
||||||
' Flag di pagina attiva
|
' Flag di pagina attiva
|
||||||
Private m_bActive As Boolean = False
|
Private m_bActive As Boolean = False
|
||||||
' Tipo movimento dei grezzi (manuale o con testa ventosa)
|
' Tipo movimento dei grezzi (manuale o con testa ventosa)
|
||||||
@@ -61,6 +64,9 @@ Public Class SplitPageUC
|
|||||||
' Abilita la mofica Inizio fine per i tagli interni sugli angoli
|
' Abilita la mofica Inizio fine per i tagli interni sugli angoli
|
||||||
Private m_StartEndModifyOnIntCorner As Boolean = False
|
Private m_StartEndModifyOnIntCorner As Boolean = False
|
||||||
|
|
||||||
|
Private m_IsCtrlKeyDown As Boolean = False
|
||||||
|
Private m_IsShiftKeyDown As Boolean = False
|
||||||
|
|
||||||
Private Sub SplitPageUC_Initialized(sender As Object, e As EventArgs)
|
Private Sub SplitPageUC_Initialized(sender As Object, e As EventArgs)
|
||||||
PrevBtn.IsEnabled = False
|
PrevBtn.IsEnabled = False
|
||||||
' Collego lista di oggetti a ListBox
|
' Collego lista di oggetti a ListBox
|
||||||
@@ -180,6 +186,9 @@ Public Class SplitPageUC
|
|||||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
' leggo lo stato del bottone per la visualizzazione delle etichette
|
||||||
|
LayNbArrTgBtn.IsChecked = (GetPrivateProfileInt(S_GENERAL, K_SHOWNBARROW, 1, m_MainWindow.GetIniFile()) <> 0)
|
||||||
|
SetLayNbArrTgBtn_Click()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' preparo la lista delle lavorazioni da mostrare in interfaccia
|
' preparo la lista delle lavorazioni da mostrare in interfaccia
|
||||||
@@ -196,28 +205,54 @@ Public Class SplitPageUC
|
|||||||
sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString(Mach.m_dSideAng, 2) & "°"
|
sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString(Mach.m_dSideAng, 2) & "°"
|
||||||
End If
|
End If
|
||||||
If Mach.m_bPause Then AddPauseText(sText)
|
If Mach.m_bPause Then AddPauseText(sText)
|
||||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.SAWING))
|
AddItemToList(i, Mach, sText, MCH_OY.SAWING)
|
||||||
ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura
|
ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura
|
||||||
Dim sText As String = EgtMsg(90792) & " " & i.ToString()
|
Dim sText As String = EgtMsg(90792) & " " & i.ToString()
|
||||||
If Mach.m_bPause Then AddPauseText(sText)
|
If Mach.m_bPause Then AddPauseText(sText)
|
||||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, 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
|
ElseIf Mach.m_nType = MCH_OY.MILLING Then ' Fresatura
|
||||||
Dim sText As String = EgtMsg(90793) & " " & i.ToString()
|
Dim sText As String = EgtMsg(90793) & " " & i.ToString()
|
||||||
If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
|
If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
|
||||||
If Mach.m_bPause Then AddPauseText(sText)
|
If Mach.m_bPause Then AddPauseText(sText)
|
||||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, 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
|
ElseIf Mach.m_nType = MCH_OY.POCKETING Then ' Svuotatura
|
||||||
Dim sText As String = EgtMsg(90796) & " " & i.ToString()
|
Dim sText As String = EgtMsg(90796) & " " & i.ToString()
|
||||||
If Mach.m_bPause Then AddPauseText(sText)
|
If Mach.m_bPause Then AddPauseText(sText)
|
||||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, 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
|
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then ' Waterjet
|
||||||
Dim sText As String = EgtMsg(90797) & " " & i.ToString()
|
Dim sText As String = EgtMsg(90797) & " " & i.ToString()
|
||||||
If Mach.m_bPause Then AddPauseText(sText)
|
If Mach.m_bPause Then AddPauseText(sText)
|
||||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, 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
|
End If
|
||||||
Next
|
Next
|
||||||
End Sub
|
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"
|
#Region "BRIDGE"
|
||||||
|
|
||||||
Private Sub OnMyMouseDownSceneBridges(sender As Object, e As System.Windows.Forms.MouseEventArgs,
|
Private Sub OnMyMouseDownSceneBridges(sender As Object, e As System.Windows.Forms.MouseEventArgs,
|
||||||
@@ -453,9 +488,46 @@ Public Class SplitPageUC
|
|||||||
|
|
||||||
#End Region ' Bridge
|
#End Region ' Bridge
|
||||||
|
|
||||||
|
Private Sub OnMyMouseDownScene_DoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene_DoubleClick
|
||||||
|
OnOffCut()
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
|
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
|
||||||
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
|
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
|
||||||
If Not m_bActive OrElse m_bShow Then Return
|
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
|
' Si può selezionare solo con il tasto sinistro e se stato NULL
|
||||||
If e.Button <> Windows.Forms.MouseButtons.Left Or
|
If e.Button <> Windows.Forms.MouseButtons.Left Or
|
||||||
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
||||||
@@ -475,6 +547,7 @@ Public Class SplitPageUC
|
|||||||
If m_nIdSelectedPartWJ_Srt <> GDB_ID.NULL And m_nIdSelectedPartWJ_End <> GDB_ID.NULL Then
|
If m_nIdSelectedPartWJ_Srt <> GDB_ID.NULL And m_nIdSelectedPartWJ_End <> GDB_ID.NULL Then
|
||||||
DeselectWJBridgesPart()
|
DeselectWJBridgesPart()
|
||||||
End If
|
End If
|
||||||
|
GetCurrSelection()
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -483,6 +556,7 @@ Public Class SplitPageUC
|
|||||||
OnMyMouseDownSceneBridgesDelete(sender, e)
|
OnMyMouseDownSceneBridgesDelete(sender, e)
|
||||||
' aggiorno la visualizzazione delle lavorazioni e la lista
|
' aggiorno la visualizzazione delle lavorazioni e la lista
|
||||||
RefreshMachList()
|
RefreshMachList()
|
||||||
|
GetCurrSelection()
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -564,7 +638,94 @@ Public Class SplitPageUC
|
|||||||
m_nDragInd = -1
|
m_nDragInd = -1
|
||||||
m_nDragType = 0
|
m_nDragType = 0
|
||||||
m_nSelected = GDB_ID.NULL
|
m_nSelected = GDB_ID.NULL
|
||||||
|
If Not IsNothing(MachiningLsBx.SelectedItem) Then
|
||||||
|
MarkMachining(MachiningLsBx.SelectedItem.Ind, False)
|
||||||
|
EgtDraw()
|
||||||
|
End If
|
||||||
|
MachiningLsBx.SelectedIndex = -1
|
||||||
End If
|
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
|
||||||
|
' Recupero il nome della lavorazione
|
||||||
|
EgtGetInfo(EntId, DEF_MACHINING, 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, DEF_MACHINING, 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
|
||||||
|
' Eventualmente recupero il nome della lavorazione
|
||||||
|
EgtGetInfo(EntId, DEF_MACHINING, 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
|
End Sub
|
||||||
|
|
||||||
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseMoveScene
|
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseMoveScene
|
||||||
@@ -595,6 +756,7 @@ Public Class SplitPageUC
|
|||||||
Dim dUsal As Double
|
Dim dUsal As Double
|
||||||
' ----------------------- REPEAT -----------------------
|
' ----------------------- REPEAT -----------------------
|
||||||
Do
|
Do
|
||||||
|
If Not m_MachiningList(m_nDragInd).m_bCanStartAll Then Exit Do
|
||||||
dDelta = -dDelta
|
dDelta = -dDelta
|
||||||
' Leggo il valore salvato nella geometria
|
' Leggo il valore salvato nella geometria
|
||||||
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
|
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
|
||||||
@@ -628,6 +790,7 @@ Public Class SplitPageUC
|
|||||||
Dim dUeal As Double
|
Dim dUeal As Double
|
||||||
dDelta = -dDelta
|
dDelta = -dDelta
|
||||||
Do
|
Do
|
||||||
|
If Not m_MachiningList(m_nDragInd).m_bCanEndAll Then Exit Do
|
||||||
dDelta = -dDelta
|
dDelta = -dDelta
|
||||||
' Leggo il valore salvato nella geometria
|
' Leggo il valore salvato nella geometria
|
||||||
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
|
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
|
||||||
@@ -691,6 +854,11 @@ Public Class SplitPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
|
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
|
||||||
|
' se non attiva la modifica allora esco
|
||||||
|
If m_bShow Then
|
||||||
|
MachiningLsBx.SelectedIndex = -1
|
||||||
|
Return
|
||||||
|
End If
|
||||||
If MachiningLsBx.SelectedItems.Count = 0 Then Return
|
If MachiningLsBx.SelectedItems.Count = 0 Then Return
|
||||||
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
|
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
|
||||||
' creo lista ordinata dei selezionati
|
' creo lista ordinata dei selezionati
|
||||||
@@ -731,6 +899,22 @@ Public Class SplitPageUC
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MachiningLsBx_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles MachiningLsBx.MouseDoubleClick
|
||||||
|
' se disabilitata la modifica allora esco
|
||||||
|
If m_bShow Then Return
|
||||||
|
If m_IsCtrlKeyDown Or m_IsShiftKeyDown Then Return
|
||||||
|
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
|
Private Sub MoveUpBtn_Click(sender As Object, e As RoutedEventArgs) Handles MoveUpBtn.Click
|
||||||
MoveItem(-1)
|
MoveItem(-1)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -739,6 +923,25 @@ Public Class SplitPageUC
|
|||||||
MoveItem(1)
|
MoveItem(1)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LayNbArrTgBtn_Click() Handles LayNbArrTgBtn.Click
|
||||||
|
SetLayNbArrTgBtn_Click()
|
||||||
|
WritePrivateProfileString(S_GENERAL, K_SHOWNBARROW, If(LayNbArrTgBtn.IsChecked, "1", "0"), m_MainWindow.GetIniFile())
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub SetLayNbArrTgBtn_Click()
|
||||||
|
If LayNbArrTgBtn.IsChecked Then
|
||||||
|
StatusOffNumbArrow(GDB_ST.ON_)
|
||||||
|
LayNbArrTgBtn.ToolTip = "Hide"
|
||||||
|
Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOn.png")
|
||||||
|
LayNbArrImg.Source = Img
|
||||||
|
Else
|
||||||
|
StatusOffNumbArrow(GDB_ST.OFF)
|
||||||
|
LayNbArrTgBtn.ToolTip = "Show"
|
||||||
|
Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOff.png")
|
||||||
|
LayNbArrImg.Source = Img
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub MoveItem(direction As Integer)
|
Private Sub MoveItem(direction As Integer)
|
||||||
' Checking selected item
|
' Checking selected item
|
||||||
If m_CurrFirstInd = -1 OrElse MachiningLsBx.SelectedIndex < 0 Then
|
If m_CurrFirstInd = -1 OrElse MachiningLsBx.SelectedIndex < 0 Then
|
||||||
@@ -914,11 +1117,31 @@ Public Class SplitPageUC
|
|||||||
EnableButtons()
|
EnableButtons()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' ERRORE: questo evento non è eseguito!
|
'' DA FARE: quando seleziono Esc devo togliere deselezionare tutte le enità!
|
||||||
Private Sub OnKeyDownScene(sender As Object, e As KeyEventArgs)
|
'Private Sub OnKeyDownScene(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
||||||
If e.Key = Key.Escape Then
|
' If e.Key = Key.Escape Then
|
||||||
' se sono in fase di creazione di un ponticello interrompo
|
' ' se sono in fase di creazione di un ponticello interrompo
|
||||||
DeselectWJBridgesPart()
|
' DeselectWJBridgesPart()
|
||||||
|
' EgtDeselectAll()
|
||||||
|
' RemoveMarkAndNumbers()
|
||||||
|
' End If
|
||||||
|
'End Sub
|
||||||
|
|
||||||
|
Private Sub MachiningLsBx_KeyDown(sender As Object, e As KeyEventArgs) Handles MachiningLsBx.KeyDown
|
||||||
|
If e.Key = Key.LeftCtrl Or e.Key = Key.RightCtrl Then
|
||||||
|
m_IsCtrlKeyDown = True
|
||||||
|
End If
|
||||||
|
If e.Key = Key.LeftShift Or e.Key = Key.RightShift Then
|
||||||
|
m_IsShiftKeyDown = True
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MachiningLsBx_KeyUp(sender As Object, e As KeyEventArgs) Handles MachiningLsBx.KeyUp
|
||||||
|
If e.Key = Key.LeftCtrl Or e.Key = Key.RightCtrl Then
|
||||||
|
m_IsCtrlKeyDown = False
|
||||||
|
End If
|
||||||
|
If e.Key = Key.LeftShift Or e.Key = Key.RightShift Then
|
||||||
|
m_IsShiftKeyDown = False
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1125,37 +1348,46 @@ Public Class SplitPageUC
|
|||||||
End If
|
End If
|
||||||
Dim nI As Integer = m_ItemList(Index).Ind
|
Dim nI As Integer = m_ItemList(Index).Ind
|
||||||
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
|
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
|
||||||
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
|
||||||
Dim nLiPrev As Integer
|
' se ho forzato il tipo di ingresso da CamAuto qui non posso moficarlo!
|
||||||
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiPrev)
|
If m_MachiningList(nI).m_bMngLeadInOnIntCorner Then
|
||||||
If nLiPrev = MCH_SAW_LI.OUT Then
|
EgtOutLog(" ⚠️ L'ingresso di taglio associato all'entita'_" & m_MachiningList(nI).m_nEntId & " non puo' essere modificato per problemi di ingombro lama ⚠️")
|
||||||
' accorcio
|
Else
|
||||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.CENT)
|
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
||||||
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
Dim nLiPrev As Integer
|
||||||
' ri-verifico interferenza
|
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiPrev)
|
||||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
If nLiPrev = MCH_SAW_LI.OUT Then
|
||||||
ElseIf nLiPrev = MCH_SAW_LI.EXT_OUT Then
|
' accorcio
|
||||||
' accorcio
|
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.CENT)
|
||||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.EXT_CENT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
||||||
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
' ri-verifico interferenza
|
||||||
ElseIf nLiPrev = MCH_SAW_LI.CENT Then
|
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||||
' allungo
|
ElseIf nLiPrev = MCH_SAW_LI.EXT_OUT Then
|
||||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.OUT)
|
' accorcio
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.EXT_CENT)
|
||||||
ModifyOtherLeadIn(nI, MCH_SAW_LI.OUT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
' ri-verifico interferenza
|
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
||||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
ElseIf nLiPrev = MCH_SAW_LI.CENT Then
|
||||||
ElseIf nLiPrev = MCH_SAW_LI.EXT_CENT Then
|
' allungo
|
||||||
' allungo
|
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.OUT)
|
||||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.EXT_OUT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
ModifyOtherLeadIn(nI, MCH_SAW_LI.OUT)
|
||||||
ModifyOtherLeadIn(nI, MCH_SAW_LI.OUT)
|
' ri-verifico interferenza
|
||||||
|
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||||
|
ElseIf nLiPrev = MCH_SAW_LI.EXT_CENT Then
|
||||||
|
' allungo
|
||||||
|
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.EXT_OUT)
|
||||||
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
|
ModifyOtherLeadIn(nI, MCH_SAW_LI.OUT)
|
||||||
|
End If
|
||||||
|
ColorMachining(m_MachiningList(nI))
|
||||||
|
ColorNumberArrow(nI)
|
||||||
|
bGenModif = True
|
||||||
|
|
||||||
End If
|
End If
|
||||||
ColorMachining(m_MachiningList(nI))
|
|
||||||
ColorNumberArrow(nI)
|
|
||||||
bGenModif = True
|
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
' Se modificato qualcosa
|
' Se modificato qualcosa
|
||||||
@@ -1193,24 +1425,33 @@ Public Class SplitPageUC
|
|||||||
|
|
||||||
Private Sub AllCenStartBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllCenStartBtn.Click
|
Private Sub AllCenStartBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllCenStartBtn.Click
|
||||||
For nI As Integer = 0 To m_MachiningList.Count() - 1
|
For nI As Integer = 0 To m_MachiningList.Count() - 1
|
||||||
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
|
||||||
Dim nLiPrev As Integer
|
' se ho forzato il tipo di ingresso da CamAuto qui non posso moficarlo!
|
||||||
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiPrev)
|
If m_MachiningList(nI).m_bMngLeadInOnIntCorner Then
|
||||||
If nLiPrev = MCH_SAW_LI.OUT Then
|
EgtOutLog(" ⚠️ L'ingresso di taglio associato all'entita'_" & m_MachiningList(nI).m_nEntId & " non puo' essere modificato per problemi di ingombro lama ⚠️")
|
||||||
' accorcio
|
Else
|
||||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.CENT)
|
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
||||||
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
Dim nLiPrev As Integer
|
||||||
' ri-verifico interferenza
|
EgtGetMachiningParam(MCH_MP.LEADINTYPE, nLiPrev)
|
||||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
If nLiPrev = MCH_SAW_LI.OUT Then
|
||||||
ElseIf nLiPrev = MCH_SAW_LI.EXT_OUT Then
|
' accorcio
|
||||||
' accorcio
|
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.CENT)
|
||||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.EXT_CENT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
||||||
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
' ri-verifico interferenza
|
||||||
|
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||||
|
ElseIf nLiPrev = MCH_SAW_LI.EXT_OUT Then
|
||||||
|
' accorcio
|
||||||
|
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.EXT_CENT)
|
||||||
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
|
ModifyOtherLeadIn(nI, MCH_SAW_LI.CENT)
|
||||||
|
End If
|
||||||
|
ColorMachining(m_MachiningList(nI))
|
||||||
|
ColorNumberArrow(nI)
|
||||||
|
|
||||||
End If
|
End If
|
||||||
ColorMachining(m_MachiningList(nI))
|
|
||||||
ColorNumberArrow(nI)
|
|
||||||
Next
|
Next
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
' Imposto flag di modifica
|
' Imposto flag di modifica
|
||||||
@@ -1226,37 +1467,46 @@ Public Class SplitPageUC
|
|||||||
End If
|
End If
|
||||||
Dim nI As Integer = m_ItemList(Index).Ind
|
Dim nI As Integer = m_ItemList(Index).Ind
|
||||||
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
|
If m_MachiningList(nI).m_sLay = NAME_OUTLOOP Then
|
||||||
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
|
||||||
Dim nLoPrev As Integer
|
' se ho forzato il tipo di ingresso da CamAuto qui non posso moficarlo!
|
||||||
EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoPrev)
|
If m_MachiningList(nI).m_bMngLeadInOnIntCorner Then
|
||||||
If nLoPrev = MCH_SAW_LO.OUT Then
|
EgtOutLog(" ⚠️ L'uscita di taglio associato all'entita'_" & m_MachiningList(nI).m_nEntId & " non puo' essere modificato per problemi di ingombro lama ⚠️")
|
||||||
' accorcio
|
Else
|
||||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.CENT)
|
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
||||||
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
Dim nLoPrev As Integer
|
||||||
' ri-verifico interferenza
|
EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoPrev)
|
||||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
If nLoPrev = MCH_SAW_LO.OUT Then
|
||||||
ElseIf nLoPrev = MCH_SAW_LO.EXT_OUT Then
|
' accorcio
|
||||||
' accorcio
|
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.CENT)
|
||||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.EXT_CENT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
||||||
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
' ri-verifico interferenza
|
||||||
ElseIf nLoPrev = MCH_SAW_LO.CENT Then
|
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||||
' allungo
|
ElseIf nLoPrev = MCH_SAW_LO.EXT_OUT Then
|
||||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.OUT)
|
' accorcio
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.EXT_CENT)
|
||||||
ModifyOtherLeadOut(nI, MCH_SAW_LO.OUT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
' ri-verifico interferenza
|
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
||||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
ElseIf nLoPrev = MCH_SAW_LO.CENT Then
|
||||||
ElseIf nLoPrev = MCH_SAW_LO.EXT_CENT Then
|
' allungo
|
||||||
' allungo
|
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.OUT)
|
||||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.EXT_OUT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
ModifyOtherLeadOut(nI, MCH_SAW_LO.OUT)
|
||||||
ModifyOtherLeadOut(nI, MCH_SAW_LO.OUT)
|
' ri-verifico interferenza
|
||||||
|
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||||
|
ElseIf nLoPrev = MCH_SAW_LO.EXT_CENT Then
|
||||||
|
' allungo
|
||||||
|
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.EXT_OUT)
|
||||||
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
|
ModifyOtherLeadOut(nI, MCH_SAW_LO.OUT)
|
||||||
|
End If
|
||||||
|
ColorMachining(m_MachiningList(nI))
|
||||||
|
ColorNumberArrow(nI)
|
||||||
|
bGenModif = True
|
||||||
|
|
||||||
End If
|
End If
|
||||||
ColorMachining(m_MachiningList(nI))
|
|
||||||
ColorNumberArrow(nI)
|
|
||||||
bGenModif = True
|
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
' Se modificato qualcosa
|
' Se modificato qualcosa
|
||||||
@@ -1294,24 +1544,33 @@ Public Class SplitPageUC
|
|||||||
|
|
||||||
Private Sub AllCenEndBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllCenEndBtn.Click
|
Private Sub AllCenEndBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllCenEndBtn.Click
|
||||||
For nI As Integer = 0 To m_MachiningList.Count() - 1
|
For nI As Integer = 0 To m_MachiningList.Count() - 1
|
||||||
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
|
||||||
Dim nLoPrev As Integer
|
' se ho forzato il tipo di ingresso da CamAuto qui non posso moficarlo!
|
||||||
EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoPrev)
|
If m_MachiningList(nI).m_bMngLeadInOnIntCorner Then
|
||||||
If nLoPrev = MCH_SAW_LO.OUT Then
|
EgtOutLog(" ⚠️ L'uscita di taglio associato all'entita'_" & m_MachiningList(nI).m_nEntId & " non puo' essere modificato per problemi di ingombro lama ⚠️")
|
||||||
' accorcio
|
Else
|
||||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.CENT)
|
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
EgtSetCurrMachining(m_MachiningList(nI).m_nId)
|
||||||
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
Dim nLoPrev As Integer
|
||||||
' ri-verifico interferenza
|
EgtGetMachiningParam(MCH_MP.LEADOUTTYPE, nLoPrev)
|
||||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
If nLoPrev = MCH_SAW_LO.OUT Then
|
||||||
ElseIf nLoPrev = MCH_SAW_LO.EXT_OUT Then
|
' accorcio
|
||||||
' accorcio
|
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.CENT)
|
||||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.EXT_CENT)
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
||||||
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
' ri-verifico interferenza
|
||||||
|
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||||
|
ElseIf nLoPrev = MCH_SAW_LO.EXT_OUT Then
|
||||||
|
' accorcio
|
||||||
|
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.EXT_CENT)
|
||||||
|
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||||
|
ModifyOtherLeadOut(nI, MCH_SAW_LO.CENT)
|
||||||
|
End If
|
||||||
|
ColorMachining(m_MachiningList(nI))
|
||||||
|
ColorNumberArrow(nI)
|
||||||
|
|
||||||
End If
|
End If
|
||||||
ColorMachining(m_MachiningList(nI))
|
|
||||||
ColorNumberArrow(nI)
|
|
||||||
Next
|
Next
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
' Imposto flag di modifica
|
' Imposto flag di modifica
|
||||||
@@ -1389,6 +1648,12 @@ Public Class SplitPageUC
|
|||||||
' Se taglio con lama
|
' Se taglio con lama
|
||||||
If nMachiningType = MCH_MY.SAWING And
|
If nMachiningType = MCH_MY.SAWING And
|
||||||
(m_MachiningList(nI).m_bIsLine Or m_MachiningList(nI).m_dPrevAng > FL_ARC_ANG_MIN Or m_MachiningList(nI).m_sLay = NAME_ONPATH) Then
|
(m_MachiningList(nI).m_bIsLine Or m_MachiningList(nI).m_dPrevAng > FL_ARC_ANG_MIN Or m_MachiningList(nI).m_sLay = NAME_ONPATH) Then
|
||||||
|
|
||||||
|
If Not m_MachiningList(nI).m_bCanStartAll Then
|
||||||
|
EgtOutLog(" ⚠️ Il taglio non puo' essere allungato all'interno del pezzo ⚠️")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
' leggo il valore salvato nella geometria
|
' leggo il valore salvato nella geometria
|
||||||
Dim dOrigUsal As Double = 0
|
Dim dOrigUsal As Double = 0
|
||||||
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
|
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
|
||||||
@@ -1564,6 +1829,11 @@ Public Class SplitPageUC
|
|||||||
If nMachiningType = MCH_MY.SAWING And
|
If nMachiningType = MCH_MY.SAWING And
|
||||||
(m_MachiningList(nI).m_bIsLine Or m_MachiningList(nI).m_dNextAng > FL_ARC_ANG_MIN Or m_MachiningList(nI).m_sLay = NAME_ONPATH) Then
|
(m_MachiningList(nI).m_bIsLine Or m_MachiningList(nI).m_dNextAng > FL_ARC_ANG_MIN Or m_MachiningList(nI).m_sLay = NAME_ONPATH) Then
|
||||||
|
|
||||||
|
If Not m_MachiningList(nI).m_bCanEndAll Then
|
||||||
|
EgtOutLog(" ⚠️ Il taglio non puo' essere allungato all'interno del pezzo ⚠️")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
Dim dOrigUeal As Double = 0
|
Dim dOrigUeal As Double = 0
|
||||||
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
|
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
|
||||||
|
|
||||||
@@ -1782,7 +2052,7 @@ Public Class SplitPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub NextBtn_Click(sender As Object, e As RoutedEventArgs) Handles NextBtn.Click
|
Private Sub NextBtn_Click(sender As Object, e As RoutedEventArgs) Handles NextBtn.Click
|
||||||
' ------- VISUALIZZAZIONE -------
|
' ------- VISUALIZZAZIONE (navigazione tra le fasi) -------
|
||||||
If m_bShow Then
|
If m_bShow Then
|
||||||
Dim CurrDisposition As Integer = EgtGetPhaseDisposition(m_nCurrPhase)
|
Dim CurrDisposition As Integer = EgtGetPhaseDisposition(m_nCurrPhase)
|
||||||
' recupero l'operazione successiva
|
' recupero l'operazione successiva
|
||||||
@@ -1865,22 +2135,22 @@ Public Class SplitPageUC
|
|||||||
NumberDirectionMachining(nI)
|
NumberDirectionMachining(nI)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
' -------------------- Recupero le lavorazioni indicate come attive --------------------
|
' -------------------- Recupero le lavorazioni indicate come attive -- INIZIO --------------------
|
||||||
Dim ActiveMachLst As New List(Of Integer)
|
Dim ActiveMachLst As New List(Of Integer)
|
||||||
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
||||||
ActiveMachLst.Add(ItemSplitMach.Ind)
|
If ItemSplitMach.bIsActive Then ActiveMachLst.Add(ItemSplitMach.Ind)
|
||||||
Next
|
Next
|
||||||
' -------------------- Recupero le lavorazioni indicate come attive --------------------
|
' -------------------- Recupero le lavorazioni indicate come attive -- FINE --------------------
|
||||||
|
|
||||||
' Preparo la lista degli Item
|
' Preparo la lista degli Item
|
||||||
ShowMachiningList()
|
ShowMachiningList()
|
||||||
|
|
||||||
' -------------------- Riattivo le lavorazioni precedenti --------------------
|
' -------------------- Riattivo le lavorazioni precedenti -- INIZIO --------------------
|
||||||
|
|
||||||
For Each Item As SplitMach In m_MachiningList
|
For Each Item As SplitMach In m_MachiningList
|
||||||
|
' spengo tutte le lavorazioni disponibili
|
||||||
EgtSetInfo(Item.m_nId, INFO_MCH_USER_OFF, True)
|
EgtSetInfo(Item.m_nId, INFO_MCH_USER_OFF, True)
|
||||||
Next
|
Next
|
||||||
|
' riattivo solo quelle indicate come attive
|
||||||
For nIndex As Integer = 0 To ActiveMachLst.Count - 1
|
For nIndex As Integer = 0 To ActiveMachLst.Count - 1
|
||||||
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
||||||
If ItemSplitMach.Ind = ActiveMachLst(nIndex) Then
|
If ItemSplitMach.Ind = ActiveMachLst(nIndex) Then
|
||||||
@@ -1893,7 +2163,7 @@ Public Class SplitPageUC
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
' -------------------- Riattivo le lavorazioni precedenti --------------------
|
' -------------------- Riattivo le lavorazioni precedenti -- FINE --------------------
|
||||||
|
|
||||||
' Aggiorno visualizzazione
|
' Aggiorno visualizzazione
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
@@ -2091,6 +2361,33 @@ Public Class SplitPageUC
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub OnOffCut()
|
||||||
|
If MachiningLsBx.SelectedItems.Count = 1 Then
|
||||||
|
Dim x As NameIdLsBxItem = DirectCast(MachiningLsBx.SelectedItems(0), NameIdLsBxItem)
|
||||||
|
Dim nI As Integer = x.Ind
|
||||||
|
If m_MachiningList(nI).m_bEnabled Then
|
||||||
|
m_MachiningList(nI).m_bEnabled = False
|
||||||
|
x.bIsActive = False
|
||||||
|
Else
|
||||||
|
m_MachiningList(nI).m_bEnabled = True
|
||||||
|
x.bIsActive = True
|
||||||
|
End If
|
||||||
|
ColorMachining(m_MachiningList(nI))
|
||||||
|
ColorNumberArrow(nI)
|
||||||
|
EgtDraw()
|
||||||
|
' Imposto flag di modifica
|
||||||
|
m_bModified = True
|
||||||
|
' recupero l'elenco degli elementi selezionati
|
||||||
|
Dim ItemList As New List(Of NameIdLsBxItem)
|
||||||
|
For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems
|
||||||
|
ItemList.Add(Item)
|
||||||
|
Next
|
||||||
|
VerifyHomogenousMachining(ItemList)
|
||||||
|
' Abilitazione bottone Next
|
||||||
|
EnableButtons()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub VerifyHomogenousMachining(ItemList As List(Of NameIdLsBxItem))
|
Private Sub VerifyHomogenousMachining(ItemList As List(Of NameIdLsBxItem))
|
||||||
If IsNothing(ItemList) OrElse ItemList.Count = 0 Then
|
If IsNothing(ItemList) OrElse ItemList.Count = 0 Then
|
||||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
@@ -2272,6 +2569,11 @@ Public Class SplitPageUC
|
|||||||
' Aggiungo a numero info con identificativo della lavorazione e viceversa
|
' Aggiungo a numero info con identificativo della lavorazione e viceversa
|
||||||
EgtSetInfo(nNbrId, "MId", m_MachiningList(nI).m_nId)
|
EgtSetInfo(nNbrId, "MId", m_MachiningList(nI).m_nId)
|
||||||
EgtSetInfo(m_MachiningList(nI).m_nId, "NbrId", nNbrId)
|
EgtSetInfo(m_MachiningList(nI).m_nId, "NbrId", nNbrId)
|
||||||
|
If Not LayNbArrTgBtn.IsChecked Then
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.OFF)
|
||||||
|
Else
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
' Se taglio con lama, metto la direzione accanto al numero
|
' Se taglio con lama, metto la direzione accanto al numero
|
||||||
If m_MachiningList(nI).m_nType = MCH_OY.SAWING Then
|
If m_MachiningList(nI).m_nType = MCH_OY.SAWING Then
|
||||||
@@ -2283,6 +2585,11 @@ Public Class SplitPageUC
|
|||||||
' Aggiungo a freccia info con identificativo della lavorazione e viceversa
|
' Aggiungo a freccia info con identificativo della lavorazione e viceversa
|
||||||
EgtSetInfo(nArrId, "MId", m_MachiningList(nI).m_nId)
|
EgtSetInfo(nArrId, "MId", m_MachiningList(nI).m_nId)
|
||||||
EgtSetInfo(m_MachiningList(nI).m_nId, "ArrId", nArrId)
|
EgtSetInfo(m_MachiningList(nI).m_nId, "ArrId", nArrId)
|
||||||
|
If Not LayNbArrTgBtn.IsChecked Then
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.OFF)
|
||||||
|
Else
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
m_MachiningList(nI).m_nArrId = GDB_ID.NULL
|
m_MachiningList(nI).m_nArrId = GDB_ID.NULL
|
||||||
End If
|
End If
|
||||||
@@ -2399,6 +2706,27 @@ Public Class SplitPageUC
|
|||||||
EgtResetMark(nNbrId)
|
EgtResetMark(nNbrId)
|
||||||
EgtResetMark(nArrId)
|
EgtResetMark(nArrId)
|
||||||
End If
|
End If
|
||||||
|
If Not LayNbArrTgBtn.IsChecked And Not bMark Then
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.OFF)
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.OFF)
|
||||||
|
Else
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.ON_)
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub StatusOffNumbArrow(Status As GDB_ST)
|
||||||
|
For Each Item As SplitMach In m_MachiningList
|
||||||
|
Dim nOperId As Integer = Item.m_nId
|
||||||
|
Dim nNbrId As Integer = Item.m_nNbrId
|
||||||
|
Dim nArrId As Integer = Item.m_nArrId
|
||||||
|
Dim nInd As Integer = m_MachiningList.IndexOf(Item)
|
||||||
|
If nInd >= 0 AndAlso nInd < m_ItemList.Count AndAlso Not m_ItemList(nInd).IsSelected Then
|
||||||
|
EgtSetStatus(nNbrId, Status)
|
||||||
|
EgtSetStatus(nArrId, Status)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ColorNumberArrow(nI As Integer)
|
Private Sub ColorNumberArrow(nI As Integer)
|
||||||
@@ -2489,6 +2817,10 @@ Public Class SplitPageUC
|
|||||||
Private m_sName As String
|
Private m_sName As String
|
||||||
Private m_bIsActive As Boolean
|
Private m_bIsActive As Boolean
|
||||||
Private m_nType As Integer
|
Private m_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
|
Private m_IsSelected As Boolean
|
||||||
|
|
||||||
@@ -2513,6 +2845,31 @@ Public Class SplitPageUC
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
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
|
Public Property bIsActive As Boolean
|
||||||
Get
|
Get
|
||||||
Return m_bIsActive
|
Return m_bIsActive
|
||||||
@@ -2543,11 +2900,34 @@ Public Class SplitPageUC
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
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)
|
Sub New(Name As String, Ind As Integer, bIsActive As Boolean, nType As Integer)
|
||||||
Me.m_sName = Name
|
Me.m_sName = Name
|
||||||
Me.m_nInd = Ind
|
Me.m_nInd = Ind
|
||||||
Me.m_bIsActive = bIsActive
|
Me.m_bIsActive = bIsActive
|
||||||
Me.m_nType = nType
|
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
|
End Sub
|
||||||
|
|
||||||
Public Sub NotifyPropertyChanged(propName As String)
|
Public Sub NotifyPropertyChanged(propName As String)
|
||||||
|
|||||||
@@ -157,6 +157,8 @@ Module ConstGen
|
|||||||
' Info per identificazione gruppo pezzi
|
' Info per identificazione gruppo pezzi
|
||||||
Public Const INFO_REFGROUP As String = "RefGroup"
|
Public Const INFO_REFGROUP As String = "RefGroup"
|
||||||
Public Const INFO_COUNTERLY As String = "CounterPz"
|
Public Const INFO_COUNTERLY As String = "CounterPz"
|
||||||
|
Public Const INFO_PARKIND As String = "ParkInd"
|
||||||
|
Public Const INFO_PARKSTATUS As String = "ParkStatus"
|
||||||
|
|
||||||
' Contrassegno di progetto OmagCut
|
' Contrassegno di progetto OmagCut
|
||||||
Public Const NAME_PROJMARK As String = "OmagCut"
|
Public Const NAME_PROJMARK As String = "OmagCut"
|
||||||
@@ -223,6 +225,8 @@ Module ConstGen
|
|||||||
Public Const INFO_DEPTH2 As String = "Depth2"
|
Public Const INFO_DEPTH2 As String = "Depth2"
|
||||||
Public Const INFO_AGG2 As String = "Agg2"
|
Public Const INFO_AGG2 As String = "Agg2"
|
||||||
Public Const INFO_ROUNDOFF As String = "RoundOff"
|
Public Const INFO_ROUNDOFF As String = "RoundOff"
|
||||||
|
Public Const INFO_DIRECTCUT As String = "DirectCut"
|
||||||
|
Public Const INFO_STEP_TYPE As String = "StepType"
|
||||||
' Info in entità da tagliare per taglio ristretto
|
' Info in entità da tagliare per taglio ristretto
|
||||||
Public Const INFO_STRICT As String = "Strict"
|
Public Const INFO_STRICT As String = "Strict"
|
||||||
' Info in entità da tagliare per angolo di lato e tallone
|
' Info in entità da tagliare per angolo di lato e tallone
|
||||||
@@ -320,6 +324,8 @@ Module ConstGen
|
|||||||
Public Const INFO_START As String = "Start"
|
Public Const INFO_START As String = "Start"
|
||||||
' Nome dei tagli diretti inseriti in fase di Splitting
|
' Nome dei tagli diretti inseriti in fase di Splitting
|
||||||
Public Const SPLIT_CUT As String = "SplitCut"
|
Public Const SPLIT_CUT As String = "SplitCut"
|
||||||
|
' Forzo specifica lavorazione
|
||||||
|
Public Const DEF_MACHINING As String = "Def_Machining"
|
||||||
|
|
||||||
' Nome di pezzo che è una cornice
|
' Nome di pezzo che è una cornice
|
||||||
Public Const NAME_FRAME As String = "Frame"
|
Public Const NAME_FRAME As String = "Frame"
|
||||||
|
|||||||
@@ -54,6 +54,9 @@ Module ConstIni
|
|||||||
Public Const K_FRACTIONPATTERN As String = "FractionPattern"
|
Public Const K_FRACTIONPATTERN As String = "FractionPattern"
|
||||||
Public Const K_PRECISION As String = "Precision"
|
Public Const K_PRECISION As String = "Precision"
|
||||||
Public Const K_QUITDRAWPAGE As String = "QuitDrawPage"
|
Public Const K_QUITDRAWPAGE As String = "QuitDrawPage"
|
||||||
|
Public Const K_SHOWNBARROW As String = "ShowNbArrow"
|
||||||
|
Public Const K_SHOWEXPIREASSITANCE As String = "ShowExpireAssistance"
|
||||||
|
Public Const K_ENABLEDXFPARK As String = "EnableDXFPark"
|
||||||
|
|
||||||
Public Const S_LANGUAGES As String = "Languages"
|
Public Const S_LANGUAGES As String = "Languages"
|
||||||
Public Const K_LANGUAGE As String = "Language"
|
Public Const K_LANGUAGE As String = "Language"
|
||||||
@@ -87,6 +90,7 @@ Module ConstIni
|
|||||||
Public Const K_TEXMAXLINPIX As String = "TextureMaxLinPixels"
|
Public Const K_TEXMAXLINPIX As String = "TextureMaxLinPixels"
|
||||||
Public Const K_ZOOMWIN As String = "ZoomWin"
|
Public Const K_ZOOMWIN As String = "ZoomWin"
|
||||||
Public Const K_DISTLINE As String = "DistLine"
|
Public Const K_DISTLINE As String = "DistLine"
|
||||||
|
Public Const K_ORTOGRAPHIC As String = "OrtoGraphic"
|
||||||
|
|
||||||
Public Const S_ALZFRONT As String = "Alz&Front"
|
Public Const S_ALZFRONT As String = "Alz&Front"
|
||||||
Public Const K_ALZFRONT As String = "Alz&Front"
|
Public Const K_ALZFRONT As String = "Alz&Front"
|
||||||
@@ -208,6 +212,7 @@ Module ConstIni
|
|||||||
Public Const K_OFFSXY As String = "OffsXY"
|
Public Const K_OFFSXY As String = "OffsXY"
|
||||||
Public Const K_OFFSYY As String = "OffsYY"
|
Public Const K_OFFSYY As String = "OffsYY"
|
||||||
Public Const K_OFFSXINTERY As String = "OffsYInterY"
|
Public Const K_OFFSXINTERY As String = "OffsYInterY"
|
||||||
|
Public Const K_OFFSXINTERYSAWTH As String = "OffsYInterYSawTh"
|
||||||
Public Const K_STARTTRIM As String = "StartTrim"
|
Public Const K_STARTTRIM As String = "StartTrim"
|
||||||
Public Const K_ENDTRIM As String = "EndTrim"
|
Public Const K_ENDTRIM As String = "EndTrim"
|
||||||
Public Const K_OTHERSIDE As String = "OtherSide"
|
Public Const K_OTHERSIDE As String = "OtherSide"
|
||||||
@@ -232,10 +237,13 @@ Module ConstIni
|
|||||||
Public Const K_OTHERREFTABX As String = "OtherRefTabX"
|
Public Const K_OTHERREFTABX As String = "OtherRefTabX"
|
||||||
Public Const K_OTHERREFTABY As String = "OtherRefTabY"
|
Public Const K_OTHERREFTABY As String = "OtherRefTabY"
|
||||||
Public Const K_OTHERREFTABPOS As String = "OtherRefTabPos"
|
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 S_RAWMOVE As String = "RawMove"
|
||||||
Public Const K_RAWSTEP As String = "Step"
|
Public Const K_RAWSTEP As String = "Step"
|
||||||
|
Public Const K_EXTRASTEP As String = "ExtraStep"
|
||||||
Public Const K_RAWROTATION As String = "Rotation"
|
Public Const K_RAWROTATION As String = "Rotation"
|
||||||
Public Const K_PERPENDICULAR As String = "Perpendicular"
|
Public Const K_PERPENDICULAR As String = "Perpendicular"
|
||||||
|
|
||||||
@@ -287,6 +295,8 @@ Module ConstIni
|
|||||||
Public Const S_VEINMATCHING As String = "VeinMatching"
|
Public Const S_VEINMATCHING As String = "VeinMatching"
|
||||||
Public Const K_VEINMA_ENABLE As String = "Enable"
|
Public Const K_VEINMA_ENABLE As String = "Enable"
|
||||||
Public Const K_VEINMA_PLACE As String = "WinPlace"
|
Public Const K_VEINMA_PLACE As String = "WinPlace"
|
||||||
|
Public Const K_VEINMA_WIDTH As String = "Width"
|
||||||
|
Public Const K_VEINMA_HEIGHT As String = "Height"
|
||||||
|
|
||||||
Public Const S_FASTGRID As String = "FastGrid"
|
Public Const S_FASTGRID As String = "FastGrid"
|
||||||
Public Const K_FG_ENABLE As String = "FGEnable"
|
Public Const K_FG_ENABLE As String = "FGEnable"
|
||||||
@@ -333,6 +343,7 @@ Module ConstIni
|
|||||||
Public Const K_DC_FLATT_HEADSIDE As String = "FlattHeadSide"
|
Public Const K_DC_FLATT_HEADSIDE As String = "FlattHeadSide"
|
||||||
Public Const K_DC_FLATT_MACHTYPE As String = "FlattMachType"
|
Public Const K_DC_FLATT_MACHTYPE As String = "FlattMachType"
|
||||||
Public Const K_DC_FLATT_ROTLOCK As String = "FlattRotLock"
|
Public Const K_DC_FLATT_ROTLOCK As String = "FlattRotLock"
|
||||||
|
Public Const K_DC_FLAT_CHAINEDPATH As String = "ChainedPath"
|
||||||
Public Const K_DC_FLATT_POSX As String = "FlattPosX"
|
Public Const K_DC_FLATT_POSX As String = "FlattPosX"
|
||||||
Public Const K_DC_FLATT_POSY As String = "FlattPosY"
|
Public Const K_DC_FLATT_POSY As String = "FlattPosY"
|
||||||
Public Const K_DC_POLISH_NAME As String = "PolishName"
|
Public Const K_DC_POLISH_NAME As String = "PolishName"
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
Public Const K_A10ID As String = "A10Id"
|
Public Const K_A10ID As String = "A10Id"
|
||||||
Public Const K_DELTA_C As String = "DeltaC"
|
Public Const K_DELTA_C As String = "DeltaC"
|
||||||
Public Const K_ININCHES As String = "InInches"
|
Public Const K_ININCHES As String = "InInches"
|
||||||
|
Public Const K_CPOS As String = "CPos"
|
||||||
|
|
||||||
Public Const S_NCSIEMENS As String = "NcSiemens"
|
Public Const S_NCSIEMENS As String = "NcSiemens"
|
||||||
Public Const K_COMM_NAME As String = "CommName"
|
Public Const K_COMM_NAME As String = "CommName"
|
||||||
@@ -129,6 +130,7 @@
|
|||||||
Public Const K_SPOTLIGHT1 As String = "SpotLight1"
|
Public Const K_SPOTLIGHT1 As String = "SpotLight1"
|
||||||
Public Const K_SPOTLIGHT2 As String = "SpotLight2"
|
Public Const K_SPOTLIGHT2 As String = "SpotLight2"
|
||||||
Public Const K_NAXES As String = "nAxes"
|
Public Const K_NAXES As String = "nAxes"
|
||||||
|
Public Const K_RESETSTATUS As String = "ResetStatus"
|
||||||
' Nuove variabili
|
' Nuove variabili
|
||||||
Public Const K_SPEEDHOLD As String = "SpeedHold"
|
Public Const K_SPEEDHOLD As String = "SpeedHold"
|
||||||
Public Const K_XYJOG As String = "XYJog"
|
Public Const K_XYJOG As String = "XYJog"
|
||||||
@@ -179,6 +181,12 @@
|
|||||||
Public Const K_PHOTO_OFFSETY As String = "OffsetY"
|
Public Const K_PHOTO_OFFSETY As String = "OffsetY"
|
||||||
Public Const K_PHOTO_TAB2_OFFSETX As String = "Tab2OffsetX"
|
Public Const K_PHOTO_TAB2_OFFSETX As String = "Tab2OffsetX"
|
||||||
Public Const K_PHOTO_TAB2_OFFSETY As String = "Tab2OffsetY"
|
Public Const K_PHOTO_TAB2_OFFSETY As String = "Tab2OffsetY"
|
||||||
|
Public Const K_PHOTO_HQ_OFFSETX As String = "HQOffsetX"
|
||||||
|
Public Const K_PHOTO_HQ_OFFSETY As String = "HQOffsetY"
|
||||||
|
Public Const K_CAMERA_DIRECT_CMD As String = "CameraDirectCmd"
|
||||||
|
Public Const K_CAMERA_STATE_VAR As String = "CameraStateVar"
|
||||||
|
Public Const K_ENABELE_GOHOME_FOR_PHOTO As String = "EnableGoHomeForPhoto"
|
||||||
|
Public Const K_PENDIG_TIME_FOR_PHOTO As String = "PendigTimeForPhoto"
|
||||||
|
|
||||||
Public Const S_TOOLS As String = "Tools"
|
Public Const S_TOOLS As String = "Tools"
|
||||||
Public Const K_DRILLBIT As String = "Drillbit"
|
Public Const K_DRILLBIT As String = "Drillbit"
|
||||||
@@ -228,6 +236,7 @@
|
|||||||
Public Const K_MACH_MILLING_ON_SINKS As String = "MillingOnSinks"
|
Public Const K_MACH_MILLING_ON_SINKS As String = "MillingOnSinks"
|
||||||
Public Const K_MACH_MILLING_SHORTENING As String = "MillingShortening"
|
Public Const K_MACH_MILLING_SHORTENING As String = "MillingShortening"
|
||||||
Public Const K_MACH_ENGRAVING_WITHMILL As String = "EngravingWithMill"
|
Public Const K_MACH_ENGRAVING_WITHMILL As String = "EngravingWithMill"
|
||||||
|
Public Const K_MACH_STARTCENERTOOLPATH As String = "StartCenterToolPath"
|
||||||
Public Const K_MACH_ENGRAVING_DEPTH As String = "EngravingDepth"
|
Public Const K_MACH_ENGRAVING_DEPTH As String = "EngravingDepth"
|
||||||
Public Const K_MACH_ENGRAVING_WIDTH As String = "EngravingWidth"
|
Public Const K_MACH_ENGRAVING_WIDTH As String = "EngravingWidth"
|
||||||
Public Const K_MACH_NEST_ALIGNED As String = "Aligned"
|
Public Const K_MACH_NEST_ALIGNED As String = "Aligned"
|
||||||
@@ -245,7 +254,7 @@
|
|||||||
Public Const K_MIN_RADIUSWJ As String = "MinRadiusWJ"
|
Public Const K_MIN_RADIUSWJ As String = "MinRadiusWJ"
|
||||||
Public Const K_MACH_DRILLINGWJ_ON_CORNERS As String = "DrillingWJOnCorners"
|
Public Const K_MACH_DRILLINGWJ_ON_CORNERS As String = "DrillingWJOnCorners"
|
||||||
Public Const K_MACH_RECTIFICATION_ON_SUBSQUARE As String = "RectificationSubSqWJ"
|
Public Const K_MACH_RECTIFICATION_ON_SUBSQUARE As String = "RectificationSubSqWJ"
|
||||||
' DrillMillC90
|
Public Const K_MACH_DRILL_MILL_C90 As String = "DrillMillC90"
|
||||||
' CutLongDxSx
|
' CutLongDxSx
|
||||||
' AngRotMultiCut
|
' AngRotMultiCut
|
||||||
' MinDistHeadsMultiCut
|
' MinDistHeadsMultiCut
|
||||||
@@ -304,6 +313,7 @@
|
|||||||
|
|
||||||
Public Const S_MACH_MACH As String = "Mach"
|
Public Const S_MACH_MACH As String = "Mach"
|
||||||
Public Const K_CURRSAW As String = "CurrSaw"
|
Public Const K_CURRSAW As String = "CurrSaw"
|
||||||
|
Public Const K_CURRSAWTILTED As String = "CurrSawTilted"
|
||||||
Public Const K_CURRDRILL As String = "CurrDrill"
|
Public Const K_CURRDRILL As String = "CurrDrill"
|
||||||
Public Const K_CURRMILL As String = "CurrMill"
|
Public Const K_CURRMILL As String = "CurrMill"
|
||||||
Public Const K_CURRMILLNOTIP As String = "CurrMillNoTip"
|
Public Const K_CURRMILLNOTIP As String = "CurrMillNoTip"
|
||||||
@@ -311,6 +321,8 @@
|
|||||||
Public Const K_CURRDRIPDRILL As String = "CurrDripDrill"
|
Public Const K_CURRDRIPDRILL As String = "CurrDripDrill"
|
||||||
Public Const K_CURRWATERJET As String = "CurrWaterJet"
|
Public Const K_CURRWATERJET As String = "CurrWaterJet"
|
||||||
Public Const K_CURRSAWING As String = "CurrSawing"
|
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_CURRDRILLING As String = "CurrDrilling"
|
||||||
Public Const K_CURRMILLING As String = "CurrMilling"
|
Public Const K_CURRMILLING As String = "CurrMilling"
|
||||||
Public Const K_CURRPOCKETING As String = "CurrPocketing"
|
Public Const K_CURRPOCKETING As String = "CurrPocketing"
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ Public Class ControlsDirectCutUC
|
|||||||
FlatteningCut
|
FlatteningCut
|
||||||
Polishing
|
Polishing
|
||||||
CopyTemplate
|
CopyTemplate
|
||||||
SawTest
|
|
||||||
SingleCutAuto
|
SingleCutAuto
|
||||||
SingleDrill
|
SingleDrill
|
||||||
Squaring
|
Squaring
|
||||||
@@ -183,6 +182,9 @@ Public Class ControlsDirectCutUC
|
|||||||
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
|
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
|
||||||
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
|
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
|
||||||
End If
|
End If
|
||||||
|
If Not bSaw Then
|
||||||
|
EgtOutLog(" WARNING! Impossible to get point from SAW, there isn't SAW or SAWING! It's available only by DRAW")
|
||||||
|
End If
|
||||||
m_SingleCut.SetEnableParam(bSaw)
|
m_SingleCut.SetEnableParam(bSaw)
|
||||||
m_MultipleCut.SetEnableParam(bSaw)
|
m_MultipleCut.SetEnableParam(bSaw)
|
||||||
m_GridCut.SetEnableParam(bSaw)
|
m_GridCut.SetEnableParam(bSaw)
|
||||||
|
|||||||
@@ -99,6 +99,9 @@ Public Class ControlsDirectCutUC1
|
|||||||
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
|
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
|
||||||
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
|
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
|
||||||
End If
|
End If
|
||||||
|
If Not bSaw Then
|
||||||
|
EgtOutLog(" WARNING! Impossible to get point from SAW, there isn't SAW or SAWING! It's available only by DRAW")
|
||||||
|
End If
|
||||||
'm_SingleCut.SetEnableParam(bSaw)
|
'm_SingleCut.SetEnableParam(bSaw)
|
||||||
'm_MultipleCut.SetEnableParam(bSaw)
|
'm_MultipleCut.SetEnableParam(bSaw)
|
||||||
'm_GridCut.SetEnableParam(bSaw)
|
'm_GridCut.SetEnableParam(bSaw)
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ Public Class ControlsMachineButtonUC
|
|||||||
Friend m_CN As CN_generico
|
Friend m_CN As CN_generico
|
||||||
Private m_bFirst As Boolean = True
|
Private m_bFirst As Boolean = True
|
||||||
|
|
||||||
|
' visualizzo l'elenco degli elementi della pagina sono al primo avvio
|
||||||
|
Friend Shared m_OutLogTypeButton As Boolean = True
|
||||||
|
|
||||||
' Creazione converter da String a ImageSource
|
' Creazione converter da String a ImageSource
|
||||||
Dim ImageConverter As New ImageSourceConverter
|
Dim ImageConverter As New ImageSourceConverter
|
||||||
|
|
||||||
@@ -72,6 +75,12 @@ Public Class ControlsMachineButtonUC
|
|||||||
If Not IsNothing(ButtonToAdd) Then m_ButtonList.Add(ButtonToAdd)
|
If Not IsNothing(ButtonToAdd) Then m_ButtonList.Add(ButtonToAdd)
|
||||||
End If
|
End If
|
||||||
End While
|
End While
|
||||||
|
|
||||||
|
For Each MachineButton As MachineButton In m_ButtonList
|
||||||
|
GetTypeButton(MachineButton)
|
||||||
|
Next
|
||||||
|
m_OutLogTypeButton = False
|
||||||
|
|
||||||
NotifyPropertyChanged("ButtonList")
|
NotifyPropertyChanged("ButtonList")
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
@@ -81,6 +90,22 @@ Public Class ControlsMachineButtonUC
|
|||||||
' i segeunti metodi notificano il cambiamento di stato di specifici bottoni
|
' i segeunti metodi notificano il cambiamento di stato di specifici bottoni
|
||||||
'-------------------------------------------------------------------------------
|
'-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Friend Sub GetTypeButton(CurrMachineButton As MachineButton)
|
||||||
|
If Not m_OutLogTypeButton Then Return
|
||||||
|
Dim BtnType As Type = CurrMachineButton.GetType
|
||||||
|
If BtnType Is GetType(NoStateButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(0) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(TwoStateButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(1) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(ThreeStateButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(2) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(DoubleCommandButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(3) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(PressedCommandButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(4) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Friend Sub SpindleStateChanged(SpindleState As Boolean)
|
Friend Sub SpindleStateChanged(SpindleState As Boolean)
|
||||||
Dim SpindleButton As TwoStateButton = Nothing
|
Dim SpindleButton As TwoStateButton = Nothing
|
||||||
For Each MachineButton As MachineButton In m_ButtonList
|
For Each MachineButton As MachineButton In m_ButtonList
|
||||||
@@ -730,8 +755,17 @@ Public MustInherit Class MachineButton
|
|||||||
EgtLuaSetGlobNumVar("CMD.R1", dR1)
|
EgtLuaSetGlobNumVar("CMD.R1", dR1)
|
||||||
EgtLuaSetGlobNumVar("CMD.R2", dR2)
|
EgtLuaSetGlobNumVar("CMD.R2", dR2)
|
||||||
EgtLuaSetGlobBoolVar("CMD.INCHES", m_MainWindow.m_CNCommunication.GetMachineInInches())
|
EgtLuaSetGlobBoolVar("CMD.INCHES", m_MainWindow.m_CNCommunication.GetMachineInInches())
|
||||||
|
|
||||||
|
' versione 2.6h1
|
||||||
|
Dim sCurrTable As String = String.Empty
|
||||||
|
Dim nCuttTable As Integer = 1
|
||||||
|
EgtGetTableName(sCurrTable)
|
||||||
|
If sCurrTable <> "MainTab" Then nCuttTable = 2
|
||||||
|
EgtLuaSetGlobIntVar("CMD.TABLE", nCuttTable)
|
||||||
|
|
||||||
EgtLuaCallFunction("CmdString")
|
EgtLuaCallFunction("CmdString")
|
||||||
' Leggo variabili
|
|
||||||
|
' Leggo variabili da file Lua
|
||||||
CmdString = String.Empty
|
CmdString = String.Empty
|
||||||
EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
|
EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
|
||||||
b2Start = False
|
b2Start = False
|
||||||
@@ -788,11 +822,26 @@ Public Class TwoStateButton
|
|||||||
Set(value As Boolean)
|
Set(value As Boolean)
|
||||||
' accendo il comando, anche se dovrei aspettare di leggere lo stato da PLC
|
' accendo il comando, anche se dovrei aspettare di leggere lo stato da PLC
|
||||||
m_IsChecked = value
|
m_IsChecked = value
|
||||||
|
Dim sLuaScriptFile As String = m_MainWindow.m_CurrentMachine.sMachDir & "\DirectCmd\"
|
||||||
If value Then
|
If value Then
|
||||||
|
sLuaScriptFile &= TLuaScriptName
|
||||||
ExecuteMDICommand(TLuaScriptName)
|
ExecuteMDICommand(TLuaScriptName)
|
||||||
Else
|
Else
|
||||||
|
sLuaScriptFile &= FLuaScriptName
|
||||||
ExecuteMDICommand(FLuaScriptName)
|
ExecuteMDICommand(FLuaScriptName)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
Dim IsPressedShiftKey As Boolean = False
|
||||||
|
If Keyboard.Modifiers And ModifierKeys.Shift And
|
||||||
|
GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0, m_MainWindow.GetIniFile()) > 4 Then IsPressedShiftKey = True
|
||||||
|
' procedo all'apertura del file CadCut1 appena generato (solo se generazione corretta)
|
||||||
|
If IsPressedShiftKey Then
|
||||||
|
Try
|
||||||
|
Process.Start("Notepad.exe", sLuaScriptFile)
|
||||||
|
Catch ex As Exception
|
||||||
|
EgtOutLog(ex.ToString)
|
||||||
|
End Try
|
||||||
|
End If
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
Friend Sub SetIsChecked(value As Boolean)
|
Friend Sub SetIsChecked(value As Boolean)
|
||||||
|
|||||||
@@ -166,6 +166,15 @@ Public Class CopyTemplateUC
|
|||||||
Private Sub Point1Btn_Click(sender As Object, e As RoutedEventArgs) Handles Point1Btn.Click
|
Private Sub Point1Btn_Click(sender As Object, e As RoutedEventArgs) Handles Point1Btn.Click
|
||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bTabOk Then Return
|
If Not m_bTabOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
' Ricavo dati lama corrente
|
||||||
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
If bIsMultiCut Then
|
||||||
|
EgtSetCalcTool(sSaw, "H1", 1)
|
||||||
|
End If
|
||||||
|
|
||||||
' Se acquisizione lama o laser
|
' Se acquisizione lama o laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
@@ -173,14 +182,19 @@ Public Class CopyTemplateUC
|
|||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
' Ricavo dati lama corrente
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
' Ora imposto la lama corrente
|
' Ora imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -188,7 +202,7 @@ Public Class CopyTemplateUC
|
|||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
End If
|
End If
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
@@ -196,8 +210,6 @@ Public Class CopyTemplateUC
|
|||||||
Else
|
Else
|
||||||
' Verifico presenza punto da mouse
|
' Verifico presenza punto da mouse
|
||||||
If Not m_bMouseOk Then Return
|
If Not m_bMouseOk Then Return
|
||||||
' Ricavo dati lama corrente
|
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
|
||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
' Assegno punto selezionato nel disegno a m_ptTipP1
|
' Assegno punto selezionato nel disegno a m_ptTipP1
|
||||||
|
|||||||
@@ -146,6 +146,9 @@ Public Class DirectCutPageUC
|
|||||||
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
|
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
|
||||||
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
|
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
|
||||||
End If
|
End If
|
||||||
|
If Not bSaw Then
|
||||||
|
EgtOutLog(" WARNING! Impossible to get point from SAW, there isn't SAW or SAWING! It's available only by DRAW")
|
||||||
|
End If
|
||||||
m_ControlsDirectCutUC.m_SingleCut.SetEnableParam(bSaw)
|
m_ControlsDirectCutUC.m_SingleCut.SetEnableParam(bSaw)
|
||||||
m_ControlsDirectCutUC.m_MultipleCut.SetEnableParam(bSaw)
|
m_ControlsDirectCutUC.m_MultipleCut.SetEnableParam(bSaw)
|
||||||
m_ControlsDirectCutUC.m_GridCut.SetEnableParam(bSaw)
|
m_ControlsDirectCutUC.m_GridCut.SetEnableParam(bSaw)
|
||||||
@@ -479,7 +482,7 @@ Public Class DirectCutPageUC
|
|||||||
|
|
||||||
Private Sub ManualModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualModeBtn.Click
|
Private Sub ManualModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualModeBtn.Click
|
||||||
' Imposto modalità manuale della macchina
|
' Imposto modalità manuale della macchina
|
||||||
Dim nResult As Short = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
Dim nResult As Short = m_MainWindow.m_DirectCutPageUC.m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
@@ -7,142 +7,185 @@
|
|||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="597.3" d:DesignWidth="256">
|
d:DesignHeight="597.3" d:DesignWidth="256">
|
||||||
|
|
||||||
<!--<Border CornerRadius="{StaticResource Page_CornerRadius}" Background="{DynamicResource OmagCut_LightGray}">-->
|
<!--<Border CornerRadius="{StaticResource Page_CornerRadius}" Background="{DynamicResource OmagCut_LightGray}">-->
|
||||||
<Border Style="{DynamicResource OmagCut_DirectCutPageBorder}">
|
<Border Style="{DynamicResource OmagCut_DirectCutPageBorder}">
|
||||||
|
|
||||||
<!-- Definizione della Grid FlatteningCut -->
|
<!-- Definizione della Grid FlatteningCut -->
|
||||||
<Grid Name="FlatteningCutGrid" >
|
<Grid Name="FlatteningCutGrid" >
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="2*"/>
|
<ColumnDefinition Width="2*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Grid Grid.Row="0" Grid.ColumnSpan="2">
|
<Grid Grid.Row="0" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<ToggleButton Name="Point1Btn" Grid.Column="0"
|
<ToggleButton Name="Point1Btn" Grid.Column="0"
|
||||||
Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||||
<Image Source="{DynamicResource Acquisisci-P1Img}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
<Image Source="{DynamicResource Acquisisci-P1Img}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|
||||||
<ToggleButton Name="Point2Btn" Grid.Column="1"
|
<ToggleButton Name="Point2Btn" Grid.Column="1"
|
||||||
Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||||
<Image Source="{DynamicResource Acquisisci-P2Img}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
<Image Source="{DynamicResource Acquisisci-P2Img}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<ComboBox Name="PointModeCmBx" Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_ComboBox}" Margin="6,0,6,0">
|
|
||||||
<ComboBox.ItemTemplate>
|
|
||||||
<DataTemplate>
|
|
||||||
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
|
||||||
</DataTemplate>
|
|
||||||
</ComboBox.ItemTemplate>
|
|
||||||
</ComboBox>
|
|
||||||
|
|
||||||
<TextBlock Name="DepthTxBl" Grid.Column="0" Grid.Row="2"
|
<ScrollViewer VerticalScrollBarVisibility="Visible" Visibility="Visible"
|
||||||
|
Grid.Row="1" Grid.RowSpan="11" Grid.ColumnSpan="2">
|
||||||
|
|
||||||
|
<Grid Name="DatiTaglioGrid" >
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="0.1"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="40"/>
|
||||||
|
<RowDefinition Height="0.1"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<ComboBox Name="PointModeCmBx" Grid.Row="1" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_ComboBox}" Margin="6,0,6,0">
|
||||||
|
<ComboBox.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
</ComboBox.ItemTemplate>
|
||||||
|
</ComboBox>
|
||||||
|
|
||||||
|
<TextBlock Name="DepthTxBl" Grid.Column="0" Grid.Row="2"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="DepthTxBx" Grid.Column="1" Grid.Row="2" Margin="0,0,6,0"
|
<EgtWPFLib:EgtTextBox Name="DepthTxBx" Grid.Column="1" Grid.Row="2" Margin="0,0,6,0"
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
|
||||||
<TextBlock Name="DirectionTxBl" Grid.Column="0" Grid.Row="3"
|
<TextBlock Name="DirectionTxBl" Grid.Column="0" Grid.Row="3"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="DirectionTxBx" Grid.Column="1" Grid.Row="3" Margin="0,0,6,0" IsLength="False"
|
<EgtWPFLib:EgtTextBox Name="DirectionTxBx" Grid.Column="1" Grid.Row="3" Margin="0,0,6,0" IsLength="False"
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
|
||||||
<TextBlock Name="LenghtTxBl" Grid.Column="0" Grid.Row="4"
|
<TextBlock Name="LenghtTxBl" Grid.Column="0" Grid.Row="4"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="LenghtTxBx" Grid.Column="1" Grid.Row="4" Margin="0,0,6,0"
|
<EgtWPFLib:EgtTextBox Name="LenghtTxBx" Grid.Column="1" Grid.Row="4" Margin="0,0,6,0"
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
|
||||||
<TextBlock Name="WidthTxBl" Grid.Column="0" Grid.Row="5"
|
<TextBlock Name="WidthTxBl" Grid.Column="0" Grid.Row="5"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="WidthTxBx" Grid.Column="1" Grid.Row="5" Margin="0,0,6,0"
|
<EgtWPFLib:EgtTextBox Name="WidthTxBx" Grid.Column="1" Grid.Row="5" Margin="0,0,6,0"
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
|
||||||
<TextBlock Name="OverlapTxBl" Grid.Column="0" Grid.Row="6"
|
<TextBlock Name="OverlapTxBl" Grid.Column="0" Grid.Row="6"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="OverlapTxBx" Grid.Column="1" Grid.Row="6" Margin="0,0,6,0"
|
<EgtWPFLib:EgtTextBox Name="OverlapTxBx" Grid.Column="1" Grid.Row="6" Margin="0,0,6,0"
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
|
||||||
<TextBlock Name="ZReleasedTxBl" Grid.Column="0" Grid.Row="7"
|
<TextBlock Name="ZReleasedTxBl" Grid.Column="0" Grid.Row="7"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="ZReleasedTxBx" Grid.Column="1" Grid.Row="7" Margin="0,0,6,0"
|
<EgtWPFLib:EgtTextBox Name="ZReleasedTxBx" Grid.Column="1" Grid.Row="7" Margin="0,0,6,0"
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
|
||||||
<TextBlock Name="SideTxBl" Grid.Row="8" Grid.ColumnSpan="2"
|
<TextBlock Name="SideTxBl" Grid.Row="8" Grid.ColumnSpan="2"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<CheckBox Name="SideChBx" Grid.Row="8" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
|
<CheckBox Name="SideChBx" Grid.Row="8" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
|
||||||
HorizontalAlignment="Right" Margin="0,0,6,0"/>
|
HorizontalAlignment="Right" Margin="0,0,6,0"/>
|
||||||
|
|
||||||
<ComboBox Name="TypeCmBx" Grid.Row="9" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_ComboBox}" Margin="6,0,6,0">
|
<ComboBox Name="TypeCmBx" Grid.Row="9" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_ComboBox}" Margin="6,0,6,0">
|
||||||
<ComboBox.ItemTemplate>
|
<ComboBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<TextBlock Name="RotLockTxBl" Grid.Row="10" Grid.ColumnSpan="2"
|
<TextBlock Name="RotLockTxBl" Grid.Row="10" Grid.ColumnSpan="2"
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<CheckBox Name="RotLockChBx" Grid.Row="10" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
|
<CheckBox Name="RotLockChBx" Grid.Row="10" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
|
||||||
HorizontalAlignment="Right" Margin="0,0,6,0"/>
|
HorizontalAlignment="Right" Margin="0,0,6,0"/>
|
||||||
|
|
||||||
<Grid Grid.Row="11" Grid.ColumnSpan="2">
|
<TextBlock Name="ChainedPathTxBl" Grid.Row="11" Grid.ColumnSpan="2"
|
||||||
<Grid.ColumnDefinitions>
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"/>
|
||||||
<ColumnDefinition Width="0.5*"/>
|
<CheckBox Name="ChainedPathChBx" Grid.Row="11" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_CheckBox_Single}"
|
||||||
<ColumnDefinition Width="1*"/>
|
HorizontalAlignment="Right" Margin="0,0,6,0"/>
|
||||||
<ColumnDefinition Width="0.5*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<TextBlock Name="XcoordTxBl" Grid.Column="0" Text="X"
|
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}" HorizontalAlignment="Center"/>
|
|
||||||
<EgtWPFLib:EgtTextBox Name="XcoordTxBx" Grid.Column="1" Margin="0,0,6,0"
|
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
|
||||||
<TextBlock Name="YcoordTxBl" Grid.Column="2" Text="Y"
|
|
||||||
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}" HorizontalAlignment="Center"/>
|
|
||||||
<EgtWPFLib:EgtTextBox Name="YcoordTxBx" Grid.Column="3" Margin="0,0,6,0"
|
|
||||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<Grid Grid.Row="12" Grid.ColumnSpan="2">
|
<ComboBox Name="SelToolCmBx" Grid.Row="12" Grid.ColumnSpan="2" Style="{StaticResource OmagCut_ComboBox}" Margin="6,0,6,0">
|
||||||
<Grid.ColumnDefinitions>
|
<ComboBox.ItemTemplate>
|
||||||
<ColumnDefinition Width="1*"/>
|
<DataTemplate>
|
||||||
<ColumnDefinition Width="1*"/>
|
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
</DataTemplate>
|
||||||
</Grid.ColumnDefinitions>
|
</ComboBox.ItemTemplate>
|
||||||
|
</ComboBox>
|
||||||
|
|
||||||
|
<Grid Grid.Row="13" Grid.ColumnSpan="2">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="0.5*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="0.5*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="XcoordTxBl" Grid.Column="0" Text="X"
|
||||||
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}" HorizontalAlignment="Center"/>
|
||||||
|
<EgtWPFLib:EgtTextBox Name="XcoordTxBx" Grid.Column="1" Margin="0,0,6,0"
|
||||||
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
<TextBlock Name="YcoordTxBl" Grid.Column="2" Text="Y"
|
||||||
|
Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}" HorizontalAlignment="Center"/>
|
||||||
|
<EgtWPFLib:EgtTextBox Name="YcoordTxBx" Grid.Column="3" Margin="0,0,6,0"
|
||||||
|
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</ScrollViewer>
|
||||||
|
|
||||||
|
<Grid Grid.Row="12" Grid.ColumnSpan="2">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Button Name="SimulBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
|
<Image Source="{DynamicResource SimulaImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
<Button Name="OkBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
|
<Image Source="{DynamicResource EseguiImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
<Button Name="ExitBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
|
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
<Button Name="SimulBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowIconButton}">
|
|
||||||
<Image Source="{DynamicResource SimulaImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
|
||||||
</Button>
|
|
||||||
<Button Name="OkBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconButton}">
|
|
||||||
<Image Source="{DynamicResource EseguiImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
|
||||||
</Button>
|
|
||||||
<Button Name="ExitBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconButton}">
|
|
||||||
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
|
||||||
</Button>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Border>
|
||||||
|
|
||||||
</Border>
|
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
Imports EgtUILib
|
Imports System.Reflection
|
||||||
|
Imports EgtUILib
|
||||||
|
Imports EgtUILib.EgtInterface
|
||||||
|
|
||||||
Public Class FlatteningCut
|
Public Class FlatteningCut
|
||||||
|
|
||||||
@@ -35,14 +37,18 @@ Public Class FlatteningCut
|
|||||||
Private m_bHeadSide As Boolean = False
|
Private m_bHeadSide As Boolean = False
|
||||||
Private m_nMachType As Integer = 1
|
Private m_nMachType As Integer = 1
|
||||||
Private m_bRotLock As Boolean = False
|
Private m_bRotLock As Boolean = False
|
||||||
|
Private m_bChainedPath As Boolean = True
|
||||||
|
Private m_nTool As Integer = 0
|
||||||
' Array delle modalità di acquisizione dei punti
|
' Array delle modalità di acquisizione dei punti
|
||||||
Private m_PointsModeArray(2) As String
|
Private m_PointsModeArray(2) As String
|
||||||
' Array delle tipologia di lavorazione della spianatura
|
' Array delle tipologia di lavorazione della spianatura
|
||||||
Private m_TypeArray(1) As String
|
Private m_TypeArray(2) As String
|
||||||
' Punto selezionato nel disegno
|
' Punto selezionato nel disegno
|
||||||
Private m_ptPrev As Point3d
|
Private m_ptPrev As Point3d
|
||||||
' Layer per crocette temporanee
|
' Layer per crocette temporanee
|
||||||
Private m_nTempLay As Integer = GDB_ID.NULL
|
Private m_nTempLay As Integer = GDB_ID.NULL
|
||||||
|
' Array degliutensili disponibili (lama e fresa)
|
||||||
|
Private m_ToolsArray(1) As String
|
||||||
|
|
||||||
' Costanti
|
' Costanti
|
||||||
Private Const MAX_TAB_DEPTH As Double = 10.0
|
Private Const MAX_TAB_DEPTH As Double = 10.0
|
||||||
@@ -57,8 +63,9 @@ Public Class FlatteningCut
|
|||||||
End Enum
|
End Enum
|
||||||
' Costanti che indicano la tipologia di lavorazione della spianatura
|
' Costanti che indicano la tipologia di lavorazione della spianatura
|
||||||
Private Enum MACH_TYPE As Integer
|
Private Enum MACH_TYPE As Integer
|
||||||
ONEWAY = 0
|
ZIGZAG = 0
|
||||||
ZIGZAG = 1
|
ONEWAY = 1
|
||||||
|
SPIRAL = 2
|
||||||
End Enum
|
End Enum
|
||||||
'Costante che indica il lato in cui posizionare i tagli
|
'Costante che indica il lato in cui posizionare i tagli
|
||||||
Private Enum CutSide As Integer
|
Private Enum CutSide As Integer
|
||||||
@@ -66,6 +73,11 @@ Public Class FlatteningCut
|
|||||||
Right
|
Right
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
|
Private Enum TOOL As Integer
|
||||||
|
SAW = 0
|
||||||
|
MILL = 1
|
||||||
|
End Enum
|
||||||
|
|
||||||
' Per abilitare la spianatura con la FRESA deve essere imposatato a TRUE il flag "Usa Fresa" nella pagina MACCHINA (campo INCISIONI)
|
' Per abilitare la spianatura con la FRESA deve essere imposatato a TRUE il flag "Usa Fresa" nella pagina MACCHINA (campo INCISIONI)
|
||||||
Private Sub FlatteningCut_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
Private Sub FlatteningCut_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||||
' Creo lista modalità di acquisizione punto
|
' Creo lista modalità di acquisizione punto
|
||||||
@@ -75,8 +87,9 @@ Public Class FlatteningCut
|
|||||||
' la associo alla combobox
|
' la associo alla combobox
|
||||||
PointModeCmBx.ItemsSource = m_PointsModeArray
|
PointModeCmBx.ItemsSource = m_PointsModeArray
|
||||||
' Creo lista tipo lavorazione
|
' Creo lista tipo lavorazione
|
||||||
m_TypeArray(MACH_TYPE.ONEWAY) = EgtMsg(MSG_COMBOBOXPARAM + 39)
|
|
||||||
m_TypeArray(MACH_TYPE.ZIGZAG) = EgtMsg(MSG_COMBOBOXPARAM + 38)
|
m_TypeArray(MACH_TYPE.ZIGZAG) = EgtMsg(MSG_COMBOBOXPARAM + 38)
|
||||||
|
m_TypeArray(MACH_TYPE.ONEWAY) = EgtMsg(MSG_COMBOBOXPARAM + 39)
|
||||||
|
m_TypeArray(MACH_TYPE.SPIRAL) = EgtMsg(MSG_COMBOBOXPARAM + 51)
|
||||||
' la associo alla combobox
|
' la associo alla combobox
|
||||||
TypeCmBx.ItemsSource = m_TypeArray
|
TypeCmBx.ItemsSource = m_TypeArray
|
||||||
' assegno messaggi
|
' assegno messaggi
|
||||||
@@ -90,19 +103,26 @@ Public Class FlatteningCut
|
|||||||
ZReleasedTxBl.Text = "Z Svincolo"
|
ZReleasedTxBl.Text = "Z Svincolo"
|
||||||
SideTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 23)
|
SideTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 23)
|
||||||
RotLockTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 29)
|
RotLockTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 29)
|
||||||
|
ChainedPathTxBl.Text = "Chained path"
|
||||||
SimulBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 1)
|
SimulBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 1)
|
||||||
OkBtn.ToolTip = EgtMsg(MSG_DIRECTCUTPAGEUC + 30)
|
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"
|
||||||
|
SelToolCmBx.ItemsSource = m_ToolsArray
|
||||||
' Carico i dati dell'ultimo taglio
|
' Carico i dati dell'ultimo taglio
|
||||||
m_dDepth = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_DEPTH, m_dDepth, m_MainWindow.GetIniFile())
|
m_dDepth = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_DEPTH, m_dDepth, m_MainWindow.GetIniFile())
|
||||||
m_dAngO = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_ANGH, m_dAngO, m_MainWindow.GetIniFile())
|
m_dAngO = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_ANGH, m_dAngO, m_MainWindow.GetIniFile())
|
||||||
m_dLen = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_LENGTH, m_dLen, m_MainWindow.GetIniFile())
|
m_dLen = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_LENGTH, m_dLen, m_MainWindow.GetIniFile())
|
||||||
m_dWid = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_WIDTH, m_dWid, m_MainWindow.GetIniFile())
|
m_dWid = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_WIDTH, m_dWid, m_MainWindow.GetIniFile())
|
||||||
m_dOverlap = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_OVERLAP, m_dOverlap, m_MainWindow.GetIniFile())
|
m_dOverlap = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_OVERLAP, m_dOverlap, m_MainWindow.GetIniFile())
|
||||||
m_dZReleased = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_Z_RELEASED, m_dZReleased, m_MainWindow.GetIniFile())
|
m_dZReleased = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_Z_RELEASED, m_dZReleased, m_MainWindow.GetIniFile())
|
||||||
m_bHeadSide = (GetPrivateProfileInt(S_DIRECTCUTS, K_DC_FLATT_HEADSIDE, 0, m_MainWindow.GetIniFile()) <> 0)
|
m_bHeadSide = (GetPrivateProfileInt(S_DIRECTCUTS, K_DC_FLATT_HEADSIDE, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||||
m_nMachType = GetPrivateProfileInt( S_DIRECTCUTS, K_DC_FLATT_MACHTYPE, m_nMachType, m_MainWindow.GetIniFile())
|
m_nMachType = GetPrivateProfileInt(S_DIRECTCUTS, K_DC_FLATT_MACHTYPE, m_nMachType, m_MainWindow.GetIniFile())
|
||||||
m_bRotLock = ( GetPrivateProfileInt( S_DIRECTCUTS, K_DC_FLATT_ROTLOCK, 0, m_MainWindow.GetIniFile()) <> 0)
|
m_bRotLock = (GetPrivateProfileInt(S_DIRECTCUTS, K_DC_FLATT_ROTLOCK, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||||
m_ptTipP1.x = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_POSX, m_ptTipP1.x, m_MainWindow.GetIniFile())
|
m_bChainedPath = (GetPrivateProfileInt(S_DIRECTCUTS, K_DC_FLAT_CHAINEDPATH, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||||
|
m_nTool = GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, 1, m_MainWindow.GetMachIniFile())
|
||||||
|
m_ptTipP1.x = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_POSX, m_ptTipP1.x, m_MainWindow.GetIniFile())
|
||||||
m_ptTipP1.y = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_POSY, m_ptTipP1.y, m_MainWindow.GetIniFile())
|
m_ptTipP1.y = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_POSY, m_ptTipP1.y, m_MainWindow.GetIniFile())
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -125,16 +145,16 @@ Public Class FlatteningCut
|
|||||||
' Disabilito registrazione progetto modificato
|
' Disabilito registrazione progetto modificato
|
||||||
EgtDisableModified()
|
EgtDisableModified()
|
||||||
' Creo layer temporaneo per crocette
|
' Creo layer temporaneo per crocette
|
||||||
m_nTempLay = EgtCreateGroup( GDB_ID.ROOT)
|
m_nTempLay = EgtCreateGroup(GDB_ID.ROOT)
|
||||||
EgtSetLevel( m_nTempLay, GDB_LV.TEMP)
|
EgtSetLevel(m_nTempLay, GDB_LV.TEMP)
|
||||||
' Origine tavola
|
' Origine tavola
|
||||||
m_bRawOk = True
|
m_bRawOk = True
|
||||||
If Not EgtGetTableRef( 1, m_ptTabOri) Then
|
If Not EgtGetTableRef(1, m_ptTabOri) Then
|
||||||
m_bRawOk = False
|
m_bRawOk = False
|
||||||
EgtOutLog("Error on TableRef1")
|
EgtOutLog("Error on TableRef1")
|
||||||
End If
|
End If
|
||||||
' Dati del grezzo
|
' Dati del grezzo
|
||||||
If Not GetRawBox( m_ptRawMin, m_ptRawMax) Then
|
If Not GetRawBox(m_ptRawMin, m_ptRawMax) Then
|
||||||
m_bRawOk = False
|
m_bRawOk = False
|
||||||
EgtOutLog("Error on RawBox")
|
EgtOutLog("Error on RawBox")
|
||||||
End If
|
End If
|
||||||
@@ -142,7 +162,7 @@ Public Class FlatteningCut
|
|||||||
m_bPointP1Ok = False
|
m_bPointP1Ok = False
|
||||||
m_bPointP2Ok = False
|
m_bPointP2Ok = False
|
||||||
' Inizializzo primo punto acquisito dal disegno
|
' 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
|
m_ptPrev.z = m_ptRawMax.z
|
||||||
' Disegno crocetta che indica il punto acquisito
|
' Disegno crocetta che indica il punto acquisito
|
||||||
CreateCross(m_nTempLay, m_ptPrev)
|
CreateCross(m_nTempLay, m_ptPrev)
|
||||||
@@ -151,10 +171,10 @@ Public Class FlatteningCut
|
|||||||
SetCoordVisibility(True)
|
SetCoordVisibility(True)
|
||||||
ShowCoord()
|
ShowCoord()
|
||||||
' Assegno parametri di lavorazione già definiti
|
' Assegno parametri di lavorazione già definiti
|
||||||
DepthTxBx.Text = LenToString( m_dDepth, 1)
|
DepthTxBx.Text = LenToString(m_dDepth, 1)
|
||||||
DirectionTxBx.Text = DoubleToString( m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
|
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
|
||||||
LenghtTxBx.Text = LenToString( m_dLen, 1)
|
LenghtTxBx.Text = LenToString(m_dLen, 1)
|
||||||
WidthTxBx.Text = LenToString( m_dWid, 2)
|
WidthTxBx.Text = LenToString(m_dWid, 2)
|
||||||
OverlapTxBx.Text = LenToString(m_dOverlap, 2)
|
OverlapTxBx.Text = LenToString(m_dOverlap, 2)
|
||||||
ZReleasedTxBx.Text = LenToString(m_dZReleased, 2)
|
ZReleasedTxBx.Text = LenToString(m_dZReleased, 2)
|
||||||
' carico la quota di svincolo per la spianatura
|
' carico la quota di svincolo per la spianatura
|
||||||
@@ -163,6 +183,9 @@ Public Class FlatteningCut
|
|||||||
SideChBx.IsChecked = m_bHeadSide
|
SideChBx.IsChecked = m_bHeadSide
|
||||||
TypeCmBx.SelectedIndex = m_nMachType
|
TypeCmBx.SelectedIndex = m_nMachType
|
||||||
RotLockChBx.IsChecked = m_bRotLock
|
RotLockChBx.IsChecked = m_bRotLock
|
||||||
|
ChainedPathChBx.IsChecked = m_bChainedPath
|
||||||
|
' Assegno l'utensile in definito in macchina per la fresatura
|
||||||
|
SelToolCmBx.SelectedIndex = m_nTool
|
||||||
' Reset taglio e disabilito bottone esecuzione
|
' Reset taglio e disabilito bottone esecuzione
|
||||||
m_bCutOk = False
|
m_bCutOk = False
|
||||||
UpdateSimulOkBtn()
|
UpdateSimulOkBtn()
|
||||||
@@ -176,16 +199,16 @@ Public Class FlatteningCut
|
|||||||
|
|
||||||
Friend Sub FlatteningCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
|
Friend Sub FlatteningCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
|
||||||
' Salvo i dati correnti
|
' Salvo i dati correnti
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_DEPTH, DoubleToString(m_dDepth, 2), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_ANGH, DoubleToString( m_dAngO, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_ANGH, DoubleToString(m_dAngO, 2), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_LENGTH, DoubleToString( m_dLen, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_LENGTH, DoubleToString(m_dLen, 2), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_WIDTH, DoubleToString( m_dWid, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_WIDTH, DoubleToString(m_dWid, 2), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_OVERLAP, DoubleToString(m_dOverlap, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_OVERLAP, DoubleToString(m_dOverlap, 2), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_Z_RELEASED, DoubleToString(m_dZReleased, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_Z_RELEASED, DoubleToString(m_dZReleased, 2), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_HEADSIDE, If( m_bHeadSide, "1", "0"), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_HEADSIDE, If(m_bHeadSide, "1", "0"), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_MACHTYPE, m_nMachType.ToString(), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_MACHTYPE, m_nMachType.ToString(), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_ROTLOCK, If( m_bRotLock, "1", "0"), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_ROTLOCK, If(m_bRotLock, "1", "0"), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_POSX, DoubleToString( m_ptTipP1.x, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_POSX, DoubleToString(m_ptTipP1.x, 2), m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_POSY, DoubleToString(m_ptTipP1.y, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_DIRECTCUTS, K_DC_FLATT_POSY, DoubleToString(m_ptTipP1.y, 2), m_MainWindow.GetIniFile())
|
||||||
' Se non vado in simulazione
|
' Se non vado in simulazione
|
||||||
If Not m_bSimul Then
|
If Not m_bSimul Then
|
||||||
@@ -268,30 +291,43 @@ Public Class FlatteningCut
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
' Ricavo dati lama corrente
|
||||||
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
If bIsMultiCut Then
|
||||||
|
EgtSetCalcTool(sSaw, "H1", 1)
|
||||||
|
End If
|
||||||
|
|
||||||
' Se acquisizone lama o laser
|
' Se acquisizone lama o laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
' Ricavo dati lama corrente
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
' Ora imposto la lama corrente
|
' Ora imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
Else
|
Else
|
||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP1) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP1) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
@@ -301,15 +337,13 @@ Public Class FlatteningCut
|
|||||||
m_dAngO = dTAngO + 90
|
m_dAngO = dTAngO + 90
|
||||||
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
|
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
|
||||||
|
|
||||||
' Altrimenti da disegno
|
' Altrimenti da disegno
|
||||||
Else
|
Else
|
||||||
' Assegno punto selezionato nel disegno a m_ptTipP1
|
' Assegno punto selezionato nel disegno a m_ptTipP1
|
||||||
m_ptTipP1 = m_ptPrev
|
m_ptTipP1 = m_ptPrev
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
' Ricavo dati lama corrente
|
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
|
||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
End If
|
End If
|
||||||
@@ -339,27 +373,40 @@ Public Class FlatteningCut
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
' Ricavo dati lama corrente
|
||||||
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
If bIsMultiCut Then
|
||||||
|
EgtSetCalcTool(sSaw, "H1", 1)
|
||||||
|
End If
|
||||||
|
|
||||||
' Se acquisizone lama o laser
|
' Se acquisizone lama o laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
' Ricavo dati lama corrente
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
' Ora imposto la lama corrente
|
' Ora imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
Else
|
Else
|
||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP2) Then Return
|
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP2) Then Return
|
||||||
@@ -367,15 +414,13 @@ Public Class FlatteningCut
|
|||||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP2Ok = True
|
m_bPointP2Ok = True
|
||||||
|
|
||||||
' Altrimenti da disegno
|
' Altrimenti da disegno
|
||||||
Else
|
Else
|
||||||
' Assegno punto selezionato nel disegno a m_ptTipP2
|
' Assegno punto selezionato nel disegno a m_ptTipP2
|
||||||
m_ptTipP2 = m_ptPrev
|
m_ptTipP2 = m_ptPrev
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP2Ok = True
|
m_bPointP2Ok = True
|
||||||
' Ricavo dati lama corrente
|
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
|
||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
End If
|
End If
|
||||||
@@ -524,6 +569,16 @@ Public Class FlatteningCut
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub SelToolCmBx_SelectionChanged(sender As Object, e As EventArgs) Handles SelToolCmBx.SelectionChanged
|
||||||
|
m_nTool = SelToolCmBx.SelectedIndex
|
||||||
|
' Disabilito il concatenamento
|
||||||
|
ChainedPathChBx.IsEnabled = (m_nTool = TOOL.MILL)
|
||||||
|
' Disegno il taglio
|
||||||
|
CreateFlatteningCut()
|
||||||
|
SetMachineInCurrPos()
|
||||||
|
EgtDraw()
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub RotLockChBx_Click(sender As Object, e As EventArgs) Handles RotLockChBx.Click
|
Private Sub RotLockChBx_Click(sender As Object, e As EventArgs) Handles RotLockChBx.Click
|
||||||
m_bRotLock = RotLockChBx.IsChecked
|
m_bRotLock = RotLockChBx.IsChecked
|
||||||
' Disegno il taglio
|
' Disegno il taglio
|
||||||
@@ -532,6 +587,14 @@ Public Class FlatteningCut
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ChainedPathChBx_Click(sender As Object, e As EventArgs) Handles ChainedPathChBx.Click
|
||||||
|
m_bChainedPath = ChainedPathChBx.IsChecked
|
||||||
|
' Disegno il taglio
|
||||||
|
CreateFlatteningCut()
|
||||||
|
SetMachineInCurrPos()
|
||||||
|
EgtDraw()
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub XcoordTxBx_EgtClosed(sender As Object, e As EventArgs) Handles XcoordTxBx.EgtClosed
|
Private Sub XcoordTxBx_EgtClosed(sender As Object, e As EventArgs) Handles XcoordTxBx.EgtClosed
|
||||||
' Recupero il valore della coordinata (in 0 Tab)
|
' Recupero il valore della coordinata (in 0 Tab)
|
||||||
Dim dXcoord As Double = 0
|
Dim dXcoord As Double = 0
|
||||||
@@ -583,9 +646,9 @@ Public Class FlatteningCut
|
|||||||
m_CurrProjPage.SetWarningMessage("Trial Version")
|
m_CurrProjPage.SetWarningMessage("Trial Version")
|
||||||
#Else
|
#Else
|
||||||
' Verifico non sia versione Ufficio
|
' Verifico non sia versione Ufficio
|
||||||
If m_MainWindow.GetKeyOption( MainWindow.KEY_OPT.OFFICE_TYPE) Then
|
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
|
||||||
m_CurrProjPage.SetWarningMessage( "Office Version")
|
m_CurrProjPage.SetWarningMessage("Office Version")
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
' Verifico ci sia un taglio valido
|
' Verifico ci sia un taglio valido
|
||||||
If Not m_bCutOk Then Return
|
If Not m_bCutOk Then Return
|
||||||
@@ -622,10 +685,12 @@ Public Class FlatteningCut
|
|||||||
' ricavo l'ingombro di lavorazione in funzione dell'utensile selezionato
|
' ricavo l'ingombro di lavorazione in funzione dell'utensile selezionato
|
||||||
Private Function GetFootPrintTool() As Double
|
Private Function GetFootPrintTool() As Double
|
||||||
' vedere nella pagina Allarm il capito "Incisioni"
|
' vedere nella pagina Allarm il capito "Incisioni"
|
||||||
Dim bForceUseMill As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, 1, m_MainWindow.GetMachIniFile()) <> 0)
|
Dim bForceUseMill As Boolean = (m_nTool = TOOL.MILL)
|
||||||
Dim dFootPrint As Double = 0
|
Dim dFootPrint As Double = 0
|
||||||
' verifico quale lavorazione è attiva
|
' verifico quale lavorazione è attiva
|
||||||
If Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrSawing) AndAlso Not bForceUseMill Then
|
If Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrSawing) AndAlso Not bForceUseMill Then
|
||||||
|
Dim bSetTool As Boolean = EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw)
|
||||||
|
If Not bSetTool Then EgtOutLog("Erro nel settaggio utensile lama " & m_MainWindow.m_CurrentMachine.sCurrSaw)
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dFootPrint)
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, dFootPrint)
|
||||||
ElseIf Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrMilling) Then
|
ElseIf Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrMilling) Then
|
||||||
Dim sCurrMill = m_MainWindow.m_CurrentMachine.sCurrMill
|
Dim sCurrMill = m_MainWindow.m_CurrentMachine.sCurrMill
|
||||||
@@ -660,18 +725,24 @@ Public Class FlatteningCut
|
|||||||
Dim ptStart As Point3d = m_ptTipP1
|
Dim ptStart As Point3d = m_ptTipP1
|
||||||
ptStart.z = 0
|
ptStart.z = 0
|
||||||
Dim nCutId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, m_dLen)
|
Dim nCutId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, m_dLen)
|
||||||
|
EgtSetInfo(nCutId, INFO_DIRECTCUT, 1)
|
||||||
' Imposto affondamento e angolo di fianco sul taglio
|
' Imposto affondamento e angolo di fianco sul taglio
|
||||||
EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth)
|
EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth)
|
||||||
If (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, 1, m_MainWindow.GetMachIniFile()) <> 0) Then
|
If (m_nTool = TOOL.MILL) Then
|
||||||
EgtSetInfo(nCutId, INFO_WIDTH, GetFootPrintTool)
|
EgtSetInfo(nCutId, INFO_WIDTH, GetFootPrintTool)
|
||||||
End If
|
End If
|
||||||
EgtSetInfo(nCutId, INFO_SIDE_ANGLE, 0)
|
EgtSetInfo(nCutId, INFO_SIDE_ANGLE, 0)
|
||||||
' Imposto prima direzione
|
' Imposto prima direzione
|
||||||
EgtSetInfo(nCutId, INFO_DIR, 1)
|
EgtSetInfo(nCutId, INFO_DIR, 1)
|
||||||
|
' Imposto se iniziare la fresatura dal punto indicato
|
||||||
|
Dim bReducePath As Boolean = Not GetPrivateProfileInt(S_MACH_NEST, K_MACH_STARTCENERTOOLPATH, 0, m_MainWindow.GetMachIniFile()) <> 0
|
||||||
|
If Not bReducePath Then EgtSetInfo(nCutId, INFO_STRICT, 0)
|
||||||
|
|
||||||
' Eventuale bloccaggio rotazione asse C tra le passate
|
' Eventuale bloccaggio rotazione asse C tra le passate
|
||||||
If RotLockChBx.IsChecked Then
|
If RotLockChBx.IsChecked Then
|
||||||
EgtSetInfo(nCutId, INFO_ENABLE_INVERT, False)
|
EgtSetInfo(nCutId, INFO_ENABLE_INVERT, False)
|
||||||
End If
|
End If
|
||||||
|
EgtSetInfo(nCutId, INFO_STEP_TYPE, m_nMachType)
|
||||||
' Funzione che crea i tagli successivi al primo
|
' Funzione che crea i tagli successivi al primo
|
||||||
MultiplyCut(nLayerId, nCutId)
|
MultiplyCut(nLayerId, nCutId)
|
||||||
' Creo layer per crocetta di riferimento
|
' Creo layer per crocetta di riferimento
|
||||||
@@ -704,10 +775,17 @@ Public Class FlatteningCut
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function MultiplyCut(nLayerId As Integer, nCutId As Integer) As Boolean
|
Private Function MultiplyCut(nLayerId As Integer, nCutId As Integer) As Boolean
|
||||||
|
Dim bEngWithMill As Boolean = (m_nTool = TOOL.MILL)
|
||||||
|
Dim bReducePath As Boolean = Not GetPrivateProfileInt(S_MACH_NEST, K_MACH_STARTCENERTOOLPATH, 0, m_MainWindow.GetMachIniFile()) <> 0
|
||||||
|
|
||||||
' Recupero spessore della lama (utensile) correntemente attiva
|
' Recupero spessore della lama (utensile) correntemente attiva
|
||||||
Dim dThick As Double = GetFootPrintTool()
|
Dim dThick As Double = GetFootPrintTool()
|
||||||
If dThick = 0 Then Return False
|
If dThick = 0 Then Return False
|
||||||
|
|
||||||
|
' Salvo la prima curva nella lista dei percorsi da concatenare
|
||||||
|
Dim CutsList As New List(Of Integer)
|
||||||
|
CutsList.Add(nCutId)
|
||||||
|
|
||||||
' Imposto angolo di rotazione a seconda del lato dei tagli
|
' Imposto angolo di rotazione a seconda del lato dei tagli
|
||||||
Dim dRotAngO As Double = If(SideChBx.IsChecked(), -90, 90)
|
Dim dRotAngO As Double = If(SideChBx.IsChecked(), -90, 90)
|
||||||
' Definisco vettore di spostamento
|
' Definisco vettore di spostamento
|
||||||
@@ -725,7 +803,10 @@ Public Class FlatteningCut
|
|||||||
If nStepNum > 1 Then
|
If nStepNum > 1 Then
|
||||||
dDelta = dWidth / (nStepNum - 1)
|
dDelta = dWidth / (nStepNum - 1)
|
||||||
End If
|
End If
|
||||||
|
' definisco la larghezza dell'utensile (solo per la fresa)
|
||||||
EgtSetInfo(nCutId, INFO_WIDTH, dThick)
|
EgtSetInfo(nCutId, INFO_WIDTH, dThick)
|
||||||
|
' definisco il tipo di utensile da utilizzare
|
||||||
|
EgtSetInfo(nCutId, "EngravingWithMill", m_nTool)
|
||||||
' Creo vettore delta
|
' Creo vettore delta
|
||||||
vtDelta *= dDelta
|
vtDelta *= dDelta
|
||||||
' Creo indice per impostare info che indica tipologia di spianatura
|
' Creo indice per impostare info che indica tipologia di spianatura
|
||||||
@@ -735,6 +816,7 @@ Public Class FlatteningCut
|
|||||||
' Creo copie
|
' Creo copie
|
||||||
Dim nCut2Id = EgtCopyGlob(nCutId, nLayerId)
|
Dim nCut2Id = EgtCopyGlob(nCutId, nLayerId)
|
||||||
EgtSetInfo(nCut2Id, INFO_WIDTH, dThick)
|
EgtSetInfo(nCut2Id, INFO_WIDTH, dThick)
|
||||||
|
EgtSetInfo(nCutId, "EngravingWithMill", m_nTool)
|
||||||
' Assegno info direzione a seconda del tipo di spianatura
|
' Assegno info direzione a seconda del tipo di spianatura
|
||||||
If TypeCmBx.SelectedIndex = MACH_TYPE.ZIGZAG Then
|
If TypeCmBx.SelectedIndex = MACH_TYPE.ZIGZAG Then
|
||||||
If nTypeIndex = 1 Then
|
If nTypeIndex = 1 Then
|
||||||
@@ -748,10 +830,77 @@ Public Class FlatteningCut
|
|||||||
EgtSetInfo(nCut2Id, INFO_DIR, 1)
|
EgtSetInfo(nCut2Id, INFO_DIR, 1)
|
||||||
End If
|
End If
|
||||||
EgtMove(nCut2Id, vtPerpMove, GDB_RT.GLOB)
|
EgtMove(nCut2Id, vtPerpMove, GDB_RT.GLOB)
|
||||||
|
|
||||||
|
' ----------------------- CREO SEGMENTI PER CONCATENAMENTO CURVE -----------------------
|
||||||
|
If m_bChainedPath And bEngWithMill Then
|
||||||
|
If bReducePath Then
|
||||||
|
If Index < nStepNum - 1 Then
|
||||||
|
ExtendLenghtMillPath(nCut2Id, -dThick / 2)
|
||||||
|
ElseIf Index = nStepNum - 1 Then
|
||||||
|
If nStepNum Mod 2 = 0 Then
|
||||||
|
ExtendLenghtMillPath(nCut2Id, -dThick / 2, False, True)
|
||||||
|
Else
|
||||||
|
ExtendLenghtMillPath(nCut2Id, -dThick / 2, True, False)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
CutsList.Add(nCut2Id)
|
||||||
|
End If
|
||||||
|
' ----------------------- CREO SEGMENTI PER CONCATENAMENTO CURVE -----------------------
|
||||||
|
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
' ----------------------- CREO UN UNICO PERCORSO CONCATENATO -----------------------
|
||||||
|
If m_bChainedPath And bEngWithMill Then
|
||||||
|
' Decidere se accorciare i tagli del valore del raggio utensile!
|
||||||
|
If bReducePath Then
|
||||||
|
ExtendLenghtMillPath(CutsList(0), -dThick / 2, False, True)
|
||||||
|
End If
|
||||||
|
For Index As Integer = 0 To CutsList.Count - 2
|
||||||
|
If Index Mod 2 <> 0 Then
|
||||||
|
' Costruisco la linea di collegamento tra due curve adiacenti
|
||||||
|
Dim PtStart_1 As Point3d
|
||||||
|
EgtStartPoint(CutsList(Index), GDB_RT.GLOB, PtStart_1)
|
||||||
|
Dim PtStart_2 As Point3d
|
||||||
|
EgtStartPoint(CutsList(Index + 1), GDB_RT.GLOB, PtStart_2)
|
||||||
|
CutsList.Add(EgtCreateLine(nLayerId, PtStart_1, PtStart_2))
|
||||||
|
Else
|
||||||
|
' Costruisco la linea di collegamento tra due curve adiacenti
|
||||||
|
Dim PtStart_1 As Point3d
|
||||||
|
EgtEndPoint(CutsList(Index), GDB_RT.GLOB, PtStart_1)
|
||||||
|
Dim PtStart_2 As Point3d
|
||||||
|
EgtEndPoint(CutsList(Index + 1), GDB_RT.GLOB, PtStart_2)
|
||||||
|
CutsList.Add(EgtCreateLine(nLayerId, PtStart_1, PtStart_2))
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Dim ptNear As Point3d
|
||||||
|
EgtStartPoint(CutsList(0), ptNear)
|
||||||
|
Dim IdJointCurv As Integer = EgtCreateCurveCompoByChain(nLayerId, CutsList.ToArray, ptNear, True)
|
||||||
|
EgtSetInfo(IdJointCurv, INFO_DIRECTCUT, 1)
|
||||||
|
EgtSetInfo(IdJointCurv, INFO_STEP_TYPE, m_nMachType)
|
||||||
|
EgtSetInfo(IdJointCurv, INFO_WIDTH, dThick)
|
||||||
|
' Se unisco il percorso devo per forza usare la fresa!
|
||||||
|
EgtSetInfo(IdJointCurv, "EngravingWithMill", 1)
|
||||||
|
If Not bReducePath Then EgtSetInfo(IdJointCurv, INFO_STRICT, 0)
|
||||||
|
End If
|
||||||
|
' ----------------------- CREO UN UNICO PERCORSO CONCATENATO -----------------------
|
||||||
|
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub ExtendLenghtMillPath(ByVal IdCurv As Integer, ByVal ReduceVal As Double,
|
||||||
|
ByVal Optional bStart As Boolean = True, ByVal Optional bEnd As Boolean = True)
|
||||||
|
Dim PtStart As Point3d
|
||||||
|
EgtStartPoint(IdCurv, GDB_RT.GLOB, PtStart)
|
||||||
|
Dim PtEnd As Point3d
|
||||||
|
EgtEndPoint(IdCurv, GDB_RT.GLOB, PtEnd)
|
||||||
|
If bStart Then EgtTrimExtendCurveByLen(IdCurv, ReduceVal, PtStart, GDB_RT.GLOB)
|
||||||
|
If bEnd Then EgtTrimExtendCurveByLen(IdCurv, ReduceVal, PtEnd, GDB_RT.GLOB)
|
||||||
|
Dim dLenLine As Double
|
||||||
|
EgtCurveLength(IdCurv, dLenLine)
|
||||||
|
EgtOutLog("Lunghezza segmento ridotto: " & dLenLine.ToString)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Function CreateCross(nLayerId As Integer, ptP As Point3d) As Boolean
|
Private Function CreateCross(nLayerId As Integer, ptP As Point3d) As Boolean
|
||||||
' Aggiungo crocette
|
' Aggiungo crocette
|
||||||
Dim vtCrossX As New Vector3d(20, 0, 0)
|
Dim vtCrossX As New Vector3d(20, 0, 0)
|
||||||
|
|||||||
@@ -260,6 +260,12 @@ Public Class GridCut
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||||
|
End If
|
||||||
|
|
||||||
' Recupero dati utensile e testa corrente
|
' Recupero dati utensile e testa corrente
|
||||||
Dim sTool As String = ""
|
Dim sTool As String = ""
|
||||||
Dim sHead As String = ""
|
Dim sHead As String = ""
|
||||||
@@ -272,6 +278,13 @@ Public Class GridCut
|
|||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Ricavo dati lama corrente
|
' Ricavo dati lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
@@ -279,7 +292,7 @@ Public Class GridCut
|
|||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -287,10 +300,10 @@ Public Class GridCut
|
|||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP1) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP1) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
@@ -339,6 +352,12 @@ Public Class GridCut
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||||
|
End If
|
||||||
|
|
||||||
' Recupero dati utensile e testa corrente
|
' Recupero dati utensile e testa corrente
|
||||||
Dim sTool As String = ""
|
Dim sTool As String = ""
|
||||||
Dim sHead As String = ""
|
Dim sHead As String = ""
|
||||||
@@ -351,6 +370,13 @@ Public Class GridCut
|
|||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Ricavo dati lama corrente
|
' Ricavo dati lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
@@ -358,7 +384,7 @@ Public Class GridCut
|
|||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -366,10 +392,10 @@ Public Class GridCut
|
|||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP2) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP2) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP2Ok = True
|
m_bPointP2Ok = True
|
||||||
|
|||||||
@@ -53,14 +53,43 @@ Public Class ManualAxesMoveUC
|
|||||||
' Imposto check per considerare spessore lama
|
' Imposto check per considerare spessore lama
|
||||||
L1SawThChBx.IsChecked = m_MainWindow.m_CurrentMachine.bAddSawThTo5AxMove
|
L1SawThChBx.IsChecked = m_MainWindow.m_CurrentMachine.bAddSawThTo5AxMove
|
||||||
L2SawThChBx.IsChecked = m_MainWindow.m_CurrentMachine.bAddSawThTo5AxMove
|
L2SawThChBx.IsChecked = m_MainWindow.m_CurrentMachine.bAddSawThTo5AxMove
|
||||||
|
|
||||||
|
' Aggiorno visualizzazione
|
||||||
|
SetMachineInCurrPos()
|
||||||
|
EgtDraw()
|
||||||
|
m_MainWindow.m_DirectCutPageUC.m_bShowMachine = True
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ManualAxesMove_UnLoaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
|
Private Sub ManualAxesMove_UnLoaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
|
||||||
m_Timer.Stop()
|
m_Timer.Stop()
|
||||||
m_MainWindow.m_CurrentMachine.bAddSawThTo5AxMove = (L1SawThChBx.IsEnabled And L1SawThChBx.IsChecked) Or
|
m_MainWindow.m_CurrentMachine.bAddSawThTo5AxMove = (L1SawThChBx.IsEnabled And L1SawThChBx.IsChecked) Or
|
||||||
(L2SawThChBx.IsEnabled And L2SawThChBx.IsChecked)
|
(L2SawThChBx.IsEnabled And L2SawThChBx.IsChecked)
|
||||||
|
' Nascondo la macchina
|
||||||
|
m_MainWindow.m_DirectCutPageUC.m_bShowMachine = False
|
||||||
|
EgtSetMachineLook(MCH_LOOK.TAB)
|
||||||
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Function SetMachineInCurrPos() As Boolean
|
||||||
|
' Recupero la posizione macchina
|
||||||
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return False
|
||||||
|
' Recupero il nome degli assi macchina
|
||||||
|
Dim sL1 As String = String.Empty
|
||||||
|
Dim sL2 As String = String.Empty
|
||||||
|
Dim sL3 As String = String.Empty
|
||||||
|
Dim sR1 As String = String.Empty
|
||||||
|
Dim sR2 As String = String.Empty
|
||||||
|
If Not m_MainWindow.m_CNCommunication.GetAxesNames(sL1, sL2, sL3, sR1, sR2) Then Return False
|
||||||
|
' Visualizzo macchina in posizione
|
||||||
|
EgtSetAxisPos(sL1, dL1)
|
||||||
|
EgtSetAxisPos(sL2, dL2)
|
||||||
|
EgtSetAxisPos(sL3, dL3)
|
||||||
|
EgtSetAxisPos(sR1, dR1)
|
||||||
|
EgtSetAxisPos(sR2, dR2)
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Sub UpdateAxesNames()
|
Private Sub UpdateAxesNames()
|
||||||
Dim sL1 As String = String.Empty
|
Dim sL1 As String = String.Empty
|
||||||
Dim sL2 As String = String.Empty
|
Dim sL2 As String = String.Empty
|
||||||
@@ -125,11 +154,16 @@ Public Class ManualAxesMoveUC
|
|||||||
Private Sub Timer_tick()
|
Private Sub Timer_tick()
|
||||||
UpdateAxesNames()
|
UpdateAxesNames()
|
||||||
UpdateUseSawThickness()
|
UpdateUseSawThickness()
|
||||||
|
' Aggiorno posizione macchina in disegno
|
||||||
|
SetMachineInCurrPos()
|
||||||
|
' Aggiorno il disegno
|
||||||
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private m_MoveClicked As Boolean = False
|
Private m_MoveClicked As Boolean = False
|
||||||
Private Sub XXBtn_Click(sender As Object, e As MouseButtonEventArgs) Handles L1Btn.PreviewMouseDown, L2Btn.PreviewMouseDown, L3Btn.PreviewMouseDown, R1Btn.PreviewMouseDown, R2Btn.PreviewMouseDown
|
Private Sub XXBtn_Click(sender As Object, e As MouseButtonEventArgs) Handles L1Btn.PreviewMouseDown, L2Btn.PreviewMouseDown, L3Btn.PreviewMouseDown, R1Btn.PreviewMouseDown, R2Btn.PreviewMouseDown
|
||||||
If e.ClickCount > 1 OrElse m_MoveClicked Then
|
If e.ClickCount > 1 OrElse m_MoveClicked Then
|
||||||
|
EgtOutLog(" → Hold on! Do not click compulsively.")
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
m_MoveClicked = True
|
m_MoveClicked = True
|
||||||
@@ -216,6 +250,7 @@ Public Class ManualAxesMoveUC
|
|||||||
Private Sub SiemensMoveAxis(CurrentBtn As Button)
|
Private Sub SiemensMoveAxis(CurrentBtn As Button)
|
||||||
' leggo se stato reset
|
' leggo se stato reset
|
||||||
If Not m_CN.bResetState Then
|
If Not m_CN.bResetState Then
|
||||||
|
EgtOutLog("Reset status is 'False', is denied to execute file '\DirectCmd\AxesMove.lua'.")
|
||||||
m_MoveClicked = False
|
m_MoveClicked = False
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -285,6 +285,12 @@ Public Class MultipleCut
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||||
|
End If
|
||||||
|
|
||||||
' Recupero dati utensile e testa corrente
|
' Recupero dati utensile e testa corrente
|
||||||
Dim sTool As String = ""
|
Dim sTool As String = ""
|
||||||
Dim sHead As String = ""
|
Dim sHead As String = ""
|
||||||
@@ -297,6 +303,13 @@ Public Class MultipleCut
|
|||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Ricavo dati lama corrente
|
' Ricavo dati lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
@@ -304,7 +317,7 @@ Public Class MultipleCut
|
|||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
|
|
||||||
@@ -314,10 +327,10 @@ Public Class MultipleCut
|
|||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
|
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP1) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP1) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
@@ -365,6 +378,12 @@ Public Class MultipleCut
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||||
|
End If
|
||||||
|
|
||||||
' Recupero dati utensile e testa corrente
|
' Recupero dati utensile e testa corrente
|
||||||
Dim sTool As String = ""
|
Dim sTool As String = ""
|
||||||
Dim sHead As String = ""
|
Dim sHead As String = ""
|
||||||
@@ -377,6 +396,13 @@ Public Class MultipleCut
|
|||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Ricavo dati lama corrente
|
' Ricavo dati lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
@@ -384,7 +410,7 @@ Public Class MultipleCut
|
|||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -392,10 +418,10 @@ Public Class MultipleCut
|
|||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP2) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP2) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP2Ok = True
|
m_bPointP2Ok = True
|
||||||
|
|||||||
@@ -210,17 +210,30 @@ Public Class SawTestUC
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
EgtSetCalcTool(m_sSaw, "H1", 1)
|
||||||
|
End If
|
||||||
|
|
||||||
' Se acquisizone lama o laser
|
' Se acquisizone lama o laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
' Ora imposto la lama corrente
|
' Ora imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -228,10 +241,10 @@ Public Class SawTestUC
|
|||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP1) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP1) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
@@ -280,17 +293,30 @@ Public Class SawTestUC
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
EgtSetCalcTool(m_sSaw, "H1", 1)
|
||||||
|
End If
|
||||||
|
|
||||||
' Se acquisizone lama o laser
|
' Se acquisizone lama o laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
' Ora imposto la lama corrente
|
' Ora imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -298,10 +324,10 @@ Public Class SawTestUC
|
|||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
If Not EgtSetCalcTool(m_sSaw, "H1", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP2) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP2) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP2Ok = True
|
m_bPointP2Ok = True
|
||||||
@@ -504,6 +530,10 @@ Public Class SawTestUC
|
|||||||
ElseIf nWSide = MCH_SAW_WS.LEFT Then
|
ElseIf nWSide = MCH_SAW_WS.LEFT Then
|
||||||
vtPerp = vtDir
|
vtPerp = vtDir
|
||||||
vtPerp.Rotate(Vector3d.Z_AX, +90)
|
vtPerp.Rotate(Vector3d.Z_AX, +90)
|
||||||
|
Else
|
||||||
|
m_CurrProjPage.ClearMessage()
|
||||||
|
' 91143 = Set machining side: right or left.
|
||||||
|
m_CurrProjPage.SetInfoMessage(EgtMsg(91143))
|
||||||
End If
|
End If
|
||||||
Dim ptEnd As Point3d = ptStart + vtDir * m_dLen + vtPerp * dThick
|
Dim ptEnd As Point3d = ptStart + vtDir * m_dLen + vtPerp * dThick
|
||||||
Dim dLen2 As Double = m_dLen / 2
|
Dim dLen2 As Double = m_dLen / 2
|
||||||
|
|||||||
@@ -268,6 +268,12 @@ Public Class SingleCutUC
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||||
|
End If
|
||||||
|
|
||||||
' Recupero dati utensile e testa corrente
|
' Recupero dati utensile e testa corrente
|
||||||
Dim sTool As String = ""
|
Dim sTool As String = ""
|
||||||
Dim sHead As String = ""
|
Dim sHead As String = ""
|
||||||
@@ -279,6 +285,13 @@ Public Class SingleCutUC
|
|||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Ricavo dati lama corrente
|
' Ricavo dati lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
@@ -286,7 +299,8 @@ Public Class SingleCutUC
|
|||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
|
EgtOutLog("Coordinate punto 1 da H3: " & m_ptTipP1.x.ToString & " ," & m_ptTipP1.y.ToString)
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -294,10 +308,11 @@ Public Class SingleCutUC
|
|||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
|
EgtOutLog("Coordinate punto 1 da H1: " & m_ptTipP1.x.ToString & " ," & m_ptTipP1.y.ToString)
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP1) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP1) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
@@ -318,7 +333,6 @@ Public Class SingleCutUC
|
|||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Disegno il taglio
|
' Disegno il taglio
|
||||||
@@ -348,6 +362,12 @@ Public Class SingleCutUC
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
If bIsMultiCut Then
|
||||||
|
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||||
|
End If
|
||||||
|
|
||||||
' Recupero dati utensile e testa corrente
|
' Recupero dati utensile e testa corrente
|
||||||
Dim sTool As String = ""
|
Dim sTool As String = ""
|
||||||
Dim sHead As String = ""
|
Dim sHead As String = ""
|
||||||
@@ -359,6 +379,13 @@ Public Class SingleCutUC
|
|||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Ricavo dati lama corrente
|
' Ricavo dati lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
@@ -366,20 +393,20 @@ Public Class SingleCutUC
|
|||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
|
EgtOutLog("Coordinate punto 2 da H3: " & m_ptTipP2.x.ToString & " ," & m_ptTipP2.y.ToString)
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
|
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
Else
|
Else
|
||||||
' Reimposto eventuale precedente utensile
|
' Reimposto eventuale precedente utensile
|
||||||
EgtSetCalcTool(sTool, sHead, nExit)
|
EgtSetCalcTool(sTool, sHead, nExit)
|
||||||
|
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP2) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP2) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP2Ok = True
|
m_bPointP2Ok = True
|
||||||
@@ -412,6 +439,7 @@ Public Class SingleCutUC
|
|||||||
m_dAngO = dAngOrizzDeg
|
m_dAngO = dAngOrizzDeg
|
||||||
LenghtTxBx.Text = LenToString(m_dLen, 1)
|
LenghtTxBx.Text = LenToString(m_dLen, 1)
|
||||||
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
|
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
|
||||||
|
EgtOutLog("Lunghezza taglio: " & dLen.ToString & "Angolo: " & dAngOrizzDeg.ToString)
|
||||||
CreateSingleCut()
|
CreateSingleCut()
|
||||||
' Disegno la macchina nella sua posizione reale
|
' Disegno la macchina nella sua posizione reale
|
||||||
SetMachineInCurrPos()
|
SetMachineInCurrPos()
|
||||||
@@ -604,6 +632,7 @@ Public Class SingleCutUC
|
|||||||
Private Function CreateSingleCut() As Boolean
|
Private Function CreateSingleCut() As Boolean
|
||||||
' Verifico sia definito il punto iniziale e il grezzo
|
' Verifico sia definito il punto iniziale e il grezzo
|
||||||
If Not m_bPointP1Ok Or Not m_bRawOk Then
|
If Not m_bPointP1Ok Or Not m_bRawOk Then
|
||||||
|
EgtOutLog("Primo punto non valido")
|
||||||
m_bCutOk = False
|
m_bCutOk = False
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -72,7 +72,10 @@ Public Class SingleDrillUC
|
|||||||
Private Sub SingleDrill_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
Private Sub SingleDrill_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||||
m_sCurrDrill = m_CurrentMachine.sCurrDrill
|
m_sCurrDrill = m_CurrentMachine.sCurrDrill
|
||||||
GetDrillFromDrilling(m_sCurrDrill, m_CurrentMachine.sCurrDrilling)
|
GetDrillFromDrilling(m_sCurrDrill, m_CurrentMachine.sCurrDrilling)
|
||||||
|
' rimuovo utensile su uscite 1
|
||||||
|
EgtSetCalcTool("", "H1", 1)
|
||||||
|
' imposto utensile su uscita 2
|
||||||
|
EgtSetCalcTool(m_sCurrDrill, "H1", 2)
|
||||||
' recupero informazioni del foretto usato
|
' recupero informazioni del foretto usato
|
||||||
EgtTdbSetCurrTool(m_sCurrDrill)
|
EgtTdbSetCurrTool(m_sCurrDrill)
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_dDiameter)
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, m_dDiameter)
|
||||||
@@ -213,21 +216,33 @@ Public Class SingleDrillUC
|
|||||||
' Verifico configurazione tavola e grezzo
|
' Verifico configurazione tavola e grezzo
|
||||||
If Not m_bRawOk Then Return
|
If Not m_bRawOk Then Return
|
||||||
|
|
||||||
|
' forzo utilizzo testa H1 solo per macchina con 2 teste
|
||||||
|
Dim bIsMultiCut As Boolean = (EgtGetHeadId("H101") <> GDB_ID.NULL)
|
||||||
|
' Ricavo dati lama corrente
|
||||||
|
Dim sDrill As String = m_sCurrDrill
|
||||||
|
If bIsMultiCut Then
|
||||||
|
EgtSetCalcTool(sDrill, "H1", 2)
|
||||||
|
End If
|
||||||
|
|
||||||
' Se acquisizione lama o laser
|
' Se acquisizione lama o laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.DRILL Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.DRILL Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
|
|
||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
|
' Se macchina multicut il primo asse rotante restituito è quello della tavola
|
||||||
' Ricavo dati Foretto corrente
|
Dim vAng() As Double = {dR1, dR2, 0}
|
||||||
Dim sDrill As String = m_sCurrDrill
|
If bIsMultiCut Then
|
||||||
|
vAng(0) = 0
|
||||||
|
vAng(1) = dR1
|
||||||
|
vAng(2) = dR2
|
||||||
|
End If
|
||||||
' Se punto da laser
|
' Se punto da laser
|
||||||
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
If PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
' Ora imposto la lama corrente
|
' Ora imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sDrill, "H1", 2) Then Return
|
If Not EgtSetCalcTool(sDrill, "H1", 2) Then Return
|
||||||
' Altrimenti da lama
|
' Altrimenti da lama
|
||||||
@@ -235,10 +250,10 @@ Public Class SingleDrillUC
|
|||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sDrill, "H1", 2) Then Return
|
If Not EgtSetCalcTool(sDrill, "H1", 2) Then Return
|
||||||
' Trasformo in posizione punta utensile in basso
|
' Trasformo in posizione punta utensile in basso
|
||||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP1) Then Return
|
||||||
End If
|
End If
|
||||||
' Calcolo direzione asse lama
|
' Calcolo direzione asse lama
|
||||||
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP1) Then Return
|
If Not EgtGetCalcToolDirFromAngles(vAng, m_vtToolP1) Then Return
|
||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
@@ -250,10 +265,8 @@ Public Class SingleDrillUC
|
|||||||
' Porto il tip nell'origine tavola
|
' Porto il tip nell'origine tavola
|
||||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||||
m_bPointP1Ok = True
|
m_bPointP1Ok = True
|
||||||
' Ricavo dati lama corrente
|
|
||||||
Dim sDrill As String = m_sCurrDrill
|
|
||||||
' Imposto la lama corrente
|
' Imposto la lama corrente
|
||||||
If Not EgtSetCalcTool(sDrill, "H1", 1) Then Return
|
If Not EgtSetCalcTool(sDrill, "H1", 2) Then Return
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Disegno il taglio
|
' Disegno il taglio
|
||||||
@@ -433,9 +446,9 @@ Public Class SingleDrillUC
|
|||||||
ptIns.z = dRawHeight
|
ptIns.z = dRawHeight
|
||||||
' Inserisco il pezzo nel grezzo
|
' Inserisco il pezzo nel grezzo
|
||||||
EgtAddPartToRawPart(nPartId, ptIns, m_MainWindow.m_CurrentProjectPageUC.m_nRawId)
|
EgtAddPartToRawPart(nPartId, ptIns, m_MainWindow.m_CurrentProjectPageUC.m_nRawId)
|
||||||
|
EgtSetCurrPhase(1)
|
||||||
' Inserisco la lavorazione
|
' Inserisco la lavorazione
|
||||||
m_bCutOk = AddMachinings(nPartId) AndAlso UpdateAllMachiningsToolpaths()
|
m_bCutOk = AddMachinings(nPartId) AndAlso UpdateAllMachiningsToolpaths()
|
||||||
EgtSetCurrPhase(1)
|
|
||||||
' Eventuale eliminazione Home finale
|
' Eventuale eliminazione Home finale
|
||||||
If Not m_MainWindow.m_CurrentMachine.bDirectCutsFinalHome Then
|
If Not m_MainWindow.m_CurrentMachine.bDirectCutsFinalHome Then
|
||||||
RemoveFinalHome()
|
RemoveFinalHome()
|
||||||
|
|||||||
@@ -350,6 +350,7 @@ Public Class SquaringUC
|
|||||||
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
||||||
Dim dThick As Double = 0
|
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)
|
||||||
|
EgtOutLog("Curr tool type in use for squaring: " & If(nType = MCH_TY.SAW_STD, "SAW_STD", "NOT 'SAW_STD'"))
|
||||||
' Ricalcolo lo spessore in base all'inclinazione
|
' Ricalcolo lo spessore in base all'inclinazione
|
||||||
dThick = dThick / Math.Cos(m_dAngV * Math.PI / 180)
|
dThick = dThick / Math.Cos(m_dAngV * Math.PI / 180)
|
||||||
' Imposto angolo di rotazione a seconda del lato dei tagli paralleli
|
' Imposto angolo di rotazione a seconda del lato dei tagli paralleli
|
||||||
@@ -367,9 +368,12 @@ Public Class SquaringUC
|
|||||||
If dDimPzY <> 0 And nNumPzY > 0 And dDimPzX <> 0 And nNumPzX > 0 Then
|
If dDimPzY <> 0 And nNumPzY > 0 And dDimPzX <> 0 And nNumPzX > 0 Then
|
||||||
Dim dLenX As Double = dThick + (dDimPzX + dThick) * nNumPzX
|
Dim dLenX As Double = dThick + (dDimPzX + dThick) * nNumPzX
|
||||||
Dim nCutParaId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, dLenX + 0.1)
|
Dim nCutParaId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, dLenX + 0.1)
|
||||||
' Imposto affondamento e angolo di fianco sul taglio
|
' Imposto affondamento e angolo di fianco sul taglio (solo se non lama STD)
|
||||||
EgtSetInfo(nCutParaId, INFO_DEPTH, m_dDepth)
|
If Not nType = MCH_TY.SAW_STD Then
|
||||||
EgtSetInfo(nCutParaId, INFO_SIDE_ANGLE, m_dAngV)
|
EgtSetInfo(nCutParaId, INFO_DEPTH, m_dDepth)
|
||||||
|
EgtSetInfo(nCutParaId, INFO_SIDE_ANGLE, m_dAngV)
|
||||||
|
EgtOutLog("Curr tool in use is not of type SAW_STD: Depth is limited to raw thickness")
|
||||||
|
End If
|
||||||
' Allungo la geometria
|
' Allungo la geometria
|
||||||
EgtExtendCurveStartByLen(nCutParaId, m_dOffsetSquaring + m_dExtraLength)
|
EgtExtendCurveStartByLen(nCutParaId, m_dOffsetSquaring + m_dExtraLength)
|
||||||
EgtExtendCurveEndByLen(nCutParaId, m_dOffsetSquaring + +m_dExtraLength)
|
EgtExtendCurveEndByLen(nCutParaId, m_dOffsetSquaring + +m_dExtraLength)
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ Public Class VacuumMachineButtonUC
|
|||||||
Friend m_CN As CN_generico
|
Friend m_CN As CN_generico
|
||||||
Private m_bFirst As Boolean = True
|
Private m_bFirst As Boolean = True
|
||||||
|
|
||||||
|
' visualizzo l'elenco degli elementi della pagina sono al primo avvio
|
||||||
|
Friend m_OutLogTypeButton As Boolean = True
|
||||||
|
|
||||||
' Creazione converter da String a ImageSource
|
' Creazione converter da String a ImageSource
|
||||||
Dim ImageConverter As New ImageSourceConverter
|
Dim ImageConverter As New ImageSourceConverter
|
||||||
|
|
||||||
@@ -71,10 +74,37 @@ Public Class VacuumMachineButtonUC
|
|||||||
If Not IsNothing(ButtonToAdd) Then m_ButtonList.Add(ButtonToAdd)
|
If Not IsNothing(ButtonToAdd) Then m_ButtonList.Add(ButtonToAdd)
|
||||||
End If
|
End If
|
||||||
End While
|
End While
|
||||||
|
|
||||||
|
For Each MachineButton As MachineButton In m_ButtonList
|
||||||
|
OutLogTypeButton(MachineButton)
|
||||||
|
Next
|
||||||
|
m_OutLogTypeButton = False
|
||||||
|
|
||||||
NotifyPropertyChanged("ButtonList")
|
NotifyPropertyChanged("ButtonList")
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
#Region "STATE CHANGED"
|
||||||
|
' ------------------------------------------------------------------------------
|
||||||
|
' i segeunti metodi notificano il cambiamento di stato di specifici bottoni
|
||||||
|
'-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Friend Sub OutLogTypeButton(CurrMachineButton As MachineButton)
|
||||||
|
If Not m_OutLogTypeButton Then Return
|
||||||
|
Dim BtnType As Type = CurrMachineButton.GetType
|
||||||
|
If BtnType Is GetType(NoStateButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(0) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(TwoStateButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(1) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(ThreeStateButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(2) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(DoubleCommandButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(3) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
ElseIf BtnType Is GetType(PressedCommandButton) Then
|
||||||
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(4) ") & " , " & CurrMachineButton.StateFlag)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Friend Sub VacuumUpChanged(VacuumUpState As Boolean)
|
Friend Sub VacuumUpChanged(VacuumUpState As Boolean)
|
||||||
Dim VacuumUpButton As TwoStateButton = Nothing
|
Dim VacuumUpButton As TwoStateButton = Nothing
|
||||||
For Each MachineButton As MachineButton In m_ButtonList
|
For Each MachineButton As MachineButton In m_ButtonList
|
||||||
@@ -371,6 +401,8 @@ Public Class VacuumMachineButtonUC
|
|||||||
Next
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
#End Region ' State Range
|
||||||
|
|
||||||
Public Function GetPrivateProfileMachineButtons(
|
Public Function GetPrivateProfileMachineButtons(
|
||||||
ByVal lpAppName As String,
|
ByVal lpAppName As String,
|
||||||
ByVal lpKeyName As String,
|
ByVal lpKeyName As String,
|
||||||
|
|||||||
@@ -1185,12 +1185,14 @@ Public Class DrawPageUC
|
|||||||
Else
|
Else
|
||||||
MakeMultipleInsert(InsNbr, sPartName)
|
MakeMultipleInsert(InsNbr, sPartName)
|
||||||
End If
|
End If
|
||||||
|
' Attivo il parcheggio dei pezzi Draw (per il corretto posizionamento nella scena)
|
||||||
|
ActivateParkIndZero()
|
||||||
Dim bExitPage As Boolean = GetPrivateProfileInt(S_GENERAL, K_QUITDRAWPAGE, 1, m_MainWindow.GetIniFile) <> 0
|
Dim bExitPage As Boolean = GetPrivateProfileInt(S_GENERAL, K_QUITDRAWPAGE, 1, m_MainWindow.GetIniFile) <> 0
|
||||||
' Se Shift premuto eseguo il contrario
|
' Se Shift premuto eseguo il contrario
|
||||||
If Keyboard.Modifiers And ModifierKeys.Shift Then
|
If Keyboard.Modifiers And ModifierKeys.Shift Then
|
||||||
bExitPage = Not bExitPage
|
bExitPage = Not bExitPage
|
||||||
End If
|
End If
|
||||||
If bExitPage And m_MainWindow.FrameCutBtn.IsChecked Then
|
If bExitPage Then
|
||||||
' Aggiorno ambiente principale
|
' Aggiorno ambiente principale
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
' Elimino nome del componente precedente
|
' Elimino nome del componente precedente
|
||||||
@@ -1217,6 +1219,7 @@ Public Class DrawPageUC
|
|||||||
Else
|
Else
|
||||||
LoadSecondaryPage()
|
LoadSecondaryPage()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1238,6 +1241,24 @@ Public Class DrawPageUC
|
|||||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
|
||||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
||||||
m_MainWindow.m_ActivePage = If(m_MainWindow.FrameCutBtn.IsChecked, MainWindow.Pages.FrameCut, MainWindow.Pages.CadCut)
|
m_MainWindow.m_ActivePage = If(m_MainWindow.FrameCutBtn.IsChecked, MainWindow.Pages.FrameCut, MainWindow.Pages.CadCut)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ActivateParkIndZero()
|
||||||
|
' Aggiorno la gestione dei parcheggi: spengo tutti i parcheggi tranne quello dei pezzi disegnati "0"
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
For Each ItemParkInd As ParkInd In ListParkInd
|
||||||
|
If ItemParkInd.Ind = 0 Then
|
||||||
|
ItemParkInd.Status = GDB_ST.ON_
|
||||||
|
Else
|
||||||
|
ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
' Aggiorno lo stato dei pezzi
|
||||||
|
For Each Item As ParkInd In ListParkInd
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(Item, False)
|
||||||
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub TrfDataBtn_Click(sender As Object, e As RoutedEventArgs) Handles TrfDataBtn.Click
|
Private Sub TrfDataBtn_Click(sender As Object, e As RoutedEventArgs) Handles TrfDataBtn.Click
|
||||||
|
|||||||
@@ -7,55 +7,57 @@
|
|||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="ImportPage_Initialized" Loaded="ImportPage_Loaded" Unloaded="ImportPage_Unloaded">
|
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="ImportPage_Initialized" Loaded="ImportPage_Loaded" Unloaded="ImportPage_Unloaded">
|
||||||
|
|
||||||
<!-- Definizione della ImportPage -->
|
<!-- Definizione della ImportPage -->
|
||||||
<Border>
|
<Border>
|
||||||
<Grid Name="ImportPageGrid" >
|
<Grid Name="ImportPageGrid" >
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="3*"/>
|
|
||||||
<ColumnDefinition Width="12*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="1*"/>
|
|
||||||
<RowDefinition Height="8*"/>
|
|
||||||
<RowDefinition Height="1*"/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Definizione della Grid superiore per Button -->
|
|
||||||
<Grid Name="UpperButtonGrid" Grid.Column="1" Grid.Row="0" >
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="3*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="12*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="7*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<ToggleButton Name="SideAngleBtn" Grid.Column="0"
|
|
||||||
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
|
||||||
<ToggleButton Name="FiloTopBtn" Grid.Column="1"
|
|
||||||
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
|
||||||
<ToggleButton Name="DripCutBtn" Grid.Column="2" Padding="0"
|
|
||||||
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
|
||||||
<ToggleButton Name="DripDrillBtn" Grid.Column="3" Padding="0"
|
|
||||||
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
|
||||||
<Button Name="Cad2dBtn" Grid.Column="4" Padding="0"
|
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<!-- Definizione della Grid laterale -->
|
|
||||||
<Grid Name="LeftGrid" Grid.RowSpan="3">
|
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="1*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="8*"/>
|
||||||
<RowDefinition Height="7.25*"/>
|
<RowDefinition Height="1*"/>
|
||||||
<RowDefinition Height="0.75*"/>
|
|
||||||
<RowDefinition Height="1*"/>
|
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<TextBlock Name="FilePathTxBl" Foreground="White" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
|
||||||
<ListBox Name="FileListBox" Grid.Row="1" Grid.RowSpan="2" ItemTemplate="{DynamicResource DataTemplateItem}"
|
<!-- Definizione della Grid superiore per Button -->
|
||||||
|
<Grid Name="UpperButtonGrid" Grid.Column="1" Grid.Row="0" >
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="7*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<ToggleButton Name="SideAngleBtn" Grid.Column="0"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
||||||
|
<ToggleButton Name="FiloTopBtn" Grid.Column="1"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
||||||
|
<ToggleButton Name="DripCutBtn" Grid.Column="2" Padding="0"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
||||||
|
<ToggleButton Name="EngraveBtn" Grid.Column="2"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
||||||
|
<ToggleButton Name="DripDrillBtn" Grid.Column="3" Padding="0"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayYellowTextToggleButton}"/>
|
||||||
|
<Button Name="Cad2dBtn" Grid.Column="4" Padding="0"
|
||||||
|
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<!-- Definizione della Grid laterale -->
|
||||||
|
<Grid Name="LeftGrid" Grid.RowSpan="3">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="0.5*"/>
|
||||||
|
<RowDefinition Height="0.5*"/>
|
||||||
|
<RowDefinition Height="7.25*"/>
|
||||||
|
<RowDefinition Height="0.75*"/>
|
||||||
|
<RowDefinition Height="1*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<TextBlock Name="FilePathTxBl" Foreground="White" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
|
<ListBox Name="FileListBox" Grid.Row="1" Grid.RowSpan="2" ItemTemplate="{DynamicResource DataTemplateItem}"
|
||||||
ItemsSource="{Binding ItemList}"/>
|
ItemsSource="{Binding ItemList}"/>
|
||||||
|
|
||||||
<Grid Name="FinderGrd" Grid.Row="3" Margin="0,0,8,0">
|
<Grid Name="FinderGrd" Grid.Row="3" Margin="0,0,8,0">
|
||||||
@@ -68,68 +70,68 @@
|
|||||||
<Button Name="ClearFindBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}" Margin="0,6,2,6">
|
<Button Name="ClearFindBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}" Margin="0,6,2,6">
|
||||||
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}" Width="30" />
|
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}" Width="30" />
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Border Name="MessageBrd" Grid.Row="5" BorderThickness="0,1,0,0" BorderBrush="Gray">
|
<Border Name="MessageBrd" Grid.Row="5" BorderThickness="0,1,0,0" BorderBrush="Gray">
|
||||||
<TextBlock Name="MessageTxBx" TextAlignment="Center"
|
<TextBlock Name="MessageTxBx" TextAlignment="Center"
|
||||||
Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<!-- Definizione della Grid inferiore per Button -->
|
|
||||||
<Grid Name="LowerButtonGrid" Grid.Column="1" Grid.Row="3">
|
|
||||||
<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*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<Button Name="UseLayerBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
|
||||||
<Button Name="UseClosedCurveBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
|
||||||
<Button Name="UseRegionBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
|
||||||
<Button Name="ResetBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
|
||||||
|
|
||||||
<RadioButton Name="mmBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
|
||||||
<RadioButton Name="inchBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
|
||||||
|
|
||||||
<Button Name="OrderListBtn" Grid.Column="6" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
|
||||||
|
|
||||||
<ToggleButton Name="TopBtn" Grid.Column="7" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
|
||||||
|
|
||||||
<Grid Name="PartNumberGrd" Grid.Column="8" Grid.ColumnSpan="2">
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<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}"/>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Button Name="OkBtn" Grid.Column="10" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
<!-- Definizione della Grid inferiore per Button -->
|
||||||
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
<Grid Name="LowerButtonGrid" Grid.Column="1" Grid.Row="3">
|
||||||
</Button>
|
<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*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Button Name="UseLayerBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
|
<Button Name="UseClosedCurveBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
|
<Button Name="UseRegionBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
|
<Button Name="ResetBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
|
|
||||||
|
<RadioButton Name="mmBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
||||||
|
<RadioButton Name="inchBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
||||||
|
|
||||||
|
<Button Name="OrderListBtn" Grid.Column="6" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
|
|
||||||
|
<ToggleButton Name="TopBtn" Grid.Column="7" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
||||||
|
|
||||||
|
<Grid Name="PartNumberGrd" Grid.Column="8" Grid.ColumnSpan="2">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<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}"/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Button Name="OkBtn" Grid.Column="10" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||||
|
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Button Name="ExitBtn" Grid.Column="11" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||||
|
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Border>
|
||||||
|
|
||||||
<Button Name="ExitBtn" Grid.Column="11" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
|
||||||
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</Border>
|
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ Public Class ImportPageUC
|
|||||||
Private Const FT_TRF As Integer = 51
|
Private Const FT_TRF As Integer = 51
|
||||||
' Costante per formato CUT
|
' Costante per formato CUT
|
||||||
Private Const FT_CUT As Integer = 52
|
Private Const FT_CUT As Integer = 52
|
||||||
|
' Indice del parcheggio corrente
|
||||||
|
Private NewParkInd As Integer = 0
|
||||||
|
|
||||||
' Indentificativo del pezzo selezionato
|
' Indentificativo del pezzo selezionato
|
||||||
Private m_nSelectedPart As Integer = GDB_ID.NULL
|
Private m_nSelectedPart As Integer = GDB_ID.NULL
|
||||||
@@ -82,12 +84,13 @@ Public Class ImportPageUC
|
|||||||
ResetBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 3) 'Reset
|
ResetBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 3) 'Reset
|
||||||
mmBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 4) 'mm
|
mmBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 4) 'mm
|
||||||
inchBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 5) 'inch
|
inchBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 5) 'inch
|
||||||
OrderListBtn.Content = EgtMsg( 90398) 'Dati Csv
|
OrderListBtn.Content = EgtMsg(90398) 'Dati Csv
|
||||||
TopBtn.Content = EgtMsg( 90384) 'Indica Lato Sopra
|
TopBtn.Content = EgtMsg(90384) 'Indica Lato Sopra
|
||||||
PartNumTxBl.Text = EgtMsg(MSG_IMPORTPAGEUC + 15) 'Numero
|
PartNumTxBl.Text = EgtMsg(MSG_IMPORTPAGEUC + 15) 'Numero
|
||||||
SideAngleBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 7) 'Inclina lati
|
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
|
DripCutBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 8) 'Incidi da sotto
|
||||||
|
EngraveBtn.Content = "Engrave"
|
||||||
DripDrillBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 14) 'Foro da sotto
|
DripDrillBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 14) 'Foro da sotto
|
||||||
Cad2dBtn.Content = "Cad 2d"
|
Cad2dBtn.Content = "Cad 2d"
|
||||||
|
|
||||||
@@ -97,7 +100,6 @@ Public Class ImportPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ImportPage_Loaded(sender As Object, e As RoutedEventArgs)
|
Private Sub ImportPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||||
|
|
||||||
' abilitazione importazione TRF
|
' abilitazione importazione TRF
|
||||||
m_bEnableTrf = (m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut And
|
m_bEnableTrf = (m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut And
|
||||||
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.TRF_IMPORT))
|
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.TRF_IMPORT))
|
||||||
@@ -159,10 +161,14 @@ Public Class ImportPageUC
|
|||||||
' Verifico esistenza Cad 2d
|
' Verifico esistenza Cad 2d
|
||||||
GetPrivateProfileString(S_CAD2D, K_CAD2D_NAME, "", m_sCad2dName, m_MainWindow.GetIniFile())
|
GetPrivateProfileString(S_CAD2D, K_CAD2D_NAME, "", m_sCad2dName, m_MainWindow.GetIniFile())
|
||||||
GetPrivateProfileString(S_CAD2D, K_CAD2D_EXEPATH, "", m_sCad2dPath, m_MainWindow.GetIniFile())
|
GetPrivateProfileString(S_CAD2D, K_CAD2D_EXEPATH, "", m_sCad2dPath, m_MainWindow.GetIniFile())
|
||||||
Cad2dBtn.IsEnabled = My.Computer.FileSystem.FileExists( m_sCad2dPath)
|
Cad2dBtn.IsEnabled = My.Computer.FileSystem.FileExists(m_sCad2dPath)
|
||||||
|
|
||||||
' Pulisco tutto
|
' Pulisco tutto
|
||||||
ClearView()
|
ClearView()
|
||||||
|
' Definizione di quale comando deve essere visualizzato
|
||||||
|
DripCutBtn.Visibility = If(String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw), Visibility.Hidden, Visibility.Visible)
|
||||||
|
EngraveBtn.Visibility = If(DripCutBtn.Visibility <> Visibility.Visible, Visibility.Visible, Visibility.Hidden)
|
||||||
|
|
||||||
FileListBox.UnselectAll()
|
FileListBox.UnselectAll()
|
||||||
' inibisco selezione diretta da Scene
|
' inibisco selezione diretta da Scene
|
||||||
ImportScene.SetStatusNull()
|
ImportScene.SetStatusNull()
|
||||||
@@ -174,7 +180,7 @@ Public Class ImportPageUC
|
|||||||
UseClosedCurveBtn.Visibility = Windows.Visibility.Visible
|
UseClosedCurveBtn.Visibility = Windows.Visibility.Visible
|
||||||
ResetBtn.Visibility = Windows.Visibility.Visible
|
ResetBtn.Visibility = Windows.Visibility.Visible
|
||||||
SideAngleBtn.Visibility = Windows.Visibility.Visible
|
SideAngleBtn.Visibility = Windows.Visibility.Visible
|
||||||
OrderListBtn.Visibility = If( m_bEnableOrderList, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
OrderListBtn.Visibility = If(m_bEnableOrderList, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
||||||
TopBtn.Visibility = Windows.Visibility.Visible
|
TopBtn.Visibility = Windows.Visibility.Visible
|
||||||
PartNumberGrd.Visibility = Windows.Visibility.Visible
|
PartNumberGrd.Visibility = Windows.Visibility.Visible
|
||||||
Else
|
Else
|
||||||
@@ -184,7 +190,7 @@ Public Class ImportPageUC
|
|||||||
ResetBtn.Visibility = Windows.Visibility.Hidden
|
ResetBtn.Visibility = Windows.Visibility.Hidden
|
||||||
SideAngleBtn.Visibility = Windows.Visibility.Hidden
|
SideAngleBtn.Visibility = Windows.Visibility.Hidden
|
||||||
OrderListBtn.Visibility = Windows.Visibility.Hidden
|
OrderListBtn.Visibility = Windows.Visibility.Hidden
|
||||||
TopBtn.Visibility = Windows.Visibility.Hidden
|
TopBtn.Visibility = Windows.Visibility.Hidden
|
||||||
PartNumberGrd.Visibility = Windows.Visibility.Hidden
|
PartNumberGrd.Visibility = Windows.Visibility.Hidden
|
||||||
End If
|
End If
|
||||||
mmBtn.IsEnabled = True
|
mmBtn.IsEnabled = True
|
||||||
@@ -201,6 +207,8 @@ Public Class ImportPageUC
|
|||||||
PartNumTxBx.Text = "1"
|
PartNumTxBx.Text = "1"
|
||||||
' disabilito ok
|
' disabilito ok
|
||||||
OkBtn.IsEnabled = False
|
OkBtn.IsEnabled = False
|
||||||
|
' Azzero l'idice di parcheggio
|
||||||
|
NewParkInd = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub LoadGridData()
|
Private Sub LoadGridData()
|
||||||
@@ -343,7 +351,12 @@ Public Class ImportPageUC
|
|||||||
ResetBtn.IsEnabled = False
|
ResetBtn.IsEnabled = False
|
||||||
SideAngleBtn.IsEnabled = False
|
SideAngleBtn.IsEnabled = False
|
||||||
FiloTopBtn.IsEnabled = False
|
FiloTopBtn.IsEnabled = False
|
||||||
DripCutBtn.IsEnabled = False
|
' Evito di settare le proprietà di oggeti che sono con visibilità Hidden
|
||||||
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = False
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = False
|
DripDrillBtn.IsEnabled = False
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
@@ -404,7 +417,11 @@ Public Class ImportPageUC
|
|||||||
OkBtn.IsEnabled = False
|
OkBtn.IsEnabled = False
|
||||||
SideAngleBtn.IsEnabled = False
|
SideAngleBtn.IsEnabled = False
|
||||||
FiloTopBtn.IsEnabled = False
|
FiloTopBtn.IsEnabled = False
|
||||||
DripCutBtn.IsEnabled = False
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = False
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = False
|
DripDrillBtn.IsEnabled = False
|
||||||
ElseIf m_nFileType = FT_TRF Or m_nFileType = FT_CUT Then
|
ElseIf m_nFileType = FT_TRF Or m_nFileType = FT_CUT Then
|
||||||
' abilito bottone Insert, disabilito bottoni UseLayer, UseClosedCurve, UseRegion e Reset
|
' abilito bottone Insert, disabilito bottoni UseLayer, UseClosedCurve, UseRegion e Reset
|
||||||
@@ -420,7 +437,11 @@ Public Class ImportPageUC
|
|||||||
OkBtn.IsEnabled = True
|
OkBtn.IsEnabled = True
|
||||||
SideAngleBtn.IsEnabled = False
|
SideAngleBtn.IsEnabled = False
|
||||||
FiloTopBtn.IsEnabled = False
|
FiloTopBtn.IsEnabled = False
|
||||||
DripCutBtn.IsEnabled = False
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = False
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = False
|
DripDrillBtn.IsEnabled = False
|
||||||
End If
|
End If
|
||||||
' altrimenti import per cornici
|
' altrimenti import per cornici
|
||||||
@@ -433,12 +454,12 @@ Public Class ImportPageUC
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Sub OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ImportScene.OnMouseDownScene
|
Private Sub OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ImportScene.OnMouseDownScene
|
||||||
If SideAngleBtn.IsChecked() Or DripCutBtn.IsChecked() Then
|
If SideAngleBtn.IsChecked() Or DripCutBtn.IsChecked() Or EngraveBtn.IsChecked Then
|
||||||
OnMouseDownSceneSideAngle( e)
|
OnMouseDownSceneSideAngle(e)
|
||||||
ElseIf DripDrillBtn.IsChecked() Then
|
ElseIf DripDrillBtn.IsChecked() Then
|
||||||
OnMouseDownSceneUnderDrill( e)
|
OnMouseDownSceneUnderDrill(e)
|
||||||
ElseIf FiloTopBtn.IsChecked() Then
|
ElseIf FiloTopBtn.IsChecked() Then
|
||||||
OnMouseDownSceneFiloTop( e)
|
OnMouseDownSceneFiloTop(e)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -568,14 +589,14 @@ Public Class ImportPageUC
|
|||||||
EgtDeselectObj(nId)
|
EgtDeselectObj(nId)
|
||||||
EgtDeselectObj(nLayId)
|
EgtDeselectObj(nLayId)
|
||||||
Dim sLayName As String = ""
|
Dim sLayName As String = ""
|
||||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo( nLayId, INFO_FILOTOP) Then
|
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo(nLayId, INFO_FILOTOP) Then
|
||||||
EgtRemoveInfo( nLayId, INFO_FILOTOP)
|
EgtRemoveInfo(nLayId, INFO_FILOTOP)
|
||||||
EgtRemoveInfo( nLayId, INFO_OFFSET)
|
EgtRemoveInfo(nLayId, INFO_OFFSET)
|
||||||
EgtRemoveInfo( nLayId, INFO_DEPTH)
|
EgtRemoveInfo(nLayId, INFO_DEPTH)
|
||||||
Dim nEntId As Integer = EgtGetFirstInGroup( nLayId)
|
Dim nEntId As Integer = EgtGetFirstInGroup(nLayId)
|
||||||
While nEntId <> GDB_ID.NULL
|
While nEntId <> GDB_ID.NULL
|
||||||
EgtSetColor(nEntId, New Color3d(127, 63, 0))
|
EgtSetColor(nEntId, New Color3d(127, 63, 0))
|
||||||
nEntId = EgtGetNext( nEntId)
|
nEntId = EgtGetNext(nEntId)
|
||||||
End While
|
End While
|
||||||
m_DeselectListHole.Add(nLayId)
|
m_DeselectListHole.Add(nLayId)
|
||||||
m_SelListHole.Remove(nLayId)
|
m_SelListHole.Remove(nLayId)
|
||||||
@@ -584,16 +605,16 @@ Public Class ImportPageUC
|
|||||||
Dim nLayId As Integer = GDB_ID.NULL
|
Dim nLayId As Integer = GDB_ID.NULL
|
||||||
EgtGetInfo(nId, "ID", nLayId)
|
EgtGetInfo(nId, "ID", nLayId)
|
||||||
Dim sLayName As String = ""
|
Dim sLayName As String = ""
|
||||||
If EgtGetName( nLayId, sLayName) AndAlso sLayName = NAME_INLOOP Then
|
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP Then
|
||||||
EgtSelectObj( nId)
|
EgtSelectObj(nId)
|
||||||
EgtSelectObj( nLayId)
|
EgtSelectObj(nLayId)
|
||||||
EgtSetInfo( nLayId, INFO_FILOTOP, 1)
|
EgtSetInfo(nLayId, INFO_FILOTOP, 1)
|
||||||
EgtSetInfo( nLayId, INFO_OFFSET, m_FiloTopUC.FiloTopOffset)
|
EgtSetInfo(nLayId, INFO_OFFSET, m_FiloTopUC.FiloTopOffset)
|
||||||
EgtSetInfo( nLayId, INFO_DEPTH, m_FiloTopUC.FiloTopDepth)
|
EgtSetInfo(nLayId, INFO_DEPTH, m_FiloTopUC.FiloTopDepth)
|
||||||
Dim nEntId As Integer = EgtGetFirstInGroup( nLayId)
|
Dim nEntId As Integer = EgtGetFirstInGroup(nLayId)
|
||||||
While nEntId <> GDB_ID.NULL
|
While nEntId <> GDB_ID.NULL
|
||||||
EgtSetColor(nEntId, New Color3d(255, 255, 255))
|
EgtSetColor(nEntId, New Color3d(255, 255, 255))
|
||||||
nEntId = EgtGetNext( nEntId)
|
nEntId = EgtGetNext(nEntId)
|
||||||
End While
|
End While
|
||||||
m_SelListHole.Add(nLayId)
|
m_SelListHole.Add(nLayId)
|
||||||
m_DeselectListHole.Remove(nLayId)
|
m_DeselectListHole.Remove(nLayId)
|
||||||
@@ -619,7 +640,7 @@ Public Class ImportPageUC
|
|||||||
|
|
||||||
Private Sub SelectedPartChanged()
|
Private Sub SelectedPartChanged()
|
||||||
' Se sono in modalità inclinazioni o gocciolatoio calcolo lati inclinabili e creo testi
|
' Se sono in modalità inclinazioni o gocciolatoio calcolo lati inclinabili e creo testi
|
||||||
If SideAngleBtn.IsChecked() Or DripCutBtn.IsChecked() Then
|
If SideAngleBtn.IsChecked() Or DripCutBtn.IsChecked() Or EngraveBtn.IsChecked() Then
|
||||||
m_SideAngleUC.ReLoadSideAnglePage()
|
m_SideAngleUC.ReLoadSideAnglePage()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
@@ -642,7 +663,7 @@ Public Class ImportPageUC
|
|||||||
' Ciclo sulle regioni
|
' Ciclo sulle regioni
|
||||||
Dim EntId As Integer = EgtGetFirstInGroup(RegionId)
|
Dim EntId As Integer = EgtGetFirstInGroup(RegionId)
|
||||||
While EntId <> GDB_ID.NULL
|
While EntId <> GDB_ID.NULL
|
||||||
If EgtGetType( EntId) = GDB_TY.SRF_FRGN Then EgtSetColor(EntId, InsertColor)
|
If EgtGetType(EntId) = GDB_TY.SRF_FRGN Then EgtSetColor(EntId, InsertColor)
|
||||||
EntId = EgtGetNext(EntId)
|
EntId = EgtGetNext(EntId)
|
||||||
End While
|
End While
|
||||||
RegionId = EgtGetNextName(PartId, NAME_REGION)
|
RegionId = EgtGetNextName(PartId, NAME_REGION)
|
||||||
@@ -680,8 +701,12 @@ Public Class ImportPageUC
|
|||||||
' abilito bottone angoli su lati esterni
|
' abilito bottone angoli su lati esterni
|
||||||
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
||||||
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -712,8 +737,12 @@ Public Class ImportPageUC
|
|||||||
' abilito bottone angoli su lati esterni
|
' abilito bottone angoli su lati esterni
|
||||||
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
||||||
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -744,8 +773,12 @@ Public Class ImportPageUC
|
|||||||
' abilito bottone angoli su lati esterni
|
' abilito bottone angoli su lati esterni
|
||||||
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
||||||
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -826,20 +859,38 @@ Public Class ImportPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OrderListBtn_Click(sender As Object, e As RoutedEventArgs) Handles OrderListBtn.Click
|
Private Sub OrderListBtn_Click(sender As Object, e As RoutedEventArgs) Handles OrderListBtn.Click
|
||||||
Dim DlgOrderList As New CompoCsvData( m_MainWindow)
|
Dim DlgOrderList As New CompoCsvData(m_MainWindow)
|
||||||
DlgOrderList.SetData( m_sOrder, m_sList)
|
DlgOrderList.SetData(m_sOrder, m_sList)
|
||||||
If DlgOrderList.ShowDialog() Then
|
If DlgOrderList.ShowDialog() Then
|
||||||
DlgOrderList.GetData( m_sOrder, m_sList)
|
DlgOrderList.GetData(m_sOrder, m_sList)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||||
m_SceneButtons.MeasureBtn.IsChecked = False
|
m_SceneButtons.MeasureBtn.IsChecked = False
|
||||||
|
' Genero l'immagine solo se è abilitata la modalità
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then Print()
|
||||||
' Se import per pezzi piatti
|
' Se import per pezzi piatti
|
||||||
If m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut Then
|
If m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut Then
|
||||||
' Eseguo importazione pezzi piatti
|
' Eseguo importazione pezzi piatti
|
||||||
LoadFlatParts()
|
LoadFlatParts()
|
||||||
' altrimenti import per cornici
|
|
||||||
|
' Aggiorno la gestione dei parcheggi: spengo tutti i parcheggi tranne quello indicato
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
For Each ItemParkInd As ParkInd In ListParkInd
|
||||||
|
If ItemParkInd.Ind = NewParkInd Then
|
||||||
|
ItemParkInd.Status = GDB_ST.ON_
|
||||||
|
Else
|
||||||
|
ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
' Aggiorno lo stato dei pezzi
|
||||||
|
For Each Item As ParkInd In ListParkInd
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(Item, False)
|
||||||
|
Next
|
||||||
|
|
||||||
|
' altrimenti import per cornici
|
||||||
Else
|
Else
|
||||||
LoadFrame()
|
LoadFrame()
|
||||||
End If
|
End If
|
||||||
@@ -849,6 +900,80 @@ Public Class ImportPageUC
|
|||||||
m_MainWindow.m_ActivePage = m_MainWindow.m_PrevActivePage
|
m_MainWindow.m_ActivePage = m_MainWindow.m_PrevActivePage
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
' Creo una immagine del progetto da importare salvato nel percorso di progetto "..\(#ProjInd)_ParkInd_(#ParkInd).png"
|
||||||
|
Public Sub Print()
|
||||||
|
' recupero la lista degli indici di parcheggio
|
||||||
|
NewParkInd = SelParkIndWD.NewParkInd()
|
||||||
|
|
||||||
|
Dim SM_Select As SM = SM.SHADING
|
||||||
|
' SM_Select = SM.HIDDENLINE
|
||||||
|
' SM_Select = SM.WIREFRAME
|
||||||
|
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
|
||||||
|
Dim sPath As String = SelParkIndWD.GetPathCurrProj() & NewParkInd.ToString & ".png"
|
||||||
|
' Recupero le dimensioni dell'area di stampa
|
||||||
|
Dim dW As Integer = 120
|
||||||
|
Dim dH As Integer = 120
|
||||||
|
|
||||||
|
If Not MainWindow.m_bShowSVGParkInd Then
|
||||||
|
Try
|
||||||
|
' Prendo l'immagine corrente per la stampa
|
||||||
|
Dim colBackTopColor As Color3d = GetBackTopColor()
|
||||||
|
Dim colBackBottomColor As Color3d = GetBackBottomColor()
|
||||||
|
' Recupero le dimensioni correnti della pagina di disegno
|
||||||
|
Dim nImgW As Integer = m_MainWindow.m_CurrentProjectPageUC.ActualWidth()
|
||||||
|
Dim nImgH As Integer = m_MainWindow.m_CurrentProjectPageUC.ActualHeight()
|
||||||
|
If Not EgtGetImage(SM_Select, colBackTopColor, colBackBottomColor, nImgW, nImgH, sPath) Then
|
||||||
|
' Error in creating the print image
|
||||||
|
EgtOutLog(EgtMsg(50181))
|
||||||
|
EgtSetLineAttribs(1)
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
EgtSetLineAttribs(1)
|
||||||
|
'Metodo complesso di stampa che permette di rilasciare il file :
|
||||||
|
'carico la bitmap e la metto in uno stream in memoria
|
||||||
|
Dim stream As System.IO.Stream = New System.IO.MemoryStream()
|
||||||
|
Dim bitmap As System.Drawing.Bitmap = New System.Drawing.Bitmap(sPath)
|
||||||
|
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png)
|
||||||
|
bitmap.Dispose()
|
||||||
|
' la sposto in una BitmapImage
|
||||||
|
Dim bitImage As New System.Windows.Media.Imaging.BitmapImage()
|
||||||
|
bitImage.BeginInit()
|
||||||
|
bitImage.StreamSource = stream
|
||||||
|
bitImage.EndInit()
|
||||||
|
' la sposto in un Visual Control
|
||||||
|
Dim tmpImg As New Image
|
||||||
|
tmpImg.BeginInit()
|
||||||
|
tmpImg.Source = bitImage
|
||||||
|
tmpImg.Stretch = Stretch.Uniform
|
||||||
|
tmpImg.EndInit()
|
||||||
|
' eseguo la stampa
|
||||||
|
Catch
|
||||||
|
' Rrror in executing print
|
||||||
|
EgtOutLog(EgtMsg(50182))
|
||||||
|
End Try
|
||||||
|
Else
|
||||||
|
' Assegno dei nomi ai pezzi (Da controllare bene se funzione sempre)...riassegno i nomi dopo?
|
||||||
|
Dim nIdPart As Integer = EgtGetFirstPart()
|
||||||
|
Dim nIndex As Integer = 0
|
||||||
|
While nIdPart <> GDB_ID.NULL
|
||||||
|
' recupero il primo layer del part
|
||||||
|
Dim nIdLay As Integer = EgtGetFirstLayer(nIdPart)
|
||||||
|
While nIdLay <> GDB_ID.NULL
|
||||||
|
Dim nIdEnt As Integer = EgtGetFirstInGroup(nIdLay)
|
||||||
|
While nIdEnt <> GDB_ID.NULL
|
||||||
|
EgtSetName(nIdEnt, nIndex.ToString)
|
||||||
|
nIdEnt = EgtGetNext(nIdEnt)
|
||||||
|
nIndex = nIndex + 1
|
||||||
|
End While
|
||||||
|
nIdLay = EgtGetNextLayer(nIdLay)
|
||||||
|
End While
|
||||||
|
nIdPart = EgtGetNextPart(nIdPart)
|
||||||
|
End While
|
||||||
|
EgtExportSvg(GDB_ID.ROOT, SelParkIndWD.GetPathCurrProj() & NewParkInd.ToString & ".svg")
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub LoadFlatParts()
|
Private Sub LoadFlatParts()
|
||||||
' Cancello regioni di selezione dai pezzi
|
' Cancello regioni di selezione dai pezzi
|
||||||
Dim PartId As Integer = EgtGetFirstPart()
|
Dim PartId As Integer = EgtGetFirstPart()
|
||||||
@@ -921,21 +1046,37 @@ Public Class ImportPageUC
|
|||||||
If My.Computer.FileSystem.FileExists(sTmpFile) Then
|
If My.Computer.FileSystem.FileExists(sTmpFile) Then
|
||||||
My.Computer.FileSystem.DeleteFile(sTmpFile)
|
My.Computer.FileSystem.DeleteFile(sTmpFile)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Calcolo l'area dei pezzi inseriti
|
' Calcolo l'area dei pezzi inseriti
|
||||||
Dim dNewArea As Double = 0
|
Dim dNewArea As Double = 0
|
||||||
Dim nId As Integer = nFirstId
|
Dim nId As Integer = nFirstId
|
||||||
While nId <> GDB_ID.NULL
|
While nId <> GDB_ID.NULL
|
||||||
|
' Definisco l'indice di parcheggio asssganto al pezzo
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||||
|
EgtSetInfo(nId, INFO_PARKIND, NewParkInd.ToString)
|
||||||
|
' Imposto lo stato
|
||||||
|
EgtSetStatus(nId, GDB_ST.ON_)
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtSetInfo(nId, INFO_PARKSTATUS, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
dNewArea += GeomCalc.GetPartArea(nId)
|
dNewArea += GeomCalc.GetPartArea(nId)
|
||||||
' Passo al pezzo successivo
|
' Passo al pezzo successivo
|
||||||
nId = EgtGetNextPart(nId)
|
nId = EgtGetNextPart(nId)
|
||||||
End While
|
End While
|
||||||
' Nascondo tutti i pezzi inseriti (per evitare interferenze con pezzi in fase di parcheggio)
|
' Nascondo tutti i pezzi inseriti (per evitare interferenze con pezzi in fase di parcheggio)
|
||||||
nId = nFirstId
|
nId = nFirstId
|
||||||
|
Dim GlobBBox As New BBox3d
|
||||||
While nId <> GDB_ID.NULL
|
While nId <> GDB_ID.NULL
|
||||||
|
Dim bboxTemp As New BBox3d
|
||||||
|
EgtGetBBox(nId, 0, bboxTemp)
|
||||||
|
GlobBBox.Add(bboxTemp)
|
||||||
EgtSetStatus(nId, GDB_ST.OFF)
|
EgtSetStatus(nId, GDB_ST.OFF)
|
||||||
' Passo al pezzo successivo
|
' Passo al pezzo successivo
|
||||||
nId = EgtGetNextPart(nId)
|
nId = EgtGetNextPart(nId)
|
||||||
End While
|
End While
|
||||||
|
Dim DimX As Double = GlobBBox.DimX
|
||||||
|
Dim DimY As Double = GlobBBox.DimY
|
||||||
|
Dim BBoxMaxPt As Point3d = GlobBBox.Max
|
||||||
|
|
||||||
' Ciclo sui pezzi inseriti
|
' Ciclo sui pezzi inseriti
|
||||||
nId = nFirstId
|
nId = nFirstId
|
||||||
@@ -972,7 +1113,12 @@ Public Class ImportPageUC
|
|||||||
' Imposto path di provenienza
|
' Imposto path di provenienza
|
||||||
EgtSetInfo(nId, INFO_SOU_PATH, IO.Path.Combine(m_sCurrDir, m_sCurrFile))
|
EgtSetInfo(nId, INFO_SOU_PATH, IO.Path.Combine(m_sCurrDir, m_sCurrFile))
|
||||||
' Inserisco in parcheggio
|
' Inserisco in parcheggio
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId, True)
|
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, DimX, DimY, BBoxMaxPt)
|
||||||
|
Else
|
||||||
|
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId, True)
|
||||||
|
End If
|
||||||
' Recupero Id di pezzo successivo
|
' Recupero Id di pezzo successivo
|
||||||
Dim nNextId As Integer = EgtGetNextPart(nId)
|
Dim nNextId As Integer = EgtGetNextPart(nId)
|
||||||
' Se richiesto posizionamento diretto, lo eseguo
|
' Se richiesto posizionamento diretto, lo eseguo
|
||||||
@@ -1029,22 +1175,24 @@ Public Class ImportPageUC
|
|||||||
' Salvo direttorio corrente
|
' Salvo direttorio corrente
|
||||||
WritePrivateProfileString(S_FLATPARTS, K_FLPCURRDIR, m_sCurrDir, m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_FLATPARTS, K_FLPCURRDIR, m_sCurrDir, m_MainWindow.GetIniFile())
|
||||||
' Tolgo pagina inclinazioni/gocciolatoi se attiva
|
' Tolgo pagina inclinazioni/gocciolatoi se attiva
|
||||||
If SideAngleBtn.IsChecked() Or DripCutBtn.IsChecked() Then
|
If SideAngleBtn.IsChecked() Or DripCutBtn.IsChecked() Or EngraveBtn.IsChecked() Then
|
||||||
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||||
FileListBox.Visibility = Windows.Visibility.Visible
|
FileListBox.Visibility = Windows.Visibility.Visible
|
||||||
LeftGrid.Children.Remove(m_SideAngleUC)
|
LeftGrid.Children.Remove(m_SideAngleUC)
|
||||||
If SideAngleBtn.IsChecked() Then
|
If SideAngleBtn.IsChecked() Then
|
||||||
SideAngleBtn.IsChecked = False
|
SideAngleBtn.IsChecked = False
|
||||||
|
ElseIf EngraveBtn.IsChecked() Then
|
||||||
|
EngraveBtn.IsChecked = False
|
||||||
Else
|
Else
|
||||||
DripCutBtn.IsChecked() = False
|
DripCutBtn.IsChecked() = False
|
||||||
End If
|
End If
|
||||||
' Tolgo pagina fori da sotto se attiva
|
' Tolgo pagina fori da sotto se attiva
|
||||||
ElseIf DripDrillBtn.IsChecked() Then
|
ElseIf DripDrillBtn.IsChecked() Then
|
||||||
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||||
FileListBox.Visibility = Windows.Visibility.Visible
|
FileListBox.Visibility = Windows.Visibility.Visible
|
||||||
LeftGrid.Children.Remove(m_UnderDrillUC)
|
LeftGrid.Children.Remove(m_UnderDrillUC)
|
||||||
DripDrillBtn.IsChecked() = False
|
DripDrillBtn.IsChecked() = False
|
||||||
' Tolgo pagina Filo Top se attiva
|
' Tolgo pagina Filo Top se attiva
|
||||||
ElseIf FiloTopBtn.IsChecked() Then
|
ElseIf FiloTopBtn.IsChecked() Then
|
||||||
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||||
FileListBox.Visibility = Windows.Visibility.Visible
|
FileListBox.Visibility = Windows.Visibility.Visible
|
||||||
@@ -1071,7 +1219,11 @@ Public Class ImportPageUC
|
|||||||
FileListBox.Visibility = Windows.Visibility.Hidden
|
FileListBox.Visibility = Windows.Visibility.Hidden
|
||||||
' Disabilito FiloTopBtn, DripCutBtn, DripDrillBtn e unità di misura
|
' Disabilito FiloTopBtn, DripCutBtn, DripDrillBtn e unità di misura
|
||||||
FiloTopBtn.IsEnabled = False
|
FiloTopBtn.IsEnabled = False
|
||||||
DripCutBtn.IsEnabled = False
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = False
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = False
|
DripDrillBtn.IsEnabled = False
|
||||||
mmBtn.IsEnabled = False
|
mmBtn.IsEnabled = False
|
||||||
inchBtn.IsEnabled = False
|
inchBtn.IsEnabled = False
|
||||||
@@ -1093,8 +1245,72 @@ Public Class ImportPageUC
|
|||||||
EgtDeselectAll()
|
EgtDeselectAll()
|
||||||
' Riabilito FiloTopBtn, DripCutBtn, DripDrillBtn e unità di misura
|
' Riabilito FiloTopBtn, DripCutBtn, DripDrillBtn e unità di misura
|
||||||
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
||||||
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
End If
|
||||||
|
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
||||||
|
mmBtn.IsEnabled = True
|
||||||
|
inchBtn.IsEnabled = True
|
||||||
|
' Elimino scritte angoli per input e inserisco quelle definitive
|
||||||
|
SideAngle.WriteSideAngleForNest(ImportScene.GetCtx())
|
||||||
|
' Riabilito bottone reset
|
||||||
|
ResetBtn.IsEnabled = True
|
||||||
|
' Pulisco area messaggi
|
||||||
|
MessageTxBx.Text = ""
|
||||||
|
MessageBrd.Background = Brushes.Transparent
|
||||||
|
End If
|
||||||
|
EgtZoom(ZM.ALL)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub EngraveBtn_Click(sender As Object, e As RoutedEventArgs) Handles EngraveBtn.Click
|
||||||
|
If EngraveBtn.IsChecked() Then
|
||||||
|
FinderGrd.Visibility = Visibility.Hidden
|
||||||
|
' Aggiungo regioni per percorsi interni
|
||||||
|
AdjustSelectRegions()
|
||||||
|
' Dichiaro nessuna selezione
|
||||||
|
m_nSelectedPart = GDB_ID.NULL
|
||||||
|
m_nSelectedLayer = GDB_ID.NULL
|
||||||
|
' Imposto modalità sideangle
|
||||||
|
m_SideAngleUC.m_Mode = SideAngleUC.ModeOpt.ENGRAVE
|
||||||
|
LeftGrid.Children.Add(m_SideAngleUC)
|
||||||
|
FilePathTxBl.Visibility = Windows.Visibility.Hidden
|
||||||
|
FileListBox.Visibility = Windows.Visibility.Hidden
|
||||||
|
' Disabilito FiloTopBtn, DripCutBtn, DripDrillBtn e unità di misura
|
||||||
|
SideAngleBtn.IsEnabled = False
|
||||||
|
FiloTopBtn.IsEnabled = False
|
||||||
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
|
DripDrillBtn.IsEnabled = False
|
||||||
|
mmBtn.IsEnabled = False
|
||||||
|
inchBtn.IsEnabled = False
|
||||||
|
' Disabilito bottone reset
|
||||||
|
ResetBtn.IsEnabled = False
|
||||||
|
' Messaggio di selezione da effettuare
|
||||||
|
MessageTxBx.Text = EgtMsg(MSG_DRAWPAGEUC + 6) ' Selezionare un contorno
|
||||||
|
MessageBrd.Background = Application.Current.FindResource("OmagCut_Green")
|
||||||
|
Else
|
||||||
|
FinderGrd.Visibility = Visibility.Visible
|
||||||
|
' Rimuovo regioni per percorsi interni
|
||||||
|
RemoveSelectRegions()
|
||||||
|
FilePathTxBl.Visibility = Windows.Visibility.Visible
|
||||||
|
FileListBox.Visibility = Windows.Visibility.Visible
|
||||||
|
LeftGrid.Children.Remove(m_SideAngleUC)
|
||||||
|
' Deseleziono eventuali pezzi rimasti selezionati
|
||||||
|
m_nSelectedPart = GDB_ID.NULL
|
||||||
|
m_nSelectedLayer = GDB_ID.NULL
|
||||||
|
EgtDeselectAll()
|
||||||
|
' Riabilito FiloTopBtn, DripCutBtn, DripDrillBtn e unità di misura
|
||||||
|
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
||||||
|
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
||||||
mmBtn.IsEnabled = True
|
mmBtn.IsEnabled = True
|
||||||
@@ -1124,6 +1340,9 @@ Public Class ImportPageUC
|
|||||||
' Disabilito SideAngleBtn,FiloTop, DripDrillBtn e unità di misura
|
' Disabilito SideAngleBtn,FiloTop, DripDrillBtn e unità di misura
|
||||||
SideAngleBtn.IsEnabled = False
|
SideAngleBtn.IsEnabled = False
|
||||||
FiloTopBtn.IsEnabled = False
|
FiloTopBtn.IsEnabled = False
|
||||||
|
If DripCutBtn.Visibility <> Visibility.Visible Then
|
||||||
|
EngraveBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = False
|
DripDrillBtn.IsEnabled = False
|
||||||
mmBtn.IsEnabled = False
|
mmBtn.IsEnabled = False
|
||||||
inchBtn.IsEnabled = False
|
inchBtn.IsEnabled = False
|
||||||
@@ -1144,8 +1363,9 @@ Public Class ImportPageUC
|
|||||||
' Riabilito SideAngleBtn, FiloTop, DripDrillBtn e unità di misura
|
' Riabilito SideAngleBtn, FiloTop, DripDrillBtn e unità di misura
|
||||||
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
||||||
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
If DripCutBtn.Visibility <> Visibility.Visible Then
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
EngraveBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
End If
|
||||||
mmBtn.IsEnabled = True
|
mmBtn.IsEnabled = True
|
||||||
inchBtn.IsEnabled = True
|
inchBtn.IsEnabled = True
|
||||||
' Elimino scritte angoli per input e inserisco quelle definitive
|
' Elimino scritte angoli per input e inserisco quelle definitive
|
||||||
@@ -1174,7 +1394,11 @@ Public Class ImportPageUC
|
|||||||
' Disabilito SideAngleBtn, FiloTop, DripCutBtn e unità di misura
|
' Disabilito SideAngleBtn, FiloTop, DripCutBtn e unità di misura
|
||||||
SideAngleBtn.IsEnabled = False
|
SideAngleBtn.IsEnabled = False
|
||||||
FiloTopBtn.IsEnabled = False
|
FiloTopBtn.IsEnabled = False
|
||||||
DripCutBtn.IsEnabled = False
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = False
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
mmBtn.IsEnabled = False
|
mmBtn.IsEnabled = False
|
||||||
inchBtn.IsEnabled = False
|
inchBtn.IsEnabled = False
|
||||||
' Disabilito bottone reset
|
' Disabilito bottone reset
|
||||||
@@ -1196,8 +1420,12 @@ Public Class ImportPageUC
|
|||||||
' Riabilito SideAngleBtn, FiloTop, DripCutBtn e unità di misura
|
' Riabilito SideAngleBtn, FiloTop, DripCutBtn e unità di misura
|
||||||
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
||||||
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
End If
|
||||||
mmBtn.IsEnabled = True
|
mmBtn.IsEnabled = True
|
||||||
inchBtn.IsEnabled = True
|
inchBtn.IsEnabled = True
|
||||||
' Riabilito bottone reset
|
' Riabilito bottone reset
|
||||||
@@ -1223,7 +1451,11 @@ Public Class ImportPageUC
|
|||||||
FileListBox.Visibility = Windows.Visibility.Hidden
|
FileListBox.Visibility = Windows.Visibility.Hidden
|
||||||
' Disabilito SideAngleBtn, DripCutBtn, DripDrillBtn e unità di misura
|
' Disabilito SideAngleBtn, DripCutBtn, DripDrillBtn e unità di misura
|
||||||
SideAngleBtn.IsEnabled = False
|
SideAngleBtn.IsEnabled = False
|
||||||
DripCutBtn.IsEnabled = False
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = False
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = False
|
DripDrillBtn.IsEnabled = False
|
||||||
mmBtn.IsEnabled = False
|
mmBtn.IsEnabled = False
|
||||||
inchBtn.IsEnabled = False
|
inchBtn.IsEnabled = False
|
||||||
@@ -1245,8 +1477,12 @@ Public Class ImportPageUC
|
|||||||
EgtDeselectAll()
|
EgtDeselectAll()
|
||||||
' Riabilito SideAngleBtn, DripCutBtn, DripDrillBtn e unità di misura
|
' Riabilito SideAngleBtn, DripCutBtn, DripDrillBtn e unità di misura
|
||||||
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
If DripCutBtn.Visibility = Visibility.Visible Then
|
||||||
|
DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
||||||
|
Else
|
||||||
|
EngraveBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
||||||
|
End If
|
||||||
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
DripDrillBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
||||||
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripDrill)
|
||||||
mmBtn.IsEnabled = True
|
mmBtn.IsEnabled = True
|
||||||
@@ -1305,8 +1541,9 @@ Public Class ImportPageUC
|
|||||||
If nType = GDB_TY.CRV_LINE Or nType = GDB_TY.CRV_ARC Or nType = GDB_TY.CRV_COMPO Then
|
If nType = GDB_TY.CRV_LINE Or nType = GDB_TY.CRV_ARC Or nType = GDB_TY.CRV_COMPO Then
|
||||||
vCrvId.Add(nCrvId)
|
vCrvId.Add(nCrvId)
|
||||||
End If
|
End If
|
||||||
ElseIf DripDrillBtn.IsChecked
|
ElseIf DripDrillBtn.IsChecked Then
|
||||||
if nType = GDB_TY.CRV_ARC
|
|
||||||
|
If nType = GDB_TY.CRV_ARC Then
|
||||||
vCrvId.Add(nCrvId)
|
vCrvId.Add(nCrvId)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -1332,11 +1569,11 @@ Public Class ImportPageUC
|
|||||||
|
|
||||||
Private Sub Cad2dBtn_Click(sender As Object, e As RoutedEventArgs) Handles Cad2dBtn.Click
|
Private Sub Cad2dBtn_Click(sender As Object, e As RoutedEventArgs) Handles Cad2dBtn.Click
|
||||||
|
|
||||||
Dim ProcsCad2d As Process() = Process.GetProcessesByName( m_sCad2dName)
|
Dim ProcsCad2d As Process() = Process.GetProcessesByName(m_sCad2dName)
|
||||||
If ProcsCad2d.Length() > 0 Then
|
If ProcsCad2d.Length() > 0 Then
|
||||||
ShowWindow( ProcsCad2d(0).MainWindowHandle, 3)
|
ShowWindow(ProcsCad2d(0).MainWindowHandle, 3)
|
||||||
Else
|
Else
|
||||||
Process.Start( m_sCad2dPath)
|
Process.Start(m_sCad2dPath)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@@ -1345,42 +1582,42 @@ End Class
|
|||||||
|
|
||||||
Public Class IconListBoxItem
|
Public Class IconListBoxItem
|
||||||
|
|
||||||
Private m_iPictureID As Integer
|
Private m_iPictureID As Integer
|
||||||
Private m_sName As String
|
Private m_sName As String
|
||||||
|
|
||||||
Public Property PictureID() As Integer
|
Public Property PictureID() As Integer
|
||||||
Get
|
Get
|
||||||
Return m_iPictureID
|
Return m_iPictureID
|
||||||
End Get
|
End Get
|
||||||
Set(value As Integer)
|
Set(value As Integer)
|
||||||
m_iPictureID = value
|
m_iPictureID = value
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public Property Name() As String
|
Public Property Name() As String
|
||||||
Get
|
Get
|
||||||
Return m_sName
|
Return m_sName
|
||||||
End Get
|
End Get
|
||||||
Set(value As String)
|
Set(value As String)
|
||||||
m_sName = value
|
m_sName = value
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public ReadOnly Property PictureString() As String
|
Public ReadOnly Property PictureString() As String
|
||||||
Get
|
Get
|
||||||
Return "/Resources/ImportPageListBoxImages/" + PictureID.ToString() + ".png"
|
Return "/Resources/ImportPageListBoxImages/" + PictureID.ToString() + ".png"
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Sub New()
|
Sub New()
|
||||||
Me.Name = String.Empty
|
Me.Name = String.Empty
|
||||||
Me.PictureID = 0
|
Me.PictureID = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub New(Name As String, PictureID As Integer)
|
Sub New(Name As String, PictureID As Integer)
|
||||||
Me.Name = Name
|
Me.Name = Name
|
||||||
Me.PictureID = PictureID
|
Me.PictureID = PictureID
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
@@ -226,6 +226,10 @@ Module SideAngle
|
|||||||
EgtSetInfo(EntId, INFO_SIDE_ANGLE, dAng)
|
EgtSetInfo(EntId, INFO_SIDE_ANGLE, dAng)
|
||||||
EgtSetInfo(EntId, INFO_ORIG_SIDE_ANGLE, dAng)
|
EgtSetInfo(EntId, INFO_ORIG_SIDE_ANGLE, dAng)
|
||||||
EgtSetInfo(EntId, INFO_HEEL, dHeel)
|
EgtSetInfo(EntId, INFO_HEEL, dHeel)
|
||||||
|
Dim sSawingTilted As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
|
||||||
|
If Not String.IsNullOrEmpty(sSawingTilted) Then
|
||||||
|
EgtSetInfo(EntId, DEF_MACHINING, sSawingTilted)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -1303,10 +1303,15 @@ Public Class SideAngleUC
|
|||||||
If dSideAngle <> 0 Then
|
If dSideAngle <> 0 Then
|
||||||
EgtSetInfo(CurrEntity.nGeomId, INFO_SIDE_ANGLE, dSideAngle)
|
EgtSetInfo(CurrEntity.nGeomId, INFO_SIDE_ANGLE, dSideAngle)
|
||||||
EgtSetInfo(CurrEntity.nGeomId, INFO_ORIG_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, sSawingTilted)
|
||||||
|
End If
|
||||||
|
' Cancello inclinazione nell'apposito campo info
|
||||||
Else
|
Else
|
||||||
EgtRemoveInfo(CurrEntity.nGeomId, INFO_SIDE_ANGLE)
|
EgtRemoveInfo(CurrEntity.nGeomId, INFO_SIDE_ANGLE)
|
||||||
EgtRemoveInfo(CurrEntity.nGeomId, INFO_ORIG_SIDE_ANGLE)
|
EgtRemoveInfo(CurrEntity.nGeomId, INFO_ORIG_SIDE_ANGLE)
|
||||||
|
EgtRemoveInfo(CurrEntity.nGeomId, DEF_MACHINING)
|
||||||
End If
|
End If
|
||||||
' Aggiorno lista entità con nuova inclinazione
|
' Aggiorno lista entità con nuova inclinazione
|
||||||
CurrEntity.dSideAngle = dSideAngle
|
CurrEntity.dSideAngle = dSideAngle
|
||||||
|
|||||||
@@ -123,10 +123,19 @@
|
|||||||
<EgtWPFLib:EgtTextBox Name="OffsYyTxBx" Grid.Column="2" Grid.Row="4" Width="50"
|
<EgtWPFLib:EgtTextBox Name="OffsYyTxBx" Grid.Column="2" Grid.Row="4" Width="50"
|
||||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||||
|
|
||||||
<TextBlock Name="OffsXInteryTxBl" Grid.Row="5" Grid.ColumnSpan="2"
|
<Grid Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="3">
|
||||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
<Grid.ColumnDefinitions>
|
||||||
<EgtWPFLib:EgtTextBox Name="OffsXInteryTxBx" Grid.Column="2" Grid.Row="5" Width="50"
|
<ColumnDefinition Width="1.5*"/>
|
||||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
<ColumnDefinition Width="0.5*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="OffsXInteryTxBl" Grid.Column="0"
|
||||||
|
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||||
|
<CheckBox Name="UseInteraxisChBx" Grid.Row="7" Grid.Column="1" Height="30" Width="40" HorizontalAlignment="Right"
|
||||||
|
Margin="-20,0,0,0"/>
|
||||||
|
<EgtWPFLib:EgtTextBox Name="OffsXInteryTxBx" Grid.Column="2" Width="50"
|
||||||
|
Style="{DynamicResource OmagCut_CalculatorTextBox}" IsEnabled="{Binding ElementName=UseInteraxisChBx, Path=IsChecked}"/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
|
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
|
||||||
<Button Name="MirrorPartBtn"
|
<Button Name="MirrorPartBtn"
|
||||||
|
|||||||
@@ -54,6 +54,8 @@ Public Class FrameCutPageUC
|
|||||||
OffsYyTxBx.Text = LenToString(dOffsYY, 3)
|
OffsYyTxBx.Text = LenToString(dOffsYY, 3)
|
||||||
Dim dOffsXInterY As Double = GetPrivateProfileDouble(S_FRAME, K_OFFSXINTERY, 5, m_MainWindow.GetIniFile())
|
Dim dOffsXInterY As Double = GetPrivateProfileDouble(S_FRAME, K_OFFSXINTERY, 5, m_MainWindow.GetIniFile())
|
||||||
OffsXInteryTxBx.Text = LenToString(dOffsXInterY, 3)
|
OffsXInteryTxBx.Text = LenToString(dOffsXInterY, 3)
|
||||||
|
Dim bOffsYInterYSawTh As Boolean = False
|
||||||
|
UseInteraxisChBx.IsChecked = (GetPrivateProfileInt(S_FRAME, K_OFFSXINTERYSAWTH, 0, m_MainWindow.GetIniFile()) <> 1)
|
||||||
|
|
||||||
' Imposto i messaggi letti dal file dei messaggi
|
' Imposto i messaggi letti dal file dei messaggi
|
||||||
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 1)) 'Lungo X
|
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 1)) 'Lungo X
|
||||||
@@ -73,6 +75,17 @@ Public Class FrameCutPageUC
|
|||||||
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 9) 'Distanza inizio
|
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 9) 'Distanza inizio
|
||||||
OffsYyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 22) 'Distanza Y
|
OffsYyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 22) 'Distanza Y
|
||||||
OffsXInteryTxBl.Text = EgtMsg(90645) 'Interasse
|
OffsXInteryTxBl.Text = EgtMsg(90645) 'Interasse
|
||||||
|
Dim sChBxToolTip As String = EgtMsg(90646) 'Applica valore indicato\n altrienti spessore lama
|
||||||
|
sChBxToolTip = sChBxToolTip.Replace("/n", "£")
|
||||||
|
Dim sItems As String() = sChBxToolTip.Split("£")
|
||||||
|
For Index As Integer = 0 To sItems.Count - 1
|
||||||
|
If Index = 0 Then
|
||||||
|
sChBxToolTip = sItems(Index).Trim
|
||||||
|
Else
|
||||||
|
sChBxToolTip &= vbCrLf & sItems(Index).Trim
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
UseInteraxisChBx.ToolTip = sChBxToolTip
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub FrameCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
Private Sub FrameCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||||
@@ -280,7 +293,7 @@ Public Class FrameCutPageUC
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OffsXXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsZTxBx.EgtClosed, OffsXyTxBx.EgtClosed, OffsYyTxBx.EgtClosed, OffsXInteryTxBx.EgtClosed
|
Private Sub OffsXXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsZTxBx.EgtClosed, OffsXyTxBx.EgtClosed, OffsYyTxBx.EgtClosed, OffsXInteryTxBx.EgtClosed, UseInteraxisChBx.Click
|
||||||
' Forzo aggiornamento grezzo nella pagina di Nesting
|
' Forzo aggiornamento grezzo nella pagina di Nesting
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.CalcRawPart()
|
m_MainWindow.m_CadCutPageUC.m_NestPage.CalcRawPart()
|
||||||
' Parcheggio pezzi presenti nel grezzo
|
' Parcheggio pezzi presenti nel grezzo
|
||||||
@@ -312,6 +325,11 @@ Public Class FrameCutPageUC
|
|||||||
If StringToLen(OffsXInteryTxBx.Text, dOffsXIntery) Then
|
If StringToLen(OffsXInteryTxBx.Text, dOffsXIntery) Then
|
||||||
WritePrivateProfileString(S_FRAME, K_OFFSXINTERY, DoubleToString(dOffsXIntery, 3), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_FRAME, K_OFFSXINTERY, DoubleToString(dOffsXIntery, 3), m_MainWindow.GetIniFile())
|
||||||
End If
|
End If
|
||||||
|
Dim sUseInteraxis As String = "1"
|
||||||
|
If UseInteraxisChBx.IsChecked Then
|
||||||
|
sUseInteraxis = "0"
|
||||||
|
End If
|
||||||
|
WritePrivateProfileString(S_FRAME, K_OFFSXINTERYSAWTH, sUseInteraxis, m_MainWindow.GetIniFile())
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub MirrorPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles MirrorPartBtn.Click
|
Private Sub MirrorPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles MirrorPartBtn.Click
|
||||||
@@ -963,11 +981,22 @@ Public Class FrameCutPageUC
|
|||||||
StringToLen(OffsXInteryTxBx.Text, dOffsXIntery)
|
StringToLen(OffsXInteryTxBx.Text, dOffsXIntery)
|
||||||
If EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw) AndAlso
|
If EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw) AndAlso
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dSawThick) Then
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, dSawThick) Then
|
||||||
If dOffsXIntery <= dSawThick Then
|
If UseInteraxisChBx.IsChecked Then
|
||||||
dMinDist = dSawThick + 5 * EPS_SMALL
|
If dOffsXIntery < 0 Then
|
||||||
|
dMinDist = 5 * EPS_SMALL
|
||||||
|
OffsXInteryTxBx.Text = "0"
|
||||||
|
Else
|
||||||
|
dMinDist = dOffsXIntery + 5 * EPS_SMALL
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
dMinDist = dOffsXIntery + 5 * EPS_SMALL
|
dMinDist = dSawThick + 5 * EPS_SMALL
|
||||||
End If
|
End If
|
||||||
|
'If dOffsXIntery <= dSawThick Then
|
||||||
|
' dMinDist = dSawThick + 5 * EPS_SMALL
|
||||||
|
' EgtOutLog("WARNINGS: Saw tickness is more width then interaxis")
|
||||||
|
'Else
|
||||||
|
' dMinDist = dOffsXIntery + 5 * EPS_SMALL
|
||||||
|
'End If
|
||||||
Else
|
Else
|
||||||
EgtOutLog("Not found current saw for frames mindist")
|
EgtOutLog("Not found current saw for frames mindist")
|
||||||
dMinDist = dOffsXIntery
|
dMinDist = dOffsXIntery
|
||||||
|
|||||||
@@ -3,15 +3,15 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||||
FontFamily="{DynamicResource OmagCut_Font}"
|
FontFamily="{DynamicResource OmagCut_Font}"
|
||||||
Title="OpenFile" Height="500.6" Width="426.6" WindowStyle="None"
|
Title="OpenFile" Height="587.4" Width="500.6" WindowStyle="None"
|
||||||
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
|
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
|
||||||
Background="Transparent">
|
Background="Transparent">
|
||||||
<Border Style="{DynamicResource OmagCut_Border}">
|
<Border Style="{DynamicResource OmagCut_Border}">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="0.5*"/>
|
<ColumnDefinition Width="0.2*"/>
|
||||||
<ColumnDefinition Width="4*"/>
|
<ColumnDefinition Width="4*"/>
|
||||||
<ColumnDefinition Width="0.5*"/>
|
<ColumnDefinition Width="0.2*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal"
|
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal"
|
||||||
HorizontalAlignment="Center">
|
HorizontalAlignment="Center">
|
||||||
<ScrollViewer Name="MyScrollViewer" VerticalScrollBarVisibility="Auto">
|
<ScrollViewer Name="MyScrollViewer" VerticalScrollBarVisibility="Auto">
|
||||||
<TextBlock Name="LicenseMsgTxBl" MaxWidth="340"
|
<TextBlock Name="LicenseMsgTxBl" MaxWidth="425"
|
||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
Foreground="{DynamicResource Omag_White}" FontSize="20" VerticalAlignment="Center"
|
Foreground="{DynamicResource Omag_White}" FontSize="20" VerticalAlignment="Center"
|
||||||
TextWrapping="Wrap"/>
|
TextWrapping="Wrap"/>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
Public Sub Init() Handles Me.Initialized
|
Public Sub Init() Handles Me.Initialized
|
||||||
IconTxBl.Text = "⚠️"
|
IconTxBl.Text = "⚠️"
|
||||||
LicenseTxBl.Text = "Warning" & vbCrLf & m_sTitle
|
LicenseTxBl.Text = m_sTitle
|
||||||
m_sMessage = m_sMessage.Replace("/n", "£")
|
m_sMessage = m_sMessage.Replace("/n", "£")
|
||||||
Dim sItems As String() = m_sMessage.Split("£")
|
Dim sItems As String() = m_sMessage.Split("£")
|
||||||
For Index As Integer = 0 To sItems.Count - 1
|
For Index As Integer = 0 To sItems.Count - 1
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ Public Class AlarmsPageUC
|
|||||||
|
|
||||||
' Imposto i messaggi letti dal file dei messaggi
|
' Imposto i messaggi letti dal file dei messaggi
|
||||||
CurrSawTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 1)
|
CurrSawTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 1)
|
||||||
|
CurrSawTiltedTxBl.Text = EgtMsg(91049) ' Current saw tilted
|
||||||
AuxiliaryToolTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 2)
|
AuxiliaryToolTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 2)
|
||||||
CurrDrillTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 3)
|
CurrDrillTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 3)
|
||||||
CurrCupWheelTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 20)
|
CurrCupWheelTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 20)
|
||||||
@@ -120,6 +121,7 @@ Public Class AlarmsPageUC
|
|||||||
CfrPercTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 48) ' Riduzione %
|
CfrPercTxBl.Text = EgtMsg(MSG_ALARMSPAGEUC + 48) ' Riduzione %
|
||||||
MachiningsGpBx.Header = EgtMsg(MSG_ALARMS2PAGEUC + 1) ' Lavorazioni
|
MachiningsGpBx.Header = EgtMsg(MSG_ALARMS2PAGEUC + 1) ' Lavorazioni
|
||||||
CurrSawingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 2) ' Taglio lama
|
CurrSawingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 2) ' Taglio lama
|
||||||
|
CurrSawingTiltedTxBl.Text = EgtMsg(91050) ' Taglio inclinato
|
||||||
CurrDrillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 3) ' Foratura
|
CurrDrillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 3) ' Foratura
|
||||||
CurrMillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 4) ' Fresatura
|
CurrMillingTxBl.Text = EgtMsg(MSG_ALARMS2PAGEUC + 4) ' Fresatura
|
||||||
CurrPocketingTxBl.Text = EgtMsg(91069) ' Svuotatura
|
CurrPocketingTxBl.Text = EgtMsg(91069) ' Svuotatura
|
||||||
@@ -159,7 +161,7 @@ Public Class AlarmsPageUC
|
|||||||
HolesGpBx.Visibility = Windows.Visibility.Hidden
|
HolesGpBx.Visibility = Windows.Visibility.Hidden
|
||||||
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
|
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
|
||||||
'Non faccio alcunchè
|
'Non faccio alcunchè
|
||||||
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER
|
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
|
||||||
'Da implementare
|
'Da implementare
|
||||||
End Select
|
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
|
' attivo il bottone per l'apertura della pagina che mostra la configurazione degli utensili in parcheggio
|
||||||
SetUpBtn.Visibility = Windows.Visibility.Visible
|
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
|
End Select
|
||||||
|
|
||||||
' aggiorno le TextBlock con le lavorazioni correnti
|
' aggiorno le TextBlock con le lavorazioni correnti
|
||||||
@@ -441,6 +496,21 @@ Public Class AlarmsPageUC
|
|||||||
CurrSawingTxBl.Visibility = Windows.Visibility.Hidden
|
CurrSawingTxBl.Visibility = Windows.Visibility.Hidden
|
||||||
CurrSawingTxBx.Visibility = Windows.Visibility.Hidden
|
CurrSawingTxBx.Visibility = Windows.Visibility.Hidden
|
||||||
End If
|
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
|
If m_CurrentMachine.sCurrDrilling <> String.Empty Then
|
||||||
CurrDrillingTxBx.Text = m_CurrentMachine.sCurrDrilling
|
CurrDrillingTxBx.Text = m_CurrentMachine.sCurrDrilling
|
||||||
CurrDrillingTxBl.Visibility = Windows.Visibility.Visible
|
CurrDrillingTxBl.Visibility = Windows.Visibility.Visible
|
||||||
@@ -641,6 +711,42 @@ Public Class AlarmsPageUC
|
|||||||
RefreschMachining()
|
RefreschMachining()
|
||||||
End Sub
|
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 --
|
' -- DRILL --
|
||||||
Private Sub CurrDrillCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrDrillCmBx.SelectionChanged
|
Private Sub CurrDrillCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrDrillCmBx.SelectionChanged
|
||||||
If IsNothing(CurrDrillCmBx.SelectedItem) Then Return
|
If IsNothing(CurrDrillCmBx.SelectedItem) Then Return
|
||||||
@@ -1193,6 +1299,7 @@ Public Class AlarmsPageUC
|
|||||||
Dim dToolDiam As Double = 0
|
Dim dToolDiam As Double = 0
|
||||||
Dim dToolThick As Double = 0
|
Dim dToolThick As Double = 0
|
||||||
Dim dToolLen As Double = 0
|
Dim dToolLen As Double = 0
|
||||||
|
Dim dCore As Double = 0
|
||||||
Dim sToolParam As String = String.Empty
|
Dim sToolParam As String = String.Empty
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sToolParam)
|
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sToolParam)
|
||||||
EgtLuaSetGlobStringVar("CMD.HEAD", sToolParam)
|
EgtLuaSetGlobStringVar("CMD.HEAD", sToolParam)
|
||||||
@@ -1204,6 +1311,8 @@ Public Class AlarmsPageUC
|
|||||||
EgtLuaSetGlobNumVar("CMD.THICK", dToolThick * 1000)
|
EgtLuaSetGlobNumVar("CMD.THICK", dToolThick * 1000)
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolLen)
|
EgtTdbGetCurrToolParam(MCH_TP.LEN, dToolLen)
|
||||||
EgtLuaSetGlobNumVar("CMD.LENGTH", dToolLen * 1000)
|
EgtLuaSetGlobNumVar("CMD.LENGTH", dToolLen * 1000)
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.CORE, dCore)
|
||||||
|
EgtLuaSetGlobNumVar("CMD.CORE", dCore * 1000)
|
||||||
' Nuova varibile per gestione tastatura utensili Frankfurt (Polishing)
|
' Nuova varibile per gestione tastatura utensili Frankfurt (Polishing)
|
||||||
Dim nType As Integer
|
Dim nType As Integer
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
||||||
@@ -1262,7 +1371,7 @@ Public Class AlarmsPageUC
|
|||||||
System.Threading.Thread.Sleep(300)
|
System.Threading.Thread.Sleep(300)
|
||||||
m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_CycleStart()
|
m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_CycleStart()
|
||||||
' Creo MsgBox di attesa
|
' Creo MsgBox di attesa
|
||||||
Dim MsgBoxStateInfo As New EgtMsgBox(m_MainWindow, EgtMsg(MSG_DIRECTCUTPAGEUC + 41), EgtMsg(MSG_DIRECTCUTPAGEUC + 42), True, EgtMsgBox.Buttons.CANCEL, EgtMsgBox.Icons.NULL)
|
Dim MsgBoxStateInfo As New EgtMsgBox(m_MainWindow, String.Format(EgtMsg(MSG_DIRECTCUTPAGEUC + 41), ToolForProbing.m_ToolName), EgtMsg(MSG_DIRECTCUTPAGEUC + 42), True, EgtMsgBox.Buttons.CANCEL, EgtMsgBox.Icons.NULL)
|
||||||
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
|
m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 0
|
||||||
' Definisco flag tastatura
|
' Definisco flag tastatura
|
||||||
Dim bProbingOk As Boolean = False
|
Dim bProbingOk As Boolean = False
|
||||||
@@ -1372,7 +1481,7 @@ Public Class AlarmsPageUC
|
|||||||
Select Case m_CurrentMachine.MountedToolConfig
|
Select Case m_CurrentMachine.MountedToolConfig
|
||||||
Case CurrentMachine.MountedToolConfigs.SAW
|
Case CurrentMachine.MountedToolConfigs.SAW
|
||||||
Return New ToolPos(m_CurrentMachine.sCurrSaw, "T100", True)
|
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)
|
Dim ChooseTool As New ChooseToolWD(m_MainWindow)
|
||||||
If ChooseTool.ShowDialog Then
|
If ChooseTool.ShowDialog Then
|
||||||
Return ChooseTool.GetSelectedTool
|
Return ChooseTool.GetSelectedTool
|
||||||
|
|||||||
@@ -76,6 +76,18 @@ Public Class ChooseToolWD
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Return True
|
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
|
Case Else
|
||||||
Return False
|
Return False
|
||||||
End Select
|
End Select
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ Public Class CurrentMachine
|
|||||||
|
|
||||||
' Variabili che contengono il nome degli utensili disponibili per tipo
|
' Variabili che contengono il nome degli utensili disponibili per tipo
|
||||||
Private m_sCurrSaw As String = String.Empty
|
Private m_sCurrSaw As String = String.Empty
|
||||||
|
Private m_sCurrSawTilted As String = String.Empty
|
||||||
Private m_sCurrDrill As String = String.Empty
|
Private m_sCurrDrill As String = String.Empty
|
||||||
Private m_sCurrMill As String = String.Empty
|
Private m_sCurrMill As String = String.Empty
|
||||||
Private m_sCurrMillNoTip 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)
|
' Variabili che contengono le lavorazioni correntemente attive (utilizzate per definire lavorazioni nel programma)
|
||||||
Private m_sCurrSawing As String = String.Empty
|
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_sCurrDrilling As String = String.Empty
|
||||||
Private m_sCurrMilling As String = String.Empty
|
Private m_sCurrMilling As String = String.Empty
|
||||||
Private m_sCurrPocketing As String = String.Empty
|
Private m_sCurrPocketing As String = String.Empty
|
||||||
@@ -139,6 +142,8 @@ Public Class CurrentMachine
|
|||||||
Private m_dPhotoOffsetY As Double = 0
|
Private m_dPhotoOffsetY As Double = 0
|
||||||
Private m_dTab2PhotoOffsetX As Double = 0
|
Private m_dTab2PhotoOffsetX As Double = 0
|
||||||
Private m_dTab2PhotoOffsetY As Double = 0
|
Private m_dTab2PhotoOffsetY As Double = 0
|
||||||
|
Private m_dHQPhotoOffsetX As Double = 0
|
||||||
|
Private m_dHQPhotoOffsetY As Double = 0
|
||||||
|
|
||||||
' Abilitazione scelta restart
|
' Abilitazione scelta restart
|
||||||
Private m_bEnableRestart As Boolean = False
|
Private m_bEnableRestart As Boolean = False
|
||||||
@@ -191,6 +196,7 @@ Public Class CurrentMachine
|
|||||||
SAWANDAUXTOOL = 1
|
SAWANDAUXTOOL = 1
|
||||||
MANUALTOOLCHANGER = 2
|
MANUALTOOLCHANGER = 2
|
||||||
TOOLCHANGER = 3
|
TOOLCHANGER = 3
|
||||||
|
TOOLCHANGERWITHSAW = 4
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
' Massimo numero di utensili su Tc
|
' Massimo numero di utensili su Tc
|
||||||
@@ -202,6 +208,9 @@ Public Class CurrentMachine
|
|||||||
' Massima profondità lavorabile nei tagli diretti
|
' Massima profondità lavorabile nei tagli diretti
|
||||||
Private m_MaxTabDepth As Double = 10.0
|
Private m_MaxTabDepth As Double = 10.0
|
||||||
|
|
||||||
|
' Massima altezza lavorabile con lama grande
|
||||||
|
Private m_dHighPieceZ As Double = 200.0
|
||||||
|
|
||||||
#Region "Proprietà che leggono e scrivono i valori anche da o su file ini"
|
#Region "Proprietà che leggono e scrivono i valori anche da o su file ini"
|
||||||
Friend ReadOnly Property MaxTabDepth As Double
|
Friend ReadOnly Property MaxTabDepth As Double
|
||||||
Get
|
Get
|
||||||
@@ -568,6 +577,18 @@ Public Class CurrentMachine
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
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
|
Friend Property sCurrDrill As String
|
||||||
Get
|
Get
|
||||||
Return m_sCurrDrill
|
Return m_sCurrDrill
|
||||||
@@ -642,18 +663,32 @@ Public Class CurrentMachine
|
|||||||
If WritePrivateProfileString(S_MACH_MACH, K_CURRSAWING, value, sMachIniFile) Then
|
If WritePrivateProfileString(S_MACH_MACH, K_CURRSAWING, value, sMachIniFile) Then
|
||||||
m_sCurrSawing = value
|
m_sCurrSawing = value
|
||||||
m_MainWindow.m_CurrentProjectPageUC.MachiningTxBx.Text = value
|
m_MainWindow.m_CurrentProjectPageUC.MachiningTxBx.Text = value
|
||||||
'' aggiorno il file ini della macchina con i valori correnti della lavorazione
|
End If
|
||||||
'Dim sVal As String = String.Empty
|
End Set
|
||||||
'Dim dVal As Double = m_dFsevLength
|
End Property
|
||||||
'If GetUserNote("FsevLength", sVal, m_sCurrSawing, False) Then
|
|
||||||
' StringToDouble(sVal, dVal)
|
Friend Property sCurrSawingTilted As String
|
||||||
' SetFsevLength(dVal)
|
Get
|
||||||
'End If
|
Return m_sCurrSawingTilted
|
||||||
'dVal = m_dFsevPerc
|
End Get
|
||||||
'If GetUserNote("FsevPerc", sVal, m_sCurrSawing, False) Then
|
Set(value As String)
|
||||||
' StringToDouble(sVal, m_dFsevPerc)
|
If WritePrivateProfileString(S_MACH_MACH, K_CURRSAWINGTILTED, value, sMachIniFile) Then
|
||||||
' SetFsevPerc(dVal)
|
m_sCurrSawingTilted = value
|
||||||
'End If
|
'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 If
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
@@ -764,6 +799,10 @@ Public Class CurrentMachine
|
|||||||
Set(value As String)
|
Set(value As String)
|
||||||
If WritePrivateProfileString(S_MACH_MACH, K_CURRWATERJETTING, value, sMachIniFile) Then
|
If WritePrivateProfileString(S_MACH_MACH, K_CURRWATERJETTING, value, sMachIniFile) Then
|
||||||
m_sCurrWaterJetting = value
|
m_sCurrWaterJetting = value
|
||||||
|
If m_MainWindow.m_CurrentMachine.bWaterJet And EgtGetHeadId("H1") = GDB_ID.NULL Then
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.MachiningTxBx.Text = value
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
@@ -860,6 +899,10 @@ Public Class CurrentMachine
|
|||||||
Case 2
|
Case 2
|
||||||
Return New Vector3d(m_dTab2PhotoOffsetX, m_dTab2PhotoOffsetY, 0)
|
Return New Vector3d(m_dTab2PhotoOffsetX, m_dTab2PhotoOffsetY, 0)
|
||||||
Case Else
|
Case Else
|
||||||
|
' verifico quale delle due fotocamere è attualmente attiva
|
||||||
|
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ACTIVATE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
|
||||||
|
Return New Vector3d(m_dHQPhotoOffsetX, m_dHQPhotoOffsetY, 0)
|
||||||
|
End If
|
||||||
Return New Vector3d(m_dPhotoOffsetX, m_dPhotoOffsetY, 0)
|
Return New Vector3d(m_dPhotoOffsetX, m_dPhotoOffsetY, 0)
|
||||||
End Select
|
End Select
|
||||||
End Get
|
End Get
|
||||||
@@ -1139,6 +1182,12 @@ Public Class CurrentMachine
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Friend ReadOnly Property dHighPieceZ As Double
|
||||||
|
Get
|
||||||
|
Return m_dHighPieceZ
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
Sub New()
|
Sub New()
|
||||||
@@ -1254,6 +1303,14 @@ Public Class CurrentMachine
|
|||||||
' Leggo utensili correnti
|
' Leggo utensili correnti
|
||||||
' lama
|
' lama
|
||||||
GetPrivateProfileString(S_MACH_MACH, K_CURRSAW, Nothing, m_sCurrSaw, sMachIniFile)
|
GetPrivateProfileString(S_MACH_MACH, K_CURRSAW, Nothing, m_sCurrSaw, sMachIniFile)
|
||||||
|
' lama inclinata
|
||||||
|
If m_nShowToolChanger = 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
|
' foretto
|
||||||
GetPrivateProfileString(S_MACH_MACH, K_CURRDRILL, Nothing, m_sCurrDrill, sMachIniFile)
|
GetPrivateProfileString(S_MACH_MACH, K_CURRDRILL, Nothing, m_sCurrDrill, sMachIniFile)
|
||||||
' fresa
|
' fresa
|
||||||
@@ -1270,6 +1327,10 @@ Public Class CurrentMachine
|
|||||||
' Leggo lavorazioni correnti
|
' Leggo lavorazioni correnti
|
||||||
' lama
|
' lama
|
||||||
GetPrivateProfileString(S_MACH_MACH, K_CURRSAWING, Nothing, m_sCurrSawing, sMachIniFile)
|
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
|
' foretto
|
||||||
GetPrivateProfileString(S_MACH_MACH, K_CURRDRILLING, Nothing, m_sCurrDrilling, sMachIniFile)
|
GetPrivateProfileString(S_MACH_MACH, K_CURRDRILLING, Nothing, m_sCurrDrilling, sMachIniFile)
|
||||||
' fresa
|
' fresa
|
||||||
@@ -1332,6 +1393,8 @@ Public Class CurrentMachine
|
|||||||
m_dPhotoOffsetY = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_OFFSETY, 0, sMachIniFile)
|
m_dPhotoOffsetY = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_OFFSETY, 0, sMachIniFile)
|
||||||
m_dTab2PhotoOffsetX = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_TAB2_OFFSETX, 0, sMachIniFile)
|
m_dTab2PhotoOffsetX = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_TAB2_OFFSETX, 0, sMachIniFile)
|
||||||
m_dTab2PhotoOffsetY = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_TAB2_OFFSETY, 0, sMachIniFile)
|
m_dTab2PhotoOffsetY = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_TAB2_OFFSETY, 0, sMachIniFile)
|
||||||
|
m_dHQPhotoOffsetX = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_HQ_OFFSETX, 0, sMachIniFile)
|
||||||
|
m_dHQPhotoOffsetY = GetPrivateProfileDouble(S_PHOTO, K_PHOTO_HQ_OFFSETY, 0, sMachIniFile)
|
||||||
|
|
||||||
' Leggo abilitazione per restart
|
' Leggo abilitazione per restart
|
||||||
m_bEnableRestart = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENABLERESTART, 0, sMachIniFile) <> 0)
|
m_bEnableRestart = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENABLERESTART, 0, sMachIniFile) <> 0)
|
||||||
@@ -1405,6 +1468,9 @@ Public Class CurrentMachine
|
|||||||
If m_MaxTabDepth < 0 Then
|
If m_MaxTabDepth < 0 Then
|
||||||
m_MaxTabDepth = 10.0
|
m_MaxTabDepth = 10.0
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' Massimo spessore lavorabile con lama grande
|
||||||
|
m_dHighPieceZ = GetPrivateProfileDouble(S_RAWMOVE, "MaxHeightPiece", 800.0, m_MainWindow.GetMachIniFile())
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' Per il controllo FANUC al momento dell'inizializzazione del CN devono essere lette alcune variabili
|
' Per il controllo FANUC al momento dell'inizializzazione del CN devono essere lette alcune variabili
|
||||||
@@ -1650,7 +1716,9 @@ Public Class CurrentMachine
|
|||||||
Dim dToolDiam As Double = 0
|
Dim dToolDiam As Double = 0
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam)
|
||||||
' Confronto con massimo ammesso
|
' Confronto con massimo ammesso
|
||||||
Return (dToolDiam <= dMaxSawDiamForProbe)
|
Dim bOk As Boolean = dToolDiam <= dMaxSawDiamForProbe
|
||||||
|
If Not bOk Then EgtOutLog("WARNING: Saw diameter to big for probing")
|
||||||
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function GetPrivateProfileMaterial(
|
Friend Function GetPrivateProfileMaterial(
|
||||||
|
|||||||
@@ -298,6 +298,8 @@ Public Class MachinePageUC
|
|||||||
WaterJetBtn.IsChecked = False
|
WaterJetBtn.IsChecked = False
|
||||||
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
|
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
|
||||||
MachinePageGrid.Children.Add(m_MachiningDbPageUC)
|
MachinePageGrid.Children.Add(m_MachiningDbPageUC)
|
||||||
|
' Aggiorno lista materiali
|
||||||
|
m_MainWindow.m_CurrentMachine.LoadWJMaterial()
|
||||||
m_ActiveMachinePage = MachinePages.MachiningDb
|
m_ActiveMachinePage = MachinePages.MachiningDb
|
||||||
Case MachinePages.MachineCN
|
Case MachinePages.MachineCN
|
||||||
MachiningDBBtn.IsChecked = True
|
MachiningDBBtn.IsChecked = True
|
||||||
|
|||||||
@@ -279,12 +279,16 @@ Public Class MachineStatusUC
|
|||||||
|
|
||||||
Sub DisplayFeed()
|
Sub DisplayFeed()
|
||||||
Dim dRealFeed As Double = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
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
|
'' modifica richiesta 26/05/2023 da Rosario per cliente Lanzetta (lettura feed per CN Fanuc)
|
||||||
If m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
|
'If m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
|
||||||
dRealFeed = m_CN.d_DInterpo_Prog_Feed
|
' dRealFeed = m_CN.d_DInterpo_Prog_Feed
|
||||||
Else
|
'Else
|
||||||
dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
' dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
||||||
End If
|
'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)
|
'Feed = DoubleToString(dRealFeed, 0)
|
||||||
FeedTxBx.Text = LenToString(dRealFeed, 0, True)
|
FeedTxBx.Text = LenToString(dRealFeed, 0, True)
|
||||||
'FeedOverride = DoubleToString(m_CN.d_DInterpo_Feed_override, 0) & "%"
|
'FeedOverride = DoubleToString(m_CN.d_DInterpo_Feed_override, 0) & "%"
|
||||||
@@ -308,8 +312,16 @@ Public Class MachineStatusUC
|
|||||||
Dim dSpindleOvr As Double
|
Dim dSpindleOvr As Double
|
||||||
' se attivi nuovi comandi MDI su siemens
|
' se attivi nuovi comandi MDI su siemens
|
||||||
If m_MainWindow.m_CNCommunication.m_nNCType = 3 AndAlso m_MainWindow.m_CNCommunication.m_CN.m_IsSiemensOne Then
|
If m_MainWindow.m_CNCommunication.m_nNCType = 3 AndAlso m_MainWindow.m_CNCommunication.m_CN.m_IsSiemensOne Then
|
||||||
dSpindlePower = m_CN.d_data(0)
|
|
||||||
dSpindleOvr = m_CN.d_data(1)
|
If m_MainWindow.m_CNCommunication.m_CN.m_IsSiemensOne Then
|
||||||
|
dSpindlePower = m_CN.d_spindle_power
|
||||||
|
'dSpindleOvr = If(m_CN.bPowerOvr > 0, m_CN.d_spindle_power / m_CN.bPowerOvr * 100, 0)
|
||||||
|
dSpindleOvr = m_CN.bPowerOvr
|
||||||
|
Else
|
||||||
|
' questo sistema è deprecabile dalla versione 2.6d2 (nuova gestione dei vettori)
|
||||||
|
dSpindlePower = m_CN.d_data(0)
|
||||||
|
dSpindleOvr = m_CN.d_data(1)
|
||||||
|
End If
|
||||||
ElseIf m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
|
ElseIf m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
|
||||||
dSpindlePower = m_CN.d_spindle_power / 1000
|
dSpindlePower = m_CN.d_spindle_power / 1000
|
||||||
Else
|
Else
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ Public Class MachiningDbPageUC
|
|||||||
StepType = {EgtMsg(MSG_COMBOBOXPARAM + 38), EgtMsg(MSG_COMBOBOXPARAM + 39), EgtMsg(MSG_COMBOBOXPARAM + 40)}
|
StepType = {EgtMsg(MSG_COMBOBOXPARAM + 38), EgtMsg(MSG_COMBOBOXPARAM + 39), EgtMsg(MSG_COMBOBOXPARAM + 40)}
|
||||||
RouFinStepType = {EgtMsg(MSG_COMBOBOXPARAM + 38), EgtMsg(MSG_COMBOBOXPARAM + 39)}
|
RouFinStepType = {EgtMsg(MSG_COMBOBOXPARAM + 38), EgtMsg(MSG_COMBOBOXPARAM + 39)}
|
||||||
ExtCornType = {EgtMsg(MSG_COMBOBOXPARAM + 43), EgtMsg(MSG_COMBOBOXPARAM + 44), EgtMsg(MSG_COMBOBOXPARAM + 45)}
|
ExtCornType = {EgtMsg(MSG_COMBOBOXPARAM + 43), EgtMsg(MSG_COMBOBOXPARAM + 44), EgtMsg(MSG_COMBOBOXPARAM + 45)}
|
||||||
IntCornType = {EgtMsg(MSG_COMBOBOXPARAM + 43), EgtMsg(MSG_COMBOBOXPARAM + 44)}
|
IntCornType = {EgtMsg(MSG_COMBOBOXPARAM + 43), EgtMsg(MSG_COMBOBOXPARAM + 44), EgtMsg(90852)}
|
||||||
|
|
||||||
' Assegno array a combobox
|
' Assegno array a combobox
|
||||||
WorkSideCmBx.ItemsSource = WorkSide
|
WorkSideCmBx.ItemsSource = WorkSide
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ Imports System.ComponentModel
|
|||||||
Imports OmagCUT.TreeViewItem
|
Imports OmagCUT.TreeViewItem
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
|
Imports EgtWPFLib5
|
||||||
|
Imports FXServer
|
||||||
|
|
||||||
Public Class SetUpPage
|
Public Class SetUpPage
|
||||||
|
|
||||||
@@ -13,6 +15,7 @@ Public Class SetUpPage
|
|||||||
Private m_CurrMachine As CurrentMachine = m_MainWindow.m_CurrentMachine
|
Private m_CurrMachine As CurrentMachine = m_MainWindow.m_CurrentMachine
|
||||||
|
|
||||||
Private m_ToolTreeList As New ObservableCollection(Of CathegoryItem)
|
Private m_ToolTreeList As New ObservableCollection(Of CathegoryItem)
|
||||||
|
Private m_SawsList As CathegoryItem
|
||||||
Private m_DrillbitsList As CathegoryItem
|
Private m_DrillbitsList As CathegoryItem
|
||||||
Private m_MillsList As CathegoryItem
|
Private m_MillsList As CathegoryItem
|
||||||
Private m_CupsList As CathegoryItem
|
Private m_CupsList As CathegoryItem
|
||||||
@@ -26,10 +29,10 @@ Public Class SetUpPage
|
|||||||
' Assegno la lista utensili come sorgente dell'albero
|
' Assegno la lista utensili come sorgente dell'albero
|
||||||
ToolTree.ItemsSource = m_ToolTreeList
|
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
|
'' Cambio utensile macchina
|
||||||
' Modifico numero colonne della griglia in base al numero di porta utensili disponibili sulla 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
|
If ColNum > 12 Then
|
||||||
EgtOutLog("TC warning : too many tools (max 12 * 5)")
|
EgtOutLog("TC warning : too many tools (max 12 * 5)")
|
||||||
ColNum = 12
|
ColNum = 12
|
||||||
@@ -59,11 +62,11 @@ Public Class SetUpPage
|
|||||||
|
|
||||||
'' Cambio utensile manuale
|
'' Cambio utensile manuale
|
||||||
' Modifico numero colonne della griglia in base al numero di porta utensili disponibili sulla macchina
|
' 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))
|
Dim ManColNum As Integer = CInt(Math.Ceiling(m_CurrMachine.ManualToolChangerNbr / 5.0))
|
||||||
If ManColNum > 12 Then
|
If ManColNum > 12 Then
|
||||||
EgtOutLog("ManTC warning : too many tools (max 12 * 5)")
|
EgtOutLog("ManTC warning : too many tools (max 12 * 5)")
|
||||||
ManColNum = 12
|
ManColNum = 12
|
||||||
End If
|
End If
|
||||||
For Index As Integer = 12 To ManColNum + 1 Step -1
|
For Index As Integer = 12 To ManColNum + 1 Step -1
|
||||||
For Index2 As Integer = Index * 5 To (Index - 1) * 5 + 1 Step -1
|
For Index2 As Integer = Index * 5 To (Index - 1) * 5 + 1 Step -1
|
||||||
ManTlChGrid.Children.Remove(GetManTlChPosFromIndex(Index2))
|
ManTlChGrid.Children.Remove(GetManTlChPosFromIndex(Index2))
|
||||||
@@ -85,7 +88,7 @@ Public Class SetUpPage
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
' Se portautensili della macchina presente
|
' 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
|
' Apro quello
|
||||||
TlChScVw.Visibility = Windows.Visibility.Visible
|
TlChScVw.Visibility = Windows.Visibility.Visible
|
||||||
ToolChangerBtn.IsChecked = True
|
ToolChangerBtn.IsChecked = True
|
||||||
@@ -106,15 +109,25 @@ Public Class SetUpPage
|
|||||||
Private Sub SetUpPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
Private Sub SetUpPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||||
' Inizializzo le famiglie di utensili nell'albero
|
' Inizializzo le famiglie di utensili nell'albero
|
||||||
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
||||||
InitializeToolGroup( m_CurrMachine.bDrill, MCH_TY.DRILL_STD, EgtMsg( 90752), m_DrillbitsList)
|
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.bMill, MCH_TY.MILL_STD, EgtMsg( 90753), m_MillsList)
|
InitializeToolGroup(m_CurrMachine.bDrill, MCH_TY.DRILL_STD, EgtMsg(90752), m_DrillbitsList)
|
||||||
InitializeToolGroup( m_CurrMachine.bCupWheel, MCH_TY.MILL_NOTIP, EgtMsg( 90754), m_CupsList)
|
InitializeToolGroup(m_CurrMachine.bMill, MCH_TY.MILL_STD, EgtMsg(90753), m_MillsList)
|
||||||
InitializeToolGroup( m_CurrMachine.bPolishingWheel, MCH_TY.MILL_POLISHING, EgtMsg( 90756), m_PolishingsList)
|
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
|
' Posiziono utensili già posizionati sul portautensili
|
||||||
For Each ToolPosition As ToolChangerPos In m_CurrMachine.ToolChanger
|
For Each ToolPosition As ToolChangerPos In m_CurrMachine.ToolChanger
|
||||||
If ToolPosition.sTool <> String.Empty Then
|
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
|
For Each Item As CustomItem In m_DrillbitsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -123,7 +136,7 @@ Public Class SetUpPage
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
If Not IsNothing( m_MillsList) Then
|
If Not IsNothing(m_MillsList) Then
|
||||||
For Each Item As CustomItem In m_MillsList.Items
|
For Each Item As CustomItem In m_MillsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -132,7 +145,7 @@ Public Class SetUpPage
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
If Not IsNothing( m_CupsList) Then
|
If Not IsNothing(m_CupsList) Then
|
||||||
For Each Item As CustomItem In m_CupsList.Items
|
For Each Item As CustomItem In m_CupsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -141,7 +154,7 @@ Public Class SetUpPage
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
If Not IsNothing( m_PolishingsList) Then
|
If Not IsNothing(m_PolishingsList) Then
|
||||||
For Each Item As CustomItem In m_PolishingsList.Items
|
For Each Item As CustomItem In m_PolishingsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -158,7 +171,7 @@ Public Class SetUpPage
|
|||||||
' Posiziono utensili già posizionati sul portautensili manuale
|
' Posiziono utensili già posizionati sul portautensili manuale
|
||||||
For Each ToolPosition As ToolChangerPos In m_CurrMachine.ManualToolChanger
|
For Each ToolPosition As ToolChangerPos In m_CurrMachine.ManualToolChanger
|
||||||
If ToolPosition.sTool <> String.Empty Then
|
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
|
For Each Item As CustomItem In m_DrillbitsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -167,7 +180,7 @@ Public Class SetUpPage
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
If Not IsNothing( m_MillsList) Then
|
If Not IsNothing(m_MillsList) Then
|
||||||
For Each Item As CustomItem In m_MillsList.Items
|
For Each Item As CustomItem In m_MillsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -176,7 +189,7 @@ Public Class SetUpPage
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
If Not IsNothing( m_CupsList) Then
|
If Not IsNothing(m_CupsList) Then
|
||||||
For Each Item As CustomItem In m_CupsList.Items
|
For Each Item As CustomItem In m_CupsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -185,7 +198,7 @@ Public Class SetUpPage
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
If Not IsNothing( m_PolishingsList) Then
|
If Not IsNothing(m_PolishingsList) Then
|
||||||
For Each Item As CustomItem In m_PolishingsList.Items
|
For Each Item As CustomItem In m_PolishingsList.Items
|
||||||
If Item.Name = ToolPosition.sTool Then
|
If Item.Name = ToolPosition.sTool Then
|
||||||
m_SetUpToolsList.Items.Add(Item)
|
m_SetUpToolsList.Items.Add(Item)
|
||||||
@@ -710,16 +723,16 @@ Public Class SetUpPage
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
' Funzione che carica gli utensili del Db nell'albero
|
' 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
|
If Not bEnabled Then Return
|
||||||
' Inserisco categoria ed eventuali elementi
|
' Inserisco categoria ed eventuali elementi
|
||||||
ToolCathegory = New CathegoryItem( sFName, nTType)
|
ToolCathegory = New CathegoryItem(sFName, nTType)
|
||||||
Dim nType As Integer = 0
|
Dim nType As Integer = 0
|
||||||
Dim ToolName As String = String.Empty
|
Dim ToolName As String = String.Empty
|
||||||
Dim bFound As Boolean = EgtTdbGetFirstTool( nTType, ToolName, nType)
|
Dim bFound As Boolean = EgtTdbGetFirstTool(nTType, ToolName, nType)
|
||||||
While bFound
|
While bFound
|
||||||
If nType = nTType Then ToolCathegory.Items.Add( New CustomItem( ToolName, nType))
|
If nType = nTType Then ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
|
||||||
bFound = EgtTdbGetNextTool( nTType, ToolName, nType)
|
bFound = EgtTdbGetNextTool(nTType, ToolName, nType)
|
||||||
End While
|
End While
|
||||||
m_ToolTreeList.Add(ToolCathegory)
|
m_ToolTreeList.Add(ToolCathegory)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -761,7 +774,7 @@ Public Class SetUpPage
|
|||||||
ToolHolderClicked.Tool.IsChecked = False
|
ToolHolderClicked.Tool.IsChecked = False
|
||||||
GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty
|
GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty
|
||||||
End If
|
End If
|
||||||
' altrimenti da levare
|
' altrimenti da levare
|
||||||
Else
|
Else
|
||||||
RestoreToolInList(GetTxBxFromTlChPos(ToolHolderClicked.Name).Text)
|
RestoreToolInList(GetTxBxFromTlChPos(ToolHolderClicked.Name).Text)
|
||||||
GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty
|
GetTxBxFromTlChPos(ToolHolderClicked.Name).Text = String.Empty
|
||||||
@@ -771,14 +784,17 @@ Public Class SetUpPage
|
|||||||
|
|
||||||
' Funzione che rimuove l'utensile selezionato dall'albero
|
' Funzione che rimuove l'utensile selezionato dall'albero
|
||||||
Private Sub RemoveToolFromList()
|
Private Sub RemoveToolFromList()
|
||||||
If Not IsNothing( m_DrillbitsList) AndAlso m_DrillbitsList.Items.Contains( ToolTree.SelectedItem) Then
|
If m_MainWindow.m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW AndAlso
|
||||||
m_DrillbitsList.Items.Remove( ToolTree.SelectedItem)
|
Not IsNothing(m_SawsList) AndAlso m_SawsList.Items.Contains(ToolTree.SelectedItem) Then
|
||||||
ElseIf Not IsNothing( m_MillsList) AndAlso m_MillsList.Items.Contains( ToolTree.SelectedItem) Then
|
m_SawsList.Items.Remove(ToolTree.SelectedItem)
|
||||||
m_MillsList.Items.Remove( ToolTree.SelectedItem)
|
ElseIf Not IsNothing(m_DrillbitsList) AndAlso m_DrillbitsList.Items.Contains(ToolTree.SelectedItem) Then
|
||||||
ElseIf Not IsNothing( m_CupsList) AndAlso m_CupsList.Items.Contains( ToolTree.SelectedItem) Then
|
m_DrillbitsList.Items.Remove(ToolTree.SelectedItem)
|
||||||
m_CupsList.Items.Remove( ToolTree.SelectedItem)
|
ElseIf Not IsNothing(m_MillsList) AndAlso m_MillsList.Items.Contains(ToolTree.SelectedItem) Then
|
||||||
ElseIf Not IsNothing( m_PolishingsList) AndAlso m_PolishingsList.Items.Contains( ToolTree.SelectedItem) Then
|
m_MillsList.Items.Remove(ToolTree.SelectedItem)
|
||||||
m_PolishingsList.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 If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -786,7 +802,9 @@ Public Class SetUpPage
|
|||||||
Private Sub RestoreToolInList(sToolName As String)
|
Private Sub RestoreToolInList(sToolName As String)
|
||||||
For Each Tool As CustomItem In m_SetUpToolsList.Items
|
For Each Tool As CustomItem In m_SetUpToolsList.Items
|
||||||
If Tool.Name = sToolName Then
|
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)
|
m_DrillbitsList.Items.Add(Tool)
|
||||||
ElseIf Tool.nType = MCH_TY.MILL_STD Then
|
ElseIf Tool.nType = MCH_TY.MILL_STD Then
|
||||||
m_MillsList.Items.Add(Tool)
|
m_MillsList.Items.Add(Tool)
|
||||||
@@ -1084,6 +1102,39 @@ Public Class SetUpPage
|
|||||||
EgtTdbSave()
|
EgtTdbSave()
|
||||||
End Sub
|
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 = "; this file has been created by program OmagCUT by current setup" & vbCrLf
|
||||||
|
sContentFile &= "[General]" & vbCrLf
|
||||||
|
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
|
' 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
|
Private Sub ToolTree_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ToolTree.PreviewMouseUp
|
||||||
If TypeOf ToolTree.SelectedItem Is CathegoryItem Then
|
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
|
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||||
' Eseguo salvataggio (DB utensili + attrezzaggio)
|
' Eseguo salvataggio (DB utensili + attrezzaggio)
|
||||||
SaveToolChangerStatus()
|
SaveToolChangerStatus()
|
||||||
|
' Salvo nel file di setup l'attuale configurazione
|
||||||
|
SaveSetUpFile()
|
||||||
' Esco
|
' Esco
|
||||||
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_MainWindow.m_MachinePageUC.m_AlarmsPageUC)
|
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_MainWindow.m_MachinePageUC.m_AlarmsPageUC)
|
||||||
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(Me)
|
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Remove(Me)
|
||||||
@@ -1131,7 +1184,7 @@ Public Class SetUpPage
|
|||||||
RemoveToolFromList()
|
RemoveToolFromList()
|
||||||
Else
|
Else
|
||||||
' Altrimenti segnalo che la posizione è già occupata
|
' 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
|
End If
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
@@ -1149,7 +1202,7 @@ Public Class SetUpPage
|
|||||||
RemoveToolFromList()
|
RemoveToolFromList()
|
||||||
Else
|
Else
|
||||||
' Altrimenti segnalo che la posizione è già occupata
|
' 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
|
End If
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
<ControlTemplate.Triggers>
|
<ControlTemplate.Triggers>
|
||||||
<Trigger Property="IsChecked" Value="True">
|
<Trigger Property="IsChecked" Value="True">
|
||||||
<Setter Property="Fill" TargetName="Ellipse" Value="#FFB4B4B4"/>
|
<Setter Property="Fill" TargetName="Ellipse" Value="#414141"/>
|
||||||
</Trigger>
|
</Trigger>
|
||||||
</ControlTemplate.Triggers>
|
</ControlTemplate.Triggers>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<UserControl x:Class="ToolsDbPageUC"
|
<UserControl x:Class="ToolsDbPageUC"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:self="clr-namespace:OmagCUT.TreeViewItem"
|
xmlns:self="clr-namespace:OmagCUT.TreeViewItem"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="768" d:DesignWidth="1280" Initialized="ToolsDbPage_Initialized" Loaded="ToolsDbPage_Loaded">
|
d:DesignHeight="768" d:DesignWidth="1280" Initialized="ToolsDbPage_Initialized" Loaded="ToolsDbPage_Loaded">
|
||||||
|
|
||||||
<!-- Definizione della ImportPage -->
|
<!-- Definizione della ImportPage -->
|
||||||
<Border Style="{DynamicResource OmagCut_PageBorder}">
|
<Border Style="{DynamicResource OmagCut_PageBorder}">
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<TreeView Name="ToolTreeView" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}" >
|
<TreeView Name="ToolTreeView" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}" >
|
||||||
<TreeView.Resources>
|
<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 -->
|
<!--renderlo apribile con un solo click -->
|
||||||
<HierarchicalDataTemplate DataType="{x:Type self:CathegoryItem}" ItemsSource="{Binding Items}">
|
<HierarchicalDataTemplate DataType="{x:Type self:CathegoryItem}" ItemsSource="{Binding Items}">
|
||||||
|
|
||||||
@@ -224,12 +224,12 @@
|
|||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<TextBlock Name="NameTxBl" Grid.Column="0" Grid.Row="0" Grid.RowSpan="3"
|
<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"
|
<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"
|
<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>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -237,17 +237,27 @@
|
|||||||
<ColumnDefinition Width="2*"/>
|
<ColumnDefinition Width="2*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<TextBlock Name="TCPosTxBl" Grid.Column="0"
|
<TextBlock Name="TCPosTxBl" Grid.Column="0">
|
||||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
<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"
|
<EgtWPFLib:EgtTextBox Name="TCPosTxBx" Grid.Column="1" Grid.Row="0" Margin="0,0,15,0"
|
||||||
Style="{DynamicResource OmagCut_KeyboardTextBox}" />
|
Style="{DynamicResource OmagCut_KeyboardTextBox}" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<Border Name="HeadExitBrd" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="3"
|
<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>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -259,18 +269,18 @@
|
|||||||
|
|
||||||
<TextBlock Name="HeadTxBl" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
<TextBlock Name="HeadTxBl" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="HeadTxBx" Grid.Column="1"
|
<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}"/>
|
<TextBlock Name="ExitTxBl" Grid.Column="2" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="ExitTxBx" Grid.Column="3"
|
<EgtWPFLib:EgtTextBox Name="ExitTxBx" Grid.Column="3"
|
||||||
Style="{DynamicResource OmagCut_RightCalculatorTextBoxInBorder}" />
|
Style="{DynamicResource OmagCut_RightCalculatorTextBoxInBorder}" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<GroupBox Name="SpeedGpBx" Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="4" Grid.RowSpan="4"
|
<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>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -282,19 +292,19 @@
|
|||||||
|
|
||||||
<TextBlock Name="SpeedTxBl" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
<TextBlock Name="SpeedTxBl" Grid.Column="0" Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="SpeedTxBx" Grid.Column="1" IsLength="False"
|
<EgtWPFLib:EgtTextBox Name="SpeedTxBx" Grid.Column="1" IsLength="False"
|
||||||
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
|
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
|
||||||
|
|
||||||
<TextBlock Name="MaxSpeedTxBl" Grid.Column="2"
|
<TextBlock Name="MaxSpeedTxBl" Grid.Column="2"
|
||||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="MaxSpeedTxBx" Grid.Column="3" IsLength="False"
|
<EgtWPFLib:EgtTextBox Name="MaxSpeedTxBx" Grid.Column="3" IsLength="False"
|
||||||
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
|
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Name="FeedGpBx" Grid.Column="0" Grid.Row="10" Grid.ColumnSpan="4" Grid.RowSpan="6"
|
<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>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -309,23 +319,23 @@
|
|||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<TextBlock Name="FeedTxBl" Grid.Column="0" Grid.Row="0"
|
<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"
|
<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"
|
<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"
|
<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"
|
<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"
|
<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"
|
<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"
|
<EgtWPFLib:EgtTextBox Name="EndFeedTxBx" Grid.Column="3" Grid.Row="1"
|
||||||
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
|
Style="{DynamicResource OmagCut_CalculatorTextBoxInGroupBox}" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
@@ -336,7 +346,7 @@
|
|||||||
<ComboBox Name="CoolantCmBx" Grid.Column="1" Grid.Row="16" Grid.RowSpan="3" Style="{StaticResource OmagCut_LeftComboBoxNoBorder}">
|
<ComboBox Name="CoolantCmBx" Grid.Column="1" Grid.Row="16" Grid.RowSpan="3" Style="{StaticResource OmagCut_LeftComboBoxNoBorder}">
|
||||||
<ComboBox.ItemTemplate>
|
<ComboBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<TextBlock Text="{Binding}" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
<TextBlock Text="{Binding}" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
@@ -420,11 +430,32 @@
|
|||||||
<CheckBox Name="EndLifeChBx" Grid.Column="3" Grid.Row="31" Grid.RowSpan="3"
|
<CheckBox Name="EndLifeChBx" Grid.Column="3" Grid.Row="31" Grid.RowSpan="3"
|
||||||
Style="{StaticResource OmagCut_CheckBox_Single}" Margin="0,8,0,0"/>
|
Style="{StaticResource OmagCut_CheckBox_Single}" Margin="0,8,0,0"/>
|
||||||
|
|
||||||
<TextBlock Name="UserNotesTxBl" Grid.Column="0" Grid.Row="33" Grid.RowSpan="3"
|
<Grid Grid.Column="0" Grid.Row="33" Grid.RowSpan="3" Grid.ColumnSpan="4">
|
||||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
<Grid.RowDefinitions>
|
||||||
<EgtWPFLib:EgtTextBox Name="UserNotesTxBx" Grid.Column="1" Grid.Row="33"
|
<RowDefinition Height="1*"/>
|
||||||
Grid.RowSpan="3" Grid.ColumnSpan="3" Margin="0,0,15,0"
|
</Grid.RowDefinitions>
|
||||||
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
|
<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>
|
</Grid>
|
||||||
|
|
||||||
@@ -445,7 +476,7 @@
|
|||||||
<Button Name="ExportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
|
<Button Name="ExportBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
|
||||||
<Button Name="ImportBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
|
<Button Name="ImportBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}" Padding="0"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
Imports System.Collections.ObjectModel
|
Imports System.Collections.ObjectModel
|
||||||
Imports OmagCUT.TreeViewItem
|
Imports OmagCUT.TreeViewItem
|
||||||
Imports System.ComponentModel
|
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
Imports EgtWPFLib5
|
Imports EgtWPFLib5
|
||||||
@@ -84,6 +83,7 @@ Public Class ToolsDbPageUC
|
|||||||
CodeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 27) ' Code
|
CodeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 27) ' Code
|
||||||
SupplierTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 28) ' Supplier
|
SupplierTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 28) ' Supplier
|
||||||
EndLifeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 29) ' End Life
|
EndLifeTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 29) ' End Life
|
||||||
|
ColorTxBl.Text = EgtMsg(91018) ' Colore lavorazione
|
||||||
|
|
||||||
' Associo TextBox e Label
|
' Associo TextBox e Label
|
||||||
Dim TempLabel1 As New Label
|
Dim TempLabel1 As New Label
|
||||||
@@ -122,7 +122,6 @@ Public Class ToolsDbPageUC
|
|||||||
Dim TempLabel12 As New Label
|
Dim TempLabel12 As New Label
|
||||||
TempLabel12.Content = MaxMatTxBl.Text
|
TempLabel12.Content = MaxMatTxBl.Text
|
||||||
MaxMatTxBx.Tag = TempLabel12
|
MaxMatTxBx.Tag = TempLabel12
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ToolsDbPage_Loaded(sender As Object, e As RoutedEventArgs)
|
Private Sub ToolsDbPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||||
@@ -568,6 +567,15 @@ Public Class ToolsDbPageUC
|
|||||||
End If
|
End If
|
||||||
End Sub
|
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
|
Private Function AlreadyExist(ToolName As String) As Boolean
|
||||||
Dim ToolFamily As CathegoryItem
|
Dim ToolFamily As CathegoryItem
|
||||||
For Each ToolFamily In ToolsList
|
For Each ToolFamily In ToolsList
|
||||||
@@ -700,7 +708,7 @@ Public Class ToolsDbPageUC
|
|||||||
If nTType <> MCH_TY.MILL_STD Then
|
If nTType <> MCH_TY.MILL_STD Then
|
||||||
' se utensile diverso da MILL
|
' se utensile diverso da MILL
|
||||||
ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
|
ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
|
||||||
ElseIf nTType <> MCH_TY.MILL_STD And ToolName.Trim.ToLower = "probe" And nDebug > 4 Then
|
ElseIf nTType = MCH_TY.MILL_STD And (ToolName.Trim.ToLower <> "probe" Or nDebug > 4) Then
|
||||||
' Se utensile MILL con nome "probe" aggiungo solo se livello debug maggiore di 4
|
' Se utensile MILL con nome "probe" aggiungo solo se livello debug maggiore di 4
|
||||||
ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
|
ToolCathegory.Items.Add(New CustomItem(ToolName, nType))
|
||||||
End If
|
End If
|
||||||
@@ -766,6 +774,50 @@ Public Class ToolsDbPageUC
|
|||||||
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, ToolString)
|
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, ToolString)
|
||||||
UserNotesTxBx.Text = ToolString
|
UserNotesTxBx.Text = ToolString
|
||||||
End If
|
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
|
End Sub
|
||||||
|
|
||||||
Private Sub SetToolParams()
|
Private Sub SetToolParams()
|
||||||
@@ -821,8 +873,40 @@ Public Class ToolsDbPageUC
|
|||||||
If Not SetSpecials() Then
|
If Not SetSpecials() Then
|
||||||
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotesTxBx.Text)
|
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotesTxBx.Text)
|
||||||
End If
|
End If
|
||||||
|
EgtTdbSetCurrToolValInNotes(MCH_TP.SYSNOTES, "COLOR", ColorToString(ColorBtn.Background.ToString()))
|
||||||
End Sub
|
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()
|
Private Sub ViewToolParams()
|
||||||
NameTxBl.Visibility = Windows.Visibility.Visible
|
NameTxBl.Visibility = Windows.Visibility.Visible
|
||||||
NameTxBx.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)
|
SupplierTxBx.Visibility = If(bShowSpecials, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
||||||
EndLifeTxBl.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)
|
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
|
End Sub
|
||||||
|
|
||||||
Private Sub HideToolParams()
|
Private Sub HideToolParams()
|
||||||
@@ -890,6 +977,9 @@ Public Class ToolsDbPageUC
|
|||||||
SupplierTxBx.Visibility = Windows.Visibility.Hidden
|
SupplierTxBx.Visibility = Windows.Visibility.Hidden
|
||||||
EndLifeTxBl.Visibility = Windows.Visibility.Hidden
|
EndLifeTxBl.Visibility = Windows.Visibility.Hidden
|
||||||
EndLifeChBx.Visibility = Windows.Visibility.Hidden
|
EndLifeChBx.Visibility = Windows.Visibility.Hidden
|
||||||
|
|
||||||
|
ColorTxBl.Visibility = Visibility.Hidden
|
||||||
|
ColorBtn.Visibility = Visibility.Hidden
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ToolTreeView_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ToolTreeView.PreviewMouseUp
|
Private Sub ToolTreeView_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ToolTreeView.PreviewMouseUp
|
||||||
@@ -1338,4 +1428,8 @@ Public Class ToolsDbPageUC
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub TCPosTxBx_EgtClosed(sender As Object, e As EventArgs) Handles TCPosTxBx.EgtClosed
|
||||||
|
VerifyToolInSetUp(m_sToolName, TCPosTxBx.Text)
|
||||||
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Border Name="LogoBrd" Background="Transparent">
|
<Border Name="LogoBrd" Background="Transparent">
|
||||||
<Image Source="{DynamicResource LogoOmagImg}" Stretch="Uniform" Margin="1"/>
|
<Image Source="../Resources/NewIcons/logo-OmCut.png" Stretch="Uniform" Margin="1"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- ** Definizione della Grid delle tab ** -->
|
<!-- ** Definizione della Grid delle tab ** -->
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ Class MainWindow
|
|||||||
' Coefficiente di scalatura della finestra rispetto a standard
|
' Coefficiente di scalatura della finestra rispetto a standard
|
||||||
Friend m_dMWinScale As Double = 1
|
Friend m_dMWinScale As Double = 1
|
||||||
|
|
||||||
|
' Variabile che definisce l'avvio forzato in modalità FRAME
|
||||||
|
Friend m_OnlyFrame As Boolean = False
|
||||||
|
|
||||||
|
Public Shared m_bShowSVGParkInd As Boolean = False
|
||||||
|
|
||||||
' Dichiarazione delle Page UserControl
|
' Dichiarazione delle Page UserControl
|
||||||
Friend m_WorkInProgressPageUC As WorkInProgressPageUC
|
Friend m_WorkInProgressPageUC As WorkInProgressPageUC
|
||||||
Friend m_CurrentProjectPageUC As CurrentProjectPageUC
|
Friend m_CurrentProjectPageUC As CurrentProjectPageUC
|
||||||
@@ -101,6 +106,7 @@ Class MainWindow
|
|||||||
REGISTRATION = 2 ^ 20 ' 1048576
|
REGISTRATION = 2 ^ 20 ' 1048576
|
||||||
SIMPLESTATISTICS = 2 ^ 21 ' 2097152
|
SIMPLESTATISTICS = 2 ^ 21 ' 2097152
|
||||||
COMPOFRAME = 2 ^ 22 ' 4194304
|
COMPOFRAME = 2 ^ 22 ' 4194304
|
||||||
|
CUT_LIGHT = 2 ^ 23 ' 8388608
|
||||||
End Enum
|
End Enum
|
||||||
' Opzione nesting automatico
|
' Opzione nesting automatico
|
||||||
Private m_bAutoNest As Boolean = False
|
Private m_bAutoNest As Boolean = False
|
||||||
@@ -339,10 +345,15 @@ Class MainWindow
|
|||||||
' Verifico abilitazione nesting automatico
|
' Verifico abilitazione nesting automatico
|
||||||
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
|
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||||
' Recupero opzioni della chiave
|
' Recupero opzioni della chiave
|
||||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2512, 1, m_nKeyLevel) And
|
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2705, 1, m_nKeyLevel) And
|
||||||
EgtGetKeyOptions(9423, 2512, 1, m_nKeyOptions)
|
EgtGetKeyOptions(9423, 2705, 1, m_nKeyOptions)
|
||||||
' Verifico abilitazione prodotto
|
' Verifico abilitazione prodotto
|
||||||
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
|
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
|
||||||
|
' Impostazione per programma OnlyFrame: solo se CUT_BASE non attivo
|
||||||
|
If Not bProd Then
|
||||||
|
m_OnlyFrame = GetKeyOption(KEY_OPT.CUT_LIGHT)
|
||||||
|
End If
|
||||||
|
|
||||||
' Inizializzazione generale di EgtInterface
|
' Inizializzazione generale di EgtInterface
|
||||||
m_nDebug = GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0, m_sIniFile)
|
m_nDebug = GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0, m_sIniFile)
|
||||||
m_sVersion = My.Application.Info.Version.Major.ToString() & "." &
|
m_sVersion = My.Application.Info.Version.Major.ToString() & "." &
|
||||||
@@ -452,6 +463,7 @@ Class MainWindow
|
|||||||
If GetPrivateProfileInt(S_GENERAL, "Test", "0", m_sIniFile) = 0 OrElse
|
If GetPrivateProfileInt(S_GENERAL, "Test", "0", m_sIniFile) = 0 OrElse
|
||||||
Not File.Exists(m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then
|
Not File.Exists(m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then
|
||||||
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Collapsed
|
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Collapsed
|
||||||
|
EgtOutLog("Warning: Missing file 'TestWork.lua' in folder 'DirectCmd', buttun 'TEST' collapsed!")
|
||||||
Else
|
Else
|
||||||
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Visible
|
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Visible
|
||||||
End If
|
End If
|
||||||
@@ -646,30 +658,36 @@ Class MainWindow
|
|||||||
|
|
||||||
Dim sAssStatus As String = " discontinued"
|
Dim sAssStatus As String = " discontinued"
|
||||||
Dim nAssLeftDays As Integer
|
Dim nAssLeftDays As Integer
|
||||||
|
' MESSAGGIO...
|
||||||
If EgtGetKeyAssLeftDays(nAssLeftDays) And nAssLeftDays >= 0 Then
|
If EgtGetKeyAssLeftDays(nAssLeftDays) And nAssLeftDays >= 0 Then
|
||||||
If nAssLeftDays > 30 Then
|
If nAssLeftDays > 0 Then
|
||||||
sAssStatus = "expires within " & nAssLeftDays.ToString() & " days"
|
sAssStatus = "expires within " & nAssLeftDays.ToString() & " days"
|
||||||
ElseIf nAssLeftDays > 0 Then
|
'sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
|
||||||
sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
|
|
||||||
Else
|
Else
|
||||||
sAssStatus = "to be renewed by today"
|
sAssStatus = "Expired"
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
Dim bShowInfoAssistance As Boolean = True
|
||||||
|
bShowInfoAssistance = (GetPrivateProfileInt(S_GENERAL, K_SHOWEXPIREASSITANCE, "1", GetIniFile) <> 0)
|
||||||
' Or nAssLeftDays = 358
|
' Or nAssLeftDays = 358
|
||||||
If (nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28 Then
|
If bShowInfoAssistance And ((nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28) Then
|
||||||
'Dim sText As String = "Fai ammenda," & vbCrLf & "gli aggiornamenti sono in fase di scadenza!"
|
' 91145=Avviso importante
|
||||||
'Dim sTitle As String = "⚠️ Warning!"
|
Dim sMsg_Title As String = EgtMsg(91145)
|
||||||
'Dim MissingKeyWnd As New EgtMsgBox(Me, sTitle, sText, EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
' 91146=Il contratto di aggiornamento della licenza in uso scadrà tra {0} giorni./n
|
||||||
' finestra Custom
|
Dim sMsg_AssStatus As String = String.Format(EgtMsg(91146), nAssLeftDays.ToString())
|
||||||
Dim sMsg As String = EgtMsg(91141)
|
' 91147=Se desiderate rimanere aggiornati e continuare ad usufruire dei benefici del servizio, vi invitiamo a contattare la nostra assistenza al seguente indirizzo:/n
|
||||||
|
Dim sMsg_RefAssistance As String = EgtMsg(91147)
|
||||||
Dim sAssistance As String = String.Empty
|
Dim sAssistance As String = String.Empty
|
||||||
GetPrivateProfileString(S_GENERAL, "Assistances", "", sAssistance, GetIniFile)
|
GetPrivateProfileString(S_GENERAL, "Assistances", "", sAssistance, GetIniFile)
|
||||||
Dim sItems As String() = sAssistance.Split(","c)
|
Dim sItems As String() = sAssistance.Split(","c)
|
||||||
For Each Item As String In sItems
|
For Each Item As String In sItems
|
||||||
sMsg &= "→ " & Item.Trim & " /n"
|
sMsg_RefAssistance &= " → " & Item.Trim & " /n"
|
||||||
Next
|
Next
|
||||||
Dim MyLicWn As New LicenseWindow(Me, sMsg, "Assistance " & sAssStatus)
|
' 91148=Grazie per la vostra collaborazione.
|
||||||
|
Dim sMsg_ThankYou As String = EgtMsg(91148)
|
||||||
|
Dim MyLicWn As New LicenseWindow(Me, sMsg_AssStatus & sMsg_RefAssistance & sMsg_ThankYou, sMsg_Title)
|
||||||
|
MyLicWn.WindowStartupLocation = WindowStartupLocation.CenterOwner
|
||||||
MyLicWn.Show()
|
MyLicWn.Show()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1139,7 +1157,7 @@ Class MainWindow
|
|||||||
End If
|
End If
|
||||||
' Inizio la chiusura del programma (se NUM_OLD verifico di aver terminato il processo DripFeed)
|
' Inizio la chiusura del programma (se NUM_OLD verifico di aver terminato il processo DripFeed)
|
||||||
EgtOutLog("Iniziato processo di chiusura programma")
|
EgtOutLog("Iniziato processo di chiusura programma")
|
||||||
m_IsClosingApplication = If( m_CNCommunication.m_nNCType = 1, 1, 2)
|
m_IsClosingApplication = If(m_CNCommunication.m_nNCType = 1, 1, 2)
|
||||||
Dim nCount As Integer = 0
|
Dim nCount As Integer = 0
|
||||||
While m_IsClosingApplication <> 2
|
While m_IsClosingApplication <> 2
|
||||||
If nCount > 5 Then
|
If nCount > 5 Then
|
||||||
@@ -1200,13 +1218,17 @@ Class MainWindow
|
|||||||
m_DirectCutPageUC.m_ControlsDirectCutUC.m_GridCut.GridCut_Unloaded(sender, e)
|
m_DirectCutPageUC.m_ControlsDirectCutUC.m_GridCut.GridCut_Unloaded(sender, e)
|
||||||
Case ControlsDirectCutUC.DirectCutPages.FlatteningCut
|
Case ControlsDirectCutUC.DirectCutPages.FlatteningCut
|
||||||
m_DirectCutPageUC.m_ControlsDirectCutUC.m_FlatteningCut.FlatteningCut_Unloaded(sender, e)
|
m_DirectCutPageUC.m_ControlsDirectCutUC.m_FlatteningCut.FlatteningCut_Unloaded(sender, e)
|
||||||
|
End Select
|
||||||
|
|
||||||
|
Select Case m_DirectCutPageUC.m_ControlsDirectCutUC1.m_ActiveDirectCutPage
|
||||||
Case ControlsDirectCutUC.DirectCutPages.CopyTemplate
|
Case ControlsDirectCutUC.DirectCutPages.CopyTemplate
|
||||||
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_CopyTemplate.CopyTemplate_Unloaded(sender, e)
|
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_CopyTemplate.CopyTemplate_Unloaded(sender, e)
|
||||||
Case ControlsDirectCutUC.DirectCutPages.Polishing
|
Case ControlsDirectCutUC.DirectCutPages.Polishing
|
||||||
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_Polishing.Polishing_Unloaded(sender, e)
|
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)
|
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_SawTest.SawTest_Unloaded(sender, e)
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -1277,7 +1299,11 @@ Class MainWindow
|
|||||||
m_ProdLineTimer.Start()
|
m_ProdLineTimer.Start()
|
||||||
End If
|
End If
|
||||||
' di default attivo la pagina CadCut
|
' di default attivo la pagina CadCut
|
||||||
m_ActivePage = MainWindow.Pages.CadCut
|
If m_OnlyFrame Then
|
||||||
|
m_ActivePage = MainWindow.Pages.FrameCut
|
||||||
|
Else
|
||||||
|
m_ActivePage = MainWindow.Pages.CadCut
|
||||||
|
End If
|
||||||
' seleziono il tipo di avvio
|
' seleziono il tipo di avvio
|
||||||
m_CurrentProjectPageUC.StartProgram()
|
m_CurrentProjectPageUC.StartProgram()
|
||||||
' aggiorno la grafica
|
' aggiorno la grafica
|
||||||
@@ -1314,8 +1340,34 @@ Class MainWindow
|
|||||||
Dim bHeadH1 As Boolean = (EgtGetHeadId("H1") <> GDB_ID.NULL)
|
Dim bHeadH1 As Boolean = (EgtGetHeadId("H1") <> GDB_ID.NULL)
|
||||||
EgtSetCurrentContext(nCurrCtx)
|
EgtSetCurrentContext(nCurrCtx)
|
||||||
' Aggiorno interfaccia
|
' Aggiorno interfaccia
|
||||||
CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES)
|
If m_OnlyFrame Then
|
||||||
FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS) AndAlso bHeadH1
|
If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS And
|
||||||
|
m_ActivePage <> Pages.RawPart And m_ActivePage <> Pages.DirectCut And m_ActivePage <> Pages.Simulation Then
|
||||||
|
Dim FrameWnd As New EgtMsgBox(Me, EgtMsg(91141), EgtMsg(91142), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
||||||
|
'' Gestione stato FastGrid
|
||||||
|
'm_CadCutPageUC.m_FastGridSlabManager.OnPreNewProject()
|
||||||
|
' Cancello progetto salvato con nome da file ini
|
||||||
|
WritePrivateProfileString(S_GENERAL, K_LASTNAMEPROJ, "", GetIniFile())
|
||||||
|
' Scelta tavola della macchina
|
||||||
|
Dim nTabInd As Integer = m_CadCutPageUC.m_ProjectMgr.ChooseTable()
|
||||||
|
' Creo nuovo progetto
|
||||||
|
m_CurrentProjectPageUC.NewProject(nTabInd, False)
|
||||||
|
'' Gestione stato FastGrid
|
||||||
|
'm_CadCutPageUC.m_FastGridSlabManager.OnPostNewProject()
|
||||||
|
FrameCutBtn_Click(Nothing, Nothing)
|
||||||
|
CadCutBtn.IsEnabled = False
|
||||||
|
Else
|
||||||
|
FrameCutBtn.IsEnabled = True
|
||||||
|
CadCutBtn.IsEnabled = False
|
||||||
|
' Attivo il pulsante FRAME
|
||||||
|
'FrameCutBtn.IsChecked = True
|
||||||
|
'CadCutBtn.IsChecked = False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES)
|
||||||
|
FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS) AndAlso bHeadH1
|
||||||
|
End If
|
||||||
|
|
||||||
' DirectCutBtn.IsEnabled = bHeadH1
|
' DirectCutBtn.IsEnabled = bHeadH1
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -2068,6 +2120,7 @@ Class MainWindow
|
|||||||
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
|
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
|
||||||
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
||||||
EgtResetMark(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
EgtResetMark(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
||||||
|
m_CadCutPageUC.m_NestPage.m_CurrToolFromSelectedSawCurv = String.Empty
|
||||||
m_CadCutPageUC.m_ProjectMgr.TestBtn.IsChecked = False
|
m_CadCutPageUC.m_ProjectMgr.TestBtn.IsChecked = False
|
||||||
Me.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
|
Me.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Imports System.Windows
|
|||||||
#End If
|
#End If
|
||||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||||
<Assembly: AssemblyProduct("OmagCUT")>
|
<Assembly: AssemblyProduct("OmagCUT")>
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2015-2023 by Egalware s.r.l.")>
|
<Assembly: AssemblyCopyright("Copyright © 2015-2025 by Egalware s.r.l.")>
|
||||||
<Assembly: AssemblyTrademark("")>
|
<Assembly: AssemblyTrademark("")>
|
||||||
<Assembly: ComVisible(False)>
|
<Assembly: ComVisible(False)>
|
||||||
|
|
||||||
@@ -62,5 +62,5 @@ Imports System.Windows
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.5.12.4")>
|
<Assembly: AssemblyVersion("2.7.5.1")>
|
||||||
<Assembly: AssemblyFileVersion("2.5.12.4")>
|
<Assembly: AssemblyFileVersion("2.7.5.1")>
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ Imports System.Collections.ObjectModel
|
|||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
Imports System.Text
|
Imports System.Text
|
||||||
|
Imports EgtWPFLib.EgtMsgBox
|
||||||
|
Imports OmagCUT.CN_generico
|
||||||
|
|
||||||
Public Class CNCommunication
|
Public Class CNCommunication
|
||||||
|
|
||||||
@@ -28,6 +30,9 @@ Public Class CNCommunication
|
|||||||
' Oggetto CN
|
' Oggetto CN
|
||||||
Public WithEvents m_CN As CN_generico
|
Public WithEvents m_CN As CN_generico
|
||||||
|
|
||||||
|
' NUOVO ! in fase di test
|
||||||
|
Private ListReferenceIndex As New List(Of RefereceFlagSimens)
|
||||||
|
|
||||||
' Flag di aggiornamento dati
|
' Flag di aggiornamento dati
|
||||||
Private m_bNewPosData As Boolean = True
|
Private m_bNewPosData As Boolean = True
|
||||||
Private m_bNewDeltaData As Boolean = True
|
Private m_bNewDeltaData As Boolean = True
|
||||||
@@ -236,6 +241,17 @@ Public Class CNCommunication
|
|||||||
m_bInInches = (GetPrivateProfileInt(S_AXES, K_ININCHES, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
m_bInInches = (GetPrivateProfileInt(S_AXES, K_ININCHES, 0, m_MainWindow.GetMachIniFile()) <> 0)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub KillSimensCom(sProcessName As String)
|
||||||
|
Dim sAppName As String = Path.GetFileNameWithoutExtension(sProcessName)
|
||||||
|
Dim pList() As System.Diagnostics.Process = System.Diagnostics.Process.GetProcesses
|
||||||
|
For Each proc As System.Diagnostics.Process In pList
|
||||||
|
If proc.ProcessName.ToString = sAppName Then
|
||||||
|
proc.Kill()
|
||||||
|
EgtOutLog("ProcessKill : " & """" & sProcessName & """")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub InitCn()
|
Private Sub InitCn()
|
||||||
|
|
||||||
m_MachineStatus.MachineStatusGrid.Background = Application.Current.FindResource("OmagCut_Yellow")
|
m_MachineStatus.MachineStatusGrid.Background = Application.Current.FindResource("OmagCut_Yellow")
|
||||||
@@ -271,6 +287,7 @@ Public Class CNCommunication
|
|||||||
|
|
||||||
' Recupero e imposto le variabili per i dati del CN (feed, speed,...)
|
' Recupero e imposto le variabili per i dati del CN (feed, speed,...)
|
||||||
GetPrivateProfileString(S_NCDATA, K_COMM, "XIP01, 0, 10, 0, 0, 0", sVal, m_MainWindow.GetMachIniFile())
|
GetPrivateProfileString(S_NCDATA, K_COMM, "XIP01, 0, 10, 0, 0, 0", sVal, m_MainWindow.GetMachIniFile())
|
||||||
|
EgtOutLog(" → Tipo di comunicazione: " & sVal)
|
||||||
m_CN.SetCnDataVar(CN_generico.CnData.Comm, sVal)
|
m_CN.SetCnDataVar(CN_generico.CnData.Comm, sVal)
|
||||||
GetPrivateProfileString(S_NCDATA, K_REFRESH, "200", sVal, m_MainWindow.GetMachIniFile())
|
GetPrivateProfileString(S_NCDATA, K_REFRESH, "200", sVal, m_MainWindow.GetMachIniFile())
|
||||||
m_CN.SetCnDataVar(CN_generico.CnData.Refresh, sVal)
|
m_CN.SetCnDataVar(CN_generico.CnData.Refresh, sVal)
|
||||||
@@ -372,6 +389,9 @@ Public Class CNCommunication
|
|||||||
m_CN.SetCnDataVar(CN_generico.CnData.VacuumOff, sVal)
|
m_CN.SetCnDataVar(CN_generico.CnData.VacuumOff, sVal)
|
||||||
GetPrivateProfileString(S_NCDATA, K_BYPASSTATE, "", sVal, m_MainWindow.GetMachIniFile())
|
GetPrivateProfileString(S_NCDATA, K_BYPASSTATE, "", sVal, m_MainWindow.GetMachIniFile())
|
||||||
m_CN.SetCnDataVar(CN_generico.CnData.BypassState, sVal)
|
m_CN.SetCnDataVar(CN_generico.CnData.BypassState, sVal)
|
||||||
|
' ver 2.6i1 : nuova gestione SiemensONE
|
||||||
|
GetPrivateProfileString(S_NCDATA, K_RESETSTATUS, "", sVal, m_MainWindow.GetMachIniFile())
|
||||||
|
m_CN.SetCnDataVar(CN_generico.CnData.ResetStatus, sVal)
|
||||||
|
|
||||||
' nuove variabili: stato dei nuovi pulsanti
|
' nuove variabili: stato dei nuovi pulsanti
|
||||||
nVal = GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile())
|
nVal = GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile())
|
||||||
@@ -389,10 +409,14 @@ Public Class CNCommunication
|
|||||||
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.Remote, sVal)
|
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.Remote, sVal)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Solo per controllo FANUNC
|
' Solo per controllo FANUC
|
||||||
GetPrivateProfileString(S_NCDATA, K_NAXES, "", sVal, m_MainWindow.GetMachIniFile())
|
GetPrivateProfileString(S_NCDATA, K_NAXES, "", sVal, m_MainWindow.GetMachIniFile())
|
||||||
m_CN.SetCnDataVar(CN_generico.CnData.nAxes, sVal)
|
m_CN.SetCnDataVar(CN_generico.CnData.nAxes, sVal)
|
||||||
|
|
||||||
|
' Solo per controllo speciale NUM 22/01/2025
|
||||||
|
GetPrivateProfileString(S_NCDATA, K_CPOS, "", sVal, m_MainWindow.GetMachIniFile())
|
||||||
|
m_CN.SetCnDataVar(CN_generico.CnData.CPos, sVal)
|
||||||
|
If Not String.IsNullOrEmpty(sVal) Then m_CN.bCPos = True
|
||||||
|
|
||||||
' Inizializzo la comunicazione
|
' Inizializzo la comunicazione
|
||||||
m_CN.Init()
|
m_CN.Init()
|
||||||
@@ -402,6 +426,10 @@ Public Class CNCommunication
|
|||||||
EgtOutLog("Error starting NC communication : " & ex.Message)
|
EgtOutLog("Error starting NC communication : " & ex.Message)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
|
'' !!!!!!!!!!!!! Per forzare la lettura delle variabili siemens di configurazione !!!!!!!!!!!!!
|
||||||
|
' m_nNCType = 3
|
||||||
|
'' !!!!!!!!!!!!! Per forzare la lettura delle variabili siemens di configurazione !!!!!!!!!!!!!
|
||||||
|
|
||||||
Select Case m_nNCType
|
Select Case m_nNCType
|
||||||
Case 0 'Debug
|
Case 0 'Debug
|
||||||
m_MachineStatus.MachineStatusGrid.Background = Application.Current.FindResource("OmagCut_Yellow")
|
m_MachineStatus.MachineStatusGrid.Background = Application.Current.FindResource("OmagCut_Yellow")
|
||||||
@@ -426,26 +454,137 @@ Public Class CNCommunication
|
|||||||
Try
|
Try
|
||||||
m_MachineStatus.MachineStatusGrid.Background = Application.Current.FindResource("OmagCut_DarkGray")
|
m_MachineStatus.MachineStatusGrid.Background = Application.Current.FindResource("OmagCut_DarkGray")
|
||||||
Dim sArg As String = "-start """ & m_sCNSiemensPath & """"
|
Dim sArg As String = "-start """ & m_sCNSiemensPath & """"
|
||||||
|
|
||||||
|
' !!!!!!!!!!!!!! FORZO LA SIMULAZIONE DELLA LETTURA DELLE VARIBILI E SIEMENS !!!!!!!!!!!!!!
|
||||||
EgtOutLog("ProcessStart : " & """" & m_sCNSiemensHMIPath & """" & " " & sArg)
|
EgtOutLog("ProcessStart : " & """" & m_sCNSiemensHMIPath & """" & " " & sArg)
|
||||||
|
KillSimensCom(m_sCNSiemensHMIPath)
|
||||||
Process.Start(m_sCNSiemensHMIPath, sArg)
|
Process.Start(m_sCNSiemensHMIPath, sArg)
|
||||||
|
' !!!!!!!!!!!!!! FORZO LA SIMULAZIONE DELLA LETTURA DELLE VARIBILI E SIEMENS !!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
EgtOutLog("ProcessStart : " & """" & m_sCNSiemensHMIPath & """" & " " & sArg)
|
||||||
m_CN.m_IsSiemensOne = GetPrivateProfileInt(S_NCSIEMENS, K_ISSIEMENSONE, 0, m_MainWindow.GetMachIniFile()) > 0
|
m_CN.m_IsSiemensOne = GetPrivateProfileInt(S_NCSIEMENS, K_ISSIEMENSONE, 0, m_MainWindow.GetMachIniFile()) > 0
|
||||||
m_CN.m_IsActiveModeSubscription = GetPrivateProfileInt(S_NCSIEMENS, K_ISACTIVEMODESUBSCR, 0, m_MainWindow.GetMachIniFile()) > 0
|
m_CN.m_IsActiveModeSubscription = GetPrivateProfileInt(S_NCSIEMENS, K_ISACTIVEMODESUBSCR, 0, m_MainWindow.GetMachIniFile()) > 0
|
||||||
If m_CN.m_IsSiemensOne Then
|
If m_CN.m_IsSiemensOne Then
|
||||||
' stati bottoni parte 1
|
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.Laser), VarType.TInteger, 0)
|
|
||||||
' stati bottoni ventose
|
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.LaserTrac), VarType.TInteger, 1)
|
|
||||||
'stati porte
|
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.DoorClosed), VarType.TInteger, 2)
|
|
||||||
'
|
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.BlowState), VarType.TInteger, 3)
|
|
||||||
' stati bottoni parte 2
|
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.CBAxes), VarType.TInteger, 4)
|
|
||||||
' ampere e ampere override
|
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.Spindle), VarType.TDouble, 0)
|
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.SpeedOvr), VarType.TDouble, 1)
|
|
||||||
|
|
||||||
|
' Leggo tutte le varaibili che sono state caricate nel percorso [NcData] del file *.ini
|
||||||
|
Dim nIndexArrayBool As Integer = 0
|
||||||
|
Dim nIndexArrayInt As Integer = 0
|
||||||
|
Dim nIndexArrayLong As Integer = 0
|
||||||
|
Dim nIndexArrayDoub As Integer = 0
|
||||||
|
Dim nIndexArrayStr As Integer = 0
|
||||||
|
' lista che associa Indice del vettore al nome (per associazioni Bit a Bit)
|
||||||
|
Dim ListIndexToVar As New List(Of IndexArrayToBit)
|
||||||
|
' Creo un vettore che mi permetta di risalire a cosa contiene ogni vettore FLAG (di tipo Enum)
|
||||||
|
For ItemIndex As Integer = 0 To m_CN.m_szCnDataVar.Count - 1
|
||||||
|
' escludo i Flag 'Comm' e 'Refresh'
|
||||||
|
If ItemIndex = CnData.Comm Or ItemIndex = CnData.Refresh Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
If Not String.IsNullOrEmpty(m_CN.m_szCnDataVar(ItemIndex)) Then
|
||||||
|
Dim sItem As String() = m_CN.m_szCnDataVar(ItemIndex).Split(","c)
|
||||||
|
Dim nVarType As VarType = VarType.TInteger
|
||||||
|
If sItem.Count > 1 Then
|
||||||
|
If IsNumeric(sItem(0)) Then
|
||||||
|
Select Case CInt(sItem(0))
|
||||||
|
Case 0
|
||||||
|
If nIndexArrayBool > 14 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
nVarType = VarType.TBoolean
|
||||||
|
m_CN.DVariables_Read_Subscription(sItem(1), nVarType, nIndexArrayBool)
|
||||||
|
Dim NewRefFlafSiemens As RefereceFlagSimens = New RefereceFlagSimens(nIndexArrayBool, ItemIndex, nVarType)
|
||||||
|
If sItem.Count = 3 Then
|
||||||
|
' forzo la lettura della variabile di default (ignoro lo stato letto da CN)
|
||||||
|
NewRefFlafSiemens.DefaultValue = sItem(2)
|
||||||
|
End If
|
||||||
|
ListReferenceIndex.Add(NewRefFlafSiemens)
|
||||||
|
nIndexArrayBool += 1
|
||||||
|
Case 1
|
||||||
|
If nIndexArrayInt > 14 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
nVarType = VarType.TInteger
|
||||||
|
m_CN.DVariables_Read_Subscription(sItem(1), nVarType, nIndexArrayInt)
|
||||||
|
ListReferenceIndex.Add(New RefereceFlagSimens(nIndexArrayInt, ItemIndex, nVarType))
|
||||||
|
nIndexArrayInt += 1
|
||||||
|
Case 2
|
||||||
|
If nIndexArrayLong > 14 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
nVarType = VarType.TLong
|
||||||
|
m_CN.DVariables_Read_Subscription(sItem(1), nVarType, nIndexArrayLong)
|
||||||
|
ListReferenceIndex.Add(New RefereceFlagSimens(nIndexArrayLong, ItemIndex, nVarType))
|
||||||
|
nIndexArrayLong += 1
|
||||||
|
Case 3
|
||||||
|
If nIndexArrayDoub > 14 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
nVarType = VarType.TDouble
|
||||||
|
m_CN.DVariables_Read_Subscription(sItem(1), nVarType, nIndexArrayDoub)
|
||||||
|
ListReferenceIndex.Add(New RefereceFlagSimens(nIndexArrayDoub, ItemIndex, nVarType))
|
||||||
|
nIndexArrayDoub += 1
|
||||||
|
Case 4
|
||||||
|
If nIndexArrayStr > 14 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
nVarType = VarType.TString
|
||||||
|
m_CN.DVariables_Read_Subscription(sItem(1), nVarType, nIndexArrayStr)
|
||||||
|
ListReferenceIndex.Add(New RefereceFlagSimens(nIndexArrayStr, ItemIndex, nVarType))
|
||||||
|
nIndexArrayStr += 1
|
||||||
|
Case 5
|
||||||
|
If nIndexArrayInt > 14 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
' verifico se devo riempire un vettore con bit
|
||||||
|
Dim sSubItem As String() = sItem(1).Split("."c)
|
||||||
|
' //My. name. Is Bond._James Bond!
|
||||||
|
Dim sVarName = String.Join(".", sSubItem.Take(sSubItem.Length - 1)) ' //My. name. Is Bond
|
||||||
|
Dim sIndexBit = sSubItem.Last() ' //_James Bond!
|
||||||
|
If sSubItem.Count > 1 And IsNumeric(sIndexBit) Then
|
||||||
|
Dim bFound As Boolean = False
|
||||||
|
Dim nIndexArrayInt_1 As Integer = nIndexArrayInt
|
||||||
|
For Each VarSiemens As IndexArrayToBit In ListIndexToVar
|
||||||
|
If VarSiemens.sNameVar.Trim = sVarName.Trim Then
|
||||||
|
nIndexArrayInt_1 = VarSiemens.nIndex
|
||||||
|
bFound = True
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
nVarType = VarType.TInteger
|
||||||
|
m_CN.DVariables_Read_Subscription(sVarName, nVarType, nIndexArrayInt_1)
|
||||||
|
Dim NewRefFlafSiemens As RefereceFlagSimens = New RefereceFlagSimens(nIndexArrayInt_1, ItemIndex, nVarType, sIndexBit)
|
||||||
|
If sItem.Count = 3 Then
|
||||||
|
' forzo la lettura della variabile di default (ignoro lo stato letto da CN)
|
||||||
|
NewRefFlafSiemens.DefaultValue = sItem(2)
|
||||||
|
End If
|
||||||
|
ListReferenceIndex.Add(NewRefFlafSiemens)
|
||||||
|
If Not bFound Then
|
||||||
|
nIndexArrayInt += 1
|
||||||
|
ListIndexToVar.Add(New IndexArrayToBit(nIndexArrayInt_1, sVarName.Trim))
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
EgtOutLog(" ATTENZIONE: in [NcData] '" & m_CN.m_szCnDataVar(ItemIndex) & "' non è inidicato il bit associato")
|
||||||
|
End If
|
||||||
|
Case Else
|
||||||
|
If nIndexArrayInt > 14 Then
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
nVarType = VarType.TInteger
|
||||||
|
m_CN.DVariables_Read_Subscription(sItem(1), nVarType, nIndexArrayInt)
|
||||||
|
ListReferenceIndex.Add(New RefereceFlagSimens(nIndexArrayInt, ItemIndex, nVarType))
|
||||||
|
nIndexArrayInt += 1
|
||||||
|
End Select
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
EgtOutLog(" ATTENZIONE: in [NcData] '" & m_CN.m_szCnDataVar(ItemIndex) & "' non è indicato il tipo (0→Bool,1→Int,2→Long,3→Double,4→String,5→Bit)")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
' Attraverso la funzione "RefreshNoEvents" rileggo i dati caricati
|
||||||
|
|
||||||
|
' Recupero il perocorso delle variabili PLC
|
||||||
GetPrivateProfileString(S_NCSIEMENS, K_DBVARPATH, "", m_CN.m_DbVarPath, m_MainWindow.GetMachIniFile)
|
GetPrivateProfileString(S_NCSIEMENS, K_DBVARPATH, "", m_CN.m_DbVarPath, m_MainWindow.GetMachIniFile)
|
||||||
|
|
||||||
ElseIf m_CN.m_IsActiveModeSubscription Then
|
ElseIf m_CN.m_IsActiveModeSubscription Then
|
||||||
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.BlowState), VarType.TInteger, 3)
|
m_CN.DVariables_Read_Subscription(m_CN.m_szCnDataVar(CN_generico.CnData.BlowState), VarType.TInteger, 3)
|
||||||
End If
|
End If
|
||||||
@@ -973,6 +1112,68 @@ Public Class CNCommunication
|
|||||||
'Laser = 16384
|
'Laser = 16384
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
|
#Region "MASCHERA per conttrollo Bit a Bit"
|
||||||
|
<Flags()>
|
||||||
|
Public Enum Mask As Integer
|
||||||
|
bit_Err = -1
|
||||||
|
bit_0 = &H1 ' 1
|
||||||
|
bit_1 = &H2 ' 2
|
||||||
|
bit_2 = &H4 ' 4
|
||||||
|
bit_3 = &H8 ' 8
|
||||||
|
bit_4 = &H10 ' 16
|
||||||
|
bit_5 = &H20 ' 32
|
||||||
|
bit_6 = &H40 ' 64
|
||||||
|
bit_7 = &H80 ' 128
|
||||||
|
bit_8 = &H100 ' 256
|
||||||
|
bit_9 = &H200 ' 512
|
||||||
|
bit_10 = &H400 ' 1024
|
||||||
|
bit_11 = &H800 ' 2048
|
||||||
|
bit_12 = &H1000 ' 4096
|
||||||
|
bit_13 = &H2000 ' 8192
|
||||||
|
bit_14 = &H4000 ' 16384
|
||||||
|
bit_15 = &H8000 ' 32768
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Public Function GetMaskByBit(IndexBit As Integer) As Mask
|
||||||
|
Dim Bit_ As Mask = Mask.bit_Err
|
||||||
|
Select Case IndexBit
|
||||||
|
Case 0
|
||||||
|
Bit_ = Mask.bit_0
|
||||||
|
Case 1
|
||||||
|
Bit_ = Mask.bit_1
|
||||||
|
Case 2
|
||||||
|
Bit_ = Mask.bit_2
|
||||||
|
Case 3
|
||||||
|
Bit_ = Mask.bit_3
|
||||||
|
Case 4
|
||||||
|
Bit_ = Mask.bit_4
|
||||||
|
Case 5
|
||||||
|
Bit_ = Mask.bit_5
|
||||||
|
Case 6
|
||||||
|
Bit_ = Mask.bit_6
|
||||||
|
Case 7
|
||||||
|
Bit_ = Mask.bit_7
|
||||||
|
Case 8
|
||||||
|
Bit_ = Mask.bit_8
|
||||||
|
Case 9
|
||||||
|
Bit_ = Mask.bit_9
|
||||||
|
Case 10
|
||||||
|
Bit_ = Mask.bit_10
|
||||||
|
Case 11
|
||||||
|
Bit_ = Mask.bit_11
|
||||||
|
Case 12
|
||||||
|
Bit_ = Mask.bit_12
|
||||||
|
Case 13
|
||||||
|
Bit_ = Mask.bit_13
|
||||||
|
Case 14
|
||||||
|
Bit_ = Mask.bit_14
|
||||||
|
Case 15
|
||||||
|
Bit_ = Mask.bit_15
|
||||||
|
End Select
|
||||||
|
Return Bit_
|
||||||
|
End Function
|
||||||
|
#End Region ' Maschera per controllo Bit a Bit
|
||||||
|
|
||||||
Public Function IsSetAll(value As Integer, flag As Integer) As Boolean
|
Public Function IsSetAll(value As Integer, flag As Integer) As Boolean
|
||||||
' somma Bit a Bit
|
' somma Bit a Bit
|
||||||
Return ((value And flag) = flag)
|
Return ((value And flag) = flag)
|
||||||
@@ -988,23 +1189,23 @@ Public Class CNCommunication
|
|||||||
|
|
||||||
m_MachineStatus.DisplaySpeed()
|
m_MachineStatus.DisplaySpeed()
|
||||||
|
|
||||||
m_MachineStatus.DisplayPower()
|
'm_MachineStatus.DisplayPower()
|
||||||
|
|
||||||
m_MachineStatus.DisplayVar()
|
m_MachineStatus.DisplayVar()
|
||||||
'EgtOutLog("Modo attivato: " & m_CN.read_active_mode & " modo attivo: " & m_nCurrMode)
|
'EgtOutLog("Modo attivato: " & m_CN.read_active_mode & " modo attivo: " & m_nCurrMode)
|
||||||
|
|
||||||
If m_nCountRefresh > 10 Then
|
'If m_nCountRefresh > 10 Then
|
||||||
Dim TempCurrMode As Short = m_CN.read_active_mode()
|
' Dim TempCurrMode As Short = m_CN.read_active_mode()
|
||||||
'EgtOutLog("Machine status: " & TempCurrMode)
|
' 'EgtOutLog("Machine status: " & TempCurrMode)
|
||||||
If TempCurrMode <> m_nCurrMode Then
|
' If TempCurrMode <> m_nCurrMode Then
|
||||||
'EgtOutLog("Modo attivo: " & m_CN.read_active_mode)
|
' 'EgtOutLog("Modo attivo: " & m_CN.read_active_mode)
|
||||||
m_nCurrMode = CInt(TempCurrMode)
|
' m_nCurrMode = CInt(TempCurrMode)
|
||||||
m_MachineStatus.DisplayActiveMode(m_nCurrMode)
|
' m_MachineStatus.DisplayActiveMode(m_nCurrMode)
|
||||||
End If
|
' End If
|
||||||
m_nCountRefresh = 0
|
' m_nCountRefresh = 0
|
||||||
Else
|
'Else
|
||||||
m_nCountRefresh = m_nCountRefresh + 1
|
' m_nCountRefresh = m_nCountRefresh + 1
|
||||||
End If
|
'End If
|
||||||
|
|
||||||
If m_CN.b_NC_error Then
|
If m_CN.b_NC_error Then
|
||||||
ErrorList.Clear()
|
ErrorList.Clear()
|
||||||
@@ -1021,61 +1222,176 @@ Public Class CNCommunication
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' lettura delle variabili abbonate
|
||||||
If m_MainWindow.m_DirectCutPageUC.m_NewMachineButtonsType Then
|
If m_MainWindow.m_DirectCutPageUC.m_NewMachineButtonsType Then
|
||||||
|
|
||||||
' lettura variabili stati mancanti su Siemens
|
'------------ SINUMERIK ONE ----------------------------------------------
|
||||||
Dim nVarValue As Integer = m_CN.n_data(0)
|
For IndxLst As Integer = 0 To ListReferenceIndex.Count - 1
|
||||||
EgtOutLog("Variabile PLC control addr: " & 1 & " value: " & nVarValue)
|
Dim nType As Integer = ListReferenceIndex(IndxLst).TypeArray
|
||||||
m_CN.bSpindleState = IsSetAll(nVarValue, ControlStates.Spindle)
|
Dim nFlag As Integer = ListReferenceIndex(IndxLst).FlagIndex
|
||||||
m_CN.bLaserTracState = IsSetAll(nVarValue, ControlStates.LaserTrac)
|
Dim nIndex As Integer = ListReferenceIndex(IndxLst).SiemnesArrayIndex
|
||||||
m_CN.bCoolantState = IsSetAll(nVarValue, ControlStates.Coolant)
|
Dim nIndexBit As Integer = ListReferenceIndex(IndxLst).IndexBit
|
||||||
m_CN.bInternalCoolantState = IsSetAll(nVarValue, ControlStates.InternalCoolant)
|
Dim sDefaultValue As String = ListReferenceIndex(IndxLst).DefaultValue
|
||||||
m_CN.bExternCoolantState = IsSetAll(nVarValue, ControlStates.ExternCoolant)
|
Dim b_temp As Boolean = False
|
||||||
m_CN.bCBAxesState = IsSetAll(nVarValue, ControlStates.CAxis)
|
Dim n_temp As Integer = 0
|
||||||
m_CN.bAirBlowState = IsSetAll(nVarValue, ControlStates.AirBlow)
|
Dim l_temp As Long = 0.0
|
||||||
m_CN.bHomeState = IsSetAll(nVarValue, ControlStates.Home)
|
Dim d_temp As Double = 0.0
|
||||||
m_CN.bTableUpState = IsSetAll(nVarValue, ControlStates.TableUp)
|
' leggo il valore caricato
|
||||||
m_CN.bTableDownState = IsSetAll(nVarValue, ControlStates.TableDown)
|
Select Case nType
|
||||||
m_CN.bLimitZState = IsSetAll(nVarValue, ControlStates.LimitZ)
|
Case VarType.TBoolean
|
||||||
m_CN.b5AxesState = IsSetAll(nVarValue, ControlStates.Axis5)
|
If Not String.IsNullOrEmpty(sDefaultValue) Then
|
||||||
|
' ver 2.6i1
|
||||||
|
Try
|
||||||
|
b_temp = CBool(sDefaultValue)
|
||||||
|
Catch ex As Exception
|
||||||
|
EgtOutLog("Default boolean value of flag " & nFlag.ToString & " is not Boolean, verify the form: True or true or 1, False or false or 0")
|
||||||
|
b_temp = m_CN.b_data(nIndex)
|
||||||
|
End Try
|
||||||
|
Else
|
||||||
|
b_temp = m_CN.b_data(nIndex)
|
||||||
|
End If
|
||||||
|
Case VarType.TInteger
|
||||||
|
n_temp = m_CN.n_data(nIndex)
|
||||||
|
' VENTOSE: lettura dato da intero Bit a Bit (ver_2.6h1), ritorno un Boolean
|
||||||
|
If Not String.IsNullOrEmpty(sDefaultValue) Then
|
||||||
|
' ver 2.6i1
|
||||||
|
Try
|
||||||
|
b_temp = CBool(sDefaultValue)
|
||||||
|
Catch ex As Exception
|
||||||
|
EgtOutLog("Default bit value of flag " & nFlag.ToString & " is not Boolean, verify the form: True or true or 1, False or false or 0")
|
||||||
|
b_temp = ReadBit(nIndexBit, n_temp)
|
||||||
|
End Try
|
||||||
|
Else
|
||||||
|
b_temp = ReadBit(nIndexBit, n_temp)
|
||||||
|
End If
|
||||||
|
Case VarType.TLong
|
||||||
|
l_temp = m_CN.l_data(nIndex)
|
||||||
|
Case VarType.TDouble
|
||||||
|
d_temp = m_CN.d_data(nIndex)
|
||||||
|
Case VarType.TString
|
||||||
|
'b_temp = If(m_CN.d_data(nIndex) = 0, True, False)
|
||||||
|
End Select
|
||||||
|
|
||||||
nVarValue = m_CN.n_data(1)
|
Select Case nFlag
|
||||||
'EgtOutLog("Variabile PLC vacuum addr: " & m_CN.m_szCnDataVar(CN_generico.CnData.LaserTrac) & " value: " & nVarValue)
|
Case CN_generico.CnData.Mode ' (0) Stato modo attivo
|
||||||
m_CN.bVacuumUp = IsSetAll(nVarValue, VacuumStates.VacuumUp)
|
m_CN.n_index_mode = nIndex
|
||||||
m_CN.bVacuumDown = IsSetAll(nVarValue, VacuumStates.VacuumDown)
|
If m_nCountRefresh > 10 Then
|
||||||
m_CN.bVacuum2Up = IsSetAll(nVarValue, VacuumStates.Vacuum2Up)
|
Dim TempCurrMode As Short = m_CN.read_active_mode()
|
||||||
m_CN.bVacuum2Down = IsSetAll(nVarValue, VacuumStates.Vacuum2Down)
|
'EgtOutLog("Machine status: " & TempCurrMode)
|
||||||
m_CN.bVacuum1State = IsSetAll(nVarValue, VacuumStates.Vacuum1State)
|
If TempCurrMode <> m_nCurrMode Then
|
||||||
m_CN.bVacuum2State = IsSetAll(nVarValue, VacuumStates.Vacuum2State)
|
'EgtOutLog("Modo attivo: " & m_CN.read_active_mode)
|
||||||
m_CN.bVacuum3State = IsSetAll(nVarValue, VacuumStates.Vacuum3State)
|
m_nCurrMode = CInt(TempCurrMode)
|
||||||
m_CN.bVacuum4State = IsSetAll(nVarValue, VacuumStates.Vacuum4State)
|
m_MachineStatus.DisplayActiveMode(m_nCurrMode)
|
||||||
m_CN.bVacuum5State = IsSetAll(nVarValue, VacuumStates.Vacuum5State)
|
m_CN.nMachineMode = m_nCurrMode
|
||||||
m_CN.bVacuum6State = IsSetAll(nVarValue, VacuumStates.Vacuum6State)
|
End If
|
||||||
m_CN.bOpenAllState = (m_CN.bVacuum1State And m_CN.bVacuum2State And m_CN.bVacuum3State And m_CN.bVacuum4State And m_CN.bVacuum5State And m_CN.bVacuum6State)
|
m_nCountRefresh = 0
|
||||||
m_CN.bCloseAllState = (Not m_CN.bVacuum1State And Not m_CN.bVacuum2State And Not m_CN.bVacuum3State And Not m_CN.bVacuum4State And Not m_CN.bVacuum5State And Not m_CN.bVacuum6State)
|
Else
|
||||||
m_CN.bOpen123State = (m_CN.bVacuum1State And m_CN.bVacuum2State And m_CN.bVacuum3State)
|
m_nCountRefresh = m_nCountRefresh + 1
|
||||||
m_CN.bOpen456State = (m_CN.bVacuum4State And m_CN.bVacuum5State And m_CN.bVacuum6State)
|
End If
|
||||||
m_CN.bClose123State = (Not m_CN.bVacuum1State And Not m_CN.bVacuum2State And Not m_CN.bVacuum3State)
|
Case CN_generico.CnData.Power
|
||||||
m_CN.bClose456State = (Not m_CN.bVacuum4State And Not m_CN.bVacuum5State And Not m_CN.bVacuum6State)
|
m_CN.d_spindle_power = d_temp
|
||||||
m_CN.bBlowState = IsSetAll(nVarValue, VacuumStates.AirBlow)
|
Case CN_generico.CnData.Spindle ' (7) Stato rotazione mandrino
|
||||||
m_CN.bVacuumOn = IsSetAll(nVarValue, VacuumStates.VacuumOn)
|
m_CN.bSpindleState = b_temp
|
||||||
m_CN.bVacuumOff = IsSetAll(nVarValue, VacuumStates.VacuumOff)
|
Case CN_generico.CnData.Coolant ' (8) Stato acqua
|
||||||
m_CN.bBypassState = IsSetAll(nVarValue, VacuumStates.BypassState)
|
m_CN.bCoolantState = b_temp
|
||||||
|
Case CN_generico.CnData.Laser ' (9) Stato laser punto
|
||||||
|
m_CN.bLaserState = b_temp
|
||||||
|
Case CN_generico.CnData.PowerOvr ' (10) Amperaggio
|
||||||
|
m_CN.bPowerOvr = d_temp
|
||||||
|
Case CN_generico.CnData.InternalCoolant ' (13) Stato acqua interna
|
||||||
|
m_CN.bInternalCoolantState = b_temp
|
||||||
|
Case CN_generico.CnData.ExternCoolant ' (14) Stato acqua esterna
|
||||||
|
m_CN.bExternCoolantState = b_temp
|
||||||
|
Case CN_generico.CnData.CBAxes ' (15) Stato ativazione assi c e b
|
||||||
|
m_CN.bCBAxesState = b_temp
|
||||||
|
Case CN_generico.CnData.AirBlow ' (16) Stato soffio utensile
|
||||||
|
m_CN.bAirBlowState = b_temp
|
||||||
|
Case CN_generico.CnData.Home ' (17) Stato home
|
||||||
|
m_CN.bHomeState = b_temp
|
||||||
|
Case CN_generico.CnData.TableUp ' (18) Stato tavolo su
|
||||||
|
m_CN.bTableUpState = b_temp
|
||||||
|
Case CN_generico.CnData.TableDown ' (19) Stato tavolo giu'
|
||||||
|
m_CN.bTableDownState = b_temp
|
||||||
|
Case CN_generico.CnData.DoorClosed ' (20) Stato porte
|
||||||
|
m_CN.nDoorClosedState = n_temp
|
||||||
|
Case CN_generico.CnData.LimitZ ' (21) Stato limitazione asse Z
|
||||||
|
m_CN.bLimitZState = b_temp
|
||||||
|
Case CN_generico.CnData.VacuumUp ' (22) Stato ventosa su'
|
||||||
|
m_CN.bVacuumUp = b_temp
|
||||||
|
Case CN_generico.CnData.VacuumDown ' (23) Stato ventosa giu'
|
||||||
|
m_CN.bVacuumDown = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum2Up ' (24) Stato ventosa2 su'
|
||||||
|
m_CN.bVacuum2Up = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum2Down ' (25) Stato ventosa2 giu'
|
||||||
|
m_CN.bVacuum2Down = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum1State ' (26) Stato ventosa 1
|
||||||
|
m_CN.bVacuum1State = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum2State ' (27) Stato ventosa 2
|
||||||
|
m_CN.bVacuum2State = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum3State ' (28) Stato ventosa 3
|
||||||
|
m_CN.bVacuum3State = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum4State ' (29) Stato ventosa 4
|
||||||
|
m_CN.bVacuum4State = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum5State ' (30) Stato ventosa 5
|
||||||
|
m_CN.bVacuum5State = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum6State ' (31) Stato ventosa 6
|
||||||
|
m_CN.bVacuum6State = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum135State ' (32) Stato ventose 135
|
||||||
|
m_CN.bVacuum135State = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum246State ' (33) Stato ventose 246
|
||||||
|
m_CN.bVacuum246State = b_temp
|
||||||
|
Case CN_generico.CnData.OpenAllState ' (34) Stato apertura ventose
|
||||||
|
m_CN.bOpenAllState = b_temp
|
||||||
|
Case CN_generico.CnData.CloseAllState ' (35) Stato chiusura ventose
|
||||||
|
m_CN.bCloseAllState = b_temp
|
||||||
|
Case CN_generico.CnData.Open123State ' (36) Stato apertura ventose
|
||||||
|
m_CN.bOpen123State = b_temp
|
||||||
|
Case CN_generico.CnData.Open456State ' (37) Stato apertura ventose
|
||||||
|
m_CN.bOpen456State = b_temp
|
||||||
|
Case CN_generico.CnData.Close123State ' (38) Stato chiusura ventose
|
||||||
|
m_CN.bClose123State = b_temp
|
||||||
|
Case CN_generico.CnData.Close456State ' (39) Stato chiusura ventose
|
||||||
|
m_CN.bClose456State = b_temp
|
||||||
|
Case CN_generico.CnData.BlowState ' (40) Stato soffio ventose
|
||||||
|
m_CN.bBlowState = b_temp
|
||||||
|
Case CN_generico.CnData.VacuumOn ' (41) Stato aspirazione ventose acceso
|
||||||
|
m_CN.bVacuumOn = b_temp
|
||||||
|
Case CN_generico.CnData.BypassState ' (42) Stato bypass
|
||||||
|
m_CN.bBypassState = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum0 ' (43) Stato rotazione ventosa 0
|
||||||
|
m_CN.bVacuum0 = b_temp
|
||||||
|
Case CN_generico.CnData.Vacuum90 ' (44) Stato rotazione ventosa 0
|
||||||
|
m_CN.bVacuum90 = b_temp
|
||||||
|
Case CN_generico.CnData.VacuumOff ' (45) Stato aspirazione ventose spento
|
||||||
|
m_CN.bVacuumOff = b_temp
|
||||||
|
Case CN_generico.CnData.LaserTrac ' (46) Stato laser tracciatura
|
||||||
|
m_CN.bLaserTracState = b_temp
|
||||||
|
Case CN_generico.CnData.XYJog ' (47)
|
||||||
|
m_CN.bXYJog = b_temp
|
||||||
|
Case CN_generico.CnData.ZCJog ' (48)
|
||||||
|
m_CN.bZCJog = b_temp
|
||||||
|
Case CN_generico.CnData.ZBJog ' (49)
|
||||||
|
m_CN.bZBCJog = b_temp
|
||||||
|
Case CN_generico.CnData.PowerON ' (50)
|
||||||
|
m_CN.bPowerON = b_temp
|
||||||
|
Case CN_generico.CnData.Remote ' (51)
|
||||||
|
m_CN.bRemote = b_temp
|
||||||
|
Case CN_generico.CnData.Parking ' (52)
|
||||||
|
m_CN.bParkingState = b_temp
|
||||||
|
Case CN_generico.CnData.nAxes ' (55)
|
||||||
|
m_CN.n_index_is_G24_active = nIndex
|
||||||
|
m_CN.b5AxesState = b_temp
|
||||||
|
Case CN_generico.CnData.ResetStatus ' (56)
|
||||||
|
m_CN.bResetState = b_temp
|
||||||
|
|
||||||
nVarValue = m_CN.n_data(2)
|
End Select
|
||||||
'EgtOutLog("Variabile PLC door addr: " & m_CN.m_szCnDataVar(CN_generico.CnData.DoorClosed) & " value: " & nVarValue)
|
Next
|
||||||
m_CN.nDoorClosedState = nVarValue
|
'------------ SINUMERIK ONE ----------------------------------------------
|
||||||
|
|
||||||
nVarValue = m_CN.n_data(4)
|
|
||||||
'EgtOutLog("Variabile PLC control 2 addr: " & 3 & " value: " & nVarValue)
|
|
||||||
m_CN.bLaserState = IsSetAll(nVarValue, ControlStates2.Laser)
|
|
||||||
m_CN.bHsm = IsSetAll(nVarValue, ControlStates2.Hsm)
|
|
||||||
m_CN.bResetState = IsSetAll(nVarValue, ControlStates2.ResetState)
|
|
||||||
m_CN.bFeedHold = IsSetAll(nVarValue, ControlStates2.FeedHold)
|
|
||||||
m_CN.bSpeedHold = IsSetAll(nVarValue, ControlStates2.SpindleHold)
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
m_MachineStatus.DisplayPower()
|
||||||
|
|
||||||
' Flag e variabili per bottoni macchina, che verifico solo nelle pagine in cui ci sono
|
' Flag e variabili per bottoni macchina, che verifico solo nelle pagine in cui ci sono
|
||||||
If m_MainWindow.m_ActivePage = MainWindow.Pages.DirectCut Then
|
If m_MainWindow.m_ActivePage = MainWindow.Pages.DirectCut Then
|
||||||
If m_MainWindow.m_DirectCutPageUC.m_NewMachineButtonsType Then
|
If m_MainWindow.m_DirectCutPageUC.m_NewMachineButtonsType Then
|
||||||
@@ -1125,6 +1441,7 @@ Public Class CNCommunication
|
|||||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.CoolantStateChanged(m_CN.bCoolantState)
|
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.CoolantStateChanged(m_CN.bCoolantState)
|
||||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.LaserStateChanged(m_CN.bLaserState)
|
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.LaserStateChanged(m_CN.bLaserState)
|
||||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.LaserTracStateChanged(m_CN.bLaserTracState)
|
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.LaserTracStateChanged(m_CN.bLaserTracState)
|
||||||
|
' modalità vecchia
|
||||||
If m_CN.Is_G24_active() Then
|
If m_CN.Is_G24_active() Then
|
||||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.ThreeAxisStateChanged(False)
|
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.ThreeAxisStateChanged(False)
|
||||||
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.FiveAxisStateChanged(True)
|
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.FiveAxisStateChanged(True)
|
||||||
@@ -1153,8 +1470,25 @@ Public Class CNCommunication
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If m_MainWindow.m_ActivePage = MainWindow.Pages.Machine Then
|
||||||
|
If m_IsNewConsole Then
|
||||||
|
m_MainWindow.m_MachinePageUC.m_MachineCNPageUC.PowerONChanged(m_CN.bPowerON)
|
||||||
|
m_MainWindow.m_MachinePageUC.m_MachineCNPageUC.PowerOFFChanged(Not m_CN.bPowerON)
|
||||||
|
m_MainWindow.m_MachinePageUC.m_MachineCNPageUC.CncModeChange(m_CN.nMachineMode)
|
||||||
|
End If
|
||||||
|
m_MainWindow.m_MachinePageUC.m_MachineCNPageUC.CncModeChange(m_CN.nMachineMode)
|
||||||
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Function ReadBit(IndexBit As Integer, Val As Integer) As Boolean
|
||||||
|
If IndexBit < 0 Then Return False
|
||||||
|
Dim _mask = GetMaskByBit(IndexBit)
|
||||||
|
If _mask = Mask.bit_Err Then Return False
|
||||||
|
If (Val And _mask) = 0 Then Return False
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
Friend Function SetProgramMainOrSub(bMain As Boolean) As Boolean
|
Friend Function SetProgramMainOrSub(bMain As Boolean) As Boolean
|
||||||
Return m_CN.SetProgramMainOrSub(bMain)
|
Return m_CN.SetProgramMainOrSub(bMain)
|
||||||
End Function
|
End Function
|
||||||
@@ -1162,6 +1496,11 @@ Public Class CNCommunication
|
|||||||
Friend Function SendProgram(ByVal sCncPath As String, ByVal nNumProg As Integer,
|
Friend Function SendProgram(ByVal sCncPath As String, ByVal nNumProg As Integer,
|
||||||
Optional bActivate As Boolean = True) As Boolean
|
Optional bActivate As Boolean = True) As Boolean
|
||||||
Dim bOk As Boolean = True
|
Dim bOk As Boolean = True
|
||||||
|
|
||||||
|
' !!!!!!!!!!!!!!!!!! FORZO IL PROGRAMMA !!!!!!!!!!!!!!!!!!
|
||||||
|
' m_nNCType = 2
|
||||||
|
' !!!!!!!!!!!!!!!!!! FORZO IL PROGRAMMA !!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
' Download programma
|
' Download programma
|
||||||
If m_MainWindow.m_bNCLink Then
|
If m_MainWindow.m_bNCLink Then
|
||||||
bOk = (m_nNCType > 0)
|
bOk = (m_nNCType > 0)
|
||||||
@@ -1195,7 +1534,7 @@ Public Class CNCommunication
|
|||||||
' Attesa opportuna
|
' Attesa opportuna
|
||||||
System.Threading.Thread.Sleep(m_MainWindow.m_CurrentMachine.nThreadSleep)
|
System.Threading.Thread.Sleep(m_MainWindow.m_CurrentMachine.nThreadSleep)
|
||||||
End If
|
End If
|
||||||
EgtOutLog("Download_NC_prog(sCncPath, sNumProg)")
|
EgtOutLog("Download_NC_prog(" & sCncPath & ", " & sNumProg.ToString & ")")
|
||||||
' -------------- START DOWNLOAD --------------
|
' -------------- START DOWNLOAD --------------
|
||||||
TimeSpanInit()
|
TimeSpanInit()
|
||||||
bOk = bOk AndAlso (m_CN.Download_NC_prog(sCncPath, sNumProg) = 0)
|
bOk = bOk AndAlso (m_CN.Download_NC_prog(sCncPath, sNumProg) = 0)
|
||||||
@@ -1236,7 +1575,7 @@ Public Class CNCommunication
|
|||||||
' Se richiesta attivazione
|
' Se richiesta attivazione
|
||||||
If bActivate Then
|
If bActivate Then
|
||||||
' Attivazione programma
|
' Attivazione programma
|
||||||
EgtOutLog("ActivateProgram(nNumProg)")
|
EgtOutLog("ActivateProgram(" & nNumProg.ToString & ")")
|
||||||
TimeSpanInit()
|
TimeSpanInit()
|
||||||
bOk = bOk AndAlso (m_CN.ActivateProgram(nNumProg) = 0)
|
bOk = bOk AndAlso (m_CN.ActivateProgram(nNumProg) = 0)
|
||||||
EgtOutLog(TimeSpanEnd())
|
EgtOutLog(TimeSpanEnd())
|
||||||
@@ -1265,9 +1604,17 @@ Public Class CNCommunication
|
|||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub GetSpecialCAxes()
|
||||||
|
If m_CN.bCPos Then
|
||||||
|
m_CN.d_axis_position(m_nA4) = m_CN.dCPos
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
||||||
ByRef dA4 As Double, ByRef dA5 As Double, ByRef dA6 As Double,
|
ByRef dA4 As Double, ByRef dA5 As Double, ByRef dA6 As Double,
|
||||||
ByRef dA7 As Double, ByRef dA8 As Double, ByRef dA9 As Double, ByRef dA10 As Double) As Boolean
|
ByRef dA7 As Double, ByRef dA8 As Double, ByRef dA9 As Double, ByRef dA10 As Double) As Boolean
|
||||||
|
' gestione speciale asse C
|
||||||
|
GetSpecialCAxes()
|
||||||
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
||||||
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
||||||
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
||||||
@@ -1284,6 +1631,8 @@ Public Class CNCommunication
|
|||||||
|
|
||||||
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
||||||
ByRef dA4 As Double, ByRef dA5 As Double) As Boolean
|
ByRef dA4 As Double, ByRef dA5 As Double) As Boolean
|
||||||
|
' gestione speciale asse C
|
||||||
|
GetSpecialCAxes()
|
||||||
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
||||||
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
||||||
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
||||||
@@ -1302,6 +1651,8 @@ Public Class CNCommunication
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function GetRotaryAxesPositions(ByRef dR1 As Double, ByRef dR2 As Double) As Boolean
|
Friend Function GetRotaryAxesPositions(ByRef dR1 As Double, ByRef dR2 As Double) As Boolean
|
||||||
|
' gestione speciale asse C
|
||||||
|
GetSpecialCAxes()
|
||||||
dR1 = If(m_nA4 >= 0, m_CN.d_axis_position(m_nA4), 0)
|
dR1 = If(m_nA4 >= 0, m_CN.d_axis_position(m_nA4), 0)
|
||||||
dR2 = If(m_nA5 >= 0, m_CN.d_axis_position(m_nA5), 0)
|
dR2 = If(m_nA5 >= 0, m_CN.d_axis_position(m_nA5), 0)
|
||||||
Return m_bAxesOk
|
Return m_bAxesOk
|
||||||
@@ -1366,3 +1717,95 @@ Public Class CNCommunication
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
Public Class RefereceFlagSimens
|
||||||
|
|
||||||
|
Private m_SiemnesArrayIndex As Integer
|
||||||
|
Private m_FlagIndex As Integer
|
||||||
|
Private m_TypeArray As Integer
|
||||||
|
' Opzionale
|
||||||
|
Private m_IndexBit As Integer = -1
|
||||||
|
Private m_DefaultValue As String = ""
|
||||||
|
|
||||||
|
Public Property SiemnesArrayIndex As Integer
|
||||||
|
Get
|
||||||
|
Return m_SiemnesArrayIndex
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_SiemnesArrayIndex = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property FlagIndex As Integer
|
||||||
|
Get
|
||||||
|
Return m_FlagIndex
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_FlagIndex = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property TypeArray As Integer
|
||||||
|
Get
|
||||||
|
Return m_TypeArray
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_TypeArray = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property IndexBit As String
|
||||||
|
Get
|
||||||
|
Return m_IndexBit
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_IndexBit = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public Property DefaultValue As String
|
||||||
|
Get
|
||||||
|
Return m_DefaultValue
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_DefaultValue = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(IndArray As Integer, Flag As Integer, nType As Integer)
|
||||||
|
m_SiemnesArrayIndex = IndArray
|
||||||
|
m_FlagIndex = Flag
|
||||||
|
m_TypeArray = nType
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub New(IndArray As Integer, Flag As Integer, nType As Integer, nIndBit As Integer)
|
||||||
|
m_SiemnesArrayIndex = IndArray
|
||||||
|
m_FlagIndex = Flag
|
||||||
|
m_TypeArray = nType
|
||||||
|
m_IndexBit = nIndBit
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class IndexArrayToBit
|
||||||
|
|
||||||
|
Private m_nIndex As Integer = 0
|
||||||
|
Public ReadOnly Property nIndex As Integer
|
||||||
|
Get
|
||||||
|
Return m_nIndex
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_sNameVar As String = ""
|
||||||
|
Public ReadOnly Property sNameVar As String
|
||||||
|
Get
|
||||||
|
Return m_sNameVar
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Index As Integer, NameVar As String)
|
||||||
|
m_nIndex = Index
|
||||||
|
m_sNameVar = NameVar
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
@@ -87,6 +87,7 @@ Public Class CN_Siemens
|
|||||||
Case 8 ' Modalita Ref Point
|
Case 8 ' Modalita Ref Point
|
||||||
sDBVarPath &= "REF_POINT"
|
sDBVarPath &= "REF_POINT"
|
||||||
End Select
|
End Select
|
||||||
|
' /plc/"OmagCUT_DB".CTRL.AUTO
|
||||||
DVariables_WriteVariables3(sDBVarPath, 1, 1, 0, 0, "")
|
DVariables_WriteVariables3(sDBVarPath, 1, 1, 0, 0, "")
|
||||||
Return 0
|
Return 0
|
||||||
Else
|
Else
|
||||||
@@ -132,7 +133,7 @@ Public Class CN_Siemens
|
|||||||
Public Overrides Function read_active_mode() As Short
|
Public Overrides Function read_active_mode() As Short
|
||||||
'EgtOutLog("Modo attivo: " & M_MMFiles.SiemensRet.n_param2)
|
'EgtOutLog("Modo attivo: " & M_MMFiles.SiemensRet.n_param2)
|
||||||
If m_IsSiemensOne Or m_IsActiveModeSubscription Then
|
If m_IsSiemensOne Or m_IsActiveModeSubscription Then
|
||||||
Select Case n_data(3)
|
Select Case n_data(n_index_mode)
|
||||||
Case 1
|
Case 1
|
||||||
Return 0
|
Return 0
|
||||||
Case 2
|
Case 2
|
||||||
@@ -152,7 +153,12 @@ Public Class CN_Siemens
|
|||||||
|
|
||||||
Public Overrides Function Is_G24_active() As Boolean
|
Public Overrides Function Is_G24_active() As Boolean
|
||||||
|
|
||||||
Return M_MMFiles.SiemensRet.b_interf_G24
|
If m_IsSiemensOne Or m_IsActiveModeSubscription Then
|
||||||
|
Return b_data(n_index_is_G24_active)
|
||||||
|
|
||||||
|
Else
|
||||||
|
Return M_MMFiles.SiemensRet.b_interf_G24
|
||||||
|
End If
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -217,12 +223,12 @@ Public Class CN_Siemens
|
|||||||
Public Overrides Sub DVariables_WriteVariables3(VarAddr As String, ParType As Short, nVarValue As Integer, lVarValue As Long, dVarValue As Double, sVarValue As String)
|
Public Overrides Sub DVariables_WriteVariables3(VarAddr As String, ParType As Short, nVarValue As Integer, lVarValue As Long, dVarValue As Double, sVarValue As String)
|
||||||
Dim n_ret As Short = Write_var(VarAddr, ParType, nVarValue, lVarValue, dVarValue, sVarValue)
|
Dim n_ret As Short = Write_var(VarAddr, ParType, nVarValue, lVarValue, dVarValue, sVarValue)
|
||||||
'EgtOutLog("CN SIEMENS Dopo scrittura variabile")
|
'EgtOutLog("CN SIEMENS Dopo scrittura variabile")
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Overrides Sub DVariables_Read_Subscription(VarAddr As String, ParType As Short, Index As Integer)
|
Public Overrides Sub DVariables_Read_Subscription(VarAddr As String, ParType As Short, Index As Integer)
|
||||||
|
' Ricevo il percorso della varibile, il tipo
|
||||||
Dim n_ret As Short = Read_subscription(VarAddr, ParType, Index)
|
Dim n_ret As Short = Read_subscription(VarAddr, ParType, Index)
|
||||||
'EgtOutLog("CN SIEMENS Dopo lettura abbonamento")
|
EgtOutLog(" ABBONAMENTO (Esito: " & n_ret.ToString & ") -> Address: " & VarAddr & ", Type: " & ParType.ToString & ", Index: " & Index.ToString)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Public MustInherit Class CN_generico
|
|||||||
Public Const MAX_VAR As Short = 100
|
Public Const MAX_VAR As Short = 100
|
||||||
Public Const MAX_VALUES As Short = 9 ' Max. index to read the data from the FXServer array
|
Public Const MAX_VALUES As Short = 9 ' Max. index to read the data from the FXServer array
|
||||||
Public Const MAX_TOOLS As Short = 100
|
Public Const MAX_TOOLS As Short = 100
|
||||||
Public Const NUM_DATA = 56 ' Numero di dati del CN (Speed,Feed,...)
|
Public Const NUM_DATA = 58 ' Numero di dati del CN (Speed,Feed,...)
|
||||||
|
|
||||||
Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC
|
Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC
|
||||||
|
|
||||||
@@ -72,6 +72,10 @@ Public MustInherit Class CN_generico
|
|||||||
EnablePC = 54
|
EnablePC = 54
|
||||||
|
|
||||||
nAxes = 55
|
nAxes = 55
|
||||||
|
|
||||||
|
ResetStatus = 56
|
||||||
|
|
||||||
|
CPos = 57
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
Public Enum Type As Short
|
Public Enum Type As Short
|
||||||
@@ -138,6 +142,9 @@ Public MustInherit Class CN_generico
|
|||||||
Public d_param1 As Double
|
Public d_param1 As Double
|
||||||
Public sz_string As String ' ( MAX 200 caratteri )
|
Public sz_string As String ' ( MAX 200 caratteri )
|
||||||
|
|
||||||
|
' Indice del vettore n_data associato alla lettura nMode
|
||||||
|
Public n_index_mode As Integer = 0
|
||||||
|
Public n_index_is_G24_active As Integer = 0
|
||||||
Public b_data(14) As Boolean
|
Public b_data(14) As Boolean
|
||||||
Public n_data(14) As Int16
|
Public n_data(14) As Int16
|
||||||
Public l_data(14) As Long
|
Public l_data(14) As Long
|
||||||
@@ -228,6 +235,10 @@ Public MustInherit Class CN_generico
|
|||||||
Public bRemote As Boolean
|
Public bRemote As Boolean
|
||||||
' Nuovi di bottoni -------------------------------------------
|
' Nuovi di bottoni -------------------------------------------
|
||||||
|
|
||||||
|
' gestione speciale asse C
|
||||||
|
Public bCPos As Boolean = False
|
||||||
|
Public dCPos As Double
|
||||||
|
|
||||||
' solo per NumOld
|
' solo per NumOld
|
||||||
Public bIsDripFeed As Boolean = False
|
Public bIsDripFeed As Boolean = False
|
||||||
|
|
||||||
|
|||||||
@@ -1683,7 +1683,16 @@ Module M_Fanuc
|
|||||||
sz_Err_Msg = ""
|
sz_Err_Msg = ""
|
||||||
If Not bSimulation Then
|
If Not bSimulation Then
|
||||||
|
|
||||||
sz_MDI_program = sz_MDI_command
|
' Nicola: 10/05/2024
|
||||||
|
|
||||||
|
Dim sItems As String() = sz_MDI_command.Split(";")
|
||||||
|
Dim sNew_MDI_program As String = ""
|
||||||
|
For Each sItem As String In sItems
|
||||||
|
sNew_MDI_program &= sItem & vbLf
|
||||||
|
Next
|
||||||
|
sNew_MDI_program &= "%"
|
||||||
|
|
||||||
|
sz_MDI_program = sNew_MDI_program
|
||||||
|
|
||||||
' Nicola: 29/03/2023
|
' Nicola: 29/03/2023
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ Module M_MMFiles
|
|||||||
|
|
||||||
#Region " Structures"
|
#Region " Structures"
|
||||||
|
|
||||||
|
' Struttura per spedire un "comando" al Siemens
|
||||||
<StructLayout(LayoutKind.Sequential)> _
|
<StructLayout(LayoutKind.Sequential)>
|
||||||
Structure SiemensSendStruct
|
Structure SiemensSendStruct
|
||||||
|
|
||||||
Public n_Flag As Integer
|
Public n_Flag As Integer
|
||||||
@@ -46,7 +46,7 @@ Module M_MMFiles
|
|||||||
|
|
||||||
Private SiemensSend As SiemensSendStruct
|
Private SiemensSend As SiemensSendStruct
|
||||||
|
|
||||||
|
' Struttura per leggere l'esito di un "comando" al Siemens
|
||||||
<StructLayout(LayoutKind.Sequential)> _
|
<StructLayout(LayoutKind.Sequential)> _
|
||||||
Structure SiemensRetStruct
|
Structure SiemensRetStruct
|
||||||
|
|
||||||
@@ -75,6 +75,7 @@ Module M_MMFiles
|
|||||||
Public b_is_laser_ON As Boolean
|
Public b_is_laser_ON As Boolean
|
||||||
Public b_is_spindle_ON As Boolean
|
Public b_is_spindle_ON As Boolean
|
||||||
|
|
||||||
|
' Vettore assi macchina (file SiemensComm: axes_0_M, axes_0_P)
|
||||||
<MarshalAs(UnmanagedType.ByValArray, ArraySubType:=UnmanagedType.R8, SizeConst:=16)> _
|
<MarshalAs(UnmanagedType.ByValArray, ArraySubType:=UnmanagedType.R8, SizeConst:=16)> _
|
||||||
Public d_interf_axis_position() As Double
|
Public d_interf_axis_position() As Double
|
||||||
|
|
||||||
@@ -176,7 +177,7 @@ Module M_MMFiles
|
|||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
#Region " Commands constants"
|
#Region " Commands constants"
|
||||||
|
' Elenco codici comandi per spedire programma a SiemensComm.exe
|
||||||
Enum CMD As Short
|
Enum CMD As Short
|
||||||
|
|
||||||
CMD_Download_NC_prog = 1
|
CMD_Download_NC_prog = 1
|
||||||
@@ -205,6 +206,7 @@ Module M_MMFiles
|
|||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
Friend Enum VarType As Short
|
Friend Enum VarType As Short
|
||||||
|
TBoolean = 0
|
||||||
TInteger = 1
|
TInteger = 1
|
||||||
TLong = 2
|
TLong = 2
|
||||||
TDouble = 3
|
TDouble = 3
|
||||||
@@ -343,6 +345,9 @@ Module M_MMFiles
|
|||||||
Function ActivateProgram(ByVal sz_part_program As String) As Short
|
Function ActivateProgram(ByVal sz_part_program As String) As Short
|
||||||
'EgtOutLog("ActivateProgram start dell'm_mmFiles")
|
'EgtOutLog("ActivateProgram start dell'm_mmFiles")
|
||||||
|
|
||||||
|
EgtOutLog("Flag di comando: " & CMD.CMD_ActivateProgram.ToString)
|
||||||
|
EgtOutLog("Stringa di comando: " & sz_part_program.ToString)
|
||||||
|
|
||||||
SiemensSend.n_Command = CMD.CMD_ActivateProgram
|
SiemensSend.n_Command = CMD.CMD_ActivateProgram
|
||||||
SiemensSend.sz_string = sz_part_program
|
SiemensSend.sz_string = sz_part_program
|
||||||
|
|
||||||
@@ -370,7 +375,8 @@ Module M_MMFiles
|
|||||||
SiemensSend.n_Command = CMD.CMD_CycleStart
|
SiemensSend.n_Command = CMD.CMD_CycleStart
|
||||||
|
|
||||||
execute_command()
|
execute_command()
|
||||||
'EgtOutLog("CycleStart end dell'm_mmFiles")
|
' Rimango in attesa
|
||||||
|
EgtOutLog(" → CycleStart")
|
||||||
Return SiemensRet.n_result
|
Return SiemensRet.n_result
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
@@ -597,16 +603,15 @@ Module M_MMFiles
|
|||||||
'EgtOutLog("Write_Nc_var start dell'm_mmFiles")
|
'EgtOutLog("Write_Nc_var start dell'm_mmFiles")
|
||||||
SiemensSend.n_Command = CMD.CMD_Read_NC_subscription
|
SiemensSend.n_Command = CMD.CMD_Read_NC_subscription
|
||||||
SiemensSend.sz_string_2 = VarAddr ' indirizzo su CN dell' oggetto da scrivere
|
SiemensSend.sz_string_2 = VarAddr ' indirizzo su CN dell' oggetto da scrivere
|
||||||
|
EgtOutLog(" → Sottoscrivo lettura di '" & VarAddr & "'")
|
||||||
SiemensSend.n_param1 = Index ' tipo di dato da scrivere
|
SiemensSend.n_param1 = Index ' tipo di dato da scrivere
|
||||||
|
EgtOutLog(" Indice del vettore associato '" & Index & "'")
|
||||||
SiemensSend.n_param2 = ParType ' tipo di dato da scrivere
|
SiemensSend.n_param2 = ParType ' tipo di dato da scrivere
|
||||||
|
EgtOutLog(" Indice tipo di variabile '" & ParType & "'")
|
||||||
execute_command()
|
execute_command()
|
||||||
m_MainWindow.m_CNCommunication.m_CN.sz_interf_error_message = SiemensRet.sz_interf_error_message
|
m_MainWindow.m_CNCommunication.m_CN.sz_interf_error_message = SiemensRet.sz_interf_error_message
|
||||||
|
EgtOutLog(" sz_interf_error_message: " & m_MainWindow.m_CNCommunication.m_CN.sz_interf_error_message)
|
||||||
EgtOutLog("sz_interf_error_message: " & m_MainWindow.m_CNCommunication.m_CN.sz_interf_error_message)
|
EgtOutLog(" n_result: " & SiemensRet.n_result)
|
||||||
EgtOutLog("n_result: " & SiemensRet.n_result)
|
|
||||||
Return SiemensRet.n_result
|
Return SiemensRet.n_result
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -765,7 +770,7 @@ Module M_MMFiles
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
' copio variabili in abbonamento
|
' copio variabili in abbonamento
|
||||||
For Index As Integer = 0 To 5
|
For Index As Integer = 0 To 14
|
||||||
CurrCN.b_data(Index) = SiemensRet.b_data(Index)
|
CurrCN.b_data(Index) = SiemensRet.b_data(Index)
|
||||||
CurrCN.n_data(Index) = SiemensRet.n_data(Index)
|
CurrCN.n_data(Index) = SiemensRet.n_data(Index)
|
||||||
CurrCN.l_data(Index) = SiemensRet.l_data(Index)
|
CurrCN.l_data(Index) = SiemensRet.l_data(Index)
|
||||||
|
|||||||
@@ -53,14 +53,14 @@ Namespace Num
|
|||||||
Dim WithEvents objDRunTimeSystem As FXServer.DRunTimeSystem
|
Dim WithEvents objDRunTimeSystem As FXServer.DRunTimeSystem
|
||||||
Dim WithEvents objDGroupManager As FXServer.DGroupManager
|
Dim WithEvents objDGroupManager As FXServer.DGroupManager
|
||||||
Dim WithEvents objDReadELS As FXServer.DReadELS
|
Dim WithEvents objDReadELS As FXServer.DReadELS
|
||||||
' questa è classe che serve a scrivere i dati nel PLC
|
' questa � classe che serve a scrivere i dati nel PLC
|
||||||
Dim WithEvents objDPlcVariables As FXServer.DPlcVariables
|
Dim WithEvents objDPlcVariables As FXServer.DPlcVariables
|
||||||
' questa è la classe che serve a scrivere i dati nelle variabili E
|
' questa � la classe che serve a scrivere i dati nelle variabili E
|
||||||
Dim WithEvents objDVariables As FXServer.DVariables
|
Dim WithEvents objDVariables As FXServer.DVariables
|
||||||
Dim WithEvents objDReadTestExectime As FXServer.DReadTestExectime
|
Dim WithEvents objDReadTestExectime As FXServer.DReadTestExectime
|
||||||
Dim WithEvents objDPosition As FXServer.DPosition
|
Dim WithEvents objDPosition As FXServer.DPosition
|
||||||
Dim WithEvents objDNCKParameter As FXServer.DNCKParameter
|
Dim WithEvents objDNCKParameter As FXServer.DNCKParameter
|
||||||
' questa è la classe che serve a scrivere i comandi MDI (come ad esempio le funzioni M)
|
' questa � la classe che serve a scrivere i comandi MDI (come ad esempio le funzioni M)
|
||||||
Dim WithEvents objDMdiCommand As FXServer.DMdiCommand
|
Dim WithEvents objDMdiCommand As FXServer.DMdiCommand
|
||||||
Dim WithEvents objDMainCncData As FXServer.DMainCncData
|
Dim WithEvents objDMainCncData As FXServer.DMainCncData
|
||||||
|
|
||||||
@@ -458,7 +458,7 @@ Namespace Num
|
|||||||
'sz_var_names.Add("Application.IOCONFIG_GLOBALS.Flexium_NCK.WCNC.Spindle[2].Override") ' segnaposto per la speed override
|
'sz_var_names.Add("Application.IOCONFIG_GLOBALS.Flexium_NCK.WCNC.Spindle[2].Override") ' segnaposto per la speed override
|
||||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_Vel_prog") ' FEED
|
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_Vel_prog") ' FEED
|
||||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabRPM") ' Speed
|
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabRPM") ' Speed
|
||||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabAmper") ' Ampère = *0.01
|
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabAmper") ' Amp�re = *0.01
|
||||||
|
|
||||||
' Creo lista nomi variabili PLC da leggere
|
' Creo lista nomi variabili PLC da leggere
|
||||||
m_nCnDataVarNum = 0
|
m_nCnDataVarNum = 0
|
||||||
@@ -823,7 +823,7 @@ Namespace Num
|
|||||||
|
|
||||||
|
|
||||||
' Only for FX Server >= 3.9.0.0
|
' Only for FX Server >= 3.9.0.0
|
||||||
' poi in realtà ritorna sempre tipo = -1 per cui è eguale alle altre.....
|
' poi in realt� ritorna sempre tipo = -1 per cui � eguale alle altre.....
|
||||||
Private Sub objDReadELS_ValueChanged3(nHandle As Integer, value As Object, DataType As Short, Writable As Short, nerrorCode As Short) Handles objDReadELS.ValueChanged3
|
Private Sub objDReadELS_ValueChanged3(nHandle As Integer, value As Object, DataType As Short, Writable As Short, nerrorCode As Short) Handles objDReadELS.ValueChanged3
|
||||||
|
|
||||||
Dim edata_type As eDatatype
|
Dim edata_type As eDatatype
|
||||||
@@ -996,7 +996,7 @@ Namespace Num
|
|||||||
d_spindle_eff(0) = CDbl(values(n))
|
d_spindle_eff(0) = CDbl(values(n))
|
||||||
Case CnData.SpeedOvr ' (5) Potenziom. speed = ...
|
Case CnData.SpeedOvr ' (5) Potenziom. speed = ...
|
||||||
n_spindle_override(0) = CShort(Math.Round((CDbl(values(n)) * 50 / 255) + 50))
|
n_spindle_override(0) = CShort(Math.Round((CDbl(values(n)) * 50 / 255) + 50))
|
||||||
Case CnData.Power ' (6) Ampère = * 0.01
|
Case CnData.Power ' (6) Amp�re = * 0.01
|
||||||
d_spindle_power = CDbl(CLng(values(n))) * 0.01
|
d_spindle_power = CDbl(CLng(values(n))) * 0.01
|
||||||
b_spindle_power_changed = True
|
b_spindle_power_changed = True
|
||||||
Case CnData.Spindle ' (7) Stato rotazione mandrino
|
Case CnData.Spindle ' (7) Stato rotazione mandrino
|
||||||
@@ -1095,6 +1095,9 @@ Namespace Num
|
|||||||
Case CnData.EnablePC ' (54)
|
Case CnData.EnablePC ' (54)
|
||||||
nEnablePc = CInt(values(n))
|
nEnablePc = CInt(values(n))
|
||||||
|
|
||||||
|
Case CnData.CPos ' (57)
|
||||||
|
dCPos = CDbl(values(n))
|
||||||
|
|
||||||
End Select
|
End Select
|
||||||
Next
|
Next
|
||||||
|
|
||||||
@@ -1701,11 +1704,11 @@ Namespace Num
|
|||||||
nTimeOut += 1
|
nTimeOut += 1
|
||||||
End While
|
End While
|
||||||
If Not bSetModeDone Then
|
If Not bSetModeDone Then
|
||||||
EgtOutLog("Errore cambio modalità in MDI: " & TIMEOUT)
|
EgtOutLog("Errore cambio modalit� in MDI: " & TIMEOUT)
|
||||||
Return TIMEOUT 'Errore di timeout
|
Return TIMEOUT 'Errore di timeout
|
||||||
End If
|
End If
|
||||||
If nSetModeResult <> 0 Then
|
If nSetModeResult <> 0 Then
|
||||||
EgtOutLog("Errore 2 cambio modalità in MDI: " & nSetModeResult)
|
EgtOutLog("Errore 2 cambio modalit� in MDI: " & nSetModeResult)
|
||||||
End If
|
End If
|
||||||
Return nSetModeResult
|
Return nSetModeResult
|
||||||
|
|
||||||
|
|||||||
@@ -289,6 +289,7 @@ Namespace Num
|
|||||||
|
|
||||||
' Stringhe valide : "COM" o "XIP01, 0, 10, 0, 0, 0"
|
' Stringhe valide : "COM" o "XIP01, 0, 10, 0, 0, 0"
|
||||||
Dim nret As Integer = NC_connect(m_szCnDataVar(CnData.Comm))
|
Dim nret As Integer = NC_connect(m_szCnDataVar(CnData.Comm))
|
||||||
|
EgtOutLog(" → Risultatao apertura connessiione: " & nret)
|
||||||
If nret <> 0 Then Return False
|
If nret <> 0 Then Return False
|
||||||
|
|
||||||
n_state = 2
|
n_state = 2
|
||||||
@@ -583,7 +584,6 @@ Namespace Num
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function Read_machine_pos() As Int16
|
Function Read_machine_pos() As Int16
|
||||||
|
|
||||||
Dim nret As Int16
|
Dim nret As Int16
|
||||||
Dim i, n As Integer
|
Dim i, n As Integer
|
||||||
|
|
||||||
@@ -1297,14 +1297,14 @@ Namespace Num
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function VerifyBusy() As eStateType
|
Function VerifyBusy() As eStateType
|
||||||
For I As Integer = 0 To 50
|
For I As Integer = 0 To 150
|
||||||
If global_state <> eStateType.READY Then
|
If global_state <> eStateType.READY Then
|
||||||
System.Threading.Thread.Sleep(SLEEP_TIME)
|
System.Threading.Thread.Sleep(SLEEP_TIME)
|
||||||
Else
|
Else
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
EgtOutLog("eStateType: " & global_state.ToString & " -- if eStateType=0 it means READY")
|
||||||
Return global_state
|
Return global_state
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|||||||
@@ -174,9 +174,18 @@
|
|||||||
<Compile Include="AboutBox\AboutBoxWD.xaml.vb">
|
<Compile Include="AboutBox\AboutBoxWD.xaml.vb">
|
||||||
<DependentUpon>AboutBoxWD.xaml</DependentUpon>
|
<DependentUpon>AboutBoxWD.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="CadCuts\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">
|
<Compile Include="CadCuts\SelectPartFromFamilyWD.xaml.vb">
|
||||||
<DependentUpon>SelectPartFromFamilyWD.xaml</DependentUpon>
|
<DependentUpon>SelectPartFromFamilyWD.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="CadCuts\SelParkIndWD.xaml.vb">
|
||||||
|
<DependentUpon>SelParkIndWD.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="CAM\CamPolishing.vb" />
|
<Compile Include="CAM\CamPolishing.vb" />
|
||||||
<Compile Include="DirectCuts\ControlsDirectCutUC.xaml.vb">
|
<Compile Include="DirectCuts\ControlsDirectCutUC.xaml.vb">
|
||||||
<DependentUpon>ControlsDirectCutUC.xaml</DependentUpon>
|
<DependentUpon>ControlsDirectCutUC.xaml</DependentUpon>
|
||||||
@@ -444,10 +453,22 @@
|
|||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Page>
|
</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">
|
<Page Include="CadCuts\SelectPartFromFamilyWD.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Include="CadCuts\SelParkIndWD.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
</Page>
|
||||||
<Page Include="DirectCuts\ControlsDirectCutUC.xaml">
|
<Page Include="DirectCuts\ControlsDirectCutUC.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
@@ -1368,6 +1389,36 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Resource Include="Resources\NewIcons\Move-Spot-Reg.png" />
|
<Resource Include="Resources\NewIcons\Move-Spot-Reg.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\Logo-Egalware.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\Logo-Egalware %282%29.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\Logo-Egalware %283%29.png" />
|
||||||
|
<Resource Include="Resources\NewIcons\RawHeight.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\LightArrowOff.png" />
|
||||||
|
<Resource Include="Resources\NewIcons\LightArrowOn.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\Park_Busy.png" />
|
||||||
|
<Resource Include="Resources\NewIcons\icoRight-3D.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\icoLeft-3D.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\icoBack-3D.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\icoFront-3D.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\icoBottom-3D.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
||||||
|
|||||||
@@ -133,6 +133,7 @@
|
|||||||
<BitmapImage x:Key="PhotoImg" UriSource="Resources/Photo.png"></BitmapImage>
|
<BitmapImage x:Key="PhotoImg" UriSource="Resources/Photo.png"></BitmapImage>
|
||||||
<BitmapImage x:Key="RawPartImg" UriSource="Resources/RawPart.png"></BitmapImage>
|
<BitmapImage x:Key="RawPartImg" UriSource="Resources/RawPart.png"></BitmapImage>
|
||||||
<BitmapImage x:Key="RawProbeImg" UriSource="Resources/RawProbe.png"></BitmapImage>
|
<BitmapImage x:Key="RawProbeImg" UriSource="Resources/RawProbe.png"></BitmapImage>
|
||||||
|
<BitmapImage x:Key="RawHeightImg" UriSource="Resources/NewIcons/RawHeight.png"></BitmapImage>
|
||||||
<BitmapImage x:Key="RightArrowImg" UriSource="Resources/RightArrow.png"></BitmapImage>
|
<BitmapImage x:Key="RightArrowImg" UriSource="Resources/RightArrow.png"></BitmapImage>
|
||||||
<BitmapImage x:Key="SawProbeImg" UriSource="Resources/SawProbe.png"></BitmapImage>
|
<BitmapImage x:Key="SawProbeImg" UriSource="Resources/SawProbe.png"></BitmapImage>
|
||||||
<BitmapImage x:Key="SendImg" UriSource="Resources/Send.png"></BitmapImage>
|
<BitmapImage x:Key="SendImg" UriSource="Resources/Send.png"></BitmapImage>
|
||||||
@@ -337,7 +338,36 @@
|
|||||||
</Style.Triggers>
|
</Style.Triggers>
|
||||||
</Style>
|
</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="ContentTemplate" Value="{StaticResource Button_DataTemplate_Wrap}" />
|
||||||
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}" />
|
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}" />
|
||||||
</Style>
|
</Style>
|
||||||
@@ -794,7 +824,13 @@
|
|||||||
<Setter Property="Margin" Value="0,8,6,4"/>
|
<Setter Property="Margin" Value="0,8,6,4"/>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<!-- ______________________________________________________________________________________________________________________ -->
|
<!--Style di un immagine in al posto di una text-->
|
||||||
|
<Style x:Key="OmagCut_TextIcon" TargetType="{x:Type Image}" >
|
||||||
|
<Setter Property="Width" Value="30"/>
|
||||||
|
<Setter Property="Height" Value="30"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<!-- ______________________________________________________________________________________________________________________ -->
|
||||||
|
|
||||||
<!-- ScrollBar & it's component (RepeatButton, Thumb) -->
|
<!-- ScrollBar & it's component (RepeatButton, Thumb) -->
|
||||||
|
|
||||||
@@ -1191,6 +1227,13 @@
|
|||||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||||
</Style>
|
</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-->
|
<!--TextBox-->
|
||||||
@@ -1266,11 +1309,14 @@
|
|||||||
|
|
||||||
<Style x:Key="OmagCut_FixedTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_TextBox}">
|
<Style x:Key="OmagCut_FixedTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_TextBox}">
|
||||||
<Setter Property="BorderBrush" Value="{StaticResource OmagCut_Gray}"/>
|
<Setter Property="BorderBrush" Value="{StaticResource OmagCut_Gray}"/>
|
||||||
<Setter Property="Background" Value="White"/>
|
<Setter Property="Background" Value="White"/>
|
||||||
<Setter Property="IsReadOnly" Value="True"/>
|
<Setter Property="IsReadOnly" Value="True"/>
|
||||||
<Setter Property="IsEnabled" Value="False"/>
|
<Setter Property="IsEnabled" Value="False"/>
|
||||||
|
<Setter Property="TextAlignment" Value="Center"/>
|
||||||
<Setter Property="Template" Value="{StaticResource FixedTextBoxTemplate}" />
|
<Setter Property="Template" Value="{StaticResource FixedTextBoxTemplate}" />
|
||||||
</Style>
|
<Setter Property="ToolTipService.ShowOnDisabled" Value="True"/>
|
||||||
|
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
<!-- ______________________________________________________________________________________________________________________ -->
|
<!-- ______________________________________________________________________________________________________________________ -->
|
||||||
|
|
||||||
@@ -2736,5 +2782,16 @@
|
|||||||
</Style>
|
</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>
|
</ResourceDictionary>
|
||||||
|
|||||||
@@ -7,79 +7,87 @@
|
|||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="853.3" d:DesignWidth="1280"
|
d:DesignHeight="853.3" d:DesignWidth="1280"
|
||||||
Initialized="CurrentProjectPage_Initialized" Loaded="CurrentProjectPage_Loaded">
|
Initialized="CurrentProjectPage_Initialized" Loaded="CurrentProjectPage_Loaded">
|
||||||
|
|
||||||
<!-- Definizione della CurrentProjectPage -->
|
|
||||||
<Grid Name="CurrentProjectPageGrid" >
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="3*"/>
|
|
||||||
<ColumnDefinition Width="12*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="1*"/>
|
|
||||||
<RowDefinition Height="8*"/>
|
|
||||||
<RowDefinition Height="1*"/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
|
|
||||||
<!-- Definizione della Grid superiore -->
|
<!-- Definizione della CurrentProjectPage -->
|
||||||
<Grid Name="UpperButtonGrid" Grid.Column="1" Grid.Row="0" >
|
<Grid Name="CurrentProjectPageGrid" >
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="5*"/>
|
<ColumnDefinition Width="3*"/>
|
||||||
<ColumnDefinition Width="7*"/>
|
<ColumnDefinition Width="12*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<!-- Definizione della Grid laterale -->
|
|
||||||
<Grid Grid.RowSpan="3">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="2*"/>
|
|
||||||
<RowDefinition Height="7*"/>
|
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
</Grid.RowDefinitions>
|
<RowDefinition Height="8*"/>
|
||||||
|
<RowDefinition Height="1*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<!-- Definizione della Grid con le caratteristiche del progetto -->
|
<!-- Definizione della Grid superiore -->
|
||||||
|
<Grid Name="UpperButtonGrid" Grid.Column="1" Grid.Row="0" >
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="5*"/>
|
||||||
|
<ColumnDefinition Width="7*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<!-- Definizione della Grid laterale -->
|
||||||
|
<Grid Grid.RowSpan="3">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="2*"/>
|
||||||
|
<RowDefinition Height="7*"/>
|
||||||
|
<RowDefinition Height="1*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<!-- Definizione della Grid con le caratteristiche del progetto -->
|
||||||
<Border Name="CurrProjGrid" Style="{DynamicResource OmagCut_MachiningBorder}" Grid.Row="0" >
|
<Border Name="CurrProjGrid" Style="{DynamicResource OmagCut_MachiningBorder}" Grid.Row="0" >
|
||||||
<Grid >
|
<Grid >
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="0.2*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<TextBlock Name="MaterialTxBl" Grid.Row="0"
|
<Image Name="MaterialTxBl"
|
||||||
Style="{DynamicResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Source="{DynamicResource RawPartImg}" Style="{StaticResource OmagCut_TextIcon}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="MaterialTxBx" Grid.Column="1" Grid.Row="0" Width="100"
|
<EgtWPFLib:EgtTextBox Name="MaterialTxBx" Grid.Column="1" Grid.Row="0" Margin="0,0,10,0"
|
||||||
Style="{DynamicResource OmagCut_FixedTextBox}"/>
|
TextAlignment="Right" Style="{DynamicResource OmagCut_FixedTextBox}"/>
|
||||||
<TextBlock Name="HeightTxBl" Grid.Row="1"
|
<Image Name="HeightTxBl" Grid.Row="1"
|
||||||
Style="{DynamicResource OmagCut_CurrProjSummeryTextBlock}"/>
|
Source="{DynamicResource RawHeightImg}" Style="{StaticResource OmagCut_TextIcon}"/>
|
||||||
<EgtWPFLib:EgtTextBox Name="HeightTxBx" Grid.Column="1" Grid.Row="1" Width="100"
|
<EgtWPFLib:EgtTextBox Name="HeightTxBx" Grid.Column="1" Grid.Row="1" Margin="0,0,10,0"
|
||||||
|
Style="{DynamicResource OmagCut_FixedTextBox}" TextAlignment="Right"/>
|
||||||
|
<Image Name="ToolTxBl" Grid.Row="2"
|
||||||
|
Source="{DynamicResource DB-utensiliImg}" Style="{StaticResource OmagCut_TextIcon}"/>
|
||||||
|
<EgtWPFLib:EgtTextBox Name="ToolTxBx" Grid.Column="1" Grid.Row="2" Margin="0,0,10,0"
|
||||||
|
Style="{DynamicResource OmagCut_FixedTextBox}" TextAlignment="Right"/>
|
||||||
|
<Image Name="MachiningTxBl" Grid.Row="3"
|
||||||
|
Source="{DynamicResource DB-lavorazioniImg}" Style="{StaticResource OmagCut_TextIcon}"/>
|
||||||
|
<EgtWPFLib:EgtTextBox Name="MachiningTxBx" Grid.Column="1" Grid.Row="3" Margin="0,0,10,0"
|
||||||
Style="{DynamicResource OmagCut_FixedTextBox}" TextAlignment="Right"/>
|
Style="{DynamicResource OmagCut_FixedTextBox}" TextAlignment="Right"/>
|
||||||
<TextBlock Name="ToolTxBl" Grid.Row="2" Style="{DynamicResource OmagCut_CurrProjSummeryTextBlock}"/>
|
|
||||||
<EgtWPFLib:EgtTextBox Name="ToolTxBx" Grid.Column="1" Grid.Row="2" Width="100"
|
|
||||||
Style="{DynamicResource OmagCut_FixedTextBox}"/>
|
|
||||||
<TextBlock Name="MachiningTxBl" Grid.Row="3"
|
|
||||||
Style="{DynamicResource OmagCut_CurrProjSummeryTextBlock}"/>
|
|
||||||
<EgtWPFLib:EgtTextBox Name="MachiningTxBx" Grid.Column="1" Grid.Row="3" Width="100"
|
|
||||||
Style="{DynamicResource OmagCut_FixedTextBox}"/>
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<ProgressBar Name="PhotoProgress" Grid.Row="2" Height="50" Margin="10,0,10,0" Minimum="0" Maximum="100"/>
|
|
||||||
|
<ProgressBar Name="PhotoProgress" Grid.Row="2" Height="50" Margin="10,0,10,0" Minimum="0" Maximum="100"/>
|
||||||
|
|
||||||
<Border Name="OutMessageBrd" Grid.Row="2" >
|
<Border Name="OutMessageBrd" Grid.Row="2" >
|
||||||
<TextBlock Name="OutMessageTxBl" TextAlignment="Center"
|
<TextBlock Name="OutMessageTxBl" TextAlignment="Center"
|
||||||
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
<Grid Name="SceneHostGrid" Grid.Row="1" Grid.Column="1">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="6*"/>
|
||||||
|
<ColumnDefinition Width="1.2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
Imports System.Security.Cryptography
|
||||||
Imports System.Windows.Interop
|
Imports System.Windows.Interop
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
@@ -7,8 +8,10 @@ Imports EgtWPFLib5
|
|||||||
Public Class CurrentProjectPageUC
|
Public Class CurrentProjectPageUC
|
||||||
' Dichiarazione eventi
|
' Dichiarazione eventi
|
||||||
Friend Event OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
Friend Event OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||||
|
Friend Event OnMouseDownScene_DoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||||
Friend Event OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
Friend Event OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||||
Friend Event OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
Friend Event OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||||
|
Friend Event OnKeyCancelDownScene(sender As Object, e As System.Windows.Forms.KeyEventArgs)
|
||||||
' Riferimento alla MainWindow
|
' Riferimento alla MainWindow
|
||||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
' Dichiarazione delle Page UserControl
|
' Dichiarazione delle Page UserControl
|
||||||
@@ -17,7 +20,8 @@ Public Class CurrentProjectPageUC
|
|||||||
Private m_bFirst As Boolean = True
|
Private m_bFirst As Boolean = True
|
||||||
' Dichiarazione Scene
|
' Dichiarazione Scene
|
||||||
Friend WithEvents CurrentProjectScene As New Scene
|
Friend WithEvents CurrentProjectScene As New Scene
|
||||||
Private CurrentProjectSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
|
' Nella pagina Nest gestisco la dimensione della scena per visualizzare la lista dei parcheggi
|
||||||
|
Public CurrentProjectSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
|
||||||
' Identificativo progetto corrente
|
' Identificativo progetto corrente
|
||||||
Private m_nCurrProj As Integer = 0
|
Private m_nCurrProj As Integer = 0
|
||||||
' Dati del grezzo
|
' Dati del grezzo
|
||||||
@@ -53,15 +57,17 @@ Public Class CurrentProjectPageUC
|
|||||||
|
|
||||||
'Assegnazione scena all'host e posizionamento nella PlacePageGrid
|
'Assegnazione scena all'host e posizionamento nella PlacePageGrid
|
||||||
CurrentProjectSceneHost.Child = CurrentProjectScene
|
CurrentProjectSceneHost.Child = CurrentProjectScene
|
||||||
CurrentProjectSceneHost.SetValue(Grid.ColumnProperty, 1)
|
CurrentProjectSceneHost.SetValue(Grid.ColumnProperty, 0)
|
||||||
CurrentProjectSceneHost.SetValue(Grid.RowProperty, 1)
|
CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
Me.CurrentProjectPageGrid.Children.Add(CurrentProjectSceneHost)
|
' CurrentProjectSceneHost.SetValue(Grid.RowProperty, 1)
|
||||||
|
'Me.CurrentProjectPageGrid.Children.Add(CurrentProjectSceneHost)
|
||||||
|
Me.SceneHostGrid.Children.Add(CurrentProjectSceneHost)
|
||||||
|
|
||||||
'Imposto i messaggi letti dal file dei messaggi
|
'Imposto i messaggi letti dal file dei messaggi
|
||||||
MaterialTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 9) 'Material - Materiale
|
MaterialTxBl.ToolTip = EgtMsg(MSG_RAWPARTPAGEUC + 9) 'Material - Materiale
|
||||||
HeightTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 5) 'Height - Spessore
|
HeightTxBl.ToolTip = EgtMsg(MSG_RAWPARTPAGEUC + 5) 'Height - Spessore
|
||||||
ToolTxBl.Text = EgtMsg(MSG_CADCUTPAGEUC + 11) 'Tool - Utensile
|
ToolTxBl.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 11) 'Tool - Utensile
|
||||||
MachiningTxBl.Text = EgtMsg(MSG_CADCUTPAGEUC + 12) 'Machining - Lavorazione
|
MachiningTxBl.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 12) 'Machining - Lavorazione
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -107,7 +113,7 @@ Public Class CurrentProjectPageUC
|
|||||||
Dim nDepthBits As Integer = GetPrivateProfileInt(S_OPENGL, K_DEPTHBITS, 32, m_MainWindow.GetIniFile())
|
Dim nDepthBits As Integer = GetPrivateProfileInt(S_OPENGL, K_DEPTHBITS, 32, m_MainWindow.GetIniFile())
|
||||||
CurrentProjectScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits)
|
CurrentProjectScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits)
|
||||||
' inizializzo la scena (DB geometrico + visualizzazione) e verifico presenza chiave
|
' inizializzo la scena (DB geometrico + visualizzazione) e verifico presenza chiave
|
||||||
Dim bProd As Boolean = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.CUT_BASE)
|
Dim bProd As Boolean = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.CUT_BASE) Or m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.CUT_LIGHT)
|
||||||
If Not CurrentProjectScene.Init() Or Not bProd Then
|
If Not CurrentProjectScene.Init() Or Not bProd Then
|
||||||
' Rimuovo l'host della scena perchè altrimenti rimarrebbe il buco!!
|
' Rimuovo l'host della scena perchè altrimenti rimarrebbe il buco!!
|
||||||
Me.CurrentProjectPageGrid.Children.Remove(CurrentProjectSceneHost)
|
Me.CurrentProjectPageGrid.Children.Remove(CurrentProjectSceneHost)
|
||||||
@@ -118,11 +124,25 @@ Public Class CurrentProjectPageUC
|
|||||||
#Else
|
#Else
|
||||||
' Se manca la chiave
|
' Se manca la chiave
|
||||||
If m_MainWindow.GetKeyLevel() = -1 Or m_MainWindow.GetKeyLevel() = -2 Then
|
If m_MainWindow.GetKeyLevel() = -1 Or m_MainWindow.GetKeyLevel() = -2 Then
|
||||||
EgtOutLog("Missing Dongle")
|
If Not EgtGetNetHwKey() Then
|
||||||
' Box di avviso chiave mancante : "Chiave non presente. \n Inserirla e riavviare il programma." "Errore"
|
EgtOutLog("Missing Dongle")
|
||||||
Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 2) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 3)
|
' Box di avviso chiave mancante : "Chiave non presente. \n Inserirla e riavviare il programma." "Errore"
|
||||||
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1)
|
Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 2) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 3)
|
||||||
Dim MissingKeyWnd As New EgtMsgBox(m_MainWindow, EgtMsg(MSG_MISSINGKEYWD + 1), EgtMsg(MSG_MISSINGKEYWD + 2) & " " & EgtMsg(MSG_MISSINGKEYWD + 3), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1)
|
||||||
|
Dim MissingKeyWnd As New EgtMsgBox(m_MainWindow, EgtMsg(MSG_MISSINGKEYWD + 1), EgtMsg(MSG_MISSINGKEYWD + 2) & " " & EgtMsg(MSG_MISSINGKEYWD + 3), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
||||||
|
Else
|
||||||
|
EgtOutLog("NetDongle is full")
|
||||||
|
' Box di avviso slot chiave di rete occupato : "Chiave di Rete completamente occupata. \n Uscire dal programma su un altro PC." "Errore"
|
||||||
|
Dim sText As String = EgtMsg(10110) & vbCrLf & EgtMsg(10111)
|
||||||
|
Dim sTitle As String = EgtMsg(10101)
|
||||||
|
Dim MissingKeyWnd As New EgtMsgBox(m_MainWindow, sTitle, sText, EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
||||||
|
End If
|
||||||
|
ElseIf m_MainWindow.GetKeyLevel() = -9 Then
|
||||||
|
EgtOutLog("Missing Link with Net Dongle")
|
||||||
|
' Box di avviso chiave mancante : "Collegamento con la Chiave di rete non riuscito. \n Verificare la connessione." "Errore"
|
||||||
|
Dim sText As String = EgtMsg(10108) & vbCrLf & EgtMsg(10109)
|
||||||
|
Dim sTitle As String = EgtMsg(10101)
|
||||||
|
Dim MissingKeyWnd As New EgtMsgBox(m_MainWindow, sTitle, sText, EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
||||||
' Altrimenti manca la licenza
|
' Altrimenti manca la licenza
|
||||||
Else
|
Else
|
||||||
EgtOutLog("Problems with Licence")
|
EgtOutLog("Problems with Licence")
|
||||||
@@ -176,7 +196,8 @@ Public Class CurrentProjectPageUC
|
|||||||
' Inizializzo gestore lavorazioni
|
' Inizializzo gestore lavorazioni
|
||||||
EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir())
|
EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir())
|
||||||
m_bFirst = False
|
m_bFirst = False
|
||||||
|
Dim bOrtoGraphic As Boolean = (GetPrivateProfileInt(S_SCENE, K_ORTOGRAPHIC, 1, m_MainWindow.GetIniFile()) <> 0)
|
||||||
|
EgtSetCameraType(bOrtoGraphic, True)
|
||||||
' creo nuovo progetto
|
' creo nuovo progetto
|
||||||
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
|
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
|
||||||
'NewProject()
|
'NewProject()
|
||||||
@@ -196,9 +217,17 @@ Public Class CurrentProjectPageUC
|
|||||||
Else
|
Else
|
||||||
MaterialTxBx.Text = "-----"
|
MaterialTxBx.Text = "-----"
|
||||||
End If
|
End If
|
||||||
' Visualizzo lama e lavorazione correnti
|
|
||||||
ToolTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrSaw
|
' se macchina waterjet e senza una lama corrente impostata allora visualizzo info WJ
|
||||||
MachiningTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrSawing
|
If m_MainWindow.m_CurrentMachine.bWaterJet And String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrSaw) Then
|
||||||
|
ToolTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrWaterJet
|
||||||
|
MachiningTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrWaterJetting
|
||||||
|
'& "-" & m_MainWindow.m_CurrentMachine.sCurrWaterJettingQuality
|
||||||
|
Else
|
||||||
|
ToolTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
MachiningTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrSawing
|
||||||
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub StartProgram()
|
Public Sub StartProgram()
|
||||||
@@ -276,7 +305,7 @@ Public Class CurrentProjectPageUC
|
|||||||
' se apro la finestra "OpenFolder" l'assegnazione dei Children è fatta direttamente nella classe ProjectMgrUC
|
' se apro la finestra "OpenFolder" l'assegnazione dei Children è fatta direttamente nella classe ProjectMgrUC
|
||||||
If MyStartLancherWD.CurrSelection <> MODE_LAUNCHER.OpenFolder Then
|
If MyStartLancherWD.CurrSelection <> MODE_LAUNCHER.OpenFolder Then
|
||||||
' Carico sottopagina opportuna
|
' Carico sottopagina opportuna
|
||||||
If GetProjectType() <> PRJ_TYPE.FRAMES Then
|
If GetProjectType() <> PRJ_TYPE.FRAMES And Not m_MainWindow.m_OnlyFrame Then
|
||||||
CurrentProjectPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC)
|
CurrentProjectPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC)
|
||||||
m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
|
m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
|
||||||
m_MainWindow.CadCutBtn.IsChecked = True
|
m_MainWindow.CadCutBtn.IsChecked = True
|
||||||
@@ -314,6 +343,10 @@ Public Class CurrentProjectPageUC
|
|||||||
RaiseEvent OnMouseDownScene(sender, e)
|
RaiseEvent OnMouseDownScene(sender, e)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub OnMyMouseDownScene_DoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.MouseDoubleClick
|
||||||
|
RaiseEvent OnMouseDownScene_DoubleClick(sender, e)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseMoveScene
|
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseMoveScene
|
||||||
RaiseEvent OnMouseMoveScene(sender, e)
|
RaiseEvent OnMouseMoveScene(sender, e)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -326,6 +359,10 @@ Public Class CurrentProjectPageUC
|
|||||||
SetInfoMessage(DistToString(vtDist))
|
SetInfoMessage(DistToString(vtDist))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub OnMyKeyCancelDownScene(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles CurrentProjectScene.KeyDown
|
||||||
|
RaiseEvent OnKeyCancelDownScene(sender, e)
|
||||||
|
End Sub
|
||||||
|
|
||||||
' Gestione progetto
|
' Gestione progetto
|
||||||
|
|
||||||
Friend Sub SetNextProjectIndex()
|
Friend Sub SetNextProjectIndex()
|
||||||
@@ -399,15 +436,29 @@ Public Class CurrentProjectPageUC
|
|||||||
' prima di parcheggiare svuoto dei pezzi in parcheggio sia vuota
|
' prima di parcheggiare svuoto dei pezzi in parcheggio sia vuota
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.ResetListOfGruopInPark()
|
m_MainWindow.m_CadCutPageUC.m_NestPage.ResetListOfGruopInPark()
|
||||||
' Parcheggio correttamente i pezzi precedentemente salvati
|
' Parcheggio correttamente i pezzi precedentemente salvati
|
||||||
|
Dim nIdList As New List(Of Integer)
|
||||||
|
Dim nStatList As New List(Of Integer)
|
||||||
Dim nId2 As Integer = EgtGetFirstPart()
|
Dim nId2 As Integer = EgtGetFirstPart()
|
||||||
While nId2 <> GDB_ID.NULL
|
While nId2 <> GDB_ID.NULL
|
||||||
|
' Forzo lo stato per avere il giusto calcolo delle posizioni per evitare sovrapposizioni
|
||||||
|
EgtSetStatus(nId2, GDB_ST.ON_)
|
||||||
' Inserisco correttamente in parcheggio
|
' Inserisco correttamente in parcheggio
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True)
|
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True)
|
||||||
|
' Aggiorno lo stato di visualizzazione
|
||||||
|
Dim nInfoStatus As Integer = 1
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtGetInfo(nId2, INFO_PARKSTATUS, nInfoStatus)
|
||||||
|
' Salvo l'Id e lo stato da impostare successivamente al posizionamento
|
||||||
|
nIdList.Add(nId2)
|
||||||
|
nStatList.Add(nInfoStatus)
|
||||||
' Notifica a WeinMatching per modifica Id
|
' Notifica a WeinMatching per modifica Id
|
||||||
VeinMatching.UpdatePart(nId2)
|
VeinMatching.UpdatePart(nId2)
|
||||||
' Passo al pezzo successivo
|
' Passo al pezzo successivo
|
||||||
nId2 = EgtGetNextPart(nId2)
|
nId2 = EgtGetNextPart(nId2)
|
||||||
End While
|
End While
|
||||||
|
For IndIndex As Integer = 0 To nIdList.Count - 1
|
||||||
|
EgtSetStatus(nIdList(IndIndex), nStatList(IndIndex))
|
||||||
|
Next
|
||||||
' Aggiorno Aree totale e da lavorare dei pezzi
|
' Aggiorno Aree totale e da lavorare dei pezzi
|
||||||
SetTotalArea(dTotArea)
|
SetTotalArea(dTotArea)
|
||||||
UpdateToProduceArea()
|
UpdateToProduceArea()
|
||||||
@@ -422,7 +473,7 @@ Public Class CurrentProjectPageUC
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function AdjustAdditionalTable( Optional bForced As Boolean = False) As Boolean
|
Friend Function AdjustAdditionalTable(Optional bForced As Boolean = False) As Boolean
|
||||||
' Recupero altezza sottotavola corrente
|
' Recupero altezza sottotavola corrente
|
||||||
Dim nFixtId As Integer = EgtGetFirstNameInGroup(EgtGetFirstMachGroup(), MACH_FIXT_GROUP)
|
Dim nFixtId As Integer = EgtGetFirstNameInGroup(EgtGetFirstMachGroup(), MACH_FIXT_GROUP)
|
||||||
Dim nAddTabId As Integer = EgtGetFirstNameInGroup(nFixtId, MACH_ADD_TABLE)
|
Dim nAddTabId As Integer = EgtGetFirstNameInGroup(nFixtId, MACH_ADD_TABLE)
|
||||||
@@ -434,7 +485,7 @@ Public Class CurrentProjectPageUC
|
|||||||
End If
|
End If
|
||||||
' Se valore cambiato, aggiorno...
|
' Se valore cambiato, aggiorno...
|
||||||
Dim dDeltaZ As Double = m_MainWindow.m_CurrentMachine.dAdditionalTable - dCurrAddTab
|
Dim dDeltaZ As Double = m_MainWindow.m_CurrentMachine.dAdditionalTable - dCurrAddTab
|
||||||
Dim bChanged As Boolean = ( Math.Abs(dDeltaZ) > EPS_SMALL)
|
Dim bChanged As Boolean = (Math.Abs(dDeltaZ) > EPS_SMALL)
|
||||||
If bChanged Or bForced Then
|
If bChanged Or bForced Then
|
||||||
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
||||||
If Not bChanged AndAlso bOldEnMod Then EgtDisableModified()
|
If Not bChanged AndAlso bOldEnMod Then EgtDisableModified()
|
||||||
@@ -447,9 +498,9 @@ Public Class CurrentProjectPageUC
|
|||||||
ShowPhoto(False)
|
ShowPhoto(False)
|
||||||
Dim nRawGrpId As Integer = EgtGetFirstRawPart()
|
Dim nRawGrpId As Integer = EgtGetFirstRawPart()
|
||||||
While nRawGrpId <> GDB_ID.NULL
|
While nRawGrpId <> GDB_ID.NULL
|
||||||
Dim nRawSolidId As Integer = EgtGetFirstNameInGroup( nRawGrpId, NAME_RAW_SOLID)
|
Dim nRawSolidId As Integer = EgtGetFirstNameInGroup(nRawGrpId, NAME_RAW_SOLID)
|
||||||
If nRawSolidId <> GDB_ID.NULL Then EgtSetTextureName( nRawSolidId, PHOTO_NAME)
|
If nRawSolidId <> GDB_ID.NULL Then EgtSetTextureName(nRawSolidId, PHOTO_NAME)
|
||||||
nRawGrpId = EgtGetNextRawPart( nRawGrpId)
|
nRawGrpId = EgtGetNextRawPart(nRawGrpId)
|
||||||
End While
|
End While
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -473,12 +524,14 @@ Public Class CurrentProjectPageUC
|
|||||||
' Nuova geometria
|
' Nuova geometria
|
||||||
Dim nAddTabId As Integer = GDB_ID.NULL
|
Dim nAddTabId As Integer = GDB_ID.NULL
|
||||||
' Se esiste geometria di riferimento
|
' Se esiste geometria di riferimento
|
||||||
Dim nRefAddTabId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( EgtGetTableId( MAIN_TAB), "SOLID"), MACH_ADD_TABLE)
|
Dim sNameTable As String = MAIN_TAB
|
||||||
|
EgtGetTableName(sNameTable)
|
||||||
|
Dim nRefAddTabId = EgtGetFirstNameInGroup(EgtGetFirstNameInGroup(EgtGetTableId(sNameTable), "SOLID"), MACH_ADD_TABLE)
|
||||||
If nRefAddTabId <> GDB_ID.NULL Then
|
If nRefAddTabId <> GDB_ID.NULL Then
|
||||||
nAddTabId = EgtCopyGlob( nRefAddTabId, nFixtId)
|
nAddTabId = EgtCopyGlob(nRefAddTabId, nFixtId)
|
||||||
EgtSetStatus( nAddTabId, GDB_ST.ON_)
|
EgtSetStatus(nAddTabId, GDB_ST.ON_)
|
||||||
EgtScale( nAddTabId, new Frame3d( ptMin), 1, 1, dAddTable / 10)
|
EgtScale(nAddTabId, New Frame3d(ptMin), 1, 1, dAddTable / 10)
|
||||||
' altrimenti la creo
|
' altrimenti la creo
|
||||||
Else
|
Else
|
||||||
' Aggiungo sovratavola nel gruppo dei bloccaggi
|
' Aggiungo sovratavola nel gruppo dei bloccaggi
|
||||||
ptMax.z -= DELTAZ_ADDTAB
|
ptMax.z -= DELTAZ_ADDTAB
|
||||||
@@ -489,7 +542,7 @@ Public Class CurrentProjectPageUC
|
|||||||
' Sistemazioni finali
|
' Sistemazioni finali
|
||||||
If nAddTabId = GDB_ID.NULL Then Return False
|
If nAddTabId = GDB_ID.NULL Then Return False
|
||||||
EgtSetName(nAddTabId, MACH_ADD_TABLE)
|
EgtSetName(nAddTabId, MACH_ADD_TABLE)
|
||||||
EgtSetColor(nAddTabId, New Color3d(150, 75, 0, 100), True)
|
If nRefAddTabId = GDB_ID.NULL Then EgtSetColor(nAddTabId, New Color3d(150, 75, 0, 100), True)
|
||||||
EgtSetInfo(nAddTabId, KEY_ADD_TABLE, dAddTable)
|
EgtSetInfo(nAddTabId, KEY_ADD_TABLE, dAddTable)
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
@@ -546,6 +599,9 @@ Public Class CurrentProjectPageUC
|
|||||||
Else
|
Else
|
||||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_CAXESHOME, DoubleToString(dCHomeCurrMach, 0))
|
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_CAXESHOME, DoubleToString(dCHomeCurrMach, 0))
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'SelParkIndWD.UpdateViewOnParkInd(False)
|
||||||
|
|
||||||
' Dichiaro progetto non modificato
|
' Dichiaro progetto non modificato
|
||||||
EgtResetModified()
|
EgtResetModified()
|
||||||
Return True
|
Return True
|
||||||
@@ -570,8 +626,8 @@ Public Class CurrentProjectPageUC
|
|||||||
End If
|
End If
|
||||||
' Se la macchina del file è quella impostata
|
' Se la macchina del file è quella impostata
|
||||||
If String.Compare(sFileMachine, m_MainWindow.GetCurrMachine(), True) = 0 Then
|
If String.Compare(sFileMachine, m_MainWindow.GetCurrMachine(), True) = 0 Then
|
||||||
AdjustAdditionalTable( True)
|
AdjustAdditionalTable(True)
|
||||||
' altrimenti avverto, porto i pezzi in parcheggio e cancello il grezzo
|
' altrimenti avverto, porto i pezzi in parcheggio e cancello il grezzo
|
||||||
Else
|
Else
|
||||||
' Emetto messaggio
|
' Emetto messaggio
|
||||||
Dim sOut As String = EgtMsg(90320) & " (" & sFileMachine & ")" ' Macchina diversa
|
Dim sOut As String = EgtMsg(90320) & " (" & sFileMachine & ")" ' Macchina diversa
|
||||||
@@ -721,6 +777,17 @@ Public Class CurrentProjectPageUC
|
|||||||
' Notifico a foto il cambio di path
|
' Notifico a foto il cambio di path
|
||||||
EgtChangePhotoPath(nPhotoId, sNewPhoto)
|
EgtChangePhotoPath(nPhotoId, sNewPhoto)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'--------------------------------------------------------------------------------
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||||
|
' Gestione visulizzazione lista pezzi in parcheggio
|
||||||
|
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
|
||||||
|
SelParkIndWD.CopyImgSvg(sPath)
|
||||||
|
SelParkIndWD.sActualProj = String.Empty
|
||||||
|
SelParkIndWD.CopyImgSvg(sNewFileName)
|
||||||
|
End If
|
||||||
|
'--------------------------------------------------------------------------------
|
||||||
|
|
||||||
' Se assente, inserisco contrassegno di progetto OmagCut valido
|
' Se assente, inserisco contrassegno di progetto OmagCut valido
|
||||||
AddProjectMark()
|
AddProjectMark()
|
||||||
' Eseguo
|
' Eseguo
|
||||||
@@ -734,15 +801,15 @@ Public Class CurrentProjectPageUC
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function ExportProject( sPath As String) As Boolean
|
Friend Function ExportProject(sPath As String) As Boolean
|
||||||
' Copio eventuale fotografia
|
' Copio eventuale fotografia
|
||||||
Dim nPhotoId As Integer = GetPhoto()
|
Dim nPhotoId As Integer = GetPhoto()
|
||||||
If nPhotoId <> GDB_ID.NULL Then
|
If nPhotoId <> GDB_ID.NULL Then
|
||||||
' Path originale
|
' Path originale
|
||||||
Dim sPhoto As String = String.Empty
|
Dim sPhoto As String = String.Empty
|
||||||
EgtGetPhotoPath( nPhotoId, sPhoto)
|
EgtGetPhotoPath(nPhotoId, sPhoto)
|
||||||
' Nuova path
|
' Nuova path
|
||||||
Dim sNewPhoto As String = Path.ChangeExtension( sPath, Path.GetExtension( sPhoto))
|
Dim sNewPhoto As String = Path.ChangeExtension(sPath, Path.GetExtension(sPhoto))
|
||||||
' Se diverse, eseguo copia
|
' Se diverse, eseguo copia
|
||||||
If Not String.Equals(sPhoto, sNewPhoto, StringComparison.InvariantCultureIgnoreCase) Then
|
If Not String.Equals(sPhoto, sNewPhoto, StringComparison.InvariantCultureIgnoreCase) Then
|
||||||
Try
|
Try
|
||||||
@@ -757,7 +824,7 @@ Public Class CurrentProjectPageUC
|
|||||||
' Se assente, inserisco contrassegno di progetto OmagCut valido
|
' Se assente, inserisco contrassegno di progetto OmagCut valido
|
||||||
AddProjectMark()
|
AddProjectMark()
|
||||||
' Eseguo copia
|
' Eseguo copia
|
||||||
Return SaveFile( sPath)
|
Return SaveFile(sPath)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function GetCurrentProject() As Integer
|
Friend Function GetCurrentProject() As Integer
|
||||||
@@ -844,7 +911,7 @@ Public Class CurrentProjectPageUC
|
|||||||
EgtSetName(nMarkId, NAME_PROJMARK)
|
EgtSetName(nMarkId, NAME_PROJMARK)
|
||||||
EgtSetLevel(nMarkId, GDB_LV.SYSTEM)
|
EgtSetLevel(nMarkId, GDB_LV.SYSTEM)
|
||||||
EgtSetInfo(nMarkId, INFO_REDUCEDCUT, nReducedCut)
|
EgtSetInfo(nMarkId, INFO_REDUCEDCUT, nReducedCut)
|
||||||
' altrimenti, aggiorno il flag dei tagli ridotti
|
' altrimenti, aggiorno il flag dei tagli ridotti
|
||||||
Else
|
Else
|
||||||
Dim nMarkReducedCut As Integer = 0
|
Dim nMarkReducedCut As Integer = 0
|
||||||
If Not EgtGetInfo(nMarkId, INFO_REDUCEDCUT, nMarkReducedCut) OrElse nMarkReducedCut <> nReducedCut Then
|
If Not EgtGetInfo(nMarkId, INFO_REDUCEDCUT, nMarkReducedCut) OrElse nMarkReducedCut <> nReducedCut Then
|
||||||
@@ -1000,10 +1067,16 @@ Public Class CurrentProjectPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Friend Sub UpdateMachiningTxBx()
|
Friend Sub UpdateMachiningTxBx()
|
||||||
MachiningTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrSawing
|
' se macchina waterjet e senza uscita lama allora visualizzo info WJ
|
||||||
|
If m_MainWindow.m_CurrentMachine.bWaterJet And EgtGetHeadId("H1") = GDB_ID.NULL Then
|
||||||
|
MachiningTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrWaterJetting
|
||||||
|
'& "-" & m_MainWindow.m_CurrentMachine.sCurrWaterJettingQuality
|
||||||
|
Else
|
||||||
|
MachiningTxBx.Text = m_MainWindow.m_CurrentMachine.sCurrSawing
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' Gestione fotografia della lastra (compreso riconoscimento contorno)
|
' Gestione fotografia della lastra (compreso riconoscimento contorno)
|
||||||
|
|
||||||
Friend Function LoadPhoto(sPath As String) As Boolean
|
Friend Function LoadPhoto(sPath As String) As Boolean
|
||||||
' Verifico esistenza file immagine
|
' Verifico esistenza file immagine
|
||||||
@@ -1297,23 +1370,23 @@ Public Class CurrentProjectPageUC
|
|||||||
|
|
||||||
' Gestione area pezzi totale e area pezzi da produrre
|
' Gestione area pezzi totale e area pezzi da produrre
|
||||||
|
|
||||||
Friend Function SetTotalArea( dTotArea As Double) As Boolean
|
Friend Function SetTotalArea(dTotArea As Double) As Boolean
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function UpdateTotalArea( dNewArea As Double) As Boolean
|
Friend Function UpdateTotalArea(dNewArea As Double) As Boolean
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Dim dTotArea As Double = 0
|
Dim dTotArea As Double = 0
|
||||||
EgtGetInfo( nMarkId, INFO_TOTAREA, dTotArea)
|
EgtGetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
dTotArea = Math.Max( dTotArea + dNewArea, 0)
|
dTotArea = Math.Max(dTotArea + dNewArea, 0)
|
||||||
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function GetTotalArea() As Double
|
Friend Function GetTotalArea() As Double
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Dim dTotArea As Double = 0
|
Dim dTotArea As Double = 0
|
||||||
EgtGetInfo( nMarkId, INFO_TOTAREA, dTotArea)
|
EgtGetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
Return dTotArea
|
Return dTotArea
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -1321,17 +1394,17 @@ Public Class CurrentProjectPageUC
|
|||||||
Dim dToProdArea As Double = 0
|
Dim dToProdArea As Double = 0
|
||||||
' Se programma non ancora inviato al CN, ciclo sui pezzi nella lastra
|
' Se programma non ancora inviato al CN, ciclo sui pezzi nella lastra
|
||||||
If GetProjectNcProgSent() = 0 Then
|
If GetProjectNcProgSent() = 0 Then
|
||||||
Dim nPartInRawId As Integer = EgtGetFirstPartInRawPart( CamAuto.GetCurrentRaw())
|
Dim nPartInRawId As Integer = EgtGetFirstPartInRawPart(CamAuto.GetCurrentRaw())
|
||||||
While nPartInRawId <> GDB_ID.NULL
|
While nPartInRawId <> GDB_ID.NULL
|
||||||
dToProdArea += GeomCalc.GetPartArea( nPartInRawId)
|
dToProdArea += GeomCalc.GetPartArea(nPartInRawId)
|
||||||
nPartInRawId = EgtGetNextPartInRawPart( nPartInRawId)
|
nPartInRawId = EgtGetNextPartInRawPart(nPartInRawId)
|
||||||
End While
|
End While
|
||||||
End If
|
End If
|
||||||
' Ciclo sui pezzi in parcheggio
|
' Ciclo sui pezzi in parcheggio
|
||||||
Dim nPartId As Integer = EgtGetFirstPart()
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
While nPartId <> GDB_ID.NULL
|
While nPartId <> GDB_ID.NULL
|
||||||
dToProdArea += GeomCalc.GetPartArea( nPartId)
|
dToProdArea += GeomCalc.GetPartArea(nPartId)
|
||||||
nPartId = EgtGetNextPart( nPartId)
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
End While
|
End While
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Return EgtSetInfo(nMarkId, INFO_TOPRODAREA, dToProdArea)
|
Return EgtSetInfo(nMarkId, INFO_TOPRODAREA, dToProdArea)
|
||||||
@@ -1340,16 +1413,16 @@ Public Class CurrentProjectPageUC
|
|||||||
Friend Function GetToProduceArea() As Double
|
Friend Function GetToProduceArea() As Double
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Dim dToProdArea As Double = 0
|
Dim dToProdArea As Double = 0
|
||||||
EgtGetInfo( nMarkId, INFO_TOPRODAREA, dToProdArea)
|
EgtGetInfo(nMarkId, INFO_TOPRODAREA, dToProdArea)
|
||||||
Return dToProdArea
|
Return dToProdArea
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Sub ShowAreas()
|
Friend Sub ShowAreas()
|
||||||
' Recupero il gruppo di Mark e lo svuoto
|
' Recupero il gruppo di Mark e lo svuoto
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
EgtEmptyGroup( nMarkId)
|
EgtEmptyGroup(nMarkId)
|
||||||
' Se non sono da visualizzare esco
|
' Se non sono da visualizzare esco
|
||||||
if GetPrivateProfileInt( S_STATISTICS, K_SHOWAREAS, 0, m_MainWindow.GetMachIniFile()) = 0 Then Return
|
If GetPrivateProfileInt(S_STATISTICS, K_SHOWAREAS, 0, m_MainWindow.GetMachIniFile()) = 0 Then Return
|
||||||
' Recupero dati
|
' Recupero dati
|
||||||
Dim dTotArea As Double = GetTotalArea()
|
Dim dTotArea As Double = GetTotalArea()
|
||||||
Dim dToProdArea As Double = GetToProduceArea()
|
Dim dToProdArea As Double = GetToProduceArea()
|
||||||
@@ -1361,20 +1434,19 @@ Public Class CurrentProjectPageUC
|
|||||||
End If
|
End If
|
||||||
' Scritte
|
' Scritte
|
||||||
Const TEXT_DIST As Double = 100
|
Const TEXT_DIST As Double = 100
|
||||||
Dim ptIns As New Point3d( b3Tab.Center().x, b3Tab.Max().y + TEXT_DIST, b3Tab.Max().z)
|
Dim ptIns As New Point3d(b3Tab.Center().x, b3Tab.Max().y + TEXT_DIST, b3Tab.Max().z)
|
||||||
Dim dCoeff As Double = 1.0 / 1000000.0
|
Dim dCoeff As Double = 1.0 / 1000000.0
|
||||||
Dim sUnit As String = " m²"
|
Dim sUnit As String = " m²"
|
||||||
If Not EgtUiUnitsAreMM() Then
|
If Not EgtUiUnitsAreMM() Then
|
||||||
dCoeff = 1.0 / ( 12 * ONEINCH * 12 * ONEINCH)
|
dCoeff = 1.0 / (12 * ONEINCH * 12 * ONEINCH)
|
||||||
sUnit = " ft²"
|
sUnit = " ft²"
|
||||||
End If
|
End If
|
||||||
Dim sText As String = EgtMsg( 90328) & " " & DoubleToString( dTotArea * dCoeff, 3) & sUnit & " " &
|
Dim sText As String = EgtMsg(90328) & " " & DoubleToString(dTotArea * dCoeff, 3) & sUnit & " " &
|
||||||
EgtMsg( 90329) & " " & DoubleToString( dToProdArea * dCoeff, 3) & sUnit
|
EgtMsg(90329) & " " & DoubleToString(dToProdArea * dCoeff, 3) & sUnit
|
||||||
Dim nText As Integer = EgtCreateTextAdv( nMarkId, ptIns, 0, sText, "", 500, False, 100, 1, 0, INS_POS.MC)
|
Dim nText As Integer = EgtCreateTextAdv(nMarkId, ptIns, 0, sText, "", 500, False, 100, 1, 0, INS_POS.MC)
|
||||||
EgtSetColor( nText, New Color3d( 0, 0, 0))
|
EgtSetColor(nText, New Color3d(0, 0, 0))
|
||||||
End Sub
|
End Sub
|
||||||
|
Friend Sub SetAreasStatus(bShow As Boolean)
|
||||||
Friend Sub SetAreasStatus( bShow As Boolean)
|
|
||||||
Dim nMarkId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK)
|
Dim nMarkId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK)
|
||||||
If nMarkId = GDB_ID.NULL Then Return
|
If nMarkId = GDB_ID.NULL Then Return
|
||||||
|
|
||||||
@@ -1382,7 +1454,7 @@ Public Class CurrentProjectPageUC
|
|||||||
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
||||||
If bOldEnMod Then EgtDisableModified()
|
If bOldEnMod Then EgtDisableModified()
|
||||||
' Cambio stato visualizzazione
|
' Cambio stato visualizzazione
|
||||||
EgtSetStatus( nMarkId, If( bShow, GDB_ST.ON_, GDB_ST.OFF))
|
EgtSetStatus(nMarkId, If(bShow, GDB_ST.ON_, GDB_ST.OFF))
|
||||||
' Se necessario riabilito impostazione modificato
|
' Se necessario riabilito impostazione modificato
|
||||||
If bOldEnMod Then EgtEnableModified()
|
If bOldEnMod Then EgtEnableModified()
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -6,33 +6,40 @@
|
|||||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="OpenPage_Initialized" Loaded="OpenPage_Loaded" Unloaded="OpenPage_Unloaded">
|
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="OpenPage_Initialized" Loaded="OpenPage_Loaded" Unloaded="OpenPage_Unloaded">
|
||||||
|
|
||||||
<!-- Definizione della OpenPage -->
|
<!-- Definizione della OpenPage -->
|
||||||
<Border>
|
<Border>
|
||||||
<Grid Name="OpenPageGrid" >
|
<Grid Name="OpenPageGrid" >
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="3*"/>
|
<ColumnDefinition Width="3*"/>
|
||||||
<ColumnDefinition Width="12*"/>
|
<ColumnDefinition Width="12*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
<RowDefinition Height="8*"/>
|
<RowDefinition Height="8*"/>
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<!-- Definizione della Grid Superiore -->
|
|
||||||
<Grid Name="UpperButtonsGrid" Grid.Column="1" Grid.RowSpan="2">
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="5*"/>
|
|
||||||
<ColumnDefinition Width="7*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<TextBlock Name="FilePathTxBl" Grid.Row="0" Foreground="White" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
<!-- Definizione della Grid Superiore -->
|
||||||
|
<Grid Name="UpperButtonsGrid" Grid.Column="1" Grid.RowSpan="2">
|
||||||
<Grid Grid.Row="1" Grid.RowSpan="2">
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="5*"/>
|
||||||
|
<ColumnDefinition Width="7*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Grid Name="SceneHostGrid" Grid.Row="2" Grid.Column="1">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="6*"/>
|
||||||
|
<ColumnDefinition Width="1.2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<TextBlock Name="FilePathTxBl" Grid.Row="0" Foreground="White" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
|
|
||||||
|
<Grid Grid.Row="1" Grid.RowSpan="2">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="6.5*"/>
|
<RowDefinition Height="6.5*"/>
|
||||||
<RowDefinition Height="0.65*"/>
|
<RowDefinition Height="0.65*"/>
|
||||||
@@ -53,39 +60,39 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Border Name="MessageBrd" Grid.Row="3" BorderThickness="0,1,0,0" BorderBrush="Gray">
|
<Border Name="MessageBrd" Grid.Row="3" BorderThickness="0,1,0,0" BorderBrush="Gray">
|
||||||
<TextBlock Name="MessageTxBx" TextAlignment="Center"
|
<TextBlock Name="MessageTxBx" TextAlignment="Center"
|
||||||
Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- Definizione della Grid Inferiore per i Button V e X -->
|
|
||||||
<Grid Name="BottomButtonsGrid" Grid.Column="1" Grid.Row="3">
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="6*"/>
|
|
||||||
<ColumnDefinition Width="3*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
<ColumnDefinition Width="1*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<Button Name="BarCodeBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
<!-- Definizione della Grid Inferiore per i Button V e X -->
|
||||||
|
<Grid Name="BottomButtonsGrid" Grid.Column="1" Grid.Row="3">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="6*"/>
|
||||||
|
<ColumnDefinition Width="3*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Button Name="BarCodeBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
||||||
<Image Source="{DynamicResource BarCodeImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
<Image Source="{DynamicResource BarCodeImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button Name="OkBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
<Button Name="OkBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||||
<Image Source="{DynamicResource VImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
<Image Source="{DynamicResource VImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||||
VerticalAlignment="Center" />
|
VerticalAlignment="Center" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button Name="ExitBtn" Grid.Column="4" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
<Button Name="ExitBtn" Grid.Column="4" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||||
<Image Source="{DynamicResource XImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
<Image Source="{DynamicResource XImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||||
VerticalAlignment="Center" />
|
VerticalAlignment="Center" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Border>
|
||||||
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</Border>
|
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Public Class OpenPageUC
|
|||||||
|
|
||||||
'Riferimento alla MainWindow
|
'Riferimento alla MainWindow
|
||||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
|
Private m_SelParkInd As SelParkIndWD
|
||||||
|
|
||||||
'Dichiarazione dello UserControl SceneButtons
|
'Dichiarazione dello UserControl SceneButtons
|
||||||
Private m_SceneButtons As SceneButtonsUC
|
Private m_SceneButtons As SceneButtonsUC
|
||||||
@@ -35,11 +36,12 @@ Public Class OpenPageUC
|
|||||||
|
|
||||||
' Assegnazione scena all'host e posizionamento nella OpenPageGrid
|
' Assegnazione scena all'host e posizionamento nella OpenPageGrid
|
||||||
OpenSceneHost.Child = OpenScene
|
OpenSceneHost.Child = OpenScene
|
||||||
OpenSceneHost.SetValue(Grid.ColumnProperty, 1)
|
OpenSceneHost.SetValue(Grid.ColumnProperty, 0) '1
|
||||||
OpenSceneHost.SetValue(Grid.RowProperty, 2)
|
OpenSceneHost.SetValue(Grid.RowProperty, 0) ' 2
|
||||||
' OpenSceneHost.SetValue(Grid.RowSpanProperty, 1)
|
' OpenSceneHost.SetValue(Grid.RowSpanProperty, 1)
|
||||||
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
Me.OpenPageGrid.Children.Add(OpenSceneHost)
|
'Me.OpenPageGrid.Children.Add(OpenSceneHost)
|
||||||
|
SceneHostGrid.Children.Add(OpenSceneHost)
|
||||||
|
|
||||||
' Definizione del collegamento tra ItemList e ListBox1
|
' Definizione del collegamento tra ItemList e ListBox1
|
||||||
FileListBox.ItemsSource = m_MainWindow.m_OpenItemList
|
FileListBox.ItemsSource = m_MainWindow.m_OpenItemList
|
||||||
@@ -241,6 +243,14 @@ Public Class OpenPageUC
|
|||||||
Private Function ClearView() As Boolean
|
Private Function ClearView() As Boolean
|
||||||
' Pulisco il DB geometrico locale
|
' Pulisco il DB geometrico locale
|
||||||
EgtNewFile()
|
EgtNewFile()
|
||||||
|
' Elimino elenco dei parcheggi
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
|
SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||||
|
m_SelParkInd = Nothing
|
||||||
|
End If
|
||||||
|
' Pulisco la selezione dei dati
|
||||||
|
SelParkIndWD.sActualProj = String.Empty
|
||||||
' Eseguo zoom
|
' Eseguo zoom
|
||||||
OpenScene.ZoomAll()
|
OpenScene.ZoomAll()
|
||||||
' Cancello messaggio
|
' Cancello messaggio
|
||||||
@@ -302,6 +312,24 @@ Public Class OpenPageUC
|
|||||||
MessageBrd.Background = Brushes.Tomato
|
MessageBrd.Background = Brushes.Tomato
|
||||||
OkBtn.IsEnabled = False
|
OkBtn.IsEnabled = False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' Recupero il percorso del progetto per caricare le immagini
|
||||||
|
SelParkIndWD.sActualProj = sPath
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd, OpenScene.GetCtx)
|
||||||
|
If ListParkInd.Count > 2 And GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||||
|
m_SelParkInd = New SelParkIndWD(m_MainWindow, OpenScene.GetCtx)
|
||||||
|
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 1)
|
||||||
|
m_SelParkInd.SetValue(Grid.ColumnProperty, 1)
|
||||||
|
SceneHostGrid.Children.Add(m_SelParkInd)
|
||||||
|
Else
|
||||||
|
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||||
|
m_SelParkInd = Nothing
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
' Eseguo zoom
|
' Eseguo zoom
|
||||||
OpenScene.ZoomAll()
|
OpenScene.ZoomAll()
|
||||||
Return bOk
|
Return bOk
|
||||||
@@ -475,11 +503,21 @@ Public Class OpenPageUC
|
|||||||
' Se file dxf devo processarlo opportunamente
|
' Se file dxf devo processarlo opportunamente
|
||||||
Dim bFileDxf As Boolean = (EgtGetFileType(m_sCurrFile) = FT.DXF)
|
Dim bFileDxf As Boolean = (EgtGetFileType(m_sCurrFile) = FT.DXF)
|
||||||
If bFileDxf Then AdjustSlabDxf()
|
If bFileDxf Then AdjustSlabDxf()
|
||||||
|
|
||||||
' Istruzioni per chiudere OpenPageUC e aprire currentproject
|
' Istruzioni per chiudere OpenPageUC e aprire currentproject
|
||||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_OpenPage)
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_OpenPage)
|
||||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
||||||
' Lancio caricamento nuovo progetto corrente
|
' Lancio caricamento nuovo progetto corrente
|
||||||
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.PostLoad(m_sCurrDir, m_sCurrFile)
|
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.PostLoad(m_sCurrDir, m_sCurrFile)
|
||||||
|
|
||||||
|
'--------------------------------------------------------------------------------
|
||||||
|
' Gestione visulizzazione lista pezzi in parcheggio
|
||||||
|
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
|
||||||
|
Dim sNewFileName As String = m_MainWindow.GetSaveDir() & "\" & Math.Abs(nProj).ToString("D4") & "_ParkInd_"
|
||||||
|
SelParkIndWD.CopyImgSvg(sNewFileName, OpenScene.GetCtx)
|
||||||
|
SelParkIndWD.sActualProj = String.Empty
|
||||||
|
'--------------------------------------------------------------------------------
|
||||||
|
|
||||||
' Se file dxf
|
' Se file dxf
|
||||||
If bFileDxf Then
|
If bFileDxf Then
|
||||||
' Applico le lavorazioni
|
' Applico le lavorazioni
|
||||||
@@ -513,6 +551,12 @@ Public Class OpenPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OpenPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
Private Sub OpenPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||||
|
m_SelParkInd = Nothing
|
||||||
|
End If
|
||||||
|
' resetto il nome del progetto corrente
|
||||||
|
SelParkIndWD.sActualProj = String.Empty
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -43,9 +43,30 @@
|
|||||||
|
|
||||||
<ToggleButton Name="RegisterBtn"
|
<ToggleButton Name="RegisterBtn"
|
||||||
Style="{DynamicResource OmagCut_YellowToggleButton}"></ToggleButton>
|
Style="{DynamicResource OmagCut_YellowToggleButton}"></ToggleButton>
|
||||||
<Button Name="ResetCutBtn"
|
|
||||||
|
<Button Name="ResetCutBtn"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"></Button>
|
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}">
|
<ToggleButton Name="TestBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||||
<Image Source="{DynamicResource Test-lamaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
<Image Source="{DynamicResource Test-lamaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ Public Class ProjectMgrUC
|
|||||||
|
|
||||||
RegisterBtn.Content = "REG" 'Shape Registration
|
RegisterBtn.Content = "REG" 'Shape Registration
|
||||||
ResetCutBtn.Content = EgtMsg(MSG_NESTPAGEUC + 6) 'Reset
|
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
|
SimulateBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 1) 'Simulate - Simula
|
||||||
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
|
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
|
||||||
WorkBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 10) 'Export - Esporta
|
WorkBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 10) 'Export - Esporta
|
||||||
@@ -33,7 +35,7 @@ Public Class ProjectMgrUC
|
|||||||
WorkBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 2) 'Work - Lavora
|
WorkBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 2) 'Work - Lavora
|
||||||
End If
|
End If
|
||||||
TestBtn.ToolTip = EgtMsg(90255) 'Test
|
TestBtn.ToolTip = EgtMsg(90255) 'Test
|
||||||
ResetCutBtn.ToolTip = "Reset Cuts" & vbCrLf & "Reset Feed (Shift)"
|
ResetCutBtn.ToolTip = "Reset Cuts" & vbCrLf & "Other Reset (Shift)"
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ProjectMgrUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
Private Sub ProjectMgrUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||||
@@ -99,8 +101,40 @@ Public Class ProjectMgrUC
|
|||||||
End If
|
End If
|
||||||
' Scelta tavola della macchina
|
' Scelta tavola della macchina
|
||||||
Dim nTabInd As Integer = ChooseTable()
|
Dim nTabInd As Integer = ChooseTable()
|
||||||
|
|
||||||
|
' Creo una copia di tutte le immagini usata nella lista dei parcheggi
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
' Creo nuovo progetto
|
' Creo nuovo progetto
|
||||||
m_CurrProjPage.NewProject(nTabInd, bRetainParkedParts)
|
m_CurrProjPage.NewProject(nTabInd, bRetainParkedParts)
|
||||||
|
|
||||||
|
|
||||||
|
' Gestione visulizzazione lista pezzi in parcheggio
|
||||||
|
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()
|
||||||
|
|
||||||
|
|
||||||
' Gestione stato FastGrid
|
' Gestione stato FastGrid
|
||||||
m_MainWindow.m_CadCutPageUC.m_FastGridSlabManager.OnPostNewProject()
|
m_MainWindow.m_CadCutPageUC.m_FastGridSlabManager.OnPostNewProject()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -233,6 +267,9 @@ Public Class ProjectMgrUC
|
|||||||
If m_MainWindow.m_ActivePage = MainWindow.Pages.FrameCut Then
|
If m_MainWindow.m_ActivePage = MainWindow.Pages.FrameCut Then
|
||||||
ShowAllCurrPhaseMachinings()
|
ShowAllCurrPhaseMachinings()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'SelParkIndWD.UpdateViewOnParkInd(False)
|
||||||
|
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -252,11 +289,58 @@ Public Class ProjectMgrUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ResetCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles ResetCutBtn.Click
|
Private Sub ResetCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles ResetCutBtn.Click
|
||||||
If (Keyboard.Modifiers And ModifierKeys.Shift) Then
|
If (Keyboard.Modifiers And ModifierKeys.Shift) > 0 Then
|
||||||
' eseguo il ricalcolo delle sole FEED di lavorazione
|
If ResetCutPopUp.IsOpen Then
|
||||||
UpdateFeedAllMachining()
|
ResetCutPopUp.IsOpen = False
|
||||||
Return
|
Else
|
||||||
|
ResetCutPopUp.IsOpen = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
ResetCut3Btn_Click()
|
||||||
End If
|
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())
|
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||||
' Cancello eventuali messaggi
|
' Cancello eventuali messaggi
|
||||||
m_CurrProjPage.ClearMessage()
|
m_CurrProjPage.ClearMessage()
|
||||||
@@ -314,47 +398,117 @@ Public Class ProjectMgrUC
|
|||||||
Dim m_ptRawMax, m_ptRawMin As Point3d
|
Dim m_ptRawMax, m_ptRawMin As Point3d
|
||||||
If Not GetRawBox(m_ptRawMin, m_ptRawMax) Then Return
|
If Not GetRawBox(m_ptRawMin, m_ptRawMax) Then Return
|
||||||
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
|
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
|
||||||
|
|
||||||
' Recupero spessore lama corrente
|
' Recupero spessore lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim TestToolWD As New ChooseTestToolWD(m_MainWindow)
|
||||||
EgtTdbSetCurrTool(sSaw)
|
TestToolWD.ShowDialog()
|
||||||
|
If Not TestToolWD.DialogResult Then Return
|
||||||
|
Dim CurrTestTool As TestTool = TestToolWD.GetSelectedTool
|
||||||
|
|
||||||
|
'Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
|
'EgtTdbSetCurrTool(sSaw)
|
||||||
|
|
||||||
Dim dThick As Double = 0
|
Dim dThick As Double = 0
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
Dim dHeight As Double = 0
|
||||||
Dim dDiam As Double = 0
|
If CurrTestTool.ToolIsSaw Then
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dDiam)
|
' Spessore LAMA
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
||||||
|
' Diametro
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dHeight)
|
||||||
|
' Raggio lama
|
||||||
|
dHeight = dHeight / 2
|
||||||
|
ElseIf CurrTestTool.ToolIsLaser Then
|
||||||
|
' Raggio
|
||||||
|
dThick = 0
|
||||||
|
dHeight = 0
|
||||||
|
Else
|
||||||
|
' Diametro FRESA/FORETTO (l'altezza non serve: posizione calcolata tiene conto del Tip Tool)
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dThick)
|
||||||
|
' Raggio
|
||||||
|
dThick = dThick / 2
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
'recupero il lato selezionato
|
'recupero il lato selezionato
|
||||||
Dim nIdSelected As Integer = m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv
|
Dim nIdSelected As Integer = m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv
|
||||||
If nIdSelected = -1 Then Return
|
If nIdSelected = -1 Then Return
|
||||||
' recupero gli estremi del latovda tagliare
|
' recupero il vettore nel punto medio dell'entità
|
||||||
Dim ptStart As Point3d
|
Dim vtDirLine As Vector3d
|
||||||
EgtStartPoint(nIdSelected, GDB_ID.ROOT, ptStart)
|
EgtMidVector(nIdSelected, GDB_ID.ROOT, vtDirLine)
|
||||||
Dim ptEnd As Point3d
|
|
||||||
EgtEndPoint(nIdSelected, GDB_ID.ROOT, ptEnd)
|
' calcolo il versore della linea di taglio
|
||||||
Dim vtDirLine As Vector3d = ptEnd - ptStart
|
|
||||||
' calcolo il versore perpendicolare alla linea di taglio (diretto verso l'interno del pezzo)
|
|
||||||
Dim vtDirT As Vector3d = vtDirLine
|
Dim vtDirT As Vector3d = vtDirLine
|
||||||
vtDirT.Normalize()
|
vtDirT.Normalize()
|
||||||
vtDirT.Rotate(Vector3d.Z_AX, 90)
|
' calcolo la direzione di offset da applicare all'utensile
|
||||||
|
Dim vtOffset As New Vector3d(vtDirT.x, vtDirT.y, vtDirT.z)
|
||||||
|
vtOffset.Rotate(Vector3d.Z_AX, 90)
|
||||||
|
|
||||||
|
If CurrTestTool.ToolIsSaw Then
|
||||||
|
' calcolo il versore perpendicolare alla linea di taglio (diretto verso l'interno del pezzo)
|
||||||
|
vtDirT.Rotate(Vector3d.Z_AX, 90)
|
||||||
|
Else
|
||||||
|
' calcolo il versore perpendicolare alla linea di taglio (diretto verso l'interno del pezzo)
|
||||||
|
vtDirT.Rotate(Vector3d.Z_AX, 90)
|
||||||
|
' calcolo il versore perpendicolare al piano di taglio (diretto verso l'interno dell'utensile)
|
||||||
|
vtDirT.Rotate(vtDirLine, 90)
|
||||||
|
End If
|
||||||
|
|
||||||
' Calcolo punto di posizionamemto (punto medio)
|
' Calcolo punto di posizionamemto (punto medio)
|
||||||
Dim ptMid, m_ptTabOri As Point3d
|
Dim ptMid, m_ptTabOri As Point3d
|
||||||
|
|
||||||
If Not EgtGetTableRef(1, m_ptTabOri) Then Return
|
If Not EgtGetTableRef(1, m_ptTabOri) Then Return
|
||||||
ptMid.x = (ptEnd.x + ptStart.x) / 2
|
' recupero il punto medio della curva
|
||||||
ptMid.y = (ptEnd.y + ptStart.y) / 2
|
EgtMidPoint(nIdSelected, GDB_ID.ROOT, ptMid)
|
||||||
ptMid.z = (ptEnd.z + ptStart.z) / 2 + dDiam / 2
|
ptMid.z = m_ptTabOri.z + CamAuto.GetRawHeight() + dHeight + m_MainWindow.m_CurrentMachine.dAdditionalTable
|
||||||
ptMid -= vtDirT * dThick
|
' Offset dovuto allo spessore Utensile
|
||||||
|
ptMid -= vtOffset * dThick
|
||||||
|
|
||||||
'--------------------------- Imposto la posizione della macchina ----------------------------
|
'--------------------------- Imposto la posizione della macchina ----------------------------
|
||||||
' Recupero la posizione macchina
|
' Recupero la posizione macchina
|
||||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
|
||||||
' Imposto la lama corrente
|
|
||||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
' Imposto la lama corrente, preso dalla scelta precedente
|
||||||
|
'If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||||
|
If Not EgtSetCalcTool(CurrTestTool.ToolName, CurrTestTool.ToolHead, CurrTestTool.ToolExit) Then Return
|
||||||
|
|
||||||
' calcolo la posizione degli assi rotanti C, B
|
' calcolo la posizione degli assi rotanti C, B
|
||||||
Dim nStat As Integer
|
Dim nStat As Integer
|
||||||
Dim dC1, dB1, dC2, dB2 As Double
|
Dim dC1, dB1, dC2, dB2 As Double
|
||||||
EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2)
|
If CurrTestTool.ToolIsSaw Then
|
||||||
|
' Se LAMA
|
||||||
|
EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2)
|
||||||
|
ElseIf CurrTestTool.ToolIsLaser Then
|
||||||
|
' Se LASER
|
||||||
|
Dim dHomeC As Double = 90
|
||||||
|
EgtGetAxisHomePos("C", dHomeC)
|
||||||
|
Dim vtPrefAuxDir As Vector3d = -Vector3d.X_AX()
|
||||||
|
vtPrefAuxDir.Rotate(Vector3d.Z_AX, dHomeC)
|
||||||
|
EgtGetCalcAngles(vtDirT, vtPrefAuxDir, nStat, dC1, dB1, dC2, dB2)
|
||||||
|
' Forzo B90
|
||||||
|
dB1 = 90
|
||||||
|
' Forzo la pozione in Z alla quota di Home (per evitare l'errore di fine corsa asse Z)
|
||||||
|
Dim dHomeZ As Double = 0
|
||||||
|
EgtGetAxisHomePos("Z", dHomeZ)
|
||||||
|
ptMid.z = dHomeZ
|
||||||
|
Else
|
||||||
|
' Se utensile speciale
|
||||||
|
If CurrTestTool.ToolType = MCH_TY.MILL_STD Or CurrTestTool.ToolType = MCH_TY.DRILL_STD Then
|
||||||
|
' Se FRESA/FORETTO
|
||||||
|
Dim nStepRotC As Integer = GetPrivateProfileInt(S_NEST, K_MACH_DRILL_MILL_C90, 1, m_MainWindow.GetMachIniFile())
|
||||||
|
Dim vtPrefAuxDir As Vector3d = -Vector3d.X_AX()
|
||||||
|
vtPrefAuxDir.Rotate(Vector3d.Z_AX, 90 * nStepRotC)
|
||||||
|
EgtGetCalcAngles(vtDirT, vtPrefAuxDir, nStat, dC1, dB1, dC2, dB2)
|
||||||
|
ElseIf CurrTestTool.ToolType = MCH_TY.WATERJET Then
|
||||||
|
' Se WJ
|
||||||
|
Dim dHomeC As Double = 90
|
||||||
|
EgtGetAxisHomePos("C", dHomeC)
|
||||||
|
Dim vtPrefAuxDir As Vector3d = Vector3d.X_AX()
|
||||||
|
vtPrefAuxDir.Rotate(Vector3d.Z_AX, dHomeC)
|
||||||
|
EgtGetCalcAngles(vtDirT, vtPrefAuxDir, nStat, dC1, dB1, dC2, dB2)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
' calcolo la posizione degli assi lineari X, Y, Z
|
' calcolo la posizione degli assi lineari X, Y, Z
|
||||||
Dim dX, dY, dZ As Double
|
Dim dX, dY, dZ As Double
|
||||||
EgtGetCalcPositions(ptMid, dC1, dB1, nStat, dX, dY, dZ)
|
EgtGetCalcPositions(ptMid, dC1, dB1, nStat, dX, dY, dZ)
|
||||||
@@ -362,16 +516,49 @@ Public Class ProjectMgrUC
|
|||||||
' verifica assi lineari
|
' verifica assi lineari
|
||||||
EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat)
|
EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat)
|
||||||
If nStat <> 0 Then
|
If nStat <> 0 Then
|
||||||
|
EgtOutLog("Out of stroke: " & nStat)
|
||||||
vtDirT = -vtDirT
|
vtDirT = -vtDirT
|
||||||
ptMid -= vtDirT * dThick
|
ptMid -= vtDirT * dThick
|
||||||
EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2)
|
If CurrTestTool.ToolIsSaw Then
|
||||||
|
EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2)
|
||||||
|
ElseIf CurrTestTool.ToolIsLaser Then
|
||||||
|
' Se LASER
|
||||||
|
Dim dHomeC As Double = 90
|
||||||
|
EgtGetAxisHomePos("C", dHomeC)
|
||||||
|
Dim vtPrefAuxDir As Vector3d = -Vector3d.X_AX()
|
||||||
|
vtPrefAuxDir.Rotate(Vector3d.Z_AX, dHomeC)
|
||||||
|
EgtGetCalcAngles(vtDirT, vtPrefAuxDir, nStat, dC1, dB1, dC2, dB2)
|
||||||
|
' Forzo B90
|
||||||
|
dB1 = 90
|
||||||
|
Else
|
||||||
|
If CurrTestTool.ToolType = MCH_TY.MILL_STD Or CurrTestTool.ToolType = MCH_TY.DRILL_STD Then
|
||||||
|
' Se FRESA/FORETTO
|
||||||
|
Dim nStepRotC As Integer = GetPrivateProfileInt(S_NEST, K_MACH_DRILL_MILL_C90, 1, m_MainWindow.GetMachIniFile())
|
||||||
|
Dim vtPrefAuxDir As Vector3d = -Vector3d.X_AX()
|
||||||
|
vtPrefAuxDir.Rotate(Vector3d.Z_AX, 90 * nStepRotC)
|
||||||
|
EgtGetCalcAngles(vtDirT, vtPrefAuxDir, nStat, dC1, dB1, dC2, dB2)
|
||||||
|
ElseIf CurrTestTool.ToolType = MCH_TY.WATERJET Then
|
||||||
|
' Se WJ
|
||||||
|
Dim dHomeC As Double = 90
|
||||||
|
EgtGetAxisHomePos("C", dHomeC)
|
||||||
|
Dim vtPrefAuxDir As Vector3d = Vector3d.X_AX()
|
||||||
|
vtPrefAuxDir.Rotate(Vector3d.Z_AX, dHomeC)
|
||||||
|
EgtGetCalcAngles(vtDirT, vtPrefAuxDir, nStat, dC1, dB1, dC2, dB2)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
' calcolo la posizione degli assi lineari X, Y, Z ( correggere il punto ptMid.z sommando il raggio utensile)
|
' calcolo la posizione degli assi lineari X, Y, Z ( correggere il punto ptMid.z sommando il raggio utensile)
|
||||||
EgtGetCalcPositions(ptMid, dC1, dB1, nStat, dX, dY, dZ)
|
EgtGetCalcPositions(ptMid, dC1, dB1, nStat, dX, dY, dZ)
|
||||||
|
|
||||||
|
' verifica assi lineari
|
||||||
|
EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat)
|
||||||
|
If nStat <> 0 Then
|
||||||
|
EgtOutLog("2nd attemp out of stroke: " & nStat)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'--------------------------- Comunico i movimenti in origine macchina al CN ----------------------------------------
|
'--------------------------- Comunico i movimenti in origine macchina al CN ----------------------------------------
|
||||||
Dim ptMachine As Point3d = New Point3d(dX, dY, dZ)
|
Dim ptMachine As Point3d = New Point3d(dX, dY, If(CurrTestTool.ToolIsLaser, 0, dZ))
|
||||||
ExecuteCommandCNC(ptMachine, dC1, dB1)
|
ExecuteCommandCNC(ptMachine, dC1, dB1, CurrTestTool)
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
' ---------------------------- Fine modalità test --------------------------------------------
|
' ---------------------------- Fine modalità test --------------------------------------------
|
||||||
@@ -656,6 +843,12 @@ Public Class ProjectMgrUC
|
|||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
' leggo il nome della tavola da cui sto lanciando il progetto
|
||||||
|
Dim sTabeName As String = String.Empty
|
||||||
|
EgtGetTableName(sTabeName)
|
||||||
|
Dim bDoubleProg As Boolean = (GetPrivateProfileInt(S_PRODUCTIONLINE, "DoubleProg", 0, m_MainWindow.GetMachIniFile()) <> 0)
|
||||||
|
|
||||||
' Leggo eventuale variabile per lavorazione con 2 tavole in parallelo (standard E80027)
|
' Leggo eventuale variabile per lavorazione con 2 tavole in parallelo (standard E80027)
|
||||||
Dim nVarProgTwins As Integer = 1
|
Dim nVarProgTwins As Integer = 1
|
||||||
If Not String.IsNullOrWhiteSpace(m_CurrMachine.sVarProgTwins) Then
|
If Not String.IsNullOrWhiteSpace(m_CurrMachine.sVarProgTwins) Then
|
||||||
@@ -669,8 +862,26 @@ Public Class ProjectMgrUC
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Verifico se posso scrivere nell'area 1
|
' Verifico se posso scrivere nell'area 1
|
||||||
If nVarProg1 = 0 And (nVarProg2 <> 1 Or nVarProgTwins = 2) Then
|
Dim bSendToAre1 As Boolean = (nVarProg1 = 0 And (nVarProg2 <> 1 Or nVarProgTwins = 2))
|
||||||
|
Dim bSendToAre2 As Boolean = (nVarProg2 = 0 And (nVarProg1 <> 1 Or nVarProgTwins = 2))
|
||||||
|
|
||||||
|
If bDoubleProg Then
|
||||||
|
If sTabeName = MAIN_TAB Then
|
||||||
|
' spedisco il programma da tavola 1 solo se CN ha terminato programma 901
|
||||||
|
bSendToAre1 = (nVarProg1 = 0)
|
||||||
|
bSendToAre2 = False
|
||||||
|
EgtOutLog(" Invio programma da tavola 1")
|
||||||
|
Else
|
||||||
|
' spedisco il programma da tavola 2 solo se CN ha terminato programma 902
|
||||||
|
bSendToAre1 = False
|
||||||
|
bSendToAre2 = (nVarProg2 = 0)
|
||||||
|
EgtOutLog(" Invio programma da tavola 2")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If bSendToAre1 Then
|
||||||
m_CurrNcComm.SetProgramMainOrSub(False)
|
m_CurrNcComm.SetProgramMainOrSub(False)
|
||||||
If m_CurrNcComm.SendProgram(sCncPath, m_CurrMachine.nProg1, False) Then
|
If m_CurrNcComm.SendProgram(sCncPath, m_CurrMachine.nProg1, False) Then
|
||||||
' Dichiaro part program inviato
|
' Dichiaro part program inviato
|
||||||
@@ -687,7 +898,7 @@ Public Class ProjectMgrUC
|
|||||||
End If
|
End If
|
||||||
m_CurrNcComm.SetProgramMainOrSub(True)
|
m_CurrNcComm.SetProgramMainOrSub(True)
|
||||||
' Altrimenti verifico se posso scrivere nell'area 2
|
' Altrimenti verifico se posso scrivere nell'area 2
|
||||||
ElseIf nVarProg2 = 0 And (nVarProg1 <> 1 Or nVarProgTwins = 2) Then
|
ElseIf bSendToAre2 Then
|
||||||
m_CurrNcComm.SetProgramMainOrSub(False)
|
m_CurrNcComm.SetProgramMainOrSub(False)
|
||||||
If m_CurrNcComm.SendProgram(sCncPath, m_CurrMachine.nProg2, False) Then
|
If m_CurrNcComm.SendProgram(sCncPath, m_CurrMachine.nProg2, False) Then
|
||||||
' Dichiaro part program inviato
|
' Dichiaro part program inviato
|
||||||
@@ -707,6 +918,12 @@ Public Class ProjectMgrUC
|
|||||||
Else
|
Else
|
||||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90318)) 'La macchina non accetta il programma CN
|
m_CurrProjPage.SetErrorMessage(EgtMsg(90318)) 'La macchina non accetta il programma CN
|
||||||
End If
|
End If
|
||||||
|
' avvio programma solo se DoubleProg
|
||||||
|
If (GetPrivateProfileInt(S_GENERAL, K_STARTPROGRAM, 0, m_MainWindow.GetIniFile()) <> 0 And bDoubleProg) And
|
||||||
|
(bSendToAre1 Or bSendToAre2) Then
|
||||||
|
Dim MyCicloStartWD As New CicloStartWD(m_MainWindow)
|
||||||
|
MyCicloStartWD.ShowDialog()
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
#End If
|
#End If
|
||||||
@@ -845,7 +1062,7 @@ Public Class ProjectMgrUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' ------------------------------------------------ GENERA COMANDI CNC MOVIMENTO ------------------------------------------------
|
' ------------------------------------------------ GENERA COMANDI CNC MOVIMENTO ------------------------------------------------
|
||||||
Private Sub ExecuteCommandCNC(ptMid As Point3d, dAngC As Double, dAngB As Double)
|
Private Sub ExecuteCommandCNC(ptMid As Point3d, dAngC As Double, dAngB As Double, SelTestTool As TestTool)
|
||||||
|
|
||||||
Dim CmdString As String = String.Empty
|
Dim CmdString As String = String.Empty
|
||||||
If Not EgtLuaExecFile(m_MainWindow.m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then
|
If Not EgtLuaExecFile(m_MainWindow.m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then
|
||||||
@@ -871,12 +1088,23 @@ Public Class ProjectMgrUC
|
|||||||
EgtLuaSetGlobNumVar("CMD.R1", dR1)
|
EgtLuaSetGlobNumVar("CMD.R1", dR1)
|
||||||
EgtLuaSetGlobNumVar("CMD.R2", dR2)
|
EgtLuaSetGlobNumVar("CMD.R2", dR2)
|
||||||
|
|
||||||
' Recupero spessore lama corrente
|
'' Recupero spessore lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
'Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
EgtTdbSetCurrTool(sSaw)
|
'EgtTdbSetCurrTool(sSaw)
|
||||||
|
'Dim dThick As Double = 0
|
||||||
|
'EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
||||||
|
'EgtLuaSetGlobNumVar("CMD.SAWTH", dThick)
|
||||||
|
|
||||||
|
EgtTdbSetCurrTool(SelTestTool.ToolName)
|
||||||
|
EgtLuaSetGlobStringVar("CMD.TLNAME", SelTestTool.ToolName)
|
||||||
|
EgtLuaSetGlobStringVar("CMD.TLALIAS", SelTestTool.ToolAlias)
|
||||||
Dim dThick As Double = 0
|
Dim dThick As Double = 0
|
||||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
||||||
EgtLuaSetGlobNumVar("CMD.SAWTH", dThick)
|
EgtLuaSetGlobNumVar("CMD.SAWTH", dThick)
|
||||||
|
Dim sTCPos As String = String.Empty
|
||||||
|
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sTCPos)
|
||||||
|
EgtLuaSetGlobStringVar("CMD.TCPOS", sTCPos)
|
||||||
|
|
||||||
|
|
||||||
'----------- ASSEGNO POSIZIONE DI ARRIVO MACCHINA -----------
|
'----------- ASSEGNO POSIZIONE DI ARRIVO MACCHINA -----------
|
||||||
' Assegno valore ad ogni asse da muovere (in zero macchina)
|
' Assegno valore ad ogni asse da muovere (in zero macchina)
|
||||||
@@ -935,6 +1163,7 @@ Public Class ProjectMgrUC
|
|||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
|
m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
|
||||||
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
|
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
|
||||||
EgtResetMark(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
EgtResetMark(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
||||||
|
m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrToolFromSelectedSawCurv = String.Empty
|
||||||
End If
|
End If
|
||||||
' aggiorno il disegno
|
' aggiorno il disegno
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
@@ -1008,6 +1237,7 @@ Public Class ProjectMgrUC
|
|||||||
' Nascondo bottoni rawpage
|
' Nascondo bottoni rawpage
|
||||||
m_MainWindow.m_RawPartPage.OtherRefTabBtn.Visibility = Windows.Visibility.Hidden
|
m_MainWindow.m_RawPartPage.OtherRefTabBtn.Visibility = Windows.Visibility.Hidden
|
||||||
|
|
||||||
|
m_MainWindow.m_CadCutPageUC.m_NestPage.LoadParams()
|
||||||
' Rendo visibili i bottoni per la definizione degli Spotreg
|
' Rendo visibili i bottoni per la definizione degli Spotreg
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.UG0_Reg.Visibility = Visibility.Visible
|
m_MainWindow.m_CadCutPageUC.m_NestPage.UG0_Reg.Visibility = Visibility.Visible
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.UG1_Reg.Visibility = Visibility.Visible
|
m_MainWindow.m_CadCutPageUC.m_NestPage.UG1_Reg.Visibility = Visibility.Visible
|
||||||
|
|||||||
@@ -39,6 +39,43 @@
|
|||||||
<Button Name="TopViewBtn" Grid.Column="6" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
<Button Name="TopViewBtn" Grid.Column="6" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||||
<Image Source="{DynamicResource LookFromTOPImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
<Image Source="{DynamicResource LookFromTOPImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
<Popup Name="ViewPopUp"
|
||||||
|
IsOpen="False"
|
||||||
|
AllowsTransparency="False"
|
||||||
|
PopupAnimation="Scroll"
|
||||||
|
StaysOpen="False"
|
||||||
|
Placement="Bottom"
|
||||||
|
PlacementTarget="{Binding ElementName=TopViewBtn}">
|
||||||
|
<WrapPanel Orientation="Vertical"
|
||||||
|
Width="78"
|
||||||
|
Background="{DynamicResource OmagCut_Gray}">
|
||||||
|
<Button x:Name="BottomViewBtn"
|
||||||
|
ToolTip="Bottom View"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||||
|
<Image Source="{DynamicResource LookFromBOTTOMImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
<Button x:Name="FrontViewBtn"
|
||||||
|
ToolTip="Front View"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||||
|
<Image Source="{DynamicResource LookFromFRONTImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
<Button x:Name="BackViewBtn"
|
||||||
|
ToolTip="Back View"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||||
|
<Image Source="{DynamicResource LookFromBACKImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
<Button x:Name="LeftViewBtn"
|
||||||
|
ToolTip="Left View"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||||
|
<Image Source="{DynamicResource LookFromLEFTImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
<Button x:Name="RightViewBtn"
|
||||||
|
ToolTip="Right View"
|
||||||
|
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||||
|
<Image Source="{DynamicResource LookFromRIGHTImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
</WrapPanel>
|
||||||
|
</Popup>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ Public Class SceneButtonsUC
|
|||||||
'Riferimento alla MainWindow
|
'Riferimento alla MainWindow
|
||||||
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
|
|
||||||
|
Private Sub Init() Handles Me.Initialized
|
||||||
|
TopViewBtn.ToolTip = "Top View" & vbCrLf & "Select View (Shift)"
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub MeasureBtn_Checked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Checked
|
Private Sub MeasureBtn_Checked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Checked
|
||||||
GetCurrScene.SetStatusGetDistance()
|
GetCurrScene.SetStatusGetDistance()
|
||||||
Dim ptRef1 As Point3d
|
Dim ptRef1 As Point3d
|
||||||
@@ -49,6 +53,12 @@ Public Class SceneButtonsUC
|
|||||||
'End Sub
|
'End Sub
|
||||||
|
|
||||||
Private Sub PanBtn_Click(sender As Object, e As RoutedEventArgs) Handles PanBtn.Click
|
Private Sub PanBtn_Click(sender As Object, e As RoutedEventArgs) Handles PanBtn.Click
|
||||||
|
If Keyboard.IsKeyDown(Key.LeftShift) Then
|
||||||
|
Dim bOrtoGraphic As Boolean = (GetPrivateProfileInt(S_SCENE, K_ORTOGRAPHIC, 1, m_MainWindow.GetIniFile()) <> 0)
|
||||||
|
EgtSetCameraType(Not bOrtoGraphic, True)
|
||||||
|
WritePrivateProfileString(S_SCENE, K_ORTOGRAPHIC, If(Not bOrtoGraphic, "1", "0"), m_MainWindow.GetIniFile())
|
||||||
|
Return
|
||||||
|
End If
|
||||||
GetCurrScene.SetStatusPan()
|
GetCurrScene.SetStatusPan()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -69,7 +79,35 @@ Public Class SceneButtonsUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub TopViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles TopViewBtn.Click
|
Private Sub TopViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles TopViewBtn.Click
|
||||||
EgtSetView(VT.TOP)
|
If (Keyboard.Modifiers And ModifierKeys.Shift) > 0 Then
|
||||||
|
If ViewPopUp.IsOpen Then
|
||||||
|
ViewPopUp.IsOpen = False
|
||||||
|
Else
|
||||||
|
ViewPopUp.IsOpen = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
EgtSetView(VT.TOP)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub BottomViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles BottomViewBtn.Click
|
||||||
|
EgtSetView(VT.BOTTOM)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub FrontViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrontViewBtn.Click
|
||||||
|
EgtSetView(VT.FRONT)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub BackViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles BackViewBtn.Click
|
||||||
|
EgtSetView(VT.BACK)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LeftViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles LeftViewBtn.Click
|
||||||
|
EgtSetView(VT.LEFT)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub RightViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles RightViewBtn.Click
|
||||||
|
EgtSetView(VT.RIGHT)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function GetCurrScene() As EgtUILib.Scene
|
Private Function GetCurrScene() As EgtUILib.Scene
|
||||||
|
|||||||
@@ -96,16 +96,22 @@ Public Class StartLauncherWD
|
|||||||
Dim ItemFile As String = String.Empty
|
Dim ItemFile As String = String.Empty
|
||||||
'carico la liste dei file recenti
|
'carico la liste dei file recenti
|
||||||
Dim sFileName As String = String.Empty
|
Dim sFileName As String = String.Empty
|
||||||
|
Dim MruFileListRemove As New List(Of String)
|
||||||
For Each ItemFile In m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.FileNames
|
For Each ItemFile In m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.FileNames
|
||||||
sFileName = ItemFile.Replace("__", "_")
|
sFileName = ItemFile.Replace("__", "_")
|
||||||
If Not String.IsNullOrEmpty(sFileName) Then
|
If Not String.IsNullOrEmpty(sFileName) AndAlso File.Exists(sFileName) Then
|
||||||
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
|
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
|
||||||
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
|
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
|
||||||
Else
|
Else
|
||||||
m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.Remove(ItemFile)
|
MruFileListRemove.Add(ItemFile)
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
For Each ItemFileRemove As String In MruFileListRemove
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.Remove(ItemFileRemove)
|
||||||
|
EgtOutLog(" WARNING: File " & ItemFileRemove & " does not exist or is not accessible, it's been removed from MruFiles list")
|
||||||
|
Next
|
||||||
|
|
||||||
' posiziono la fistra in centro alla pagina
|
' posiziono la fistra in centro alla pagina
|
||||||
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
|
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
|
||||||
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
|
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
|
||||||
|
|||||||
@@ -347,6 +347,13 @@ Public Class Camera
|
|||||||
|
|
||||||
' ------------------------------------ accensione riflettori ------------------------------------
|
' ------------------------------------ accensione riflettori ------------------------------------
|
||||||
|
|
||||||
|
' ------------------------------------ mando la testa in home ------------------------------------
|
||||||
|
If Not GoHomeForPhoto() Then
|
||||||
|
EgtOutLog("Error in positioning")
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ------------------------------------ mando la testa in home ------------------------------------
|
||||||
|
|
||||||
' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo)
|
' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo)
|
||||||
Dim bOk As Boolean = False
|
Dim bOk As Boolean = False
|
||||||
Dim sArgs As String = "2 0"
|
Dim sArgs As String = "2 0"
|
||||||
@@ -364,6 +371,66 @@ Public Class Camera
|
|||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function GoHomeForPhoto() As Boolean
|
||||||
|
Dim bGoHome As Boolean = GetPrivateProfileInt(S_PHOTO, K_ENABELE_GOHOME_FOR_PHOTO, 0, m_MainWindow.GetMachIniFile()) <> 0
|
||||||
|
' Se non configurato esco senza generare errore
|
||||||
|
If Not bGoHome Then Return True
|
||||||
|
' Costruisco il bottone per potere eseguire il comando MDI
|
||||||
|
Dim GoHome As MachineButton = Nothing
|
||||||
|
Dim sDirectCmdFile As String = String.Empty
|
||||||
|
GetPrivateProfileString(S_PHOTO, K_CAMERA_DIRECT_CMD, "", sDirectCmdFile, m_MainWindow.GetMachIniFile())
|
||||||
|
If String.IsNullOrEmpty(sDirectCmdFile) Then
|
||||||
|
Return False
|
||||||
|
Else
|
||||||
|
EgtOutLog("Direct command for positionig head: " & sDirectCmdFile)
|
||||||
|
End If
|
||||||
|
GoHome = New TwoStateButton("", sDirectCmdFile, "", "", "")
|
||||||
|
' eseguo lo script lua associato
|
||||||
|
GoHome.ExecuteMDICommand(GoHome.TLuaScriptName)
|
||||||
|
' Leggo nome variabile posizione home raggiunta
|
||||||
|
Dim CameraStateNameVar As String = String.Empty
|
||||||
|
GetPrivateProfileString(S_PHOTO, K_CAMERA_STATE_VAR, "", CameraStateNameVar, m_MainWindow.GetMachIniFile())
|
||||||
|
Dim nSteps As Integer = 20
|
||||||
|
nSteps = GetPrivateProfileInt(S_PHOTO, K_PENDIG_TIME_FOR_PHOTO, nSteps, m_MainWindow.GetMachIniFile())
|
||||||
|
If String.IsNullOrEmpty(CameraStateNameVar) Then
|
||||||
|
'Return False
|
||||||
|
Else
|
||||||
|
EgtOutLog("Variable for read status of positioning head: " & CameraStateNameVar)
|
||||||
|
End If
|
||||||
|
' 91144=Going home
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(91144))
|
||||||
|
UpdateUI()
|
||||||
|
' Eseguo reset variabile posizione home raggiunta
|
||||||
|
m_MainWindow.m_CNCommunication.m_CN.DVariables_WriteVariables2(CameraStateNameVar, "0")
|
||||||
|
System.Threading.Thread.Sleep(300)
|
||||||
|
' Definisco flag posizionamento completato
|
||||||
|
Dim bPositionOk As Boolean = False
|
||||||
|
For I As Integer = 0 To nSteps
|
||||||
|
' Devo rileggere la variabile ad ogni ciclo
|
||||||
|
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(CameraStateNameVar, 3)
|
||||||
|
System.Threading.Thread.Sleep(100)
|
||||||
|
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then
|
||||||
|
Dim CameraStateVal As Integer = CInt(m_MainWindow.m_CNCommunication.m_CN.d_DReadELS_value)
|
||||||
|
Select Case CameraStateVal
|
||||||
|
Case 0
|
||||||
|
' Non faccio alcunchè perchè si sta posizionando
|
||||||
|
Case 1
|
||||||
|
' Posizionamento completato
|
||||||
|
bPositionOk = True
|
||||||
|
Exit For
|
||||||
|
Case 2
|
||||||
|
' Errore
|
||||||
|
bPositionOk = False
|
||||||
|
Exit For
|
||||||
|
End Select
|
||||||
|
End If
|
||||||
|
System.Threading.Thread.Sleep(900)
|
||||||
|
Next
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
|
UpdateUI()
|
||||||
|
Return bPositionOk
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Function WaitPhoto(nInd As Integer) As Boolean
|
Private Function WaitPhoto(nInd As Integer) As Boolean
|
||||||
' Ciclo di ricerca foto scattata
|
' Ciclo di ricerca foto scattata
|
||||||
Dim nMaxThick = 10 * m_nTimeout
|
Dim nMaxThick = 10 * m_nTimeout
|
||||||
|
|||||||
@@ -35,7 +35,42 @@
|
|||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</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"
|
<TextBlock Name="AuxiliaryMachiningTxBl" Grid.Column="1" Grid.Row="2"
|
||||||
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Visibility="Hidden"/>
|
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}" Visibility="Hidden"/>
|
||||||
<ComboBox Name="AuxiliaryMachiningCmBx" Grid.Column="1" Grid.Row="3" Visibility="Hidden">
|
<ComboBox Name="AuxiliaryMachiningCmBx" Grid.Column="1" Grid.Row="3" Visibility="Hidden">
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ Public Class ChooseMachining
|
|||||||
Private m_CurrentMachine As CurrentMachine = m_MainWindow.m_CurrentMachine
|
Private m_CurrentMachine As CurrentMachine = m_MainWindow.m_CurrentMachine
|
||||||
' Liste che contengono gli elementi appartenenti alle ComboBox
|
' Liste che contengono gli elementi appartenenti alle ComboBox
|
||||||
Private m_SawingList As New List(Of String)
|
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_AuxMachTypeList As New List(Of StringIdCmBx)
|
||||||
Private m_DrillingList As New List(Of String)
|
Private m_DrillingList As New List(Of String)
|
||||||
Private m_MillingList 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.Top = Owner.Top + Owner.Height / 2 - Me.Height
|
||||||
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
|
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
|
||||||
CurrSawingCmBx.ItemsSource = m_SawingList
|
CurrSawingCmBx.ItemsSource = m_SawingList
|
||||||
|
CurrSawingTiltedCmBx.ItemsSource = m_SawingTiltedList
|
||||||
AuxiliaryMachiningCmBx.ItemsSource = m_AuxMachTypeList
|
AuxiliaryMachiningCmBx.ItemsSource = m_AuxMachTypeList
|
||||||
CurrDrillingCmBx.ItemsSource = m_DrillingList
|
CurrDrillingCmBx.ItemsSource = m_DrillingList
|
||||||
CurrMillingCmBx.ItemsSource = m_MillingList
|
CurrMillingCmBx.ItemsSource = m_MillingList
|
||||||
@@ -44,6 +46,7 @@ Public Class ChooseMachining
|
|||||||
CurrWJettingQualityCmBx.ItemsSource = m_CurrentMachine.Qualities
|
CurrWJettingQualityCmBx.ItemsSource = m_CurrentMachine.Qualities
|
||||||
|
|
||||||
CurrSawingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 1)
|
CurrSawingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 1)
|
||||||
|
CurrSawingTiltedTxBl.Text = EgtMsg(91023) ' Lavorazione inclinata
|
||||||
AuxiliaryMachiningTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 2)
|
AuxiliaryMachiningTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 2)
|
||||||
CurrDrillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 3)
|
CurrDrillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 3)
|
||||||
CurrMillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 4)
|
CurrMillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 4)
|
||||||
@@ -69,7 +72,13 @@ Public Class ChooseMachining
|
|||||||
' -- TAGLIO --
|
' -- TAGLIO --
|
||||||
CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList)
|
CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList)
|
||||||
' aggiungo un campo vuoto
|
' aggiungo un campo vuoto
|
||||||
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
|
' Verifico la configurazione della macchina per creare i combobox
|
||||||
Select Case m_CurrentMachine.MountedToolConfig
|
Select Case m_CurrentMachine.MountedToolConfig
|
||||||
@@ -78,7 +87,7 @@ Public Class ChooseMachining
|
|||||||
ChooseMachiningGrid.Children.Remove(AuxiliaryMachiningTxBl)
|
ChooseMachiningGrid.Children.Remove(AuxiliaryMachiningTxBl)
|
||||||
ChooseMachiningGrid.Children.Remove(AuxiliaryMachiningCmBx)
|
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
|
' Creo lista lavorazioni foretto e fresa
|
||||||
If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL Then
|
If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL Then
|
||||||
CreateMachiningList(MCH_MY.DRILLING, m_CurrentMachine.sCurrDrill, m_DrillingList)
|
CreateMachiningList(MCH_MY.DRILLING, m_CurrentMachine.sCurrDrill, m_DrillingList)
|
||||||
@@ -114,7 +123,10 @@ Public Class ChooseMachining
|
|||||||
|
|
||||||
' ---- MACCHINA CON CAMBIO UTENSILE ----
|
' ---- MACCHINA CON CAMBIO UTENSILE ----
|
||||||
ElseIf m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER Or
|
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 --
|
' -- FORATURA --
|
||||||
CreateMachiningList(MCH_MY.DRILLING, m_DrillingList)
|
CreateMachiningList(MCH_MY.DRILLING, m_DrillingList)
|
||||||
' Se la lista è vuota cancello la lavorazione corrente di questo tipo
|
' Se la lista è vuota cancello la lavorazione corrente di questo tipo
|
||||||
@@ -175,20 +187,24 @@ Public Class ChooseMachining
|
|||||||
|
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
' verifico che lista delle lavorazioni di lama non sia vuoto
|
If m_CurrentMachine.bWaterJet And EgtGetHeadId("H1") = GDB_ID.NULL Then
|
||||||
If m_SawingList.Count > 0 Then
|
|
||||||
' provo ad assegnare la lama corrente (se l'associazione fallisce corrispoende ad impostare un campo vuoto)
|
|
||||||
CurrSawingCmBx.SelectedItem = m_MainWindow.m_CurrentMachine.sCurrSawing
|
|
||||||
Else
|
Else
|
||||||
m_MainWindow.m_CurrentMachine.sCurrSawing = String.Empty
|
' verifico che lista delle lavorazioni di lama non sia vuoto
|
||||||
End If
|
If m_SawingList.Count > 0 Then
|
||||||
' se non riesco a fare l'assegnazione della lama allora elimino il nome della lama salvata
|
' provo ad assegnare la lama corrente (se l'associazione fallisce corrispoende ad impostare un campo vuoto)
|
||||||
If String.IsNullOrEmpty(CurrSawingCmBx.SelectedItem) Then
|
CurrSawingCmBx.SelectedItem = m_MainWindow.m_CurrentMachine.sCurrSawing
|
||||||
' verifico che il nome della lama esista
|
Else
|
||||||
If CurrSawingCmBx.SelectedItem <> m_MainWindow.m_CurrentMachine.sCurrSawing Then
|
m_MainWindow.m_CurrentMachine.sCurrSawing = String.Empty
|
||||||
m_MachIsModified = True
|
End If
|
||||||
|
' se non riesco a fare l'assegnazione della lama allora elimino il nome della lama salvata
|
||||||
|
If String.IsNullOrEmpty(CurrSawingCmBx.SelectedItem) Then
|
||||||
|
' verifico che il nome della lama esista
|
||||||
|
If CurrSawingCmBx.SelectedItem <> m_MainWindow.m_CurrentMachine.sCurrSawing Then
|
||||||
|
m_MachIsModified = True
|
||||||
|
End If
|
||||||
|
m_MainWindow.m_CurrentMachine.sCurrSawing = String.Empty
|
||||||
End If
|
End If
|
||||||
m_MainWindow.m_CurrentMachine.sCurrSawing = String.Empty
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' definizione della lista delle lavorazioni secondarie -- DA RIMUOVERE COMPLETAMENTE --
|
' definizione della lista delle lavorazioni secondarie -- DA RIMUOVERE COMPLETAMENTE --
|
||||||
@@ -202,7 +218,8 @@ Public Class ChooseMachining
|
|||||||
m_AuxMachTypeList.Add(New StringIdCmBx(4, EgtMsg(91069)))
|
m_AuxMachTypeList.Add(New StringIdCmBx(4, EgtMsg(91069)))
|
||||||
End If
|
End If
|
||||||
If m_CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER Or
|
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)))
|
m_AuxMachTypeList.Add(New StringIdCmBx(3, EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 8)))
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -486,6 +503,8 @@ Public Class ChooseMachining
|
|||||||
Dim nDeltaRow As Integer = 4
|
Dim nDeltaRow As Integer = 4
|
||||||
Dim nNewRow As Integer = 2
|
Dim nNewRow As Integer = 2
|
||||||
' nascondo tutte le CmBx e TxBl
|
' nascondo tutte le CmBx e TxBl
|
||||||
|
CurrSawingTiltedTxBl.Visibility = Windows.Visibility.Hidden
|
||||||
|
CurrSawingTiltedCmBx.Visibility = Windows.Visibility.Hidden
|
||||||
CurrDrillingTxBl.Visibility = Windows.Visibility.Hidden
|
CurrDrillingTxBl.Visibility = Windows.Visibility.Hidden
|
||||||
CurrDrillingCmBx.Visibility = Windows.Visibility.Hidden
|
CurrDrillingCmBx.Visibility = Windows.Visibility.Hidden
|
||||||
CurrMillingTxBl.Visibility = Windows.Visibility.Hidden
|
CurrMillingTxBl.Visibility = Windows.Visibility.Hidden
|
||||||
@@ -495,6 +514,33 @@ Public Class ChooseMachining
|
|||||||
CurrWJettingTxBl.Visibility = Windows.Visibility.Hidden
|
CurrWJettingTxBl.Visibility = Windows.Visibility.Hidden
|
||||||
CurrWJettingCmBx.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
|
||||||
|
End If
|
||||||
|
|
||||||
' -- FORATURA -- se foretto presente
|
' -- FORATURA -- se foretto presente
|
||||||
If m_CurrentMachine.bDrill And m_DrillingList.Count() > 0 Then
|
If m_CurrentMachine.bDrill And m_DrillingList.Count() > 0 Then
|
||||||
' Definizione di due righe della tabella con la giusta altezza
|
' Definizione di due righe della tabella con la giusta altezza
|
||||||
@@ -617,6 +663,20 @@ Public Class ChooseMachining
|
|||||||
m_MainWindow.m_CurrentMachine.sCurrSawing = CurrSawingCmBx.SelectedItem.ToString()
|
m_MainWindow.m_CurrentMachine.sCurrSawing = CurrSawingCmBx.SelectedItem.ToString()
|
||||||
End Sub
|
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
|
Private Sub CurrDrillingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrDrillingCmBx.SelectionChanged
|
||||||
m_MainWindow.m_CurrentMachine.sCurrDrilling = CurrDrillingCmBx.SelectedItem.ToString()
|
m_MainWindow.m_CurrentMachine.sCurrDrilling = CurrDrillingCmBx.SelectedItem.ToString()
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||||
FontFamily="{DynamicResource OmagCut_Font}"
|
FontFamily="{DynamicResource OmagCut_Font}"
|
||||||
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
|
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-->
|
<!--Definizione della pagina di scelta del nome con cui salvare il progetto-->
|
||||||
<Border Style="{DynamicResource OmagCut_Border}">
|
<Border Style="{DynamicResource OmagCut_Border}">
|
||||||
@@ -28,14 +28,30 @@
|
|||||||
<RowDefinition Height="0.2*"/>
|
<RowDefinition Height="0.2*"/>
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
<RowDefinition Height="0.2*"/>
|
<RowDefinition Height="0.2*"/>
|
||||||
|
<RowDefinition Height="1*"/>
|
||||||
|
<RowDefinition Height="0.2*"/>
|
||||||
|
<RowDefinition Height="0.2*"/>
|
||||||
<RowDefinition Height="1.5*"/>
|
<RowDefinition Height="1.5*"/>
|
||||||
<RowDefinition Height="0.2*"/>
|
<RowDefinition Height="0.2*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<TextBlock Name="RefRawTxbl" Grid.Column="1" Grid.Row="1"
|
<TextBlock Name="SelRefTxbl" Grid.Column="1" Grid.Row="1"
|
||||||
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
|
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">
|
MaxDropDownHeight="300" Margin="0,0,0,0">
|
||||||
<ComboBox.ItemTemplate>
|
<ComboBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
@@ -44,17 +60,17 @@
|
|||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<TextBlock Name="RefTabXTxbl" Grid.Column="1" Grid.Row="3"
|
<TextBlock Name="RefTabXTxbl" Grid.Column="1" Grid.Row="5"
|
||||||
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
|
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}"/>
|
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}"/>
|
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}"/>
|
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>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="0.5*"/>
|
<ColumnDefinition Width="0.5*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
Imports System.Reflection
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
|
|
||||||
@@ -12,9 +13,14 @@ Public Class OtherRefTabWD
|
|||||||
Private m_dPrevOffsetX As Double = 0
|
Private m_dPrevOffsetX As Double = 0
|
||||||
Private m_dPrevOffsetY 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
|
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
|
Me.Owner = Owner
|
||||||
' La chiamata è richiesta dalla finestra di progettazione.
|
' La chiamata è richiesta dalla finestra di progettazione.
|
||||||
InitializeComponent()
|
InitializeComponent()
|
||||||
@@ -25,6 +31,7 @@ Public Class OtherRefTabWD
|
|||||||
m_dPrevOffsetX = OffsetX
|
m_dPrevOffsetX = OffsetX
|
||||||
m_dPrevOffsetY = OffsetY
|
m_dPrevOffsetY = OffsetY
|
||||||
m_SelIndex = OtherRefMode
|
m_SelIndex = OtherRefMode
|
||||||
|
m_SelRef = SelRef
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OtherRrefTabWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
Private Sub OtherRrefTabWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||||
@@ -36,8 +43,11 @@ Public Class OtherRefTabWD
|
|||||||
RefRawTxbl.Text = "Raw reference"
|
RefRawTxbl.Text = "Raw reference"
|
||||||
RefTabXTxbl.Text = "Position X"
|
RefTabXTxbl.Text = "Position X"
|
||||||
RefTabYTxbl.Text = "Position Y"
|
RefTabYTxbl.Text = "Position Y"
|
||||||
RefTabModeCmBx.ItemsSource = m_RawPartPage.m_OtherRefTabList
|
SelRefTxbl.Text = "Sel reference"
|
||||||
RefTabModeCmBx.SelectedIndex = m_RawPartPage.m_OtherRefTabPos
|
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
|
End Sub
|
||||||
|
|
||||||
Private Sub OtherRrefTabWD_Load(sender As Object, e As EventArgs) Handles Me.Loaded
|
Private Sub OtherRrefTabWD_Load(sender As Object, e As EventArgs) Handles Me.Loaded
|
||||||
@@ -45,9 +55,44 @@ Public Class OtherRefTabWD
|
|||||||
RefTabYTxBx.Text = m_sPosY
|
RefTabYTxBx.Text = m_sPosY
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub RefTabModeCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabModeCmBx.SelectionChanged
|
Private Sub RefTabCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabCmBx.SelectionChanged
|
||||||
m_RawPartPage.m_OtherRefTabPos = RefTabModeCmBx.SelectedIndex
|
If m_bModifX Or m_bModifY Then
|
||||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABPOS, m_RawPartPage.m_OtherRefTabPos.ToString, m_MainWindow.GetIniFile())
|
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()
|
m_RawPartPage.RefTabModeChange()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -66,6 +111,7 @@ Public Class OtherRefTabWD
|
|||||||
' errore, posizione fuori dalla tavola
|
' errore, posizione fuori dalla tavola
|
||||||
End If
|
End If
|
||||||
m_RawPartPage.m_OtherRefTabX = dX
|
m_RawPartPage.m_OtherRefTabX = dX
|
||||||
|
m_bModifX = True
|
||||||
m_RawPartPage.RefTabModeChange()
|
m_RawPartPage.RefTabModeChange()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
@@ -85,24 +131,99 @@ Public Class OtherRefTabWD
|
|||||||
' errore, posizione fuori dalla tavola
|
' errore, posizione fuori dalla tavola
|
||||||
End If
|
End If
|
||||||
m_RawPartPage.m_OtherRefTabY = dY
|
m_RawPartPage.m_OtherRefTabY = dY
|
||||||
|
m_bModifY = True
|
||||||
m_RawPartPage.RefTabModeChange()
|
m_RawPartPage.RefTabModeChange()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OkBtn_Click() Handles OkBtn.Click
|
Private Sub OkBtn_Click() Handles OkBtn.Click
|
||||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABX, DoubleToString(RefTabXTxBx.Text, 2), m_MainWindow.GetIniFile())
|
WritePrivateProfileString(S_RAWPART, K_CURRENTREFTAB, m_RawPartPage.m_CurrRefTab.ToString, m_MainWindow.GetIniFile())
|
||||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABY, DoubleToString(RefTabYTxBx.Text, 2), m_MainWindow.GetIniFile())
|
' Aggiorno il valore del riferimento correntemente modificato
|
||||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABPOS, m_RawPartPage.m_OtherRefTabPos.ToString, m_MainWindow.GetIniFile())
|
UpdateCurrOffset()
|
||||||
|
m_RawPartPage.RefTabModeChange()
|
||||||
Me.Close()
|
Me.Close()
|
||||||
End Sub
|
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
|
Private Sub ExitBtn_Click() Handles ExitBtn.Click
|
||||||
' riposiziono l'origine
|
' Recupero la prima selezione eseguita
|
||||||
m_RawPartPage.m_OtherRefTabX = m_sPosX
|
m_RawPartPage.m_CurrRefTab = m_SelRef
|
||||||
m_RawPartPage.m_OtherRefTabY = m_sPosY
|
Dim temp_RefTab As ReferenceTable = m_RawPartPage.m_OtherRefTabList(m_RawPartPage.m_CurrRefTab)
|
||||||
' ripristino il valore della combobox
|
' aggiorno i valori
|
||||||
m_RawPartPage.m_OtherRefTabPos = m_SelIndex
|
m_RawPartPage.m_OtherRefTabX = temp_RefTab.dOffsetX
|
||||||
|
m_RawPartPage.m_OtherRefTabY = temp_RefTab.dOffsetY
|
||||||
|
m_RawPartPage.m_OtherRefTabPos = temp_RefTab.nPos
|
||||||
m_RawPartPage.RefTabModeChange()
|
m_RawPartPage.RefTabModeChange()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
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
|
||||||
@@ -136,7 +136,9 @@
|
|||||||
Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
||||||
<ToggleButton Name="RemoveBtn" Grid.Column="1"
|
<ToggleButton Name="RemoveBtn" Grid.Column="1"
|
||||||
Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
||||||
<Button Name="CloseBtn" Grid.Row="1" Grid.ColumnSpan="2"
|
<Button Name="CloseBtn" Grid.Row="1"
|
||||||
|
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
|
<Button Name="RectangleBtn" Grid.Row="1" Grid.Column="1"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
@@ -174,7 +176,9 @@
|
|||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="5*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="3*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
@@ -195,7 +199,11 @@
|
|||||||
<Image Source="{DynamicResource RefTabImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
<Image Source="{DynamicResource RefTabImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button Name="OkBtn" Grid.Column="6" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
<Button Name="ManualModeBtn" Grid.Column="6" Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
||||||
|
<Image Source="{DynamicResource ManualImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Button Name="OkBtn" Grid.Column="8" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||||
<Image Source="{DynamicResource VImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
<Image Source="{DynamicResource VImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||||
VerticalAlignment="Center" />
|
VerticalAlignment="Center" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
Imports System.Globalization
|
Imports System.IO
|
||||||
Imports System.IO
|
Imports System.Reflection
|
||||||
Imports System.Windows.Media.Animation
|
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
Imports Microsoft.VisualBasic.Devices
|
|
||||||
|
|
||||||
Public Class RawPartPageUC
|
Public Class RawPartPageUC
|
||||||
|
|
||||||
|
' Dati generali CN
|
||||||
|
' Friend m_CN As CN_generico
|
||||||
|
|
||||||
' Riferimento alla MainWindow
|
' Riferimento alla MainWindow
|
||||||
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
Dim WithEvents m_CurrProjPage As CurrentProjectPageUC
|
Dim WithEvents m_CurrProjPage As CurrentProjectPageUC
|
||||||
@@ -81,13 +82,23 @@ Public Class RawPartPageUC
|
|||||||
' Costante raggio cerchietto
|
' Costante raggio cerchietto
|
||||||
Private Const RAD_CIRCLE As Double = 30
|
Private Const RAD_CIRCLE As Double = 30
|
||||||
|
|
||||||
|
Private m_nIdMinRedX As Integer = -1
|
||||||
|
Private m_SafetyZone_X = 0
|
||||||
|
Private m_nIdMinRedY As Integer = -1
|
||||||
|
Private m_SafetyZone_Y = 0
|
||||||
|
Private m_bSafetyZoneRight As Boolean = True
|
||||||
|
Private m_bSafetyZoneBottom As Boolean = True
|
||||||
|
Private m_bExistsSafetyZone As Boolean = False
|
||||||
|
|
||||||
' Riferimento grezzo
|
' Riferimento grezzo
|
||||||
Private m_bEnableOtherRefTab As Boolean = False
|
Private m_bEnableOtherRefTab As Boolean = False
|
||||||
Private m_bOtherRefTab As Boolean
|
Private m_bOtherRefTab As Boolean
|
||||||
Public m_OtherRefTabX As Double = 0
|
Public m_OtherRefTabX As Double = 0 ' offset riferimento corrente
|
||||||
Public m_OtherRefTabY As Double = 0
|
Public m_OtherRefTabY As Double = 0 ' offset riferimento corrente
|
||||||
Public m_OtherRefTabList(3) As String
|
Public m_OtherRefTabPos As Integer = 0 ' poisizione riferimento (Bottom-Left, ..)
|
||||||
Public m_OtherRefTabPos As Integer = 0
|
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_nOtherRefTabLay As Integer = GDB_ID.NULL
|
||||||
Private m_OtherRefTabPoint As Point3d
|
Private m_OtherRefTabPoint As Point3d
|
||||||
|
|
||||||
@@ -118,13 +129,20 @@ Public Class RawPartPageUC
|
|||||||
FROM_SAW = 7
|
FROM_SAW = 7
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
Private Enum OTHERREFMODE As Integer
|
Friend Enum OTHERREFMODE As Integer
|
||||||
BL = 0
|
BL = 0
|
||||||
BR = 1
|
BR = 1
|
||||||
TR = 2
|
TR = 2
|
||||||
TL = 3
|
TL = 3
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
|
Private Enum STATDRAG As Integer
|
||||||
|
OK = 0
|
||||||
|
X_ = 1
|
||||||
|
_Y = 2
|
||||||
|
XY = 3
|
||||||
|
End Enum
|
||||||
|
|
||||||
Private Sub RawPartPage_Initialized(sender As Object, e As EventArgs)
|
Private Sub RawPartPage_Initialized(sender As Object, e As EventArgs)
|
||||||
|
|
||||||
'Creazione della Page UserControl e relative impostazioni
|
'Creazione della Page UserControl e relative impostazioni
|
||||||
@@ -167,10 +185,10 @@ Public Class RawPartPageUC
|
|||||||
RawModeCmBx.ItemsSource = m_RawModeList
|
RawModeCmBx.ItemsSource = m_RawModeList
|
||||||
|
|
||||||
' Creo la lista dei riferimenti tavola
|
' Creo la lista dei riferimenti tavola
|
||||||
m_OtherRefTabList(OTHERREFMODE.BL) = "Bottom left"
|
m_OtherRefTabOrientationList(OTHERREFMODE.BL) = "Bottom left"
|
||||||
m_OtherRefTabList(OTHERREFMODE.BR) = "Bottom right"
|
m_OtherRefTabOrientationList(OTHERREFMODE.BR) = "Bottom right"
|
||||||
m_OtherRefTabList(OTHERREFMODE.TR) = "Top right"
|
m_OtherRefTabOrientationList(OTHERREFMODE.TR) = "Top right"
|
||||||
m_OtherRefTabList(OTHERREFMODE.TL) = "Top left"
|
m_OtherRefTabOrientationList(OTHERREFMODE.TL) = "Top left"
|
||||||
|
|
||||||
' lista per selezione RawModeDamaged
|
' lista per selezione RawModeDamaged
|
||||||
m_RawModeDamagedList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
|
m_RawModeDamagedList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
|
||||||
@@ -210,9 +228,11 @@ Public Class RawPartPageUC
|
|||||||
AddBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 14) 'Add - Aggiungi
|
AddBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 14) 'Add - Aggiungi
|
||||||
RemoveBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 15) 'Remove - Rimuovi
|
RemoveBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 15) 'Remove - Rimuovi
|
||||||
CloseBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 31) 'Close - Chiudi
|
CloseBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 31) 'Close - Chiudi
|
||||||
|
RectangleBtn.Content = "Rectangle"
|
||||||
ConfirmPhotoBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 24) 'Conferma
|
ConfirmPhotoBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 24) 'Conferma
|
||||||
|
|
||||||
OtherRefTabTxBl.Text = "New Ref On Tab"
|
OtherRefTabTxBl.Text = "New Ref On Tab"
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
|
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||||
@@ -319,6 +339,23 @@ Public Class RawPartPageUC
|
|||||||
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
|
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
|
||||||
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
|
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
|
||||||
KerfTxBx.Text = LenToString(dInvertKerf * m_RawKerf, 2)
|
KerfTxBx.Text = LenToString(dInvertKerf * m_RawKerf, 2)
|
||||||
|
|
||||||
|
' Recupero gli ID delle pareti che delimitano l'area Protetta (movimenti in OverZ)
|
||||||
|
Dim nIdBase As Integer = EgtGetBaseId("Base")
|
||||||
|
m_nIdMinRedX = EgtGetFirstNameInGroup(nIdBase, "MinRedX")
|
||||||
|
m_nIdMinRedY = EgtGetFirstNameInGroup(nIdBase, "MinRedY")
|
||||||
|
If m_nIdMinRedY <> GDB_ID.NULL And m_nIdMinRedY <> GDB_ID.NULL Then
|
||||||
|
m_bExistsSafetyZone = True
|
||||||
|
Dim ptMinX, ptMaxX As Point3d
|
||||||
|
EgtGetBBoxGlob(m_nIdMinRedX, GDB_BB.STANDARD, ptMinX, ptMaxX)
|
||||||
|
m_SafetyZone_X = ptMinX.x
|
||||||
|
Dim ptMinY, ptMaxY As Point3d
|
||||||
|
EgtGetBBoxGlob(m_nIdMinRedY, GDB_BB.STANDARD, ptMinY, ptMaxY)
|
||||||
|
m_SafetyZone_Y = ptMinY.y
|
||||||
|
End If
|
||||||
|
' Verifico se attivare la visualizzazione dell'area sicura (prendo la posizione corrente come posizione di partenza)
|
||||||
|
DrawSafetyZone(m_RawHeight, m_CurrentMachine.dHighPieceZ, New Vector3d(0, 0, 0))
|
||||||
|
|
||||||
' Creo layer temporaneo per crocette
|
' Creo layer temporaneo per crocette
|
||||||
m_nTempLay = EgtCreateGroup(GDB_ID.ROOT)
|
m_nTempLay = EgtCreateGroup(GDB_ID.ROOT)
|
||||||
EgtSetLevel(m_nTempLay, GDB_LV.TEMP)
|
EgtSetLevel(m_nTempLay, GDB_LV.TEMP)
|
||||||
@@ -328,6 +365,7 @@ Public Class RawPartPageUC
|
|||||||
RawModeCmBx.SelectedIndex = RAWMODE.BY_POINTS
|
RawModeCmBx.SelectedIndex = RAWMODE.BY_POINTS
|
||||||
PointsGpBx.Visibility = Windows.Visibility.Visible
|
PointsGpBx.Visibility = Windows.Visibility.Visible
|
||||||
CloseBtn.Visibility = Windows.Visibility.Hidden
|
CloseBtn.Visibility = Windows.Visibility.Hidden
|
||||||
|
RectangleBtn.Visibility = Windows.Visibility.Hidden
|
||||||
' Visualizzo crocette
|
' Visualizzo crocette
|
||||||
UpdateCircles()
|
UpdateCircles()
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
@@ -346,7 +384,6 @@ Public Class RawPartPageUC
|
|||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
End If
|
End If
|
||||||
'Imposto il materiale corrente nella combobox
|
'Imposto il materiale corrente nella combobox
|
||||||
'MaterialsCmbx.SelectedItem = m_CurrentMachine.CurrMat
|
|
||||||
Dim Item As Material
|
Dim Item As Material
|
||||||
For Each Item In MaterialsCmbx.Items
|
For Each Item In MaterialsCmbx.Items
|
||||||
If Not IsNothing(m_CurrentMachine.CurrMat) AndAlso Item.sName = m_CurrentMachine.CurrMat.sName Then
|
If Not IsNothing(m_CurrentMachine.CurrMat) AndAlso Item.sName = m_CurrentMachine.CurrMat.sName Then
|
||||||
@@ -366,9 +403,36 @@ Public Class RawPartPageUC
|
|||||||
OtherRefTabBtn.Visibility = Visibility.Visible
|
OtherRefTabBtn.Visibility = Visibility.Visible
|
||||||
End If
|
End If
|
||||||
m_bOtherRefTab = (GetPrivateProfileInt(S_RAWPART, K_OTHERREFTAB, 0, m_MainWindow.GetIniFile()) <> 0)
|
m_bOtherRefTab = (GetPrivateProfileInt(S_RAWPART, K_OTHERREFTAB, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||||
m_OtherRefTabX = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABX, 0, m_MainWindow.GetIniFile())
|
' Recupero il riferimento attivo
|
||||||
m_OtherRefTabY = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABY, 0, m_MainWindow.GetIniFile())
|
m_CurrRefTab = GetPrivateProfileInt(S_RAWPART, K_CURRENTREFTAB, 0, m_MainWindow.GetIniFile())
|
||||||
m_OtherRefTabPos = GetPrivateProfileInt(S_RAWPART, K_OTHERREFTABPOS, 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
|
' RefTabPosCmbx.SelectedIndex = m_OtherRefTabPos
|
||||||
OtherRefTabChBx.IsChecked = m_bOtherRefTab
|
OtherRefTabChBx.IsChecked = m_bOtherRefTab
|
||||||
' se riferimento tavola differente da quello atteso
|
' se riferimento tavola differente da quello atteso
|
||||||
@@ -387,6 +451,29 @@ Public Class RawPartPageUC
|
|||||||
' EgtDraw()
|
' EgtDraw()
|
||||||
End Sub
|
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
|
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
|
||||||
' Verifico di essere il gestore attivo
|
' Verifico di essere il gestore attivo
|
||||||
If Not m_bActive Then Return
|
If Not m_bActive Then Return
|
||||||
@@ -569,6 +656,19 @@ Public Class RawPartPageUC
|
|||||||
' Ricavo il punto corrente in coordinate mondo
|
' Ricavo il punto corrente in coordinate mondo
|
||||||
Dim ptCurr As Point3d
|
Dim ptCurr As Point3d
|
||||||
EgtUnProjectPoint(e.Location, ptCurr)
|
EgtUnProjectPoint(e.Location, ptCurr)
|
||||||
|
|
||||||
|
' Creo una copia del punto corrente
|
||||||
|
Dim ptTemp As New Point3d(ptCurr.x, ptCurr.y, ptCurr.z)
|
||||||
|
Select Case DrawSafetyZone(m_RawHeight, m_CurrentMachine.dHighPieceZ, ptCurr - m_ptPrev)
|
||||||
|
Case STATDRAG.X_
|
||||||
|
ptCurr.x = m_ptPrev.x
|
||||||
|
Case STATDRAG._Y
|
||||||
|
ptCurr.y = m_ptPrev.y
|
||||||
|
Case STATDRAG.XY
|
||||||
|
m_ptPrev = ptCurr
|
||||||
|
Return
|
||||||
|
End Select
|
||||||
|
|
||||||
' Eseguo modifica
|
' Eseguo modifica
|
||||||
Select Case m_ActiveRawMode
|
Select Case m_ActiveRawMode
|
||||||
Case RAWMODE.RECTANGLE
|
Case RAWMODE.RECTANGLE
|
||||||
@@ -579,7 +679,7 @@ Public Class RawPartPageUC
|
|||||||
ModifyDamaged(ptCurr)
|
ModifyDamaged(ptCurr)
|
||||||
End Select
|
End Select
|
||||||
' Aggiorno il punto precedente
|
' Aggiorno il punto precedente
|
||||||
m_ptPrev = ptCurr
|
m_ptPrev = ptTemp
|
||||||
' Resetto i ponticelli (per ora non sono in grado di muoverli assieme ai pezzi)
|
' Resetto i ponticelli (per ora non sono in grado di muoverli assieme ai pezzi)
|
||||||
ResetAllBRidges()
|
ResetAllBRidges()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -756,10 +856,19 @@ Public Class RawPartPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||||
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
' Non è possibile uscire con tastatura in corso
|
' Non è possibile uscire con tastatura in corso
|
||||||
If m_bProbingOn Then Return
|
If m_bProbingOn Then Return
|
||||||
' reimposto il comando OutLine
|
' reimposto il comando OutLine
|
||||||
OutlineBtn_Click(Nothing, Nothing)
|
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
|
' Se confermata uscita
|
||||||
If ExitRawPart(True) Then
|
If ExitRawPart(True) Then
|
||||||
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
|
||||||
@@ -921,6 +1030,7 @@ Public Class RawPartPageUC
|
|||||||
RawModeView()
|
RawModeView()
|
||||||
' Disattivo il bottone
|
' Disattivo il bottone
|
||||||
CloseBtn.IsEnabled = False
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
OkBtn.IsEnabled = False
|
OkBtn.IsEnabled = False
|
||||||
Case 3 ' Da Lama
|
Case 3 ' Da Lama
|
||||||
If Not m_MainWindow.m_CurrentMachine.bSaw Then ' Da fotografia
|
If Not m_MainWindow.m_CurrentMachine.bSaw Then ' Da fotografia
|
||||||
@@ -953,6 +1063,7 @@ Public Class RawPartPageUC
|
|||||||
RawModeView()
|
RawModeView()
|
||||||
' Disattivo il bottone
|
' Disattivo il bottone
|
||||||
CloseBtn.IsEnabled = False
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
OkBtn.IsEnabled = False
|
OkBtn.IsEnabled = False
|
||||||
Case 4 ' Da fotografia
|
Case 4 ' Da fotografia
|
||||||
' Se ero in modalità da laser
|
' Se ero in modalità da laser
|
||||||
@@ -1017,6 +1128,7 @@ Public Class RawPartPageUC
|
|||||||
AddBtn.SetValue(Grid.RowSpanProperty, 2)
|
AddBtn.SetValue(Grid.RowSpanProperty, 2)
|
||||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 2)
|
RemoveBtn.SetValue(Grid.RowSpanProperty, 2)
|
||||||
CloseBtn.Visibility = Windows.Visibility.Hidden
|
CloseBtn.Visibility = Windows.Visibility.Hidden
|
||||||
|
RectangleBtn.Visibility = Windows.Visibility.Hidden
|
||||||
' Disattivo bottoni zone rovinate e foto
|
' Disattivo bottoni zone rovinate e foto
|
||||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||||
@@ -1039,6 +1151,7 @@ Public Class RawPartPageUC
|
|||||||
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
CloseBtn.Visibility = Windows.Visibility.Visible
|
CloseBtn.Visibility = Windows.Visibility.Visible
|
||||||
|
RectangleBtn.Visibility = Windows.Visibility.Visible
|
||||||
' Disattivo bottoni zone rovinate e foto
|
' Disattivo bottoni zone rovinate e foto
|
||||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||||
@@ -1061,6 +1174,7 @@ Public Class RawPartPageUC
|
|||||||
AddBtn.SetValue(Grid.RowSpanProperty, 2)
|
AddBtn.SetValue(Grid.RowSpanProperty, 2)
|
||||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 2)
|
RemoveBtn.SetValue(Grid.RowSpanProperty, 2)
|
||||||
CloseBtn.Visibility = Windows.Visibility.Hidden
|
CloseBtn.Visibility = Windows.Visibility.Hidden
|
||||||
|
RectangleBtn.Visibility = Windows.Visibility.Hidden
|
||||||
' Attivo bottoni zone rovinate
|
' Attivo bottoni zone rovinate
|
||||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Visible
|
DamagedAreaGpBx.Visibility = Windows.Visibility.Visible
|
||||||
' Disattivo bottoni foto
|
' Disattivo bottoni foto
|
||||||
@@ -1100,6 +1214,7 @@ Public Class RawPartPageUC
|
|||||||
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
CloseBtn.Visibility = Windows.Visibility.Visible
|
CloseBtn.Visibility = Windows.Visibility.Visible
|
||||||
|
RectangleBtn.Visibility = Windows.Visibility.Visible
|
||||||
' Disattivo bottoni zone rovinate e foto
|
' Disattivo bottoni zone rovinate e foto
|
||||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||||
@@ -1121,6 +1236,7 @@ Public Class RawPartPageUC
|
|||||||
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
CloseBtn.Visibility = Windows.Visibility.Visible
|
CloseBtn.Visibility = Windows.Visibility.Visible
|
||||||
|
RectangleBtn.Visibility = Windows.Visibility.Visible
|
||||||
' Disattivo bottoni zone rovinate e foto
|
' Disattivo bottoni zone rovinate e foto
|
||||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||||
@@ -1142,6 +1258,7 @@ Public Class RawPartPageUC
|
|||||||
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||||
CloseBtn.Visibility = Windows.Visibility.Visible
|
CloseBtn.Visibility = Windows.Visibility.Visible
|
||||||
|
RectangleBtn.Visibility = Windows.Visibility.Visible
|
||||||
' Disattivo bottoni zone rovinate e foto
|
' Disattivo bottoni zone rovinate e foto
|
||||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||||
@@ -1198,6 +1315,9 @@ Public Class RawPartPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub AddBtn_Click(sender As Object, e As RoutedEventArgs) Handles AddBtn.Click
|
Private Sub AddBtn_Click(sender As Object, e As RoutedEventArgs) Handles AddBtn.Click
|
||||||
|
' disabilito i comandi di chiusura contorno
|
||||||
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
Select Case m_ActiveRawMode
|
Select Case m_ActiveRawMode
|
||||||
Case RAWMODE.RECTANGLE
|
Case RAWMODE.RECTANGLE
|
||||||
AddBtn.IsChecked = False
|
AddBtn.IsChecked = False
|
||||||
@@ -1246,9 +1366,15 @@ Public Class RawPartPageUC
|
|||||||
m_bptLast = True
|
m_bptLast = True
|
||||||
End If
|
End If
|
||||||
m_ptLast = ptAcquired
|
m_ptLast = ptAcquired
|
||||||
|
' Se ho almeno un segmento allora deve essere la diagonale
|
||||||
|
If m_CurveXKerfList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
If m_CurveXKerfList.Count > 1 Then
|
If m_CurveXKerfList.Count > 1 Then
|
||||||
OkBtn.IsEnabled = True
|
OkBtn.IsEnabled = True
|
||||||
CloseBtn.IsEnabled = True
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
End If
|
End If
|
||||||
AddBtn.IsChecked = False
|
AddBtn.IsChecked = False
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
@@ -1294,9 +1420,14 @@ Public Class RawPartPageUC
|
|||||||
m_bptLast = True
|
m_bptLast = True
|
||||||
End If
|
End If
|
||||||
m_ptLast = ptAcquired
|
m_ptLast = ptAcquired
|
||||||
|
If m_CurveXKerfList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
If m_CurveXKerfList.Count > 1 Then
|
If m_CurveXKerfList.Count > 1 Then
|
||||||
OkBtn.IsEnabled = True
|
OkBtn.IsEnabled = True
|
||||||
CloseBtn.IsEnabled = True
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
End If
|
End If
|
||||||
AddBtn.IsChecked = False
|
AddBtn.IsChecked = False
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
@@ -1352,9 +1483,14 @@ Public Class RawPartPageUC
|
|||||||
m_bptLast = True
|
m_bptLast = True
|
||||||
End If
|
End If
|
||||||
m_ptLast = ptAcquired
|
m_ptLast = ptAcquired
|
||||||
|
If m_CurveXDamagedAreaList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
If m_CurveXDamagedAreaList.Count > 1 Then
|
If m_CurveXDamagedAreaList.Count > 1 Then
|
||||||
OkBtn.IsEnabled = True
|
OkBtn.IsEnabled = True
|
||||||
CloseBtn.IsEnabled = True
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
End If
|
End If
|
||||||
AddBtn.IsChecked = False
|
AddBtn.IsChecked = False
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
@@ -1400,9 +1536,14 @@ Public Class RawPartPageUC
|
|||||||
m_bptLast = True
|
m_bptLast = True
|
||||||
End If
|
End If
|
||||||
m_ptLast = ptAcquired
|
m_ptLast = ptAcquired
|
||||||
|
If m_CurveXDamagedAreaList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
If m_CurveXDamagedAreaList.Count > 1 Then
|
If m_CurveXDamagedAreaList.Count > 1 Then
|
||||||
OkBtn.IsEnabled = True
|
OkBtn.IsEnabled = True
|
||||||
CloseBtn.IsEnabled = True
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
End If
|
End If
|
||||||
AddBtn.IsChecked = False
|
AddBtn.IsChecked = False
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
@@ -1487,6 +1628,17 @@ Public Class RawPartPageUC
|
|||||||
' Aggiorno ptLast
|
' Aggiorno ptLast
|
||||||
EgtEndPoint(m_CurveXKerfList(m_CurveXKerfList.Count - 1), m_ptLast)
|
EgtEndPoint(m_CurveXKerfList(m_CurveXKerfList.Count - 1), m_ptLast)
|
||||||
End If
|
End If
|
||||||
|
' reset dei comandi di chiusura
|
||||||
|
If m_CurveXKerfList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
|
If m_CurveXKerfList.Count > 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
m_bptLast = False
|
m_bptLast = False
|
||||||
End If
|
End If
|
||||||
@@ -1507,6 +1659,17 @@ Public Class RawPartPageUC
|
|||||||
' Aggiorno ptLast
|
' Aggiorno ptLast
|
||||||
EgtEndPoint(m_CurveXKerfList(m_CurveXKerfList.Count - 1), m_ptLast)
|
EgtEndPoint(m_CurveXKerfList(m_CurveXKerfList.Count - 1), m_ptLast)
|
||||||
End If
|
End If
|
||||||
|
' reset dei comandi di chiusura
|
||||||
|
If m_CurveXKerfList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
|
If m_CurveXKerfList.Count > 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
m_bptLast = False
|
m_bptLast = False
|
||||||
End If
|
End If
|
||||||
@@ -1537,6 +1700,17 @@ Public Class RawPartPageUC
|
|||||||
' Aggiorno ptLast
|
' Aggiorno ptLast
|
||||||
EgtEndPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
EgtEndPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
||||||
End If
|
End If
|
||||||
|
' reset dei comandi di chiusura
|
||||||
|
If m_CurveXDamagedAreaList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
|
If m_CurveXDamagedAreaList.Count > 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
m_bptLast = False
|
m_bptLast = False
|
||||||
End If
|
End If
|
||||||
@@ -1557,6 +1731,17 @@ Public Class RawPartPageUC
|
|||||||
' Aggiorno ptLast
|
' Aggiorno ptLast
|
||||||
EgtEndPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
EgtEndPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
||||||
End If
|
End If
|
||||||
|
' reset dei comandi di chiusura
|
||||||
|
If m_CurveXDamagedAreaList.Count = 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = True
|
||||||
|
End If
|
||||||
|
If m_CurveXDamagedAreaList.Count > 1 Then
|
||||||
|
OkBtn.IsEnabled = True
|
||||||
|
CloseBtn.IsEnabled = True
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
m_bptLast = False
|
m_bptLast = False
|
||||||
End If
|
End If
|
||||||
@@ -1939,6 +2124,8 @@ Public Class RawPartPageUC
|
|||||||
Dim dInvertKerf As Double = 1
|
Dim dInvertKerf As Double = 1
|
||||||
EgtGetInfo(EgtGetFirstRawPart(), KEY_INVERT_KERF, dInvertKerf)
|
EgtGetInfo(EgtGetFirstRawPart(), KEY_INVERT_KERF, dInvertKerf)
|
||||||
Dim dMaxLen = m_dTableLength - m_RawOffsX - m_RawKerf * dInvertKerf
|
Dim dMaxLen = m_dTableLength - m_RawOffsX - m_RawKerf * dInvertKerf
|
||||||
|
' Se è attiva l'area sicura allora devo ricalcolare la dimensione massima
|
||||||
|
|
||||||
If dLength <= dMaxLen Then
|
If dLength <= dMaxLen Then
|
||||||
m_CurrProjPage.ClearMessage()
|
m_CurrProjPage.ClearMessage()
|
||||||
If dKerf < 0 Then
|
If dKerf < 0 Then
|
||||||
@@ -1983,6 +2170,8 @@ Public Class RawPartPageUC
|
|||||||
If Not StringToLen(HeightTxBx.Text, dHeight) Then
|
If Not StringToLen(HeightTxBx.Text, dHeight) Then
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
' verifico se l'altezza del pezzo è maggiore di quella consentita in macchina
|
||||||
|
DrawSafetyZone(dHeight, m_CurrentMachine.dHighPieceZ, New Vector3d(0, 0, 0))
|
||||||
If dHeight > -EPS_ZERO Then
|
If dHeight > -EPS_ZERO Then
|
||||||
m_CurrProjPage.ClearMessage()
|
m_CurrProjPage.ClearMessage()
|
||||||
If Math.Abs(dHeight - m_RawHeight) > EPS_SMALL Then
|
If Math.Abs(dHeight - m_RawHeight) > EPS_SMALL Then
|
||||||
@@ -2052,6 +2241,91 @@ Public Class RawPartPageUC
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
' Funzione che si occupa di disegnare le pareti dell'area sicura e di gestire il grezzo (
|
||||||
|
Private Function DrawSafetyZone(dHeight As Double, dHighPieceZ As Double, vtMove As Vector3d) As STATDRAG
|
||||||
|
' Se non esiste allora esci senza eseguire controlli
|
||||||
|
If Not m_bExistsSafetyZone Then Return STATDRAG.OK
|
||||||
|
' Verifico se attivare la visualizzazione
|
||||||
|
Dim nStatus As GDB_ST = GDB_ST.OFF
|
||||||
|
If dHeight > dHighPieceZ Then
|
||||||
|
nStatus = GDB_ST.ON_
|
||||||
|
End If
|
||||||
|
' gestisco la visualizzazione delle pareti che delimitano l'area sicura
|
||||||
|
EgtSetStatus(m_nIdMinRedX, nStatus)
|
||||||
|
EgtSetStatus(m_nIdMinRedY, nStatus)
|
||||||
|
EgtDraw()
|
||||||
|
If nStatus = GDB_ST.ON_ Then
|
||||||
|
Return VerifyDimensionRawSafetyZone(vtMove)
|
||||||
|
End If
|
||||||
|
Return STATDRAG.OK
|
||||||
|
End Function
|
||||||
|
|
||||||
|
' Verifica che le dimensioni del grezzo siano conformi con l'area sicura (altrimenti provvedo a ridimensionare il grezzo)
|
||||||
|
Private Function VerifyDimensionRawSafetyZone(vtMove As Vector3d) As STATDRAG
|
||||||
|
Dim nRawSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
|
||||||
|
Dim ptMinRaw, ptMaxRaw As Point3d
|
||||||
|
EgtGetBBoxGlob(nRawSolidId, GDB_BB.STANDARD, ptMinRaw, ptMaxRaw)
|
||||||
|
' Dimensioni grezzo
|
||||||
|
Dim Len_X As Double = ptMaxRaw.x - ptMinRaw.x
|
||||||
|
Dim Wid_Y As Double = ptMaxRaw.y - ptMinRaw.y
|
||||||
|
' Posiztion SafetyZone: RIGHT-BOTTOM
|
||||||
|
Dim RedTab_X = m_dTableLength - Math.Abs(m_SafetyZone_X - m_ptTableMin.x)
|
||||||
|
Dim RedTab_Y = Math.Abs(m_SafetyZone_Y - m_ptTableMin.y)
|
||||||
|
If RedTab_X < Len_X Then
|
||||||
|
' riduco le dimensioni del grezzo
|
||||||
|
m_RawLength = RedTab_X - EPS_SMALL * 10
|
||||||
|
LengthTxBx.Text = LenToString(m_RawLength, 2)
|
||||||
|
UpdateRawPart()
|
||||||
|
End If
|
||||||
|
If RedTab_Y < Wid_Y Then
|
||||||
|
' riduco le dimensioni del grezzo
|
||||||
|
m_RawWidth = RedTab_Y - EPS_SMALL * 10
|
||||||
|
WidthTxBx.Text = LenToString(m_RawWidth, 2)
|
||||||
|
UpdateRawPart()
|
||||||
|
End If
|
||||||
|
Return VerifyRawInSafetyZone(vtMove)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
' Verifico che la posizione del grezzo sia conforme con la posizione di area sicura
|
||||||
|
Private Function VerifyRawInSafetyZone(vtMove As Vector3d) As STATDRAG
|
||||||
|
Dim nStat As STATDRAG = STATDRAG.OK
|
||||||
|
Dim bCalcBBoxRaw As Boolean = False
|
||||||
|
Dim nRawSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
|
||||||
|
Dim ptMinRaw, ptMaxRaw As Point3d
|
||||||
|
EgtGetBBoxGlob(nRawSolidId, GDB_BB.STANDARD, ptMinRaw, ptMaxRaw)
|
||||||
|
' Posiztion SafetyZone: RIGHT-BOTTOM
|
||||||
|
' Verifico che il grezzo sia all'interno di questi estremi
|
||||||
|
If ptMinRaw.x + vtMove.x < m_SafetyZone_X Then
|
||||||
|
' riposiziono il grezzo sulla parete
|
||||||
|
Dim ptRef As Point3d = New Point3d(m_SafetyZone_X - m_ptTableMin.x, ptMinRaw.y - m_ptTableMin.y, 0)
|
||||||
|
EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, ptRef, MCH_CR.BL)
|
||||||
|
' aggiorno il valore di Offset
|
||||||
|
m_RawOffsX = m_SafetyZone_X + m_RawKerf - m_ptTableMin.x
|
||||||
|
m_RawOffsY = ptMinRaw.y + m_RawKerf - m_ptTableMin.y
|
||||||
|
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
|
||||||
|
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
|
||||||
|
bCalcBBoxRaw = True
|
||||||
|
nStat = STATDRAG.X_
|
||||||
|
End If
|
||||||
|
' Ricalcolo la posizione del grezzo se nel processo sopra ho eseguito uno spostamento
|
||||||
|
If bCalcBBoxRaw Then EgtGetBBoxGlob(nRawSolidId, GDB_BB.STANDARD, ptMinRaw, ptMaxRaw)
|
||||||
|
If ptMaxRaw.y + vtMove.y > m_SafetyZone_Y Then
|
||||||
|
Dim dRawWidth As Double = ptMaxRaw.y - ptMinRaw.y
|
||||||
|
Dim ptRef As Point3d = New Point3d(ptMinRaw.x - m_ptTableMin.x, m_SafetyZone_Y - dRawWidth - m_ptTableMin.y, 0)
|
||||||
|
EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, ptRef, MCH_CR.BL)
|
||||||
|
m_RawOffsX = ptMinRaw.x + m_RawKerf - m_ptTableMin.x
|
||||||
|
m_RawOffsY = m_SafetyZone_Y - dRawWidth + m_RawKerf - m_ptTableMin.y
|
||||||
|
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
|
||||||
|
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
|
||||||
|
bCalcBBoxRaw = True
|
||||||
|
nStat = nStat + STATDRAG._Y
|
||||||
|
End If
|
||||||
|
EgtDraw()
|
||||||
|
' Se ho ricalcolato la posizione del BBox grezzo allora ritorno falso
|
||||||
|
Return nStat
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
#Region "OTHERREFTAB"
|
#Region "OTHERREFTAB"
|
||||||
|
|
||||||
Private Sub OtherRefTabChBx_Click(sender As Object, e As EventArgs) Handles OtherRefTabChBx.Click
|
Private Sub OtherRefTabChBx_Click(sender As Object, e As EventArgs) Handles OtherRefTabChBx.Click
|
||||||
@@ -2148,11 +2422,19 @@ Public Class RawPartPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OtherRefTabBtn_Click(sender As Object, e As EventArgs) Handles OtherRefTabBtn.Click
|
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
|
' 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()
|
OthWD.ShowDialog()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ManualModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualModeBtn.Click
|
||||||
|
' Imposto modalità manuale della macchina
|
||||||
|
Dim nResult As Short = m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
#End Region ' OtherRefTab
|
#End Region ' OtherRefTab
|
||||||
|
|
||||||
Private Sub KerfTxBx_EgtClosed(sender As Object, e As EventArgs) Handles KerfTxBx.EgtClosed
|
Private Sub KerfTxBx_EgtClosed(sender As Object, e As EventArgs) Handles KerfTxBx.EgtClosed
|
||||||
@@ -2272,6 +2554,8 @@ Public Class RawPartPageUC
|
|||||||
KerfTxBx.Text = LenToString(m_RawKerf, 2)
|
KerfTxBx.Text = LenToString(m_RawKerf, 2)
|
||||||
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 22) & " " & LenToString(dMaxKerf, 2)) 'Massimo kerf =
|
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 22) & " " & LenToString(dMaxKerf, 2)) 'Massimo kerf =
|
||||||
End If
|
End If
|
||||||
|
' Verifico se attivare la visualizzazione dell'area sicura (prendo la posizione corrente come posizione di partenza)
|
||||||
|
DrawSafetyZone(m_RawHeight, m_CurrentMachine.dHighPieceZ, New Vector3d(0, 0, 0))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub RawProbingBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawProbingBtn.Click
|
Private Sub RawProbingBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawProbingBtn.Click
|
||||||
@@ -2581,6 +2865,21 @@ Public Class RawPartPageUC
|
|||||||
EgtEmptyGroup(m_nTempLay)
|
EgtEmptyGroup(m_nTempLay)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub RectangleBtn_Click(sender As Object, e As RoutedEventArgs) Handles RectangleBtn.Click
|
||||||
|
Select Case m_ActiveRawMode
|
||||||
|
Case RAWMODE.DAMAGED_BY_LASER
|
||||||
|
CloseDamagedAreaByLaser_Rectangle()
|
||||||
|
Case RAWMODE.DAMAGED_BY_SAW
|
||||||
|
CloseDamagedAreaBySaw_Rectangle()
|
||||||
|
Case RAWMODE.FROM_SAW
|
||||||
|
CloseRawBySaw_Rectangle()
|
||||||
|
Case Else
|
||||||
|
CloseRawByLaser_Rectangle()
|
||||||
|
End Select
|
||||||
|
' Rimuovo eventuali crocette create acquisendo i punti nel disegno
|
||||||
|
EgtEmptyGroup(m_nTempLay)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub CloseRawByLaser()
|
Private Sub CloseRawByLaser()
|
||||||
' Verifico ci siano punti
|
' Verifico ci siano punti
|
||||||
If m_CurveXKerfList.Count() = 0 Then Return
|
If m_CurveXKerfList.Count() = 0 Then Return
|
||||||
@@ -2615,6 +2914,33 @@ Public Class RawPartPageUC
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
' Disattivo il bottone chiudi grezzo
|
' Disattivo il bottone chiudi grezzo
|
||||||
CloseBtn.IsEnabled = False
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub CloseRawByLaser_Rectangle()
|
||||||
|
' Verifico ci siano punti
|
||||||
|
If m_CurveXKerfList.Count() <> 1 Then Return
|
||||||
|
' Recupero punto iniziale prima e unica linea del grezzo
|
||||||
|
Dim ptStart As Point3d
|
||||||
|
EgtStartPoint(m_CurveXKerfList(0), ptStart)
|
||||||
|
' Recupero punto finale prima e unica linea del grezzo
|
||||||
|
Dim ptEnd As Point3d
|
||||||
|
EgtEndPoint(m_CurveXKerfList(0), ptEnd)
|
||||||
|
' Elimo il segmemnto usato come diagonale
|
||||||
|
EgtErase(m_CurveXKerfList(0))
|
||||||
|
' Pulisco lista entità del grezzo (che contiene la diagonale)
|
||||||
|
m_CurveXKerfList.Clear()
|
||||||
|
' Procedo a costruire il rettangolo
|
||||||
|
Dim pt_Temp As Point3d = New Point3d(ptEnd.x, ptStart.y, ptStart.z)
|
||||||
|
m_CurveXKerfList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptStart, pt_Temp))
|
||||||
|
m_CurveXKerfList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, pt_Temp, ptEnd))
|
||||||
|
pt_Temp = New Point3d(ptStart.x, ptEnd.y, ptStart.z)
|
||||||
|
m_CurveXKerfList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptEnd, pt_Temp))
|
||||||
|
' salvo come ultimo punto, l'ultimo calcolato
|
||||||
|
m_ptLast = pt_Temp
|
||||||
|
'CurveXKerfArray(3) = EgtCreateLine(m_CurrProjPage.m_nRawId, pt_Temp, ptStart)
|
||||||
|
'm_CurveXKerfList.Add(CurveXKerfArray(3))
|
||||||
|
CloseRawByLaser()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub CloseRawBySaw()
|
Private Sub CloseRawBySaw()
|
||||||
@@ -2651,6 +2977,33 @@ Public Class RawPartPageUC
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
' Disattivo il bottone chiudi grezzo
|
' Disattivo il bottone chiudi grezzo
|
||||||
CloseBtn.IsEnabled = False
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub CloseRawBySaw_Rectangle()
|
||||||
|
' Verifico ci siano punti
|
||||||
|
If m_CurveXKerfList.Count() <> 1 Then Return
|
||||||
|
' Recupero punto iniziale prima e unica linea del grezzo
|
||||||
|
Dim ptStart As Point3d
|
||||||
|
EgtStartPoint(m_CurveXKerfList(0), ptStart)
|
||||||
|
' Recupero punto finale prima e unica linea del grezzo
|
||||||
|
Dim ptEnd As Point3d
|
||||||
|
EgtEndPoint(m_CurveXKerfList(0), ptEnd)
|
||||||
|
' Elimo il segmemnto usato come diagonale
|
||||||
|
EgtErase(m_CurveXKerfList(0))
|
||||||
|
' Pulisco lista entità del grezzo (che contiene la diagonale)
|
||||||
|
m_CurveXKerfList.Clear()
|
||||||
|
' Procedo a costruire il rettangolo
|
||||||
|
Dim pt_Temp As Point3d = New Point3d(ptEnd.x, ptStart.y, ptStart.z)
|
||||||
|
m_CurveXKerfList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptStart, pt_Temp))
|
||||||
|
m_CurveXKerfList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, pt_Temp, ptEnd))
|
||||||
|
pt_Temp = New Point3d(ptStart.x, ptEnd.y, ptStart.z)
|
||||||
|
m_CurveXKerfList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptEnd, pt_Temp))
|
||||||
|
' salvo come ultimo punto, l'ultimo calcolato
|
||||||
|
m_ptLast = pt_Temp
|
||||||
|
'CurveXKerfArray(3) = EgtCreateLine(m_CurrProjPage.m_nRawId, pt_Temp, ptStart)
|
||||||
|
'm_CurveXKerfList.Add(CurveXKerfArray(3))
|
||||||
|
CloseRawBySaw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
#Region "Damaged Area"
|
#Region "Damaged Area"
|
||||||
@@ -2707,6 +3060,32 @@ Public Class RawPartPageUC
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
' Disattivo il bottone chiudi grezzo
|
' Disattivo il bottone chiudi grezzo
|
||||||
CloseBtn.IsEnabled = False
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub CloseDamagedAreaByLaser_Rectangle()
|
||||||
|
' Verifico che esista una sola linea
|
||||||
|
If m_CurveXDamagedAreaList.Count() <> 1 Then Return
|
||||||
|
' Recupero punto iniziale prima linea del grezzo
|
||||||
|
Dim ptStart As Point3d
|
||||||
|
EgtStartPoint(m_CurveXDamagedAreaList(0), ptStart)
|
||||||
|
' Recupero punto finale prima e unica linea del grezzo
|
||||||
|
Dim ptEnd As Point3d
|
||||||
|
EgtEndPoint(m_CurveXDamagedAreaList(0), ptEnd)
|
||||||
|
' Elimo il segmemnto usato come diagonale
|
||||||
|
EgtErase(m_CurveXDamagedAreaList(0))
|
||||||
|
' Pulisco lista entità del grezzo (che contiene la diagonale)
|
||||||
|
m_CurveXDamagedAreaList.Clear()
|
||||||
|
' Procedo a costruire il rettangolo
|
||||||
|
Dim pt_Temp As Point3d = New Point3d(ptEnd.x, ptStart.y, ptStart.z)
|
||||||
|
m_CurveXDamagedAreaList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptStart, pt_Temp))
|
||||||
|
m_CurveXDamagedAreaList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, pt_Temp, ptEnd))
|
||||||
|
pt_Temp = New Point3d(ptStart.x, ptEnd.y, ptStart.z)
|
||||||
|
m_CurveXDamagedAreaList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptEnd, pt_Temp))
|
||||||
|
' salvo come ultimo punto, l'ultimo calcolato
|
||||||
|
m_ptLast = pt_Temp
|
||||||
|
' procedo a costruire il rettangolo
|
||||||
|
CloseDamagedAreaByLaser()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub CloseDamagedAreaBySaw()
|
Private Sub CloseDamagedAreaBySaw()
|
||||||
@@ -2733,6 +3112,32 @@ Public Class RawPartPageUC
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
' Disattivo il bottone chiudi grezzo
|
' Disattivo il bottone chiudi grezzo
|
||||||
CloseBtn.IsEnabled = False
|
CloseBtn.IsEnabled = False
|
||||||
|
RectangleBtn.IsEnabled = False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub CloseDamagedAreaBySaw_Rectangle()
|
||||||
|
' Verifico che esista una sola linea
|
||||||
|
If m_CurveXDamagedAreaList.Count() <> 1 Then Return
|
||||||
|
' Recupero punto iniziale prima linea del grezzo
|
||||||
|
Dim ptStart As Point3d
|
||||||
|
EgtStartPoint(m_CurveXDamagedAreaList(0), ptStart)
|
||||||
|
' Recupero punto finale prima e unica linea del grezzo
|
||||||
|
Dim ptEnd As Point3d
|
||||||
|
EgtEndPoint(m_CurveXDamagedAreaList(0), ptEnd)
|
||||||
|
' Elimo il segmemnto usato come diagonale
|
||||||
|
EgtErase(m_CurveXDamagedAreaList(0))
|
||||||
|
' Pulisco lista entità del grezzo (che contiene la diagonale)
|
||||||
|
m_CurveXDamagedAreaList.Clear()
|
||||||
|
' Procedo a costruire il rettangolo
|
||||||
|
Dim pt_Temp As Point3d = New Point3d(ptEnd.x, ptStart.y, ptStart.z)
|
||||||
|
m_CurveXDamagedAreaList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptStart, pt_Temp))
|
||||||
|
m_CurveXDamagedAreaList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, pt_Temp, ptEnd))
|
||||||
|
pt_Temp = New Point3d(ptStart.x, ptEnd.y, ptStart.z)
|
||||||
|
m_CurveXDamagedAreaList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, ptEnd, pt_Temp))
|
||||||
|
' salvo come ultimo punto, l'ultimo calcolato
|
||||||
|
m_ptLast = pt_Temp
|
||||||
|
' procedo a costruire il rettangolo
|
||||||
|
CloseDamagedAreaBySaw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub RemoveDamagedArea()
|
Private Sub RemoveDamagedArea()
|
||||||
|
|||||||
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
@@ -36,6 +36,7 @@ Public Class SimulationPageUC
|
|||||||
Friend Sub ResetSimulation()
|
Friend Sub ResetSimulation()
|
||||||
' Termino la simulazione
|
' Termino la simulazione
|
||||||
SetStatus(MCH_SIM_ST.UI_STOP)
|
SetStatus(MCH_SIM_ST.UI_STOP)
|
||||||
|
System.Threading.Thread.Sleep(250)
|
||||||
EgtSimExit()
|
EgtSimExit()
|
||||||
' Salvo valore dello slider
|
' Salvo valore dello slider
|
||||||
Dim sVal As String = DoubleToString(SpeedSlider.Value, 1)
|
Dim sVal As String = DoubleToString(SpeedSlider.Value, 1)
|
||||||
@@ -86,6 +87,7 @@ Public Class SimulationPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub SimulationPage_Loaded(sender As Object, e As RoutedEventArgs)
|
Private Sub SimulationPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||||
|
EgtOutLog(" -- PREPARE SIMUL --")
|
||||||
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
|
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
|
||||||
Dim bOk As Boolean = True
|
Dim bOk As Boolean = True
|
||||||
' Elimino eventuale attrezzaggio da OmagOFFICE
|
' Elimino eventuale attrezzaggio da OmagOFFICE
|
||||||
@@ -110,9 +112,9 @@ Public Class SimulationPageUC
|
|||||||
If bOk Then m_CurrProjPage.SetOrderMachiningFlag()
|
If bOk Then m_CurrProjPage.SetOrderMachiningFlag()
|
||||||
Dim bModif As Boolean = TestAllMachiningsForStrict()
|
Dim bModif As Boolean = TestAllMachiningsForStrict()
|
||||||
If bModif Then
|
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
|
Else
|
||||||
m_CurrProjPage.SetInfoMessage(EgtMsg(90399)) 'Aggiornate tutte le lavorazioni
|
m_CurrProjPage.SetInfoMessage(EgtMsg(90399)) 'Aggiornate tutte le lavorazioni
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
' Costringo ad aggiornare UI
|
' Costringo ad aggiornare UI
|
||||||
@@ -130,7 +132,7 @@ Public Class SimulationPageUC
|
|||||||
' Se errore in setup, lo segnalo
|
' Se errore in setup, lo segnalo
|
||||||
If Not bSetup Then
|
If Not bSetup Then
|
||||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90322) & " " & sMissingTools) 'Mancano gli utensili : ...
|
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
|
ElseIf Not bOk Then
|
||||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90314)) 'Errore nella generazione del programma CN
|
m_CurrProjPage.SetErrorMessage(EgtMsg(90314)) 'Errore nella generazione del programma CN
|
||||||
End If
|
End If
|
||||||
@@ -170,7 +172,7 @@ Public Class SimulationPageUC
|
|||||||
' Nascondo eventuale contorno da foto
|
' Nascondo eventuale contorno da foto
|
||||||
m_CurrProjPage.ShowContour(False)
|
m_CurrProjPage.ShowContour(False)
|
||||||
' Nascondo eventuali testi con dati su aree
|
' Nascondo eventuali testi con dati su aree
|
||||||
m_CurrProjPage.SetAreasStatus( false)
|
m_CurrProjPage.SetAreasStatus(False)
|
||||||
' Recupero eventuale fase di ripartenza
|
' Recupero eventuale fase di ripartenza
|
||||||
m_nRestart = m_MainWindow.m_CurrentProjectPageUC.GetProjectNcRestart()
|
m_nRestart = m_MainWindow.m_CurrentProjectPageUC.GetProjectNcRestart()
|
||||||
' Imposto prima fase
|
' Imposto prima fase
|
||||||
@@ -206,6 +208,12 @@ Public Class SimulationPageUC
|
|||||||
Else
|
Else
|
||||||
PlayPauseImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Play.png", UriKind.Relative))
|
PlayPauseImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Play.png", UriKind.Relative))
|
||||||
End If
|
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)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub StepBtn_Click(sender As Object, e As RoutedEventArgs) Handles StepBtn.Click
|
Private Sub StepBtn_Click(sender As Object, e As RoutedEventArgs) Handles StepBtn.Click
|
||||||
@@ -477,7 +485,8 @@ Public Class SimulationPageUC
|
|||||||
|
|
||||||
Private Function LoadCurrTools() As Boolean
|
Private Function LoadCurrTools() As Boolean
|
||||||
' Se macchina senza cambio utensile automatico devo caricare gli utensili
|
' 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
|
' Imposto la lama corrente
|
||||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||||
If Not EgtLoadTool("H1", 1, sSaw) Then Return False
|
If Not EgtLoadTool("H1", 1, sSaw) Then Return False
|
||||||
|
|||||||
@@ -362,6 +362,10 @@ Module Utility
|
|||||||
EgtSetStatus(nPartId, GDB_ST.ON_)
|
EgtSetStatus(nPartId, GDB_ST.ON_)
|
||||||
nPartId = EgtGetNextPart(nPartId)
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
End While
|
End While
|
||||||
|
|
||||||
|
' Visualizzo gli elementi attivi in parcheggio
|
||||||
|
SelParkIndWD.UpdateViewOnParkInd(False)
|
||||||
|
|
||||||
' Se necessario, ripristino precedente impostazione modificato
|
' Se necessario, ripristino precedente impostazione modificato
|
||||||
If bOldEnMod Then EgtEnableModified()
|
If bOldEnMod Then EgtEnableModified()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -449,6 +453,27 @@ Module Utility
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
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
|
Public Class Language
|
||||||
|
|
||||||
|
|||||||
@@ -4,27 +4,77 @@
|
|||||||
TextBlock.FontFamily="{DynamicResource OmagCut_Font}"
|
TextBlock.FontFamily="{DynamicResource OmagCut_Font}"
|
||||||
Height="500" Width="500" ShowInTaskbar="False" Initialized="Window_Initialized" MinWidth="300" MinHeight="300">
|
Height="500" Width="500" ShowInTaskbar="False" Initialized="Window_Initialized" MinWidth="300" MinHeight="300">
|
||||||
|
|
||||||
<Grid Name="VeinMatchingGrid" Background="{DynamicResource OmagCut_Gray}">
|
<Grid Name="VeinMatchingGrid" Background="{DynamicResource OmagCut_Gray}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="91"/>
|
<ColumnDefinition Width="91"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
<DockPanel>
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical" VerticalAlignment="Top" DockPanel.Dock="Top">
|
||||||
<Button Name="NewBtn" Height="64"
|
<Button Name="NewBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="New"/>
|
Content="New"/>
|
||||||
<Button Name="ExportBtn" Height="64"
|
<Button Name="ExportBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="Export"/>
|
Content="Export"/>
|
||||||
<Button Name="AssemblyBtn" Height="64"
|
<Button Name="AssemblyBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="3D"/>
|
Content="3D"/>
|
||||||
<Button Name="ImportCurrProjBtn" Height="64"
|
<Button Name="ImportCurrProjBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="Import"/>
|
Content="Import"/>
|
||||||
</StackPanel>
|
<ToggleButton Name="MeasureBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayYellowIconToggleButton}">
|
||||||
|
<Image Source="{DynamicResource MeasureImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</ToggleButton>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Name="DistanceStkPnl" Orientation="Vertical" VerticalAlignment="Bottom" DockPanel.Dock="Bottom" Margin="10,0,0,0">
|
||||||
|
<!--Distanza-->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="MeasureLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="Dist=" HorizontalAlignment="Right" />
|
||||||
|
<TextBlock Name="MeasureValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
<!--Proiezione in X-->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="dXLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="dX=" HorizontalAlignment="Right"/>
|
||||||
|
<TextBlock Name="dXValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
<!--Proiezione in Y -->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="dYLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="dY=" HorizontalAlignment="Right"/>
|
||||||
|
<TextBlock Name="dYValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
<!--Proiezione in Z -->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="dZLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="dZ=" HorizontalAlignment="Right"/>
|
||||||
|
<TextBlock Name="dZValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
</StackPanel>
|
||||||
|
</DockPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Window>
|
</Window>
|
||||||
|
|||||||
@@ -31,7 +31,9 @@ Public Class VeinMatchingWindow
|
|||||||
VeinMatchingSceneHost.SetValue(Grid.ColumnProperty, 1)
|
VeinMatchingSceneHost.SetValue(Grid.ColumnProperty, 1)
|
||||||
Me.VeinMatchingGrid.Children.Add(VeinMatchingSceneHost)
|
Me.VeinMatchingGrid.Children.Add(VeinMatchingSceneHost)
|
||||||
' Per non farla visualizzare alla creazione
|
' Per non farla visualizzare alla creazione
|
||||||
Me.Left = 32000
|
If GetPrivateProfileInt(S_VEINMATCHING, K_VEINMA_ENABLE, 0, m_MainWindow.GetIniFile()) = 1 Then
|
||||||
|
Me.Left = 32000
|
||||||
|
End If
|
||||||
' Assegno messaggi
|
' Assegno messaggi
|
||||||
NewBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 3)
|
NewBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 3)
|
||||||
ExportBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 10)
|
ExportBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 10)
|
||||||
@@ -80,6 +82,8 @@ Public Class VeinMatchingWindow
|
|||||||
Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096, m_MainWindow.GetIniFile())
|
Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096, m_MainWindow.GetIniFile())
|
||||||
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
|
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
|
||||||
m_bFirst = False
|
m_bFirst = False
|
||||||
|
' nascondo la visulizzazione dei campi
|
||||||
|
DistanceStkPnl.Visibility = Visibility.Hidden
|
||||||
End If
|
End If
|
||||||
' inibisco selezione diretta da Scene
|
' inibisco selezione diretta da Scene
|
||||||
VeinMatchingScene.SetStatusNull()
|
VeinMatchingScene.SetStatusNull()
|
||||||
@@ -192,6 +196,25 @@ Public Class VeinMatchingWindow
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub OnShowDistanceVector(sender As Object, vtDist As Vector3d) Handles VeinMatchingScene.OnShowDistanceVector
|
||||||
|
Dim sMsg As String = DistToString(vtDist)
|
||||||
|
Dim sItemsMsg As String() = sMsg.Split(vbCrLf)
|
||||||
|
If sItemsMsg.Count > 1 Then
|
||||||
|
' stampo solo il valore di lunghezza
|
||||||
|
MeasureValTxBl.Text = sItemsMsg(0).Split("="c)(1)
|
||||||
|
sItemsMsg(1) = sItemsMsg(1).Trim
|
||||||
|
Dim sSubItemMsg As String() = sItemsMsg(1).Split(" "c)
|
||||||
|
If sSubItemMsg.Count > 1 Then
|
||||||
|
dXValTxBl.Text = sSubItemMsg(0).Split("="c)(1)
|
||||||
|
dYValTxBl.Text = sSubItemMsg(1).Split("="c)(1)
|
||||||
|
dZValTxBl.Text = sSubItemMsg(2).Split("="c)(1)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MeasureValTxBl.Text = sMsg
|
||||||
|
End If
|
||||||
|
DistanceStkPnl.Visibility = Visibility.Visible
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
|
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
|
||||||
VeinMatching.Clear()
|
VeinMatching.Clear()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -209,6 +232,25 @@ Public Class VeinMatchingWindow
|
|||||||
VeinMatching.LoadCurrPartFromProj()
|
VeinMatching.LoadCurrPartFromProj()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MeasureBtn_Checked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Checked
|
||||||
|
VeinMatchingScene.SetStatusGetDistance()
|
||||||
|
Dim ptRef1 As Point3d
|
||||||
|
If EgtGetTableRef(1, ptRef1) Then
|
||||||
|
EgtSetGridFrame(New Frame3d(ptRef1))
|
||||||
|
VeinMatchingScene.SetGridCursorPos(True)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MeasureBtn_Unchecked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Unchecked
|
||||||
|
VeinMatchingScene.ResetStatusGetDistance()
|
||||||
|
VeinMatchingScene.SetStatusNull()
|
||||||
|
MeasureValTxBl.Text = ""
|
||||||
|
dXValTxBl.Text = ""
|
||||||
|
dYValTxBl.Text = ""
|
||||||
|
dZValTxBl.Text = ""
|
||||||
|
DistanceStkPnl.Visibility = Visibility.Hidden
|
||||||
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Friend Module VeinMatching
|
Friend Module VeinMatching
|
||||||
@@ -1174,6 +1216,8 @@ Friend Module VeinMatching
|
|||||||
' Esporto il file come immagine
|
' Esporto il file come immagine
|
||||||
EgtSetCurrentContext(m_nVeinCtx)
|
EgtSetCurrentContext(m_nVeinCtx)
|
||||||
Dim bOk As Boolean = (EgtGetFileType(sFilePath) = FT.IMG)
|
Dim bOk As Boolean = (EgtGetFileType(sFilePath) = FT.IMG)
|
||||||
|
m_nImgWidth = GetPrivateProfileDouble(S_VEINMATCHING, K_VEINMA_WIDTH, m_nImgWidth, m_MainWindow.GetIniFile)
|
||||||
|
m_nImgHeight = GetPrivateProfileDouble(S_VEINMATCHING, K_VEINMA_HEIGHT, m_nImgHeight, m_MainWindow.GetIniFile)
|
||||||
bOk = bOk AndAlso EgtGetImage(EgtGetShowMode(), New Color3d(255, 255, 255), New Color3d(255, 255, 255),
|
bOk = bOk AndAlso EgtGetImage(EgtGetShowMode(), New Color3d(255, 255, 255), New Color3d(255, 255, 255),
|
||||||
m_nImgWidth, m_nImgHeight, sFilePath)
|
m_nImgWidth, m_nImgHeight, sFilePath)
|
||||||
' Ripristino il contesto originale
|
' Ripristino il contesto originale
|
||||||
|
|||||||