EgtMachKerenel :

- altri aggiustamenti in finitura superfici per Frame e Tool associato.
This commit is contained in:
Dario Sassi
2026-06-10 15:25:53 +02:00
parent a4758aad6e
commit 5196ffe33e
+24 -22
View File
@@ -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<IGeoFrame3d> 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<IGeoVector3d> 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<IGeoFrame3d> 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<IGeoVector3d> 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)) {