From 6986c01fba0e38d3668e4f66275148dec5a85928 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 16 May 2024 12:51:11 +0200 Subject: [PATCH] =?UTF-8?q?EgtMachKernel=202.6e4=20:=20-=20in=20lavorazion?= =?UTF-8?q?i=20generiche=20ora=20si=20imposta=20l'utensile=20per=20il=20ca?= =?UTF-8?q?lcolo=20prima=20di=20chiamare=20lo=20script=20-=20in=20lavorazi?= =?UTF-8?q?oni=20generiche=20si=20passa=20allo=20script=20anche=20la=20var?= =?UTF-8?q?iabile=20EMC.ISROBOT=20(flag=20che=20indica=20se=20la=20catena?= =?UTF-8?q?=20cinematica=20=C3=A8=20di=20tipo=20robot).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EgtMachKernel.rc | Bin 11774 -> 11774 bytes GenMachining.cpp | 32 ++++++++++++++++++++++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 40f55cac78346838104950b3be47ed445498abc6..c47642860070c663643cf00f8fcf7fb5e6899c9d 100644 GIT binary patch delta 97 zcmewt{V#gMFE&P#&A-`fnHfzcKa|wnoW?bQ1uSxrY4Qod0+^@}R1`^_2jk{d(jGv4 NK<#LXK~l;gTmUI`BbWdH delta 97 zcmewt{V#gMFE&QQ&A-`fnHdcyKa|wnoW?bQ1uSxrY4Qod0+^@}R1`^_2jk{d(jGv4 NK<#LXK~l;gTmU3rBY*$^ 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