Compare commits
71 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 96dd92c3d3 | |||
| ebc41183bc | |||
| feb7982bef | |||
| f241b72453 | |||
| 848b6d98a5 | |||
| 0589565b8e | |||
| 1109a91dd9 | |||
| 37cb1dbb6a | |||
| 152788fe1b | |||
| 534b363a04 | |||
| 3f13706b97 | |||
| 1f804ab6fc | |||
| 21dd6fbbb1 | |||
| da73acc8a0 | |||
| f9825db2ac | |||
| a3ea3bd1eb | |||
| 805a3acf54 | |||
| f21f2a6422 | |||
| 50d9603598 | |||
| fae8018df9 | |||
| 3b2715ee58 | |||
| d7c8e8e21d | |||
| 9d11e6e9ca | |||
| 8d90714a82 | |||
| 429d7f58e4 | |||
| 7e15ef9dd1 | |||
| 6060746412 | |||
| 2b4f3d93dc | |||
| f365c7a593 | |||
| fc797ff4a7 | |||
| 63b1f1532a | |||
| b861c647fc | |||
| fa7d95cc53 | |||
| cdb0414097 | |||
| 48ac0a878f | |||
| 804992e485 | |||
| 4ef9497514 | |||
| 3c939a9e5b | |||
| aaddb6897f | |||
| b0db630d56 | |||
| e608fd3a52 | |||
| 573cc1478a | |||
| 25d7516c7a | |||
| 8ac3c4879b | |||
| b551120fcc | |||
| b1846bb804 | |||
| 399a1f466f | |||
| c1ca70adce | |||
| 364520f9a3 | |||
| c0bfe75fd7 | |||
| 1d9618d797 | |||
| 1ac9f823a4 | |||
| 73950690ff | |||
| 2bc79ad2de | |||
| 9ad45b9ea4 | |||
| 89cb9e06f1 | |||
| 3b77f647a6 | |||
| 71c5b20782 | |||
| 08ac48d16e | |||
| 90ac144f2a | |||
| f5b98f803c | |||
| 8f05ef25f6 | |||
| 0022aacbd3 | |||
| ba64c8e231 | |||
| 431c30935c | |||
| 47d0fef508 | |||
| 6decc2f690 | |||
| 2bbd407019 | |||
| abc2c4fe07 | |||
| 402e17b57d | |||
| 08ae91e412 |
@@ -467,7 +467,7 @@ Public Class BTLFeatureM
|
||||
If Param.nType = BTLParamType.DOUBLE_ Or Param.nType = BTLParamType.LENGTH Then
|
||||
Param.SetValue(Param.dDefault)
|
||||
ElseIf Param.nType = BTLParamType.STRING_ Then
|
||||
Param.SetValue("")
|
||||
Param.SetValue(Param.sDefault)
|
||||
ElseIf Param.nType = BTLParamType.COMBO Then
|
||||
Param.nSelValue = Param.dDefault
|
||||
End If
|
||||
|
||||
@@ -129,6 +129,16 @@ Public Class BTLParamM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Protected m_sDefault As String
|
||||
Public Property sDefault As String
|
||||
Get
|
||||
Return m_sDefault
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sDefault = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' tipo della variabile
|
||||
Protected m_nType As BTLParamType
|
||||
Public ReadOnly Property nType As BTLParamType
|
||||
@@ -136,6 +146,9 @@ Public Class BTLParamM
|
||||
Return m_nType
|
||||
End Get
|
||||
End Property
|
||||
Public Sub SetType(value As BTLParamType)
|
||||
m_nType = value
|
||||
End Sub
|
||||
|
||||
' Feature a cui appartiene il parametro
|
||||
Protected m_ParentFeature As BTLFeatureM
|
||||
@@ -245,16 +258,18 @@ Public Class BTLParamM
|
||||
End Function
|
||||
|
||||
' new per stringhe
|
||||
Public Shared Function CreateBTLParam(ParentFeature As BTLFeatureM, IsP As Boolean, nType As BTLParamType, sParamName As String, sDescription As String)
|
||||
Public Shared Function CreateBTLParam(ParentFeature As BTLFeatureM, IsP As Boolean, nType As BTLParamType, sParamName As String, sDefault As String, sDescription As String)
|
||||
Dim NewBTLParam As New BTLParamM
|
||||
NewBTLParam.StdInit(ParentFeature, IsP, nType, sParamName, sDescription)
|
||||
NewBTLParam.m_sDefault = sDefault
|
||||
Return NewBTLParam
|
||||
End Function
|
||||
|
||||
' new per stringhe (con tipo Beam o Wall)
|
||||
Public Shared Function CreateBTLParam(ParentFeature As BTLFeatureM, IsP As Boolean, nType As BTLParamType, sParamName As String, sDescription As String, sBWType As String)
|
||||
Public Shared Function CreateBTLParam(ParentFeature As BTLFeatureM, IsP As Boolean, nType As BTLParamType, sParamName As String, sDefault As String, sDescription As String, sBWType As String)
|
||||
Dim NewBTLParam As New BTLParamM
|
||||
NewBTLParam.StdInit(ParentFeature, IsP, nType, sParamName, sDescription)
|
||||
NewBTLParam.m_sDefault = sDefault
|
||||
NewBTLParam.m_sBWType = sBWType
|
||||
Return NewBTLParam
|
||||
End Function
|
||||
|
||||
@@ -1210,7 +1210,7 @@ Public Class BTLPartM
|
||||
Return New List(Of BTLFeatureM)(m_BTLFeatureMList)
|
||||
End Function
|
||||
|
||||
Public Function Rotation(IsPositive As Boolean, SelectedMachineType As MachineType, Optional dAng As Double = 90) As Boolean
|
||||
Public Function Rotation(IsPositive As Boolean, SelectedMachineType As MachineType, Optional bRedraw As Boolean = True, Optional dAng As Double = 90) As Boolean
|
||||
' recupero il box del pezzo
|
||||
Dim nLs As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
Dim b3Solid As New BBox3d
|
||||
@@ -1249,7 +1249,7 @@ Public Class BTLPartM
|
||||
' ripristino inversione
|
||||
Inversion(SelectedMachineType)
|
||||
End If
|
||||
EgtDraw()
|
||||
If bRedraw Then EgtDraw()
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ Public Module CalcIntegration
|
||||
End If
|
||||
ElseIf Bar.nProgramPage = ProjectType.PROD Then
|
||||
If Bar.nGlobState = CalcStates.NOTCALCULATED Then
|
||||
Bar.sBarPath = CreateNewProjectFromMachGroup(Bar.nBarId, sProjDirPath)
|
||||
Bar.sBarPath = CreateNewProjectFromMachGroup(Bar.nBarId, sProjDirPath, Bar.nGlobState)
|
||||
Else
|
||||
Dim sMachGroupName As String = ""
|
||||
EgtGetMachGroupName(Bar.nBarId, sMachGroupName)
|
||||
@@ -78,7 +78,7 @@ Public Module CalcIntegration
|
||||
If Bar.nProgramPage = ProjectType.PROJ Then
|
||||
Bar.sBarPath = CreateNewProjectFromPart(Bar.nBarId, sProjDirPath)
|
||||
ElseIf Bar.nProgramPage = ProjectType.PROD Then
|
||||
Bar.sBarPath = CreateNewProjectFromMachGroup(Bar.nBarId, sProjDirPath)
|
||||
Bar.sBarPath = CreateNewProjectFromMachGroup(Bar.nBarId, sProjDirPath, Bar.nGlobState)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
@@ -355,8 +355,14 @@ Public Module CalcIntegration
|
||||
Return If(bOk, sPartFilePath, String.Empty)
|
||||
End Function
|
||||
|
||||
Private Function CreateNewProjectFromMachGroup(nMachGroupId As Integer, sProjDirPath As String) As String
|
||||
If Not m_bIsSupervisor Then
|
||||
Private Function CreateNewProjectFromMachGroup(nMachGroupId As Integer, sProjDirPath As String, nGlobState As Integer) As String
|
||||
' aggiorno cutid e taskid solo fuori dal supervisore o se pezzo ricalcolato
|
||||
If Not m_bIsSupervisor OrElse nGlobState = CalcStates.NOTCALCULATED Then
|
||||
Dim DisableMgr As DisableModifiedMgr = Nothing
|
||||
If m_bIsSupervisor Then
|
||||
' Disabilito segnalazione modificato
|
||||
DisableMgr = New DisableModifiedMgr
|
||||
End If
|
||||
' Aggiorno identificativi per segnalazione errori
|
||||
Dim nOldMachGroup As Integer = EgtGetCurrMachGroup()
|
||||
If nMachGroupId <> nOldMachGroup Then EgtSetCurrMachGroup(nMachGroupId)
|
||||
@@ -378,6 +384,10 @@ Public Module CalcIntegration
|
||||
EgtResetCurrMachGroup()
|
||||
End If
|
||||
End If
|
||||
If m_bIsSupervisor Then
|
||||
' Ripristino stato segnalazione modifica
|
||||
DisableMgr.ReEnable()
|
||||
End If
|
||||
End If
|
||||
|
||||
' Salvo gruppo di lavorazione nel suo progetto
|
||||
|
||||
@@ -251,6 +251,7 @@
|
||||
Public Const MGR_RPT_PANELLEN As String = "PANELLEN"
|
||||
Public Const MGR_RPT_PANELWIDTH As String = "PANELWIDTH"
|
||||
Public Const MGR_RPT_PANELHEIGHT As String = "PANELHEIGHT"
|
||||
Public Const MGR_RPT_PANELPOSZ As String = "PANELPOSZ"
|
||||
Public Const MGR_RPT_PART As String = "PART"
|
||||
|
||||
' parametri P per comunicazione con la macchina
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
Public Const COL_STARTCUT As String = "colSTARTCUT"
|
||||
Public Const COL_W As String = "colW"
|
||||
Public Const COL_L As String = "colL"
|
||||
Public Const COL_POSZ As String = "colPOSZ"
|
||||
Public Const COL_ROT As String = "colROT"
|
||||
Public Const COL_FLIP As String = "colFLIP"
|
||||
Public Const COL_POSX As String = "colPOSX"
|
||||
|
||||
@@ -149,6 +149,16 @@ Public Class MyMachGroupM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected m_dPosZ As Double = 0
|
||||
Public Property dPosZ As Double
|
||||
Get
|
||||
Return m_dPosZ
|
||||
End Get
|
||||
Set(value As Double)
|
||||
m_dPosZ = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' Wall
|
||||
|
||||
#Region "Calc"
|
||||
@@ -311,6 +321,7 @@ Public Class MyMachGroupM
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELLEN, NewMachGroupM.m_dL)
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELWIDTH, NewMachGroupM.m_dW)
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELHEIGHT, NewMachGroupM.m_dH)
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELPOSZ, NewMachGroupM.m_dPosZ)
|
||||
NewMachGroupM.m_dTotMat = NewMachGroupM.m_dL * NewMachGroupM.m_dW * NewMachGroupM.m_dH
|
||||
NewMachGroupM.m_PartMList = LoadParts(NewMachGroupM)
|
||||
For Each Part In NewMachGroupM.m_PartMList
|
||||
@@ -343,6 +354,7 @@ Public Class MyMachGroupM
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELLEN, NewMachGroupM.m_dL)
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELWIDTH, NewMachGroupM.m_dW)
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELHEIGHT, NewMachGroupM.m_dH)
|
||||
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_PANELPOSZ, NewMachGroupM.m_dPosZ)
|
||||
NewMachGroupM.m_dTotMat = NewMachGroupM.m_dL * NewMachGroupM.m_dW
|
||||
NewMachGroupM.m_PartMList = LoadParts(NewMachGroupM)
|
||||
For Each Part In NewMachGroupM.m_PartMList
|
||||
|
||||
@@ -395,6 +395,7 @@ Public Class MyMachGroupPanelM
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
EgtResetCurrMachGroup()
|
||||
Return ToRedrawMachGroupList
|
||||
End Function
|
||||
|
||||
Friend Shared Function DuploGetToDelete(nSouId As Integer, ByRef bToDelete As Boolean) As Boolean
|
||||
|
||||
@@ -632,13 +632,17 @@ Public MustInherit Class MyMachGroupVM
|
||||
Public ReadOnly Property DeleteMachGroup_Command As ICommand
|
||||
Get
|
||||
If m_cmdDeleteMachGroup Is Nothing Then
|
||||
m_cmdDeleteMachGroup = New Command(AddressOf DeleteMachGroup)
|
||||
m_cmdDeleteMachGroup = New Command(AddressOf DeleteMachGroupCmd)
|
||||
End If
|
||||
Return m_cmdDeleteMachGroup
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Overridable Sub DeleteMachGroup()
|
||||
Public Sub DeleteMachGroupCmd()
|
||||
DeleteMachGroup()
|
||||
End Sub
|
||||
|
||||
Public Overridable Sub DeleteMachGroup(Optional bMultipleCommand As Boolean = False)
|
||||
' elimino tutte le copie
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
Dim nBeamId As Integer = EgtGetFirstPartInRawPart(nRawPartId)
|
||||
|
||||
@@ -35,5 +35,5 @@ Imports System.Runtime.InteropServices
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.7.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.7.1")>
|
||||
<Assembly: AssemblyVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyFileVersion("2.4.11.3")>
|
||||
|
||||
@@ -159,7 +159,7 @@ Public Module BTLIniFile
|
||||
IpBTLParam = BTLParamM.CreateBTLParam(IpParentFeature, IsP, ParamType, sBTLParamParams(1), dMin, dMax, dDefault, sBTLParamParams(5))
|
||||
Return Not IsNothing(IpBTLParam)
|
||||
ElseIf sBTLParamParams(0) = "s" Then
|
||||
IpBTLParam = BTLParamM.CreateBTLParam(IpParentFeature, IsP, BTLParamType.STRING_, sBTLParamParams(1), sBTLParamParams(5))
|
||||
IpBTLParam = BTLParamM.CreateBTLParam(IpParentFeature, IsP, BTLParamType.STRING_, sBTLParamParams(1), sBTLParamParams(4), sBTLParamParams(5))
|
||||
Return Not IsNothing(IpBTLParam)
|
||||
ElseIf sBTLParamParams(0) = "c" Then
|
||||
Dim nMin As Integer
|
||||
@@ -212,7 +212,7 @@ Public Module BTLIniFile
|
||||
IpBTLParam = BTLParamM.CreateBTLParam(IpParentFeature, IsP, ParamType, sBTLParamParams(1), dMin, dMax, dDefault, sBTLParamParams(5), sBWQParam)
|
||||
Return Not IsNothing(IpBTLParam)
|
||||
ElseIf sBTLParamParams(0) = "s" Then
|
||||
IpBTLParam = BTLParamM.CreateBTLParam(IpParentFeature, IsP, BTLParamType.STRING_, sBTLParamParams(1), sBTLParamParams(5), sBWQParam)
|
||||
IpBTLParam = BTLParamM.CreateBTLParam(IpParentFeature, IsP, BTLParamType.STRING_, sBTLParamParams(1), sBTLParamParams(4), sBTLParamParams(5), sBWQParam)
|
||||
Return Not IsNothing(IpBTLParam)
|
||||
ElseIf sBTLParamParams(0) = "c" Then
|
||||
Dim nMin As Integer
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.29.0" newVersion="8.0.29.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.21.0" newVersion="8.0.21.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
|
||||
@@ -22,6 +22,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
// Initialize database context for ADMIN
|
||||
adbCtx = new AdminContext(DbConfig.ADMIN_CONNECTION_STRING);
|
||||
// DB standard utente
|
||||
dbCtx = new AdminContext(DbConfig.CONNECTION_STRING);
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
@@ -39,33 +41,10 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
bool answ = false;
|
||||
string domain = isNetwork ? "%" : "localhost";
|
||||
// ricerca utente...
|
||||
var numUser = adbCtx
|
||||
.UserList
|
||||
.Where(x => x.User == username)
|
||||
.ToList()
|
||||
.Count;
|
||||
if (numUser > 0)
|
||||
answ = doCheckCreate(username, pwd, answ, domain, false);
|
||||
if (answ)
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
if (!answ)
|
||||
{
|
||||
// creo utente
|
||||
string sqlCommand = "FLUSH PRIVILEGES;";
|
||||
//string sqlCommand = $"CREATE USER '{username}'@'{domain}' IDENTIFIED BY '{pwd}'; GRANT ALL ON *.* TO '{username}'@'localhost'; FLUSH PRIVILEGES;";
|
||||
//string sqlCommand = $"CREATE USER '{username}'@'{domain}' IDENTIFIED BY '{pwd}'; GRANT ALL ON *.* TO '{username}'@'localhost'; FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
sqlCommand = $"CREATE USER '{username}'@'{domain}' IDENTIFIED BY '{pwd}';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
sqlCommand = $"GRANT ALL ON *.* TO '{username}'@'{domain}';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
sqlCommand = "FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
doGrantPriv(username, domain, "ALL ON *.*");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -85,6 +64,51 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
adbCtx.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifica esistenza views + utente relativo eventualmente ricreandole + fornendo accesso
|
||||
/// all'utente ReadOnly Essetre
|
||||
/// </summary>
|
||||
/// <param name="dbName"></param>
|
||||
/// <param name="username"></param>
|
||||
/// <param name="pwd"></param>
|
||||
/// <returns></returns>
|
||||
public bool refreshViews(string dbName, string username = "S3_User", string pwd = "S3_P4ssw0rd")
|
||||
{
|
||||
bool answ = false;
|
||||
|
||||
// in primis refresh delle view
|
||||
string sqlCommand = @"CREATE OR REPLACE VIEW v_expProdRaw AS
|
||||
SELECT DbId, AlarmDtEvent AS DtEvent, VarValue,
|
||||
SUBSTRING_INDEX(VarValue, ';', 1) AS Prod,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(VarValue, ';', 2), ';', -1) AS MachGroupId,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(VarValue, ';', -2), ';', 1) AS PartId,
|
||||
SUBSTRING_INDEX(VarValue, ';', -1) AS Status
|
||||
FROM logmachine
|
||||
WHERE ResultType = 1
|
||||
AND VarAddress = 1;
|
||||
|
||||
CREATE OR REPLACE VIEW v_expProd AS
|
||||
SELECT vp.DtEvent, vp.Prod, mgl.Name AS mgName, pl.PDN, vp.`Status`
|
||||
FROM v_expProdRaw AS vp
|
||||
INNER JOIN MachGroupList mgl ON vp.MachGroupId = mgl.Id
|
||||
INNER JOIN partlist pl ON vp.PartId = pl.Id;";
|
||||
dbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// ora setup parametri x utente
|
||||
string domain = "%";
|
||||
|
||||
// ora controllo utente con diritti
|
||||
answ = doCheckCreate(username, pwd, answ, domain, true);
|
||||
if (answ)
|
||||
{
|
||||
doGrantPriv(username, domain, "USAGE ON *.*");
|
||||
doGrantPriv(username, domain, $"SELECT ON {dbName}.v_expProd");
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ATTENZIONE!!!! Procedura di Reset del DB
|
||||
/// </summary>
|
||||
@@ -117,6 +141,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
#region Private Fields
|
||||
|
||||
private AdminContext adbCtx;
|
||||
private AdminContext dbCtx;
|
||||
|
||||
/// <summary>
|
||||
/// Istanza logger
|
||||
@@ -124,5 +149,79 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
private NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Procedura interna effettiva di check utente ed eventuale creazione + grant level
|
||||
/// </summary>
|
||||
/// <param name="username"></param>
|
||||
/// <param name="pwd"></param>
|
||||
/// <param name="answ"></param>
|
||||
/// <param name="domain"></param>
|
||||
/// <param name="force">Force = esegue un drop prima...</param>
|
||||
/// <returns></returns>
|
||||
private bool doCheckCreate(string username, string pwd, bool answ, string domain, bool force)
|
||||
{
|
||||
// ricerca utente...
|
||||
var numUser = adbCtx
|
||||
.UserList
|
||||
.Where(x => x.User == username)
|
||||
.ToList()
|
||||
.Count;
|
||||
if (numUser > 0)
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
if (!answ)
|
||||
{
|
||||
// creo utente
|
||||
string sqlCommand = $"DROP USER IF EXISTS {username};";
|
||||
if (force)
|
||||
{
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
sqlCommand = "FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
sqlCommand = $"CREATE USER '{username}'@'{domain}' IDENTIFIED BY '{pwd}';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
sqlCommand = "FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
answ = true;
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Procedura interna effettiva di grant level x utente
|
||||
/// </summary>
|
||||
/// <param name="username"></param>
|
||||
/// <param name="domain"></param>
|
||||
/// <param name="grantLevel"></param>
|
||||
/// <returns></returns>
|
||||
private bool doGrantPriv(string username, string domain, string grantLevel)
|
||||
{
|
||||
bool answ = false;
|
||||
|
||||
string sqlCommand = "FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
sqlCommand = $"GRANT {grantLevel} TO '{username}'@'{domain}';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
sqlCommand = "FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
Thread.Sleep(100);
|
||||
answ = true;
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -58,6 +58,19 @@ namespace EgtBEAMWALL.DataLayer
|
||||
return Controllers.DbController.man.checkCreateUser(DATABASE_USER, DATABASE_PWD, isNetwork);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua verifica presenza view prod + relativo utente
|
||||
/// </summary>
|
||||
/// <param name="nKey"></param>
|
||||
/// <param name="sKey"></param>
|
||||
/// <param name="isNetwork"></param>
|
||||
/// <returns></returns>
|
||||
public static bool CheckViews(string nKey, string sKey)
|
||||
{
|
||||
// esecuzione script di install locale
|
||||
return Controllers.DbController.man.refreshViews(DATABASE_NAME);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo di init standard per DB in rete con Master_Key
|
||||
/// </summary>
|
||||
|
||||
@@ -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("2.4.7.1")]
|
||||
[assembly: AssemblyFileVersion("2.4.7.1")]
|
||||
[assembly: AssemblyVersion("2.4.11.3")]
|
||||
[assembly: AssemblyFileVersion("2.4.11.3")]
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6"/>
|
||||
<providers>
|
||||
|
||||
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
|
||||
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<connectionStrings>
|
||||
|
||||
@@ -3,8 +3,7 @@ Imports EgtBEAMWALL.Core
|
||||
|
||||
Public Class AboutBoxV
|
||||
|
||||
Private Sub AboutBoxWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||
Me.Owner = Application.Current.MainWindow
|
||||
Private Sub AboutBoxWD_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
DescriptionLbl.Text = My.Application.Info.Description.ToString()
|
||||
VersionLbl.Text = "Version : " & My.Application.Info.Version.Major.ToString() &
|
||||
"." & My.Application.Info.Version.Minor.ToString() &
|
||||
@@ -25,6 +24,9 @@ Public Class AboutBoxV
|
||||
sInfo &= sKey & " - " & sKlev & " - " & sOpts & sLeftDays & Environment.NewLine
|
||||
sInfo &= "DataRoot " & Map.refMainWindowVM.MainWindowM.sDataRoot & Environment.NewLine
|
||||
sInfo &= "MachinesRoot " & Map.refMainWindowVM.MainWindowM.sMachinesRoot & Environment.NewLine
|
||||
Dim sOpSys As String = String.Empty
|
||||
EgtGetOsInfo( sOpSys)
|
||||
sInfo &= sOpSys & Environment.NewLine
|
||||
Dim sCPU As String = String.Empty
|
||||
EgtGetCpuInfo( sCPU)
|
||||
sInfo &= sCPU & Environment.NewLine
|
||||
@@ -32,7 +34,7 @@ Public Class AboutBoxV
|
||||
EgtGetSceneInfo(sScene)
|
||||
sInfo &= sScene
|
||||
InfoLbl.Text = sInfo
|
||||
ExitBtn.Content = EgtMsg(constmsg.MSG_MISSINGKEYWD + 4) 'Ok
|
||||
ExitBtn.Content = EgtMsg(MSG_MISSINGKEYWD + 4) 'Ok
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -377,7 +377,8 @@ Public Class CALCPanelVM
|
||||
.nProgramPage = ProjectType.PROD,
|
||||
.nProjType = ProjType,
|
||||
.bBarOk = True,
|
||||
.nMachineName = MachineName}
|
||||
.nMachineName = MachineName,
|
||||
.nGlobState = MachGroup.nGlobalState}
|
||||
Select Case MachGroup.nGlobalState
|
||||
Case Core.CalcStates.OK, Core.CalcStates.INFO
|
||||
Bar.nCmdType = CalcIntegration.CmdTypes.GENERATE
|
||||
@@ -500,7 +501,7 @@ Public Class CALCPanelVM
|
||||
.bBarOk = True,
|
||||
.nMachineName = MachineName,
|
||||
.nCmdType = CalcIntegration.CmdTypes.SIMULATE}
|
||||
If SelMachGroup.nGlobalState <> Core.CalcStates.OK Then
|
||||
If SelMachGroup.nGlobalState = CalcStates.NOTCALCULATED Then
|
||||
Dim sMachGroupFilePath As String = Map.refSupervisorManagerVM.CurrProd.sProdDirPath & "\" & SelMachGroup.Name.ToString() & ".ori.bwe"
|
||||
If File.Exists(sMachGroupFilePath) Then File.Delete(sMachGroupFilePath)
|
||||
End If
|
||||
|
||||
@@ -501,7 +501,9 @@ Public Class NUMAxiumComm
|
||||
|
||||
Private Sub objDGeneralFunction_ProgramActivated(ByVal nerrorCode As Short)
|
||||
EgtOutLog("Part program activated:" & " " & nerrorCode)
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandTypes.SENDPROG, CommandStates.OK, ResultTypes.EXECUTED, "Part program activated:" & " " & nerrorCode))
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandTypes.SENDPROG, CommandStates.OK, ResultTypes.EXECUTED, "Part program activated:" & " " & nerrorCode))
|
||||
' scrivo evento programma attivato
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachCommandLog(LogEvent.MachineCommands.PROGRAM_ACTIVATION, "", nerrorCode, DbControllers.SupervisorId))
|
||||
End Sub
|
||||
|
||||
Private Sub objDGeneralFunction_OnCncStart(ByVal errorCode As Short)
|
||||
|
||||
@@ -255,11 +255,11 @@ Public Class NUMAxiumPcToolkitComm
|
||||
m_MachManaging.SetConnected(True)
|
||||
m_ResultCallbackDlg(CommandTypes.CONNECT, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
End If
|
||||
'''EgtOutLog("Activating program 9000")
|
||||
'EgtOutLog("Activating program 9000")
|
||||
|
||||
' attivo programma main
|
||||
Map.refMachManaging.Num_Axium_PCToolkit.ActivateProg(9000)
|
||||
'''EgtOutLog("Activated program 9000")
|
||||
'EgtOutLog("Activated program 9000")
|
||||
Return True
|
||||
End Function
|
||||
|
||||
@@ -391,9 +391,11 @@ Public Class NUMAxiumPcToolkitComm
|
||||
nRes = WriteObjectVarious2(nPortFileTransfer, ACTIVE_PROG, PartProgramNumberActivate)
|
||||
If nRes <> 0 Then
|
||||
EgtOutLog("Error Activate Program: " & nRes.ToString())
|
||||
Else
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandTypes.SENDPROG, CommandStates.OK, ResultTypes.EXECUTED, "Part program activated:" & " " & PartProgramNumberActivate))
|
||||
'Else
|
||||
' DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandTypes.SENDPROG, CommandStates.OK, ResultTypes.EXECUTED, "Part program activated:" & " " & PartProgramNumberActivate))
|
||||
End If
|
||||
' scrivo evento programma attivato
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachCommandLog(LogEvent.MachineCommands.PROGRAM_ACTIVATION, PartProgramNumberActivate, nRes <> 0, DbControllers.SupervisorId))
|
||||
End Sub
|
||||
|
||||
Private Sub ChangeChannel(Channel As Short)
|
||||
@@ -449,16 +451,16 @@ Public Class NUMAxiumPcToolkitComm
|
||||
End Sub
|
||||
|
||||
Friend Sub CloseReadList()
|
||||
'''objDPlcVariables.CloseReadList()
|
||||
'objDPlcVariables.CloseReadList()
|
||||
End Sub
|
||||
|
||||
Private Sub ReadVariablesOnce(Address As String)
|
||||
'Dim _ReadSymbolicPlcVariableOnetime As String = "Application.IOCONFIG_GLOBALS.Flexium_NCK.RCNC.General.Mode"
|
||||
'''Dim _FXReturn As Int16 = objDPlcVariables.ReadVariablesOnce(10, Address)
|
||||
'Dim _FXReturn As Int16 = objDPlcVariables.ReadVariablesOnce(10, Address)
|
||||
|
||||
'''If _FXReturn <> 0 Then
|
||||
''' EgtOutLog("Error ReadVariablesOnce:" & " " & _FXReturn.ToString())
|
||||
'''End If
|
||||
'If _FXReturn <> 0 Then
|
||||
' EgtOutLog("Error ReadVariablesOnce:" & " " & _FXReturn.ToString())
|
||||
'End If
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -512,7 +514,7 @@ Public Class NUMAxiumPcToolkitComm
|
||||
End Sub
|
||||
|
||||
Friend Sub CloseReadELS()
|
||||
'''objDPlcVariables.CloseReadList()
|
||||
'objDPlcVariables.CloseReadList()
|
||||
End Sub
|
||||
|
||||
Public Sub RefreshAllVars()
|
||||
@@ -574,11 +576,11 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Case "%R3.2"
|
||||
nRet = ReadLadderVar(nPortVariables, R2, &H3, 1, MyData, SYN)
|
||||
nRes = If(MyData.data(0) <> 0, 1, 0)
|
||||
'''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))
|
||||
Case "%R3.1"
|
||||
nRet = ReadLadderVar(nPortVariables, R1, &H3, 1, MyData, SYN)
|
||||
nRes = If(MyData.data(0) <> 0, 1, 0)
|
||||
'''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))
|
||||
Case "%V800.L"
|
||||
nRet = ReadLadderVar(nPortVariables, VL, &H800, 4, MyData, SYN)
|
||||
nRes = BitConverter.ToInt32(MyData.data, 0)
|
||||
@@ -699,6 +701,9 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Try
|
||||
ISONumVariable.sValue = SentMachGroup.Name
|
||||
ISOSentVariable.sValue = 0
|
||||
While ISOSentVariable.sValue <> 0
|
||||
Threading.Thread.Sleep(100)
|
||||
End While
|
||||
SentMachGroup.SetSentToMachine(True)
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error write var after download: " & ex.Message)
|
||||
@@ -708,6 +713,7 @@ Public Class NUMAxiumPcToolkitComm
|
||||
nRes = DownLoadFileAsyn(nPortFileTransfer, nFileType, sFilePath, DNC_MODE_ABORT, nIndex)
|
||||
SendPermissionVariable.sValue = 0
|
||||
m_BytesTransferedCounter = 0
|
||||
Threading.Thread.Sleep(500)
|
||||
m_bIsTransferActive = False
|
||||
Return
|
||||
End Sub)
|
||||
@@ -900,10 +906,11 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Next
|
||||
|
||||
For index As Integer = 0 To ErrorNumber.Count - 1
|
||||
Dim Ind As Integer = index
|
||||
Dim NewMessageInList As ReadMessages = m_ReadFXMessages.FirstOrDefault(Function(x) x.CMsgCncNumber = 0.ToString() AndAlso
|
||||
x.CMsgErrorType = 6.ToString() AndAlso
|
||||
x.CMsgErrorIndex = "" AndAlso
|
||||
x.CMsgErrorNumber = ErrorNumber(index).ToString() AndAlso
|
||||
x.CMsgErrorNumber = ErrorNumber(Ind).ToString() AndAlso
|
||||
x.CMsgErrorLine = "" AndAlso
|
||||
x.CMsgErrorMessage = "")
|
||||
' se il messaggio e' gia' in lista
|
||||
@@ -1113,9 +1120,9 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Friend Sub ReadCncMode()
|
||||
Dim nRet As Short = -1
|
||||
Dim nMode As UInt16
|
||||
'''EgtOutLog("Pre ReadObjectVarious2")
|
||||
'EgtOutLog("Pre ReadObjectVarious2")
|
||||
nRet = ReadObjectVarious2(nPortVariables, eVarious2.MODE, nMode, SYN)
|
||||
'''EgtOutLog("ReadObjectVarious2 Ret: " & nRet & " Mode: " & nMode)
|
||||
'EgtOutLog("ReadObjectVarious2 Ret: " & nRet & " Mode: " & nMode)
|
||||
If nRet <> 0 Then
|
||||
EgtOutLog("Reading CncMode failed! Error: " & nRet)
|
||||
Return
|
||||
|
||||
@@ -53,7 +53,7 @@ Public Class NUMFlexiumComm
|
||||
Private m_ReadFXMessages As New List(Of ReadMessages)
|
||||
Private m_ReadOperatorMessages As New List(Of ReadMessages)
|
||||
' lista variabili in lettura
|
||||
Private Shared m_ReadingVars(100) As CommVar
|
||||
Private Shared m_ReadingVars(230) As CommVar
|
||||
Private m_BytesTransferedCounter As Integer
|
||||
Private m_LinearAxisPrecision As Integer
|
||||
|
||||
@@ -368,6 +368,31 @@ Public Class NUMFlexiumComm
|
||||
|
||||
Friend Sub FileDownload(sFileType As String, sFilePath As String)
|
||||
Dim _Return_Download As Short
|
||||
'' leggo variabile E30099
|
||||
'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 And bFirstWriteOne Then
|
||||
' bFirstWriteOne = False
|
||||
' SendPermissionVariable.sValue = 1
|
||||
' EgtOutLog("Scrittura variabile E30099 = 1")
|
||||
' End If
|
||||
' Threading.Thread.Sleep(1000)
|
||||
'End While
|
||||
|
||||
_Return_Download = objDFileTransfer.FileDownload2(10, sFileType, sFilePath, "", 1, 0)
|
||||
|
||||
@@ -451,7 +476,9 @@ Public Class NUMFlexiumComm
|
||||
|
||||
Private Sub objDGeneralFunction_ProgramActivated(ByVal nerrorCode As Short)
|
||||
EgtOutLog("Part program activated:" & " " & nerrorCode)
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandTypes.SENDPROG, CommandStates.OK, ResultTypes.EXECUTED, "Part program activated:" & " " & nerrorCode))
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandTypes.SENDPROG, CommandStates.OK, ResultTypes.EXECUTED, "Part program activated:" & " " & nerrorCode))
|
||||
' scrivo evento programma attivato
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachCommandLog(LogEvent.MachineCommands.PROGRAM_ACTIVATION, "", nerrorCode, DbControllers.SupervisorId))
|
||||
End Sub
|
||||
|
||||
Private Sub objDGeneralFunction_OnCncStart(ByVal errorCode As Short)
|
||||
|
||||
@@ -3,5 +3,7 @@
|
||||
Public Const MDI_MSG As String = "MDI"
|
||||
Public Const PLC_MSG As String = "PLC"
|
||||
Public Const CNC_MSG As String = "CNC"
|
||||
Public Const INPUT_MSG As String = "INPUT"
|
||||
Public Const OUTPUT_MSG As String = "OUTPUT"
|
||||
|
||||
End Module
|
||||
|
||||
@@ -99,6 +99,9 @@
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="APLog">
|
||||
<HintPath>..\ExtLibs\APLog.dll</HintPath>
|
||||
@@ -543,6 +546,7 @@
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.config" />
|
||||
<None Include="app.manifest" />
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
|
||||
@@ -81,6 +81,13 @@
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<!--PosZ - Posizione in Z-->
|
||||
<DataGridTextColumn x:Key="colPOSZ" Binding="{Binding sPosZ}">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.PosZ_Msg,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<!--MAT - Materiale-->
|
||||
<DataGridTextColumn x:Key="colMATERIAL" Binding="{Binding sMATERIAL}">
|
||||
<DataGridTextColumn.Header>
|
||||
|
||||
@@ -13,6 +13,13 @@ Public Class RawPartListVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_colRawPart_PosZ As EgtDataGridColumn
|
||||
Public ReadOnly Property colRawPart_PosZ As EgtDataGridColumn
|
||||
Get
|
||||
Return m_colRawPart_PosZ
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_RawPartColumns As New ObservableCollection(Of EgtDataGridColumn)
|
||||
Public Property RawPartColumns As ObservableCollection(Of EgtDataGridColumn)
|
||||
Get
|
||||
@@ -55,6 +62,12 @@ Public Class RawPartListVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property PosZ_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61728)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Material_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61607)
|
||||
@@ -84,23 +97,27 @@ Public Class RawPartListVM
|
||||
Map.SetRefRawPartListVM(Me)
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_RAWPARTLIST_SUPERVISOR, RawPartColumns)
|
||||
' recupero riferimento a colonna StartCut
|
||||
' recupero riferimento a colonna StartCut e PosZ
|
||||
m_colRawPart_StartCut = m_RawPartColumns.FirstOrDefault(Function(x) x.Name = COL_STARTCUT)
|
||||
m_colRawPart_PosZ = m_RawPartColumns.FirstOrDefault(Function(x) x.Name = COL_POSZ)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
Friend Sub UpdateColumns(nMachType As MachineType)
|
||||
If nMachType = MachineType.BEAM Then
|
||||
If Not IsNothing(m_colRawPart_StartCut) Then
|
||||
m_colRawPart_StartCut.ColumnVisibility = Visibility.Visible
|
||||
End If
|
||||
'RawPartColumns.Clear()
|
||||
'GetPrivateProfileColumns(S_RAWPARTLIST_BEAM, RawPartColumns)
|
||||
' aggiorno la visibilità delle colonne
|
||||
For Each col In RawPartColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
If Not IsNothing(m_colRawPart_StartCut) Then
|
||||
m_colRawPart_StartCut.ColumnVisibility = Visibility.Visible
|
||||
End If
|
||||
If Not IsNothing(m_colRawPart_PosZ) Then
|
||||
m_colRawPart_PosZ.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
'RawPartColumns.Clear()
|
||||
'GetPrivateProfileColumns(S_RAWPARTLIST_BEAM, RawPartColumns)
|
||||
ElseIf nMachType = MachineType.WALL Then
|
||||
' aggiorno la visibilità delle colonne
|
||||
For Each col In RawPartColumns
|
||||
@@ -109,6 +126,9 @@ Public Class RawPartListVM
|
||||
If Not IsNothing(m_colRawPart_StartCut) Then
|
||||
m_colRawPart_StartCut.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
If Not IsNothing(m_colRawPart_PosZ) Then
|
||||
m_colRawPart_PosZ.ColumnVisibility = Visibility.Visible
|
||||
End If
|
||||
'RawPartColumns.Clear()
|
||||
'GetPrivateProfileColumns(S_RAWPARTLIST_WALL, RawPartColumns)
|
||||
End If
|
||||
|
||||
@@ -810,6 +810,8 @@ Public Class LeftPanelVM
|
||||
DbControllers.m_PartController.UpdateStatus(Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, Part.nPartId, ItemState.WIP)
|
||||
Part.dtStartTime = Time
|
||||
Part.nProduction_State = ItemState.WIP
|
||||
' scrivo evento inizio pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(Time - TimeSpan.FromSeconds(1), Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, Part.nPartId, 1, DbControllers.SupervisorId))
|
||||
' se e' il primo ad essere lavorato
|
||||
If Not MachGroup.PartVMList.Any(Function(x) x IsNot Part AndAlso x.dtStartTime > DateTime.MinValue) Then
|
||||
' se non e' gia' in coda per essere prodotto
|
||||
@@ -837,6 +839,8 @@ Public Class LeftPanelVM
|
||||
MachGroup.dtStartTime = Time
|
||||
MachGroup.nProduction_State = ItemState.WIP
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.Production_Background))
|
||||
' scrivo evento inizio MachGroup su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachGroupStateLog(Time - TimeSpan.FromSeconds(1), Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, 1, DbControllers.SupervisorId))
|
||||
' blocco produzione di tutti gli altri perche' iniziato questo
|
||||
MyMachGroupVM.UpdateProduceIsEnabledForAll()
|
||||
End If
|
||||
@@ -846,6 +850,8 @@ Public Class LeftPanelVM
|
||||
DbControllers.m_PartController.UpdateStatus(Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, Part.nPartId, ItemState.Produced)
|
||||
Part.dtEndTime = Time
|
||||
Part.nProduction_State = ItemState.Produced
|
||||
' scrivo evento fine pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(Time, Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, Part.nPartId, 2, DbControllers.SupervisorId))
|
||||
If MachGroup.PartVMList.All(Function(x) x.nProduction_State >= ItemState.Produced) Then
|
||||
'aggiorno anche fine MachGroup
|
||||
DbControllers.m_MachGroupController.UpdateEnd(Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, Time)
|
||||
@@ -861,6 +867,8 @@ Public Class LeftPanelVM
|
||||
NotifyPropertyChanged(NameOf(DoneRawPart_IsEnabled))
|
||||
NotifyPropertyChanged(NameOf(MoveRawPart_IsEnabled))
|
||||
NotifyPropertyChanged(NameOf(ResetRawPart_IsEnabled))
|
||||
' scrivo evento fine MachGroup su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachGroupStateLog(Time, Map.refSupervisorManagerVM.CurrProd.nProdId, MachGroup.Id, 2, DbControllers.SupervisorId))
|
||||
' se avanzamento singolo, sblocco produzione di tutti gli altri
|
||||
If CurrentMachine.Flow = FlowTypes.ONEBYONE Then
|
||||
MyMachGroupVM.UpdateProduceIsEnabledForAll()
|
||||
|
||||
@@ -541,14 +541,18 @@ Public Class MachCommandMessagePanelVM
|
||||
Map.refMachManaging.Num_Axium_APServer.GetGeneralFunctions()
|
||||
End If
|
||||
End If
|
||||
' scrivo evento programma attivato
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachCommandLog(LogEvent.MachineCommands.CONNECTION, "", 0, DbControllers.SupervisorId))
|
||||
End If
|
||||
Case CommandTypes.DISCONNECT
|
||||
If CommandState = CommandStates.OK Then
|
||||
_Connected = False
|
||||
NotifyPropertyChanged(NameOf(Connect_Background))
|
||||
' scrivo evento programma attivato
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachCommandLog(LogEvent.MachineCommands.DISCONNECTION, "", 0, DbControllers.SupervisorId))
|
||||
End If
|
||||
End Select
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandType, CommandState, ResultType, Params))
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateResultLog(CommandType, CommandState, ResultType, Params))
|
||||
End Sub
|
||||
Friend Sub CloseCallbackDlg(ByRef bCancel As Boolean)
|
||||
' serve?
|
||||
@@ -615,7 +619,8 @@ Public Class MachCommandMessagePanelVM
|
||||
' fermo timer degli allarmi
|
||||
m_AlarmTimer.Stop()
|
||||
End If
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateAlarmLog(AlarmOperation, AlarmType, AlarmMessage, AlarmCode, AlarmDateTime))
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateAlarmLog(AlarmOperation, AlarmType, AlarmMessage, AlarmCode, AlarmDateTime))
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateAlarmLog(DateTime.Now(), AlarmOperation & LogEvent.cSeparator & AlarmType & LogEvent.cSeparator & AlarmMessage & LogEvent.cSeparator & AlarmCode & LogEvent.cSeparator & AlarmDateTime, DbControllers.m_SupervisorId))
|
||||
End Sub
|
||||
|
||||
Friend Sub NUMAlarmCallbackDlg(ByVal CncNumber As Integer, ByVal AlarmOperation As Integer, ByVal ErrorTyp As String, ByVal ErrorIndex As String, ByVal ErrorNumber As String, ByVal ErrorLine As String, ByVal ErrorMessage As String, ByVal ErrorAdditional As String)
|
||||
@@ -785,7 +790,8 @@ Public Class MachCommandMessagePanelVM
|
||||
' fermo timer degli allarmi
|
||||
m_AlarmTimer.Stop()
|
||||
End If
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateAlarmLog(AlarmOperation, ErrorTyp, AlarmMessage, AlarmCode, DateTime.Now))
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateAlarmLog(AlarmOperation, ErrorTyp, AlarmMessage, AlarmCode, DateTime.Now))
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateAlarmLog(DateTime.Now(), AlarmOperation & LogEvent.cSeparator & ErrorTyp & LogEvent.cSeparator & AlarmMessage & LogEvent.cSeparator & AlarmCode & LogEvent.cSeparator, DbControllers.m_SupervisorId))
|
||||
End Sub
|
||||
|
||||
Friend Sub AxisCoordinatesCallbackDlg(AxisValue As Double, AxisIndex As Integer)
|
||||
@@ -808,7 +814,8 @@ Public Class MachCommandMessagePanelVM
|
||||
Case NCTypes.NUM_FLEXIUM, NCTypes.NUM_AXIUM_APSERVER, NCTypes.NUM_AXIUM_PCTOOLKIT
|
||||
Map.refLeftPanelVM.SetOPState(NewState)
|
||||
End Select
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateOPStateLog(newOpState))
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateOPStateLog(newOpState))
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachineStateLog(newOpState, DbControllers.m_SupervisorId))
|
||||
End Sub
|
||||
|
||||
Friend Sub OpModeCallbackDlg(newOpState As Integer)
|
||||
@@ -821,7 +828,8 @@ Public Class MachCommandMessagePanelVM
|
||||
Case NCTypes.NUM_FLEXIUM, NCTypes.NUM_AXIUM_APSERVER, NCTypes.NUM_AXIUM_PCTOOLKIT
|
||||
Map.refLeftPanelVM.SetOPMode(NewState)
|
||||
End Select
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateOPStateLog(newOpState))
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateOPStateLog(newOpState))
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachineModeLog(newOpState, DbControllers.m_SupervisorId))
|
||||
End Sub
|
||||
|
||||
Friend Sub ChannelCallbackDlg(NewChannelId As Short)
|
||||
@@ -840,8 +848,9 @@ Public Class MachCommandMessagePanelVM
|
||||
Case "AsseX", "AsseY", "AsseZ", "AsseC", "AsseB"
|
||||
SetAxisValue(VarName, VarValue)
|
||||
End Select
|
||||
'DbControllers.m_LogMachineController.Create(MachLog.CreateReadLog(CommandExecutedCorrectly, VarAddress, VarValue))
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateReadVarLog(VarAddress, VarValue, DbControllers.SupervisorId))
|
||||
End If
|
||||
DbControllers.m_LogMachineController.Create(MachLog.CreateReadLog(CommandExecutedCorrectly, VarAddress, VarValue))
|
||||
End Sub
|
||||
|
||||
Private Sub SetAxisValue(VarName As String, VarValue As String)
|
||||
|
||||
@@ -362,7 +362,7 @@ Public Class MachManaging
|
||||
Case NCTypes.NUM_AXIUM_PCTOOLKIT
|
||||
' leggo tutte le variabili
|
||||
Num_Axium_PCToolkit.RefreshAllVars()
|
||||
'''EgtOutLog("Post lettura variabili")
|
||||
'EgtOutLog("Post lettura variabili")
|
||||
Dim dTemp As Double = 0
|
||||
Dim nTemp As Integer = 0
|
||||
If Not IsNothing(ResetVariable.sValue) Then
|
||||
@@ -433,7 +433,7 @@ Public Class MachManaging
|
||||
Else
|
||||
nCurrMachIndex = -1
|
||||
End If
|
||||
'''EgtOutLog("Post scrittura variabili lette")
|
||||
'EgtOutLog("Post scrittura variabili lette")
|
||||
' se indice lavorazione positivo, lo aggiorno
|
||||
If nCurrMachIndex > 0 AndAlso nReset_State = 0 Then
|
||||
m_nMachIndex = nCurrMachIndex
|
||||
@@ -706,12 +706,12 @@ Public Class MachManaging
|
||||
For VParIndex = 1 To sVs.Length - 1
|
||||
Dim VPar() As String = sVs(VParIndex).Split("="c)
|
||||
VPar(1) = VPar(1).Trim
|
||||
StringToDouble(VPar(1), dVPars(VParIndex))
|
||||
StringToDouble(VPar(1), dVPars(VParIndex - 1))
|
||||
Next
|
||||
' li scrivo nel CN
|
||||
For Index As Integer = 1 To 10
|
||||
Dim sValue As String = ""
|
||||
DoubleToString(dVPars(Index), sValue)
|
||||
sValue = DoubleToString(dVPars(Index - 1), 2)
|
||||
Tpa.RWVariableManager.WriteVarByName(VPAR & Index.ToString(), sValue)
|
||||
Next
|
||||
m_NextBarId = MyMachGroup.Id
|
||||
@@ -1169,7 +1169,7 @@ Public Class MachManaging
|
||||
EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, "", sVariable, IpFileName)
|
||||
If String.IsNullOrWhiteSpace(sVariable) Then Return Nothing
|
||||
Dim sVariableValues() As String = sVariable.Split(","c)
|
||||
If Not sVariableValues.Count >= 4 Then Return Nothing
|
||||
'If Not sVariableValues.Count >= 4 Then Return Nothing
|
||||
For Index As Integer = 0 To sVariableValues.Count - 1
|
||||
sVariableValues(Index) = sVariableValues(Index).Trim()
|
||||
Next
|
||||
@@ -1200,7 +1200,25 @@ Public Class MachManaging
|
||||
Case S_OUTPUTVARIABLES
|
||||
Paragraph = Paragraphs.OUTPUT
|
||||
End Select
|
||||
Return New CommVar(sVariableValues(0), sVariableValues(1), ReadType, Type, Paragraph)
|
||||
Dim sDescription As String = ""
|
||||
If sVariableValues.Length >= 5 Then
|
||||
Dim nDescription As Integer
|
||||
If Integer.TryParse(sVariableValues(4), nDescription) Then
|
||||
Dim MsgParagraph As MsgParagraphs
|
||||
Select Case Paragraph
|
||||
Case Paragraphs.INPUT
|
||||
MsgParagraph = MsgParagraphs.INPUT
|
||||
Case Paragraphs.OUTPUT
|
||||
MsgParagraph = MsgParagraphs.OUTPUT
|
||||
Case Else
|
||||
MsgParagraph = MsgParagraphs.INPUT
|
||||
End Select
|
||||
sDescription = MachMsg(MsgParagraph, nDescription)
|
||||
Else
|
||||
sDescription = sVariableValues(4)
|
||||
End If
|
||||
End If
|
||||
Return New CommVar(sVariableValues(0), sVariableValues(1), ReadType, Type, Paragraph, sDescription)
|
||||
End Function
|
||||
|
||||
Private Sub ReadPLCMessages()
|
||||
|
||||
@@ -59,7 +59,7 @@ Public Class RWVariableManager
|
||||
|
||||
Public Shared Function InitVar(Name As String, Address As String, Type As CommVar.ReadTypes) As Integer
|
||||
Dim Index As Integer = Array.IndexOf(m_ReadingVars, Nothing)
|
||||
m_ReadingVars(Index) = New CommVar(Name, Address, Type, CommVar.Types.NULL, CommVar.Paragraphs.NULL)
|
||||
m_ReadingVars(Index) = New CommVar(Name, Address, Type, CommVar.Types.NULL, CommVar.Paragraphs.NULL, "")
|
||||
Return Index
|
||||
End Function
|
||||
|
||||
@@ -101,7 +101,7 @@ Public Class RWVariableManager
|
||||
Case S_OUTPUTVARIABLES
|
||||
Paragraph = Paragraphs.OUTPUT
|
||||
End Select
|
||||
Return New CommVar(sVariableValues(0), sVariableValues(1), Type, CommVar.Types.NULL, Paragraph)
|
||||
Return New CommVar(sVariableValues(0), sVariableValues(1), Type, CommVar.Types.NULL, Paragraph, "")
|
||||
End Function
|
||||
|
||||
Public Sub RefreshVar(Name As String)
|
||||
@@ -266,6 +266,7 @@ Public Class CommVar
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_sAddress As String
|
||||
Public Property sAddress As String
|
||||
Get
|
||||
@@ -275,12 +276,14 @@ Public Class CommVar
|
||||
m_sAddress = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_nReadType As ReadTypes
|
||||
Public ReadOnly Property nReadType As ReadTypes
|
||||
Get
|
||||
Return m_nReadType
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_nType As Types
|
||||
Public ReadOnly Property nType As Types
|
||||
Get
|
||||
@@ -306,6 +309,13 @@ Public Class CommVar
|
||||
If bNewValue Then RaiseEvent NewValue(Me, New NewValueEventArgs(Value))
|
||||
End Sub
|
||||
|
||||
Private m_sDescription As String
|
||||
Public ReadOnly Property sDescription As String
|
||||
Get
|
||||
Return m_sDescription
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bReaded As Boolean
|
||||
Public ReadOnly Property bReaded As Boolean
|
||||
Get
|
||||
@@ -324,12 +334,13 @@ Public Class CommVar
|
||||
' indice usato in liste lettura NUM
|
||||
Friend Index As Integer = -1
|
||||
|
||||
Sub New(Name As String, Address As String, ReadType As ReadTypes, Type As Types, Paragraph As Paragraphs)
|
||||
Sub New(Name As String, Address As String, ReadType As ReadTypes, Type As Types, Paragraph As Paragraphs, sDescription As String)
|
||||
m_sName = Name
|
||||
m_sAddress = Address
|
||||
m_nReadType = ReadType
|
||||
m_nType = Type
|
||||
m_Paragraph = Paragraph
|
||||
m_sDescription = sDescription
|
||||
End Sub
|
||||
|
||||
Friend Sub ResetReading()
|
||||
|
||||
@@ -24,6 +24,26 @@
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Height="30">
|
||||
<ComboBox ItemsSource="{Binding EntityTypeList}"
|
||||
SelectedIndex="{Binding SelEntityType}"
|
||||
Width="70"
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource PartParam_ComboBox}"/>
|
||||
<ComboBox ItemsSource="{Binding PartEventTypeList}"
|
||||
SelectedIndex="{Binding SelPartEventType}"
|
||||
Width="70"
|
||||
Margin="0,0,2.5,0"
|
||||
Style="{StaticResource PartParam_ComboBox}"/>
|
||||
<!--<TextBox Text="{Binding MaxRowNumber}"/>-->
|
||||
<Button Grid.Column="1"
|
||||
Command="{Binding Refresh_Command}"
|
||||
Margin="2.5,0,5,0"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/MDIPage/Send.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
<EgtBEAMWALLCORE:EgtDataGrid ItemsSource="{Binding MachineLogList}"
|
||||
Grid.Row="1"
|
||||
AutoGenerateColumns="False"
|
||||
@@ -37,7 +57,8 @@
|
||||
BindingColumns="{Binding MachineLogColumns}">
|
||||
<DataGrid.Resources>
|
||||
<!-- Data/ora -->
|
||||
<DataGridTextColumn x:Key="colDATETIME" Binding="{Binding sEventDateTime}">
|
||||
<DataGridTextColumn x:Key="colDATETIME" Binding="{Binding sEventDateTime}"
|
||||
SortMemberPath="sEventTick">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.EventDateTime_Msg,
|
||||
@@ -61,7 +82,7 @@
|
||||
<TextBlock Text="{Binding Path=DataContext.EventValue_Msg,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:MachineLogPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!-- SupervisorId -->
|
||||
<DataGridTextColumn x:Key="colSUPERVISORID" Binding="{Binding SupervisorId}">
|
||||
@@ -91,7 +112,7 @@
|
||||
<DataGridTextColumn x:Key="colPART" Binding="{Binding PartId}">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.PartId_Msg,
|
||||
<TextBlock Text="{Binding Path=DataContext.PartId_Msg,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:MachineLogPageV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
|
||||
@@ -62,6 +62,42 @@ Public Class MachineLogPageVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_PartEventTypeList As New List(Of String)({"", "Inizio", "Fine"})
|
||||
Public ReadOnly Property PartEventTypeList As List(Of String)
|
||||
Get
|
||||
Return m_PartEventTypeList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelPartEventType As Integer
|
||||
Public Property SelPartEventType As Integer
|
||||
Get
|
||||
Return m_SelPartEventType
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_SelPartEventType = value
|
||||
m_MachineLogList_View.Refresh()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_EntityTypeList As New List(Of String)({"", "Pezzo", "Barra"})
|
||||
Public ReadOnly Property EntityTypeList As List(Of String)
|
||||
Get
|
||||
Return m_EntityTypeList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelEntityType As Integer
|
||||
Public Property SelEntityType As Integer
|
||||
Get
|
||||
Return m_SelEntityType
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_SelEntityType = value
|
||||
m_MachineLogList_View.Refresh()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdRefresh As ICommand
|
||||
|
||||
@@ -139,16 +175,34 @@ Public Class MachineLogPageVM
|
||||
|
||||
Private Function MachineLogFilter(LogEvent As Object) As Boolean
|
||||
Dim CurrLogEvent As LogEvent = DirectCast(LogEvent, LogEvent)
|
||||
Dim bOk As Boolean = True
|
||||
Select Case m_SelEntityType
|
||||
Case 0
|
||||
bOk = bOk And True
|
||||
Case 1
|
||||
bOk = bOk And CurrLogEvent.EventType = MachLogTypes.PART_STATUS
|
||||
Case 2
|
||||
bOk = bOk And CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS
|
||||
End Select
|
||||
If CurrLogEvent.EventType = MachLogTypes.PART_STATUS OrElse CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS Then
|
||||
Select Case m_SelPartEventType
|
||||
Case 0
|
||||
bOk = bOk And True
|
||||
Case 1
|
||||
bOk = bOk And CurrLogEvent.nStatus = 1
|
||||
Case 2
|
||||
bOk = bOk And CurrLogEvent.nStatus = 2
|
||||
End Select
|
||||
End If
|
||||
' se livello utente inferiore a 5, mostro solo eventi pezzo e machgroup
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel < 5 Then
|
||||
If CurrLogEvent.EventType = MachLogTypes.PART_STATUS Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
bOk = bOk And CurrLogEvent.EventType = MachLogTypes.PART_STATUS OrElse CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS
|
||||
Else
|
||||
Return True
|
||||
If Not CurrLogEvent.EventType = MachLogTypes.PART_STATUS AndAlso Not CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS Then
|
||||
bOk = True
|
||||
End If
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Friend Sub LoadMachineLogList()
|
||||
@@ -157,6 +211,12 @@ Public Class MachineLogPageVM
|
||||
m_colMachineLog_Description.ColumnVisibility = Visibility.Collapsed
|
||||
m_colMachineLog_SupervisorId.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
UpdateMachineLogList()
|
||||
m_MachineLogList_View = CollectionViewSource.GetDefaultView(m_MachineLogList)
|
||||
m_MachineLogList_View.Filter = AddressOf MachineLogFilter
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateMachineLogList()
|
||||
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Now - TimeSpan.FromDays(300), DateTime.Now).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
|
||||
NotifyPropertyChanged(NameOf(MachineLogList))
|
||||
m_MachineLogList_View = CollectionViewSource.GetDefaultView(m_MachineLogList)
|
||||
@@ -185,7 +245,7 @@ Public Class MachineLogPageVM
|
||||
''' Execute the Open. This method is invoked by the OpenCommand.
|
||||
''' </summary>
|
||||
Friend Sub Refresh()
|
||||
m_MachineLogList_View.Refresh()
|
||||
UpdateMachineLogList()
|
||||
End Sub
|
||||
|
||||
#End Region ' Refresh
|
||||
@@ -195,6 +255,7 @@ Public Class MachineLogPageVM
|
||||
End Class
|
||||
|
||||
Public Class MachLogType
|
||||
Inherits VMBase
|
||||
|
||||
Private m_nId As Integer
|
||||
Public ReadOnly Property nId As Integer
|
||||
|
||||
@@ -3,6 +3,7 @@ Imports System.Math
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports System.IO
|
||||
|
||||
Public Class MainWindowM
|
||||
|
||||
@@ -18,6 +19,13 @@ Public Class MainWindowM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sDataDir As String = String.Empty
|
||||
Friend ReadOnly Property sDataDir As String
|
||||
Get
|
||||
Return m_sDataDir
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sConfigDir As String = String.Empty
|
||||
Public ReadOnly Property sConfigDir As String
|
||||
Get
|
||||
@@ -190,6 +198,8 @@ Public Class MainWindowM
|
||||
IniFile.m_sIniFile = m_sConfigDir & "\" & Core.ConstIni.INI_FILE_NAME
|
||||
' Impostazione path BTL Ini File
|
||||
BTLIniFile.m_sBTLIniFile = m_sConfigDir & "\" & BTLFEATURES_FILE_NAME
|
||||
' Impostazione path Ini file DataGrid
|
||||
DataGridColumnsIniFile.m_sDataGridColumnsIniFile = m_sConfigDir & "\" & DATAGRIDCOLUMNS_FILE_NAME
|
||||
' Impostazione path Ini file Dimensioni
|
||||
DimensionsIniFile.m_sDimensionsIniFile = m_sConfigDir & "\" & ConstDims.DIMENSIONS_FILE_NAME
|
||||
' Impostazione path resources dir
|
||||
@@ -209,13 +219,10 @@ Public Class MainWindowM
|
||||
If GetMainPrivateProfileString(S_WALL, K_WALLBASEDIR, "", m_sWallRoot) = 0 Then
|
||||
m_sWallRoot = m_sDataRoot & "\" & WALL_DIR
|
||||
End If
|
||||
m_sProjsDir = m_sDataRoot & "\" & PROJS_DIR
|
||||
m_sProdsDir = m_sDataRoot & "\" & PRODS_DIR
|
||||
m_sWarehouseRoot = m_sDataRoot & "\" & WAREHOUSE_DIR
|
||||
' imposto cartelle dei progetti
|
||||
ProjectFileVM.Init(sProjsDir, sProdsDir)
|
||||
' Impostazione path Ini file DataGrid
|
||||
Core.DataGridColumnsIniFile.m_sDataGridColumnsIniFile = m_sConfigDir & "\" & DATAGRIDCOLUMNS_FILE_NAME
|
||||
' Impostazione direttorio magazzino grezzi
|
||||
If GetMainPrivateProfileString(S_GENERAL, K_DATADIR, "", m_sDataDir) = 0 Then
|
||||
m_sDataDir = m_sDataRoot
|
||||
End If
|
||||
' Verifico indice di istanza
|
||||
ManageInstance()
|
||||
' Imposto tipo di chiave
|
||||
@@ -233,8 +240,8 @@ Public Class MainWindowM
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNestOption = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2407, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2407, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2411, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2411, 1, m_nKeyOptions)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
@@ -387,6 +394,30 @@ Public Class MainWindowM
|
||||
Core.ProjectFileVM.Init(sProjsDir, sProdsDir)
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdatePathForKey(sKey As String)
|
||||
m_sProjsDir = m_sDataDir & "\" & sKey & "\" & PROJS_DIR
|
||||
m_sProdsDir = m_sDataDir & "\" & sKey & "\" & PRODS_DIR
|
||||
If Not Directory.Exists(m_sDataDir & "\" & sKey) Then
|
||||
Directory.CreateDirectory(m_sDataDir & "\" & sKey & "\" & PROJS_DIR)
|
||||
Directory.CreateDirectory(m_sDataDir & "\" & sKey & "\" & PRODS_DIR)
|
||||
End If
|
||||
' imposto cartelle dei progetti
|
||||
Core.ProjectFileVM.Init(sProjsDir, sProdsDir)
|
||||
End Sub
|
||||
|
||||
Friend Function GetKeyNumber() As Integer
|
||||
Dim sKey As String = ""
|
||||
Dim nKey As Integer = 0
|
||||
EgtGetKeyInfo(sKey)
|
||||
sKey = sKey.Replace(" ", "")
|
||||
If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
|
||||
If Integer.TryParse(sKey.Substring(3, 6), nKey) AndAlso nKey > 0 Then
|
||||
Return nKey
|
||||
End If
|
||||
End If
|
||||
Return -1
|
||||
End Function
|
||||
|
||||
Friend Sub Close()
|
||||
' Terminazione generale di EgtInterface
|
||||
EgtExit()
|
||||
|
||||
@@ -11,8 +11,23 @@ Imports System.Windows
|
||||
|
||||
' Review the values of the assembly attributes
|
||||
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.Supervisor")>
|
||||
<Assembly: AssemblyDescription("")>
|
||||
#If PLATFORM = "x64" Then
|
||||
#If DEBUG Then
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.SupervisorD64.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL S Debug 32 bit")>
|
||||
#Else
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.SupervisorR64.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL S 32 bit")>
|
||||
#End if
|
||||
#Else
|
||||
#If DEBUG Then
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.SupervisorD32.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL S Debug 32 bit")>
|
||||
#Else
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.SupervisorR32.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL S 32 bit")>
|
||||
#End if
|
||||
#End if
|
||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||
<Assembly: AssemblyProduct("EgtBEAMWALL.Supervisor")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2020-2022 by Egalware s.r.l.")>
|
||||
@@ -55,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.7.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.7.1")>
|
||||
<Assembly: AssemblyVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyFileVersion("2.4.11.3")>
|
||||
|
||||
@@ -28,7 +28,7 @@ Public Class ProjectVM
|
||||
If m_SelTabPage = TabPages.MACHINELOG Then
|
||||
Map.refCALCPanelVM.SetMachineLog(False)
|
||||
End If
|
||||
If SelTabPage Then
|
||||
If SelTabPage = TabPages.MACHINELOG Then
|
||||
Map.refMachineLogPageVM.LoadMachineLogList()
|
||||
End If
|
||||
m_SelTabPage = SelTabPage
|
||||
|
||||
|
Before Width: | Height: | Size: 812 B After Width: | Height: | Size: 889 B |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 834 B |
|
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 834 B |
|
Before Width: | Height: | Size: 411 B After Width: | Height: | Size: 432 B |
|
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 427 B |
|
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 448 B |
|
Before Width: | Height: | Size: 899 B After Width: | Height: | Size: 899 B |
|
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 427 B |
|
Before Width: | Height: | Size: 622 B After Width: | Height: | Size: 782 B |
@@ -77,21 +77,21 @@ Public Class SupervisorManagerVM
|
||||
'Private m_cmdSave As ICommand
|
||||
Private m_cmdGoToProd As ICommand
|
||||
|
||||
'#Region "ToolTip"
|
||||
#Region "ToolTip"
|
||||
|
||||
' 'Proprietà ToolTip
|
||||
' Public ReadOnly Property OpenToolTip As String
|
||||
' Get
|
||||
' Return EgtMsg(MSG_TOPCOMMANDBAR + 2)
|
||||
' End Get
|
||||
' End Property
|
||||
' Public ReadOnly Property SaveToolTip As String
|
||||
' Get
|
||||
' Return EgtMsg(MSG_TOPCOMMANDBAR + 3)
|
||||
' End Get
|
||||
' End Property
|
||||
'Proprietà ToolTip
|
||||
Public ReadOnly Property OpenToolTip As String
|
||||
Get
|
||||
Return EgtMsg(MSG_TOPCOMMANDBAR + 2)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property GoToProd_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61835)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'#End Region ' ToolTip
|
||||
#End Region ' ToolTip
|
||||
|
||||
#End Region ' Fields & Properties
|
||||
|
||||
@@ -219,6 +219,8 @@ Public Class SupervisorManagerVM
|
||||
CurrProd = Nothing
|
||||
Map.refMainWindowVM.UpdateTitle()
|
||||
m_bLoadingProd = False
|
||||
NotifyPropertyChanged(NameOf(MruFileNames))
|
||||
LoadingWndHelper.CloseLoadingWnd(ActiveIds.OPENPROD)
|
||||
Return
|
||||
End If
|
||||
LoadingWndHelper.OpenLoadingWnd(ActiveIds.OPENPROD, 3, EgtMsg(63000), EgtMsg(63001), 50) 'Project opening 'Loading project geometries
|
||||
@@ -239,11 +241,19 @@ Public Class SupervisorManagerVM
|
||||
MessageBox.Show("Impossibile aprire il file!!")
|
||||
Map.refSceneHostVM.MainController.NewProject()
|
||||
Map.refMainWindowVM.SetTitle("New - EgtBEAMWALL")
|
||||
m_bLoadingProd = False
|
||||
NotifyPropertyChanged(NameOf(MruFileNames))
|
||||
LoadingWndHelper.CloseLoadingWnd(ActiveIds.OPENPROD)
|
||||
Return
|
||||
End If
|
||||
Else
|
||||
MessageBox.Show("File non trovato!!")
|
||||
Map.refSceneHostVM.MainController.NewProject()
|
||||
Map.refMainWindowVM.SetTitle("New - EgtBEAMWALL")
|
||||
m_bLoadingProd = False
|
||||
NotifyPropertyChanged(NameOf(MruFileNames))
|
||||
LoadingWndHelper.CloseLoadingWnd(ActiveIds.OPENPROD)
|
||||
Return
|
||||
End If
|
||||
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.OPENPROD, 3, EgtMsg(63004), 70, 100) ' Loading production data
|
||||
Map.refProjectVM.SupervisorMachGroupPanelVM = New SupervisorMachGroupPanelVM(MachGroupPanelM.CreateNewMachGroupPanel())
|
||||
|
||||
@@ -16,6 +16,8 @@ Public Module CurrentMachine
|
||||
MDI = 1
|
||||
PLC = 2
|
||||
CNC = 3
|
||||
INPUT = 4
|
||||
OUTPUT = 5
|
||||
End Enum
|
||||
|
||||
' Nome macchina corrente
|
||||
@@ -305,6 +307,10 @@ Public Module CurrentMachine
|
||||
sPar = PLC_MSG
|
||||
Case MsgParagraphs.CNC
|
||||
sPar = CNC_MSG
|
||||
Case MsgParagraphs.INPUT
|
||||
sPar = INPUT_MSG
|
||||
Case MsgParagraphs.OUTPUT
|
||||
sPar = OUTPUT_MSG
|
||||
End Select
|
||||
EgtGetStringUtf8FromIni(sPar, nId, nId, sMsg, m_sMachMessagesFile)
|
||||
Return sMsg
|
||||
|
||||
@@ -4,81 +4,99 @@ Imports EgtBEAMWALL.Core
|
||||
|
||||
Module DbControllers
|
||||
|
||||
Friend m_SupervisorId As String = "1"
|
||||
Public ReadOnly Property SupervisorId As String
|
||||
Get
|
||||
Return m_SupervisorId
|
||||
End Get
|
||||
End Property
|
||||
Friend m_SupervisorId As String = "1"
|
||||
Public ReadOnly Property SupervisorId As String
|
||||
Get
|
||||
Return m_SupervisorId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public m_ProjController As DataLayer.Controllers.ProjController
|
||||
Public m_ProdController As DataLayer.Controllers.ProdController
|
||||
Public m_MachGroupController As DataLayer.Controllers.MachGroupController
|
||||
Public m_PartController As DataLayer.Controllers.PartController
|
||||
Public m_LogMachineController As DataLayer.Controllers.LogMachineController
|
||||
Public m_StatusMapController As DataLayer.Controllers.StatusMapController
|
||||
Private m_bNetwork As Boolean = False
|
||||
Friend ReadOnly Property bNetwork As Boolean
|
||||
Get
|
||||
Return m_bNetwork
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New()
|
||||
Public m_ProjController As DataLayer.Controllers.ProjController
|
||||
Public m_ProdController As DataLayer.Controllers.ProdController
|
||||
Public m_MachGroupController As DataLayer.Controllers.MachGroupController
|
||||
Public m_PartController As DataLayer.Controllers.PartController
|
||||
Public m_LogMachineController As DataLayer.Controllers.LogMachineController
|
||||
Public m_StatusMapController As DataLayer.Controllers.StatusMapController
|
||||
|
||||
' se demo--> server = db.steamware.net, nKey e sKey come le hai...
|
||||
Sub New()
|
||||
|
||||
Dim sKey = "", sUser = "", sPwd = ""
|
||||
' se demo--> server = db.steamware.net, nKey e sKey come le hai...
|
||||
|
||||
EgtGetKeyInfo(sKey)
|
||||
sKey = sKey.Replace(" ", "")
|
||||
If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
|
||||
sUser = sKey.Substring(3, 6)
|
||||
sPwd = sKey.Substring(10, sKey.Length - 10).Replace("(", "").Replace(")", "")
|
||||
End If
|
||||
Try
|
||||
Dim DbAddress As String = "127.0.0.1"
|
||||
Dim DbMasterKey As Integer = 0
|
||||
Dim sDbMasterKey As String = ""
|
||||
Dim sSharedFolder As String = ""
|
||||
Dim bNetwork As Boolean = False
|
||||
If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
|
||||
GetMainPrivateProfileString(S_GENERAL, K_DBADDRESS, "", DbAddress)
|
||||
DbMasterKey = GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0)
|
||||
If DbMasterKey > 0 Then
|
||||
sDbMasterKey = DbMasterKey.ToString("000000")
|
||||
End If
|
||||
If String.IsNullOrWhiteSpace(DbAddress) OrElse DbMasterKey <= 0 Then
|
||||
DbAddress = "127.0.0.1"
|
||||
DbMasterKey = 0
|
||||
Else
|
||||
bNetwork = True
|
||||
End If
|
||||
Dim sKey = "", sUser = "", sPwd = ""
|
||||
|
||||
EgtGetKeyInfo(sKey)
|
||||
sKey = sKey.Replace(" ", "")
|
||||
If Not IsNothing(sKey) AndAlso sKey.Length > 11 Then
|
||||
sUser = sKey.Substring(3, 6)
|
||||
sPwd = sKey.Substring(10, sKey.Length - 10).Replace("(", "").Replace(")", "")
|
||||
End If
|
||||
Try
|
||||
Dim DbAddress As String = "127.0.0.1"
|
||||
Dim DbMasterKey As Integer = 0
|
||||
Dim sDbMasterKey As String = ""
|
||||
Dim sSharedFolder As String = ""
|
||||
If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
|
||||
GetMainPrivateProfileString(S_GENERAL, K_DBADDRESS, "", DbAddress)
|
||||
DbMasterKey = GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0)
|
||||
If DbMasterKey > 0 Then
|
||||
sDbMasterKey = DbMasterKey.ToString("000000")
|
||||
End If
|
||||
DataLayer.DbConfig.InitDb(DbAddress, sUser, sPwd, sDbMasterKey)
|
||||
DataLayer.DbConfig.SetupLogDir(Map.refMainWindowVM.MainWindowM.sTempDir)
|
||||
DataLayer.DbConfig.CheckMigrateDb()
|
||||
DataLayer.DbConfig.CheckUser(sUser, sPwd, Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
|
||||
If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) And bNetwork Then
|
||||
' imposto cartella condivisa
|
||||
GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataRoot, sSharedFolder)
|
||||
Map.refMainWindowVM.MainWindowM.UpdatePathForNetwork(sSharedFolder)
|
||||
Dim sSupervisorMachName As String = ""
|
||||
GetMainPrivateProfileString(S_MACH, K_SUPERVISORMACH, "", sSupervisorMachName)
|
||||
If Not String.IsNullOrWhiteSpace(sSupervisorMachName) Then m_SupervisorId = sSupervisorMachName
|
||||
If String.IsNullOrWhiteSpace(DbAddress) OrElse DbMasterKey <= 0 Then
|
||||
DbAddress = "127.0.0.1"
|
||||
DbMasterKey = 0
|
||||
Else
|
||||
m_bNetwork = True
|
||||
End If
|
||||
Catch ex As Exception
|
||||
EgtOutLog("InitDb error: " & ex.ToString())
|
||||
MessageBox.Show(Application.Current.MainWindow, "Db connection error!!", "Error")
|
||||
End
|
||||
End Try
|
||||
|
||||
If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
|
||||
End If
|
||||
If Not m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.ANY_DB) Then
|
||||
DbMasterKey = GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0)
|
||||
If DbMasterKey > 0 Then
|
||||
sDbMasterKey = DbMasterKey.ToString("000000")
|
||||
End If
|
||||
ElseIf GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0) = 0 Then
|
||||
Dim nKey As Integer = 0
|
||||
If Integer.TryParse(sKey.Substring(3, 6), nKey) AndAlso nKey > 0 Then
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_DBMASTERKEY, nKey)
|
||||
End If
|
||||
End If
|
||||
DataLayer.DbConfig.InitDb(DbAddress, sUser, sPwd, sDbMasterKey)
|
||||
DataLayer.DbConfig.SetupLogDir(Map.refMainWindowVM.MainWindowM.sTempDir)
|
||||
DataLayer.DbConfig.CheckMigrateDb()
|
||||
DataLayer.DbConfig.CheckUser(sUser, sPwd, m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
|
||||
DataLayer.DbConfig.CheckViews(sUser, sPwd)
|
||||
If m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
|
||||
' imposto cartella condivisa
|
||||
GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataRoot, sSharedFolder)
|
||||
Map.refMainWindowVM.MainWindowM.UpdatePathForNetwork(sSharedFolder)
|
||||
Dim sSupervisorMachName As String = ""
|
||||
GetMainPrivateProfileString(S_MACH, K_SUPERVISORMACH, "", sSupervisorMachName)
|
||||
If Not String.IsNullOrWhiteSpace(sSupervisorMachName) Then m_SupervisorId = sSupervisorMachName
|
||||
End If
|
||||
ElseIf Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.ANY_DB) Then
|
||||
' imposto cartella chiave master
|
||||
Map.refMainWindowVM.MainWindowM.UpdatePathForKey(sDbMasterKey)
|
||||
Else
|
||||
' imposto cartella chiave locale
|
||||
Map.refMainWindowVM.MainWindowM.UpdatePathForKey(sKey.Substring(3, 6))
|
||||
End If
|
||||
Catch ex As Exception
|
||||
EgtOutLog("InitDb error: " & ex.ToString())
|
||||
MessageBox.Show(Application.Current.MainWindow, "Db connection error!!", "Error")
|
||||
End
|
||||
End Try
|
||||
|
||||
m_ProjController = New DataLayer.Controllers.ProjController
|
||||
m_ProdController = New DataLayer.Controllers.ProdController
|
||||
m_MachGroupController = New DataLayer.Controllers.MachGroupController
|
||||
m_PartController = New DataLayer.Controllers.PartController
|
||||
m_LogMachineController = New DataLayer.Controllers.LogMachineController
|
||||
m_StatusMapController = New DataLayer.Controllers.StatusMapController
|
||||
End Sub
|
||||
m_ProjController = New DataLayer.Controllers.ProjController
|
||||
m_ProdController = New DataLayer.Controllers.ProdController
|
||||
m_MachGroupController = New DataLayer.Controllers.MachGroupController
|
||||
m_PartController = New DataLayer.Controllers.PartController
|
||||
m_LogMachineController = New DataLayer.Controllers.LogMachineController
|
||||
m_StatusMapController = New DataLayer.Controllers.StatusMapController
|
||||
End Sub
|
||||
|
||||
End Module
|
||||
|
||||
@@ -4,13 +4,7 @@ Imports EgtBEAMWALL.Core
|
||||
Public Class LogEvent
|
||||
Inherits VMBase
|
||||
|
||||
Public ReadOnly Property MachGroupId_Msg As String
|
||||
Get
|
||||
Return "MachGroup"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Const cSeparator As Char = ";"c
|
||||
Public Const cSeparator As Char = ";"c
|
||||
|
||||
Public Enum MachLogTypes
|
||||
PART_STATUS = 1
|
||||
@@ -25,6 +19,12 @@ Public Class LogEvent
|
||||
PROGRAM_SEND = 10
|
||||
End Enum
|
||||
|
||||
Public Enum MachineCommands As Integer
|
||||
CONNECTION = 1
|
||||
DISCONNECTION = 2
|
||||
PROGRAM_ACTIVATION = 3
|
||||
End Enum
|
||||
|
||||
Private m_EventDateTime As DateTime
|
||||
Public ReadOnly Property EventDateTime As DateTime
|
||||
Get
|
||||
@@ -68,6 +68,11 @@ Public Class LogEvent
|
||||
End Get
|
||||
End Property
|
||||
Private m_Status As Integer
|
||||
Public ReadOnly Property nStatus As Integer
|
||||
Get
|
||||
Return m_Status
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property Status As String
|
||||
Get
|
||||
Select Case m_Status
|
||||
@@ -119,6 +124,11 @@ Public Class LogEvent
|
||||
Return m_Value
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property sEventTick As Double
|
||||
Get
|
||||
Return m_EventDateTime.Ticks
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sPROD As String
|
||||
Get
|
||||
@@ -144,6 +154,8 @@ Public Class LogEvent
|
||||
m_ProdId = sValues(0)
|
||||
m_MachGroupId = DbControllers.m_MachGroupController.FindByMachGroupId(m_ProdId, sValues(1)).Name
|
||||
m_Status = sValues(2)
|
||||
Case MachLogTypes.MACHINE_COMMAND
|
||||
|
||||
End Select
|
||||
End If
|
||||
End Sub
|
||||
@@ -168,4 +180,24 @@ Public Class LogEvent
|
||||
Return CreateMachLog(MachLogTypes.MACHGROUP_STATUS, dtEvent, Prod & cSeparator & MachGroup & cSeparator & State, SupervisorID)
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateMachCommandLog(Command As MachineCommands, sProgramId As String, nError As Integer, SupervisorID As String)
|
||||
Return CreateMachLog(MachLogTypes.MACHINE_COMMAND, DateTime.Now(), Command & cSeparator & sProgramId & cSeparator & nError, SupervisorID)
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateAlarmLog(dtEvent As DateTime, Alarm As String, SupervisorID As String)
|
||||
Return CreateMachLog(MachLogTypes.ALARM, dtEvent, Alarm, SupervisorID)
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateMachineModeLog(MachineMode As Integer, SupervisorID As String)
|
||||
Return CreateMachLog(MachLogTypes.MACHINE_MODE, DateTime.Now(), MachineMode, SupervisorID)
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateMachineStateLog(MachineStatus As Integer, SupervisorID As String)
|
||||
Return CreateMachLog(MachLogTypes.MACHINE_STATUS, DateTime.Now(), MachineStatus, SupervisorID)
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateReadVarLog(VarAddress As String, VarValue As String, SupervisorID As String)
|
||||
Return CreateMachLog(MachLogTypes.READ_VAR, DateTime.Now(), VarAddress & cSeparator & VarValue, SupervisorID)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<DataGrid ItemsSource="{Binding VariablesList}"
|
||||
AutoGenerateColumns="False">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Name" Binding="{Binding sName}" Width="1*"/>
|
||||
<DataGridTextColumn Header="Name" Binding="{Binding sDescription}" Width="1*"/>
|
||||
<DataGridTextColumn Header="Address" Binding="{Binding sAddress}" Width="1*"/>
|
||||
<DataGridTextColumn Header="Value" Binding="{Binding sValue}" Width="1*"/>
|
||||
</DataGrid.Columns>
|
||||
|
||||
@@ -44,6 +44,12 @@ Public Class Variable
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sDescription As String
|
||||
Get
|
||||
Return CommVar.sDescription
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Property sAddress As String
|
||||
Get
|
||||
Return CommVar.sAddress
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.29.0" newVersion="8.0.29.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.21.0" newVersion="8.0.21.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
@@ -46,7 +46,7 @@
|
||||
<system.data>
|
||||
<DbProviderFactories>
|
||||
<remove invariant="MySql.Data.MySqlClient" />
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.29.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||
</DbProviderFactories>
|
||||
</system.data>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup></configuration>
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- UAC Manifest Options
|
||||
If you want to change the Windows User Account Control level replace the
|
||||
requestedExecutionLevel node with one of the following.
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
Specifying requestedExecutionLevel element will disable file and registry virtualization.
|
||||
Remove this element if your application requires this virtualization for backwards
|
||||
compatibility.
|
||||
-->
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- A list of the Windows versions that this application has been tested on
|
||||
and is designed to work with. Uncomment the appropriate elements
|
||||
and Windows will automatically select the most compatible environment. -->
|
||||
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
|
||||
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
|
||||
to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
|
||||
also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config.
|
||||
|
||||
Makes the application long-path aware. See https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
|
||||
<!--
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
-->
|
||||
|
||||
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
</assembly>
|
||||
@@ -43,7 +43,7 @@
|
||||
<TextBox Name="InfoLbl" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" FontSize="12" IsReadOnly="True" TextWrapping="Wrap"/>
|
||||
<Button Name="ExitBtn" Grid.Column="1" Grid.Row="8" IsCancel="True"
|
||||
Margin="100,0"/>
|
||||
Margin="100,0"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
Imports EgtUILib
|
||||
Imports EgtBEAMWALL.Core
|
||||
|
||||
Public Class AboutBoxV
|
||||
|
||||
Private Sub AboutBoxWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||
Me.Owner = Application.Current.MainWindow
|
||||
Private Sub AboutBoxWD_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
DescriptionLbl.Text = My.Application.Info.Description.ToString()
|
||||
VersionLbl.Text = "Version : " & My.Application.Info.Version.Major.ToString() &
|
||||
"." & My.Application.Info.Version.Minor.ToString() &
|
||||
@@ -24,6 +24,9 @@ Public Class AboutBoxV
|
||||
sInfo &= sKey & " - " & sKlev & " - " & sOpts & sLeftDays & Environment.NewLine
|
||||
sInfo &= "DataRoot " & Map.refMainWindowVM.MainWindowM.sDataRoot & Environment.NewLine
|
||||
sInfo &= "MachinesRoot " & Map.refMainWindowVM.MainWindowM.sMachinesRoot & Environment.NewLine
|
||||
Dim sOpSys As String = String.Empty
|
||||
EgtGetOsInfo( sOpSys)
|
||||
sInfo &= sOpSys & Environment.NewLine
|
||||
Dim sCPU As String = String.Empty
|
||||
EgtGetCpuInfo( sCPU)
|
||||
sInfo &= sCPU & Environment.NewLine
|
||||
|
||||
@@ -102,7 +102,12 @@ Public Class AddRawPartWndVM
|
||||
End Select
|
||||
m_DimensionsList = DimensionsList
|
||||
If m_DimensionsList.Count > 0 Then
|
||||
SelDimension = m_DimensionsList(0)
|
||||
Dim LastMaterial As SParam = WarehouseHelper.GetLastMaterial(DimensionsList(0).SectXMat)
|
||||
If IsNothing(LastMaterial) Then
|
||||
SelDimension = m_DimensionsList(0)
|
||||
Else
|
||||
SelDimension = m_DimensionsList.FirstOrDefault(Function(x) x.SectXMat = LastMaterial.SectXMat AndAlso x.dL = LastMaterial.dL AndAlso x.dW = LastMaterial.dW AndAlso x.nQuantity = LastMaterial.nQuantity)
|
||||
End If
|
||||
End If
|
||||
' riduco lista parametri a solo quelli che utilizzati
|
||||
m_VariableList_View = CollectionViewSource.GetDefaultView(m_VariableList)
|
||||
|
||||
@@ -132,7 +132,7 @@ Public Class AddSectionXMaterialWndVM
|
||||
' carico le colonne della datagrid
|
||||
LoadColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
NewSectionXMaterialList = New ObservableCollection(Of SectionXMaterialToBeAdded)(SectXMatList)
|
||||
WhSectXMatList = Map.refWarehouseWndVM.GetSectionXMaterialsFromWarehouse()
|
||||
WhSectXMatList = WarehouseWndVM.GetSectionXMaterialsFromWarehouse()
|
||||
' Prendo i SectionXMaterial appena messi nella Lista di questa finestra e li confronto con ciascuno di quelli presenti in Warehouse.
|
||||
' Se le sezioni sono uguali carico i materiali relativi alla medesima sezione.
|
||||
' Se i materiali di quella medesima sezione non ci sono disabilito la CheckBox Alias.
|
||||
|
||||
@@ -7,10 +7,9 @@
|
||||
<entityFramework>
|
||||
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
|
||||
<providers>
|
||||
|
||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
||||
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
|
||||
</provider></providers>
|
||||
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<connectionStrings>
|
||||
<add name="DefaultConnection" connectionString="server=localhost;port=3306;User Id=EgtUser;password=viacremasca;Persist Security Info=True;database=EgtBwDb;SslMode=none" providerName="MySql.Data.MySqlClient" />
|
||||
@@ -19,7 +18,7 @@
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.29.0" newVersion="8.0.29.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-8.0.21.0" newVersion="8.0.21.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
@@ -42,7 +41,7 @@
|
||||
<system.data>
|
||||
<DbProviderFactories>
|
||||
<remove invariant="MySql.Data.MySqlClient" />
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.29.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||
</DbProviderFactories>
|
||||
</system.data>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup></configuration>
|
||||
|
||||
@@ -40,7 +40,6 @@ Public Class BTLFeatureVM
|
||||
' rendo non calcolata questa feature
|
||||
ResetCalcFeature()
|
||||
End If
|
||||
NotifyPropertyChanged("nSelGRP")
|
||||
NotifyPropertyChanged(NameOf(nSelGRP))
|
||||
EgtDraw()
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
@@ -214,7 +213,7 @@ Public Class BTLFeatureVM
|
||||
m_SelQParam = value
|
||||
If Not IsNothing(m_SelQParam) Then
|
||||
' imposto path disegno da mostrare in BottomPanel
|
||||
Map.refBottomPanelVM.SetCurrDraw(sDrawPath)
|
||||
Map.refBottomPanelVM.SetCurrDraw(m_SelQParam.sDrawPath)
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(SelQBTLParam))
|
||||
End Set
|
||||
@@ -222,7 +221,7 @@ Public Class BTLFeatureVM
|
||||
|
||||
Public ReadOnly Property Edit_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainWindowVM.MainWindowM.nUserLevel > 5 AndAlso BTLFeatureM.IsFreeContour AndAlso Not Map.refFreeContourManagerVM.bIsActive, Visibility.Visible, Visibility.Collapsed)
|
||||
Return If(BTLFeatureM.IsFreeContour AndAlso Not Map.refFreeContourManagerVM.bIsActive, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property SaveCancel_Visibility As Visibility
|
||||
|
||||
@@ -156,7 +156,7 @@ Public Class BTLPartVM
|
||||
Public Property sL As String
|
||||
Get
|
||||
Dim nOrigGroupId As Integer = nPartId
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Map.refShowBeamPanelVM.ShowBuilding_IsChecked AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso EgtBeamGetBuildingIsOn() AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
nOrigGroupId = GetOrigFrameGroup(nPartId)
|
||||
End If
|
||||
Dim frBeam As New Frame3d
|
||||
@@ -214,7 +214,7 @@ Public Class BTLPartVM
|
||||
Public Property sW As String
|
||||
Get
|
||||
Dim nOrigGroupId As Integer = nPartId
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Map.refShowBeamPanelVM.ShowBuilding_IsChecked AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso EgtBeamGetBuildingIsOn() AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
nOrigGroupId = GetOrigFrameGroup(nPartId)
|
||||
End If
|
||||
Dim frBeam As New Frame3d
|
||||
@@ -272,7 +272,7 @@ Public Class BTLPartVM
|
||||
Public Property sH As String
|
||||
Get
|
||||
Dim nOrigGroupId As Integer = nPartId
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Map.refShowBeamPanelVM.ShowBuilding_IsChecked AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso EgtBeamGetBuildingIsOn() AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
nOrigGroupId = GetOrigFrameGroup(nPartId)
|
||||
End If
|
||||
Dim frBeam As New Frame3d
|
||||
@@ -1395,7 +1395,7 @@ Public Class BTLPartVM
|
||||
Public ReadOnly Property Section As SectionXMaterial
|
||||
Get
|
||||
Dim nOrigGroupId As Integer = nPartId
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Map.refShowBeamPanelVM.ShowBuilding_IsChecked AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso EgtBeamGetBuildingIsOn() AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
nOrigGroupId = GetOrigFrameGroup(nPartId)
|
||||
End If
|
||||
Dim frBeam As New Frame3d
|
||||
@@ -1629,9 +1629,9 @@ Public Class BTLPartVM
|
||||
AddHandler m_BTLFeatureVMList.CollectionChanged, AddressOf OnBTLFeatureVMListChanged
|
||||
End Sub
|
||||
|
||||
Public Sub Rotation(IsPositive As Boolean, SelectedMachineType As MachineType, Optional dAng As Double = 90, Optional bVerifyDuplo As Boolean = True)
|
||||
Public Sub Rotation(IsPositive As Boolean, SelectedMachineType As MachineType, Optional bRedraw As Boolean = True, Optional dAng As Double = 90, Optional bVerifyDuplo As Boolean = True)
|
||||
Dim OldSection As SectionXMaterial = Section
|
||||
If m_BTLPartM.Rotation(IsPositive, SelectedMachineType, dAng) Then
|
||||
If m_BTLPartM.Rotation(IsPositive, SelectedMachineType, bRedraw, dAng) Then
|
||||
' aggiorno visualizzazione dimensioni
|
||||
NotifyPropertyChanged(NameOf(sW))
|
||||
NotifyPropertyChanged(NameOf(sH))
|
||||
@@ -1985,11 +1985,11 @@ Public Class BTLPartVM
|
||||
BackRotation(True)
|
||||
End Sub
|
||||
|
||||
Public Sub BackRotation(Optional bUpdateSection As Boolean = False)
|
||||
Public Sub BackRotation(Optional bUpdateSection As Boolean = False, Optional bRedraw As Boolean = True)
|
||||
' salvo sezione impostata
|
||||
Dim CurrSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SelSection
|
||||
' ruoto
|
||||
Rotation(False, Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
Rotation(False, Map.refProjectVM.BTLStructureVM.nPROJTYPE, bRedraw)
|
||||
' imposto lock
|
||||
bLockRotation = True
|
||||
' se progetto travi e sezione precedente diversa da vuota (tutti i pezzi)
|
||||
@@ -2017,10 +2017,10 @@ Public Class BTLPartVM
|
||||
ForwardRotation(True)
|
||||
End Sub
|
||||
|
||||
Public Sub ForwardRotation(Optional bUpdateSection As Boolean = False)
|
||||
Public Sub ForwardRotation(Optional bUpdateSection As Boolean = False, Optional bRedraw As Boolean = True)
|
||||
' salvo sezione impostata
|
||||
Dim CurrSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SelSection
|
||||
Rotation(True, Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
Rotation(True, Map.refProjectVM.BTLStructureVM.nPROJTYPE, bRedraw)
|
||||
' imposto lock
|
||||
bLockRotation = True
|
||||
' se progetto travi e sezione precedente diversa da vuota (tutti i pezzi)
|
||||
@@ -2160,6 +2160,9 @@ Public Class BTLPartVM
|
||||
Select Case e.PropertyName
|
||||
Case NameOf(sender.nSelGRP), NameOf(sender.nSelSIDE)
|
||||
CalcGlobalUpdate(True)
|
||||
' imposto path disegno da mostrare in BottomPanel
|
||||
Dim SelPBTLParam As BTLParamVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.SelPBTLParam
|
||||
If Not IsNothing(SelPBTLParam) Then Map.refBottomPanelVM.SetCurrDraw(SelPBTLParam.sDrawPath)
|
||||
Case NameOf(sender.bDO)
|
||||
NotifyPropertyChanged(NameOf(bDOALL))
|
||||
' setto pezzo da ricalcolare
|
||||
|
||||
@@ -79,7 +79,8 @@ Public Class BTLStructureVM
|
||||
Map.refProjectVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.PartManager_Visibility))
|
||||
Case SelectionTypes.HIGHLIGHT
|
||||
If m_PrevSelectionType = SelectionTypes.SELECT_ Then
|
||||
|
||||
EgtBeamShowFacesName( False)
|
||||
EgtBeamShowLoadingSide( False, False)
|
||||
End If
|
||||
If Not IsNothing(m_SelBTLPart) Then
|
||||
m_SelBTLPart = Nothing
|
||||
@@ -181,6 +182,8 @@ Public Class BTLStructureVM
|
||||
End Sub
|
||||
|
||||
Private Sub SelectBTLPart(BtlPart As BTLPartVM)
|
||||
EgtBeamShowFacesName( False)
|
||||
EgtBeamShowLoadingSide( False, False)
|
||||
m_SelBTLPart = BtlPart
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
|
||||
' se modalità building, la tolgo
|
||||
@@ -191,6 +194,10 @@ Public Class BTLStructureVM
|
||||
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)
|
||||
' seleziono pagina BottomPanel
|
||||
Map.refBottomPanelVM.SetSelPartFeatureTab(BottomPanelVM.PartFeatureTab.PART)
|
||||
'' mostro barra di gestione pezzo
|
||||
@@ -239,6 +246,8 @@ Public Class BTLStructureVM
|
||||
Map.refProjectVM.BTLStructureVM.ShowSolid(False, BtlPart.nPartId)
|
||||
End If
|
||||
If m_SelBTLPart Is BtlPart Then
|
||||
EgtBeamShowFacesName( False)
|
||||
EgtBeamShowLoadingSide( False, False)
|
||||
m_SelBTLPart = Nothing
|
||||
NotifyPropertyChanged(NameOf(SelBTLPart))
|
||||
End If
|
||||
|
||||
@@ -34,12 +34,6 @@ Public Class ChangeParameterWndVM
|
||||
m_ParamList.Add(New Parameters(NewBTLParam))
|
||||
ParamIndex += 1
|
||||
End While
|
||||
'' leggo tutti i Q della feature
|
||||
'ParamIndex = 1
|
||||
'While BTLIniFile.GetBeamPrivateProfileParam(m_SelPRC.nGRP, m_SelPRC.nPRC, False, ParamIndex, Nothing, NewBTLParam)
|
||||
' m_ParamList.Add(New Parameters(NewBTLParam))
|
||||
' ParamIndex += 1
|
||||
'End While
|
||||
' aggiungo bDO come parametro
|
||||
m_ParamList.Add(New Parameters(NewBTLParam, True))
|
||||
' seleziono parametro vuoto per dargli un valore iniziale ed evitare che visualizzi sia text che check
|
||||
@@ -188,21 +182,21 @@ Public Class Parameters
|
||||
End Property
|
||||
|
||||
Private m_bActualValue As Boolean
|
||||
Public Property bActualValue As String
|
||||
Public Property bActualValue As Boolean
|
||||
Get
|
||||
Return m_bActualValue
|
||||
End Get
|
||||
Set(value As String)
|
||||
Set(value As Boolean)
|
||||
m_bActualValue = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_bNewValue As String
|
||||
Public Property bNewValue As String
|
||||
Private m_bNewValue As Boolean
|
||||
Public Property bNewValue As Boolean
|
||||
Get
|
||||
Return m_bNewValue
|
||||
End Get
|
||||
Set(value As String)
|
||||
Set(value As Boolean)
|
||||
m_bNewValue = value
|
||||
End Set
|
||||
End Property
|
||||
@@ -234,6 +228,7 @@ Public Class Parameters
|
||||
Sub New(BTLParamM As BTLParamM, Optional IsCheckBox As Boolean = False)
|
||||
MyBase.New(BTLParamM)
|
||||
m_bIsCheckBox = IsCheckBox
|
||||
If IsCheckBox Then m_BTLParamM.SetType(BTLParamType.CHECKBOX)
|
||||
End Sub
|
||||
|
||||
'Shared Operator =(ByVal S1 As Parameters, ByVal S2 As BTLParam) As Boolean
|
||||
|
||||
@@ -400,7 +400,7 @@ Public Class ConfigurationPageVM
|
||||
Dim FilePath As String = CurrentMachine.sMachDir & "\" & If(CurrentMachine.nType = MachineType.BEAM, BEAM_DIR, WALL_DIR) & "\" & TS3DATA_FILE
|
||||
Dim sBakFilePath As String = Path.ChangeExtension(FilePath, ".bak")
|
||||
If File.Exists(sBakFilePath) Then File.Delete(sBakFilePath)
|
||||
File.Move(FilePath, sBakFilePath)
|
||||
If File.Exists(FilePath) Then File.Move(FilePath, sBakFilePath)
|
||||
File.WriteAllLines(FilePath, NewTs3DataFileContent, Text.Encoding.UTF8)
|
||||
' se macchina di tipo BOTH copio il file appena scritto nella cartella Wall nella cartella Beam
|
||||
If CurrentMachine.nType = MachineType.BOTH Then
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
Module ConstMsg
|
||||
|
||||
Public Const MSG_SETUPERRORS As Integer = 5000 + 1470
|
||||
|
||||
Public Const MSG_MISSINGKEYWD As Integer = 10100
|
||||
Public Const MSG_NUMERICKEYBOARDWD As Integer = 10200
|
||||
Public Const MSG_MESSAGEBOX As Integer = 15000
|
||||
Public Const MSG_EGTSAVEFILEDIALOG As Integer = 30000
|
||||
|
||||
Public Const MSG_OMAGCUT As Integer = 90000
|
||||
Public Const MSG_GENERAL As Integer = MSG_OMAGCUT
|
||||
Public Const MSG_WORKINPROGRESSPAGEUC As Integer = MSG_OMAGCUT + 100
|
||||
Public Const MSG_DIRECTCUTPAGEUC As Integer = MSG_OMAGCUT + 200
|
||||
Public Const MSG_MANUALAXESMOVEPAGEUC As Integer = MSG_OMAGCUT + 220
|
||||
Public Const MSG_CADCUTPAGEUC As Integer = MSG_OMAGCUT + 300
|
||||
Public Const MSG_NESTPAGEUC As Integer = MSG_OMAGCUT + 330
|
||||
Public Const MSG_SPLITPAGEUC As Integer = MSG_OMAGCUT + 340
|
||||
Public Const MSG_MOVERAWPAGEUC As Integer = MSG_OMAGCUT + 360
|
||||
Public Const MSG_DRAWPAGEUC As Integer = MSG_OMAGCUT + 380
|
||||
Public Const MSG_COMPONENTPAGEUC As Integer = MSG_OMAGCUT + 400
|
||||
Public Const MSG_IMPORTPAGEUC As Integer = MSG_OMAGCUT + 450
|
||||
Public Const MSG_OPENPAGEUC As Integer = MSG_OMAGCUT + 490
|
||||
Public Const MSG_RAWPARTPAGEUC As Integer = MSG_OMAGCUT + 500
|
||||
Public Const MSG_CHOOSEMACHININGPAGEUC As Integer = MSG_OMAGCUT + 535
|
||||
Public Const MSG_SIMULATIONPAGEUC As Integer = MSG_OMAGCUT + 550
|
||||
Public Const MSG_FRAMECUTPAGEUC As Integer = MSG_OMAGCUT + 600
|
||||
Public Const MSG_MACHINEPAGEUC As Integer = MSG_OMAGCUT + 700
|
||||
Public Const MSG_TOOLSDBPAGEUC As Integer = MSG_OMAGCUT + 720
|
||||
Public Const MSG_MACHININGSDBPAGEUC As Integer = MSG_OMAGCUT + 760
|
||||
Public Const MSG_COMBOBOXPARAM As Integer = MSG_OMAGCUT + 800
|
||||
Public Const MSG_ALARMSPAGEUC As Integer = MSG_OMAGCUT + 900
|
||||
Public Const MSG_MACHINECNPAGEUC As Integer = MSG_OMAGCUT + 950
|
||||
Public Const MSG_OPTIONSPAGEUC As Integer = MSG_OMAGCUT + 980
|
||||
Public Const MSG_EGTMSGBOX As Integer = MSG_OMAGCUT + 1100
|
||||
Public Const MSG_CSVPAGEUC As Integer = MSG_OMAGCUT + 1200
|
||||
|
||||
Public Const MSG_OMAGOFFICE As Integer = 91400
|
||||
Public Const MSG_OPTIONPANEL As Integer = MSG_OMAGOFFICE
|
||||
Public Const MSG_MYMACHININGDBWINDOW As Integer = MSG_OMAGOFFICE + 50
|
||||
Public Const MSG_TOPCMDBAR As Integer = MSG_OMAGOFFICE + 100
|
||||
Public Const MSG_RAWPARTTAB As Integer = MSG_OMAGOFFICE + 150
|
||||
Public Const MSG_VEINMATCHING As Integer = MSG_OMAGOFFICE + 200
|
||||
Public Const MSG_GENERIC As Integer = MSG_OMAGOFFICE + 250
|
||||
|
||||
Public Const MSG_EGTWPFLIB5 As Integer = 30000
|
||||
Public Const MSG_TOPCOMMANDBAR As Integer = MSG_EGTWPFLIB5 + 500
|
||||
Public Const MSG_GRIDVIEWPANEL As Integer = MSG_EGTWPFLIB5 + 800
|
||||
Public Const MSG_TOOLDB As Integer = MSG_EGTWPFLIB5 + 1000
|
||||
Public Const MSG_TOOLDBERRORS As Integer = MSG_EGTWPFLIB5 + 1100
|
||||
Public Const MSG_MACHININGDB As Integer = MSG_EGTWPFLIB5 + 1200
|
||||
Public Const MSG_MACHININGDBERRORS As Integer = MSG_EGTWPFLIB5 + 1400
|
||||
Public Const MSG_SIMULATION As Integer = MSG_EGTWPFLIB5 + 1600
|
||||
|
||||
End Module
|
||||
@@ -102,6 +102,9 @@
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>Resources\EgtBEAMWALL.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="BouncyCastle.Crypto, Version=1.8.5.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
|
||||
<HintPath>..\packages\BouncyCastle.1.8.5\lib\BouncyCastle.Crypto.dll</HintPath>
|
||||
@@ -615,7 +618,6 @@
|
||||
<Compile Include="ItemParamList\RawPartListV.xaml.vb">
|
||||
<DependentUpon>RawPartListV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Constants\ConstMsg.vb" />
|
||||
<Compile Include="FeatureManager\FeatureManagerV.xaml.vb">
|
||||
<DependentUpon>FeatureManagerV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -732,6 +734,7 @@
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
</EmbeddedResource>
|
||||
<None Include="App.config" />
|
||||
<None Include="app.manifest" />
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
@@ -946,6 +949,12 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\PartManager\Clock.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\LeftPanel\NewRawPartAuto.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\TopPanel\RemoveAllRawPart.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.ViewerOptimizerR32.exe
|
||||
|
||||
@@ -18,8 +18,12 @@ Public Class FeatureManagerVM
|
||||
|
||||
Public ReadOnly Property Edit_IsEnabled As Boolean
|
||||
Get
|
||||
Return m_FeatureManager_IsEnabled AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refProjectVM.BTLStructureVM.SelBTLParts.Count > 0 AndAlso
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLParts(0).SelBTLFeatureVM.BTLFeatureM.IsFreeContour() AndAlso Map.refProjectVM.BTLStructureVM.SelBTLParts(0).SelBTLFeatureVM.bDO
|
||||
Return m_FeatureManager_IsEnabled AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLParts.Count > 0 AndAlso
|
||||
Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLParts(0)) AndAlso
|
||||
Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLParts(0).SelBTLFeatureVM) AndAlso
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLParts(0).SelBTLFeatureVM.BTLFeatureM.IsFreeContour() AndAlso
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLParts(0).SelBTLFeatureVM.bDO
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<TextBox Text="{Binding Text, UpdateSourceTrigger=PropertyChanged}"
|
||||
Width="200"
|
||||
Visibility="{Binding Text_Visibility}" Margin="5,0,5,0">
|
||||
Visibility="{Binding Text_Visibility}" Margin="5,0,5,0"
|
||||
Style="{StaticResource FreeContour_TextBox}">
|
||||
<TextBox.InputBindings>
|
||||
<KeyBinding Key="Enter" Command="{Binding Done_Command, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<KeyBinding Key="S" Modifiers="Control" Command="{Binding Show_Command}"/>
|
||||
|
||||
@@ -596,6 +596,12 @@ Public Class FreeContourManagerVM
|
||||
Friend Sub UpdateUi()
|
||||
' se attiva operazione in piu' passaggi, esco
|
||||
If Map.refSceneHostVM.MainController.GetContinue() Then Return
|
||||
' se finita creazione curva (è stata chiusa)
|
||||
If Map.refFreeContourManagerVM.bIsCreatingPath Then
|
||||
Dim nNewPathLayerId As Integer = EgtGetFirstNameInGroup(nSelPartId, "NewPathLayer")
|
||||
Dim nNewPathId As Integer = EgtGetFirstInGroup(nNewPathLayerId)
|
||||
If EgtGetType(nNewPathId) = GDB_TY.CRV_COMPO Then Map.refFreeContourManagerVM.CreatingPathEnd()
|
||||
End If
|
||||
' se non ci sono piu' i percorsi, permetto di aggiungerli
|
||||
If EgtGetType(m_nNewPathId) = GDB_TY.NONE Then
|
||||
m_nNewPathId = GDB_ID.NULL
|
||||
@@ -925,6 +931,8 @@ Public Class FreeContourManagerVM
|
||||
Return sLayerName = PATH_SIDEANGLAYER
|
||||
ElseIf Map.refFreeContourManagerVM.bIsOpeningCurveCompo Then
|
||||
Return nId = m_nNewPathId
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
|
||||
@@ -131,6 +131,18 @@
|
||||
</Style>
|
||||
</DataGridTextColumn.EditingElementStyle>
|
||||
</DataGridTextColumn>
|
||||
<!--PosZ - Posizione in Z-->
|
||||
<DataGridTextColumn x:Key="colPOSZ" Binding="{Binding sPosZ}">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.PosZ_Msg,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
<DataGridTextColumn.EditingElementStyle>
|
||||
<Style TargetType="{x:Type TextBox}">
|
||||
<Setter Property="Foreground" Value="Blue" />
|
||||
</Style>
|
||||
</DataGridTextColumn.EditingElementStyle>
|
||||
</DataGridTextColumn>
|
||||
<!--MAT - Materiale-->
|
||||
<DataGridTextColumn x:Key="colMATERIAL" Binding="{Binding sMATERIAL}">
|
||||
<DataGridTextColumn.Header>
|
||||
|
||||
@@ -69,6 +69,12 @@ Public Class RawPartListVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property PosZ_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61728)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Material_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61607)
|
||||
|
||||
@@ -90,6 +90,13 @@
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/NewRawPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding NewRawPartLast_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
ToolTip="{Binding NewRawPartLast_ToolTip}"
|
||||
IsEnabled="{Binding LeftPanel_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/NewRawPartAuto.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding AddToRawPart_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
ToolTip="{Binding AddToRawPart_ToolTip}"
|
||||
|
||||
@@ -100,6 +100,7 @@ Public Class LeftPanelVM
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdNewRawPart As ICommand
|
||||
Private m_cmdNewRawPartLast As ICommand
|
||||
Private m_cmdAddToRawPart As ICommand
|
||||
Private m_cmdCopyPart As ICommand
|
||||
Private m_cmdAddPart As ICommand
|
||||
@@ -155,6 +156,12 @@ Public Class LeftPanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property NewRawPartLast_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61977)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property AddToRawPart_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61904)
|
||||
@@ -258,7 +265,7 @@ Public Class LeftPanelVM
|
||||
Public ReadOnly Property NewRawPart_Command As ICommand
|
||||
Get
|
||||
If m_cmdNewRawPart Is Nothing Then
|
||||
m_cmdNewRawPart = New Command(AddressOf NewRawPart)
|
||||
m_cmdNewRawPart = New Command(AddressOf NewRawPartCmd)
|
||||
End If
|
||||
Return m_cmdNewRawPart
|
||||
End Get
|
||||
@@ -267,18 +274,49 @@ Public Class LeftPanelVM
|
||||
''' <summary>
|
||||
''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
''' </summary>
|
||||
Public Sub NewRawPart()
|
||||
Public Sub NewRawPartCmd()
|
||||
NewRawPart(False)
|
||||
End Sub
|
||||
|
||||
Public Sub NewRawPart(bLast As Boolean)
|
||||
If IsNothing(Map.refProdManagerVM.CurrProd) Then Return
|
||||
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.SelBTLPart
|
||||
If IsNothing(SelPart) Then Return
|
||||
Dim SelParts As List(Of BTLPartVM) = Map.refProjectVM.BTLStructureVM.SelBTLParts.ToList()
|
||||
If IsNothing(SelParts) OrElse SelParts.Count <= 0 Then Return
|
||||
' verifico che abbiano tutti la stessa sezione
|
||||
Dim dHSection As Double = SelParts(0).dH
|
||||
Dim dWSection As Double = SelParts(0).dW
|
||||
For PartIndex = 0 To SelParts.Count - 1
|
||||
Dim Part As BTLPartVM = SelParts(PartIndex)
|
||||
If Not IsNothing(Part) Then
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||
If Part.dH <> dHSection OrElse Part.dW <> dWSection Then
|
||||
MessageBox.Show(EgtMsg(61970), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||
If Part.dH <> dHSection Then
|
||||
MessageBox.Show(EgtMsg(61970), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
SelParts.Remove(Part)
|
||||
End If
|
||||
Next
|
||||
' se pareti e piu' di uno selezionato, esco
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL And SelParts.Count > 1 Then
|
||||
MessageBox.Show(EgtMsg(61971), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
' se nessun grezzo, rendo tutti i pezzi visibili
|
||||
If Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.Count = 0 Then
|
||||
Map.refProjectVM.BTLStructureVM.ShowAll(False)
|
||||
End If
|
||||
' verifico se sono gia' stati messi tutti i pezzi richiesti
|
||||
If Not VerifyPartCount(SelPart) Then Return
|
||||
Dim dRawL As Double = SelPart.dL
|
||||
Dim dRawW As Double = SelPart.dW
|
||||
If Not VerifyPartCount(SelParts) Then Return
|
||||
Dim dRawL As Double = SelParts(0).dL
|
||||
Dim dRawW As Double = SelParts(0).dW
|
||||
Dim dStartOffset As Double = 0
|
||||
Dim dKerf As Double = 0
|
||||
Dim dOffset As Double = WarehouseHelper.GetOffset(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
@@ -313,22 +351,33 @@ Public Class LeftPanelVM
|
||||
WarehouseHelper.GetCurrentDimensions(Map.refProjectVM.BTLStructureVM.nPROJTYPE, dRawW, dRawL)
|
||||
Case WarehouseType.MEDIUM
|
||||
Dim SectionList As List(Of SParam) = WarehouseHelper.GetSectionList()
|
||||
Dim SParamlist As List(Of SParam) = SectionList.FindAll(Function(x) x.SectXMat = SelPart.Section)
|
||||
If SParamlist.Count = 0 Then
|
||||
' apro finestra con solo edit
|
||||
If AddRawPartWnd(AddRawPartWndVM.EditTypes.ONLY_TEXT, SParamlist, dRawW, dRawL, dStartOffset, dOffset, dKerf) Then
|
||||
WarehouseHelper.SetOffset(Map.refProjectVM.BTLStructureVM.nPROJTYPE, dOffset)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||
WarehouseHelper.SetStartOffset(dStartOffset)
|
||||
Else
|
||||
WarehouseHelper.SetKerf(dKerf)
|
||||
End If
|
||||
Dim SParamlist As List(Of SParam) = SectionList.FindAll(Function(x) x.SectXMat = SelParts(0).Section)
|
||||
If bLast Then
|
||||
Dim LastMaterial As SParam = WarehouseHelper.GetLastMaterial(SelParts(0).Section)
|
||||
If Not IsNothing(LastMaterial) Then
|
||||
dRawL = LastMaterial.dL
|
||||
dRawW = LastMaterial.dW
|
||||
ElseIf SParamlist.Count > 0 Then
|
||||
dRawL = SParamlist(0).dL
|
||||
dRawW = SParamlist(0).dW
|
||||
Else
|
||||
MessageBox.Show(EgtMsg(61975), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
ElseIf SParamlist.Count = 1 Then
|
||||
' se premuto shift
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
|
||||
Else
|
||||
If SParamlist.Count = 0 Then
|
||||
' apro finestra con solo edit
|
||||
If AddRawPartWnd(AddRawPartWndVM.EditTypes.ONLY_TEXT, SParamlist, dRawW, dRawL, dStartOffset, dOffset, dKerf) Then
|
||||
WarehouseHelper.SetOffset(Map.refProjectVM.BTLStructureVM.nPROJTYPE, dOffset)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||
WarehouseHelper.SetStartOffset(dStartOffset)
|
||||
Else
|
||||
WarehouseHelper.SetKerf(dKerf)
|
||||
End If
|
||||
Else
|
||||
Return
|
||||
End If
|
||||
ElseIf SParamlist.Count > 0 Then
|
||||
' imposto finestra con anche edit
|
||||
If AddRawPartWnd(AddRawPartWndVM.EditTypes.TEXT_AND_COMBO, SParamlist, dRawW, dRawL, dStartOffset, dOffset, dKerf) Then
|
||||
WarehouseHelper.SetOffset(Map.refProjectVM.BTLStructureVM.nPROJTYPE, dOffset)
|
||||
@@ -340,58 +389,69 @@ Public Class LeftPanelVM
|
||||
Else
|
||||
Return
|
||||
End If
|
||||
Else
|
||||
' creo grezzo con l'unico materiale
|
||||
dRawL = SParamlist(0).dL
|
||||
dRawW = SParamlist(0).dW
|
||||
End If
|
||||
Else
|
||||
' imposto finestra di sola scelta dimensione
|
||||
Dim EditType As AddRawPartWndVM.EditTypes = AddRawPartWndVM.EditTypes.ONLY_COMBO
|
||||
' se premuto shift
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
|
||||
' imposto finestra con anche edit
|
||||
EditType = AddRawPartWndVM.EditTypes.TEXT_AND_COMBO
|
||||
End If
|
||||
If AddRawPartWnd(EditType, SParamlist, dRawW, dRawL, dStartOffset, dOffset, dKerf) Then
|
||||
WarehouseHelper.SetOffset(Map.refProjectVM.BTLStructureVM.nPROJTYPE, dOffset)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||
WarehouseHelper.SetStartOffset(dStartOffset)
|
||||
Else
|
||||
WarehouseHelper.SetKerf(dKerf)
|
||||
End If
|
||||
Else
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
|
||||
' verifico se lunghezza barra e' maggiore della lunghezza dei pezzi
|
||||
Dim dTotLen As Double = WarehouseHelper.GetStartOffset()
|
||||
For PartIndex = 0 To SelParts.Count - 1
|
||||
If PartIndex <> 0 Then
|
||||
dTotLen += WarehouseHelper.GetOffset(BWType.BEAM)
|
||||
End If
|
||||
dTotLen += SelParts(PartIndex).dL
|
||||
Next
|
||||
If dTotLen > dRawL Then
|
||||
MessageBox.Show(EgtMsg(61972), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
' creo nuovo gruppo di lavorazione
|
||||
Map.refMachGroupPanelVM.AddMachGroup()
|
||||
Dim nCurrMachGroup As Integer = EgtGetCurrMachGroup()
|
||||
Dim sCurrMachGroupName As String = ""
|
||||
EgtGetMachGroupName(nCurrMachGroup, sCurrMachGroupName)
|
||||
' creo copia del pezzo
|
||||
Dim nPartDuploId As Integer = EgtDuploNew(SelPart.nPartId)
|
||||
' elimino valori calcolo dell'originale
|
||||
MyMachGroupPanelVM.DuploRemoveProjCalc(nPartDuploId)
|
||||
' lo rendo std
|
||||
EgtSetMode(nPartDuploId, GDB_MD.STD)
|
||||
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||
' scrivo dati per variabili P di comunicazione con la macchina in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PRODID, Map.refProdManagerVM.CurrProd.nProdId)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PATTID, nCurrMachGroup)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
|
||||
' ordino i pezzi per lunghezza
|
||||
SelParts = SelParts.OrderBy(Function(x) x.dL).ToList
|
||||
' creo copie dei pezzi
|
||||
Dim nPartDuploIdList As New List(Of Integer)
|
||||
For Each Part In SelParts
|
||||
Dim nDuploId As Integer = EgtDuploNew(Part.nPartId)
|
||||
' elimino valori calcolo dell'originale
|
||||
MyMachGroupPanelVM.DuploRemoveProjCalc(nDuploId)
|
||||
' lo rendo std
|
||||
EgtSetMode(nDuploId, GDB_MD.STD)
|
||||
nPartDuploIdList.Add(nDuploId)
|
||||
Next
|
||||
' scrivo dati costruzione grezzo in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_BARLEN, dRawL)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_MATERIAL, SelPart.sMATERIAL)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & 1, nPartDuploId & "," & DoubleToString(dStartOffset, 3))
|
||||
' scrivo dati di tutti i pezzi
|
||||
Dim dPosX As Double = WarehouseHelper.GetStartOffset()
|
||||
' ciclo sui pezzi
|
||||
For nIndex = 0 To nPartDuploIdList.Count - 1
|
||||
' se non è primo, aggiungo offset tra barre standard
|
||||
If nIndex <> 0 Then
|
||||
dPosX += WarehouseHelper.GetOffset(BWType.BEAM)
|
||||
End If
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & nIndex + 1, nPartDuploIdList(nIndex) & "," & DoubleToString(dPosX, 3))
|
||||
' incremento posizione della sua lunghezza
|
||||
dPosX += SelParts(nIndex).dL
|
||||
Next
|
||||
Dim BeamMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.GetLastMachGroup()
|
||||
' eseguo script creazione grezzo
|
||||
Dim nERR As Integer = 0
|
||||
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||
' elimino duplo e gruppo di lavorazione
|
||||
EgtErase(nPartDuploId)
|
||||
For Each nDuploId In nPartDuploIdList
|
||||
EgtErase(nDuploId)
|
||||
Next
|
||||
BeamMachGroup.DeleteMachGroup()
|
||||
If File.Exists(sLogPath) Then
|
||||
Dim LogFile As String() = File.ReadAllLines(sLogPath)
|
||||
@@ -399,7 +459,7 @@ Public Class LeftPanelVM
|
||||
MessageBox.Show(LogFile(1), EgtMsg(30007), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End If
|
||||
Else
|
||||
MessageBox.Show("Impossible creating rawpart", EgtMsg(30007), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
MessageBox.Show(EgtMsg(61973), EgtMsg(30007), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End If
|
||||
' se nessun grezzo, rimetto tutti i pezzi invisibili
|
||||
If Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.Count = 0 Then
|
||||
@@ -407,10 +467,14 @@ Public Class LeftPanelVM
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
EgtSetInfo(nPartDuploId, MGR_PRT_ROT, SelPart.nROTATED)
|
||||
EgtSetInfo(nPartDuploId, MGR_PRT_FLIP, SelPart.nINVERTED)
|
||||
For nDuploIndex = 0 To SelParts.Count - 1
|
||||
EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_ROT, SelParts(nDuploIndex).nROTATED)
|
||||
EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_FLIP, SelParts(nDuploIndex).nINVERTED)
|
||||
Next
|
||||
' aggiorno contatore pezzi usati in Prod
|
||||
SelPart.RefreshPartInProd()
|
||||
For Each SelPart In SelParts
|
||||
SelPart.RefreshPartInProd()
|
||||
Next
|
||||
'aggiorno lista pezzi
|
||||
BeamMachGroup.MyMachGroupM.RefreshPartList()
|
||||
BeamMachGroup.MyMachGroupM.RefreshGroupData()
|
||||
@@ -418,6 +482,7 @@ Public Class LeftPanelVM
|
||||
BeamMachGroup.UpdateUsage()
|
||||
Core.ViewPanelVM.BWSetView(VT.ISO_SW, False)
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
|
||||
Dim nPartDuploId As Integer = EgtDuploNew(SelPart.nPartId)
|
||||
' scrivo dati in gruppo di lavorazione
|
||||
Dim dPosX As Double = dKerf
|
||||
Dim dPosY As Double = dKerf
|
||||
@@ -438,7 +503,7 @@ Public Class LeftPanelVM
|
||||
MessageBox.Show(LogFile(1), EgtMsg(30007), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End If
|
||||
Else
|
||||
MessageBox.Show("Impossible creating rawpart", EgtMsg(30007), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
MessageBox.Show(EgtMsg(61973), EgtMsg(30007), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End If
|
||||
' se nessun grezzo, rimetto tutti i pezzi invisibili
|
||||
If Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.Count = 0 Then
|
||||
@@ -481,16 +546,111 @@ Public Class LeftPanelVM
|
||||
dKerf = AddRawPartWndVM.VariableList(2).dValue
|
||||
dOffset = AddRawPartWndVM.VariableList(3).dValue
|
||||
End Select
|
||||
' verifico se il materiale esiste in magazzino o devo aggiungerlo
|
||||
Dim CurrSParam As SParam
|
||||
Select Case EditType
|
||||
Case AddRawPartWndVM.EditTypes.ONLY_TEXT
|
||||
' lo aggiungo a lista materiali in magazzino
|
||||
CurrSParam = AddRawMaterial(dRawW, dRawL)
|
||||
Case AddRawPartWndVM.EditTypes.ONLY_COMBO
|
||||
' non faccio nulla
|
||||
Case AddRawPartWndVM.EditTypes.TEXT_AND_COMBO
|
||||
' verifico se lunghezza testo corrisponde a materiale
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||
CurrSParam = SParamlist.FirstOrDefault(Function(x) x.dL = AddRawPartWndVM.VariableList(0).dValue)
|
||||
Else
|
||||
CurrSParam = SParamlist.FirstOrDefault(Function(x) x.dL = AddRawPartWndVM.VariableList(1).dValue AndAlso x.dW = AddRawPartWndVM.VariableList(0).dValue)
|
||||
End If
|
||||
If IsNothing(CurrSParam) Then
|
||||
' lo aggiungo a lista materiali in magazzino
|
||||
CurrSParam = AddRawMaterial(dRawW, dRawL)
|
||||
End If
|
||||
End Select
|
||||
' imposto il materiale selezionato come ultimo utilizzato
|
||||
SetLastMaterial(CurrSParam.SectXMat, CurrSParam)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function VerifyPartCount(SelPart As BTLPartVM) As Boolean
|
||||
Private Function AddRawMaterial(dRawW As Double, ByRef dRawL As Double) As SParam
|
||||
Dim sWarehousePath As String = Map.refMainWindowVM.MainWindowM.sWarehouseDir & "\" & WH_MEDIUM_INI_FILE_NAME
|
||||
Dim nQuantity As Integer = GetMainPrivateProfileInt(S_WAREHOUSE, K_DEFAULTQUANTITY, 1)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
|
||||
' creo sParam
|
||||
Dim CurrSParam As New SParam(Map.refProjectVM.BTLStructureVM.SelBTLPart.Section, dRawL, nQuantity, False)
|
||||
Dim sL As String = String.Empty
|
||||
sL = LenToString(CurrSParam.dL, 3)
|
||||
' ricavo l'indice del SecionXMaterial dalla Beam_List
|
||||
Dim SectXMatIndex As Integer = 1
|
||||
Dim sSxMValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_BEAM_LIST, SectXMatIndex, String.Empty, sSxMValue, sWarehousePath)
|
||||
If sSxMValue = CurrSParam.sValue Then
|
||||
' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
Exit While
|
||||
End If
|
||||
SectXMatIndex += 1
|
||||
End While
|
||||
' ricavo nuovo indice materiale
|
||||
Dim ParamIndex As Integer = 1
|
||||
Dim sParam As String = ""
|
||||
While GetPrivateProfileString(S_BEAM, K_L & ParamIndex, "", sParam, sWarehousePath) > 0
|
||||
ParamIndex += 1
|
||||
End While
|
||||
' lo aggiungo in warehouse
|
||||
WritePrivateProfileString(S_BEAM, K_L & ParamIndex,
|
||||
SectXMatIndex & "," & sL & "," & CurrSParam.nQuantity & "," & If(CurrSParam.bActive, 1, 0),
|
||||
sWarehousePath)
|
||||
Return CurrSParam
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
|
||||
' creo sParam
|
||||
Dim CurrSParam As New SParam(Map.refProjectVM.BTLStructureVM.SelBTLPart.Section, dRawW, dRawL, nQuantity, False)
|
||||
Dim sW As String = String.Empty
|
||||
Dim sL As String = String.Empty
|
||||
sW = LenToString(CurrSParam.dW, 3)
|
||||
sL = LenToString(CurrSParam.dL, 3)
|
||||
' ricavo l'indice del SecionXMaterial dalla Wall_List
|
||||
Dim SectXMatIndex As Integer = 1
|
||||
Dim sSxMValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_WALL_LIST, SectXMatIndex, String.Empty, sSxMValue, sWarehousePath)
|
||||
If sSxMValue = CurrSParam.sValue Then
|
||||
' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
Exit While
|
||||
End If
|
||||
SectXMatIndex += 1
|
||||
End While
|
||||
' ricavo nuovo indice materiale
|
||||
Dim ParamIndex As Integer = 1
|
||||
Dim sParam As String = ""
|
||||
While GetPrivateProfileString(S_WALL, K_S & ParamIndex, "", sParam, sWarehousePath) = 0
|
||||
ParamIndex += 1
|
||||
End While
|
||||
' lo aggiungo in warehouse
|
||||
WritePrivateProfileString(S_WALL, K_S & ParamIndex,
|
||||
SectXMatIndex & "," & sW & "," & sL & "," & CurrSParam.nQuantity & "," & If(CurrSParam.bActive, 1, 0),
|
||||
sWarehousePath)
|
||||
Return CurrSParam
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Function VerifyPartCount(SelParts As List(Of BTLPartVM)) As Boolean
|
||||
' verifico se ci sono pezzi da aggiungere
|
||||
If Not SelPart.CanAddPartToCount Then
|
||||
' se non ci sono, chiedo se aggiungerne uno nuovo
|
||||
If MessageBox.Show(EgtMsg(61863) &
|
||||
SelPart.nCNT & EgtMsg(61864) & SelPart.nADDED & EgtMsg(61865), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
SelPart.AddNewPartToAdded()
|
||||
Dim ToAddList As New List(Of String)
|
||||
Dim ToAddVM As New List(Of BTLPartVM)
|
||||
For Each SelPart In SelParts
|
||||
If Not SelPart.CanAddPartToCount Then
|
||||
ToAddList.Add(SelPart.nCNT & EgtMsg(61864) & SelPart.nADDED & EgtMsg(61865))
|
||||
ToAddVM.Add(SelPart)
|
||||
End If
|
||||
Next
|
||||
' se non ci sono, chiedo se aggiungerne uno nuovo
|
||||
If ToAddList.Count > 0 Then
|
||||
Dim sMessage As String = EgtMsg(61863) & Environment.NewLine
|
||||
For Each sPart In ToAddList
|
||||
sMessage &= " - " & sPart & Environment.NewLine
|
||||
Next
|
||||
If MessageBox.Show(sMessage & EgtMsg(61893), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
For Each PartVM In ToAddVM
|
||||
PartVM.AddNewPartToAdded()
|
||||
Next
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
@@ -500,6 +660,29 @@ Public Class LeftPanelVM
|
||||
|
||||
#End Region ' NewRawPart
|
||||
|
||||
#Region "NewRawPartLast"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Exec.
|
||||
''' </summary>
|
||||
Public ReadOnly Property NewRawPartLast_Command As ICommand
|
||||
Get
|
||||
If m_cmdNewRawPartLast Is Nothing Then
|
||||
m_cmdNewRawPartLast = New Command(AddressOf NewRawPartLast)
|
||||
End If
|
||||
Return m_cmdNewRawPartLast
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Exec. This method is invoked by the ExecCommand.
|
||||
''' </summary>
|
||||
Public Sub NewRawPartLast()
|
||||
NewRawPart(True)
|
||||
End Sub
|
||||
|
||||
#End Region ' NewRawPartLast
|
||||
|
||||
#Region "AddToRawPart"
|
||||
|
||||
''' <summary>
|
||||
@@ -520,13 +703,25 @@ Public Class LeftPanelVM
|
||||
Public Sub AddToRawPart()
|
||||
If IsNothing(Map.refProdManagerVM.CurrProd) Then Return
|
||||
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.SelBTLPart
|
||||
Dim SelParts As List(Of BTLPartVM) = Map.refProjectVM.BTLStructureVM.SelBTLParts.ToList()
|
||||
For Index = 0 To SelParts.Count() - 1
|
||||
If IsNothing(SelParts(Index)) Then
|
||||
SelParts.RemoveAt(Index)
|
||||
End If
|
||||
Next
|
||||
If IsNothing(SelPart) Then Return
|
||||
If IsNothing(SelParts) OrElse SelParts.Count <= 0 Then Return
|
||||
Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup
|
||||
If IsNothing(SelMachGroup) Then Return
|
||||
' se pareti e piu' di uno selezionato, esco
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL And SelParts.Count > 1 Then
|
||||
MessageBox.Show(EgtMsg(61971), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
' se MachGroup gia' mandato in produzione, esco
|
||||
If SelMachGroup.nProduction_State >= ItemState.Assigned Then Return
|
||||
' verifico se sono gia' stati messi tutti i pezzi richiesti
|
||||
If Not VerifyPartCount(SelPart) Then Return
|
||||
If Not VerifyPartCount(SelParts) Then Return
|
||||
' verifico se impostato gruppo di lavorazione
|
||||
Dim nCurrMachgroupId As Integer = EgtGetCurrMachGroup()
|
||||
' se nullo o diverso da quello selezionato in lista
|
||||
@@ -537,18 +732,22 @@ Public Class LeftPanelVM
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
|
||||
Dim BeamMachGroup As MyMachGroupVM = SelMachGroup
|
||||
' verifico sezione e materiale
|
||||
If SelPart.Section <> BeamMachGroup.Section Then
|
||||
MessageBox.Show(EgtMsg(61866), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
For Each Part In SelParts
|
||||
If Part.Section <> BeamMachGroup.Section Then
|
||||
MessageBox.Show(EgtMsg(61866), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
Next
|
||||
' verifico lunghezza totale
|
||||
If Not VerifyTotLength(BeamMachGroup, SelPart) Then
|
||||
If Not VerifyTotLength(BeamMachGroup, SelParts) Then
|
||||
MessageBox.Show(EgtMsg(61867), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
If AddPartToBeam(BeamMachGroup, SelPart) Then
|
||||
If AddPartToBeam(BeamMachGroup, SelParts) Then
|
||||
' aggiorno contatore pezzi usati in Prod
|
||||
SelPart.RefreshPartInProd()
|
||||
For Each Part In SelParts
|
||||
Part.RefreshPartInProd()
|
||||
Next
|
||||
' resetto stato di calc
|
||||
SelMachGroup.ResetCalcMachGroup()
|
||||
End If
|
||||
@@ -558,7 +757,7 @@ Public Class LeftPanelVM
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
|
||||
Dim WallMachGroup As MyMachGroupVM = SelMachGroup
|
||||
' verifico spessore
|
||||
If SelPart.dH < WallMachGroup.dH - EPS_SMALL OrElse SelPart.dH > WallMachGroup.dH + EPS_SMALL Then
|
||||
If SelPart.Section <> WallMachGroup.Section Then
|
||||
MessageBox.Show(EgtMsg(61868), EgtMsg(30007))
|
||||
Return
|
||||
End If
|
||||
@@ -575,74 +774,93 @@ Public Class LeftPanelVM
|
||||
EgtZoom(ZM.ALL)
|
||||
End Sub
|
||||
|
||||
Friend Function VerifyTotLength(BeamMachGroup As MyMachGroupVM, PartToAdd As BTLPartVM) As Boolean
|
||||
Friend Function VerifyTotLength(BeamMachGroup As MyMachGroupVM, PartsToAdd As List(Of BTLPartVM)) As Boolean
|
||||
Dim dNewPartPos As Double = 0
|
||||
If BeamMachGroup.PartVMList.Count > 0 Then
|
||||
Dim LastPart As PartVM = BeamMachGroup.PartVMList(BeamMachGroup.PartVMList.Count - 1)
|
||||
dNewPartPos += LastPart.dPOSX + LastPart.dL
|
||||
End If
|
||||
dNewPartPos += WarehouseHelper.GetOffset(BeamMachGroup.nType) + PartToAdd.dL
|
||||
For Each Part In PartsToAdd
|
||||
dNewPartPos += WarehouseHelper.GetOffset(BeamMachGroup.nType) + Part.dL
|
||||
Next
|
||||
Return dNewPartPos < BeamMachGroup.dL
|
||||
End Function
|
||||
|
||||
Friend Function AddPartToBeam(BeamMachGroup As MyMachGroupVM, PartToAdd As BTLPartVM) As Boolean
|
||||
' creo copia del pezzo
|
||||
Dim nPartDuploId As Integer = EgtDuploNew(PartToAdd.nPartId)
|
||||
' lo rendo std
|
||||
EgtSetMode(nPartDuploId, GDB_MD.STD)
|
||||
Friend Function AddPartToBeam(BeamMachGroup As MyMachGroupVM, PartsToAdd As List(Of BTLPartVM)) As Boolean
|
||||
' ordino i pezzi da aggiungere
|
||||
PartsToAdd = PartsToAdd.OrderBy(Function(x) x.dL).ToList()
|
||||
' creo copie dei pezzi
|
||||
Dim nPartDuploIdList As New List(Of Integer)
|
||||
For Each Part In PartsToAdd
|
||||
Dim nDuploId As Integer = EgtDuploNew(Part.nPartId)
|
||||
' elimino valori calcolo dell'originale
|
||||
MyMachGroupPanelVM.DuploRemoveProjCalc(nDuploId)
|
||||
' lo rendo std
|
||||
EgtSetMode(nDuploId, GDB_MD.STD)
|
||||
nPartDuploIdList.Add(nDuploId)
|
||||
Next
|
||||
' calcolo posizione nuovo pezzo per rispettare ordine lunghezze
|
||||
Dim nInsertIndex As Integer
|
||||
' scrivo dati di tutti i pezzi
|
||||
Dim dPosX As Double = BeamMachGroup.dStartCut
|
||||
Dim bPartAdded As Boolean = False
|
||||
Dim nPartIndex As Integer = 0
|
||||
Dim nIndex As Integer
|
||||
' ciclo sui pezzi
|
||||
For nIndex = 0 To BeamMachGroup.PartVMList.Count - 1
|
||||
' se non ancora aggiunto e lunghezza minore del pezzo corrente, lo aggiungo
|
||||
If Not bPartAdded AndAlso BeamMachGroup.PartVMList(nIndex).dL > PartToAdd.dL Then
|
||||
' se non è primo, aggiungo offset tra barre standard
|
||||
If nIndex <> 0 Then
|
||||
dPosX += WarehouseHelper.GetOffset(BeamMachGroup.nType)
|
||||
For PartsToAddIndex = nPartIndex To PartsToAdd.Count - 1
|
||||
Dim Part As BTLPartVM = PartsToAdd(PartsToAddIndex)
|
||||
' se non ancora aggiunto e lunghezza minore del pezzo corrente, lo aggiungo
|
||||
If nPartIndex < nPartDuploIdList.Count() AndAlso BeamMachGroup.PartVMList(nIndex).dL > Part.dL Then
|
||||
' se non è primo, aggiungo offset tra barre standard
|
||||
If nIndex <> 0 OrElse nPartIndex <> 0 Then
|
||||
dPosX += WarehouseHelper.GetOffset(BeamMachGroup.nType)
|
||||
End If
|
||||
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + nPartIndex + 1, nPartDuploIdList(nPartIndex) & "," & DoubleToString(dPosX, 3))
|
||||
' incremento posizione della sua lunghezza
|
||||
dPosX += Part.dL
|
||||
' conservo indice d'inserimento
|
||||
nInsertIndex = nIndex
|
||||
nPartIndex += 1
|
||||
Else
|
||||
Exit For
|
||||
End If
|
||||
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1, nPartDuploId & "," & DoubleToString(dPosX, 3))
|
||||
' incremento posizione della sua lunghezza
|
||||
dPosX += PartToAdd.dL
|
||||
' conservo indice d'inserimento
|
||||
nInsertIndex = nIndex
|
||||
bPartAdded = True
|
||||
End If
|
||||
Next
|
||||
' se non è primo, aggiungo offset del pezzo
|
||||
If nIndex <> 0 Then
|
||||
dPosX += BeamMachGroup.PartVMList(nIndex).dOffset
|
||||
' se sono a indice primo ed è stato aggiunto pezzo nuovo
|
||||
ElseIf nIndex = 0 AndAlso bPartAdded Then
|
||||
ElseIf nIndex = 0 AndAlso nPartIndex > 0 Then
|
||||
' aggiungo offset tra barre standard
|
||||
dPosX += WarehouseHelper.GetOffset(BeamMachGroup.nType)
|
||||
End If
|
||||
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + If(bPartAdded, 2, 1), BeamMachGroup.PartVMList(nIndex).nPartId & "," & DoubleToString(dPosX, 3))
|
||||
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + nPartIndex + 1, BeamMachGroup.PartVMList(nIndex).nPartId & "," & DoubleToString(dPosX, 3))
|
||||
' incremento posizione della sua lunghezza
|
||||
dPosX += BeamMachGroup.PartVMList(nIndex).dL
|
||||
Next
|
||||
' se non è ancora stato aggiunto
|
||||
If Not bPartAdded Then
|
||||
For PartsToAddIndex = nPartIndex To PartsToAdd.Count - 1
|
||||
' aggiungo offset tra barre standard
|
||||
dPosX += WarehouseHelper.GetOffset(BeamMachGroup.nType)
|
||||
' lo aggiungo in fondo
|
||||
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1, nPartDuploId & "," & DoubleToString(dPosX, 3))
|
||||
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + nPartIndex + 1, nPartDuploIdList(nPartIndex) & "," & DoubleToString(dPosX, 3))
|
||||
' conservo indice d'inserimento
|
||||
nInsertIndex = nIndex
|
||||
End If
|
||||
nPartIndex += 1
|
||||
Next
|
||||
' elimino vecchio grezzo ed eseguo script creazione nuovo
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
While nRawId <> GDB_ID.NULL
|
||||
EgtRemoveRawPart(nRawId)
|
||||
nRawId = EgtGetFirstRawPart()
|
||||
End While
|
||||
If Not ExecBeam(Map.refMainWindowVM.MainWindowM.sTempDir, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||
Return False
|
||||
End If
|
||||
EgtSetInfo(nPartDuploId, MGR_PRT_ROT, PartToAdd.nROTATED)
|
||||
EgtSetInfo(nPartDuploId, MGR_PRT_FLIP, PartToAdd.nINVERTED)
|
||||
For nDuploIndex = 0 To PartsToAdd.Count - 1
|
||||
EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_ROT, PartsToAdd(nDuploIndex).nROTATED)
|
||||
EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_FLIP, PartsToAdd(nDuploIndex).nINVERTED)
|
||||
Next
|
||||
' aggiorno lista pezzi
|
||||
BeamMachGroup.MyMachGroupM.RefreshPartList()
|
||||
' seleziono pezzo aggiunto
|
||||
@@ -756,7 +974,7 @@ Public Class LeftPanelVM
|
||||
Dim NewPart As BTLPartM = SelPart.Copy()
|
||||
If Not IsNothing(NewPart) Then
|
||||
' selezione ultimo che e' quello appena creato
|
||||
Map.refProjectVM.BTLStructureVM.SetSelBTLPart(Map.refProjectVM.BTLStructureVM.BTLPartVMList(Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1))
|
||||
Map.refProjectVM.BTLStructureVM.SetSelBTLPart(Map.refProjectVM.BTLStructureVM.BTLPartVMList(Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1), False, True)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -945,16 +1163,25 @@ Public Class LeftPanelVM
|
||||
If IsNothing(Map.refProjManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return
|
||||
' salvo sezione impostata
|
||||
Dim CurrSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SelSection
|
||||
' se modalita' assemblato
|
||||
Dim bShowBuilding As Boolean = Map.refShowBeamPanelVM.ShowBuilding_IsChecked
|
||||
If bShowBuilding AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
' devo smontarlo prima di ruotare le travi
|
||||
Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False)
|
||||
End If
|
||||
' ruoto i pezzi selezionati
|
||||
For Each Part In Map.refProjectVM.BTLStructureVM.SelBTLParts
|
||||
Part.BackRotation()
|
||||
Part.BackRotation(False, False)
|
||||
Next
|
||||
' se assemblato lo ripristino
|
||||
If bShowBuilding Then Map.refProjectVM.BTLStructureVM.ShowBuilding(True, False)
|
||||
' se progetto travi e sezione precedente diversa da vuota (tutti i pezzi)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM AndAlso CurrSection <> SectionXMaterial.Empty Then
|
||||
' se esiste, imposto sezione inversa
|
||||
Dim InverseSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SectionList.FirstOrDefault(Function(x) x.dH = CurrSection.dW AndAlso x.dW = CurrSection.dH AndAlso x.sMaterial(0) = CurrSection.sMaterial(0))
|
||||
If Not IsNothing(InverseSection) Then Map.refProjectVM.BTLStructureVM.SetSelSection(InverseSection)
|
||||
End If
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
#End Region ' BackRotation
|
||||
@@ -980,16 +1207,25 @@ Public Class LeftPanelVM
|
||||
If IsNothing(Map.refProjManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return
|
||||
' salvo sezione impostata
|
||||
Dim CurrSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SelSection
|
||||
' se modalita' assemblato
|
||||
Dim bShowBuilding As Boolean = Map.refShowBeamPanelVM.ShowBuilding_IsChecked
|
||||
If bShowBuilding AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
' devo smontarlo prima di ruotare le travi
|
||||
Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False)
|
||||
End If
|
||||
' ruoto i pezzi selezionati
|
||||
For Each Part In Map.refProjectVM.BTLStructureVM.SelBTLParts
|
||||
Part.ForwardRotation()
|
||||
Part.ForwardRotation(False, False)
|
||||
Next
|
||||
' se assemblato lo ripristino
|
||||
If bShowBuilding Then Map.refProjectVM.BTLStructureVM.ShowBuilding(True, False)
|
||||
' se progetto travi e sezione precedente diversa da vuota (tutti i pezzi)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM AndAlso CurrSection <> SectionXMaterial.Empty Then
|
||||
' se esiste, imposto sezione inversa
|
||||
Dim InverseSection As SectionXMaterial = Map.refProjectVM.BTLStructureVM.SectionList.FirstOrDefault(Function(x) x.dH = CurrSection.dW AndAlso x.dW = CurrSection.dH AndAlso x.sMaterial(0) = CurrSection.sMaterial(0))
|
||||
If Not IsNothing(InverseSection) Then Map.refProjectVM.BTLStructureVM.SetSelSection(InverseSection)
|
||||
End If
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
#End Region ' ForwardRotation
|
||||
|
||||
@@ -241,5 +241,4 @@ Public Class MyMachGroupPanelVM
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
@@ -278,6 +278,38 @@ Public Class MyMachGroupVM
|
||||
|
||||
#End Region ' Beam
|
||||
|
||||
#Region "Wall"
|
||||
|
||||
Public Property sPosZ As String
|
||||
Get
|
||||
Return LenToString(MyMachGroupM.dPosZ, 3)
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
If dValue <> MyMachGroupM.dPosZ Then
|
||||
Select Case nType
|
||||
Case BWType.BEAM
|
||||
' non utilizzato
|
||||
Case BWType.WALL
|
||||
' se operazione di spostamento in z ha successo
|
||||
If True Then
|
||||
EgtSetInfo(Id, MGR_RPT_PANELPOSZ, dValue)
|
||||
EgtDraw()
|
||||
MyMachGroupM.dPosZ = dValue
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sPosZ))
|
||||
End If
|
||||
End Select
|
||||
ResetCalcTotalMachGroup()
|
||||
End If
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' Wall
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
#Region "CONSTRUCTORS"
|
||||
@@ -305,7 +337,7 @@ Public Class MyMachGroupVM
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function Copy(Optional Qty As Integer = 1) As Core.MyMachGroupVM
|
||||
Public Shadows Function Copy(Optional Qty As Integer = 1) As Core.MyMachGroupVM
|
||||
Dim BeamWallMachGroup As MyMachGroupVM = Nothing
|
||||
If nType = BWType.BEAM Then
|
||||
EgtResetCurrMachGroup()
|
||||
@@ -479,7 +511,8 @@ Public Class MyMachGroupVM
|
||||
EgtRemoveRawPart(nRawId)
|
||||
nRawId = EgtGetFirstRawPart()
|
||||
End While
|
||||
If Not ExecBeam(Map.refMainWindowVM.MainWindowM.sTempDir, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then Return False
|
||||
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then Return False
|
||||
|
||||
Return True
|
||||
End Function
|
||||
@@ -777,7 +810,7 @@ Public Class MyMachGroupVM
|
||||
#Region "DeleteMachGroup"
|
||||
|
||||
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
|
||||
Public Overrides Sub DeleteMachGroup()
|
||||
Public Overrides Sub DeleteMachGroup(Optional bMultipleCommand As Boolean = False)
|
||||
If EgtSetCurrMachGroup(Me.Id) Then
|
||||
' elimino tutte le copie
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
@@ -806,25 +839,28 @@ Public Class MyMachGroupVM
|
||||
' elimino MachGroup
|
||||
EgtRemoveMachGroup(Me.Id)
|
||||
End If
|
||||
' rimuovo dalla lista grezzi
|
||||
Dim Index As Integer = Map.refMachGroupPanelVM.MachGroupVMList.IndexOf(Me)
|
||||
If Index = 0 Then
|
||||
If Map.refMachGroupPanelVM.MachGroupVMList.Count > 1 Then
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Map.refMachGroupPanelVM.MachGroupVMList(1)
|
||||
' cambio pezzo selezionato
|
||||
If bMultipleCommand Then
|
||||
Dim Index As Integer = Map.refMachGroupPanelVM.MachGroupVMList.IndexOf(Me)
|
||||
If Index = 0 Then
|
||||
If Map.refMachGroupPanelVM.MachGroupVMList.Count > 1 Then
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Map.refMachGroupPanelVM.MachGroupVMList(1)
|
||||
Else
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Nothing
|
||||
EgtDraw()
|
||||
End If
|
||||
ElseIf Index = Map.refMachGroupPanelVM.MachGroupVMList.Count - 1 Then
|
||||
If Map.refMachGroupPanelVM.MachGroupVMList.Count > 1 Then
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Map.refMachGroupPanelVM.MachGroupVMList(Map.refMachGroupPanelVM.MachGroupVMList.Count - 2)
|
||||
Else
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Nothing
|
||||
EgtDraw()
|
||||
End If
|
||||
Else
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Nothing
|
||||
EgtDraw()
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Map.refMachGroupPanelVM.MachGroupVMList(Index - 1)
|
||||
End If
|
||||
ElseIf Index = Map.refMachGroupPanelVM.MachGroupVMList.Count - 1 Then
|
||||
If Map.refMachGroupPanelVM.MachGroupVMList.Count > 1 Then
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Map.refMachGroupPanelVM.MachGroupVMList(Map.refMachGroupPanelVM.MachGroupVMList.Count - 2)
|
||||
Else
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Nothing
|
||||
EgtDraw()
|
||||
End If
|
||||
Else
|
||||
Map.refMachGroupPanelVM.SelectedMachGroup = Map.refMachGroupPanelVM.MachGroupVMList(Index - 1)
|
||||
End If
|
||||
' rimuovo dalla lista grezzi
|
||||
Map.refMachGroupPanelVM.MachGroupVMList.Remove(Me)
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Public Class PartVM
|
||||
' variabile che indica se almeno un pezzo e' stato modificato durante il caricamento del progetto
|
||||
Private Shared m_PartModifiedOnLoading As Boolean = False
|
||||
|
||||
Public ReadOnly Property dVolume As Double
|
||||
Public Overloads ReadOnly Property dVolume As Double
|
||||
Get
|
||||
Return dVolume
|
||||
End Get
|
||||
@@ -72,6 +72,7 @@ Public Class PartVM
|
||||
BeamMachGroup.dStartCut = dOldValue
|
||||
BeamMachGroup.ReDrawBeamMachgroup()
|
||||
End If
|
||||
EgtDraw()
|
||||
' resetto validazione del pezzo
|
||||
ResetCalcPart()
|
||||
ParentMachGroupVM.UpdateUsage()
|
||||
|
||||
@@ -227,8 +227,8 @@ Public Class MainWindowM
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNestOption = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2407, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2407, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2411, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2411, 1, m_nKeyOptions)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
|
||||
@@ -14,18 +14,18 @@ Imports System.Windows
|
||||
#If PLATFORM = "x64" Then
|
||||
#If DEBUG Then
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.ViewerOptimizerD64.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL.ViewerOptimizer Debug 64 bit")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL VO Debug 64 bit")>
|
||||
#Else
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.ViewerOptimizerR64.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL.ViewerOptimizer 64 bit")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL VO 64 bit")>
|
||||
#End if
|
||||
#Else
|
||||
#If DEBUG Then
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.ViewerOptimizerD32.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL Debug 32 bit")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL VO Debug 32 bit")>
|
||||
#Else
|
||||
<Assembly: AssemblyTitle("EgtBEAMWALL.ViewerOptimizerR32.exe")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL 32 bit")>
|
||||
<Assembly: AssemblyDescription("EgtBEAMWALL VO 32 bit")>
|
||||
#End If
|
||||
#End If
|
||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.7.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.7.1")>
|
||||
<Assembly: AssemblyVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyFileVersion("2.4.11.3")>
|
||||
|
||||
@@ -114,6 +114,11 @@ Public Class ProdManagerVM
|
||||
Return EgtMsg(61922)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property GoToSupervisor_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61974)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' ToolTip
|
||||
|
||||
|
||||
@@ -643,7 +643,7 @@ Public Class ProjManagerVM
|
||||
Dim Machine As Machine = Nothing
|
||||
Dim nType As BWType = BWType.NULL
|
||||
Dim ProjectTypeWndVM As New ProjectTypeWndVM()
|
||||
If ProjectTypeWndVM.MachineList.Count = 1 And DirectCast(ProjectTypeWndVM.SelMachine, MyMachine).nType <> MachineType.BOTH Then
|
||||
If ProjectTypeWndVM.MachineList.Count = 1 AndAlso DirectCast(ProjectTypeWndVM.SelMachine, MyMachine).nType <> MachineType.BOTH Then
|
||||
Machine = ProjectTypeWndVM.SelMachine
|
||||
nType = DirectCast(Machine, MyMachine).nType
|
||||
Else
|
||||
@@ -709,7 +709,7 @@ Public Class ProjManagerVM
|
||||
If nType = BWType.WALL AndAlso (CurrentMachine.ViewDir = VT.ISO_NW OrElse CurrentMachine.ViewDir = VT.ISO_NE) Then
|
||||
' ruoto le pareti di 180 per raddrizzarle rispetto alla vista
|
||||
For Each Wall In Map.refProjectVM.BTLStructureVM.BTLPartVMList
|
||||
Wall.Rotation(True, Map.refProjectVM.BTLStructureVM.nPROJTYPE, 180, False)
|
||||
Wall.Rotation(True, Map.refProjectVM.BTLStructureVM.nPROJTYPE, True, 180, False)
|
||||
Next
|
||||
End If
|
||||
' calcolo volumi pezzi
|
||||
@@ -1270,7 +1270,7 @@ Public Class ProjManagerVM
|
||||
' se progetto pareti e vista ruotata
|
||||
If nType = BWType.WALL AndAlso (CurrentMachine.ViewDir = VT.ISO_NW OrElse CurrentMachine.ViewDir = VT.ISO_NE) Then
|
||||
' ruoto le pareti di 180 per raddrizzarle rispetto alla vista
|
||||
AddedBTLPart.Rotation(True, Map.refProjectVM.BTLStructureVM.nPROJTYPE, 180, False)
|
||||
AddedBTLPart.Rotation(True, Map.refProjectVM.BTLStructureVM.nPROJTYPE, True, 180, False)
|
||||
End If
|
||||
' verifico se aggiungere sezione alla lista
|
||||
If Not Map.refProjectVM.BTLStructureVM.SectionList.Contains(AddedBTLPart.Section) Then
|
||||
|
||||
|
Before Width: | Height: | Size: 947 B After Width: | Height: | Size: 1008 B |
|
Before Width: | Height: | Size: 477 B After Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 691 B After Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 812 B After Width: | Height: | Size: 889 B |
|
Before Width: | Height: | Size: 757 B After Width: | Height: | Size: 774 B |
|
Before Width: | Height: | Size: 792 B After Width: | Height: | Size: 794 B |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 356 B |
|
Before Width: | Height: | Size: 417 B After Width: | Height: | Size: 442 B |
|
Before Width: | Height: | Size: 525 B After Width: | Height: | Size: 656 B |
|
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 434 B After Width: | Height: | Size: 450 B |
|
Before Width: | Height: | Size: 474 B After Width: | Height: | Size: 640 B |
|
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 294 B |
|
Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 577 B |
|
After Width: | Height: | Size: 756 B |
|
Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 594 B |
|
Before Width: | Height: | Size: 503 B After Width: | Height: | Size: 626 B |
|
Before Width: | Height: | Size: 681 B After Width: | Height: | Size: 849 B |
|
Before Width: | Height: | Size: 599 B After Width: | Height: | Size: 757 B |
|
Before Width: | Height: | Size: 561 B After Width: | Height: | Size: 681 B |
|
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 298 B |