- aggiunta attivazione edit da file ini

- gestione lettura e scrittura variabile E30099 su axium con PcToolkit
- Impostata modifica duplo su aggiungi, copia e rimuovi feature
- aggiunto tempo di lavorazione pezzo in PartManager
- correzione su lista mru dei prod nuovi non ancora salvati
This commit is contained in:
Emmanuele Sassi
2022-06-08 18:30:37 +02:00
parent 2d51bbaeb5
commit 78cde47c01
10 changed files with 219 additions and 133 deletions
+1
View File
@@ -40,6 +40,7 @@ Public Module ConstIni
Public Const K_DBMASTERKEY As String = "DbMasterKey"
Public Const K_UPDATEBTL As String = "UpdateBtl"
Public Const K_DATADIR As String = "DataDir"
Public Const K_ENABLEEDIT As String = "EnableEdit"
'Public Const S_LANGUAGES As String = "Languages"
'Public Const K_LANGUAGE As String = "Language"
@@ -45,7 +45,7 @@ Public Class NUMAxiumPcToolkitComm
E30000 = 30 ' aggiunto da noi, non presente nella documentazione Num e gestito a parte rispetto agli altri
End Enum
Const R1 = &HA401, R2 = &HA402
Const R1 = &HA401, R2 = &HA402, RL = &HA442
Const VL = &HA042
Public Structure My_data_struct
@@ -120,6 +120,10 @@ Public Class NUMAxiumPcToolkitComm
Private Shared Function ReadLadderVar(ByVal Port As Int16, ByVal qui As UInt16, ByVal First As UInt16, ByVal Quantity As UInt16, ByRef pData As My_data_struct, ByVal Mode As UInt16) As Int16
End Function
<System.Runtime.InteropServices.DllImport("dnc2.dll")>
Private Shared Function WriteLadderVar(ByVal Port As Int16, ByVal qui As UInt16, ByVal First As UInt16, ByVal Quantity As UInt16, ByRef pData As Integer) As Int16
End Function
<System.Runtime.InteropServices.DllImport("dnc2.dll")>
Private Shared Function ReadObjectVarious4(ByVal Port As Int16, ByVal qui As UInt16, ByVal First As UInt16, ByVal Quantity As UInt16, ByRef pData As My_data_struct, ByVal Mode As UInt16) As Int16
End Function
@@ -346,6 +350,11 @@ Public Class NUMAxiumPcToolkitComm
End Sub
Friend Sub Start()
' Annullo variabile E30099 per trasferimento programmi
Dim SendPermissionVariable As Variable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = SENDPERMISSION)
If Not IsNothing(SendPermissionVariable) Then
SendPermissionVariable.sValue = 0
End If
Dim nRet As Int16 = -1
nRet = StartNC(nPortCommands)
If nRet <> 0 Then
@@ -457,19 +466,29 @@ Public Class NUMAxiumPcToolkitComm
Try
Dim dValue As Double = 0
StringToDouble(value, dValue)
Dim nType As eVarious4
Dim nValue As Integer = 0
Dim sAddressNumber As Integer = Address.Substring(1)
Dim nAddressNumber As Integer = 0
If Not Integer.TryParse(sAddressNumber, nAddressNumber) Then Return
If nAddressNumber >= 30000 AndAlso nAddressNumber < 40000 Then
nType = eVarious4.E30000
nAddressNumber -= 30000
End If
Dim Group As UInt16 = 0
If Not Integer.TryParse(value, nValue) Then Return
EgtOutLog("WritePLCVariables - nType: " & nType & " nFirst: " & nAddressNumber & " Data: " & nValue)
Dim rc As Short = DNC20_WriteE5E6(nPortVariables, Group, 3, nAddressNumber, nValue, SYN)
Select Case Address
Case "E30099" ' in realta' per scrivere si usa la %RD0C.L
Dim nRes = WriteLadderVar(nPortVariables, RL, &HD0C, 1, dValue)
EgtOutLog("Scrittura E30099 - result " & nRes)
Case Else ' E30000
Dim nType As eVarious4
Dim nValue As Integer = 0
Dim sAddressNumber As Integer = Address.Substring(1)
Dim nAddressNumber As Integer = 0
If Not Integer.TryParse(sAddressNumber, nAddressNumber) Then Return
If nAddressNumber >= 30000 AndAlso nAddressNumber < 40000 Then
nType = eVarious4.E30000
nAddressNumber -= 30000
End If
Dim Group As UInt16 = 0
Dim ParType As UInt16 = 3
Dim ParPos As UInt16 = nAddressNumber
If Not Integer.TryParse(value, nValue) Then Return
EgtOutLog("WritePLCVariables - nType: " & nType & " nFirst: " & nAddressNumber & " Data: " & nValue)
EgtOutLog("WritePLCVariables - nPortVariables: " & nPortVariables & " Group: " & Group & " ParType: " & ParType & " ParPos: " & ParPos & " nValue: " & nValue)
Dim rc As Short = DNC20_WriteE5E6(nPortVariables, Group, ParType, ParPos, nValue, SYN)
EgtOutLog("WritePLCVariables - return value: " & rc)
End Select
'If rc <> 0 Then EgtOutLog(" objDVariables.WriteVariables2() Error : " & rc)
@@ -516,32 +535,37 @@ Public Class NUMAxiumPcToolkitComm
ElseIf nAddressNumber >= 80000 Then
nType = eVarious4.E80000
nAddressNumber -= 80000
ElseIf nAddressNumber >= 30000 Then
nType = eVarious4.E30000
nAddressNumber -= 30000
'ElseIf nAddressNumber >= 30000 Then
' nType = eVarious4.E30000
' nAddressNumber -= 30000
' EgtOutLog("E30000 var trovata")
End If
If nType = eVarious4.E30000 Then
Dim Group As UInt16 = 0
Dim nVal As Int32
Dim ObjectList As New tDNC20_ObjectList With {.ElemNum = 3,
.First = nAddressNumber,
.Quantity = 1}
nret = DNC20_ReadExxxxx(nPortVariables, Group, 1, ObjectList, nVal, SYN)
If nret = 0 Then
Var.SetValue(nVal)
End If
Else
nret = ReadObjectVarious4(nPortVariables, nType, nAddressNumber, 1, MyData, SYN)
If nret = 0 Then
'Var.SetValue(MyData.data(0))
'Dim NewBytes(3) As Byte
'For nBIndex = 3 To 0 Step -1
' NewBytes(3 - nBIndex) = MyData.data(nBIndex)
'Next
Dim nVal As Integer = BitConverter.ToInt32(MyData.data, 0)
Var.SetValue(nVal)
End If
'If nType = eVarious4.E30000 Then
' Dim Group As UInt16 = 0
' Dim nVal As Int32
' Dim ObjectList As New tDNC20_ObjectList With {.ElemNum = 3,
' .First = nAddressNumber,
' .Quantity = 1}
' EgtOutLog("E30000 var trovata, valori: " & nPortVariables & " " & Group & "" & ObjectList.First & " " & nVal)
' nret = DNC20_ReadExxxxx(nPortVariables, Group, 1, ObjectList, nVal, SYN)
' EgtOutLog("E30000 var risultato: " & nret)
' If nret = 0 Then
' Var.SetValue(nVal)
' EgtOutLog("E30000 var assegnata: " & nVal)
' End If
'Else
nret = ReadObjectVarious4(nPortVariables, nType, nAddressNumber, 1, MyData, SYN)
If nret = 0 Then
'Var.SetValue(MyData.data(0))
'Dim NewBytes(3) As Byte
'For nBIndex = 3 To 0 Step -1
' NewBytes(3 - nBIndex) = MyData.data(nBIndex)
'Next
Dim nVal As Integer = BitConverter.ToInt32(MyData.data, 0)
Var.SetValue(nVal)
End If
'End If
'EgtOutLog("Variabile: " & Var.sAddress & " Tipo: " & nType & " NAddres: " & nAddressNumber & " Valore: " & nVal)
ElseIf Var.nType = CommVar.Types.PLC Then
Dim nRet As Short = -1
@@ -573,9 +597,34 @@ Public Class NUMAxiumPcToolkitComm
Case "%V814.L"
nRet = ReadLadderVar(nPortVariables, VL, &H814, 4, MyData, SYN)
nRes = BitConverter.ToInt32(MyData.data, 0)
Case Else
Dim nType As eVarious4
Dim sAddressNumber As Integer = Var.sAddress.Substring(1)
Dim nAddressNumber As Integer = 0
If Not Integer.TryParse(sAddressNumber, nAddressNumber) Then Return
If nAddressNumber >= 30000 Then
nType = eVarious4.E30000
nAddressNumber -= 30000
'EgtOutLog("E30000 var trovata")
End If
If nType = eVarious4.E30000 Then
Dim Group As UInt16 = 0
Dim ObjectList As New tDNC20_ObjectList With {.ElemNum = 3,
.First = nAddressNumber,
.Quantity = 1}
EgtOutLog("E30000 var trovata, valori: " & nPortVariables & " " & Group & "" & ObjectList.First & " " & nRes)
nRet = DNC20_ReadExxxxx(nPortVariables, Group, 1, ObjectList, nRes, SYN)
EgtOutLog("E30000 var risultato: " & nRet)
If nRet = 0 Then
Var.SetValue(nRes)
EgtOutLog("E30000 var assegnata: " & nRes)
End If
End If
End Select
If nRet = 0 Then
EgtOutLog("Variabile: " & Var.sAddress & "DVal: " & nRes & " Valore: " & MyData.data(0) & "," & MyData.data(1) & "," & MyData.data(2) & "," & MyData.data(3))
'EgtOutLog("Variabile: " & Var.sAddress & "DVal: " & nRes & " Valore: " & MyData.data(0) & "," & MyData.data(1) & "," & MyData.data(2) & "," & MyData.data(3))
EgtOutLog("Variabile: " & Var.sAddress & "DVal: " & nRes)
Var.SetValue(nRes)
End If
End If
@@ -592,17 +641,24 @@ Public Class NUMAxiumPcToolkitComm
Dim SendPermissionVariable As Variable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = SENDPERMISSION)
Dim dTemp As Double = 0
Dim nSendPermission As Integer = 0
EgtOutLog("Inizio invio programma")
While nSendPermission <> 2
Dim bFirstWriteOne = True
EgtOutLog("Inizio ciclo verifica diverso da 2")
' leggo valore
If Not IsNothing(SendPermissionVariable.sValue) Then
StringToDouble(SendPermissionVariable.sValue, dTemp)
Integer.TryParse(dTemp, nSendPermission)
EgtOutLog("Lettura variabile E30099: " & nSendPermission)
Else
EgtOutLog("nSendPermission = -1")
nSendPermission = -1
End If
' se uguale a zero ci scrivo uno
If nSendPermission = 0 Then
If nSendPermission = 0 And bFirstWriteOne Then
bFirstWriteOne = False
SendPermissionVariable.sValue = 1
EgtOutLog("Scrittura variabile E30099 = 1")
End If
Threading.Thread.Sleep(1000)
End While
@@ -650,6 +706,7 @@ Public Class NUMAxiumPcToolkitComm
End If
End If
nRes = DownLoadFileAsyn(nPortFileTransfer, nFileType, sFilePath, DNC_MODE_ABORT, nIndex)
SendPermissionVariable.sValue = 0
m_BytesTransferedCounter = 0
m_bIsTransferActive = False
Return
@@ -95,6 +95,12 @@ Public Class CALCPanelVM
End Get
End Property
Public ReadOnly Property Edit_Visibility As Visibility
Get
Return If(Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso GetMainPrivateProfileInt(S_GENERAL, K_ENABLEEDIT, 0) = 1, Visibility.Visible, Visibility.Collapsed)
End Get
End Property
Public ReadOnly Property Verify_IsEnabled As Boolean
Get
Return If(Map.refMainMenuVM.SelPage = Pages.VIEW,
@@ -37,7 +37,7 @@
Style="{StaticResource ToolBar_Button}"
Command="{Binding Edit_Command}"
IsEnabled="{Binding Edit_IsEnabled}"
Visibility="{Binding ViewPage_Visibility}">
Visibility="{Binding Edit_Visibility}">
<Image Source="/Resources/CALCPanel/Edit.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="{Binding ChooseMachine_ToolTip}"
@@ -890,6 +890,9 @@
<ItemGroup>
<Resource Include="Resources\TopPanel\MovePartInRawPart.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\PartManager\Clock.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.ViewerOptimizerR32.exe
@@ -1004,7 +1004,8 @@ Public Class LeftPanelVM
' creo copia
Dim NewFeature = SelFeature.Copy()
If Not IsNothing(NewFeature) Then
Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.BTLFeatureVMList.FirstOrDefault(Function(x) x.BTLFeatureM Is NewFeature)
SelPart.SelBTLFeatureVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.BTLFeatureVMList.FirstOrDefault(Function(x) x.BTLFeatureM Is NewFeature)
EgtDuploSetModified(SelPart.nPartId)
End If
SelPart.ResetCalcPart()
End Sub
@@ -1104,6 +1105,7 @@ Public Class LeftPanelVM
End If
' se è stata creata
If nNewFeatureId <> GDB_ID.NULL Then
EgtDuploSetModified(Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId)
' la aggiungo a struttura BTL corrente
NewFeat = BTLFeatureM.CreateBTLFeature(Map.refProjectVM.BTLStructureVM.SelBTLPart.BTLPartM, nNewFeatureId)
If Not bMacroFlag Then NewFeat.SetDefaultValues()
@@ -1138,7 +1140,8 @@ Public Class LeftPanelVM
If IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) Then Return
If IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM) Then Return
If EgtBeamEraseProcess(Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.nFeatureId) Then
' rimuovo dalla lista pezzi
EgtDuploSetModified(Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId)
' rimuovo dalla lista feature
Dim Index As Integer = Map.refProjectVM.BTLStructureVM.SelBTLPart.BTLFeatureVMList.IndexOf(Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM)
If Index = 0 Then
If Map.refProjectVM.BTLStructureVM.SelBTLPart.BTLFeatureVMList.Count > 0 Then
@@ -1,104 +1,116 @@
<StackPanel x:Class="PartManagerV"
<Grid x:Class="PartManagerV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
Orientation="Horizontal"
Height="28"
IsEnabled="{Binding PartManager_IsEnabled}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="BTL Qty"
Style="{StaticResource OptionTextBlock}"/>
<TextBlock Text="{Binding Tag.sCNT,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}"
Width="25"
Style="{StaticResource OptionTextBlock}"/>
<TextBlock Text="Added Qty"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sADDED,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}"
Width="25"/>
<TextBlock Text="W"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sW,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}" Width="45"/>
<TextBlock Text="H"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sH,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}" Width="45"/>
<TextBlock Text="L"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sL,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}" Width="65"/>
<TextBlock Text="Inverti"
Style="{StaticResource OptionTextBlock}"
Margin="10,0,0,0"/>
<Image IsEnabled="{Binding Tag.bLockInversion,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Height="15"
Stretch="Uniform"
Visibility="{Binding Lock_Visibility}"
Style="{StaticResource LockImage}"/>
<TextBlock Text="BTL Qty"
Style="{StaticResource OptionTextBlock}"/>
<TextBlock Text="{Binding Tag.sCNT,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}"
Width="25"
Style="{StaticResource OptionTextBlock}"/>
<TextBlock Text="Added Qty"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sADDED,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}"
Width="25"/>
<TextBlock Text="W"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sW,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}" Width="45"/>
<TextBlock Text="H"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sH,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}" Width="45"/>
<TextBlock Text="L"
Style="{StaticResource OptionTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sL,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}},
UpdateSourceTrigger=Explicit}" Width="65"/>
<TextBlock Text="Inverti"
Style="{StaticResource OptionTextBlock}"
Margin="10,0,0,0"/>
<Image IsEnabled="{Binding Tag.bLockInversion,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Height="15"
Stretch="Uniform"
Visibility="{Binding Lock_Visibility}"
Style="{StaticResource LockImage}"/>
<Button Command="{Binding Tag.Invert_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="5,0,0,0">
<Image Source="/Resources/PartManager/LeftInvert.png" Stretch="Uniform"/>
</Button>
<TextBlock Text="{Binding Tag.sINVERTED,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
TextAlignment="Center"
Width="25"
Style="{StaticResource OptionTextBlock}"/>
<Button Command="{Binding Tag.Invert_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="0,0,5,0">
<Image Source="/Resources/PartManager/RightInvert.png" Stretch="Uniform"/>
</Button>
<TextBlock Text="Ruota"
Style="{StaticResource OptionTextBlock}"
Margin="10,0,0,0"/>
<Image IsEnabled="{Binding Tag.bLockRotation,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Height="15"
Stretch="Uniform"
Visibility="{Binding Lock_Visibility}"
Style="{StaticResource LockImage}"/>
<Button Command="{Binding Tag.Invert_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="5,0,0,0">
<Image Source="/Resources/PartManager/LeftInvert.png" Stretch="Uniform"/>
</Button>
<TextBlock Text="{Binding Tag.sINVERTED,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
TextAlignment="Center"
Width="25"
Style="{StaticResource OptionTextBlock}"/>
<Button Command="{Binding Tag.Invert_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="0,0,5,0">
<Image Source="/Resources/PartManager/RightInvert.png" Stretch="Uniform"/>
</Button>
<TextBlock Text="Ruota"
Style="{StaticResource OptionTextBlock}"
Margin="10,0,0,0"/>
<Image IsEnabled="{Binding Tag.bLockRotation,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Height="15"
Stretch="Uniform"
Visibility="{Binding Lock_Visibility}"
Style="{StaticResource LockImage}"/>
<Button Command="{Binding Tag.BackRotation_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="5,0,0,0">
<Image Source="/Resources/PartManager/LeftRotate.png" Stretch="Uniform"/>
</Button>
<TextBlock Text="{Binding Tag.sROTATED,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
TextAlignment="Center"
Width="25"
Style="{StaticResource OptionTextBlock}"/>
<Button Command="{Binding Tag.ForwardRotation_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="0,0,10,0">
<Image Source="/Resources/PartManager/RightRotate.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding Tag.BackRotation_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="5,0,0,0">
<Image Source="/Resources/PartManager/LeftRotate.png" Stretch="Uniform"/>
</Button>
<TextBlock Text="{Binding Tag.sROTATED,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
TextAlignment="Center"
Width="25"
Style="{StaticResource OptionTextBlock}"/>
<Button Command="{Binding Tag.ForwardRotation_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="0,0,10,0">
<Image Source="/Resources/PartManager/RightRotate.png" Stretch="Uniform"/>
</Button>
<!--Comando inutilizzato ma conservato per eventuale rotazione a causa di importazione con rotazione sbagliata-->
<!--<Button Command="{Binding Tag.XRotation_Command,
<!--Comando inutilizzato ma conservato per eventuale rotazione a causa di importazione con rotazione sbagliata-->
<!--<Button Command="{Binding Tag.XRotation_Command,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource ToolBar_SmallButton}"
Margin="0,0,10,0">
<Image Source="/Resources/PartManager/RightRotate.png" Stretch="Uniform"/>
</Button>-->
<TextBlock Text="{Binding Tag.sNAM,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource OptionTextBlock}"/>
<TextBlock Text="{Binding Tag.sNAM,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Style="{StaticResource OptionTextBlock}"/>
</StackPanel>
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Right"
FlowDirection="RightToLeft">
<TextBlock Text="{Binding Tag.sUnitTime,
UpdateSourceTrigger=PropertyChanged,
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
Width="45"
Style="{StaticResource OptionTextBlock}"/>
<Image Source="/Resources/PartManager/Clock.png"
Stretch="Uniform"
Height="15"/>
</StackPanel>
</StackPanel>
</Grid>
@@ -172,6 +172,7 @@ Public Class ProjectVM
Friend Sub NotifyCalcPanel_Visibility()
Map.refCALCPanelVM.NotifyPropertyChanged(NameOf(Map.refCALCPanelVM.ViewPage_Visibility))
Map.refCALCPanelVM.NotifyPropertyChanged(NameOf(Map.refCALCPanelVM.Edit_Visibility))
End Sub
Private m_FreeContourManager_Visibility As Boolean = False
Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

@@ -545,7 +545,10 @@ Public Class MySceneHostVM
' carico lista macchine e macchina del progetto per il pulsante Reset Macchina del CALCPanel
Map.refCALCPanelVM.LoadMachineList()
ElseIf ProjectType = ProjectType.PROD Then
Map.refProdManagerVM.m_MruFiles.Add(sFile)
' se salvato, carico progetto in lista mru
If Not Map.refProdManagerVM.TempCurrProd.bIsNew Then
Map.refProdManagerVM.m_MruFiles.Add(sFile)
End If
' imposto macchina del progetto
Map.refMachinePanelVM.SelectedMachine = If(Not IsNothing(Map.refProdManagerVM.TempCurrProd),
Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) x.Name = Map.refProdManagerVM.TempCurrProd.sMachine),