diff --git a/Constants/ConstEgtStone3D.vb b/Constants/ConstEgtStone3D.vb
index e7c7dd7..6cad8c2 100644
--- a/Constants/ConstEgtStone3D.vb
+++ b/Constants/ConstEgtStone3D.vb
@@ -47,4 +47,22 @@
Public Const KEY_ISOFILE_PATH = "IsoFilePath"
Public Const FILE_PATH = "FilePath"
+
+ 'enum per le trasformazioni
+ Public Enum PairStage As Integer
+ FirstLine = 0
+ SecondLine = 1
+ FacePair = 2
+ End Enum
+
+ Public Enum RotateStage As Integer
+ SelectPart = 0
+ SelectAxis = 1
+ InsertAngle = 2
+ End Enum
+
+ Public Enum MoveStage As Integer
+ SelectPart = 0
+ InsertMovement = 1
+ End Enum
End Module
diff --git a/Constants/ConstGen.vb b/Constants/ConstGen.vb
index d761f8b..09beb2b 100644
--- a/Constants/ConstGen.vb
+++ b/Constants/ConstGen.vb
@@ -39,10 +39,4 @@
' Sottodirettorio dell'Operation Solid
Public Const OPERATIONSOLID_DIR As String = "OperationSolid"
- Public Enum PairStage As Integer
- FirstLine = 1
- SecondLine = 2
- FacePair = 3
- End Enum
-
End Module
diff --git a/Move/MoveVM.vb b/Move/MoveVM.vb
index f78e530..9a1b9fc 100644
--- a/Move/MoveVM.vb
+++ b/Move/MoveVM.vb
@@ -3,12 +3,50 @@
Public Class MoveVM
Inherits SceneUserControlVM
+#Region "FIELDS & PROPERTIES"
+
+#Region "Messages"
+ Public ReadOnly Property TopBar_Msg_Stg0 As String
+ Get
+ Return EgtMsg(110023)
+ End Get
+ End Property
+
+ Public ReadOnly Property TopBar_Msg_Stg1 As String
+ Get
+ Return EgtMsg(110025)
+ End Get
+ End Property
+
+#End Region ' Messages
+
+ Private m_MsgList As New List(Of String)({TopBar_Msg_Stg0, TopBar_Msg_Stg1})
+ Public ReadOnly Property MsgList As List(Of String)
+ Get
+ Return m_MsgList
+ End Get
+ End Property
+
+ Private m_Stage As MoveStage = MoveStage.SelectPart
+ Private Property Stage As MoveStage
+ Get
+ Return m_Stage
+ End Get
+ Set(value As MoveStage)
+ m_Stage = value
+ DirectCast(ParamList(0), _TextBlockParam).MsgValue = MsgList(m_Stage)
+ End Set
+ End Property
+
+#End Region ' Fields & properties
+
#Region "CONTRUCTOR"
Public Sub New()
MyBase.New()
-
+ Title = EGT_MOVE.ToUpper()
LoadParamList()
+ Stage = If(Map.refSceneHostV.m_nIdPart = GDB_ID.NULL, MoveStage.SelectPart, MoveStage.InsertMovement)
End Sub
#End Region ' Contructor
@@ -16,27 +54,39 @@ Public Class MoveVM
#Region "METHODS"
Public Overrides Sub LoadParamList()
- Title = EgtMsg(110018).ToUpper()
- ParamList.Add(New _TextBlockParam("Messaggio", EgtMsg(110005), Visibility.Visible))
+ ParamList.Add(New _TextBlockParam("Messaggio", MsgList(Stage), Visibility.Visible))
ParamList.Add(New _TextBoxParam("X", "0", Visibility.Visible))
ParamList.Add(New _TextBoxParam("Y", "0", Visibility.Visible))
ParamList.Add(New _TextBoxParam("Z", "0", Visibility.Visible))
End Sub
+ Public Sub AdvanceStage()
+ Stage += 1
+ End Sub
+
+ Public Function AtStage()
+ Return Stage
+ End Function
+
+ Private Function ReadMoveInput()
+ ' recupero i valori nelle box
+ Dim x_TextBox As _TextBoxParam = DirectCast(ParamList(1), _TextBoxParam)
+ Dim y_TextBox As _TextBoxParam = DirectCast(ParamList(2), _TextBoxParam)
+ Dim z_TextBox As _TextBoxParam = DirectCast(ParamList(3), _TextBoxParam)
+ ' verifico che siano validi
+ If String.IsNullOrEmpty(x_TextBox.sValue) Then x_TextBox.sValue = "0"
+ If String.IsNullOrEmpty(y_TextBox.sValue) Then y_TextBox.sValue = "0"
+ If String.IsNullOrEmpty(z_TextBox.sValue) Then z_TextBox.sValue = "0"
+ ' restituisco il vettore
+ Return New Vector3d(CDbl(x_TextBox.sValue),
+ CDbl(y_TextBox.sValue),
+ CDbl(z_TextBox.sValue))
+ End Function
+
Public Overrides Sub Conferma()
' se non avevo visualizzato la preview allora sposto il/i pezzo/i
If Not Map.refSceneHostV.m_bPreviewShown Then
-
- Dim x_TextBox As _TextBoxParam = DirectCast(ParamList(1), _TextBoxParam)
- Dim y_TextBox As _TextBoxParam = DirectCast(ParamList(2), _TextBoxParam)
- Dim z_TextBox As _TextBoxParam = DirectCast(ParamList(3), _TextBoxParam)
-
- If String.IsNullOrEmpty(x_TextBox.Value) Then x_TextBox.Value = "0"
- If String.IsNullOrEmpty(y_TextBox.Value) Then y_TextBox.Value = "0"
- If String.IsNullOrEmpty(z_TextBox.Value) Then z_TextBox.Value = "0"
- Dim vtMove As New Vector3d(CDbl(x_TextBox.Value),
- CDbl(y_TextBox.Value),
- CDbl(z_TextBox.Value))
+ Dim vtMove As Vector3d = ReadMoveInput()
'''' gestione dell'opzione 'AllSelected
'If Not AreSameVectorExact(vtMove, New Vector3d) Then
' If Not AllOption_Move.IsChecked Then
@@ -109,17 +159,7 @@ Public Class MoveVM
Return
End If
- Dim x_TextBox As _TextBoxParam = DirectCast(ParamList(1), _TextBoxParam)
- Dim y_TextBox As _TextBoxParam = DirectCast(ParamList(2), _TextBoxParam)
- Dim z_TextBox As _TextBoxParam = DirectCast(ParamList(3), _TextBoxParam)
-
- ' leggo i dati del vettore di movimento dalle TextBox in m_MoveUC
- If String.IsNullOrEmpty(x_TextBox.Value) Then x_TextBox.Value = "0"
- If String.IsNullOrEmpty(y_TextBox.Value) Then y_TextBox.Value = "0"
- If String.IsNullOrEmpty(z_TextBox.Value) Then z_TextBox.Value = "0"
- Dim vtMove As New Vector3d(CDbl(x_TextBox.Value),
- CDbl(y_TextBox.Value),
- CDbl(z_TextBox.Value))
+ Dim vtMove As Vector3d = ReadMoveInput()
If Map.refSceneHostV.m_nIdPart <> GDB_ID.NULL And Not AreSameVectorExact(vtMove, New Vector3d) Then
If Map.refSceneHostV.m_bPreviewShown = True Then
' resetto il movimento precedente
@@ -168,6 +208,7 @@ Public Class MoveVM
If EgtLuaSetGlobBoolVar("ASS.bSaveTemp", bSaveTemp) Then AssLog("ASS.bSaveTemp = " & bSaveTemp.ToString)
' rimuovo lo UC dalla griglia
Map.refSceneButtonV.RemoveMoveUC()
+ SolidManagerM.ManageUndoRedo()
End Sub
#End Region ' Methods
diff --git a/Pair/PairVM.vb b/Pair/PairVM.vb
index 4afca3e..61719f9 100644
--- a/Pair/PairVM.vb
+++ b/Pair/PairVM.vb
@@ -8,6 +8,22 @@ Public Class PairVM
#Region "Messages"
+ Public ReadOnly Property TopBar_Msg_Stg0 As String
+ Get
+ Return EgtMsg(110000)
+ End Get
+ End Property
+ Public ReadOnly Property TopBar_Msg_Stg1 As String
+ Get
+ Return EgtMsg(110020)
+ End Get
+ End Property
+ Public ReadOnly Property TopBar_Msg_Stg2 As String
+ Get
+ Return EgtMsg(110021)
+ End Get
+ End Property
+
Public ReadOnly Property FlipOption1_Msg As String
Get
Return EgtMsg(110001)
@@ -21,22 +37,22 @@ Public Class PairVM
End Property
#End Region ' Messages
- Private m_MsgList As New List(Of String)({EgtMsg(110000), EgtMsg(110020), EgtMsg(110021)})
+ Private m_MsgList As New List(Of String)({TopBar_Msg_Stg0, TopBar_Msg_Stg1, TopBar_Msg_Stg2})
Public ReadOnly Property MsgList As List(Of String)
Get
Return m_MsgList
End Get
End Property
- Private m_Stage As Integer = 0
- Private Property Stage As Integer
+ Private m_Stage As PairStage = PairStage.FirstLine
+ Private Property Stage As PairStage
Get
Return m_Stage
End Get
- Set(value As Integer)
+ Set(value As PairStage)
m_Stage = value
DirectCast(ParamList(0), _TextBlockParam).MsgValue = MsgList(m_Stage)
- If m_Stage = 2 Then SetAllVisible()
+ If m_Stage = PairStage.FacePair Then SetAllVisible()
End Set
End Property
@@ -46,7 +62,7 @@ Public Class PairVM
Public Sub New()
MyBase.New()
-
+ Title = EGT_PAIR.ToUpper()
'comincio a contare le operazioni temporanee per poterle poi salvare nella eventualmente nella storia
Map.refSceneHostV.m_nTransfNum = 0
' setto le variabili di salvataggio per le operazioni temporanee
@@ -63,20 +79,22 @@ Public Class PairVM
#Region "METHODS"
Public Overrides Sub LoadParamList()
- Title = "Pair".ToUpper()
AddGenericParam(New _TextBlockParam("Messaggio", MsgList(0), Visibility.Visible))
Dim PairOptionList As New List(Of ParamCmBx)({New ParamCmBx("Start-Start"), New ParamCmBx("Start-End"), New ParamCmBx("End-Start"),
New ParamCmBx("End-End"), New ParamCmBx("Middle-Middle")})
AddGenericParam(New _ComboBoxParam("PairOption", PairOptionList, 1, Visibility.Collapsed))
AddGenericParam(New _CheckBoxParam("FlipOption1", FlipOption1_Msg, Visibility.Collapsed))
AddGenericParam(New _CheckBoxParam("FlipOption2", FlipOption2_Msg, Visibility.Collapsed))
-
End Sub
Public Sub AdvanceStage()
Stage += 1
End Sub
+ Public Function AtStage()
+ Return Stage
+ End Function
+
Public Overrides Sub Conferma()
' salvo la storia delle operazioni svolte durante l'accoppiamento
Dim PartSolidSel As PartSolidM = SolidManagerM.GetPartSolid(Map.refSceneHostV.m_nIdPart)
@@ -145,6 +163,7 @@ NoSecondLine:
If EgtLuaSetGlobBoolVar("ASS.bSaveTemp", bSaveTemp) Then AssLog("ASS.bSaveTemp = " & bSaveTemp.ToString)
' rimuovo lo UC dalla griglia
Map.refSceneButtonV.RemovePairUC()
+ SolidManagerM.ManageUndoRedo()
End Sub
Private Sub SetAllVisible()
diff --git a/Rotate/RotateVM.vb b/Rotate/RotateVM.vb
index 2dcdaee..27bd468 100644
--- a/Rotate/RotateVM.vb
+++ b/Rotate/RotateVM.vb
@@ -8,6 +8,12 @@ Public Class RotateVM
#Region "Messages"
+ Public ReadOnly Property TopBar_Msg0 As String
+ Get
+ Return EgtMsg(110024)
+ End Get
+ End Property
+
Public ReadOnly Property TopBar_Msg1 As String
Get
Return EgtMsg(110005)
@@ -27,7 +33,7 @@ Public Class RotateVM
#End Region ' Messages
- Private m_MsgList As New List(Of String)({TopBar_Msg1, TopBar_Msg2})
+ Private m_MsgList As New List(Of String)({TopBar_Msg0, TopBar_Msg1, TopBar_Msg2})
Public ReadOnly Property MsgList As List(Of String)
Get
Return m_MsgList
@@ -41,10 +47,20 @@ Public Class RotateVM
End Get
Set(value As Boolean)
m_bAxisSelected = value
- If m_bAxisSelected Then
- DirectCast(ParamList(0), _TextBlockParam).MsgValue = MsgList(1)
- DirectCast(ParamList(1), _TextBoxParam).IsEnabled = True
- End If
+ If m_bAxisSelected Then AdvanceStage()
+ End Set
+ End Property
+
+ Private m_Stage As RotateStage = RotateStage.SelectPart
+ Private Property Stage As RotateStage
+ Get
+ Return m_Stage
+ End Get
+ Set(value As RotateStage)
+ m_Stage = value
+ DirectCast(ParamList(0), _TextBlockParam).MsgValue = MsgList(m_Stage)
+ If m_Stage = RotateStage.SelectAxis Then ShowAxis()
+ If m_Stage = RotateStage.InsertAngle Then DirectCast(ParamList(1), _TextBoxParam).IsEnabled = True
End Set
End Property
@@ -53,11 +69,8 @@ Public Class RotateVM
#Region "CONSTRUCTOR"
Public Sub New()
MyBase.New()
-
+ Title = EGT_ROTATE.ToUpper()
' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
- Dim PartSolidSel As PartSolidM = SolidManagerM.GetPartSolid(Map.refSceneHostV.m_nIdPart)
- If IsNothing(PartSolidSel) Then Return
- PartSolidSel.ShowAxis()
'comincio a contare le operazioni temporanee per poterle poi salvare nella eventualmente nella storia
Map.refSceneHostV.m_nTransfNum = 0
@@ -68,6 +81,7 @@ Public Class RotateVM
If EgtLuaSetGlobBoolVar("ASS.bSaveTemp", bSaveTemp) Then AssLog("ASS.bSaveTemp = " & bSaveTemp.ToString)
LoadParamList()
+ Stage = If(Map.refSceneHostV.m_nIdPart = GDB_ID.NULL, RotateStage.SelectPart, RotateStage.SelectAxis)
End Sub
#End Region ' Constructor
@@ -75,15 +89,23 @@ Public Class RotateVM
#Region "METHODS"
Public Overrides Sub LoadParamList()
- Title = "Rotate".ToUpper()
- AddGenericParam(New _TextBlockParam("Messaggio", MsgList(0)))
+ AddGenericParam(New _TextBlockParam("Messaggio", MsgList(Stage)))
AddGenericParam(New _TextBoxParam(EgtMsg(110006), 0, Visibility.Visible, False))
End Sub
- '' uso il tasto preview anziché passare dall'evento TextChanged
- 'Public Overrides Sub OnTextboxTextChanged(sender As Object, Text As String)
- ' AngText_Changed()
- 'End Sub
+ Public Sub AdvanceStage()
+ Stage += 1
+ End Sub
+
+ Public Function AtStage()
+ Return Stage
+ End Function
+
+ Private Sub ShowAxis()
+ Dim PartSolidSel As PartSolidM = SolidManagerM.GetPartSolid(Map.refSceneHostV.m_nIdPart)
+ If IsNothing(PartSolidSel) Then Return
+ PartSolidSel.ShowAxis()
+ End Sub
Public Overrides Sub Conferma()
If Not Map.refSceneHostV.m_bRotated Then AngText_Changed()
@@ -119,6 +141,7 @@ Public Class RotateVM
Map.refSceneHostV.m_bRotated = False
Map.refSceneHostV.m_dAngRot = 0
Map.refSceneButtonV.RemoveRotateUC()
+ SolidManagerM.ManageUndoRedo()
End Sub
Public Sub AngText_Changed()
@@ -132,7 +155,7 @@ Public Class RotateVM
Dim nId As Integer = Map.refSceneHostV.m_nIdPart
If nId = GDB_ID.NULL Then Return
- Dim sAng As String = DirectCast(ParamList(1), _TextBoxParam).Value
+ Dim sAng As String = DirectCast(ParamList(1), _TextBoxParam).sValue
If String.IsNullOrEmpty(sAng) Then Return
If Not IsNumeric(sAng) Then Return
Dim dAng As Double = CDbl(sAng)
diff --git a/SceneButton/SceneButtonV.xaml.vb b/SceneButton/SceneButtonV.xaml.vb
index 45c49af..fe988f8 100644
--- a/SceneButton/SceneButtonV.xaml.vb
+++ b/SceneButton/SceneButtonV.xaml.vb
@@ -58,8 +58,7 @@
End Sub
Public Sub LoadRotateUC()
- Dim PartSolidSel As PartSolidM = SolidManagerM.GetPartSolid(Map.refSceneHostV.m_nIdPart)
- If Not IsNothing(PartSolidSel) And IsNothing(m_RotateUC) Then
+ If IsNothing(m_RotateUC) Then
m_RotateUC = New SceneUserControlV
Dim m_RotateVM As New RotateVM()
m_RotateUC.DataContext = m_RotateVM
@@ -68,10 +67,6 @@
Grid.SetColumnSpan(m_RotateUC, 2)
Grid.SetRowSpan(m_RotateUC, 3)
MainGrid.Children.Add(m_RotateUC)
- Else
- ' se non si è attivata la modalità di rotazione allora tolgo il check al toggle button
- Dim RotateTgBtn As _ToggleButton = DirectCast(Map.refSceneButtonVM.GetButton(EGT_ROTATE), _ToggleButton)
- RotateTgBtn.IsChecked = False
End If
End Sub
diff --git a/SceneHost/SceneHostV.xaml.vb b/SceneHost/SceneHostV.xaml.vb
index a1dff7d..a88990a 100644
--- a/SceneHost/SceneHostV.xaml.vb
+++ b/SceneHost/SceneHostV.xaml.vb
@@ -340,40 +340,43 @@ Public Class SceneHostV
Line1:
' rotazione attiva
- If DirectCast(Map.refSceneButtonV.DataContext, SceneButtonVM).IsTgBtnChecked("Rotate") Then
- ' se non identificato un part da ruotare aggiorno l'id
- If m_nIdPart = -1 Then
- m_nIdPart = nPartId
- ' se avevo identificato un part da ruotare, ma ne ho identificato uno nuovo e non ho selezioni attive allora cambio id
- ElseIf m_nIdPart <> -1 And m_nIdPart <> nPartId And Not IsAPartSelected() Then
- Dim PartSolidIdSel As PartSolidM = GetPartSolid(m_nIdPart)
- If IsNothing(PartSolidIdSel) Then Return
- PartSolidIdSel.ResetData()
- m_nIdPart = nPartId
- End If
- Dim PartSolidIdTempSel As PartSolidM = GetPartSolid(m_nIdPart)
- If IsNothing(PartSolidIdTempSel) Then Return
+
+ If Map.refSceneButtonVM.IsTgBtnChecked(EGT_ROTATE) Then
Dim RotateVM As RotateVM = DirectCast(Map.refSceneButtonV.m_RotateUC.DataContext, RotateVM)
- If EgtGetType(nId) = GDB_TY.CRV_LINE And PartSolidIdTempSel.nIdLineAxisRotate = -1 Then
- PartSolidIdTempSel.nIdLineAxisRotate = nId
- EgtSetMark(nId)
- m_nIdMarked1 = nId
- ' se trovo già un valore scritto nella casella di testo allora ruoto subito il part attorno all'asse indicato
- RotateVM.bAxisSelected = True
- RotateVM.AngText_Changed()
- Return
- ElseIf EgtGetType(nId) = GDB_TY.CRV_LINE And PartSolidIdTempSel.nIdLineAxisRotate <> -1 Then
- EgtResetMark(PartSolidIdTempSel.nIdLineAxisRotate)
- PartSolidIdTempSel.nIdLineAxisRotate = nId
- EgtSetMark(nId)
- m_nIdMarked1 = nId
- ' se trovo già un valore scritto nella casella di testo allora ruoto subito il part attorno all'asse indicato
- RotateVM.bAxisSelected = True
- RotateVM.AngText_Changed()
+ If RotateVM.AtStage() = RotateStage.SelectAxis Then
+ ' se non identificato un part da ruotare aggiorno l'id
+ If m_nIdPart = -1 Then
+ m_nIdPart = nPartId
+ ' se avevo identificato un part da ruotare, ma ne ho identificato uno nuovo e non ho selezioni attive allora cambio id
+ ElseIf m_nIdPart <> -1 And m_nIdPart <> nPartId And Not IsAPartSelected() Then
+ Dim PartSolidIdSel As PartSolidM = GetPartSolid(m_nIdPart)
+ If IsNothing(PartSolidIdSel) Then Return
+ PartSolidIdSel.ResetData()
+ m_nIdPart = nPartId
+ End If
+ Dim PartSolidIdTempSel As PartSolidM = GetPartSolid(m_nIdPart)
+ If IsNothing(PartSolidIdTempSel) Then Return
+ If EgtGetType(nId) = GDB_TY.CRV_LINE And PartSolidIdTempSel.nIdLineAxisRotate = -1 Then
+ PartSolidIdTempSel.nIdLineAxisRotate = nId
+ EgtSetMark(nId)
+ m_nIdMarked1 = nId
+ ' se trovo già un valore scritto nella casella di testo allora ruoto subito il part attorno all'asse indicato
+ RotateVM.bAxisSelected = True
+ RotateVM.AngText_Changed()
+ Return
+ ElseIf EgtGetType(nId) = GDB_TY.CRV_LINE And PartSolidIdTempSel.nIdLineAxisRotate <> -1 Then
+ EgtResetMark(PartSolidIdTempSel.nIdLineAxisRotate)
+ PartSolidIdTempSel.nIdLineAxisRotate = nId
+ EgtSetMark(nId)
+ m_nIdMarked1 = nId
+ ' se trovo già un valore scritto nella casella di testo allora ruoto subito il part attorno all'asse indicato
+ RotateVM.bAxisSelected = True
+ RotateVM.AngText_Changed()
+ End If
+ ' Passo al successivo
+ nId = EgtGetNextObjInSelWin()
+ Continue While
End If
- ' Passo al successivo
- nId = EgtGetNextObjInSelWin()
- Continue While
End If
''misura
@@ -398,7 +401,7 @@ Line1:
'End If
' kiss kiss
- If Map.refSceneButtonVM.IsTgBtnChecked("Pair") Then
+ If Map.refSceneButtonVM.IsTgBtnChecked(EGT_PAIR) Then
If m_nIdPart = -1 Then
m_nIdPart = nPartId
End If
@@ -497,7 +500,7 @@ Line1:
Else
' Memorizzo Id da selezionare
m_nIdToSel = nPartId
- m_nIdPart = nPartId
+ 'm_nIdPart = nPartId
End If
If m_bEnableEdit Then m_bDrag = True
EgtDraw()
@@ -542,6 +545,19 @@ Line1:
PartSolidIdToSel = GetPartSolid(m_nIdToSel)
If IsNothing(PartSolidIdToSel) Then Return
End If
+ If m_nIdPart = GDB_ID.NULL Then
+ If Map.refSceneButtonVM.IsTgBtnChecked(EGT_MOVE) Then
+ ' era attiva la modalità move ma non avevo selezionato un part
+ DirectCast(Map.refSceneButtonV.m_MoveUC.DataContext, MoveVM).AdvanceStage()
+ End If
+ If Map.refSceneButtonVM.IsTgBtnChecked(EGT_ROTATE) Then
+ ' era attiva la modalità rotate ma non avevo selezionato un part
+ m_nIdPart = PartSolidIdToSel.PartId
+ PartSolidIdToSel.SelectPart()
+ DirectCast(Map.refSceneButtonV.m_RotateUC.DataContext, RotateVM).AdvanceStage()
+ End If
+ End If
+
m_nIdToSel = PartSolidIdToSel.PartId
m_nIdPart = PartSolidIdToSel.PartId
'' seleziono l'oggetto nel tree
@@ -581,8 +597,6 @@ Line1:
' WARNING WARNING WARNING WARNING WARNING WARNING ' questo controllo è stato tolto per poter selezionare gli oggetti importati nel vme e quindi non presenti nel nesting
'If bSelected Then
PartSolidIdToSel.SelectPart()
- 'If PartSolidIdToSel.nTime > -1 Then UndoBtn.IsEnabled = True
- 'If PartSolidIdToSel.nTime < PartSolidIdToSel.vTransf.Count() - 1 Then RedoBtn.IsEnabled = True
'End If
' Se deselezione da eseguire
ElseIf m_nIdToDesel <> GDB_ID.NULL Then
@@ -617,7 +631,6 @@ Line1:
'If bDeselected Then
PartSolidIdToDesel.DeselectPart()
- 'MyMsgTxBl.Text = ""
'End If
End If
End If
diff --git a/SceneUserControl/SceneUserControlV.xaml b/SceneUserControl/SceneUserControlV.xaml
index 99b7acd..c41a64a 100644
--- a/SceneUserControl/SceneUserControlV.xaml
+++ b/SceneUserControl/SceneUserControlV.xaml
@@ -46,7 +46,7 @@
Visibility="{Binding nVisibility}">
-
diff --git a/SceneUserControl/SceneUserControlVM.vb b/SceneUserControl/SceneUserControlVM.vb
index eae65ae..1ec2394 100644
--- a/SceneUserControl/SceneUserControlVM.vb
+++ b/SceneUserControl/SceneUserControlVM.vb
@@ -204,15 +204,15 @@ Public Class _TextBoxParam
Public Event TextChanged(sender As Object, text As String)
#Region "FIELDS & PROPERTIES"
- Private m_Value As String = String.Empty
- Public Property Value As String
+ Private m_sValue As String = String.Empty
+ Public Property sValue As String
Get
- Return m_Value
+ Return m_sValue
End Get
Set(value As String)
- m_Value = value
- RaiseEvent TextChanged(Me, m_Value)
- NotifyPropertyChanged(NameOf(value))
+ m_sValue = value
+ RaiseEvent TextChanged(Me, m_sValue)
+ NotifyPropertyChanged(NameOf(sValue))
End Set
End Property
@@ -222,7 +222,7 @@ Public Class _TextBoxParam
Sub New(sName As String, sValue As String, Optional nVisibility As Visibility = Visibility.Visible, Optional bIsEnabled As Boolean = True)
MyBase.New(sName, nVisibility, bIsEnabled)
- m_Value = sValue
+ m_sValue = sValue
End Sub
#End Region ' Constructor
diff --git a/Utility/PartSolidM.vb b/Utility/PartSolidM.vb
index cab5ecb..08b32ae 100644
--- a/Utility/PartSolidM.vb
+++ b/Utility/PartSolidM.vb
@@ -257,6 +257,7 @@ Public Class PartSolidM
End Sub
Public Sub SelectPart()
+ If IsSelected() Then Return
Dim lPair As List(Of Integer) = SolidManagerM.PairList(PartId)
For Each nId As Integer In lPair
Dim PartSolidSel As PartSolidM = SolidManagerM.GetPartSolid(nId)
diff --git a/Utility/SolidManagerM.vb b/Utility/SolidManagerM.vb
index 3954e3b..6c4e7da 100644
--- a/Utility/SolidManagerM.vb
+++ b/Utility/SolidManagerM.vb
@@ -549,6 +549,7 @@ Module SolidManagerM
Public Sub ResetOperationMarks(nId As Integer)
Dim PartSolidSel As PartSolidM = GetPartSolid(nId)
If Not IsNothing(PartSolidSel) Then PartSolidSel.DeselectSinglePart()
+ Map.refSceneHostV.m_nIdPart = GDB_ID.NULL
EgtResetMark(Map.refSceneHostV.m_nIdMarked1)
Map.refSceneHostV.m_nIdMarked1 = GDB_ID.NULL
EgtResetMark(Map.refSceneHostV.m_nIdMarked2)