diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 40f55ca..c476428 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/GenMachining.cpp b/GenMachining.cpp index 0dcb4d2..7ecae39 100644 --- a/GenMachining.cpp +++ b/GenMachining.cpp @@ -39,6 +39,7 @@ using namespace std ; // 2806 = "Error in GenMachining : link movements not calculable" // 2807 = "Error in GenMachining : link outstroke xx" // 2808 = "Error in GenMachining : post apply not calculable" +// 2809 = "Error in GenMachining : Tool loading failed" // 2851 = "Warning in GenMachining : Skipped entity (xx)" // 2852 = "Warning in GenMachining : No machinable path" // 2853 = "Warning in GenMachining : Tool name changed (xx)" @@ -54,6 +55,8 @@ static const string EVAR_INVERT = ".INVERT" ; // IN (bool) flag di inversio static const string EVAR_STARTPOS = ".STARTPOS" ; // IN (num) quota di inizio lavorazione (sempre >= 0) static const string EVAR_OFFSR = ".OFFSR" ; // IN (num) offset radiale static const string EVAR_OFFSL = ".OFFSL" ; // IN (num) offset longitudinale +static const string EVAR_SYSNOTES = ".SYSNOTES" ; // IN (string) note interne +static const string EVAR_USERNOTES = ".USERNOTES" ;// IN (string) note dell'utente static const string EVAR_TOOL = ".TOOL" ; // IN (string) nome dell'utensile static const string EVAR_HEAD = ".HEAD" ; // IN (string) nome testa static const string EVAR_EXIT = ".EXIT" ; // IN (int) indice uscita @@ -70,10 +73,9 @@ static const string EVAR_FEED = ".FEED" ; // IN (num) feed dell'utensil static const string EVAR_STARTFEED = ".STARTFEED" ;// IN (num) feed di inizio dell'utensile static const string EVAR_ENDFEED = ".ENDFEED" ; // IN (num) feed di fine dell'utensile static const string EVAR_TIPFEED = ".TIPFEED" ; // IN (num) feed di punta dell'utensile -static const string EVAR_SYSNOTES = ".SYSNOTES" ; // IN (string) note interne -static const string EVAR_USERNOTES = ".USERNOTES" ;// IN (string) note dell'utente -static const string EVAR_ERROR = ".ERR" ; // OUT (int) codice di errore ( 0 = ok) -static const string EVAR_MILLS = ".MILLS" ; // OUT (int) numero di percorsi di lavoro +static const string EVAR_ISROBOT = ".ISROBOT" ; // IN (bool) flag per indicare che la cinematica è di tipo robot +static const string EVAR_ERROR = ".ERR" ; // OUT (int) codice di errore ( 0 = ok) +static const string EVAR_MILLS = ".MILLS" ; // OUT (int) numero di percorsi di lavoro static const string ON_PREVIEW = "OnPreview_" ; static const string ON_APPLY = "OnApply_" ; @@ -447,6 +449,12 @@ GenMachining::Preview( bool bRecalc) return false ; } + // rendo corrente l'utensile usato nella lavorazione + if ( ! m_pMchMgr->SetCalcTool( m_TParams.m_sName, m_TParams.m_sHead, m_TParams.m_nExit)) { + m_pMchMgr->SetLastError( 2809, "Error in GenMachining : Tool loading failed") ; + return false ; + } + // recupero gruppo per geometria di Preview int nPvId = m_pGeomDB->GetFirstNameInGroup( m_nOwnerId, MCH_PV) ; // se non c'è, lo aggiungo @@ -491,6 +499,8 @@ GenMachining::Preview( bool bRecalc) bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_STARTPOS, m_Params.m_dStartPos) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_OFFSR, GetOffsR()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_OFFSL, GetOffsL()) ; + bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_SYSNOTES, m_Params.m_sSysNotes) ; + bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_USERNOTES, m_Params.m_sUserNotes) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_TOOL, m_TParams.m_sName) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_HEAD, m_TParams.m_sHead) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_EXIT, m_TParams.m_nExit) ; @@ -507,8 +517,7 @@ GenMachining::Preview( bool bRecalc) bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_STARTFEED, GetStartFeed()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_ENDFEED, GetEndFeed()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_TIPFEED, GetTipFeed()) ; - bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_SYSNOTES, m_Params.m_sSysNotes) ; - bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_USERNOTES, m_Params.m_sUserNotes) ; + bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_ISROBOT, m_pMchMgr->GetCurrIsRobot()) ; // eseguo bOk = bOk && pMch->LuaCallFunction( sPreview, false) ; // recupero valori parametri obbligatori @@ -561,6 +570,12 @@ GenMachining::Apply( bool bRecalc, bool bPostApply) } m_nStatus = MCH_ST_TO_VERIFY ; + // rendo corrente l'utensile usato nella lavorazione + if ( ! m_pMchMgr->SetCalcTool( m_TParams.m_sName, m_TParams.m_sHead, m_TParams.m_nExit)) { + m_pMchMgr->SetLastError( 2809, "Error in GenMachining : Tool loading failed") ; + return false ; + } + // recupero gruppo per geometria di lavorazione (Cutter Location) int nClId = m_pGeomDB->GetFirstNameInGroup( m_nOwnerId, MCH_CL) ; // se non c'è, lo aggiungo @@ -605,6 +620,8 @@ GenMachining::Apply( bool bRecalc, bool bPostApply) bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_STARTPOS, m_Params.m_dStartPos) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_OFFSR, GetOffsR()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_OFFSL, GetOffsL()) ; + bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_SYSNOTES, m_Params.m_sSysNotes) ; + bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_USERNOTES, m_Params.m_sUserNotes) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_TOOL, m_TParams.m_sName) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_HEAD, m_TParams.m_sHead) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_EXIT, m_TParams.m_nExit) ; @@ -621,8 +638,7 @@ GenMachining::Apply( bool bRecalc, bool bPostApply) bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_STARTFEED, GetStartFeed()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_ENDFEED, GetEndFeed()) ; bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_TIPFEED, GetTipFeed()) ; - bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_SYSNOTES, m_Params.m_sSysNotes) ; - bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_USERNOTES, m_Params.m_sUserNotes) ; + bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_ISROBOT, m_pMchMgr->GetCurrIsRobot()) ; // eseguo bOk = bOk && pMch->LuaCallFunction( sApply, false) ; // recupero valori parametri obbligatori