EgtMachKernel :

- Aggiunta gestione punti iniziali in Sgrossature e Finiture.
This commit is contained in:
Riccardo Elitropi
2024-08-22 12:56:42 +02:00
parent 3c48318ebe
commit 5247e2d097
2 changed files with 10 additions and 8 deletions
+3 -3
View File
@@ -1408,7 +1408,7 @@ SurfFinishing::AddZigZag( ICAvToolSurfTm* pCAvTlStm, const Frame3d& frSurf, cons
double dPockRadOffs = m_TParams.m_dDiam / 2 - m_Params.m_dSideStep - m_Params.m_dOverlap ;
ICRVCOMPOPOVECTOR vpCrvs ;
if ( ! CalcPocketing( pSfrPock, dPockRad, dPockRadOffs, m_Params.m_dSideStep, m_Params.m_dSideAngle,
POCKET_ZIGZAG, false, false, true, false, nullptr, vpCrvs)) {
POCKET_ZIGZAG, false, false, true, false, P_INVALID, nullptr, vpCrvs)) {
m_pMchMgr->SetLastError( 3125, "Error in SurfFinishing : CalcPocketing failed") ;
return false ;
}
@@ -1609,7 +1609,7 @@ SurfFinishing::AddOneWay( ICAvToolSurfTm* pCAvTlStm, const Frame3d& frSurf, cons
double dPockRadOffs = m_TParams.m_dDiam / 2 - m_Params.m_dSideStep - m_Params.m_dOverlap ;
ICRVCOMPOPOVECTOR vpCrvs ;
if ( ! CalcPocketing( pSfrPock, dPockRad, dPockRadOffs, m_Params.m_dSideStep, m_Params.m_dSideAngle,
POCKET_ONEWAY, false, false, true, false, nullptr, vpCrvs)) {
POCKET_ONEWAY, false, false, true, false, P_INVALID, nullptr, vpCrvs)) {
m_pMchMgr->SetLastError( 3125, "Error in SurfFinishing : CalcPocketing failed") ;
return false ;
}
@@ -1811,7 +1811,7 @@ SurfFinishing::AddSpiral( ICAvToolSurfTm* pCAvTlStm, const Frame3d& frSurf, cons
int nType = ( bInVsOut ? POCKET_SPIRALIN : POCKET_SPIRALOUT) ;
ICRVCOMPOPOVECTOR vpCrvs ;
if ( ! CalcPocketing( pSfrPock, dPockRad, dPockRadOffs, m_Params.m_dSideStep, m_Params.m_dSideAngle,
nType, false, false, true, false, nullptr, vpCrvs)) {
nType, false, false, true, false, P_INVALID, nullptr, vpCrvs)) {
m_pMchMgr->SetLastError( 3125, "Error in SurfFinishing : CalcPocketing failed") ;
return false ;
}
+7 -5
View File
@@ -1757,6 +1757,9 @@ SurfRoughing::AddPocket( const INTINTVECTOR& vPocket, const Vector3d& vtTool, co
bool bInvert = m_Params.m_bInvert ;
// numero di Step corrente
int nCurrStep = 0 ;
/* punto finale di riferimento per il percorso attuale ( serve per trovare il punto iniziale
del percorso successivo) */
Point3d ptEndLastPath = P_INVALID ;
// ciclo sulle regioni
bool bStart = true ;
@@ -1773,7 +1776,7 @@ SurfRoughing::AddPocket( const INTINTVECTOR& vPocket, const Vector3d& vtTool, co
const ISurfFlatRegion* pSfrL = GetSurfFlatRegion( m_pGeomDB->GetGeoObj( vId.second)) ;
if ( pSfrL == nullptr)
return false ;
pSfrLimit.Set( pSfrL->Clone()) ;
pSfrLimit.Set( CloneSurfFlatRegion( pSfrL)) ;
}
// se il tipo è SPIRAL_OUT e sto gestendo uno step intermedio, lo lavoro come SPIRAL_IN
if ( nSubType == SURFROU_SUB_SPIRALOUT && bIsSubStep) {
@@ -1790,7 +1793,7 @@ SurfRoughing::AddPocket( const INTINTVECTOR& vPocket, const Vector3d& vtTool, co
ICRVCOMPOPOVECTOR vpCrvs ; // percorso di svuotatura
// calcolo i percorsi di Pocketing
if ( ! CalcPocketing( pSfrPock, m_TParams.m_dDiam / 2, 0., m_Params.m_dSideStep, m_Params.m_dSideAngle,
nSubType, true, bInvert, false, true, pSfrLimit, vpCrvs)) {
nSubType, true, bInvert, false, true, ptEndLastPath, pSfrLimit, vpCrvs)) {
if ( bIsSubStep) {
string sWarn = "Warning in SurfRoughing : CalcPocketing failed with substep (" + ToString( pSfrPock->GetTempParam( 0), 1) + ")" ;
m_pMchMgr->SetWarning( 3055, sWarn) ;
@@ -1980,8 +1983,7 @@ SurfRoughing::AddPocket( const INTINTVECTOR& vPocket, const Vector3d& vtTool, co
// se ultima entità
if ( i == nMaxInd) {
// dati fine entità
Point3d ptEnd ;
pCurve->GetEndPoint( ptEnd) ;
pCurve->GetEndPoint( ptEndLastPath) ;
Vector3d vtEnd ;
pCurve->GetEndDir( vtEnd) ;
// determino elevazione su uscita
@@ -1989,7 +1991,7 @@ SurfRoughing::AddPocket( const INTINTVECTOR& vPocket, const Vector3d& vtTool, co
// aggiungo uscita
Point3d ptP1 ;
SetFeed( GetEndFeed()) ;
if ( ! AddLeadOut( ptEnd, vtEnd, vtTool,
if ( ! AddLeadOut( ptEndLastPath, vtEnd, vtTool,
( ( nSubType == SURFROU_SUB_SPIRALIN || nSubType == SURFROU_SUB_SPIRALOUT)) ? Get( pRCrv) : nullptr,
bSplitArcs, false, ptP1, dEndElev)) {
m_pMchMgr->SetLastError( 3014, "Error in SurfRoughing : LeadOut not computable") ;