diff --git a/Icarus/AboutBoxWindow/AboutBoxV.xaml.vb b/Icarus/AboutBoxWindow/AboutBoxV.xaml.vb index 0d57a6a..d764385 100644 --- a/Icarus/AboutBoxWindow/AboutBoxV.xaml.vb +++ b/Icarus/AboutBoxWindow/AboutBoxV.xaml.vb @@ -18,12 +18,24 @@ Public Class AboutBoxV Dim sLeftDays As String = "" Dim nLeftDays As Integer If EgtGetKeyLeftDays(nLeftDays) AndAlso nLeftDays < 500 Then sLeftDays = " (" & nLeftDays.ToString() & ")" + Dim sAssStatus As String = " discontinued" + Dim nAssLeftDays As Integer + If EgtGetKeyAssLeftDays( nAssLeftDays) And nAssLeftDays >= 0 Then + If nAssLeftDays > 30 then + sAssStatus = "expires within " & nAssLeftDays.ToString() & " days" + Else If nAssLeftDays > 0 then + sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days" + Else + sAssStatus = "to be renewed by today" + End If + End If sInfo = If(EgtIsDebug(), "*** Debug Libraries ***" & Environment.NewLine, "") sInfo &= "User " & Environment.MachineName & "\" & Environment.UserName & " Inst" & Map.refMainWindowVM.MainWindowM.nInstance.ToString() & " Ulv" & Map.refMainWindowVM.MainWindowM.nUserLevel.ToString() & " Dbg" & Map.refMainWindowVM.MainWindowM.DebugLevel().ToString() & Environment.NewLine sInfo &= sKey & " - " & sKlev & " - " & sOpts & sLeftDays & Environment.NewLine + sInfo &= "Maintenance plan " & sAssStatus & Environment.NewLine sInfo &= "DataRoot " & Map.refMainWindowVM.MainWindowM.sDataRoot & Environment.NewLine sInfo &= "MachinesRoot " & Map.refMainWindowVM.MainWindowM.sMachinesRoot & Environment.NewLine Dim sOpSys As String = String.Empty diff --git a/Icarus/Constants/Const3dPrint.vb b/Icarus/Constants/Const3dPrint.vb index a8ec31a..6410c44 100644 --- a/Icarus/Constants/Const3dPrint.vb +++ b/Icarus/Constants/Const3dPrint.vb @@ -68,6 +68,7 @@ Public Const MAT_KW = "KW" Public Const MAT_KZ = "KZ" Public Const MAT_KN = "KN" + Public Const MAT_TDRYER = "TDRYER" Public Const MAT_ORIG = "Orig" ' parametri Lavorazione @@ -93,6 +94,7 @@ Public Const MAC_INNERSHELLWIDTH = "InnerStrandW" Public Const MAC_OFFSETLEADPOINT = "OffsetLeadPoint" Public Const MAC_LEADIN = "LeadIn" + Public Const MAC_SINGLELEADIN = "SingleLeadIn" Public Const MAC_LEADINTANGDIST = "LeadInTangDist" Public Const MAC_LEADINORTHODIST = "LeadInOrthoDist" Public Const MAC_LEADOUT = "LeadOut" @@ -102,6 +104,7 @@ Public Const MAC_COASTINGFEEDPU = "CoastingFeedPu" Public Const MAC_WIPELEN = "WipeLen" Public Const MAC_WIPEFEEDPU = "WipeFeedPu" + Public Const MAC_SPIRALVASELEN = "SpiralVaseLen" Public Const MAC_WIPEDIR = "WipeDir" Public Const MAC_FLOORCOUNT = "FloorCount" Public Const MAC_G0FEED = "G0Feed" @@ -111,11 +114,16 @@ Public Const MAC_POSTFLOWDELAY = "PostFlowDelay" Public Const MAC_SCREWBACK = "ScrewBack" Public Const MAC_SLICINGHEIGHT = "SlicingHeight" + Public Const MAC_MAXSLICESNUMBER = "MaxSlicesNumber" Public Const MAC_RIBSSTRANDWIDTH = "RibsStrandW" Public Const MAC_RIBSTYPE = "RibsType" Public Const MAC_RIBSOVERLAP = "RibsOverlap" + Public Const MAC_RIBSSTRANDOVERLAP = "RibsStrandOverlap" Public Const MAC_RIBSSTRANDCOUNT = "RibsStrandCount" Public Const MAC_RIBSLINK = "RibsLink" + Public Const MAC_RIBSLINKFILLET = "RibsLinkFillet" + Public Const MAC_RIBSMERGEWITHSHELL = "RibsMergeWithShell" + Public Const MAC_RIBSINVERTMERGEDSHELLMAINLINK = "InvertRibsMergedShellMainLink" Public Const MAC_RIBSINVERTORDER = "RibsInvertOrder" Public Const MAC_RIBSINVERTDIRECTION = "RibsInvertDirection" Public Const MAC_RIBSINVERTSTRANDORDER = "RibsInvertStrandOrder" @@ -126,6 +134,7 @@ Public Const MAC_RIBSLEADOUTCOASTING = "RibsLeadOutCoasting" Public Const MAC_RIBSLEADOUTWIPE = "RibsLeadOutWipe" Public Const MAC_RIBSLEADOUTWIPEDIR = "RibsLeadOutWipeDir" + Public Const MAC_RIBSLEADFILLET = "RibsLeadFillet" Public Const MAC_RIBSLIMITUNBOUNDEDWITHSOLID = "LimitUnboundedRibsWithSolid" Public Const MAC_SHELLNBRDIFFERENCE = "ShellNbrDifference" Public Const MAC_SHELLNBRCOASTING = "ShellNbrCoasting" diff --git a/Icarus/Constants/ConstGen.vb b/Icarus/Constants/ConstGen.vb index 302cb0c..ee8020e 100644 --- a/Icarus/Constants/ConstGen.vb +++ b/Icarus/Constants/ConstGen.vb @@ -53,6 +53,7 @@ Public Module ConstGen ' Abilitazioni licenza Friend Enum KEY_OPT As UInteger BASE = 1 ' Prodotto Icarus + MACHINE_EXPORT = 2 ' opzione per esportare file icrx per macchina End Enum ' File di log generale @@ -77,4 +78,7 @@ Public Module ConstGen ' Nome file Lua con le funzioni di attrezzaggio Public Const SETUP_LUA As String = "SetUp.lua" + ' Chiave di Info in gruppo di lavoro per attivazione Virtual Milling + Public Const KEY_MCHGRP_VM As String = "Vm" + End Module diff --git a/Icarus/Constants/ConstIni.vb b/Icarus/Constants/ConstIni.vb index 88fb4ae..8f0cf48 100644 --- a/Icarus/Constants/ConstIni.vb +++ b/Icarus/Constants/ConstIni.vb @@ -29,6 +29,7 @@ Public Module ConstIni Public Const K_NETKEY As String = "NetKey" Public Const K_LASTNGEDIR As String = "LastNgeDir" Public Const K_LASTIMPDIR As String = "LastImpDir" + Public Const K_MACHINEEXPORT As String = "MachineExport" 'Public Const K_SUPPORT As String = "Support" 'Public Const S_LANGUAGES As String = "Languages" @@ -102,11 +103,15 @@ Public Module ConstIni Public Const K_DXFSCALE As String = "DxfScale" Public Const K_STLSCALE As String = "StlScale" Public Const K_CNCFLAG As String = "CncFlag" + Public Const K_ADVFLAG As String = "AdvFlag" + Public Const K_ADVTOLER As String = "AdvToler" 'Public Const S_SIMUL As String = "Simul" 'Public Const K_SLIDERX As String = "SliderX" 'Public Const K_SLIDERVAL As String = "SliderVal" Public Const K_MACHVIEWMODE As String = "MachViewMode" + Public Const K_VIRTUALADDITIVE As String = "VirtualAdditive" + Public Const K_TRACEENABLE As String = "TraceEnable" Public Const S_PRINTING3D As String = "3dPrinting" Public Const K_3PRNBASEDIR As String = "BaseDir" @@ -115,6 +120,9 @@ Public Module ConstIni Public Const K_VIEWSLIDER As String = "ViewSlider" Public Const K_IMPORTCURREXTENSION As String = "ImportCurrExtension" + Public Const S_SOLIDS As String = "Solids" + Public Const K_SIMPLIFIEDSECTION As String = "SimplifiedSection" + Public Const S_COLORS As String = "Colors" Public Const K_CLR_PRINTPART As String = "PrintPart" Public Const K_CLR_RIBS As String = "Ribs" diff --git a/Icarus/Constants/ConstMachDataIni.vb b/Icarus/Constants/ConstMachDataIni.vb index b3d9052..dfd7f53 100644 --- a/Icarus/Constants/ConstMachDataIni.vb +++ b/Icarus/Constants/ConstMachDataIni.vb @@ -27,6 +27,7 @@ Public Module ConstMachDataIni Public Const S_45DEGX As String = "45DegX" Public Const S_45DEGY As String = "45DegY" Public Const S_HORIZONTAL As String = "Horizontal" + Public Const S_MULTIPLANAR As String = "MultiPlanar" Public Const K_MINX As String = "MinX" Public Const K_MAXX As String = "MaxX" Public Const K_MINY As String = "MinY" diff --git a/Icarus/Constants/ConstMachIni.vb b/Icarus/Constants/ConstMachIni.vb index 1cdbd2d..8be8e1a 100644 --- a/Icarus/Constants/ConstMachIni.vb +++ b/Icarus/Constants/ConstMachIni.vb @@ -1,6 +1,7 @@ Public Module ConstMachIni - Public Const MACH_INI_FILE_NAME As String = "MachData.ini" + Public Const S_GENERAL As String = "General" + Public Const K_GEN_STD_VIEW As String = "StandardView" Public Const S_MACHINING As String = "Machining" Public Const K_MACH_INITSCRIPT As String = "InitScript" @@ -8,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" @@ -24,4 +26,10 @@ #End Region + Public Const S_VMILL As String = "VMill" + Public Const K_VM_ENABLE As String = "Enable" + + Public Const S_TOOLTRACE As String = "ToolTrace" + Public Const K_TT_ENABLE As String = "Enable" + End Module diff --git a/Icarus/CurrMachiningPanel/CurrMachining.vb b/Icarus/CurrMachiningPanel/CurrMachining.vb index 5daeef4..7f75ef0 100644 --- a/Icarus/CurrMachiningPanel/CurrMachining.vb +++ b/Icarus/CurrMachiningPanel/CurrMachining.vb @@ -106,12 +106,12 @@ Public Class CurrMachining Else m_nIndex = 0 End If - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, False)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, False)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, False)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, False)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, False)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, False)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, False, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, False, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, False, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, False, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, False, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, False, Me)) For Each Cathegory In m_CathegoryList For Each MachiningParam In Cathegory.MachiningParamList AddHandler MachiningParam.PropertyChanged, AddressOf OnMachiningParamPropertyChanged @@ -124,12 +124,12 @@ Public Class CurrMachining ' ricavo lavorazione da lista Dim CurrMachiningInDb As MachiningIndex = Map.refTopPanelVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex) m_sCurrGUID = CurrMachiningInDb.sGUID - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, True)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, True)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, True)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, True)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, True)) - m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, True)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, True, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, True, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, True, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, True, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, True, Me)) + m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, True, Me)) For Each Cathegory In m_CathegoryList For Each MachiningParam In Cathegory.MachiningParamList AddHandler MachiningParam.PropertyChanged, AddressOf OnMachiningParamPropertyChanged @@ -196,8 +196,9 @@ End Class Public Class CurrMachiningCathegory Inherits MachiningCathegory - Sub New(Type As Cathegories, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean) + Sub New(Type As Cathegories, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean, Machining As Machining) m_Type = Type + m_Machining = Machining Select Case m_Type Case Cathegories.GENERAL m_sName = "General" @@ -221,7 +222,8 @@ Public Class CurrMachiningCathegory New CurrNumericMachiningParam(MachiningParam.Params.PREFLOWDELAY, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.POSTFLOWDELAY, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.SCREWBACK, nPartId, nIndex, bForceFromDb, Me), - New CurrNumericMachiningParam(MachiningParam.Params.SLICINGHEIGHT, nPartId, nIndex, bForceFromDb, Me)}) + New CurrNumericMachiningParam(MachiningParam.Params.SLICINGHEIGHT, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.MAXSLICESNUMBER, nPartId, nIndex, bForceFromDb, Me)}) Case Cathegories.LINK m_sName = "Shell" m_MachiningParamList = New List(Of MachiningParam)({New CurrNumericMachiningParam(MachiningParam.Params.INNERSHELLWIDTH, nPartId, nIndex, bForceFromDb, Me), @@ -229,6 +231,7 @@ Public Class CurrMachiningCathegory New CurrComboMachiningParam(MachiningParam.Params.LINKTYPE, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.LINKPARAM, nPartId, nIndex, bForceFromDb, Me), New CurrComboMachiningParam(MachiningParam.Params.LEADIN, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.SINGLELEADIN, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nPartId, nIndex, bForceFromDb, Me), New CurrComboMachiningParam(MachiningParam.Params.LEADOUT, nPartId, nIndex, bForceFromDb, Me), @@ -237,7 +240,8 @@ Public Class CurrMachiningCathegory New CurrNumericMachiningParam(MachiningParam.Params.COASTINGLEN, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.WIPELEN, nPartId, nIndex, bForceFromDb, Me), - New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb, Me)}) + New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.SPIRALVASELEN, nPartId, nIndex, bForceFromDb, Me)}) 'New CurrNumericMachiningParam(MachiningParam.Params.WIPEDIR, nPartId, nIndex, bForceFromDb, Me)}) Case Cathegories.RIBS m_sName = "Ribs" @@ -245,8 +249,12 @@ Public Class CurrMachiningCathegory New CurrComboMachiningParam(MachiningParam.Params.RIBSTYPE, nPartId, nIndex, bForceFromDb, Me), New CurrCheckMachiningParam(MachiningParam.Params.RIBSLIMITUNBOUNDEDWITHSOLID, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSSTRANDOVERLAP, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nPartId, nIndex, bForceFromDb, Me), New CurrCheckMachiningParam(MachiningParam.Params.RIBSLINK, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLINKFILLET, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSMERGEWITHSHELL, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTMERGEDSHELLMAINLINK, nPartId, nIndex, bForceFromDb, Me), New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nPartId, nIndex, bForceFromDb, Me), New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nPartId, nIndex, bForceFromDb, Me), New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nPartId, nIndex, bForceFromDb, Me), @@ -256,7 +264,8 @@ Public Class CurrMachiningCathegory New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nPartId, nIndex, bForceFromDb, Me), New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nPartId, nIndex, bForceFromDb, Me), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nPartId, nIndex, bForceFromDb, Me)}) + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADFILLET, nPartId, nIndex, bForceFromDb, Me)}) Case Cathegories.SHELL_NUMBER m_sName = "Reduce Shell Number" m_MachiningParamList = New List(Of MachiningParam)({New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nPartId, nIndex, bForceFromDb, Me), @@ -309,6 +318,11 @@ Public Class CurrMachiningCathegory Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) MachiningParam.ManageDependencyParam() Next + For Each Param In {MachiningParam.Params.SPIRALVASE} + Dim GeneralCathegory As MachiningCathegory = Machining.CathegoryList.FirstOrDefault(Function(z) z.Type = Cathegories.GENERAL) + Dim MachiningParam As CheckMachiningParam = GeneralCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) + MachiningParam.ManageDependencyParam(Me) + Next Case Cathegories.RIBS For Each Param In {MachiningParam.Params.RIBSTYPE} Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) @@ -354,7 +368,7 @@ Public Class CurrNumericMachiningParam Public Overrides Property sValue As String Get - Return If(m_bIsLen, LenToString(m_dValue, 1), DoubleToString(m_dValue, 2)) + Return If(m_bIsLen, LenToString(m_dValue, 2), DoubleToString(m_dValue, 2)) End Get Set(value As String) Dim dTempValue As Double = 0 @@ -467,6 +481,9 @@ Public Class CurrNumericMachiningParam Case Params.WIPEFEED_PC bReadFromPart = EgtGetInfo(nPartId, MAC_WIPEFEEDPU, m_dValue) m_bIsLen = False + Case Params.SPIRALVASELEN + bReadFromPart = EgtGetInfo(nPartId, MAC_SPIRALVASELEN, m_dValue) + m_bIsLen = True 'Case Params.WIPEDIR ' bReadFromPart = EgtGetInfo(nPartId, MAC_WIPEDIR, m_dValue) ' m_bIsLen = True @@ -484,25 +501,34 @@ Public Class CurrNumericMachiningParam m_bIsLen = True Case Params.PREFLOWDELAY bReadFromPart = EgtGetInfo(nPartId, MAC_PREFLOWDELAY, m_dValue) - m_bIsLen = True + m_bIsLen = False Case Params.POSTFLOWDELAY bReadFromPart = EgtGetInfo(nPartId, MAC_POSTFLOWDELAY, m_dValue) - m_bIsLen = True + m_bIsLen = False Case Params.SCREWBACK bReadFromPart = EgtGetInfo(nPartId, MAC_SCREWBACK, m_dValue) - m_bIsLen = True + m_bIsLen = False Case Params.SLICINGHEIGHT bReadFromPart = EgtGetInfo(nPartId, MAC_SLICINGHEIGHT, m_dValue) m_bIsLen = True + Case Params.MAXSLICESNUMBER + bReadFromPart = EgtGetInfo(nPartId, MAC_MAXSLICESNUMBER, m_dValue) + m_bIsLen = False Case Params.RIBSSTRANDWIDTH bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSSTRANDWIDTH, m_dValue) m_bIsLen = True Case Params.RIBSOVERLAP bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSOVERLAP, m_dValue) m_bIsLen = False + Case Params.RIBSSTRANDOVERLAP + bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSSTRANDOVERLAP, m_dValue) + m_bIsLen = False Case Params.RIBSSTRANDCOUNT bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSSTRANDCOUNT, m_dValue) m_bIsLen = False + Case Params.RIBSLINKFILLET + bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLINKFILLET, m_dValue) + m_bIsLen = True Case Params.RIBSLEADINLEN bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLEADINLEN, m_dValue) m_bIsLen = True @@ -518,6 +544,9 @@ Public Class CurrNumericMachiningParam Case Params.RIBSLEADOUTWIPEDIR bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLEADOUTWIPEDIR, m_dValue) m_bIsLen = False + Case Params.RIBSLEADFILLET + bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLEADFILLET, m_dValue) + m_bIsLen = True Case Params.SHELLNBRDIFFERENCE bReadFromPart = EgtGetInfo(nPartId, MAC_SHELLNBRDIFFERENCE, m_dValue) m_bIsLen = False @@ -614,15 +643,15 @@ Public Class CurrNumericMachiningParam Dim DbMachining As Machining = Map.refMachiningDbVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex) Select Case Type Case Params.STRANDH, Params.STRANDW, Params.STRANDCOUNT, Params.OFFSET, Params.STRANDOVERLAP, Params.STARTPOINTOFFSETONSLICE, - Params.G0FEED, Params.G0FEEDZ, Params.LINKZUP, Params.TOOLDIAM, Params.FLOWRATE_PC, Params.PREFLOWDELAY, Params.POSTFLOWDELAY, Params.SCREWBACK, Params.SLICINGHEIGHT + Params.G0FEED, Params.G0FEEDZ, Params.LINKZUP, Params.TOOLDIAM, Params.FLOWRATE_PC, Params.PREFLOWDELAY, Params.POSTFLOWDELAY, Params.SCREWBACK, Params.SLICINGHEIGHT, Params.MAXSLICESNUMBER m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) Case Params.LINKPARAM, Params.INNERSHELLWIDTH, Params.OFFSETLEADPOINT, Params.LEADINTANGDIST, Params.LEADINORTHODIST, Params.LEADOUTTANGDIST, Params.LEADOUTORTHODIST, Params.COASTINGLEN, Params.COASTINGFEED_PC, - Params.WIPELEN, Params.WIPEFEED_PC ' Params.WIPEDIR + Params.WIPELEN, Params.WIPEFEED_PC, Params.SPIRALVASELEN, Params.SINGLELEADIN ' Params.WIPEDIR m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) - Case Params.RIBSSTRANDWIDTH, Params.RIBSOVERLAP, Params.RIBSSTRANDCOUNT, Params.RIBSLINK, Params.RIBSINVERTORDER, Params.RIBSINVERTDIRECTION, + Case Params.RIBSSTRANDWIDTH, Params.RIBSOVERLAP, Params.RIBSSTRANDOVERLAP, Params.RIBSSTRANDCOUNT, Params.RIBSLINK, Params.RIBSLINKFILLET, Params.RIBSMERGEWITHSHELL, Params.RIBSINVERTMERGEDSHELLMAINLINK, Params.RIBSINVERTORDER, Params.RIBSINVERTDIRECTION, Params.RIBSLEADININVERT, Params.RIBSLEADINLEN, Params.RIBSLEADOUTINVERT, Params.RIBSLEADOUTLEN, Params.RIBSLEADOUTCOASTING, - Params.RIBSLEADOUTWIPE, Params.RIBSLEADOUTWIPEDIR + Params.RIBSLEADOUTWIPE, Params.RIBSLEADOUTWIPEDIR, Params.RIBSLEADFILLET m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.RIBS).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) Case Params.SHELLNBRDIFFERENCE, Params.SHELLNBRCOASTING, Params.SHELLNBRWIPE, Params.SHELLNBRWIPEDIR m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.SHELL_NUMBER).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) @@ -693,6 +722,8 @@ Public Class CurrNumericMachiningParam EgtSetInfo(nPartId, MAC_WIPELEN, sWriteValue) Case Params.WIPEFEED_PC EgtSetInfo(nPartId, MAC_WIPEFEEDPU, sWriteValue) + Case Params.SPIRALVASELEN + EgtSetInfo(nPartId, MAC_SPIRALVASELEN, sWriteValue) 'Case Params.WIPEDIR ' EgtSetInfo(nPartId, MAC_WIPEDIR, sWriteValue) Case Params.FLOORCOUNT @@ -711,12 +742,18 @@ Public Class CurrNumericMachiningParam EgtSetInfo(nPartId, MAC_SCREWBACK, sWriteValue) Case Params.SLICINGHEIGHT EgtSetInfo(nPartId, MAC_SLICINGHEIGHT, sWriteValue) + Case Params.MAXSLICESNUMBER + EgtSetInfo(nPartId, MAC_MAXSLICESNUMBER, sWriteValue) Case Params.RIBSSTRANDWIDTH EgtSetInfo(nPartId, MAC_RIBSSTRANDWIDTH, sWriteValue) Case Params.RIBSOVERLAP EgtSetInfo(nPartId, MAC_RIBSOVERLAP, sWriteValue) + Case Params.RIBSSTRANDOVERLAP + EgtSetInfo(nPartId, MAC_RIBSSTRANDOVERLAP, sWriteValue) Case Params.RIBSSTRANDCOUNT EgtSetInfo(nPartId, MAC_RIBSSTRANDCOUNT, sWriteValue) + Case Params.RIBSLINKFILLET + EgtSetInfo(nPartId, MAC_RIBSLINKFILLET, sWriteValue) Case Params.RIBSLEADINLEN EgtSetInfo(nPartId, MAC_RIBSLEADINLEN, sWriteValue) Case Params.RIBSLEADOUTLEN @@ -727,6 +764,8 @@ Public Class CurrNumericMachiningParam EgtSetInfo(nPartId, MAC_RIBSLEADOUTWIPE, sWriteValue) Case Params.RIBSLEADOUTWIPEDIR EgtSetInfo(nPartId, MAC_RIBSLEADOUTWIPEDIR, sWriteValue) + Case Params.RIBSLEADFILLET + EgtSetInfo(nPartId, MAC_RIBSLEADFILLET, sWriteValue) Case Params.SHELLNBRDIFFERENCE EgtSetInfo(nPartId, MAC_SHELLNBRDIFFERENCE, sWriteValue) Case Params.SHELLNBRCOASTING @@ -928,17 +967,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")) - 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 @@ -1150,6 +1187,7 @@ Public Class CurrCheckMachiningParam m_bValue = value NotifyPropertyChanged(NameOf(bValue)) NotifyPropertyChanged(NameOf(bIsModifiedFromDb)) + ManageDependencyParam() End Set End Property @@ -1175,8 +1213,14 @@ Public Class CurrCheckMachiningParam Select Case Type Case Params.SPIRALVASE bReadFromPart = EgtGetInfo(nPartId, MAC_SPIRALVASE, m_bValue) + Case Params.SINGLELEADIN + bReadFromPart = EgtGetInfo(nPartId, MAC_SINGLELEADIN, m_bValue) Case Params.RIBSLINK bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLINK, m_bValue) + Case Params.RIBSMERGEWITHSHELL + bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSMERGEWITHSHELL, m_bValue) + Case Params.RIBSINVERTMERGEDSHELLMAINLINK + bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSINVERTMERGEDSHELLMAINLINK, m_bValue) Case Params.RIBSINVERTORDER bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSINVERTORDER, m_bValue) Case Params.RIBSINVERTDIRECTION @@ -1200,7 +1244,9 @@ Public Class CurrCheckMachiningParam Select Case Type 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.RIBSINVERTSTRANDORDER, Params.RIBSLEADININVERT, Params.RIBSLEADOUTINVERT, Params.RIBSLIMITUNBOUNDEDWITHSOLID + Case Params.SINGLELEADIN + m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) + Case Params.RIBSLINK, Params.RIBSMERGEWITHSHELL, Params.RIBSINVERTMERGEDSHELLMAINLINK, Params.RIBSINVERTORDER, Params.RIBSINVERTDIRECTION, Params.RIBSINVERTSTRANDORDER, Params.RIBSLEADININVERT, Params.RIBSLEADOUTINVERT, Params.RIBSLIMITUNBOUNDEDWITHSOLID m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.RIBS).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) Case Params.AUXSOLIDSINFILLLINK m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.AUX_SOLID).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) @@ -1218,8 +1264,14 @@ Public Class CurrCheckMachiningParam Select Case Type Case Params.SPIRALVASE EgtSetInfo(nPartId, MAC_SPIRALVASE, If(m_bValue, 1, 0)) + Case Params.SINGLELEADIN + EgtSetInfo(nPartId, MAC_SINGLELEADIN, If(m_bValue, 1, 0)) Case Params.RIBSLINK EgtSetInfo(nPartId, MAC_RIBSLINK, If(m_bValue, 1, 0)) + Case Params.RIBSMERGEWITHSHELL + EgtSetInfo(nPartId, MAC_RIBSMERGEWITHSHELL, If(m_bValue, 1, 0)) + Case Params.RIBSINVERTMERGEDSHELLMAINLINK + EgtSetInfo(nPartId, MAC_RIBSINVERTMERGEDSHELLMAINLINK, If(m_bValue, 1, 0)) Case Params.RIBSINVERTORDER EgtSetInfo(nPartId, MAC_RIBSINVERTORDER, If(m_bValue, 1, 0)) Case Params.RIBSINVERTDIRECTION diff --git a/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb b/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb index 1d2f2f9..1fe1e66 100644 --- a/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb +++ b/Icarus/CurrMachiningPanel/CurrMachiningPanelVM.vb @@ -140,7 +140,7 @@ Public Class CurrMachiningPanelVM WriteMachiningParam(nIndex, MAC_GUID, sNewMachGUID.ToString()) WriteMachiningParam(nIndex, MAC_NAME, SaveInDbWndVM.sName) ' creo categoria materiali con attivo materiale corrente - Dim MaterialCathegory As New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, 0) + Dim MaterialCathegory As New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, 0, m_CurrMachining) Dim SelMaterialParam As MaterialMachiningParam = MaterialCathegory.MachiningParamList.FirstOrDefault(Function(x As MaterialMachiningParam) x.sGUID = Map.refTopPanelVM.SelMaterial.sGUID) If Not IsNothing(SelMaterialParam) Then SelMaterialParam.bValue = True diff --git a/Icarus/DispositionPanel/DispositionPanelVM.vb b/Icarus/DispositionPanel/DispositionPanelVM.vb index 3321944..789eb52 100644 --- a/Icarus/DispositionPanel/DispositionPanelVM.vb +++ b/Icarus/DispositionPanel/DispositionPanelVM.vb @@ -21,8 +21,8 @@ Public Class DispositionPanelVM Dim dNewXPos As Double = ptReference.x StringToLen(value, dNewXPos) Dim b3Print As BBox3d = GetSolidForReferenceBBox(Map.refTopPanelVM.SelPart) - Dim dMin As Double = 0 - Dim dMax As Double = CurrentMachine.b3Tab.DimX + Dim dMin As Double = Math.Min( 0, CurrentMachine.b3ExtrusionArea.Min.x) + Dim dMax As Double = Math.Max( CurrentMachine.b3Tab.DimX, CurrentMachine.b3ExtrusionArea.Max.x) If b3Print.Max.x > ptReference.x Then dMax -= b3Print.Max.x - ptReference.x End If @@ -60,8 +60,8 @@ Public Class DispositionPanelVM Dim dNewYPos As Double = ptReference.y StringToLen(value, dNewYPos) Dim b3Print As BBox3d = GetSolidForReferenceBBox(Map.refTopPanelVM.SelPart) - Dim dMin As Double = 0 - Dim dMax As Double = CurrentMachine.b3Tab.DimY + Dim dMin As Double = Math.Min( 0, CurrentMachine.b3ExtrusionArea.Min.y) + Dim dMax As Double = Math.Max( CurrentMachine.b3Tab.DimY, CurrentMachine.b3ExtrusionArea.Max.y) If b3Print.Max.y > ptReference.y Then dMax -= b3Print.Max.y - ptReference.y End If diff --git a/Icarus/FilledSolidPanel/FilledSolidPanelVM.vb b/Icarus/FilledSolidPanel/FilledSolidPanelVM.vb index ab5e31c..83b40b9 100644 --- a/Icarus/FilledSolidPanel/FilledSolidPanelVM.vb +++ b/Icarus/FilledSolidPanel/FilledSolidPanelVM.vb @@ -595,6 +595,7 @@ Public Class FilledSolidPanelVM Friend Sub Dispose() ' ripristino frame originale EgtSetGridFrame(m_OriginalGridFrame) + EgtSetGridGeoAdv( -1, -1, -1, 0, CurrentMachine.b3Tab.DimX(), 0, CurrentMachine.b3Tab.DimY()) ' se in modifica parametri If m_bMachParam_IsChecked Then ' ripristino modalita' standard @@ -1075,6 +1076,7 @@ Public Class FilledSolidPanelVM ''' Public Sub CPlaneTop(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return + EgtSetGridGeoAdv( -1, -1, -1, 0, CurrentMachine.b3Tab.DimX(), 0, CurrentMachine.b3Tab.DimY()) Map.refSceneHostVM.MainController.SetLastInteger(Controller.GRID_TYPE.TOP) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID) End Sub @@ -1100,6 +1102,7 @@ Public Class FilledSolidPanelVM ''' Public Sub CPlaneFront(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return + EgtSetGridGeo( -1, -1, -1, OptionModule.m_nExtSStep) Map.refSceneHostVM.MainController.SetLastInteger(Controller.GRID_TYPE.FRONT) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID) End Sub @@ -1125,6 +1128,7 @@ Public Class FilledSolidPanelVM ''' Public Sub CPlaneRight(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return + EgtSetGridGeo( -1, -1, -1, OptionModule.m_nExtSStep) Map.refSceneHostVM.MainController.SetLastInteger(Controller.GRID_TYPE.RIGHT) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID) End Sub @@ -1150,6 +1154,7 @@ Public Class FilledSolidPanelVM ''' Public Sub CPlaneBack(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return + EgtSetGridGeo( -1, -1, -1, OptionModule.m_nExtSStep) Map.refSceneHostVM.MainController.SetLastInteger(Controller.GRID_TYPE.BACK) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID) End Sub @@ -1175,6 +1180,7 @@ Public Class FilledSolidPanelVM ''' Public Sub CPlaneLeft(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return + EgtSetGridGeo( -1, -1, -1, OptionModule.m_nExtSStep) Map.refSceneHostVM.MainController.SetLastInteger(Controller.GRID_TYPE.LEFT) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID) End Sub @@ -1200,6 +1206,7 @@ Public Class FilledSolidPanelVM ''' Public Sub CPlaneBottom(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return + EgtSetGridGeo( -1, -1, -1, OptionModule.m_nExtSStep) Map.refSceneHostVM.MainController.SetLastInteger(Controller.GRID_TYPE.BOTTOM) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID) End Sub @@ -1226,6 +1233,7 @@ Public Class FilledSolidPanelVM Public Sub CPlaneElevation(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return ManageInterface(False) + EgtSetGridGeo( -1, -1, -1, OptionModule.m_nExtSStep) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID_ELEVATION) End Sub @@ -1251,87 +1259,12 @@ Public Class FilledSolidPanelVM Public Sub CPlaneOrigin(ByVal param As Object) If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return ManageInterface(False) + EgtSetGridGeo( -1, -1, -1, OptionModule.m_nExtSStep) Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID_ORIGIN) End Sub #End Region ' CPlaneOrigin -#Region "CPlaneRotate" - - ''' - ''' Returns a command that do CPlaneRotate. - ''' - Public ReadOnly Property CPlaneRotate_Command As ICommand - Get - If m_cmdCPlaneRotate Is Nothing Then - m_cmdCPlaneRotate = New Command(AddressOf CPlaneRotate) - End If - Return m_cmdCPlaneRotate - End Get - End Property - - ''' - ''' Execute the CPlaneRotate. This method is invoked by the CPlaneRotateCommand. - ''' - Public Sub CPlaneRotate(ByVal param As Object) - If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return - If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then - Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID_ROTATE) - Else - Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID_ROTATE3D) - End If - End Sub - -#End Region ' CPlaneRotate - -#Region "CPlane3P" - - ''' - ''' Returns a command that do CPlane3P. - ''' - Public ReadOnly Property CPlane3P_Command As ICommand - Get - If m_cmdCPlane3P Is Nothing Then - m_cmdCPlane3P = New Command(AddressOf CPlane3P) - End If - Return m_cmdCPlane3P - End Get - End Property - - ''' - ''' Execute the CPlane3P. This method is invoked by the CPlane3PCommand. - ''' - Public Sub CPlane3P(ByVal param As Object) - If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return - Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID_3P) - End Sub - -#End Region ' CPlane3P - -#Region "CPlanePerpObj" - - ''' - ''' Returns a command that do CPlanePerpObj. - ''' - Public ReadOnly Property CPlanePerpObj_Command As ICommand - Get - If m_cmdCPlanePerpObj Is Nothing Then - m_cmdCPlanePerpObj = New Command(AddressOf CPlanePerpObj) - End If - Return m_cmdCPlanePerpObj - End Get - End Property - - ''' - ''' Execute the CPlanePerpObj. This method is invoked by the CPlanePerpObjCommand. - ''' - Public Sub CPlanePerpObj(ByVal param As Object) - If Map.refSceneHostVM.MainController.GetStep <> 0 OrElse m_bCPlaneObj_IsActive Then Return - Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.GRID_PERPCURVE) - End Sub - -#End Region ' CPlanePerpObj - #Region "CPlaneObj" Private m_bCPlaneObj_IsActive As Boolean = False diff --git a/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb b/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb index eac4460..62ccbfe 100644 --- a/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb +++ b/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb @@ -166,13 +166,13 @@ Public Class FilledSolidNumericMachiningParam Public Overrides Property sValue As String Get - Return If(m_bIsLen, LenToString(m_dValue, 1), m_dValue) + Return If(m_bIsLen, LenToString(m_dValue, 2), DoubleToString(m_dValue, 2)) End Get Set(value As String) If m_bIsLen Then StringToLen(value, m_dValue) Else - m_dValue = value + StringToDouble(value, m_dValue) End If NotifyPropertyChanged(NameOf(sValue)) NotifyPropertyChanged(NameOf(bIsModifiedFromPart)) diff --git a/Icarus/Icarus.vbproj b/Icarus/Icarus.vbproj index 0d4df2d..9c02606 100644 --- a/Icarus/Icarus.vbproj +++ b/Icarus/Icarus.vbproj @@ -76,6 +76,9 @@ true + + ..\..\..\EgtProg\Icarus\DotNetZip.dll + False ..\..\..\EgtProg\DllD32\EgtUILib.dll @@ -84,8 +87,8 @@ False ..\..\..\EgtProg\DllD32\EgtWPFLib5.dll - - ..\packages\Ionic.Zip.1.9.1.8\lib\Ionic.Zip.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -332,6 +335,7 @@ + diff --git a/Icarus/InstrumentPanel/InstrumentPanelV.xaml b/Icarus/InstrumentPanel/InstrumentPanelV.xaml index b74099f..00b29b0 100644 --- a/Icarus/InstrumentPanel/InstrumentPanelV.xaml +++ b/Icarus/InstrumentPanel/InstrumentPanelV.xaml @@ -1,30 +1,37 @@ - + + + + + + + 25 + 25 + + + + + + - - - 25 - 25 - - - - - + diff --git a/Icarus/MachiningDb/Machining.vb b/Icarus/MachiningDb/Machining.vb index ae0f2be..21e4049 100644 --- a/Icarus/MachiningDb/Machining.vb +++ b/Icarus/MachiningDb/Machining.vb @@ -14,6 +14,9 @@ Public Class Machining DEG45 = 2 DEG45_Y = 3 HORIZONTAL = 4 + MULTIPLANAR = 5 + MULTIPLANAR_DEG45 = 6 + MULTIPLANAR_HORIZ = 7 End Enum Public Enum MPAR_STRANDORDERS As Integer @@ -147,13 +150,13 @@ Public Class Machining m_sName = "New Machining" End If m_sOrigName = m_sName - m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nIndex)) - m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.LINK, nIndex)) - m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.RIBS, nIndex)) - m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nIndex)) - m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nIndex)) - m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.INFILL, nIndex)) - m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, nIndex)) + m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nIndex, Me)) + m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.LINK, nIndex, Me)) + m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.RIBS, nIndex, Me)) + m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nIndex, Me)) + m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nIndex, Me)) + m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.INFILL, nIndex, Me)) + m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, nIndex, Me)) For Each Cathegory In m_CathegoryList For Each MachiningParam In Cathegory.MachiningParamList AddHandler MachiningParam.PropertyChanged, AddressOf OnMachiningParamPropertyChanged @@ -314,11 +317,19 @@ Public Class MachiningCathegory End Set End Property + Protected m_Machining As Machining + Friend ReadOnly Property Machining As Machining + Get + Return m_Machining + End Get + End Property + Sub New() End Sub - Sub New(Type As Cathegories, nIndex As Integer) + Sub New(Type As Cathegories, nIndex As Integer, Machining As Machining) + m_Machining = Machining m_Type = Type Select Case m_Type Case Cathegories.GENERAL @@ -343,7 +354,8 @@ Public Class MachiningCathegory New NumericMachiningParam(MachiningParam.Params.PREFLOWDELAY, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.POSTFLOWDELAY, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.SCREWBACK, nIndex, Me), - New NumericMachiningParam(MachiningParam.Params.SLICINGHEIGHT, nIndex, Me)}) + New NumericMachiningParam(MachiningParam.Params.SLICINGHEIGHT, nIndex, Me), + New NumericMachiningParam(MachiningParam.Params.MAXSLICESNUMBER, nIndex, Me)}) Case Cathegories.LINK m_sName = "Shell" m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.INNERSHELLWIDTH, nIndex, Me), @@ -351,6 +363,7 @@ Public Class MachiningCathegory New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.LINKPARAM, nIndex, Me), New ComboMachiningParam(MachiningParam.Params.LEADIN, nIndex, Me), + New CheckMachiningParam(MachiningParam.Params.SINGLELEADIN, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nIndex, Me), New ComboMachiningParam(MachiningParam.Params.LEADOUT, nIndex, Me), @@ -359,7 +372,8 @@ Public Class MachiningCathegory New NumericMachiningParam(MachiningParam.Params.COASTINGLEN, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.WIPELEN, nIndex, Me), - New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex, Me)}) + New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex, Me), + New NumericMachiningParam(MachiningParam.Params.SPIRALVASELEN, nIndex, Me)}) 'New NumericMachiningParam(MachiningParam.Params.WIPEDIR, nIndex, Me)}) Case Cathegories.RIBS m_sName = "Ribs" @@ -367,8 +381,12 @@ Public Class MachiningCathegory New ComboMachiningParam(MachiningParam.Params.RIBSTYPE, nIndex, Me), New CheckMachiningParam(MachiningParam.Params.RIBSLIMITUNBOUNDEDWITHSOLID, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nIndex, Me), + New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDOVERLAP, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nIndex, Me), New CheckMachiningParam(MachiningParam.Params.RIBSLINK, nIndex, Me), + New NumericMachiningParam(MachiningParam.Params.RIBSLINKFILLET, nIndex, Me), + New CheckMachiningParam(MachiningParam.Params.RIBSMERGEWITHSHELL, nIndex, Me), + New CheckMachiningParam(MachiningParam.Params.RIBSINVERTMERGEDSHELLMAINLINK, nIndex, Me), New CheckMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nIndex, Me), New CheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nIndex, Me), New CheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nIndex, Me), @@ -378,7 +396,8 @@ Public Class MachiningCathegory New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nIndex, Me), New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nIndex, Me), - New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nIndex, Me)}) + New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nIndex, Me), + New NumericMachiningParam(MachiningParam.Params.RIBSLEADFILLET, nIndex, Me)}) Case Cathegories.SHELL_NUMBER m_sName = "Reduce Shell Number" m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nIndex, Me), @@ -440,7 +459,12 @@ Public Class MachiningCathegory Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) MachiningParam.ManageDependencyParam() Next - Case Cathegories.RIBS + For Each Param In {MachiningParam.Params.SPIRALVASE} + Dim GeneralCathegory As MachiningCathegory = Machining.CathegoryList.FirstOrDefault(Function(z) z.Type = Cathegories.GENERAL) + Dim MachiningParam As CheckMachiningParam = GeneralCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) + MachiningParam.ManageDependencyParam(Me) + Next + Case Cathegories.RIBS For Each Param In {MachiningParam.Params.RIBSTYPE} Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) MachiningParam.ManageDependencyParam() @@ -602,6 +626,7 @@ Public MustInherit Class MachiningParam POSTFLOWDELAY = 20 SCREWBACK = 21 SLICINGHEIGHT = 22 + MAXSLICESNUMBER = 23 LINKTYPE = 51 LINKPARAM = 52 LEADIN = 53 @@ -616,23 +641,30 @@ Public MustInherit Class MachiningParam WIPELEN = 62 WIPEFEED_PC = 63 INNERSHELLWIDTH = 64 + SPIRALVASELEN = 65 + SINGLELEADIN = 66 'WIPEDIR = 64 RIBSTYPE = 101 RIBSOVERLAP = 102 RIBSSTRANDCOUNT = 103 RIBSLINK = 104 - RIBSINVERTORDER = 105 - RIBSINVERTDIRECTION = 106 - RIBSINVERTSTRANDORDER = 107 - RIBSLEADININVERT = 108 - RIBSLEADINLEN = 109 - RIBSLEADOUTINVERT = 110 - RIBSLEADOUTLEN = 111 - RIBSLEADOUTCOASTING = 112 - RIBSLEADOUTWIPE = 113 - RIBSLEADOUTWIPEDIR = 114 - RIBSLIMITUNBOUNDEDWITHSOLID = 115 - RIBSSTRANDWIDTH = 116 + RIBSMERGEWITHSHELL = 105 + RIBSINVERTMERGEDSHELLMAINLINK = 106 + RIBSINVERTORDER = 107 + RIBSINVERTDIRECTION = 108 + RIBSINVERTSTRANDORDER = 109 + RIBSLEADININVERT = 110 + RIBSLEADINLEN = 111 + RIBSLEADOUTINVERT = 112 + RIBSLEADOUTLEN = 113 + RIBSLEADOUTCOASTING = 114 + RIBSLEADOUTWIPE = 115 + RIBSLEADOUTWIPEDIR = 116 + RIBSLIMITUNBOUNDEDWITHSOLID = 117 + RIBSSTRANDWIDTH = 118 + RIBSLINKFILLET = 119 + RIBSLEADFILLET = 120 + RIBSSTRANDOVERLAP = 121 SHELLNBRDIFFERENCE = 151 SHELLNBRCOASTING = 152 SHELLNBRWIPE = 153 @@ -719,7 +751,7 @@ Public MustInherit Class MachiningParam m_Cathegory = Cathegory Select Case m_Type Case Params.SLICINGTYPE - m_sName = "Slicing Direction" + m_sName = "Slicing Type" Case Params.STRANDH m_sName = "Strand Height" Case Params.STRANDW @@ -746,6 +778,8 @@ Public MustInherit Class MachiningParam m_sName = "Offset Lead Point" Case Params.LEADIN m_sName = "Lead In" + Case Params.SINGLELEADIN + m_sName = "Single Lead In" Case Params.LEADINTANGDIST m_sName = "Lead In Tang Dist" Case Params.LEADINORTHODIST @@ -764,6 +798,8 @@ Public MustInherit Class MachiningParam m_sName = "Wipe Len" Case Params.WIPEFEED_PC m_sName = "Wipe Feed [%]" + Case Params.SPIRALVASELEN + m_sName = "Spiral Trans Len" Case Params.FLOORCOUNT m_sName = "Floor Count" Case Params.G0FEED @@ -780,16 +816,26 @@ Public MustInherit Class MachiningParam m_sName = "Screw Back" Case Params.SLICINGHEIGHT m_sName = "Slicing Height" + Case Params.MAXSLICESNUMBER + m_sName = "Max Slices Number" Case Params.RIBSSTRANDWIDTH m_sName = "Custom Strand Width" Case Params.RIBSTYPE m_sName = "Type" Case Params.RIBSOVERLAP m_sName = "Overlap [%]" + Case Params.RIBSSTRANDOVERLAP + m_sName = "Strand Overlap [%]" Case Params.RIBSSTRANDCOUNT m_sName = "Strand Count" Case Params.RIBSLINK m_sName = "Link" + Case Params.RIBSLINKFILLET + m_sName = "Link Fillet" + Case Params.RIBSMERGEWITHSHELL + m_sName = "Merge With Shell" + Case Params.RIBSINVERTMERGEDSHELLMAINLINK + m_sName = "Invert Merged Shell Main Link" Case Params.RIBSINVERTORDER m_sName = "Invert Order" Case Params.RIBSINVERTDIRECTION @@ -810,6 +856,8 @@ Public MustInherit Class MachiningParam m_sName = "Lead Out Wipe" Case Params.RIBSLEADOUTWIPEDIR m_sName = "Lead Out Wipe Dir [deg]" + Case Params.RIBSLEADFILLET + m_sName = "Lead Fillet" Case Params.RIBSLIMITUNBOUNDEDWITHSOLID m_sName = "Limit Unbounded With Solid" Case Params.SHELLNBRDIFFERENCE @@ -935,7 +983,7 @@ Public Class NumericMachiningParam End Property Public Overridable Property sValue As String Get - Return If(m_bIsLen, LenToString(m_dValue, 1), DoubleToString(m_dValue, 2)) + Return If(m_bIsLen, LenToString(m_dValue, 2), DoubleToString(m_dValue, 2)) End Get Set(value As String) Dim dTempValue As Double = 0 @@ -1040,6 +1088,7 @@ Public Class NumericMachiningParam If Type = Params.SLICINGHEIGHT Then m_dMinValue = 0 m_dMaxValue = CurrentMachine.dSlicingMaxHeight + m_MinMaxType = MinMaxTypes.ABSOLUT m_bIsActiveMinMax = True End If ' leggo parametri da Db @@ -1102,6 +1151,9 @@ Public Class NumericMachiningParam Case Params.WIPEFEED_PC m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEFEEDPU, 0) m_bIsLen = False + Case Params.SPIRALVASELEN + m_dValue = ReadMachiningParamDouble(nIndex, MAC_SPIRALVASELEN, 0) + m_bIsLen = True 'Case Params.WIPEDIR ' m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEDIR, 0) ' m_bIsLen = True @@ -1129,15 +1181,24 @@ Public Class NumericMachiningParam Case Params.SLICINGHEIGHT m_dValue = ReadMachiningParamDouble(nIndex, MAC_SLICINGHEIGHT, CurrentMachine.dSlicingMaxHeight) m_bIsLen = False + Case Params.MAXSLICESNUMBER + m_dValue = ReadMachiningParamDouble(nIndex, MAC_MAXSLICESNUMBER, 0) + m_bIsLen = False Case Params.RIBSSTRANDWIDTH m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDWIDTH, 0) m_bIsLen = True Case Params.RIBSOVERLAP m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSOVERLAP, 0) m_bIsLen = False + Case Params.RIBSSTRANDOVERLAP + m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDOVERLAP, 0) + m_bIsLen = False Case Params.RIBSSTRANDCOUNT m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDCOUNT, 0) m_bIsLen = False + Case Params.RIBSLINKFILLET + m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLINKFILLET, 0) + m_bIsLen = True Case Params.RIBSLEADINLEN m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADINLEN, 0) m_bIsLen = True @@ -1153,6 +1214,9 @@ Public Class NumericMachiningParam Case Params.RIBSLEADOUTWIPEDIR m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTWIPEDIR, 0) m_bIsLen = False + Case Params.RIBSLEADFILLET + m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADFILLET, 0) + m_bIsLen = True Case Params.SHELLNBRDIFFERENCE m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRDIFFERENCE, 0) m_bIsLen = False @@ -1316,6 +1380,8 @@ Public Class NumericMachiningParam WriteMachiningParam(nIndex, MAC_WIPELEN, sWriteValue, sFilePath) Case Params.WIPEFEED_PC WriteMachiningParam(nIndex, MAC_WIPEFEEDPU, sWriteValue, sFilePath) + Case Params.SPIRALVASELEN + WriteMachiningParam(nIndex, MAC_SPIRALVASELEN, sWriteValue, sFilePath) 'Case Params.WIPEDIR ' WriteMachiningParam(nIndex, MAC_WIPEDIR, sWriteValue, sFilePath) Case Params.FLOORCOUNT @@ -1334,12 +1400,18 @@ Public Class NumericMachiningParam WriteMachiningParam(nIndex, MAC_SCREWBACK, sWriteValue, sFilePath) Case Params.SLICINGHEIGHT WriteMachiningParam(nIndex, MAC_SLICINGHEIGHT, sWriteValue, sFilePath) + Case Params.MAXSLICESNUMBER + WriteMachiningParam(nIndex, MAC_MAXSLICESNUMBER, sWriteValue, sFilePath) Case Params.RIBSSTRANDWIDTH WriteMachiningParam(nIndex, MAC_RIBSSTRANDWIDTH, sWriteValue, sFilePath) Case Params.RIBSOVERLAP WriteMachiningParam(nIndex, MAC_RIBSOVERLAP, sWriteValue, sFilePath) + Case Params.RIBSSTRANDOVERLAP + WriteMachiningParam(nIndex, MAC_RIBSSTRANDOVERLAP, sWriteValue, sFilePath) Case Params.RIBSSTRANDCOUNT WriteMachiningParam(nIndex, MAC_RIBSSTRANDCOUNT, sWriteValue, sFilePath) + Case Params.RIBSLINKFILLET + WriteMachiningParam(nIndex, MAC_RIBSLINKFILLET, sWriteValue, sFilePath) Case Params.RIBSLEADINLEN WriteMachiningParam(nIndex, MAC_RIBSLEADINLEN, sWriteValue, sFilePath) Case Params.RIBSLEADOUTLEN @@ -1350,6 +1422,8 @@ Public Class NumericMachiningParam WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPE, sWriteValue, sFilePath) Case Params.RIBSLEADOUTWIPEDIR WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPEDIR, sWriteValue, sFilePath) + Case Params.RIBSLEADFILLET + WriteMachiningParam(nIndex, MAC_RIBSLEADFILLET, sWriteValue, sFilePath) Case Params.SHELLNBRDIFFERENCE WriteMachiningParam(nIndex, MAC_SHELLNBRDIFFERENCE, sWriteValue, sFilePath) Case Params.SHELLNBRCOASTING @@ -1533,17 +1607,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")) - 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 @@ -1739,6 +1811,7 @@ Public Class CheckMachiningParam Set(value As Boolean) m_bValue = value NotifyPropertyChanged(NameOf(bValue)) + ManageDependencyParam() End Set End Property @@ -1778,8 +1851,14 @@ Public Class CheckMachiningParam Select Case Type Case Params.SPIRALVASE m_bValue = ReadMachiningParamDouble(nIndex, MAC_SPIRALVASE, 0) + Case Params.SINGLELEADIN + m_bValue = ReadMachiningParamDouble(nIndex, MAC_SINGLELEADIN, 0) Case Params.RIBSLINK m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLINK, 0) + Case Params.RIBSMERGEWITHSHELL + m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSMERGEWITHSHELL, 0) + Case Params.RIBSINVERTMERGEDSHELLMAINLINK + m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTMERGEDSHELLMAINLINK, 0) Case Params.RIBSINVERTORDER m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTORDER, 0) Case Params.RIBSINVERTDIRECTION @@ -1801,12 +1880,28 @@ Public Class CheckMachiningParam m_bOrigValue = m_bValue End Sub + Friend Sub ManageDependencyParam(Optional Cathegory As MachiningCathegory = Nothing) + ' gestisco dis/attivazione parametri dipendenti + Select Case m_Type + Case Params.SPIRALVASE + Dim ShellCathegory As MachiningCathegory = If(Not IsNothing(Cathegory), Cathegory, m_Cathegory.Machining.CathegoryList.FirstOrDefault(Function(z) z.Type= MachiningCathegory.Cathegories.LINK)) + Dim NumMachiningParam As NumericMachiningParam = ShellCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.SPIRALVASELEN) + NumMachiningParam.SetIsActive(m_bValue) + End Select + End Sub + Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "") Select Case Type Case Params.SPIRALVASE WriteMachiningParam(nIndex, MAC_SPIRALVASE, If(m_bValue, 1, 0), sFilePath) + Case Params.SINGLELEADIN + WriteMachiningParam(nIndex, MAC_SINGLELEADIN, If(m_bValue, 1, 0), sFilePath) Case Params.RIBSLINK WriteMachiningParam(nIndex, MAC_RIBSLINK, If(m_bValue, 1, 0), sFilePath) + Case Params.RIBSMERGEWITHSHELL + WriteMachiningParam(nIndex, MAC_RIBSMERGEWITHSHELL, If(m_bValue, 1, 0), sFilePath) + Case Params.RIBSINVERTMERGEDSHELLMAINLINK + WriteMachiningParam(nIndex, MAC_RIBSINVERTMERGEDSHELLMAINLINK, If(m_bValue, 1, 0), sFilePath) Case Params.RIBSINVERTORDER WriteMachiningParam(nIndex, MAC_RIBSINVERTORDER, If(m_bValue, 1, 0), sFilePath) Case Params.RIBSINVERTDIRECTION diff --git a/Icarus/MainWindow/MainWindowM.vb b/Icarus/MainWindow/MainWindowM.vb index 7815f54..4522be5 100644 --- a/Icarus/MainWindow/MainWindowM.vb +++ b/Icarus/MainWindow/MainWindowM.vb @@ -8,7 +8,7 @@ Public Class MainWindowM #Region "FIELDS" ' massimo numero di istanze del programma ammesse - Const MAX_INST As Integer = 32 + Const MAX_INST As Integer = 4 Private m_objMutex As Mutex @@ -191,8 +191,8 @@ Public Class MainWindowM EgtSetLockId( sLockId) End If ' Recupero livello e opzioni della chiave - Dim bKey As Boolean = EgtGetKeyLevel(5583, 2510, 1, m_nKeyLevel) And - EgtGetKeyOptions(5583, 2510, 1, m_nKeyOptions) + Dim bKey As Boolean = EgtGetKeyLevel(5583, 3105, 1, m_nKeyLevel) And + EgtGetKeyOptions(5583, 3105, 1, m_nKeyOptions) ' Inizializzazione generale di EgtInterface m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0) m_sLogFile = m_sTempDir & "\" & GENLOG_FILE_NAME.Replace("#", m_nInstance.ToString()) @@ -317,7 +317,7 @@ Public Class MainWindowM Friend Function GetMaxInstances() As Integer ' Leggo il massimo numero di istanze ammesse Dim nMaxInst As Integer = GetMainPrivateProfileInt(S_GENERAL, K_MAXINST, 1) - Return 1 ' Max(1, Min(nMaxInst, MAX_INST)) + Return Max(1, Min(nMaxInst, MAX_INST)) End Function Friend Sub Close() diff --git a/Icarus/MainWindow/MainWindowV.xaml.vb b/Icarus/MainWindow/MainWindowV.xaml.vb index 8cb3d42..85d4609 100644 --- a/Icarus/MainWindow/MainWindowV.xaml.vb +++ b/Icarus/MainWindow/MainWindowV.xaml.vb @@ -40,7 +40,7 @@ Class MainWindowV End Sub Private Sub MainWindowV_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) - If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then + If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt AndAlso Keyboard.IsKeyDown(Key.F4) Then e.Cancel = True Return End If @@ -61,6 +61,8 @@ Class MainWindowV Me.Activate() ' Recupero l'array di stringhe con i nomi del file Dim sFiles() As String = DirectCast(e.Data.GetData(DataFormats.FileDrop), String()) + ' Apro il primo + Map.refSecondaryWindowVM.OpenStdFile(sFiles(0)) End If End Sub diff --git a/Icarus/MainWindow/MainWindowVM.vb b/Icarus/MainWindow/MainWindowVM.vb index c839239..acc78cb 100644 --- a/Icarus/MainWindow/MainWindowVM.vb +++ b/Icarus/MainWindow/MainWindowVM.vb @@ -159,14 +159,19 @@ Public Class MainWindowVM End Function Friend Sub CloseApplication() - If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then + ' Se simulazione in corso + If Not IsNothing( Map.refSimulationPanelVM) AndAlso Map.refSimulationPanelVM.MySimul.bSimExecuting Then + ' Avvio l'arresto della simulazione + Map.refSimulationPanelVM.MySimul.SetSimulationStatus(MCH_SIM_ST.UI_STOP) + Map.refSimulationPanelVM.MySimul.m_bSimulEndExitApp = True Return End If - ' gestisco la chiusura della simulazione + ' Chiusura della simulazione If Map.refRightPanelVM.SelPanel = RightPanelVM.Panels.SIMULATION AndAlso Not IsNothing(Map.refSimulationPanelVM) Then Map.refSimulationPanelVM.MySimul.ResetSimulation() End If - Dim bAllowClose As Boolean = Map.refSceneHostVM.ManageModified() + ' Gestisco eventuale file corrente modificato + Dim bAllowClose As Boolean = Map.refSceneHostVM.MainController.ManageModified() ' Se non confermata chiusura, esco If Not bAllowClose Then Return ' salvo modo di visualizzazione diff --git a/Icarus/ManagePartPanel/ManagePartPanelV.xaml b/Icarus/ManagePartPanel/ManagePartPanelV.xaml index fb93b42..e2a3bac 100644 --- a/Icarus/ManagePartPanel/ManagePartPanelV.xaml +++ b/Icarus/ManagePartPanel/ManagePartPanelV.xaml @@ -49,8 +49,13 @@ Style="{StaticResource BaseTextBlock}"/> + Visibility="{Binding TextBox_Visibility}"> + + + + @@ -69,8 +74,13 @@ Style="{StaticResource BaseTextBlock}"/> + Visibility="{Binding TextBox_Visibility}"> + + + + diff --git a/Icarus/ManagePartPanel/ManagePartPanelV.xaml.vb b/Icarus/ManagePartPanel/ManagePartPanelV.xaml.vb index ff9c652..814dd7a 100644 --- a/Icarus/ManagePartPanel/ManagePartPanelV.xaml.vb +++ b/Icarus/ManagePartPanel/ManagePartPanelV.xaml.vb @@ -23,4 +23,12 @@ End Select End Sub + Private Sub TextBox_PreviewKeyDown(sender As Object, e As KeyEventArgs) + ' per evitare che il click del tasto Enter a fine edit faccia scattare anche la chiusura + ' di tutto il pannello a causa del IsDefault sul tasto di chiusura, termino la gestione del click + If e.Key = Key.Enter Then + e.Handled = True + End If + End Sub + End Class diff --git a/Icarus/ManagePartPanel/ManagePartPanelVM.vb b/Icarus/ManagePartPanel/ManagePartPanelVM.vb index 1aedc18..82c58a2 100644 --- a/Icarus/ManagePartPanel/ManagePartPanelVM.vb +++ b/Icarus/ManagePartPanel/ManagePartPanelVM.vb @@ -472,14 +472,6 @@ Public Class ManagePartPanelVM Map.refSliceManagerVM.UpdateDimensions() Next End If - 'EgtAddMachGroup("3dPrint") - 'EgtSetTable("Tab") - - 'Dim nRawId As Integer = EgtAddRawPart(b3PrintSolid.Min, b3PrintSolid.DimX, b3PrintSolid.DimY, b3PrintSolid.DimZ, New Color3d(128, 128, 128, 30)) - 'EgtAddPartToRawPart(nPartId, b3PrintSolid.Min, nRawId) - 'EgtMoveToCornerRawPart(nRawId, New Point3d(dPosX, dPosY, 0), MCH_CR.BL) - - 'EgtResetCurrMachGroup() ' seleziono ultimo pezzo aggiunto Map.refTopPanelVM.SelLastPart() diff --git a/Icarus/MaterialDb/Material.vb b/Icarus/MaterialDb/Material.vb index 11ad06e..5792e8d 100644 --- a/Icarus/MaterialDb/Material.vb +++ b/Icarus/MaterialDb/Material.vb @@ -285,6 +285,8 @@ Public Class MaterialIndex sParamKey = MAT_KZ Case MaterialParam.Params.KN sParamKey = MAT_KN + Case MaterialParam.Params.TDRYER + sParamKey = MAT_TDRYER End Select Return ReadMaterialParamDouble(m_nIndex, sParamKey, dDefault) End Function @@ -346,6 +348,7 @@ Public Class MaterialCathegory m_MaterialParamList = New List(Of MaterialParam)({New NumericMaterialParam(MaterialParam.Params.K_EXTRUSION, nIndex), New NumericMaterialParam(MaterialParam.Params.K_LAY_TIME, nIndex), New NumericMaterialParam(MaterialParam.Params.DENSITY, nIndex), + New NumericMaterialParam(MaterialParam.Params.TDRYER, nIndex), New StringMaterialParam(MaterialParam.Params.ORIG, nIndex)}) m_Cathegory_Visibility = Visibility.Visible Case Cathegories.TEMPERATURES @@ -419,6 +422,7 @@ Public MustInherit Class MaterialParam KZ = 20 KN = 21 ORIG = 22 + TDRYER = 23 End Enum Private m_Type As Params @@ -478,6 +482,8 @@ Public MustInherit Class MaterialParam m_sName = "KZ" Case Params.KN m_sName = "KN" + Case Params.TDRYER + m_sName = "Dryer Temperature" Case Params.ORIG m_sName = "Original" End Select @@ -498,13 +504,13 @@ Public Class NumericMaterialParam Private m_dValue As Double Public Property dValue As String Get - Return If(m_bIsLen, LenToString(m_dValue, 1), m_dValue) + Return If(m_bIsLen, LenToString(m_dValue, 5), DoubleToString(m_dValue, 5)) End Get Set(value As String) If m_bIsLen Then StringToLen(value, m_dValue) Else - m_dValue = value + StringToDouble(value, m_dValue) End If NotifyPropertyChanged(NameOf(dValue)) End Set @@ -583,6 +589,9 @@ Public Class NumericMaterialParam Case Params.KN m_dValue = ReadMaterialParamDouble(nIndex, MAT_KN, 0) m_bIsLen = False + Case Params.TDRYER + m_dValue = ReadMaterialParamDouble(nIndex, MAT_TDRYER, 0) + m_bIsLen = False End Select m_dOrigValue = m_dValue End Sub @@ -633,6 +642,8 @@ Public Class NumericMaterialParam WriteMaterialParam(nIndex, MAT_KZ, sWriteValue, sFilePath) Case Params.KN WriteMaterialParam(nIndex, MAT_KN, sWriteValue, sFilePath) + Case Params.TDRYER + WriteMaterialParam(nIndex, MAT_TDRYER, sWriteValue, sFilePath) End Select End Sub diff --git a/Icarus/MaterialDb/MaterialDbVM.vb b/Icarus/MaterialDb/MaterialDbVM.vb index 0c34f08..6da5a0f 100644 --- a/Icarus/MaterialDb/MaterialDbVM.vb +++ b/Icarus/MaterialDb/MaterialDbVM.vb @@ -285,17 +285,19 @@ Public Class MaterialDbVM ' aggiorno lista materiali Db Init() ' aggiorno lista materiali TopBar - Dim PrevMaterialGuid As String = Map.refTopPanelVM.SelMaterial.sGUID Map.refTopPanelVM.InitMaterialList() - Dim PrevMaterial As MaterialIndex = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sGUID = PrevMaterialGuid) - If Not IsNothing(PrevMaterial) Then - Map.refTopPanelVM.SetSelMaterial(PrevMaterial) - Else - Map.refTopPanelVM.SelMaterial = Nothing - Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.SelMaterial)) + If Not IsNothing(Map.refTopPanelVM.SelMaterial) Then + Dim PrevMaterialGuid As String = Map.refTopPanelVM.SelMaterial.sGUID + Dim PrevMaterial As MaterialIndex = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sGUID = PrevMaterialGuid) + If Not IsNothing(PrevMaterial) Then + Map.refTopPanelVM.SetSelMaterial(PrevMaterial) + Else + Map.refTopPanelVM.SelMaterial = Nothing + Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.SelMaterial)) + End If + ' ricarico lavorazioni per aggiorno liste materiali all'interno + Map.refMachiningDbVM.Init() End If - ' ricarico lavorazioni per aggiorno liste materiali all'interno - Map.refMachiningDbVM.Init() End If ' ripristino modalita' standard Map.refTopPanelVM.SelPage = Pages.MODIFY diff --git a/Icarus/My Project/AssemblyInfo.vb b/Icarus/My Project/AssemblyInfo.vb index dc5eac4..5b465cb 100644 --- a/Icarus/My Project/AssemblyInfo.vb +++ b/Icarus/My Project/AssemblyInfo.vb @@ -30,7 +30,7 @@ Imports System.Windows #End If - + @@ -70,5 +70,5 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + + diff --git a/Icarus/OptionsWindow/OptionModule.vb b/Icarus/OptionsWindow/OptionModule.vb index e827d44..9677134 100644 --- a/Icarus/OptionsWindow/OptionModule.vb +++ b/Icarus/OptionsWindow/OptionModule.vb @@ -15,6 +15,8 @@ Friend Module OptionModule Friend m_bThickLine As Boolean ' Flag per visualizzazione smussata delle superfici Friend m_bSmoothTriMesh As Boolean + ' Flag per visualizzazione semplificate sezione strand + Friend m_bUseSimplifiedSection As Boolean ' Colore di default in disegno Friend m_DefMaterialColor As Color3d @@ -43,6 +45,14 @@ Friend Module OptionModule Friend m_sFont As String Friend m_dTextHeight As Double + ' Parametri per la griglia + Friend m_bGridVisibility As Boolean + Friend m_dSnapStepMm As Double + Friend m_dSnapStepInch As Double + Friend m_nMinLineSStep As Integer + Friend m_nMajLineSStep As Integer + Friend m_nExtSStep As Integer + ' Variabili che indicano per ogni tipo di lavorazione quale geometria è selezionabile 'Friend m_SelGeomSawing As SceneSelModeOpt 'Friend m_SelGeomDrilling As SceneSelModeOpt @@ -99,6 +109,8 @@ Friend Module OptionModule m_bThickLine = GetMainPrivateProfileInt(S_SCENE, K_LINEWIDTH, 1) <> 1 ' Inizializzo flag visualizzazione smussata delle superfici m_bSmoothTriMesh = GetMainPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1) <> 0 + ' Inizializzo flag visualizzazione sezione strand semplificata + m_bUseSimplifiedSection = GetMainPrivateProfileInt(S_SOLIDS, K_SIMPLIFIEDSECTION, 0) <> 0 ' Inizio colore di default in disegno Dim DefColor As New Color3d(0, 0, 0) GetMainPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor) @@ -108,6 +120,13 @@ Friend Module OptionModule ' Inizializzo variabili per import m_dDxfScaleFactor = GetMainPrivateProfileDouble(S_IMPORT, K_DXFSCALE, 1) m_dStlScaleFactor = GetMainPrivateProfileDouble(S_IMPORT, K_STLSCALE, 1) + ' Inizializzo parametri griglia + m_bGridVisibility = (GetMainPrivateProfileInt(S_GRID, K_SHOWGRID, 1) <> 0) + m_dSnapStepMm = GetMainPrivateProfileDouble(S_GRID, K_SNAPSTEP, 10) + m_dSnapStepInch = GetMainPrivateProfileDouble(S_GRID, K_SNAPSTEPINCH, 12.7) + m_nMinLineSStep = GetMainPrivateProfileInt(S_GRID, K_MINLINESSTEP, 1) + m_nMajLineSStep = GetMainPrivateProfileInt(S_GRID, K_MAJLINESSTEP, 10) + m_nExtSStep = GetMainPrivateProfileInt(S_GRID, K_EXTSSTEP, 100) End Sub End Module \ No newline at end of file diff --git a/Icarus/OptionsWindow/OptionWindowV.xaml b/Icarus/OptionsWindow/OptionWindowV.xaml index 3462b49..af22aac 100644 --- a/Icarus/OptionsWindow/OptionWindowV.xaml +++ b/Icarus/OptionsWindow/OptionWindowV.xaml @@ -61,6 +61,7 @@ + @@ -70,6 +71,10 @@ Grid.Row="1" Margin="0,5,0,5"/> + +