EgtMachKernel 2.1i3 :

- in Pocketing con SpiralIn se ci sono lati aperti si cerca l'ingresso da fuori.
This commit is contained in:
Dario Sassi
2019-09-30 09:23:39 +00:00
parent 55ad5774fc
commit 43267f53e4
3 changed files with 15 additions and 3 deletions
BIN
View File
Binary file not shown.
+14 -2
View File
@@ -1621,7 +1621,7 @@ Pocketing::ProcessPath( int nPathId, int nPvId, int nClId)
return false ;
break ;
case POCKET_SUB_SPIRALIN :
if ( ! AddSpiralIn( pCompo, vtTool, vtExtr, dDepth, dElev, dOkStep, bSplitArcs))
if ( ! AddSpiralIn( pCompo, vtTool, vtExtr, dDepth, dElev, dOkStep, bSplitArcs, bMidOpen, ptMidOpen))
return false ;
break ;
case POCKET_SUB_SPIRALOUT :
@@ -2594,7 +2594,7 @@ Pocketing::AddOneWay( const ICurveComposite* pCompo, const Vector3d& vtTool, con
//----------------------------------------------------------------------------
bool
Pocketing::AddSpiralIn( const ICurveComposite* pCompo, const Vector3d& vtTool, const Vector3d& vtExtr,
double dDepth, double dElev, double dOkStep, bool bSplitArcs)
double dDepth, double dElev, double dOkStep, bool bSplitArcs, bool bMidOpen, const Point3d& ptMidOpen)
{
// recupero distanze di sicurezza
double dSafeZ = m_pMchMgr->GetCurrMachiningsMgr()->GetSafeZ() ;
@@ -2620,6 +2620,18 @@ Pocketing::AddSpiralIn( const ICurveComposite* pCompo, const Vector3d& vtTool, c
if ( pMCrv->GetCurveCount() == 0)
break ;
++ nReg ;
// se prima regione e gestione lato aperto
if ( nReg == 1 && bMidOpen) {
// premetto alla spirale la partenza da fuori
Point3d ptStart ; pMCrv->GetStartPoint( ptStart) ;
Vector3d vtMove = ptMidOpen - ptStart ; vtMove.Normalize() ;
Point3d ptOut = ptMidOpen + vtMove * ( 0.5 * m_TParams.m_dDiam + dSafeZ) ;
pMCrv->AddLine( ptOut, false) ;
// aggiungo al ritorno l'uscita
Point3d ptEnd ; pRCrv->GetEndPoint( ptEnd) ;
pRCrv->AddLine( ptOut, true) ;
}
// determino numero e affondamento degli step
int nStep = 1 ;
+1 -1
View File
@@ -80,7 +80,7 @@ class Pocketing : public Machining
bool AddOneWay( const ICurveComposite* pCompo, const Vector3d& vtTool, const Vector3d& vtExtr,
double dDepth, double dElev, double dOkStep, bool bSplitArcs) ;
bool AddSpiralIn( const ICurveComposite* pCompo, const Vector3d& vtTool, const Vector3d& vtExtr,
double dDepth, double dElev, double dOkStep, bool bSplitArcs) ;
double dDepth, double dElev, double dOkStep, bool bSplitArcs, bool bMidOpen, const Point3d& ptMidOpen) ;
bool AddSpiralOut( const ICurveComposite* pCompo, const Vector3d& vtTool, const Vector3d& vtExtr,
double dDepth, double dElev, double dOkStep, bool bSplitArcs) ;
bool CalcSpiral( const ICurveComposite* pCompo, int nReg, bool bSplitArcs,