EgtBEAMWALL 3.1.4..4:

-piccola modfica a inversione pezzo in verifica
This commit is contained in:
Demetrio Cassarino
2026-04-14 10:49:17 +02:00
parent 838c9b27e9
commit b5ea865a73
8 changed files with 153 additions and 10 deletions
+2 -2
View File
@@ -38,5 +38,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.1.4.3")>
<Assembly: AssemblyFileVersion("3.1.4.3")>
<Assembly: AssemblyVersion("3.1.4.4")>
<Assembly: AssemblyFileVersion("3.1.4.4")>
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.1.4.3")]
[assembly: AssemblyFileVersion("3.1.4.3")]
[assembly: AssemblyVersion("3.1.4.4")]
[assembly: AssemblyFileVersion("3.1.4.4")]
@@ -1593,6 +1593,47 @@ Public Class BTLPartVM
End Set
End Property
Friend Sub SetSelFeature(value As BTLFeatureVM)
If Not IsNothing(m_PrevSelBTLFeatureVM) Then m_PrevSelBTLFeatureVM.DeselGeomFeature()
m_SelBTLFeatureVM = value
If Not IsNothing(m_SelBTLFeatureVM) Then
m_SelBTLFeatureVM.SelGeomFeature()
m_PrevSelBTLFeatureVM = value
Map.refPParameterListVM.SetCurrDraw(DirectCast(m_SelBTLFeatureVM, BTLFeatureVM).sDrawPath)
' deseleziono i parametri
If Not IsNothing(SelBTLFeatureVM.SelPBTLParam) Then SelBTLFeatureVM.SelPBTLParam = Nothing
' rinfresco bottoni freecontour
m_SelBTLFeatureVM.RefreshFCMBtnVisibility()
' Controlo se nPRC è 900 rendo visibile combobox Variant
If m_SelBTLFeatureVM.nPRC = 900 Then
Map.refFeatureManagerVM.SetVariant_Visibility(Visibility.Visible)
Dim nVariant As Integer = 0
If Integer.TryParse(m_SelBTLFeatureVM.sDES, nVariant) Then
m_SelBTLFeatureVM.nSelVARIANT = nVariant
End If
If m_SelBTLFeatureVM.nSelVARIANT > 0 AndAlso
System.IO.File.Exists(Map.refMainWindowVM.MainWindowM.sResourcesRoot & "\Features\" & m_SelBTLFeatureVM.sDescGRP & "." & m_SelBTLFeatureVM.sDES & ".png") Then
' imposto path disegno da mostrare in BottomPanel
Map.refPParameterListVM.SetCurrDraw(Map.refMainWindowVM.MainWindowM.sResourcesRoot & "\Features\" & m_SelBTLFeatureVM.sDescGRP & "." & m_SelBTLFeatureVM.sDES & ".png")
Else
Map.refPParameterListVM.SetCurrDraw(Map.refMainWindowVM.MainWindowM.sResourcesRoot & "\Features\" & m_SelBTLFeatureVM.sDescGRP & ".png")
End If
Else
Map.refFeatureManagerVM.SetVariant_Visibility(Visibility.Collapsed)
End If
End If
If Not IsNothing(Map.refFeatureListManagerVM) Then Map.refFeatureListManagerVM.FeatureSelectionChanged()
Map.refProdManagerVM.SetBtlImage(DOWN_IMAGE)
Map.refProdManagerVM.SetOpenImage(DOWN_IMAGE)
Map.refProdManagerVM.SetSaveImage(DOWN_IMAGE)
If Not IsNothing(m_SelBTLFeatureVM) Then
SetSelFeatureMsg(EgtMsg(5356) & " [" & m_SelBTLFeatureVM.nSelGRP & "-" & m_SelBTLFeatureVM.nPRC.ToString("000") & "] " & m_SelBTLFeatureVM.sName)
SetDeselFeatureMsg(EgtMsg(5357) & " [" & m_SelBTLFeatureVM.nSelGRP & "-" & m_SelBTLFeatureVM.nPRC.ToString("000") & "] " & m_SelBTLFeatureVM.sName)
End If
EgtDraw()
NotifyPropertyChanged(NameOf(SelBTLFeatureVM))
End Sub
Private m_Calc_PartEnd As Boolean = False
Public ReadOnly Property Calc_PartEnd As Boolean
Get
@@ -1650,6 +1691,14 @@ Public Class BTLPartVM
NotifyPropertyChanged(NameOf(IsInverted))
End Set
End Property
Friend Sub SetInverted(value As Boolean)
' eseguo inversione
m_BTLPartM.Inversion(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
EgtRedraw()
' imposto lock
bLockInversion = True
NotifyPropertyChanged(NameOf(IsInverted))
End Sub
Private m_IsRowEnabled As Boolean = True
Public ReadOnly Property IsRowEnabled As Boolean
@@ -202,6 +202,53 @@ Public Class BTLStructureVM
End If
End Sub
Public Sub SelectBTLPartScene(BtlPart As BTLPartVM, Optional bIsReselect As Boolean = False)
m_SelBTLPart = BtlPart
If Map.refProjectVM.LastSelGridType = ProjectVM.GridSelTypes.MACHGROUP Then
' resetto gruppo di lavorazione corrente
EgtResetCurrMachGroup()
End If
If Not IsNothing(BtlPart) Then
' gestisco selezione pezzo
EgtBeamShowFacesName(False)
EgtBeamShowLoadingSide(False, False)
Map.refProjectVM.MacroFeature_IsEnabled = True
SceneSelPartSelection()
' seleziono pezzo in Db geometrico
EgtBeamSetPart(BtlPart.nPartId)
EgtBeamShowFacesName(True)
Dim bLoadingSideShow As Boolean = (nPROJTYPE = BWType.BEAM)
Dim bLeftToRight As Boolean = Not (CurrentMachine.ViewDir = VT.ISO_NW OrElse CurrentMachine.ViewDir = VT.ISO_NE)
EgtBeamShowLoadingSide(bLoadingSideShow, bLeftToRight)
' trovo ed evidenzio MachGroup e Duplo di questo pezzo
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) = BtlPart.nPartId 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 If
' seleziono la prima feature
If Not IsNothing(BtlPart) AndAlso Not IsNothing(BtlPart.BTLFeatureVMList) AndAlso BtlPart.BTLFeatureVMList.Count > 0 Then SelBTLPart.SetSelFeature(SelBTLPart.SelBTLFeatureVM)
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
EgtZoom(ZM.ALL)
NotifyPropertyChanged(NameOf(SelBTLPart))
If Not bIsReselect AndAlso m_SelBTLParts.Count = 1 Then BtlPart.SetOpenFeatureList(True)
End Sub
Private m_SelBTLPart As BTLPartVM = Nothing
Public ReadOnly Property SelBTLPart As BTLPartVM
Get
@@ -77,13 +77,18 @@ Module MyExecProcessManager
EgtOutLog("Risultato progetto " & nBarId)
CALCPanelVM.ProcessResults(sBarPath, nProgramPage, nBarId)
If Answer.Args.Count > 4 Then
Dim nPreInvert As Integer = -1
Dim bPreInvert As Boolean = False
Boolean.TryParse(Answer.Args("PREINVERT"), bPreInvert)
Integer.TryParse(Answer.Args("PREINVERT"), nPreInvert)
If nPreInvert = 1 Then bPreInvert = True
Dim nPreRotate As Integer = -1
Integer.TryParse(Answer.Args("PREROTATE90"), nPreRotate)
Dim dAng As Integer = nPreRotate * 90
Dim BTLPartItem As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nBarId)
If bPreInvert <> BTLPartItem.IsInverted Then BTLPartItem.IsInverted = bPreInvert
If nPreInvert > 0 Then
If BTLPartItem.IsInverted Then bPreInvert = False
BTLPartItem.SetInverted(bPreInvert)
End If
If nPreRotate > 0 Then BTLPartItem.ForwardRotation(True, True, dAng, Core.CalcIntegration.CmdTypes.FLIP_ROT)
End If
' Gestione progressbar per verificare l'inizio e la fine della verifica
@@ -67,5 +67,5 @@ Imports System.Windows
' Revision
'
<Assembly: AssemblyVersion("3.1.4.3")>
<Assembly: AssemblyFileVersion("3.1.4.3")>
<Assembly: AssemblyVersion("3.1.4.4")>
<Assembly: AssemblyFileVersion("3.1.4.4")>
@@ -8,6 +8,8 @@ Public Class SceneShowBuldingVM
#Region "FIELDS & PROPERTIES"
Private nOldPartId As Integer = -1
Private m_SceneShowBulding As New Scene
Public ReadOnly Property SceneShowBulding As Scene
Get
@@ -41,6 +43,7 @@ Public Class SceneShowBuldingVM
#Region "METHODS"
Public Overrides Sub InitScene()
'InitSceneEvents()
' Inizializzazione Scena
PreInitializeScene()
If SceneShowBulding.Init() And Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.BEAM Or KEY_OPT.WALL) Then
@@ -65,6 +68,10 @@ Public Class SceneShowBuldingVM
End If
End Sub
Public Overrides Sub InitSceneEvents()
AddHandler SceneShowBulding.OnMouseDownScene, AddressOf OnMouseDownScene
End Sub
Private Sub PreInitializeScene()
' imposto colore di default
Dim DefColor As New Color3d(0, 0, 0)
@@ -132,4 +139,39 @@ Public Class SceneShowBuldingVM
#End Region ' Methods
#Region "EVENTS"
Private Sub OnMouseDownScene(sender As Object, e As Forms.MouseEventArgs)
EgtSetStatus(nOldPartId, GDB_ST.ON_)
' Verifico se selezionato indicativo di pezzo
EgtSetObjFilterForSelWin(True, True, True, True, True)
Dim nSel As Integer = 0
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
Dim nId As Integer = EgtGetFirstObjInSelWin()
While nId <> GDB_ID.NULL
' Recupero l'identificativo del pezzo cui appartiene
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
Dim nOrigPartId As Integer = nPartId
nOldPartId = nOrigPartId
Dim nCopId As Integer = 0
If EgtGetInfo(nPartId, "!COP", nCopId) Then
nPartId = nCopId
End If
Dim nOrIdKey As KeyValuePair(Of Integer, Integer) = Map.refSceneShowBuldingVM.MapInfo.FirstOrDefault(Function(x) x.Value = nPartId)
Dim nOrdId As Integer = nOrIdKey.Key
Dim BTLPartVM As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(y) y.nPartId = nOrdId)
' Ritorno al contesto corrente
EgtSetCurrentContext(Map.refSceneHostVM.MainScene.GetCtx())
Map.refProjectVM.BTLStructureVM.SetSelBTLPart(BTLPartVM, True)
Map.refProjectVM.BTLStructureVM.SelectBTLPartScene(BTLPartVM, True)
' Setto il nuovo contesto
EgtSetCurrentContext(SceneShowBulding.GetCtx())
EgtSetStatus(nOrigPartId, GDB_ST.SEL)
EgtDraw()
nId = EgtGetNextObjInSelWin()
End While
End Sub
#End Region ' Events
End Class
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.1.4.3")>
<Assembly: AssemblyFileVersion("3.1.4.3")>
<Assembly: AssemblyVersion("3.1.4.4")>
<Assembly: AssemblyFileVersion("3.1.4.4")>