diff --git a/EgtExchange.rc b/EgtExchange.rc index 1780f66..fe52976 100644 Binary files a/EgtExchange.rc and b/EgtExchange.rc differ diff --git a/ImportCnc.cpp b/ImportCnc.cpp index ac7699f..2e89907 100644 --- a/ImportCnc.cpp +++ b/ImportCnc.cpp @@ -118,6 +118,9 @@ ImportCnc::Import( const string& sFile, IGeomDB* pGDB, int nIdGroup, int nFlag) m_dRotAxB = NAN ; m_dRotAxC = NAN ; SaveRotAxes() ; + m_dOffsAxA = 0 ; + m_dOffsAxB = 0 ; + m_dOffsAxC = 0 ; m_colCurr = BLACK ; m_sToolName.clear() ; m_nExit = 1 ; @@ -459,11 +462,13 @@ ImportCnc::ParseG( const string& sToken) case 56 : case 57 : m_vtOffs = V_NULL ; + m_dOffsAxA = 0 ; m_dOffsAxB = 0 ; m_dOffsAxC = 0 ; break ; case 58 : case 59 : m_nCommand = OFFS ; m_vtOffs = V_NULL ; + m_dOffsAxA = 0 ; m_dOffsAxB = 0 ; m_dOffsAxC = 0 ; break ; case 70 : m_dLinCoeff = ONEINCH ; @@ -679,10 +684,14 @@ ImportCnc::ParseA( const string& sToken) { double dVal ; int nStart = ( sToken[1] == '=' ? 2 : 1) ; - if ( ! FromString( sToken.substr( nStart), dVal)) - dVal = 0 ; - m_dRotAxA = ( m_bAbsCoord ? dVal : m_dRotAxA + dVal) ; - m_bToMove = true ; + if ( FromString( sToken.substr( nStart), dVal)) { + if ( m_nCommand == OFFS) + m_dOffsAxA = dVal ; + else { + m_dRotAxA = ( m_bAbsCoord ? m_dOffsAxA + dVal : m_dRotAxA + dVal) ; + m_bToMove = true ; + } + } return true ; } @@ -692,10 +701,14 @@ ImportCnc::ParseB( const string& sToken) { double dVal ; int nStart = ( sToken[1] == '=' ? 2 : 1) ; - if ( ! FromString( sToken.substr( nStart), dVal)) - dVal = 0 ; - m_dRotAxB = ( m_bAbsCoord ? dVal : m_dRotAxB + dVal) ; - m_bToMove = true ; + if ( FromString( sToken.substr( nStart), dVal)) { + if ( m_nCommand == OFFS) + m_dOffsAxB = dVal ; + else { + m_dRotAxB = ( m_bAbsCoord ? m_dOffsAxB + dVal : m_dRotAxB + dVal) ; + m_bToMove = true ; + } + } return true ; } @@ -713,13 +726,17 @@ ImportCnc::ParseC( const string& sToken) m_nArcType = RADIUS ; return true ; } - // altrimenti č l'asse rotante C + // altrimenti puņ essere l'asse rotante C double dVal ; int nStart = ( sToken[1] == '=' ? 2 : 1) ; - if ( ! FromString( sToken.substr( nStart), dVal)) - dVal = 0 ; - m_dRotAxC = ( m_bAbsCoord ? dVal : m_dRotAxC + dVal) ; - m_bToMove = true ; + if ( FromString( sToken.substr( nStart), dVal)) { + if ( m_nCommand == OFFS) + m_dOffsAxC = dVal ; + else { + m_dRotAxC = ( m_bAbsCoord ? m_dOffsAxC + dVal : m_dRotAxC + dVal) ; + m_bToMove = true ; + } + } return true ; } diff --git a/ImportCnc.h b/ImportCnc.h index 6546f3b..ffaebd7 100644 --- a/ImportCnc.h +++ b/ImportCnc.h @@ -116,6 +116,9 @@ class ImportCnc : public IImportCnc double m_dLastRotAxA ; double m_dLastRotAxB ; double m_dLastRotAxC ; + double m_dOffsAxA ; + double m_dOffsAxB ; + double m_dOffsAxC ; Color m_colCurr ; std::string m_sToolName ; int m_nExit ;