EgtMachKernel 2.4l3 :

- modifiche a fesature per spostare punto di attacco su percorsi chiusi (sovrapposizione > 0.001 e allungamento attacco diventa spostamento inizio).
This commit is contained in:
DarioS
2022-12-21 09:44:49 +01:00
parent 992249f687
commit 3ef50b6a90
2 changed files with 21 additions and 10 deletions
BIN
View File
Binary file not shown.
+21 -10
View File
@@ -1648,6 +1648,19 @@ Milling::ProcessPath( int nPathId, int nPvId, int nClId)
}
}
// eventuale spostamento inizio per percorso chiuso con sovrapposizione
if ( pCompo->IsClosed() && m_Params.m_dOverlap > EPS_SMALL && abs( m_Params.m_dStartAddLen) > EPS_SMALL) {
double dPos = -m_Params.m_dStartAddLen ;
if ( dPos < 0) {
double dLen ;
pCompo->GetLength( dLen) ;
dPos += dLen ;
}
double dPar ;
if ( pCompo->GetParamAtLength( dPos, dPar))
pCompo->ChangeStartPoint( dPar) ;
}
// se utensile non centrato, eseguo correzione raggio utensile ed eventuale offset
double dOffs = 0.5 * m_TParams.m_dDiam + GetOffsR() ;
if ( m_Params.m_nWorkSide != MILL_WS_CENTER && abs( dOffs) > EPS_SMALL) {
@@ -1662,16 +1675,14 @@ Milling::ProcessPath( int nPathId, int nPvId, int nClId)
// eventuale sovrapposizione per percorso chiuso
m_dAddedOverlap = 0 ;
if ( pCompo->IsClosed()) {
if ( m_Params.m_dOverlap > EPS_SMALL) {
double dParS, dParE ;
if ( pCompo->GetParamAtLength( 0.0, dParS) &&
pCompo->GetParamAtLength( m_Params.m_dOverlap, dParE)) {
PtrOwner<ICurve> pCrv( pCompo->CopyParamRange( dParS, dParE)) ;
if ( ! IsNull( pCrv)) {
pCompo->AddCurve( Release( pCrv)) ;
m_dAddedOverlap = m_Params.m_dOverlap ;
}
if ( pCompo->IsClosed() && m_Params.m_dOverlap > EPS_SMALL) {
double dParS, dParE ;
if ( pCompo->GetParamAtLength( 0.0, dParS) &&
pCompo->GetParamAtLength( m_Params.m_dOverlap, dParE)) {
PtrOwner<ICurve> pCrv( pCompo->CopyParamRange( dParS, dParE)) ;
if ( ! IsNull( pCrv)) {
pCompo->AddCurve( Release( pCrv)) ;
m_dAddedOverlap = m_Params.m_dOverlap ;
}
}
}