EgtMachKernel 1.6j5 :
- aggiunta gestione versione del DB utensili - aggiunti 3 parametri agli utensili (coolant, maxAbsorption, minfeed).
This commit is contained in:
Binary file not shown.
+40
-2
@@ -25,7 +25,9 @@ using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
enum nToolKey {
|
||||
TK_COR = 0,
|
||||
TK_ABSMAX = 0,
|
||||
TK_COOLANT,
|
||||
TK_COR,
|
||||
TK_CRAD,
|
||||
TK_D,
|
||||
TK_DRAW,
|
||||
@@ -33,6 +35,7 @@ enum nToolKey {
|
||||
TK_EXI,
|
||||
TK_F,
|
||||
TK_FE,
|
||||
TK_FM,
|
||||
TK_FS,
|
||||
TK_FT,
|
||||
TK_HEA,
|
||||
@@ -54,6 +57,8 @@ enum nToolKey {
|
||||
TK_ZZZ} ; // rappresenta il numero di elementi
|
||||
|
||||
static const std::array<std::string,TK_ZZZ> sToolKey = {
|
||||
"ABSMAX",
|
||||
"COOLANT",
|
||||
"COR",
|
||||
"CRAD",
|
||||
"D",
|
||||
@@ -62,6 +67,7 @@ static const std::array<std::string,TK_ZZZ> sToolKey = {
|
||||
"EXI",
|
||||
"F",
|
||||
"FE",
|
||||
"FM",
|
||||
"FS",
|
||||
"FT",
|
||||
"HEA",
|
||||
@@ -83,7 +89,7 @@ static const std::array<std::string,TK_ZZZ> sToolKey = {
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
ToolData::GetSize( void) const
|
||||
ToolData::GetSize( void)
|
||||
{
|
||||
// in debug verifico validità ultimo campo
|
||||
assert( sToolKey[TK_UUID] == "UUID") ;
|
||||
@@ -111,6 +117,12 @@ ToolData::FromString( const string& sString, int& nKey)
|
||||
nKey = FindToolKey( ToUpper( sKey)) ;
|
||||
bool bOk = ( nKey >= 0) ;
|
||||
switch ( nKey) {
|
||||
case TK_ABSMAX :
|
||||
bOk = ::FromString( sVal, m_dMaxAbsorption) ;
|
||||
break ;
|
||||
case TK_COOLANT :
|
||||
bOk = ::FromString( sVal, m_nCoolant) ;
|
||||
break ;
|
||||
case TK_COR :
|
||||
bOk = ::FromString( sVal, m_nCorr) ;
|
||||
break ;
|
||||
@@ -135,6 +147,9 @@ ToolData::FromString( const string& sString, int& nKey)
|
||||
case TK_FE :
|
||||
bOk = ::FromString( sVal, m_dEndFeed) ;
|
||||
break ;
|
||||
case TK_FM :
|
||||
bOk = ::FromString( sVal, m_dMinFeed) ;
|
||||
break ;
|
||||
case TK_FS :
|
||||
bOk = ::FromString( sVal, m_dStartFeed) ;
|
||||
break ;
|
||||
@@ -202,6 +217,8 @@ string
|
||||
ToolData::ToString( int nInd) const
|
||||
{
|
||||
switch ( nInd) {
|
||||
case TK_ABSMAX : return ( sToolKey[TK_ABSMAX] + "=" + ::ToString( m_dMaxAbsorption)) ;
|
||||
case TK_COOLANT : return ( sToolKey[TK_COOLANT] + "=" + ::ToString( m_nCoolant)) ;
|
||||
case TK_COR : return ( sToolKey[TK_COR] + "=" + ::ToString( m_nCorr)) ;
|
||||
case TK_CRAD : return ( sToolKey[TK_CRAD] + "=" + ::ToString( m_dCornRad)) ;
|
||||
case TK_D : return ( sToolKey[TK_D] + "=" + ::ToString( m_dDiam)) ;
|
||||
@@ -210,6 +227,7 @@ ToolData::ToString( int nInd) const
|
||||
case TK_EXI : return ( sToolKey[TK_EXI] + "=" + ::ToString( m_nExit)) ;
|
||||
case TK_F : return ( sToolKey[TK_F] + "=" + ::ToString( m_dFeed)) ;
|
||||
case TK_FE : return ( sToolKey[TK_FE] + "=" + ::ToString( m_dEndFeed)) ;
|
||||
case TK_FM : return ( sToolKey[TK_FM] + "=" + ::ToString( m_dMinFeed)) ;
|
||||
case TK_FS : return ( sToolKey[TK_FS] + "=" + ::ToString( m_dStartFeed)) ;
|
||||
case TK_FT : return ( sToolKey[TK_FT] + "=" + ::ToString( m_dTipFeed)) ;
|
||||
case TK_HEA : return ( sToolKey[TK_HEA] + "=" + m_sHead) ;
|
||||
@@ -255,6 +273,9 @@ ToolData::SetParam( int nType, int nVal)
|
||||
return false ;
|
||||
m_nType = nVal ;
|
||||
return true ;
|
||||
case TPA_COOLANT :
|
||||
m_nCoolant = nVal ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
@@ -301,6 +322,8 @@ ToolData::SetParam( int nType, double dVal)
|
||||
m_dOffsR = dVal ;
|
||||
return true ;
|
||||
case TPA_SPEED :
|
||||
if ( ! VerifySpeed( dVal))
|
||||
return false ;
|
||||
m_dSpeed = dVal ;
|
||||
return true ;
|
||||
case TPA_SIDEANG :
|
||||
@@ -312,6 +335,12 @@ ToolData::SetParam( int nType, double dVal)
|
||||
case TPA_THICK :
|
||||
m_dThick = dVal ;
|
||||
return true ;
|
||||
case TPA_MAXABSORPTION :
|
||||
m_dMaxAbsorption = dVal ;
|
||||
return true ;
|
||||
case TPA_MINFEED :
|
||||
m_dMinFeed = dVal ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
@@ -359,6 +388,9 @@ ToolData::GetParam( int nType, int& nVal) const
|
||||
case TPA_TYPE :
|
||||
nVal = m_nType ;
|
||||
return true ;
|
||||
case TPA_COOLANT :
|
||||
nVal = m_nCoolant ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
@@ -416,6 +448,12 @@ ToolData::GetParam( int nType, double& dVal) const
|
||||
case TPA_THICK :
|
||||
dVal = m_dThick ;
|
||||
return true ;
|
||||
case TPA_MAXABSORPTION :
|
||||
dVal = m_dMaxAbsorption ;
|
||||
return true ;
|
||||
case TPA_MINFEED :
|
||||
dVal = m_dMinFeed ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
|
||||
+5
-2
@@ -43,6 +43,9 @@ struct ToolData
|
||||
double m_dTipFeed ; // velocità di lavorazione di testa
|
||||
double m_dOffsR ; // offset radiale
|
||||
double m_dOffsL ; // offset longitudinale
|
||||
int m_nCoolant ; // liquido di raffreddamento
|
||||
double m_dMaxAbsorption ;// massimo assorbimento
|
||||
double m_dMinFeed ; // minima riduzione di feed per contenere l'assorbimento
|
||||
std::string m_sSysNotes ; // note interne
|
||||
std::string m_sUserNotes ; // note dell'utente
|
||||
|
||||
@@ -50,9 +53,9 @@ struct ToolData
|
||||
: m_Uuid(), m_nExit( 0), m_nCorr(0), m_nType(0), m_dMaxSpeed(0), m_dMaxMat(0),
|
||||
m_dDiam( 0), m_dTDiam( 0), m_dLen( 0), m_dTLen( 0), m_dThick( 0), m_dCornRad( 0), m_dSideAng( 0),
|
||||
m_dSpeed( 0), m_dFeed(0), m_dStartFeed( 0), m_dEndFeed( 0), m_dTipFeed( 0),
|
||||
m_dOffsR( 0), m_dOffsL( 0) {}
|
||||
m_dOffsR( 0), m_dOffsL( 0), m_nCoolant( 0), m_dMaxAbsorption( 0), m_dMinFeed( 0) {}
|
||||
|
||||
int GetSize( void) const ;
|
||||
static int GetSize( void) ;
|
||||
bool FromString( const std::string& sString, int& nKey) ;
|
||||
std::string ToString( int nInd) const ;
|
||||
|
||||
|
||||
+28
-8
@@ -7,7 +7,8 @@
|
||||
//
|
||||
//
|
||||
// Modifiche : 01.06.15 DS Creazione modulo.
|
||||
//
|
||||
// 21.10.15 DS Aggiunti VERSION e TOOLSIZE in HEADER (default VERSION = 1000 e TOOLSIZE = 26).
|
||||
// Ora VERSION = 1001 e TOOLSIZE = 29.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -27,7 +28,10 @@ using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const string TF_HEADER = "[HEADER]" ;
|
||||
const string TF_VERSION = "VERSION" ;
|
||||
const string TF_TOOLSIZE = "TOOLSIZE" ;
|
||||
const string TF_TOTAL = "TOTAL" ;
|
||||
const int TF_CURR_VER = 1001 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
ToolsMgr::ToolsMgr( void)
|
||||
@@ -75,12 +79,18 @@ ToolsMgr::Load( const string& sToolsFile)
|
||||
bool bEnd = false ;
|
||||
|
||||
// leggo l'intestazione
|
||||
int nVersion = 0 ;
|
||||
int nToolSize = 0 ;
|
||||
int nTotal = 0 ;
|
||||
if ( ! LoadHeader( TheScanner, nTotal, bEnd)) {
|
||||
if ( ! LoadHeader( TheScanner, nVersion, nToolSize, nTotal, bEnd)) {
|
||||
bOk = false ;
|
||||
string sOut = "LoadTools : Error on Header" ;
|
||||
LOG_ERROR( GetEMkLogger(), sOut.c_str())
|
||||
}
|
||||
{
|
||||
string sOut = "LoadTools : FileVer = " + ToString( nVersion) + " CurrVer = " + ToString( TF_CURR_VER) ;
|
||||
LOG_INFO( GetEMkLogger(), sOut.c_str())
|
||||
}
|
||||
|
||||
// dimensiono maps
|
||||
const int MIN_BUCKETS = 53 ;
|
||||
@@ -88,7 +98,7 @@ ToolsMgr::Load( const string& sToolsFile)
|
||||
|
||||
// ciclo di lettura degli utensili
|
||||
do {
|
||||
if ( ! LoadOneTool( TheScanner, bEnd)) {
|
||||
if ( ! LoadOneTool( TheScanner, nToolSize, bEnd)) {
|
||||
bOk = false ;
|
||||
string sOut = "LoadTools : Error on line " + ToString( TheScanner.GetCurrLineNbr()) ;
|
||||
LOG_ERROR( GetEMkLogger(), sOut.c_str())
|
||||
@@ -109,7 +119,7 @@ ToolsMgr::Load( const string& sToolsFile)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
ToolsMgr::LoadHeader( Scanner& TheScanner, int& nVersion, int& nToolSize, int& nTotal, bool& bEnd)
|
||||
{
|
||||
// leggo la prossima linea
|
||||
string sLine ;
|
||||
@@ -124,6 +134,8 @@ ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
bool bOk = true ;
|
||||
// leggo le linee successive
|
||||
bEnd = true ;
|
||||
nVersion = 1000 ;
|
||||
nToolSize = 26 ;
|
||||
nTotal = 0 ;
|
||||
while ( bOk && TheScanner.GetLine( sLine)) {
|
||||
// se utensile successivo
|
||||
@@ -136,7 +148,11 @@ ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
string sKey, sVal ;
|
||||
SplitFirst( sLine, "=", sKey, sVal) ;
|
||||
// riconosco la chiave
|
||||
if ( ToUpper( sKey) == TF_TOTAL)
|
||||
if ( ToUpper( sKey) == TF_VERSION)
|
||||
bOk = FromString( sVal, nVersion) ;
|
||||
else if ( ToUpper( sKey) == TF_TOOLSIZE)
|
||||
bOk = FromString( sVal, nToolSize) ;
|
||||
else if ( ToUpper( sKey) == TF_TOTAL)
|
||||
bOk = FromString( sVal, nTotal) ;
|
||||
else
|
||||
bOk = false ;
|
||||
@@ -146,7 +162,7 @@ ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::LoadOneTool( Scanner& TheScanner, bool& bEnd)
|
||||
ToolsMgr::LoadOneTool( Scanner& TheScanner, int nToolSize, bool& bEnd)
|
||||
{
|
||||
ToolData tData ;
|
||||
// leggo la prossima linea
|
||||
@@ -166,7 +182,7 @@ ToolsMgr::LoadOneTool( Scanner& TheScanner, bool& bEnd)
|
||||
bEnd = true ;
|
||||
const int DIM_BS = 64 ;
|
||||
bitset<DIM_BS> Flag ;
|
||||
assert( tData.GetSize() <= DIM_BS) ;
|
||||
assert( nToolSize <= DIM_BS) ;
|
||||
while ( bOk && TheScanner.GetLine( sLine)) {
|
||||
// se utensile successivo
|
||||
if ( sLine.front() == '[' && sLine.back() == ']') {
|
||||
@@ -182,7 +198,7 @@ ToolsMgr::LoadOneTool( Scanner& TheScanner, bool& bEnd)
|
||||
Flag.set( nKey) ;
|
||||
}
|
||||
// verifico di aver letto tutti i campi
|
||||
bOk = bOk && ( Flag.count() == tData.GetSize()) ;
|
||||
bOk = bOk && ( Flag.count() == nToolSize) ;
|
||||
// salvo i dati dell'utensile
|
||||
bOk = bOk && m_utData.emplace( tData.m_Uuid, tData).second ;
|
||||
bOk = bOk && m_suData.emplace( tData.m_sName, tData.m_Uuid).second ;
|
||||
@@ -255,6 +271,10 @@ ToolsMgr::SaveHeader( Writer& TheWriter) const
|
||||
string sOut ;
|
||||
sOut = TF_HEADER ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
sOut = TF_VERSION + "=" + ToString( TF_CURR_VER) ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
sOut = TF_TOOLSIZE + "=" + ToString( ToolData::GetSize()) ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
sOut = TF_TOTAL + "=" + ToString( int( m_utData.size())) ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
return bOk ;
|
||||
|
||||
+2
-2
@@ -46,8 +46,8 @@ class ToolsMgr
|
||||
|
||||
private :
|
||||
bool Clear( void) ;
|
||||
bool LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd) ;
|
||||
bool LoadOneTool( Scanner& TheScanner, bool& bEnd) ;
|
||||
bool LoadHeader( Scanner& TheScanner, int& nVersion, int& nToolSize, int& nTotal, bool& bEnd) ;
|
||||
bool LoadOneTool( Scanner& TheScanner, int nToolSize, bool& bEnd) ;
|
||||
bool SaveHeader( Writer& TheWriter) const ;
|
||||
bool SaveOneTool( const EgtUUID& Uuid, int& nCounter, Writer& TheWriter) const ;
|
||||
bool VerifyTool( int nFamily, std::string& sName, int& nType) const ;
|
||||
|
||||
Reference in New Issue
Block a user