EgtMachKernel :

- in svuotature gestione SpiralIn e SpiralOut ottimizzate per cerchi
- in svuotatura aggiunti attacchi zigzag e elica e uscita Glide
- in contornatura miglioramenti vari.
This commit is contained in:
Dario Sassi
2017-02-20 18:28:57 +00:00
parent 11df3f63f6
commit 2d0ea787fa
17 changed files with 825 additions and 401 deletions
+11 -19
View File
@@ -315,7 +315,7 @@ GenMachining::SetGeometry( const SELVECTOR& vIds)
// test sull'entità
int nSubs ;
if ( ! VerifyGeometry( Id, nSubs, nType)) {
string sOut = "Entity " + ToString( Id) + " skipped by Milling" ;
string sOut = "Entity " + ToString( Id) + " skipped by GenMachining" ;
LOG_INFO( GetEMkLogger(), sOut.c_str()) ;
continue ;
}
@@ -356,7 +356,7 @@ GenMachining::Preview( bool bRecalc)
// aggiorno dati geometrici dell'utensile
if ( ! UpdateToolData()) {
LOG_INFO( GetEMkLogger(), "Error in Milling : UpdateToolData failed") ;
LOG_INFO( GetEMkLogger(), "Error in GenMachining : UpdateToolData failed") ;
return false ;
}
@@ -419,13 +419,15 @@ GenMachining::Apply( bool bRecalc)
// aggiorno dati geometrici dell'utensile
if ( ! UpdateToolData()) {
LOG_INFO( GetEMkLogger(), "Error in Milling : UpdateToolData failed") ;
LOG_INFO( GetEMkLogger(), "Error in GenMachining : UpdateToolData failed") ;
return false ;
}
// se necessario, eseguo concatenamento ed inserisco i percorsi sotto la geometria ausiliaria
if ( bChain && ! Chain( nAuxId))
if ( bChain && ! Chain( nAuxId)) {
LOG_INFO( GetEMkLogger(), "Error in GenMachining : Chaining failed") ;
return false ;
}
// recupero gruppo per geometria di lavorazione (Cutter Location)
int nClId = m_pGeomDB->GetFirstNameInGroup( m_nOwnerId, MCH_CL) ;
@@ -824,7 +826,7 @@ GenMachining::Chain( int nGrpDestId)
vpCrvs.emplace_back( GetCurve( Id)) ;
// ne verifico la validità
if ( IsNull( vpCrvs.back())) {
string sOut = "Entity " + ToString( Id) + " skipped by Milling" ;
string sOut = "Entity " + ToString( Id) + " skipped by GenMachining" ;
LOG_INFO( GetEMkLogger(), sOut.c_str()) ;
vpCrvs.back().Reset() ;
}
@@ -1020,17 +1022,7 @@ GenMachining::ProcessPath( int nPathId, int nPvId, int nClId)
}
// verifiche sull'ampiezza dell'angolo al centro degli eventuali archi
const double MAX_ANG_CEN = 150 + EPS_ANG_SMALL ;
int nMaxInd = pCompo->GetCurveCount() - 1 ;
for ( int i = 0 ; i <= nMaxInd ; ++ i) {
// se arco con angolo al centro oltre il limite, lo divido a metà
const ICurveArc* pArc = GetCurveArc( pCompo->GetCurve( i)) ;
if ( pArc != nullptr && abs( pArc->GetAngCenter()) > MAX_ANG_CEN) {
pCompo->AddJoint( i + 0.5) ;
++ i ;
++ nMaxInd ;
}
}
VerifyArcs( pCompo) ;
// calcolo il versore fresa
Vector3d vtTool = Z_AX ;
@@ -1152,7 +1144,7 @@ GenMachining::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d&
dElev = dCurrElev ;
}
else {
LOG_INFO( GetEMkLogger(), "Error in Milling : Entity GetElevation") ;
LOG_INFO( GetEMkLogger(), "Error in GenMachining : Entity GetElevation") ;
return false ;
}
// da una parte
@@ -1162,7 +1154,7 @@ GenMachining::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d&
dElev = dCurrElev ;
}
else {
LOG_INFO( GetEMkLogger(), "Error in Milling : Entity GetElevation") ;
LOG_INFO( GetEMkLogger(), "Error in GenMachining : Entity GetElevation") ;
return false ;
}
// dall'altra parte
@@ -1172,7 +1164,7 @@ GenMachining::CalcPathElevation( const ICurveComposite* pCompo, const Vector3d&
dElev = dCurrElev ;
}
else {
LOG_INFO( GetEMkLogger(), "Error in Milling : Entity GetElevation") ;
LOG_INFO( GetEMkLogger(), "Error in GenMachining : Entity GetElevation") ;
return false ;
}
}