EgtMachKernel 1.6v8 :

- gestita posizione Tavola Home diversa da posizione 0 Macchina in disposizione
- in generazione si assegna il nome macchina
- nel confronto attrezzaggio utensili si tiene conto della posizione in ToolChanger
- se angoli indeterminati ma si determinano con asse ausiliario, li rendo tali direttamente
- aggiunto comando per ricaricare DB utensili e lavorazioni
- aggiunta funzione GetPhaseLastOperation
- ora inserimento lavorazione avviene alla fine della fase corrente
- migliorato split di grezzo con lavorazioni
- in taglio di lama e fresatura irrobustito allungamenti/accorciamenti percorso.
This commit is contained in:
Dario Sassi
2016-10-24 08:27:58 +00:00
parent 1a862d9758
commit d4e4ea3871
17 changed files with 229 additions and 108 deletions
+24 -22
View File
@@ -951,31 +951,33 @@ Milling::ProcessPath( int nPathId, int nPvId, int nClId)
}
}
// eventuali allungamenti per percorso aperto
// eventuali allungamenti/accorciamenti per percorso aperto
bool bOverlapOn = false ;
if ( ! pCompo->IsClosed()) {
// eventuale allungamento/accorciamento dell'inizio
if ( abs( m_Params.m_dStartAddLen) > EPS_SMALL) {
if ( m_Params.m_dStartAddLen > 0) {
if ( ! pCompo->ExtendStartByLen( m_Params.m_dStartAddLen))
return false ;
}
else {
if ( ! pCompo->TrimStartAtLen( - m_Params.m_dStartAddLen))
return false ;
}
// verifico che il percorso sia abbastanza lungo
double dLen ; pCompo->GetLength( dLen) ;
if ( dLen + m_Params.m_dStartAddLen + m_Params.m_dEndAddLen < 10 * EPS_SMALL) {
LOG_INFO( GetEMkLogger(), "Warning in Milling : skipped Path too small") ;
return true ;
}
// eventuale allungamento/accorciamento della fine
if ( abs( m_Params.m_dEndAddLen) > EPS_SMALL) {
if ( m_Params.m_dEndAddLen > 0) {
if ( ! pCompo->ExtendEndByLen( m_Params.m_dEndAddLen))
return false ;
}
else {
double dLen ;
if ( ! pCompo->GetLength( dLen) || ! pCompo->TrimEndAtLen( dLen + m_Params.m_dEndAddLen))
return false ;
}
// eventuali allungamenti
if ( m_Params.m_dStartAddLen > EPS_SMALL) {
if ( ! pCompo->ExtendStartByLen( m_Params.m_dStartAddLen))
return false ;
}
if ( m_Params.m_dEndAddLen > EPS_SMALL) {
if ( ! pCompo->ExtendEndByLen( m_Params.m_dEndAddLen))
return false ;
}
// eventuale accorciamenti (da fare dopo tutti gli allungamenti)
if ( m_Params.m_dStartAddLen < - EPS_SMALL) {
if ( ! pCompo->TrimStartAtLen( - m_Params.m_dStartAddLen))
return false ;
}
if ( m_Params.m_dEndAddLen < - EPS_SMALL) {
double dLen ;
if ( ! pCompo->GetLength( dLen) || ! pCompo->TrimEndAtLen( dLen + m_Params.m_dEndAddLen))
return false ;
}
}
// eventuale sovrapposizione per percorso chiuso