diff --git a/Icarus/Constants/ConstMachIni.vb b/Icarus/Constants/ConstMachIni.vb index 220b391..c744a55 100644 --- a/Icarus/Constants/ConstMachIni.vb +++ b/Icarus/Constants/ConstMachIni.vb @@ -9,6 +9,7 @@ Public Const S_MACH_PRINTING3D As String = "3dPrinting" Public Const K_SLICINGTYPE As String = "SlicingType" + Public Const K_NEWSLICINGTYPE As String = "NewSlicingType" Public Const K_SPEED_MIN As String = "SpeedMin" Public Const K_SPEED_MAX As String = "SpeedMax" Public Const K_MAX_HEIGHT As String = "HMax" diff --git a/Icarus/CurrMachiningPanel/CurrMachining.vb b/Icarus/CurrMachiningPanel/CurrMachining.vb index a5a27b5..38e7209 100644 --- a/Icarus/CurrMachiningPanel/CurrMachining.vb +++ b/Icarus/CurrMachiningPanel/CurrMachining.vb @@ -966,21 +966,15 @@ Public Class CurrComboMachiningParam Dim bReadFromPart As Boolean = False Select Case Type Case Params.SLICINGTYPE - Dim nSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_SLICINGTYPE, 0, CurrentMachine.sMachIniFile) - m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical")}) - If nSlicingType >= 1 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X")) - If nSlicingType >= 2 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y")) - If nSlicingType >= 3 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal")) - If nSlicingType >= 4 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR, "MultiPlanar")) - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, "MultiPlanar 45deg")) - End If - End If - End If - End If + Dim nNewSlicingType As Integer = CurrentMachine.GetSlicingType() + m_ValueList = New List(Of IdNameStruct) + If (nNewSlicingType And 1) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical")) + If (nNewSlicingType And 2) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X")) + If (nNewSlicingType And 4) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y")) + If (nNewSlicingType And 8) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal")) + If (nNewSlicingType And 16) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR, "MultiPlanar")) + If (nNewSlicingType And 32) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, "MultiPlanar 45deg")) + If (nNewSlicingType And 64) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_HORIZ, "MultiPlanar Horiz")) Dim nSelValue As Integer = 0 bReadFromPart = EgtGetInfo(nPartId, MAC_SLICINGTYPE, nSelValue) If Not bReadFromPart Then diff --git a/Icarus/MachiningDb/Machining.vb b/Icarus/MachiningDb/Machining.vb index d069420..25eecfc 100644 --- a/Icarus/MachiningDb/Machining.vb +++ b/Icarus/MachiningDb/Machining.vb @@ -16,6 +16,7 @@ Public Class Machining HORIZONTAL = 4 MULTIPLANAR = 5 MULTIPLANAR_DEG45 = 6 + MULTIPLANAR_HORIZ = 7 End Enum Public Enum MPAR_STRANDORDERS As Integer @@ -1518,21 +1519,15 @@ Public Class ComboMachiningParam Else Select Case Type Case Params.SLICINGTYPE - Dim nSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_SLICINGTYPE, 0, CurrentMachine.sMachIniFile) - m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical")}) - If nSlicingType >= 1 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X")) - If nSlicingType >= 2 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y")) - If nSlicingType >= 3 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal")) - If nSlicingType >= 4 Then - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR, "MultiPlanar")) - m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, "MultiPlanar 45deg")) - End If - End If - End If - End If + Dim nNewSlicingType As Integer = CurrentMachine.GetSlicingType() + m_ValueList = New List(Of IdNameStruct) + If (nNewSlicingType And 1) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical")) + If (nNewSlicingType And 2) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X")) + If (nNewSlicingType And 4) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y")) + If (nNewSlicingType And 8) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal")) + If (nNewSlicingType And 16) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR, "MultiPlanar")) + If (nNewSlicingType And 32) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, "MultiPlanar 45deg")) + If (nNewSlicingType And 64) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_HORIZ, "MultiPlanar Horiz")) Dim nSelValue As Double = ReadMachiningParamDouble(nIndex, MAC_SLICINGTYPE, -1) If nSelValue = -1 Then Dim dSlicing45 As Double = 0 diff --git a/Icarus/My Project/AssemblyInfo.vb b/Icarus/My Project/AssemblyInfo.vb index 62bd2f3..09f171d 100644 --- a/Icarus/My Project/AssemblyInfo.vb +++ b/Icarus/My Project/AssemblyInfo.vb @@ -70,5 +70,5 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + + diff --git a/Icarus/Utility/CurrentMachine.vb b/Icarus/Utility/CurrentMachine.vb index 7f397e4..4509dfa 100644 --- a/Icarus/Utility/CurrentMachine.vb +++ b/Icarus/Utility/CurrentMachine.vb @@ -219,7 +219,7 @@ Public Module CurrentMachine sExtrusionType = S_45DEGY Case Machining.MPAR_SLICINGTYPE.HORIZONTAL sExtrusionType = S_HORIZONTAL - Case Machining.MPAR_SLICINGTYPE.MULTIPLANAR, Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45 + Case Machining.MPAR_SLICINGTYPE.MULTIPLANAR, Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, Machining.MPAR_SLICINGTYPE.MULTIPLANAR_HORIZ sExtrusionType = S_MULTIPLANAR End Select Dim dExtrXMax = GetPrivateProfileDouble(sExtrusionType, K_MAXX, 0, m_sMachDataIniFile) @@ -314,6 +314,24 @@ Public Module CurrentMachine Return WritePrivateProfileString(lpAppName, lpKeyName, EgwCrypto.PowerEncryptString(lpString, m_Salt), If(Not String.IsNullOrWhiteSpace(sFilePath), sFilePath, m_sMaterialFilePath)) End Function + Friend Function GetSlicingType() As Integer + Dim nNewSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_NEWSLICINGTYPE, 0, sMachIniFile) + If nNewSlicingType = 0 Then + Dim nSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_SLICINGTYPE, 0, sMachIniFile) + nNewSlicingType = 1 + If nSlicingType = 1 Then + nNewSlicingType = 3 + ElseIf nSlicingType = 2 Then + nNewSlicingType = 7 + ElseIf nSlicingType = 3 Then + nNewSlicingType = 15 + ElseIf nSlicingType = 4 Then + nNewSlicingType = 21 + End If + End If + Return nNewSlicingType + End Function + #End Region 'Methods End Module