- Gestita slicing direction con anche valore horizontal

- Gestite machine sia con che senza direzione di stampa orizzontale
- bloccata interfaccia durante edit CurrMachining
This commit is contained in:
Emmanuele Sassi
2022-10-24 16:19:27 +02:00
parent 82fd57d838
commit 1d7e26f18d
7 changed files with 81 additions and 28 deletions
+1
View File
@@ -69,6 +69,7 @@
Public Const MAC_GUID = "GUID"
Public Const MAC_NAME = "Name"
Public Const MAC_SLICING45 = "Slicing45"
Public Const MAC_SLICINGTYPE = "SlicingType"
Public Const MAC_SPIRALVASE = "SpiralVase"
Public Const MAC_STRANDH = "StrandH"
Public Const MAC_STRANDW = "StrandW"
+1
View File
@@ -32,6 +32,7 @@
Public Const K_MACH_EXITSCRIPT As String = "ExitScript"
Public Const S_MACH_PRINTING3D As String = "3dPrinting"
Public Const K_HORIZONTAL_PRINT As String = "HorizontalPrint"
Public Const K_SPEED_MIN As String = "SpeedMin"
Public Const K_SPEED_MAX As String = "SpeedMax"
+34 -15
View File
@@ -16,11 +16,21 @@ Public Class CurrMachining
End Set
End Property
Public ReadOnly Property bCurrSlicing45 As Boolean
Public ReadOnly Property dCurrSlicingType As Machining.MPAR_SLICINGTYPE
Get
Dim Slicing45 As CurrCheckMachiningParam = m_CathegoryList.FirstOrDefault(Function(x) x.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(y) y.Type = MachiningParam.Params.SLICING45)
Dim SlicingType As CurrComboMachiningParam = m_CathegoryList.FirstOrDefault(Function(x) x.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(y) y.Type = MachiningParam.Params.SLICINGTYPE)
If Not IsNothing(SlicingType) Then
Return SlicingType.SelValue.Id
Else
Return 0
End If
End Get
End Property
Public ReadOnly Property sCurrSlicingType As String
Get
Dim Slicing45 As CurrComboMachiningParam = m_CathegoryList.FirstOrDefault(Function(x) x.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(y) y.Type = MachiningParam.Params.SLICINGTYPE)
If Not IsNothing(Slicing45) Then
Return Slicing45.bValue
Return Slicing45.SelValue.Name
Else
Return False
End If
@@ -143,7 +153,7 @@ Public Class CurrMachining
Case NameOf(sender.dValue), NameOf(sender.sValue), NameOf(sender.bValue), NameOf(sender.SelValue)
m_bIsModified = m_CathegoryList.Any(Function(x) x.MachiningParamList.Any(Function(y) y.bIsModified))
NotifyPropertyChanged(NameOf(ghName))
NotifyPropertyChanged(NameOf(bCurrSlicing45))
NotifyPropertyChanged(NameOf(sCurrSlicingType))
NotifyPropertyChanged(NameOf(sCurrStrandH))
NotifyPropertyChanged(NameOf(sCurrStrandW))
NotifyPropertyChanged(NameOf(sCurrStrandCount))
@@ -172,7 +182,7 @@ Public Class CurrMachiningCathegory
Select Case m_Type
Case Cathegories.GENERAL
m_sName = "General"
m_MachiningParamList = New List(Of MachiningParam)({New CurrCheckMachiningParam(MachiningParam.Params.SLICING45, nPartId, nIndex, bForceFromDb),
m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.SLICINGTYPE, nPartId, nIndex, bForceFromDb),
New CurrCheckMachiningParam(MachiningParam.Params.SPIRALVASE, nPartId, nIndex, bForceFromDb),
New CurrNumericMachiningParam(MachiningParam.Params.STRANDH, nPartId, nIndex, bForceFromDb),
New CurrNumericMachiningParam(MachiningParam.Params.STRANDW, nPartId, nIndex, bForceFromDb),
@@ -652,6 +662,21 @@ Public Class CurrComboMachiningParam
MyBase.New(Type, nIndex)
Dim bReadFromPart As Boolean = False
Select Case Type
Case Params.SLICINGTYPE
Dim nHorizontalPrint As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_HORIZONTAL_PRINT, 0, CurrentMachine.sMachIniFile)
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical"),
New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal")})
If nHorizontalPrint > 0 Then
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45°"))
End If
Dim nSelValue As Integer = 0
bReadFromPart = EgtGetInfo(nPartId, MAC_SLICINGTYPE, nSelValue)
If Not bReadFromPart Then
Dim nSlicing45 As Integer = 0
bReadFromPart = EgtGetInfo(nPartId, MAC_SLICING45, nSlicing45)
nSelValue = If(nSlicing45 = 0, Machining.MPAR_SLICINGTYPE.VERTICAL, Machining.MPAR_SLICINGTYPE.DEG45)
End If
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = nSelValue)
Case Params.STRANDORDER
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_STRANDORDERS.OUTTOIN, "From Outside To Inside"),
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
@@ -710,14 +735,10 @@ Public Class CurrComboMachiningParam
If nIndex > 0 Then
Dim DbMachining As Machining = Map.refMachiningDbVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex)
Select Case Type
Case Params.STRANDORDER, Params.DIRECTION
Case Params.SLICINGTYPE, Params.STRANDORDER, Params.DIRECTION
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.LINKTYPE, Params.LEADIN, Params.LEADOUT
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
'Case Params.LEADIN
' m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LEADIN).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
'Case Params.LEADOUT
' m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LEADOUT).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.AUXSOLIDSINFILL, Params.AUXSOLIDSSTRANDORDER, Params.AUXSOLIDSLINKTYPE
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.AUX_SOLID).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
End Select
@@ -730,6 +751,8 @@ Public Class CurrComboMachiningParam
Friend Overrides Sub WriteParamInPart(nPartId As Integer)
Select Case Type
Case Params.SLICINGTYPE
EgtSetInfo(nPartId, MAC_SLICINGTYPE, m_SelValue.Id)
Case Params.STRANDORDER
EgtSetInfo(nPartId, MAC_STRANDORDER, m_SelValue.Id)
Case Params.DIRECTION
@@ -817,8 +840,6 @@ Public Class CurrCheckMachiningParam
MyBase.New(Type, nIndex)
Dim bReadFromPart As Boolean = False
Select Case Type
Case Params.SLICING45
bReadFromPart = EgtGetInfo(nPartId, MAC_SLICING45, m_bValue)
Case Params.SPIRALVASE
bReadFromPart = EgtGetInfo(nPartId, MAC_SPIRALVASE, m_bValue)
Case Params.RIBSLINK
@@ -836,7 +857,7 @@ Public Class CurrCheckMachiningParam
If nIndex > 0 Then
Dim DbMachining As Machining = Map.refMachiningDbVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex)
Select Case Type
Case Params.SLICING45, Params.SPIRALVASE
Case Params.SPIRALVASE
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.RIBSLINK, Params.RIBSINVERTORDER, Params.RIBSINVERTDIRECTION, Params.RIBSLEADININVERT, Params.RIBSLEADOUTINVERT
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.RIBS).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
@@ -850,8 +871,6 @@ Public Class CurrCheckMachiningParam
Friend Overrides Sub WriteParamInPart(nPartId As Integer)
Select Case Type
Case Params.SLICING45
EgtSetInfo(nPartId, MAC_SLICING45, If(m_bValue, 1, 0))
Case Params.SPIRALVASE
EgtSetInfo(nPartId, MAC_SPIRALVASE, If(m_bValue, 1, 0))
Case Params.RIBSLINK
+26 -8
View File
@@ -6,6 +6,12 @@ Imports EgtWPFLib5
Public Class Machining
Inherits VMBase
Public Enum MPAR_SLICINGTYPE As Integer
VERTICAL = 1
HORIZONTAL = 2
DEG45 = 3
End Enum
Public Enum MPAR_STRANDORDERS As Integer
OUTTOIN = 1
INTOOUT = 2
@@ -279,7 +285,7 @@ Public Class MachiningCathegory
Select Case m_Type
Case Cathegories.GENERAL
m_sName = "General"
m_MachiningParamList = New List(Of MachiningParam)({New CheckMachiningParam(MachiningParam.Params.SLICING45, nIndex),
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.SLICINGTYPE, nIndex),
New CheckMachiningParam(MachiningParam.Params.SPIRALVASE, nIndex),
New NumericMachiningParam(MachiningParam.Params.STRANDH, nIndex),
New NumericMachiningParam(MachiningParam.Params.STRANDW, nIndex),
@@ -380,7 +386,7 @@ Public MustInherit Class MachiningParam
Public Enum Params As Integer
NAME = 2
SLICING45 = 3
SLICINGTYPE = 3
STRANDH = 4
STRANDW = 5
STRANDCOUNT = 6
@@ -455,8 +461,8 @@ Public MustInherit Class MachiningParam
Sub New(Type As Params)
m_Type = Type
Select Case m_Type
Case Params.SLICING45
m_sName = "Slicing 45°"
Case Params.SLICINGTYPE
m_sName = "Slicing direction"
Case Params.STRANDH
m_sName = "Strand Height"
Case Params.STRANDW
@@ -935,6 +941,20 @@ Public Class ComboMachiningParam
m_SelValue = Nothing
Else
Select Case Type
Case Params.SLICINGTYPE
Dim nHorizontalPrint As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_HORIZONTAL_PRINT, 0, CurrentMachine.sMachIniFile)
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical"),
New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal")})
If nHorizontalPrint > 0 Then
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45°"))
End If
Dim nSelValue As Double = ReadMachiningParamDouble(nIndex, MAC_SLICINGTYPE, -1)
If nSelValue = -1 Then
Dim dSlicing45 As Double = 0
dSlicing45 = ReadMachiningParamDouble(nIndex, MAC_SLICING45, 0)
nSelValue = If(dSlicing45 = 0, Machining.MPAR_SLICINGTYPE.VERTICAL, Machining.MPAR_SLICINGTYPE.DEG45)
End If
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = nSelValue)
Case Params.STRANDORDER
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_STRANDORDERS.OUTTOIN, "From Outside To Inside"),
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
@@ -979,6 +999,8 @@ Public Class ComboMachiningParam
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Select Case Type
Case Params.SLICINGTYPE
WriteMachiningParam(nIndex, MAC_SLICING45, m_SelValue.Id)
Case Params.STRANDORDER
WriteMachiningParam(nIndex, MAC_STRANDORDER, m_SelValue.Id)
Case Params.DIRECTION
@@ -1042,8 +1064,6 @@ Public Class CheckMachiningParam
m_bValue = 0
Else
Select Case Type
Case Params.SLICING45
m_bValue = ReadMachiningParamDouble(nIndex, MAC_SLICING45, 0)
Case Params.SPIRALVASE
m_bValue = ReadMachiningParamDouble(nIndex, MAC_SPIRALVASE, 0)
Case Params.RIBSLINK
@@ -1063,8 +1083,6 @@ Public Class CheckMachiningParam
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Select Case Type
Case Params.SLICING45
WriteMachiningParam(nIndex, MAC_SLICING45, If(m_bValue, 1, 0))
Case Params.SPIRALVASE
WriteMachiningParam(nIndex, MAC_SPIRALVASE, If(m_bValue, 1, 0))
Case Params.RIBSLINK
+2 -2
View File
@@ -123,7 +123,7 @@ Public Class SliderManagerVM
Get
Dim dH As Double = 0
If Not IsNothing(Map.refTopPanelVM.CurrMachining) Then
If Map.refTopPanelVM.CurrMachining.bCurrSlicing45 Then
If Map.refTopPanelVM.CurrMachining.dCurrSlicingType = Machining.MPAR_SLICINGTYPE.DEG45 Then
Return m_nLayerIndex
Else
Return m_nLayerIndex & " (" & DoubleToString(m_nLayerIndex * Map.refTopPanelVM.CurrMachining.dCurrStrandH, 0) & "mm)"
@@ -138,7 +138,7 @@ Public Class SliderManagerVM
Get
Dim dH As Double = 0
If Not IsNothing(Map.refTopPanelVM.CurrMachining) Then
If Map.refTopPanelVM.CurrMachining.bCurrSlicing45 Then
If Map.refTopPanelVM.CurrMachining.dCurrSlicingType = Machining.MPAR_SLICINGTYPE.DEG45 Then
Return m_nLayerIndex_Maximum
Else
Return m_nLayerIndex_Maximum & " (" & DoubleToString(m_nLayerIndex_Maximum * Map.refTopPanelVM.CurrMachining.dCurrStrandH, 0) & "mm)"
+2 -2
View File
@@ -159,10 +159,10 @@
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="45°:"
<TextBlock Text="Slicing direction:"
HorizontalAlignment="Right"/>
<TextBlock Grid.Column="1"
Text="{Binding CurrMachining.bCurrSlicing45}"
Text="{Binding CurrMachining.sCurrSlicingType}"
HorizontalAlignment="Left"/>
<TextBlock Grid.Column="2"
Text="StrandH:"
+15 -1
View File
@@ -486,11 +486,25 @@ Public Class TopPanelVM
End Function
Private Sub InitCURRMACHINING()
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
Map.refProjManagerVM.SetProjCmdIsEnabled(False)
Map.refTopPanelVM.SetTopPanelIsEnabled(False)
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(False)
Map.refSliceManagerVM.SetButtonsIsEnabled(False)
Map.refSliderManagerVM.SetLayerIndexIsEnabled(False)
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(False)
' imposto pagina
Map.refRightPanelVM.SetSelPanel(RightPanelVM.Panels.CURRPRINTPARAM)
End Sub
Private Function ExitCURRMACHINING()
' riabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
Map.refProjManagerVM.SetProjCmdIsEnabled(True)
Map.refTopPanelVM.SetTopPanelIsEnabled(True)
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(True)
Map.refSliceManagerVM.SetButtonsIsEnabled(True)
Map.refSliderManagerVM.SetLayerIndexIsEnabled(True)
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(True)
Return True
End Function