EgtExecutor 1.6l6 :

- gestione nesting di pezzi con tagli completi (con "baffi") o ridotti.
This commit is contained in:
Dario Sassi
2016-01-07 15:01:05 +00:00
parent f7dd86494c
commit d5773eb170
7 changed files with 363 additions and 24 deletions
+7 -6
View File
@@ -14,6 +14,7 @@
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "EXE.h"
#include "EXE_Const.h"
#include "EXE_Macro.h"
#include "/EgtDev/Include/EXeExecutor.h"
#include "/EgtDev/Include/EXeConst.h"
@@ -340,7 +341,7 @@ VerifyAndAdjustFlatParts( void)
// creo un nuovo layer in cui mettere tutti i concatenati
int nRegId = ExeCreateGroup( pPar->GetId(), Frame3d(), RTY_GLOB) ;
bOk = bOk && nRegId != GDB_ID_NULL ;
bOk = bOk && pGeomDB->SetName( nRegId, "Region") ;
bOk = bOk && pGeomDB->SetName( nRegId, NST_PART_REG) ;
// concateno tutte le curve
INTVECTOR vIds ;
vIds.push_back( GDB_ID_SEL) ;
@@ -362,7 +363,7 @@ VerifyAndAdjustFlatParts( void)
else if ( ! pCrv->IsClosed()) {
// salvo Id di origine nell'elenco curve aperte da controllare
INTVECTOR vTmpIds ;
if ( pGeomDB->GetInfo( pEnt->GetId(), "ORIG", vTmpIds))
if ( pGeomDB->GetInfo( pEnt->GetId(), CRV_ORIG, vTmpIds))
vOpenIds.insert( vOpenIds.end(), vTmpIds.begin(), vTmpIds.end()) ;
bEok = pEnt->EraseAndGoToNext() ;
}
@@ -372,7 +373,7 @@ VerifyAndAdjustFlatParts( void)
bEok = pEnt->GoToNext() ;
// salvo stringa con elenco Id di origine
string sInfo ;
if ( pGeomDB->GetInfo( nEntId, "ORIG", sInfo)) {
if ( pGeomDB->GetInfo( nEntId, CRV_ORIG, sInfo)) {
vClosedIds.emplace_back( sInfo) ;
pCrv->SetTempProp( int( vClosedIds.size())) ;
}
@@ -429,7 +430,7 @@ VerifyAndAdjustFlatParts( void)
if ( ! IsNull( pOutCrv)) {
int nOutLoopId = ExeCreateGroup( pPar->GetId(), Frame3d(), RTY_GLOB) ;
bOk = bOk && nOutLoopId != GDB_ID_NULL ;
bOk = bOk && pGeomDB->SetName( nOutLoopId, "OutLoop") ;
bOk = bOk && pGeomDB->SetName( nOutLoopId, NST_EXT_LAYER) ;
pGeomDB->AddGeoObj( GDB_ID_NULL, nOutLoopId, Release( pOutCrv)) ;
}
// creo nuovi layer in cui copiare gli eventuali contorni interni
@@ -439,7 +440,7 @@ VerifyAndAdjustFlatParts( void)
while ( ! IsNull( pInCrv)) {
int nInLoopId = ExeCreateGroup( pPar->GetId(), Frame3d(), RTY_GLOB) ;
bOk = bOk && nInLoopId != GDB_ID_NULL ;
bOk = bOk && pGeomDB->SetName( nInLoopId, "InLoop") ;
bOk = bOk && pGeomDB->SetName( nInLoopId, NST_IN_LAYER) ;
pGeomDB->AddGeoObj( GDB_ID_NULL, nInLoopId, Release( pInCrv)) ;
++ i ;
pInCrv.Set( bOk ? pSfr->GetLoop( 0, i) : nullptr) ;
@@ -450,7 +451,7 @@ VerifyAndAdjustFlatParts( void)
for ( int i = 0 ; bOk && i < int( vOpenIds.size()) ; ++i) {
int nOnPathId = ExeCreateGroup( pPar->GetId(), Frame3d(), RTY_GLOB) ;
bOk = bOk && nOnPathId != GDB_ID_NULL ;
bOk = bOk && pGeomDB->SetName( nOnPathId, "OnPath") ;
bOk = bOk && pGeomDB->SetName( nOnPathId, NST_ON_LAYER) ;
pGeomDB->RelocateGlob( vOpenIds[i], nOnPathId) ;
}
}