EgtMachKernel :

- aggiunta gestione parametri ( Lati Aperti e Offset ottimizzati).
This commit is contained in:
Riccardo Elitropi
2024-02-02 13:00:37 +01:00
parent 7f8798a159
commit 6c8d1931f3
2 changed files with 37 additions and 10 deletions
+27 -1
View File
@@ -153,6 +153,15 @@ Pocketing::Clone( void) const
pPock->m_bAggrBottom = m_bAggrBottom ;
pPock->m_bOpenOutRaw = m_bOpenOutRaw ;
pPock->m_dOpenMinSafe = m_dOpenMinSafe ;
pPock->m_bOptOffset = m_bOptOffset ;
pPock->m_bOptOffsetCM = m_bOptOffsetCM ;
pPock->m_bAssignFeed = m_bAssignFeed ;
pPock->m_dDiam_Prec = m_dDiam_Prec ;
pPock->m_dOffsetR_Prec = m_dOffsetR_Prec ;
pPock->m_dSideStep_Prec = m_dSideStep_Prec ;
pPock->m_dLen_Prec = m_dLen_Prec ;
pPock->m_bOrderStepZ = m_bOrderStepZ ;
pPock->m_bPocketPlane = m_bPocketPlane ;
}
catch( ...) {
delete pPock ;
@@ -279,6 +288,16 @@ Pocketing::Pocketing( void)
m_bAggrBottom = false ;
m_bOpenOutRaw = false ;
m_dOpenMinSafe = 0 ;
m_bOptOffset = true ;
m_bOptOffsetCM = false ;
m_bAssignFeed = false ;
m_dDiam_Prec = 0. ;
m_dOffsetR_Prec = 0. ;
m_dOffsetR_Prec = 0. ;
m_dSideStep_Prec = 0. ;
m_dLen_Prec = 0. ;
m_bOrderStepZ = true ;
m_bPocketPlane = false ;
}
//----------------------------------------------------------------------------
@@ -2271,10 +2290,15 @@ Pocketing::ProcessPath( int nPathId, int nPvId, int nClId)
// recupero eventuale flag di lato aperto forzato fuori dal grezzo
int nOpenOutRaw ;
m_bOpenOutRaw = ( FromString( ExtractInfo( m_Params.m_sUserNotes, "OpenOutRaw="), nOpenOutRaw) && nOpenOutRaw != 0) ;
// recupero flag per minimo raggio di uscita per lato aperto
FromString( ExtractInfo( m_Params.m_sUserNotes, "OpenEdgeRad="), m_dOpenEdgeRad) ;
// recupero eventuale minima lunghezza di attacco su lato aperto
FromString( ExtractInfo( m_Params.m_sUserNotes, "OpenMinSafe="), m_dOpenMinSafe) ;
// recupero flag per ottimizzazioni Offset
int nOptOffs ;
m_bOptOffset = ( FromString( ExtractInfo( m_Params.m_sUserNotes, "OptOffs="), nOptOffs) && nOptOffs != 0) ;
// se richiesta anteprima
if ( nPvId != GDB_ID_NULL) {
// creo gruppo per geometria di lavorazione del percorso
@@ -10959,6 +10983,8 @@ Pocketing::AdjustContourWithOpenEdges( ICurveComposite* pCrvCompo, ICRVCOMPOPOVE
if ( m_Params.m_nSubType == POCKET_SUB_SPIRALIN || m_Params.m_nSubType == POCKET_SUB_ZIGZAG)
dOutEdge = max( dOutEdge, dDiam - dStep) ;
double dRad = dOutEdge + dOffR ;
if ( m_dOpenEdgeRad > EPS_SMALL)
dRad = dRad - m_dOpenEdgeRad ;
// ricavo i tratti omogenei
ICRVCOMPOPOVECTOR vpCrvs ;
+10 -9
View File
@@ -339,13 +339,14 @@ class Pocketing : public Machining
AggrBottom m_AggrBottom ; // dati eventuale aggregato da sotto
bool m_bOpenOutRaw ; // flag forzatura lati aperti sempre fuori dal grezzo
double m_dOpenMinSafe ; // minima distanza di sicurezza di attacco su lato aperto
bool m_bOptOffset = true ; // flag per ottimizzazione numero di Offset necessari
bool m_bOptOffsetCM = false ; // flag per ottimizzazione numero di Offset necessari con centroidi e medial Axis
bool m_bAssignFeed = false ; // flag per controllo della Feed
double m_dDiam_Prec = 0.0 ; // diametro utensile per precedente svuotatura
double m_dOffsetR_Prec = 0.0 ; // offset radiale della svuotatura precedente
double m_dSideStep_Prec = 0.0 ; // side Step della svuotatura precedente
double m_dLen_Prec = 0.0 ; // Lunghezza del tool precedente
bool m_bOrderStepZ = true ; // parametro per ordinare gli step Extra per Z decrescente o meno
bool m_bPocketPlane = false ; // flag per svuotare solo la rimanenza sullo Step Extra
bool m_bOptOffset ; // flag per ottimizzazione numero di Offset necessari
bool m_bOptOffsetCM ; // flag per ottimizzazione numero di Offset necessari con centroidi e medial Axis
bool m_bAssignFeed ; // flag per controllo della Feed
double m_dDiam_Prec ; // diametro utensile per precedente svuotatura
double m_dOffsetR_Prec ; // offset radiale della svuotatura precedente
double m_dSideStep_Prec ; // side Step della svuotatura precedente
double m_dLen_Prec ; // Lunghezza del tool precedente
bool m_bOrderStepZ ; // parametro per ordinare gli step Extra per Z decrescente o meno
bool m_bPocketPlane ; // flag per svuotare solo la rimanenza sullo Step Extra
double m_dOpenEdgeRad = 0 ; // raggio di rientro per i lati aperti
} ;