EgtMachKernel :
- correzioni e migliorie a sgrossature e finiture con lame di cornici.
This commit is contained in:
+29
-4
@@ -2187,9 +2187,10 @@ SawFinishing::CalcCurvedAlongVerticalCuts( ICurve* pSect, int nUmin, int nUmax,
|
||||
Vector3d vtMove = ( dY - m_TParams.m_dThick / 2) * Z_AX ;
|
||||
OffsetCurve OffsCrv ;
|
||||
OffsCrv.Make( pGuide, dOffs, ICurve::OFF_FILLET) ;
|
||||
PtrOwner<ICurve> pCut( OffsCrv.GetLongerCurve()) ;
|
||||
if ( IsNull( pCut))
|
||||
PtrOwner<ICurveComposite> pCut( CreateCurveComposite()) ;
|
||||
if ( IsNull( pCut) || ! pCut->AddCurve( OffsCrv.GetLongerCurve()))
|
||||
return false ;
|
||||
VerifyArcs( pCut) ;
|
||||
pCut->SimpleOffset( SAWRF_OFFS, ICurve::OFF_FORCE_OPEN) ;
|
||||
pCut->Translate( vtMove) ;
|
||||
Point3d ptStart ; pCut->GetStartPoint( ptStart) ;
|
||||
@@ -2261,9 +2262,10 @@ SawFinishing::CalcCurvedAlongStdCuts( ICurve* pSect, double dUmin, double dUmax,
|
||||
Vector3d vtMove = ( ptP.y - m_TParams.m_dThick / 2) * Z_AX ;
|
||||
OffsetCurve OffsCrv ;
|
||||
OffsCrv.Make( pGuide, dOffs, ICurve::OFF_FILLET) ;
|
||||
PtrOwner<ICurve> pCut( OffsCrv.GetLongerCurve()) ;
|
||||
if ( IsNull( pCut))
|
||||
PtrOwner<ICurveComposite> pCut( CreateCurveComposite()) ;
|
||||
if ( IsNull( pCut) || ! pCut->AddCurve( OffsCrv.GetLongerCurve()))
|
||||
return false ;
|
||||
VerifyArcs( pCut) ;
|
||||
pCut->SimpleOffset( SAWRF_OFFS, ICurve::OFF_FORCE_OPEN) ;
|
||||
pCut->Translate( vtMove) ;
|
||||
Point3d ptStart ; pCut->GetStartPoint( ptStart) ;
|
||||
@@ -2364,6 +2366,29 @@ SawFinishing::CalcCurvedAlongZigZagCut( const ICurve* pCut, const Vector3d& vtTo
|
||||
if ( ! AddApproach( ptNewStart, vtOrtStart, dSafeZ, dOrtElevStart, dAppr))
|
||||
return false ;
|
||||
}
|
||||
else if ( m_Params.m_nLeadLinkType == SAWFIN_LL_STD) {
|
||||
// recupero ultimo punto inserito
|
||||
Point3d ptCurr ;
|
||||
GetCurrPos( ptCurr) ;
|
||||
// differenza tra corrente e nuovo lungo direzione ortogonale
|
||||
double dOrtStartDiff = ( ptNewStart - ptCurr) * vtOrtStart ;
|
||||
// se punto corrente più fuori, aggiungo punto fuori allo stesso modo sul nuovo
|
||||
if ( dOrtStartDiff < - 10 * EPS_SMALL) {
|
||||
Point3d ptOut = ptNewStart + ( - dOrtStartDiff * vtOrtStart) ;
|
||||
SetFlag( 0) ;
|
||||
SetFeed( ( bVert ? GetVertFeed() : GetFeed())) ;
|
||||
if ( ! SameAsCurrPos( ptOut) && AddLinearMove( ptOut) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
// se altrimenti più dentro, aggiungo punto fuori allo stesso modo sul corrente
|
||||
else if ( dOrtStartDiff > 10 * EPS_SMALL) {
|
||||
Point3d ptOut = ptCurr + ( dOrtStartDiff * vtOrtStart) ;
|
||||
SetFlag( 0) ;
|
||||
SetFeed( ( bVert ? GetVertFeed() : GetFeed())) ;
|
||||
if ( ! SameAsCurrPos( ptOut) && AddLinearMove( ptOut) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
// 2 -> movimento in affondo al punto iniziale
|
||||
SetFlag( 0) ;
|
||||
// con attacco centrato sono sul materiale e devo usare feed di testa
|
||||
|
||||
+3
-2
@@ -1295,9 +1295,10 @@ SawRoughing::CalculateCurvedToolPath( int nAuxId, int nClId)
|
||||
// creo la curva di taglio
|
||||
OffsetCurve OffsCrv ;
|
||||
OffsCrv.Make( pGuide, dX, ICurve::OFF_FILLET) ;
|
||||
PtrOwner<ICurve> pCut( OffsCrv.GetLongerCurve()) ;
|
||||
if ( IsNull( pCut))
|
||||
PtrOwner<ICurveComposite> pCut( CreateCurveComposite()) ;
|
||||
if ( IsNull( pCut) || ! pCut->AddCurve( OffsCrv.GetLongerCurve()))
|
||||
return false ;
|
||||
VerifyArcs( pCut) ;
|
||||
Vector3d vtMove = ( dY - m_TParams.m_dThick / 2) * Z_AX ;
|
||||
pCut->Translate( vtMove) ;
|
||||
// ne determino la massima elevazione
|
||||
|
||||
Reference in New Issue
Block a user