diff --git a/IntegrationEgaltech/BTL.cs b/IntegrationEgaltech/BTL.cs index aa617a3..76baa8d 100644 --- a/IntegrationEgaltech/BTL.cs +++ b/IntegrationEgaltech/BTL.cs @@ -479,6 +479,7 @@ namespace ib.essetre.integration.egaltech public string length ; public string height ; public string width ; + public string Material ; public List features ; public double x ; public double z ; diff --git a/IntegrationEgaltech/Generator.cs b/IntegrationEgaltech/Generator.cs index 4a2da7a..cde67fd 100644 --- a/IntegrationEgaltech/Generator.cs +++ b/IntegrationEgaltech/Generator.cs @@ -27,6 +27,7 @@ namespace ib.essetre.integration.egaltech public PatternInfo piInfo ; public int nBarState ; public string sBtlPath ; + public string sMaterial ; public bool bBtlOk ; } @@ -62,6 +63,7 @@ namespace ib.essetre.integration.egaltech String ExePath = GetExePath( parameters) ; String DataDir = GetDataDir( parameters) ; + String MaterialToForceWall = GetMaterialToForceWall( parameters) ; // Numero di barre int numBars = parameters.Patterns.Length ; @@ -150,6 +152,11 @@ namespace ib.essetre.integration.egaltech else GetListaTasks( btlObject) ; + // Recupero il materiale del primo pezzo + string sMaterial = "" ; + if ( btlObject.parts != null) + sMaterial = btlObject.parts[0].Material ; + // Recupero lo stato della barra int nBarState = 0 ; if ( ! pattInfo.IsFromProject) @@ -220,6 +227,7 @@ namespace ib.essetre.integration.egaltech vBar[i].piInfo = pattInfo ; vBar[i].nBarState = nBarState ; vBar[i].sBtlPath = BtlPath ; + vBar[i].sMaterial = sMaterial ; vBar[i].bBtlOk = BtlOk ; } @@ -248,7 +256,11 @@ namespace ib.essetre.integration.egaltech int nMode = (int)parameters.UIMode ; if ( parameters.UIMode == InOutParameters.UIModes.HIDDEN && vBar[nCurrBar].nBarState != 0) nMode = 4 ; - vProc[j].Proc.StartInfo.Arguments = "\"" + vBar[nCurrBar].sBtlPath + "\" " + parameters.MachineName + " " + nMode.ToString() ; + int nForceBW = 0 ; // 0=automatico, 1=forza Beam, 2= forza Wall + if ( ! String.IsNullOrWhiteSpace( MaterialToForceWall) && vBar[nCurrBar].sMaterial.StartsWith( MaterialToForceWall)) + nForceBW = 2 ; + vProc[j].Proc.StartInfo.Arguments = "\"" + vBar[nCurrBar].sBtlPath + "\" " + parameters.MachineName + + " " + nMode.ToString() + " " + nForceBW.ToString() ; vProc[j].Proc.StartInfo.UseShellExecute = false ; try { if ( vProc[j].Proc.Start()) { @@ -575,6 +587,7 @@ namespace ib.essetre.integration.egaltech if ( bFirst) { readPart.singleMemberNumber = GetElementSN( (int)dRowF["elementId"], (int)dRowF["projectId"]) ; + readPart.Material = GetElementMaterial( (int)dRowF["elementId"], (int)dRowF["projectId"]) ; readPart.count = "1" ; readPart.length = dRowF["length"].ToString() ; readPart.height = dRowF["height"].ToString() ; @@ -718,12 +731,13 @@ namespace ib.essetre.integration.egaltech if ( bFirst) { readPart.singleMemberNumber = GetElementSN( (int)dRow0["elementId"], (int)dRow0["projectId"]) ; + readPart.Material = GetElementMaterial( (int)dRow0["elementId"], (int)dRow0["projectId"]) ; readPart.count = "1" ; readPart.length = dRowF["length"].ToString() ; readPart.height = dRowF["height"].ToString() ; readPart.width = dRowF["width"].ToString() ; readPart.x = Constants.HeadOverMat ; - readPart.z = Constants.HeadOverMat ; + readPart.z = 0 ; // Constants.HeadOverMat ; readPart.inverted = (double)dRowF["inverted"] ; readPart.rotated = (double)dRowF["rotated"] ; readPart.elementId = (int)dRowF["elementId"] ; @@ -859,6 +873,36 @@ namespace ib.essetre.integration.egaltech return SN ; } + //------------------------------------------------------------------------------------------------------------- + // Recupera il materiale dell'Elemento (colonna "MATERIAL" di ElementParam) + private static string GetElementMaterial( int ElementId, int ProjectId) + { + string Mat = "" ; + + string sqlElementMat = "SELECT value " + + "FROM dbo.vw_ElementParam " + + "WHERE elementId = @firstId " + + "AND projectId = @secondId " + + "AND name = 'MATERIAL' " ; + + // Connessione al DB ed esecuzione query + using ( SqlConnection cn = new SqlConnection( _SqlConnectionStr)) { + cn.Open() ; + using ( SqlCommand sqlCommand = new SqlCommand( sqlElementMat, cn)) { + sqlCommand.Parameters.Add( "@firstId", SqlDbType.Int) ; + sqlCommand.Parameters.Add( "@secondId", SqlDbType.Int) ; + sqlCommand.Parameters["@firstId"].Value = ElementId ; + sqlCommand.Parameters["@secondId"].Value = ProjectId ; + SqlDataReader reader = sqlCommand.ExecuteReader() ; + while ( reader.Read()) { + Mat = Convert.ToString( reader["value"]) ; + } + } + } + + return Mat ; + } + //------------------------------------------------------------------------------------------------------------- // Recupera la lunghezza della barra nel caso Produzione (colonna "l") private static double GetBarLengthP( int patternId, int productionId) @@ -1023,7 +1067,7 @@ namespace ib.essetre.integration.egaltech int listaProcessesCount = dTab.Rows.Count ; if ( listaProcessesCount > 0) { double wallWidth = Convert.ToDouble( dTab.Rows[0]["width"]) ; - panelWidth = wallWidth + 2 * Constants.PanelOverMat ; + panelWidth = wallWidth ; // + 2 * Constants.PanelOverMat ; } return panelWidth ; @@ -1047,6 +1091,13 @@ namespace ib.essetre.integration.egaltech di.Create() ; return DataDir ; } + + //------------------------------------------------------------------------------------------------------------- + // Restituisce l'inizio del materiale per forzare il lancio delle pareti + private static String GetMaterialToForceWall( InOutParameters parameters) + { + return parameters.Read( "EGALTECH", "MaterialToForceWall", "CLT-") ; + } //------------------------------------------------------------------------------------------------------------- // Restituisce la path completa per il file BTL diff --git a/IntegrationEgaltech/Properties/AssemblyInfo.cs b/IntegrationEgaltech/Properties/AssemblyInfo.cs index f58961a..a92f041 100644 --- a/IntegrationEgaltech/Properties/AssemblyInfo.cs +++ b/IntegrationEgaltech/Properties/AssemblyInfo.cs @@ -36,5 +36,5 @@ using System.Runtime.InteropServices; // È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build // usando l'asterisco '*' come illustrato di seguito: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.3.2.2")] -[assembly: AssemblyFileVersion("2.3.2.2")] +[assembly: AssemblyVersion("2.3.3.1")] +[assembly: AssemblyFileVersion("2.3.3.1")]