diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 282c5a6..daf8c4f 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/Milling.cpp b/Milling.cpp index b228f9e..0c8361f 100644 --- a/Milling.cpp +++ b/Milling.cpp @@ -697,12 +697,6 @@ Milling::Apply( bool bRecalc, bool bPostApply) m_dTHoldDiam = 0 ; m_pGeomDB->GetInfo( nToolId, TTH_DIAM, m_dTHoldDiam) ; - // se necessario, eseguo concatenamento ed inserisco i percorsi sotto la geometria ausiliaria - if ( bChain && ! Chain( nAuxId)) { - m_pMchMgr->SetLastError( 2315, "Error in Milling : Chaining 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 @@ -727,6 +721,12 @@ Milling::Apply( bool bRecalc, bool bPostApply) if ( ! bOk) return false ; + // se necessario, eseguo concatenamento ed inserisco i percorsi sotto la geometria ausiliaria + if ( bChain && ! Chain( nAuxId)) { + m_pMchMgr->SetLastError( 2315, "Error in Milling : Chaining failed") ; + return false ; + } + // assegno ingombri dei vari percorsi di lavorazione e della lavorazione nel suo complesso CalcAndSetBBox( nClId) ; @@ -1673,21 +1673,12 @@ Milling::ProcessPath( int nPathId, int nPvId, int nClId) } // se l'elevazione supera la capacità dell'utensile if ( dElev > m_TParams.m_dMaxMat + EPS_SMALL) { - // se affondamento riducibile : segnalo, riduco e continuo - if ( dDepth + max( dThick, 0.0) > m_TParams.m_dMaxMat) { - string sInfo = "Warning in Milling : machining depth (" + ToString( dElev, 1) + - ") bigger than MaxMaterial (" + ToString( m_TParams.m_dMaxMat, 1) + ")" ; - m_pMchMgr->SetWarning( 2358, sInfo) ; - dDepth = m_TParams.m_dMaxMat - max( dThick, 0.0) ; - dElev = m_TParams.m_dMaxMat ; - } - // altrimenti errore - else { - string sInfo = "Error in Milling : machining depth (" + ToString( dElev, 1) + - ") bigger than MaxMaterial (" + ToString( m_TParams.m_dMaxMat, 1) + ")" ; - m_pMchMgr->SetLastError( 2305, sInfo) ; - return false ; - } + // segnalo, riduco e continuo + string sInfo = "Warning in Milling : machining depth (" + ToString( dElev, 1) + + ") bigger than MaxMaterial (" + ToString( m_TParams.m_dMaxMat, 1) + ")" ; + m_pMchMgr->SetWarning( 2358, sInfo) ; + dDepth = m_TParams.m_dMaxMat - max( dThick, 0.0) ; + dElev = m_TParams.m_dMaxMat ; } } // altrimenti lavorazione a step @@ -1703,21 +1694,12 @@ Milling::ProcessPath( int nPathId, int nPvId, int nClId) } // se l'elevazione supera il massimo affondamento dell'utensile if ( dElev > dMaxDepth + EPS_SMALL) { - // se affondamento riducibile : segnalo, riduco e continuo - if ( dDepth + max( dThick, 0.0) > dElev - dMaxDepth) { - string sInfo = "Warning in Milling : machining depth (" + ToString( dElev, 1) + - ") bigger than MaxDepth (" + ToString( dMaxDepth, 1) + ")" ; - m_pMchMgr->SetWarning( 2358, sInfo) ; - dDepth -= ( dElev - dMaxDepth) ; - dElev = dMaxDepth ; - } - // altrimenti errore - else { - string sInfo = "Error in Milling : machining depth (" + ToString( dElev, 1) + - ") bigger than MaxDepth (" + ToString( dMaxDepth, 1) + ")" ; - m_pMchMgr->SetLastError( 2323, sInfo) ; - return false ; - } + // segnalo, riduco e continuo + string sInfo = "Warning in Milling : machining depth (" + ToString( dElev, 1) + + ") bigger than MaxDepth (" + ToString( dMaxDepth, 1) + ")" ; + m_pMchMgr->SetWarning( 2358, sInfo) ; + dDepth -= ( dElev - dMaxDepth) ; + dElev = dMaxDepth ; } } } diff --git a/Mortising.cpp b/Mortising.cpp index b5639d4..23c5d42 100644 --- a/Mortising.cpp +++ b/Mortising.cpp @@ -36,16 +36,15 @@ using namespace std ; // 2502 = "Error in Mortising : Offset not computable" // 2503 = "Error in Mortising : Empty RawBox" // 2504 = "Error in Mortising : Depth not computable" -// 2505 = "Error in Mortising : machining depth (xxx) bigger than MaxMaterial (yyy)" -// 2506 = "Error in Mortising : Entity GetElevation" -// 2507 = "Error in Mortising : Chaining failed" -// 2508 = "Error in Mortising : axes values not calculable" -// 2509 = "Error in Mortising : outstroke xx" -// 2510 = "Error in Mortising : link movements not calculable" -// 2511 = "Error in Mortising : link outstroke xx" -// 2512 = "Error in Mortising : post apply not calculable" -// 2513 = "Error in Mortising : Tool MaxMaterial too small (xx)" -// 2514 = "Error in Mortising : Closed path not allowed" +// 2505 = "Error in Mortising : Entity GetElevation" +// 2506 = "Error in Mortising : Chaining failed" +// 2507 = "Error in Mortising : axes values not calculable" +// 2508 = "Error in Mortising : outstroke xx" +// 2509 = "Error in Mortising : link movements not calculable" +// 2510 = "Error in Mortising : link outstroke xx" +// 2511 = "Error in Mortising : post apply not calculable" +// 2512 = "Error in Mortising : Tool MaxMaterial too small (xx)" +// 2513 = "Error in Mortising : Closed path not allowed" // 2551 = "Warning in Mortising : Skipped entity (xx)" // 2552 = "Warning in Mortising : Plunges not found" // 2553 = "Warning in Mortising : Tool name changed (xx)" @@ -476,7 +475,7 @@ Mortising::Preview( bool bRecalc) // se necessario, eseguo concatenamento ed inserisco i percorsi sotto la geometria ausiliaria if ( bChain && ! Chain( nAuxId)) { - m_pMchMgr->SetLastError( 2507, "Error in Mortising : Chaining failed") ; + m_pMchMgr->SetLastError( 2506, "Error in Mortising : Chaining failed") ; return false ; } // recupero gruppo per geometria di Preview @@ -549,12 +548,6 @@ Mortising::Apply( bool bRecalc, bool bPostApply) bChain = true ; } - // se necessario, eseguo concatenamento ed inserisco i percorsi sotto la geometria ausiliaria - if ( bChain && ! Chain( nAuxId)) { - m_pMchMgr->SetLastError( 2507, "Error in Mortising : Chaining 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 @@ -568,6 +561,12 @@ Mortising::Apply( bool bRecalc, bool bPostApply) else m_pGeomDB->EmptyGroup( nClId) ; + // se necessario, eseguo concatenamento ed inserisco i percorsi sotto la geometria ausiliaria + if ( bChain && ! Chain( nAuxId)) { + m_pMchMgr->SetLastError( 2506, "Error in Mortising : Chaining failed") ; + return false ; + } + // lavoro ogni singola catena bool bOk = true ; int nPathId = m_pGeomDB->GetFirstGroupInGroup( nAuxId) ; @@ -625,9 +624,9 @@ Mortising::Update( bool bPostApply) if ( ! CalculateAxesValues( sHint, true)) { string sInfo = m_pMchMgr->GetOutstrokeInfo() ; if ( sInfo.empty()) - m_pMchMgr->SetLastError( 2508, "Error in Mortising : axes values not calculable") ; + m_pMchMgr->SetLastError( 2507, "Error in Mortising : axes values not calculable") ; else - m_pMchMgr->SetLastError( 2509, "Error in Mortising : outstroke ") ; + m_pMchMgr->SetLastError( 2508, "Error in Mortising : outstroke ") ; return false ; } @@ -635,15 +634,15 @@ Mortising::Update( bool bPostApply) if ( ! AdjustStartEndMovements()) { string sInfo = m_pMchMgr->GetOutstrokeInfo() ; if ( sInfo.empty()) - m_pMchMgr->SetLastError( 2510, "Error in Mortising : link movements not calculable") ; + m_pMchMgr->SetLastError( 2509, "Error in Mortising : link movements not calculable") ; else - m_pMchMgr->SetLastError( 2511, "Error in Mortising : link outstroke ") ; + m_pMchMgr->SetLastError( 2510, "Error in Mortising : link outstroke ") ; return false ; } // esecuzione eventuali personalizzazioni if ( bPostApply && ! PostApply()) { - m_pMchMgr->SetLastError( 2512, "Error in Mortising : post apply not calculable") ; + m_pMchMgr->SetLastError( 2511, "Error in Mortising : post apply not calculable") ; return false ; } @@ -1127,7 +1126,7 @@ Mortising::ProcessPath( int nPathId, int nPvId, int nClId) // verifico non sia un percorso chiuso if ( pCompo->IsClosed()) { - m_pMchMgr->SetLastError( 2514, "Error in Mortising : Closed path not allowed") ; + m_pMchMgr->SetLastError( 2513, "Error in Mortising : Closed path not allowed") ; return false ; } @@ -1253,7 +1252,7 @@ Mortising::ProcessPath( int nPathId, int nPvId, int nClId) if ( m_TParams.m_dMaxMat < dElev && m_TParams.m_dMaxMat < MIN_MAXMAT) { string sInfo = "Error in Mortising : Tool MaxMaterial too small (" + ToString( m_TParams.m_dMaxMat, 2) + ")" ; - m_pMchMgr->SetLastError( 2513, sInfo) ; + m_pMchMgr->SetLastError( 2512, sInfo) ; return false ; } @@ -1268,20 +1267,25 @@ Mortising::ProcessPath( int nPathId, int nPvId, int nClId) } // se lavorazione singola e l'elevazione supera la capacità dell'utensile if ( ( dOkStep < EPS_SMALL || dOkStep > dElev) && dElev > m_TParams.m_dMaxMat + EPS_SMALL) { - // se affondamento riducibile : segnalo, riduco e continuo - if ( dDepth + max( dThick, 0.0) > m_TParams.m_dMaxMat) { - dDepth = m_TParams.m_dMaxMat - max( dThick, 0.0) ; + // segnalo, riduco e continuo + dDepth = m_TParams.m_dMaxMat - max( dThick, 0.0) ; + string sInfo = "Warning in Mortising : machining depth (" + ToString( dElev, 1) + + ") bigger than MaxMaterial (" + ToString( m_TParams.m_dMaxMat, 1) + ")" ; + m_pMchMgr->SetWarning( 2558, sInfo) ; + } + // altrimenti lavorazione a step + else { + // massimo affondamento dell'utensile + double dMaxDepth = m_TParams.m_dMaxMat ; + // se l'elevazione supera il massimo affondamento dell'utensile + if ( dElev > dMaxDepth + EPS_SMALL) { + // segnalo, riduco e continuo string sInfo = "Warning in Mortising : machining depth (" + ToString( dElev, 1) + - ") bigger than MaxMaterial (" + ToString( m_TParams.m_dMaxMat, 1) + ")" ; + ") bigger than MaxDepth (" + ToString( dMaxDepth, 1) + ")" ; m_pMchMgr->SetWarning( 2558, sInfo) ; - } - // altrimenti errore - else { - string sInfo = "Error in Mortising : machining depth (" + ToString( dElev, 1) + - ") bigger than MaxMaterial (" + ToString( m_TParams.m_dMaxMat, 1) + ")" ; - m_pMchMgr->SetLastError( 2505, sInfo) ; - return false ; - } + dDepth -= ( dElev - dMaxDepth) ; + dElev = dMaxDepth ; + } } } @@ -1364,7 +1368,7 @@ Mortising::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d& vtT dElev = dCurrElev ; } else { - m_pMchMgr->SetLastError( 2506, "Error in Mortising : Entity GetElevation") ; + m_pMchMgr->SetLastError( 2505, "Error in Mortising : Entity GetElevation") ; return false ; } // da una parte @@ -1374,7 +1378,7 @@ Mortising::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d& vtT dElev = dCurrElev ; } else { - m_pMchMgr->SetLastError( 2506, "Error in Mortising : Entity GetElevation") ; + m_pMchMgr->SetLastError( 2505, "Error in Mortising : Entity GetElevation") ; return false ; } // dall'altra parte @@ -1384,7 +1388,7 @@ Mortising::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d& vtT dElev = dCurrElev ; } else { - m_pMchMgr->SetLastError( 2506, "Error in Mortising : Entity GetElevation") ; + m_pMchMgr->SetLastError( 2505, "Error in Mortising : Entity GetElevation") ; return false ; } } diff --git a/MortisingData.cpp b/MortisingData.cpp index f9658ec..934ceb1 100644 --- a/MortisingData.cpp +++ b/MortisingData.cpp @@ -359,7 +359,7 @@ MortisingData::VerifySolCh( int nVal) const bool MortisingData::VerifyFaceUse( int nVal) const { - return ( nVal == MILL_FU_NONE || + return ( nVal == MORTISE_FU_NONE || ( nVal >= MORTISE_FU_PARAL_DOWN && nVal <= MORTISE_FU_PARAL_RIGHT)) ; }