EgtMachKernel :

- migliorie varie in pocketing.
This commit is contained in:
Riccardo Elitropi
2023-06-05 08:25:31 +02:00
parent 37f4e0982f
commit fee74d47f8
2 changed files with 7 additions and 12 deletions
+6 -11
View File
@@ -700,12 +700,8 @@ Pocketing::Apply( bool bRecalc, bool bPostApply)
// lavoro ogni singola catena
bool bOk = true ;
//int nPathId = m_pGeomDB->GetFirstGroupInGroup( nAuxId) ;
//while ( nPathId != GDB_ID_NULL) {
if ( ! ProcessPath( nAuxId, GDB_ID_NULL, nClId)) //nPathId
if ( ! ProcessPath( nAuxId, GDB_ID_NULL, nClId))
bOk = false ;
// nPathId = m_pGeomDB->GetNextGroup( nPathId) ;
//}
if ( ! bOk)
return false ;
@@ -1140,7 +1136,7 @@ Pocketing::GetCurves( SelData Id, ICURVEPLIST& lstPC)
pCurve->ToGlob( frGlob) ;
// salvo come TmpProp0 -> l'id della curva
pCurve->SetTempProp( Id.nId, 0) ;
// salvo come TmpProp0 -> -1 non ho lati adiacenti
// salvo come TmpProp0 -> -1 ( non ho lati adiacenti)
pCurve->SetTempProp( 1, -1) ;
// la restituisco
lstPC.emplace_back( Release( pCurve)) ;
@@ -1162,7 +1158,7 @@ Pocketing::GetCurves( SelData Id, ICURVEPLIST& lstPC)
for ( auto pCrv : lstPC)
pCrv->ToGlob( frGlob) ;
// salvo come TmpProp0 -> l'id della superificie ( per ogni loop )
// salvo come TmpProp1 -> -1, non ho lati adiacenti
// salvo come TmpProp1 -> -1 ( non ho lati adiacenti)
for ( auto pCrv : lstPC) {
pCrv->SetTempProp( Id.nId, 0) ;
pCrv->SetTempProp( -1, 1) ;
@@ -1233,7 +1229,6 @@ Pocketing::GetCurves( SelData Id, ICURVEPLIST& lstPC)
pSrfpCompo->AddExtLoop( pCrvCompo->Clone()) ;
if ( IsNull( pSrfpCompo) || pSrfpCompo->GetChunkCount() == 0)
return false ;
//m_pGeomDB->AddGeoObj(GDB_ID_NULL, GDB_ID_ROOT, pCrvCompo->Clone()) ;
bool bIspCompoMod = false ;
INTVECTOR vBannedId{ -1, nFacet} ;
@@ -1246,10 +1241,10 @@ Pocketing::GetCurves( SelData Id, ICURVEPLIST& lstPC)
if ( pCrvCompo->GetCurveTempProp( j, nProp, 1) && nProp != -1 //-> se la curva j ha una faccia adiacente...
&& find( vBannedId.begin(), vBannedId.end(), nProp) == vBannedId.end() //-> ...non già considerata da altre curve...
&& GetSurfByAdj( pSurf, vBannedId, nProp)) { //-> ...e riesco a ricavare tutte le facce del bordo
// 4) creo una regione piana con tutte le facce proiettate contenute
// 4) creo una regione piana con tutte le facce proiettate contenute
PtrOwner<ISurfFlatRegion> pSfrProj( CreateSurfFlatRegion()) ;
if ( ! IsNull( pSfrProj) && ProjectEdgesOnSelFace( pSrfpCompo, pSurf, vBannedId, nFacet, pSfrProj)) {
// sto modificando le singole superifici, quindi superificie del bordo esterno e superificie delle isole !!!
// sto modificando le singole superifici, quindi superificie del bordo esterno e superificie delle isole
if ( i == 0) {
if ( ! pSrfpCompo->Subtract( *pSfrProj))
return false ;
@@ -1257,7 +1252,7 @@ Pocketing::GetCurves( SelData Id, ICURVEPLIST& lstPC)
else {
if ( ! pSrfpCompo->Add( *pSfrProj))
return false ;
}
}
bIspCompoMod = true ;
}
}
+1 -1
View File
@@ -311,7 +311,7 @@ class Pocketing : public Machining
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 = true ; // flag per controllo della Feed
double m_dDiam_Prec = 75.0 ; // diametro utensile per precedente svuotatura
double m_dDiam_Prec = 0.0 ; // diametro utensile per precedente svuotatura
double m_dOffsetR_Prec = 0.0 ; // Offset radiale della svuotatura precedente
} ;