Integration 2.3c1 :

- gestione forzatura macchina in modalità pareti in base al materiale dei pezzi.
This commit is contained in:
Dario Sassi
2021-03-04 09:01:49 +00:00
parent 063fbbc85f
commit 8e60df853c
3 changed files with 57 additions and 5 deletions
+1
View File
@@ -479,6 +479,7 @@ namespace ib.essetre.integration.egaltech
public string length ;
public string height ;
public string width ;
public string Material ;
public List<Feature> features ;
public double x ;
public double z ;
+54 -3
View File
@@ -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
@@ -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")]