From f4163dc818a25d427f9f95eebd4138d14e400b48 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 13 Jan 2026 20:19:02 +0100 Subject: [PATCH] EgtCAM5 : - aggiunte toolbar per Window e per Trimming. --- Constants/ConstIni.vb | 14 ++++++--- EgtCAM5.vbproj | 18 ++++++++++- OptionsWindow/OptionModule.vb | 4 +++ OptionsWindow/OptionWindowV.xaml | 20 +++++++++---- OptionsWindow/OptionWindowVM.vb | 40 +++++++++++++++++++++++++ Project/ProjectV.xaml.vb | 7 ----- Special-Trimming/TrimmingPanelV.xaml | 22 ++++++++++++++ Special-Trimming/TrimmingPanelV.xaml.vb | 3 ++ Special-Trimming/TrimmingPanelVM.vb | 40 +++++++++++++++++++++++++ Special-Window/WindowPanelV.xaml | 22 ++++++++++++++ Special-Window/WindowPanelV.xaml.vb | 3 ++ Special-Window/WindowPanelVM.vb | 40 +++++++++++++++++++++++++ TopCommandBar/TopCommandBarVM.vb | 4 +++ TopTray/TopTrayV.xaml | 2 ++ Utility/Dictionary.xaml | 2 ++ Utility/IniFile.vb | 25 ++++++++++++++++ Utility/Map.vb | 20 +++++++++++++ 17 files changed, 269 insertions(+), 17 deletions(-) create mode 100644 Special-Trimming/TrimmingPanelV.xaml create mode 100644 Special-Trimming/TrimmingPanelV.xaml.vb create mode 100644 Special-Trimming/TrimmingPanelVM.vb create mode 100644 Special-Window/WindowPanelV.xaml create mode 100644 Special-Window/WindowPanelV.xaml.vb create mode 100644 Special-Window/WindowPanelVM.vb diff --git a/Constants/ConstIni.vb b/Constants/ConstIni.vb index 938ca42..008ef2e 100644 --- a/Constants/ConstIni.vb +++ b/Constants/ConstIni.vb @@ -144,10 +144,6 @@ Module ConstIni Public Const K_BEAMWALLBASEDIR As String = "BaseDir" Public Const K_BEAMWALLBUTTON As String = "Button" - Public Const S_PRINTING3D As String = "3dPrinting" - Public Const K_ENABLE As String = "Enable" - Public Const K_3PRNBASEDIR As String = "BaseDir" - Public Const S_DOORS As String = "Doors" Public Const K_DDFENABLE As String = "DdfEnable" Public Const K_BASEDIR As String = "BaseDir" @@ -161,6 +157,16 @@ Module ConstIni Public Const K_MTABLEWINPLACE As String = "MTableWinPlace" Public Const K_OPTIMIZEMACHFORLINE As String = "OptimizeMachForLine" + Public Const S_WINDOW As String = "Window" + Public Const K_WINDOWENABLE As String = "JwdEnable" + Public Const K_WINDOWBASEDIR As String = "BaseDir" + Public Const K_WINDOWBUTTON As String = "Button" + + Public Const S_TRIMMING As String = "Trimming" + Public Const K_TRIMMINGENABLE As String = "TrimEnable" + Public Const K_TRIMMINGBASEDIR As String = "BaseDir" + Public Const K_TRIMMINGBUTTON As String = "Button" + Public Const S_GUNSTOCK As String = "GunStock" Public Const K_GUNSTOCKENABLE As String = "GsEnable" Public Const K_GUNSTOCKEXEC As String = "GsExec" diff --git a/EgtCAM5.vbproj b/EgtCAM5.vbproj index 844d935..5d2fba5 100644 --- a/EgtCAM5.vbproj +++ b/EgtCAM5.vbproj @@ -293,8 +293,16 @@ WallPanelV.xaml - + + + TrimmingPanelV.xaml + + + + WindowPanelV.xaml + + SpecialPanelV.xaml @@ -642,6 +650,14 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + Designer MSBuild:Compile diff --git a/OptionsWindow/OptionModule.vb b/OptionsWindow/OptionModule.vb index 2375744..09ce8d0 100644 --- a/OptionsWindow/OptionModule.vb +++ b/OptionsWindow/OptionModule.vb @@ -74,6 +74,8 @@ Friend Module OptionModule Friend m_bBeamOn As Boolean Friend m_bWallOn As Boolean Friend m_bDoorsOn As Boolean + Friend m_bWindowOn As Boolean + Friend m_bTrimmingOn As Boolean Friend m_bGunstockOn As Boolean ' inizializzazione lettura variabili ad inizio programma @@ -184,6 +186,8 @@ Friend Module OptionModule m_bBeamOn = (GetPrivateProfileInt(S_BEAM, K_BEAMENABLE, 0) <> 0) m_bWallOn = (GetPrivateProfileInt(S_WALL, K_WALLENABLE, 0) <> 0) m_bDoorsOn = (GetPrivateProfileInt(S_DOORS, K_DDFENABLE, 0) <> 0) + m_bWindowOn = (GetPrivateProfileInt(S_WINDOW, K_WINDOWENABLE, 0) <> 0) + m_bTrimmingOn = (GetPrivateProfileInt(S_TRIMMING, K_TRIMMINGENABLE, 0) <> 0) m_bGunstockOn = (GetPrivateProfileInt(S_GUNSTOCK, K_GUNSTOCKENABLE, 0) <> 0) End Sub diff --git a/OptionsWindow/OptionWindowV.xaml b/OptionsWindow/OptionWindowV.xaml index 0df904f..72e4319 100644 --- a/OptionsWindow/OptionWindowV.xaml +++ b/OptionsWindow/OptionWindowV.xaml @@ -445,6 +445,8 @@ + + @@ -467,14 +469,22 @@ + + + + + diff --git a/Special-Trimming/TrimmingPanelV.xaml.vb b/Special-Trimming/TrimmingPanelV.xaml.vb new file mode 100644 index 0000000..31a6e10 --- /dev/null +++ b/Special-Trimming/TrimmingPanelV.xaml.vb @@ -0,0 +1,3 @@ +Public Class TrimmingPanelV + +End Class diff --git a/Special-Trimming/TrimmingPanelVM.vb b/Special-Trimming/TrimmingPanelVM.vb new file mode 100644 index 0000000..eb70271 --- /dev/null +++ b/Special-Trimming/TrimmingPanelVM.vb @@ -0,0 +1,40 @@ +Imports System.IO +Imports EgtUILib + +Public Class TrimmingPanelVM + Inherits VMBase + + Private m_ButtonList As New List(Of ButtonItem) + Public ReadOnly Property ButtonList As List(Of ButtonItem) + Get + Return m_ButtonList + End Get + End Property + + Private m_TrimmingPanel_Visibility As Visibility + Public ReadOnly Property TrimmingPanel_Visibility As Visibility + Get + Return m_TrimmingPanel_Visibility + End Get + End Property + Friend Sub SetTrimmingPanelVisibility(bValue As Boolean) + m_TrimmingPanel_Visibility = If(bValue, Visibility.Visible, Visibility.Collapsed) + NotifyPropertyChanged(NameOf(TrimmingPanel_Visibility)) + End Sub + + Sub New() + ' Creo riferimento a questa classe in Map + Map.SetRefTrimmingPanelVM(Me) + ' Se attivo, inizializzo i bottoni leggendoli da file ini + If IniFile.IsActiveTrimming() Then + ' Inizializzo i bottoni leggendoli da file ini + Dim BtnIndex As Integer = 1 + Dim CurrBtn As ButtonItem = Nothing + While GetPrivateProfileButton(S_TRIMMING, K_TRIMMINGBUTTON & BtnIndex, IniFile.m_sTrimmingDirPath, CurrBtn) + m_ButtonList.Add(CurrBtn) + BtnIndex += 1 + End While + End If + End Sub + +End Class diff --git a/Special-Window/WindowPanelV.xaml b/Special-Window/WindowPanelV.xaml new file mode 100644 index 0000000..87f5465 --- /dev/null +++ b/Special-Window/WindowPanelV.xaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + diff --git a/Special-Window/WindowPanelV.xaml.vb b/Special-Window/WindowPanelV.xaml.vb new file mode 100644 index 0000000..d4bfd9a --- /dev/null +++ b/Special-Window/WindowPanelV.xaml.vb @@ -0,0 +1,3 @@ +Public Class WindowPanelV + +End Class diff --git a/Special-Window/WindowPanelVM.vb b/Special-Window/WindowPanelVM.vb new file mode 100644 index 0000000..53ac2a2 --- /dev/null +++ b/Special-Window/WindowPanelVM.vb @@ -0,0 +1,40 @@ +Imports System.IO +Imports EgtUILib + +Public Class WindowPanelVM + Inherits VMBase + + Private m_ButtonList As New List(Of ButtonItem) + Public ReadOnly Property ButtonList As List(Of ButtonItem) + Get + Return m_ButtonList + End Get + End Property + + Private m_WindowPanel_Visibility As Visibility + Public ReadOnly Property WindowPanel_Visibility As Visibility + Get + Return m_WindowPanel_Visibility + End Get + End Property + Friend Sub SetWindowPanelVisibility(bValue As Boolean) + m_WindowPanel_Visibility = If(bValue, Visibility.Visible, Visibility.Collapsed) + NotifyPropertyChanged(NameOf(WindowPanel_Visibility)) + End Sub + + Sub New() + ' Creo riferimento a questa classe in Map + Map.SetRefWindowPanelVM(Me) + ' Se attivo, inizializzo i bottoni leggendoli da file ini + If IniFile.IsActiveWindow() Then + ' Inizializzo i bottoni leggendoli da file ini + Dim BtnIndex As Integer = 1 + Dim CurrBtn As ButtonItem = Nothing + While GetPrivateProfileButton(S_WINDOW, K_WINDOWBUTTON & BtnIndex, IniFile.m_sWindowDirPath, CurrBtn) + m_ButtonList.Add(CurrBtn) + BtnIndex += 1 + End While + End If + End Sub + +End Class diff --git a/TopCommandBar/TopCommandBarVM.vb b/TopCommandBar/TopCommandBarVM.vb index 9f7c7e9..01b312e 100644 --- a/TopCommandBar/TopCommandBarVM.vb +++ b/TopCommandBar/TopCommandBarVM.vb @@ -809,6 +809,8 @@ Public Class TopCommandBarVM Map.refWallPanelVM.SetWallPanelVisibility(IniFile.IsActiveWall()) Map.refBeamWallPanelVM.SetBeamWallPanelVisibility(IniFile.IsActiveBeam() Or IniFile.IsActiveWall()) Map.refDoorPanelVM.SetDoorPanelVisibility(IniFile.IsActiveDoors()) + Map.refWindowPanelVM.SetWindowPanelVisibility(IniFile.IsActiveWindow()) + Map.refTrimmingPanelVM.SetTrimmingPanelVisibility(IniFile.IsActiveTrimming()) Map.refGunStockPanelVM.SetGunStockPanelVisibility(IniFile.IsActiveGunStock()) If Not IsNothing(Map.refDrawPanelVM) Then Map.refDrawPanelVM.SetDrawPanelVisibility(True) Map.refMachGroupPanelVM.SetMachGroupPanelVisibility(False) @@ -857,6 +859,8 @@ Public Class TopCommandBarVM Map.refWallPanelVM.SetWallPanelVisibility(False) Map.refBeamWallPanelVM.SetBeamWallPanelVisibility(False) Map.refDoorPanelVM.SetDoorPanelVisibility(IniFile.IsActiveDoors()) + Map.refWindowPanelVM.SetWindowPanelVisibility(False) + Map.refTrimmingPanelVM.SettrimmingPanelVisibility(False) Map.refGunStockPanelVM.SetGunStockPanelVisibility(False) If Not IsNothing(Map.refDrawPanelVM) Then Map.refDrawPanelVM.SetDrawPanelVisibility(False) Map.refMachGroupPanelVM.SetMachGroupPanelVisibility(IniFile.m_bMachiningGroup) diff --git a/TopTray/TopTrayV.xaml b/TopTray/TopTrayV.xaml index 782e3e3..c3bc17b 100644 --- a/TopTray/TopTrayV.xaml +++ b/TopTray/TopTrayV.xaml @@ -30,6 +30,8 @@ + + diff --git a/Utility/Dictionary.xaml b/Utility/Dictionary.xaml index 79f64ad..13abb99 100644 --- a/Utility/Dictionary.xaml +++ b/Utility/Dictionary.xaml @@ -36,6 +36,8 @@ + + diff --git a/Utility/IniFile.vb b/Utility/IniFile.vb index cf78546..131e31d 100644 --- a/Utility/IniFile.vb +++ b/Utility/IniFile.vb @@ -68,6 +68,7 @@ Public Module IniFile WALL = 512 PLUGIN = 1024 ADVMACHINING = 2048 + WINDOW = 4096 End Enum Friend m_sDataRoot As String Friend m_sConfigDir As String @@ -85,6 +86,10 @@ Public Module IniFile Friend m_sBeamWallDirPath As String ' path della cartella DOORS Friend m_sDoorsDirPath As String + ' path della cartella WINDOW + Friend m_sWindowDirPath As String + ' path della cartella TRIMMING + Friend m_strimmingDirPath As String ' path della cartella GUNSTOCK Friend m_sGunstockDirPath As String ' path della cartella Printing3d @@ -304,6 +309,26 @@ Public Module IniFile Return bIsActive End Function + Friend Function IsActiveWindow() As Boolean + Dim bIsActive As Boolean = (IniFile.m_nKeyOptions And KEY_OPT.WINDOW) <> 0 And (GetPrivateProfileInt(S_WINDOW, K_WINDOWENABLE, 0) <> 0) + If bIsActive Then + Dim sTemp As String = "" + GetPrivateProfileString(S_WINDOW, K_WINDOWBASEDIR, "", sTemp) + m_sWindowDirPath = sTemp.TrimEnd( "\"c) + End If + Return bIsActive + End Function + + Friend Function IsActiveTrimming() As Boolean + Dim bIsActive As Boolean = (GetPrivateProfileInt(S_TRIMMING, K_TRIMMINGENABLE, 0) <> 0) + If bIsActive Then + Dim sTemp As String = "" + GetPrivateProfileString(S_TRIMMING, K_TRIMMINGBASEDIR, "", sTemp) + m_sTrimmingDirPath = sTemp.TrimEnd( "\"c) + End If + Return bIsActive + End Function + Friend Function IsActiveGunStock() As Boolean Dim bIsActive As Boolean = (IniFile.m_nKeyOptions And KEY_OPT.GUNSTOCK) <> 0 And (GetPrivateProfileInt(S_GUNSTOCK, K_GUNSTOCKENABLE, 0) <> 0) If bIsActive Then diff --git a/Utility/Map.vb b/Utility/Map.vb index 76b6523..855bb7c 100644 --- a/Utility/Map.vb +++ b/Utility/Map.vb @@ -33,6 +33,8 @@ Module Map Private m_refBeamPanelVM As BeamPanelVM Private m_refWallPanelVM As WallPanelVM Private m_refBeamWallPanelVM As BeamWallPanelVM + Private m_refWindowPanelVM As WindowPanelVM + Private m_refTrimmingPanelVM As TrimmingPanelVM Private m_refGunStockPanelVM As GunStockPanelVM Private m_refMachiningParameterExpanderVM As MachiningParameterExpanderVM @@ -158,6 +160,16 @@ Module Map Return m_refDoorPanelVM End Get End Property + Public ReadOnly Property refWindowPanelVM As WindowPanelVM + Get + Return m_refWindowPanelVM + End Get + End Property + Public ReadOnly Property refTrimmingPanelVM As TrimmingPanelVM + Get + Return m_refTrimmingPanelVM + End Get + End Property Public ReadOnly Property refSpecialPanelVM As SpecialPanelVM Get Return m_refSpecialPanelVM @@ -311,6 +323,14 @@ Module Map m_refBeamWallPanelVM = BeamWallPanelVM Return Not IsNothing(m_refBeamWallPanelVM) End Function + Friend Function SetRefWindowPanelVM(WindowPanelVM As WindowPanelVM) As Boolean + m_refWindowPanelVM = WindowPanelVM + Return Not IsNothing(m_refWindowPanelVM) + End Function + Friend Function SetRefTrimmingPanelVM(TrimmingPanelVM As TrimmingPanelVM) As Boolean + m_refTrimmingPanelVM = TrimmingPanelVM + Return Not IsNothing(m_refTrimmingPanelVM) + End Function Friend Function SetRefGunStockPanelVM(GunStockPanelVM As GunStockPanelVM) As Boolean m_refGunStockPanelVM = GunStockPanelVM Return Not IsNothing(m_refGunStockPanelVM)