From 6591de143a9067cf705b03c9358d9629f63223ce Mon Sep 17 00:00:00 2001 From: Demetrio Cassarino Date: Fri, 6 Jun 2025 09:33:32 +0200 Subject: [PATCH] -aggiunto scena assemblato -migliorato gestione popup --- .../BTLViewModel/BTLPartVM.vb | 7 +- .../BTLViewModel/BTLStructureVM.vb | 22 ++- .../CALCPanel/CALCPanelVM.vb | 5 +- .../EgtBEAMWALL.Optimizer.vbproj | 7 + .../LeftPanel/LeftPanelVM.vb | 15 +- .../LeftPanel/OnlyProdLeftPanelV.xaml | 2 +- .../MachGroupPanel/MyMachGroupVM.vb | 47 ++++- .../OnlyProdManager/OnlyProdManagerVM.vb | 21 +- .../Project/OnlyProdProjectV.xaml | 7 +- .../RawPartManager/RawPartManagerVM.vb | 5 +- .../SceneShowBulding/SceneShowBuldingV.xaml | 10 + .../SceneShowBuldingV.xaml.vb | 105 ++++++++++ .../ShowBeamPanel/ShowBeamPanelVM.vb | 13 +- .../Utility/Configuration.vb | 185 +----------------- EgtBEAMWALL.Optimizer/Utility/MapV.vb | 12 ++ 15 files changed, 250 insertions(+), 213 deletions(-) create mode 100644 EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml create mode 100644 EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml.vb diff --git a/EgtBEAMWALL.Optimizer/BTLViewModel/BTLPartVM.vb b/EgtBEAMWALL.Optimizer/BTLViewModel/BTLPartVM.vb index 0b18c45b..153ff7f4 100644 --- a/EgtBEAMWALL.Optimizer/BTLViewModel/BTLPartVM.vb +++ b/EgtBEAMWALL.Optimizer/BTLViewModel/BTLPartVM.vb @@ -1554,10 +1554,9 @@ Public Class BTLPartVM EgtDraw() NotifyPropertyChanged(NameOf(SelBTLFeatureVM)) ' se modalità building, la tolgo - If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then + If Not IsNothing(m_SelBTLFeatureVM) AndAlso Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) Map.refShowBeamPanelVM.SetShowBuilding(False) - Map.refProjectVM.BTLStructureVM.SceneSelPartSelection() End If End Set End Property @@ -1584,11 +1583,11 @@ Public Class BTLPartVM End If EgtDraw() NotifyPropertyChanged(NameOf(SelBTLFeatureVM)) + NotifyPropertyChanged(NameOf(SelBTLFeatureVMOnlyGraph)) ' se modalità building, la tolgo - If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then + If Not IsNothing(m_SelBTLFeatureVM) AndAlso Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) Map.refShowBeamPanelVM.SetShowBuilding(False) - Map.refProjectVM.BTLStructureVM.SceneSelPartSelection() End If End Set End Property diff --git a/EgtBEAMWALL.Optimizer/BTLViewModel/BTLStructureVM.vb b/EgtBEAMWALL.Optimizer/BTLViewModel/BTLStructureVM.vb index 964071a9..615f46fa 100644 --- a/EgtBEAMWALL.Optimizer/BTLViewModel/BTLStructureVM.vb +++ b/EgtBEAMWALL.Optimizer/BTLViewModel/BTLStructureVM.vb @@ -107,7 +107,8 @@ Public Class BTLStructureVM 'Map.refProjectVM.BTLStructureVM.ShowBuilding(If(Map.refMainMenuVM.SelPage = Pages.VIEW OrElse Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE, Map.refShowBeamPanelVM.ShowBuilding_IsChecked, False), False) End Select ' aggiornamento grafica - Configuration.UpdateGraphics() + If Not IsNothing(Map.refFeatureListManagerVM) Then Map.refFeatureListManagerVM.PartShowAllChanged() + If Not IsNothing(Map.refBTLPartManagerVM) Then Map.refBTLPartManagerVM.PartShowAllChanged() If Not IsNothing(Map.refFeatureListManagerVM) Then Map.refFeatureListManagerVM.FeatureSelectionChanged() End Sub @@ -142,7 +143,8 @@ Public Class BTLStructureVM End If End Select ' aggiornamento grafica - Configuration.UpdateGraphics() + If Not IsNothing(Map.refFeatureListManagerVM) Then Map.refFeatureListManagerVM.PartShowAllChanged() + If Not IsNothing(Map.refBTLPartManagerVM) Then Map.refBTLPartManagerVM.PartShowAllChanged() End Sub Public Sub SelectBTLPart(BtlPart As BTLPartVM) @@ -159,6 +161,7 @@ Public Class BTLStructureVM ' se modalità building, la tolgo If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then ShowBuilding(False, False) + Map.refShowBeamPanelVM.SetShowBuilding(False) End If SceneSelPartSelection() ' seleziono pezzo in Db geometrico @@ -216,6 +219,7 @@ Public Class BTLStructureVM ' se modalità building, la tolgo If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then ShowBuilding(False, False) + Map.refShowBeamPanelVM.SetShowBuilding(False) End If SceneSelPartSelection() ' seleziono pezzo in Db geometrico @@ -919,7 +923,6 @@ Public Class BTLStructureVM AddHandler m_BTLPartVMList.CollectionChanged, AddressOf OnBTLPartVMListChanged End Sub - Friend Sub LoadFilters() For Each BTLPartVM As BTLPartVM In m_BTLPartVMList ' verifico sezione, gruppo e sottogruppo per inserirli nei filtri @@ -1030,8 +1033,17 @@ Public Class BTLStructureVM End Sub Friend Sub ShowBuilding(bShow As Boolean, Optional bRedraw As Boolean = True) - If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) AndAlso Not IsNothing(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup) Then - EgtSetStatus(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id, GDB_ST.OFF) + 'If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) AndAlso Not IsNothing(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup) Then + ' EgtSetStatus(Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.Id, GDB_ST.OFF) + 'End If + If bShow Then + ShowAll(False) + Dim CurrProdPathFile As String = ProjectManagerVM.CurrProj.sProjPath + If IO.File.Exists(CurrProdPathFile) Then + EgtOpenFile(CurrProdPathFile) + Else + EgtOutLog("File nge mancante") + End If End If ' disabilito impostazione modificato Dim DisableMgr As New DisableModifiedMgr diff --git a/EgtBEAMWALL.Optimizer/CALCPanel/CALCPanelVM.vb b/EgtBEAMWALL.Optimizer/CALCPanel/CALCPanelVM.vb index 5ea22c12..303950ac 100644 --- a/EgtBEAMWALL.Optimizer/CALCPanel/CALCPanelVM.vb +++ b/EgtBEAMWALL.Optimizer/CALCPanel/CALCPanelVM.vb @@ -657,7 +657,10 @@ Public Class CALCPanelVM (Map.refMainMenuVM.SelPage = Pages.MACHINING AndAlso (IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM))) OrElse (Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE AndAlso (IsNothing(ProjectManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM)) AndAlso (IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM))) Then Return ' se modalita' assemblato - Configuration.AssembledMode(Map.refShowBeamPanelVM.ShowBuilding_IsChecked) + If Map.refShowBeamPanelVM.ShowBuilding_IsChecked AndAlso Map.refShowBeamPanelVM.bShowAll Then + ' devo smontarlo prima di calcolare le travi, altrimenti non trova i pezzi + Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) + End If Dim BarList() As EgtBEAMWALL.Core.Bar = Nothing Dim ProjType As BWType If Map.refMainMenuVM.SelPage = Pages.VIEW Then diff --git a/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj b/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj index 357e8601..ecbca99c 100644 --- a/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj +++ b/EgtBEAMWALL.Optimizer/EgtBEAMWALL.Optimizer.vbproj @@ -195,6 +195,9 @@ SceneHostV.xaml + + SceneShowBuldingV.xaml + SetUpV.xaml @@ -680,6 +683,10 @@ MSBuild:Compile Designer + + Designer + MSBuild:Compile + MSBuild:Compile Designer diff --git a/EgtBEAMWALL.Optimizer/LeftPanel/LeftPanelVM.vb b/EgtBEAMWALL.Optimizer/LeftPanel/LeftPanelVM.vb index 23bb41a1..d39d2bbf 100644 --- a/EgtBEAMWALL.Optimizer/LeftPanel/LeftPanelVM.vb +++ b/EgtBEAMWALL.Optimizer/LeftPanel/LeftPanelVM.vb @@ -199,7 +199,10 @@ Public Class LeftPanelVM Friend Sub VerifyAll() If (Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE AndAlso (IsNothing(ProjectManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM)) AndAlso (IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM))) Then Return ' se modalita' assemblato - Configuration.AssembledMode(Map.refShowBeamPanelVM.ShowBuilding_IsChecked) + If Map.refShowBeamPanelVM.ShowBuilding_IsChecked AndAlso Map.refShowBeamPanelVM.bShowAll Then + ' devo smontarlo prima di calcolare le travi, altrimenti non trova i pezzi + Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) + End If Dim BarList() As EgtBEAMWALL.Core.Bar = Nothing Dim ProjType As BWType = ProjectManagerVM.CurrProd.nType If Not CreateBarListToVerify(ProjType, BarList) Then Return @@ -282,7 +285,10 @@ Public Class LeftPanelVM Dim CurrSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SelSection ' se modalita' assemblato Dim bShowBuilding As Boolean = Map.refShowBeamPanelVM.ShowBuilding_IsChecked - Configuration.AssembledMode(bShowBuilding) + If bShowBuilding AndAlso Map.refShowBeamPanelVM.bShowAll Then + ' devo smontarlo prima di calcolare le travi, altrimenti non trova i pezzi + Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) + End If ' ruoto i pezzi selezionati For Each Part In Map.refProjectVM.BTLStructureVM.SelBTLParts Part.BackRotation(False, False) @@ -321,7 +327,10 @@ Public Class LeftPanelVM If ((Map.refMainMenuVM.SelPage = Pages.VIEW OrElse Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE) AndAlso IsNothing(ProjectManagerVM.CurrProj)) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return ' se modalita' assemblato Dim bShowBuilding As Boolean = Map.refShowBeamPanelVM.ShowBuilding_IsChecked - Configuration.AssembledMode(bShowBuilding) + If bShowBuilding AndAlso Map.refShowBeamPanelVM.bShowAll Then + ' devo smontarlo prima di calcolare le travi, altrimenti non trova i pezzi + Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) + End If ' inverto i pezzi selezionati For Each Part In Map.refProjectVM.BTLStructureVM.SelBTLParts Part.Invert() diff --git a/EgtBEAMWALL.Optimizer/LeftPanel/OnlyProdLeftPanelV.xaml b/EgtBEAMWALL.Optimizer/LeftPanel/OnlyProdLeftPanelV.xaml index 892bdcff..b1fa8cdd 100644 --- a/EgtBEAMWALL.Optimizer/LeftPanel/OnlyProdLeftPanelV.xaml +++ b/EgtBEAMWALL.Optimizer/LeftPanel/OnlyProdLeftPanelV.xaml @@ -121,7 +121,7 @@ ToolTip="Ruota Tutti" IsEnabled="{Binding RotatePart_IsEnabled}" Style="{StaticResource OnlyProdLeftPanel_Button}"> - + - + diff --git a/EgtBEAMWALL.Optimizer/RawPartManager/RawPartManagerVM.vb b/EgtBEAMWALL.Optimizer/RawPartManager/RawPartManagerVM.vb index c1fb51af..8562a4fb 100644 --- a/EgtBEAMWALL.Optimizer/RawPartManager/RawPartManagerVM.vb +++ b/EgtBEAMWALL.Optimizer/RawPartManager/RawPartManagerVM.vb @@ -787,7 +787,10 @@ Public Class RawPartManagerVM Friend Sub VerifyAll() If (Map.refMainMenuVM.SelPage = Pages.ONLYPRODPAGE AndAlso (IsNothing(ProjectManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM)) AndAlso (IsNothing(ProjectManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM))) Then Return ' se modalita' assemblato - Configuration.AssembledMode(Map.refShowBeamPanelVM.ShowBuilding_IsChecked) + If Map.refShowBeamPanelVM.ShowBuilding_IsChecked AndAlso Map.refShowBeamPanelVM.bShowAll Then + ' devo smontarlo prima di calcolare le travi, altrimenti non trova i pezzi + Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) + End If Dim BarList() As EgtBEAMWALL.Core.Bar = Nothing Dim ProjType As BWType ProjType = ProjectManagerVM.CurrProd.nType diff --git a/EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml b/EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml new file mode 100644 index 00000000..0ef6e0c8 --- /dev/null +++ b/EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml.vb b/EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml.vb new file mode 100644 index 00000000..40785fd1 --- /dev/null +++ b/EgtBEAMWALL.Optimizer/SceneShowBulding/SceneShowBuldingV.xaml.vb @@ -0,0 +1,105 @@ +Imports EgtBEAMWALL.Core +Imports EgtUILib.EgtInterface +Imports EgtWPFLib5 + +Public Class SceneShowBuldingV + +#Region "CONSTRUCTOR" + + Sub New() + ' La chiamata è richiesta dalla finestra di progettazione. + InitializeComponent() + ' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent(). + ' Creo Riferimento + MapV.SetRefSceneShowBuldingV(Me) + ' Inizializzazione Scena + PreInitializeScene() + If SceneShowBulding.Init() And Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.BEAM Or KEY_OPT.WALL) Then + PostInitializeScene() + ' Imposto stato gestione mouse diretto della scena a nessuno + SceneShowBulding.SetStatusNull() + ' Imposto focus pulsante su false + SceneShowBulding.SetFocusOnMove(False) + ' Recupero e imposto handle finestra principale + 'Dim hMainWnd As IntPtr = New WindowInteropHelper(Application.Current.MainWindow).Handle + 'EgtSetMainWindowHandle(hMainWnd) + 'EgtSetCurrentContext(SceneShowBulding.GetCtx()) + ' Imposto direttorio ausiliario per import/gestione BTL + Dim sBtlAuxDir As String = String.Empty + GetMainPrivateProfileString(S_IMPORT, K_BTLAUXDIR, "", sBtlAuxDir) + EgtSetBtlAuxDir(sBtlAuxDir) + ' inizializzo gestore travi e pareti + EgtInitBeamMgr(EIB_FL.TS3_POS + EIB_FL.USEUATTR) + ' inizializzo gestore lavorazioni + EgtInitMachMgr(Map.refMainWindowVM.MainWindowM.sMachinesRoot, Map.refMainWindowVM.MainWindowM.sToolMakersDir) + ' Seleziono la macchina impostata nel file ini + Map.refMachinePanelVM.LoadCurrentMachine() + Return + End If + End Sub + +#End Region ' Constructor + +#Region "METHODS" + + Private Sub PreInitializeScene() + ' imposto colore di default + Dim DefColor As New Color3d(0, 0, 0) + GetMainPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor) + SceneShowBulding.SetDefaultMaterial(DefColor) + ' imposto colori sfondo + Dim BackTopColor As New Color3d(192, 192, 192) + GetMainPrivateProfileColor(S_SCENE, K_BACKTOP, BackTopColor) + Dim BackBotColor As New Color3d(BackTopColor) + GetMainPrivateProfileColor(S_SCENE, K_BACKBOTTOM, BackBotColor) + SceneShowBulding.SetViewBackground(BackTopColor, BackBotColor) + ' imposto colore di evidenziazione + Dim MarkColor As New Color3d(255, 255, 0) + GetMainPrivateProfileColor(S_SCENE, K_MARK, MarkColor) + SceneShowBulding.SetMarkMaterial(MarkColor) + ' imposto colore per superfici selezionate + Dim SelSurfColor As New Color3d(255, 255, 192) + GetMainPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor) + SceneShowBulding.SetSelSurfMaterial(SelSurfColor) + ' imposto tipo e colore del rettangolo di zoom + Dim bOutline As Boolean = True + Dim ZwColor As New Color3d(0, 0, 0) + GetMainPrivateProfileZoomWin(S_SCENE, K_ZOOMWIN, bOutline, ZwColor) + SceneShowBulding.SetZoomWinAttribs(bOutline, ZwColor) + ' imposto colore della linea di distanza + Dim DstLnColor As New Color3d(255, 0, 0) + GetMainPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor) + SceneShowBulding.SetDistLineMaterial(DstLnColor) + ' imposto parametri OpenGL + Dim nDriver As Integer = GetMainPrivateProfileInt(S_OPENGL, K_DRIVER, 3) + Dim b2Buff As Boolean = (GetMainPrivateProfileInt(S_OPENGL, K_DOUBLEBUFFER, 1) <> 0) + Dim nColorBits As Integer = GetMainPrivateProfileInt(S_OPENGL, K_COLORBITS, 32) + Dim nDepthBits As Integer = GetMainPrivateProfileInt(S_OPENGL, K_DEPTHBITS, 32) + SceneShowBulding.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits) + End Sub + + Private Sub PostInitializeScene() + ' imposto tipo coordinate + SceneShowBulding.SetGridCursorPos(True) + ' modo di visualizzazione + Dim nShowMode As Integer = GetMainPrivateProfileInt(S_SCENE, K_SHOWMODE, SM.SHADING) + 'Map.refShowPanelVM.SetShowMode(DirectCast(nShowMode, SM)) + EgtSetShowMode(DirectCast(nShowMode, SM)) + ' visualizzazione avanzata dei triangoli costituenti le superfici + Dim bShowTriaAdv As Boolean = (GetMainPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1) <> 0) + EgtSetShowTriaAdv(bShowTriaAdv) + ' tipo visualizzazione per Zmap + Dim nShowZmap As Integer = GetMainPrivateProfileInt(S_SCENE, K_SHOWZMAP, 1) + EgtSetShowZmap(DirectCast(nShowZmap, ZSM), False) + ' dimensione lineare max in pixel delle textures + Dim nTxrMaxLinPix As Integer = GetMainPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096) + EgtSetTextureMaxLinPixels(nTxrMaxLinPix) + ' tipo snap point + SceneShowBulding.SetSnapPointType(SP.PT_SKETCH) + ' imposto parametri geometrici griglia + EgtSetGridGeo(100, 1, 10, 100) + End Sub + +#End Region ' Methods + +End Class diff --git a/EgtBEAMWALL.Optimizer/ShowBeamPanel/ShowBeamPanelVM.vb b/EgtBEAMWALL.Optimizer/ShowBeamPanel/ShowBeamPanelVM.vb index 4eb6cb52..e243a6fb 100644 --- a/EgtBEAMWALL.Optimizer/ShowBeamPanel/ShowBeamPanelVM.vb +++ b/EgtBEAMWALL.Optimizer/ShowBeamPanel/ShowBeamPanelVM.vb @@ -51,7 +51,15 @@ Public Class ShowBeamPanelVM End Get Set(value As Boolean) m_bShowBuilding = value - If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then Map.refProjectVM.BTLStructureVM.ShowBuilding(m_bShowBuilding) + If m_bShowBuilding Then + Map.refProjectVM.SetSelManagerTab(ProjectVM.StrategyManagerTab.SCENESHOWBULDING) + EgtSetCurrentContext(MapV.refSceneShowBuldingV.SceneShowBulding.GetCtx()) + If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then Map.refProjectVM.BTLStructureVM.ShowBuilding(m_bShowBuilding) + Else + EgtSetCurrentContext(Map.refSceneHostVM.MainScene.GetCtx()) + Map.refProjectVM.SetSelManagerTab(ProjectVM.StrategyManagerTab.RAWPARTMANAGER) + End If + NotifyPropertyChanged(NameOf(ShowBuilding_IsChecked)) End Set End Property Friend Sub SetShowBuilding(bValue As Boolean) @@ -143,7 +151,8 @@ Public Class ShowBeamPanelVM Private Sub UpdatePartBtnIsEnabled() Map.refCALCPanelVM.PartShowAllChanged() - Configuration.UpdateGraphics() + If Not IsNothing(Map.refFeatureListManagerVM) Then Map.refFeatureListManagerVM.PartShowAllChanged() + If Not IsNothing(Map.refBTLPartManagerVM) Then Map.refBTLPartManagerVM.PartShowAllChanged() End Sub #End Region ' METHODS diff --git a/EgtBEAMWALL.Optimizer/Utility/Configuration.vb b/EgtBEAMWALL.Optimizer/Utility/Configuration.vb index 8f4a9a1a..048578dd 100644 --- a/EgtBEAMWALL.Optimizer/Utility/Configuration.vb +++ b/EgtBEAMWALL.Optimizer/Utility/Configuration.vb @@ -1,106 +1,10 @@ -Imports System.Collections.ObjectModel -Imports EgtBEAMWALL.Core +Imports EgtBEAMWALL.Core Imports EgtUILib Imports MigraDoc.DocumentObjectModel Imports MigraDoc.Rendering Module Configuration - ''' - ''' trovo ed evidenzio MachGroup e Duplo di questo pezzo - ''' - ''' Id pezzo - Friend Sub SetSearchPiece(nSelBTLPartId As Integer) - If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then - Dim MachGroupList As New List(Of MyMachGroupVM) - For Each Machgroup As MyMachGroupVM In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList - Dim bFound As Boolean = False - For Each Part As PartVM In Machgroup.PartVMList - If EgtDuploGetOriginal(Part.nPartId) = nSelBTLPartId Then - Part.SetSearchFound() - bFound = True - Else - Part.ResetSearchFound() - End If - Next - If bFound Then - Machgroup.SetSearchFound() - Else - Machgroup.ResetSearchFound() - End If - Next - End If - End Sub - - ''' - ''' deevidenzio MachGroup e Duplo di questo pezzo - ''' - ''' Id pezzo - Friend Sub ResetSearchPiece(nSelBTLPartId As Integer) - If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then - Dim MachGroupList As New List(Of MyMachGroupVM) - For Each Machgroup As MyMachGroupVM In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList - Dim bFound As Boolean = False - For Each Part As PartVM In Machgroup.PartVMList - If EgtDuploGetOriginal(Part.nPartId) = nSelBTLPartId Then - Part.ResetSearchFound() - bFound = True - End If - Next - If bFound Then - Machgroup.ResetSearchFound() - End If - Next - End If - End Sub - - ''' - ''' aggiornamento grafica - ''' - Friend Sub UpdateGraphics() - If Not IsNothing(Map.refFeatureListManagerVM) Then Map.refFeatureListManagerVM.PartShowAllChanged() - If Not IsNothing(Map.refBTLPartManagerVM) Then Map.refBTLPartManagerVM.PartShowAllChanged() - End Sub - - ''' - ''' evidenzio BTLPart di questo pezzo - ''' - ''' Id pezzo - Friend Sub SetSearch(nPartId As Integer) - For BTLPartIndex = 0 To Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1 - Dim nDuploOriginalId As Integer = 0 - If EgtGetInfo(nPartId, GDB_SI_DUPSOU, nDuploOriginalId) AndAlso nDuploOriginalId > 0 AndAlso nDuploOriginalId = Map.refProjectVM.BTLStructureVM.BTLPartVMList(BTLPartIndex).nPartId Then - Map.refProjectVM.BTLStructureVM.BTLPartVMList(BTLPartIndex).SetSearchFound() - Exit For - End If - Next - End Sub - - ''' - ''' deevidenzio BTLPart di questo pezzo - ''' - ''' Id pezzo - Friend Sub ResetSearch(nPartId As Integer) - For BTLPartIndex = 0 To Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1 - Dim nDuploOriginalId As Integer = 0 - If EgtGetInfo(nPartId, GDB_SI_DUPSOU, nDuploOriginalId) AndAlso nDuploOriginalId > 0 AndAlso nDuploOriginalId = Map.refProjectVM.BTLStructureVM.BTLPartVMList(BTLPartIndex).nPartId Then - Map.refProjectVM.BTLStructureVM.BTLPartVMList(BTLPartIndex).ResetSearchFound() - Exit For - End If - Next - End Sub - - ''' - ''' modalita' assemblato - ''' - ''' booleano visualizza modalita' assemblato - Friend Sub AssembledMode(bShowBuilding As Boolean) - If bShowBuilding AndAlso Map.refShowBeamPanelVM.bShowAll Then - ' devo smontarlo prima di calcolare le travi, altrimenti non trova i pezzi - Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False) - End If - End Sub - ''' ''' vista di tutti i pezzi ''' @@ -126,33 +30,6 @@ Module Configuration End If End Sub - ''' - ''' elimino i pezzi da sovrascrivere nel progetto corrente - ''' - ''' Lista BTLPart - Friend Sub DeletePieces(BTLPartList As ObservableCollection(Of BTLPartToUpdate)) - For Each BTLPartToOverwriteWith In BTLPartList - If BTLPartToOverwriteWith.bInsert Then - Dim BTLPartToUpdate As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPDN = BTLPartToOverwriteWith.nPDN) - ' se BTLPartToUpdate è Nothing significa che il pezzo è nuovo e quindi basta accodarlo senza eliminare nulla - If Not IsNothing(BTLPartToUpdate) Then - Dim nPartToDeleteId As Integer = BTLPartToUpdate.nPartId - Dim nCurrPartId = EgtGetCurrPart() - EgtErase(nPartToDeleteId) - nCurrPartId = EgtGetCurrPart() - ' verifico se rimuovere sezione dalla lista - If Not Map.refProjectVM.BTLStructureVM.BTLPartVMList.Any(Function(x) x IsNot BTLPartToUpdate AndAlso x.Section = BTLPartToUpdate.Section) Then - Map.refProjectVM.BTLStructureVM.SectionList.Remove(BTLPartToUpdate.Section) - End If - ' rimuovo dalla lista pezzi - Dim Index As Integer = Map.refProjectVM.BTLStructureVM.BTLPartVMList.IndexOf(BTLPartToUpdate) - Map.refProjectVM.BTLStructureVM.SetSelBTLPart(Nothing) - Map.refProjectVM.BTLStructureVM.BTLPartVMList.RemoveAt(Index) - End If - End If - Next - End Sub - ''' ''' tolgo eventuale indicazione solido rimasta da pezzo precedente ''' @@ -166,66 +43,6 @@ Module Configuration End If End Sub - ''' - ''' verifico se la dimensione e' maggiore del box minimo dei pezzi - ''' - ''' - ''' - Friend Sub VerifyMaxDimension(PartVMList As ObservableCollection(Of Core.PartVM), b3Parts As BBox3d) - Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(PartVMList(0).nPartId, "Box") - EgtGetBBoxGlob(nBoxLayerId, GDB_BB.EXACT, b3Parts) - For PartIndex = 1 To PartVMList.Count - 1 - Dim b3Part As New BBox3d - nBoxLayerId = EgtGetFirstNameInGroup(PartVMList(PartIndex).nPartId, "Box") - EgtGetBBoxGlob(nBoxLayerId, GDB_BB.EXACT, b3Part) - b3Parts.Add(b3Part) - Next - End Sub - - ''' - ''' riporto il grezzo nell'angolo tavola di origine - ''' - ''' - ''' - Friend Sub SelectCorner(b3Tab As BBox3d, nRawPartId As Integer) - EgtGetTableArea(1, b3Tab) - Dim p3OrigOnTab As Point3d - Select Case CurrentMachine.OrigCorner - Case MCH_CR.BL - p3OrigOnTab = New Point3d(CurrentMachine.OrigOffsX, CurrentMachine.OrigOffsY, 0) - Case MCH_CR.BR - p3OrigOnTab = New Point3d(b3Tab.DimX() - CurrentMachine.OrigOffsX, CurrentMachine.OrigOffsY, 0) - Case MCH_CR.TL - p3OrigOnTab = New Point3d(CurrentMachine.OrigOffsX, b3Tab.DimY() - CurrentMachine.OrigOffsY, 0) - Case MCH_CR.TR - p3OrigOnTab = New Point3d(b3Tab.DimX() - CurrentMachine.OrigOffsX, b3Tab.DimY() - CurrentMachine.OrigOffsY, 0) - End Select - EgtMoveToCornerRawPart(nRawPartId, p3OrigOnTab, CurrentMachine.OrigCorner) - End Sub - - ''' - ''' - ''' - ''' - ''' - Friend Sub SelectedPieces(nPartId As Integer, BTLStructureVM As BTLStructureVM) - EgtBeamShowFacesName(False) - EgtBeamShowLoadingSide(False, False) - Map.refProjectVM.MacroFeature_IsEnabled = True - ' se modalità building, la tolgo - If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then - BTLStructureVM.ShowBuilding(False, False) - End If - - BTLStructureVM.SceneSelPartSelection() - ' seleziono pezzo in Db geometrico - EgtBeamSetPart(nPartId) - EgtBeamShowFacesName(True) - Dim bLoadingSideShow As Boolean = (BTLStructureVM.nPROJTYPE = BWType.BEAM) - Dim bLeftToRight As Boolean = Not (CurrentMachine.ViewDir = VT.ISO_NW OrElse CurrentMachine.ViewDir = VT.ISO_NE) - EgtBeamShowLoadingSide(bLoadingSideShow, bLeftToRight) - End Sub - Public Sub CreatePrintPDF(ActivePage As Integer, bPreview As Boolean) LoadingWndHelper.OpenLoadingWnd(ActiveIds.CREATINGPDF, 1, "Creating PDF", "", 100) Try diff --git a/EgtBEAMWALL.Optimizer/Utility/MapV.vb b/EgtBEAMWALL.Optimizer/Utility/MapV.vb index 609c8272..d6be6c87 100644 --- a/EgtBEAMWALL.Optimizer/Utility/MapV.vb +++ b/EgtBEAMWALL.Optimizer/Utility/MapV.vb @@ -1,6 +1,7 @@ Module MapV Private m_refStrategyProductionV As StrategyProductionV + Private m_refSceneShowBuldingV As SceneShowBuldingV #Region "Get" @@ -10,6 +11,12 @@ End Get End Property + Public ReadOnly Property refSceneShowBuldingV As SceneShowBuldingV + Get + Return m_refSceneShowBuldingV + End Get + End Property + #End Region ' Get #Region "Set" @@ -19,6 +26,11 @@ Return Not IsNothing(m_refStrategyProductionV) End Function + Friend Function SetRefSceneShowBuldingV(SceneShowBuldingV As SceneShowBuldingV) As Boolean + m_refSceneShowBuldingV = SceneShowBuldingV + Return Not IsNothing(m_refSceneShowBuldingV) + End Function + #End Region ' Set End Module