From 5196ffe33e3f8a27deb2e8484064788c9b9573f7 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 10 Jun 2026 15:25:53 +0200 Subject: [PATCH] EgtMachKerenel : - altri aggiustamenti in finitura superfici per Frame e Tool associato. --- SurfFinishing.cpp | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/SurfFinishing.cpp b/SurfFinishing.cpp index a023b4e..f25b57e 100644 --- a/SurfFinishing.cpp +++ b/SurfFinishing.cpp @@ -650,28 +650,6 @@ SurfFinishing::MyApply( bool bRecalc, bool bPostApply) else if ( bRecalc) m_pGeomDB->EmptyGroup( nFrameId) ; - // aggiungo il frame e il versore utensile al suo interno - PtrOwner pFrGeo( CreateGeoFrame3d()) ; - if ( IsNull( pFrGeo) || ! pFrGeo->Set( m_Frame)) - return false ; - int nFrId = m_pGeomDB->AddGeoObj( GDB_ID_NULL, nFrameId, ::Release( pFrGeo)) ; - if ( nFrId == GDB_ID_NULL) - return false ; - m_pGeomDB->SetStatus( nFrId, GDB_ST_ON) ; - Vector3d vtSperic = GetToGlob( FromSpherical( 25.0, m_dTheta, m_dPhi), m_Frame) ; - PtrOwner vtToolGeo( CreateGeoVector3d()) ; - if ( IsNull( vtToolGeo) || ! vtToolGeo->Set( vtSperic)) - return false ; - vtToolGeo->ChangeBase( m_Frame.Orig()) ; - int nToolVtId = m_pGeomDB->AddGeoObj( GDB_ID_NULL, nFrameId, ::Release( vtToolGeo)) ; - if ( nToolVtId == GDB_ID_NULL) - return false ; - m_pGeomDB->SetStatus( nToolVtId, GDB_ST_ON) ; - m_pGeomDB->SetMaterial( nToolVtId, FUCHSIA) ; - // nel caso di lavorazioni Optimal o Zlevel nascondo tale frame - if ( m_Params.m_nSubType == SURFFIN_SUB_Z_CONST || m_Params.m_nSubType == SURFFIN_SUB_OPTIMAL) - m_pGeomDB->SetStatus( nToolVtId, GDB_ST_OFF) ; - // verifico se necessario continuare nell'aggiornamento if ( ! bRecalc && ( m_nStatus == MCH_ST_OK || m_nStatus == MCH_ST_NO_POSTAPPL)) { // confermo i percorsi di lavorazione @@ -687,6 +665,30 @@ SurfFinishing::MyApply( bool bRecalc, bool bPostApply) return true ; } m_nStatus = MCH_ST_TO_VERIFY ; + + // se c'รจ geometria, aggiungo il frame e il versore utensile al suo interno + if ( m_pGeomDB->GetFirstGroupInGroup( nAuxId) != GDB_ID_NULL) { + PtrOwner pFrGeo( CreateGeoFrame3d()) ; + if ( IsNull( pFrGeo) || ! pFrGeo->Set( m_Frame)) + return false ; + int nFrId = m_pGeomDB->AddGeoObj( GDB_ID_NULL, nFrameId, ::Release( pFrGeo)) ; + if ( nFrId == GDB_ID_NULL) + return false ; + m_pGeomDB->SetStatus( nFrId, GDB_ST_ON) ; + Vector3d vtSperic = GetToGlob( FromSpherical( 25.0, m_dTheta, m_dPhi), m_Frame) ; + PtrOwner vtToolGeo( CreateGeoVector3d()) ; + if ( IsNull( vtToolGeo) || ! vtToolGeo->Set( vtSperic)) + return false ; + vtToolGeo->ChangeBase( m_Frame.Orig()) ; + int nToolVtId = m_pGeomDB->AddGeoObj( GDB_ID_NULL, nFrameId, ::Release( vtToolGeo)) ; + if ( nToolVtId == GDB_ID_NULL) + return false ; + m_pGeomDB->SetStatus( nToolVtId, GDB_ST_ON) ; + m_pGeomDB->SetMaterial( nToolVtId, FUCHSIA) ; + // nel caso di lavorazioni Optimal o Zlevel nascondo tale frame + if ( m_Params.m_nSubType == SURFFIN_SUB_Z_CONST || m_Params.m_nSubType == SURFFIN_SUB_OPTIMAL) + m_pGeomDB->SetStatus( nToolVtId, GDB_ST_OFF) ; + } // rendo corrente l'utensile usato nella lavorazione if ( ! m_pMchMgr->SetCalcTool( m_TParams.m_sName, m_TParams.m_sHead, m_TParams.m_nExit)) {