diff --git a/EXE_Const.h b/EXE_Const.h index e768dd4..6e26fdb 100644 --- a/EXE_Const.h +++ b/EXE_Const.h @@ -34,6 +34,7 @@ const std::string NST_EXT_ORIG_LAYER = "OutLoop.orig" ; const std::string NST_IN_LAYER = "InLoop" ; const std::string NST_ON_LAYER = "OnPath" ; const std::string NST_KEY_SIDEANG = "SideAng" ; +const std::string NST_KEY_OFFSET = "Offset" ; // Per Sheets (Nesting) const std::string NST_SHEET_OUTREG = "SheetOut" ; diff --git a/EXE_NstCreateFlatParts.cpp b/EXE_NstCreateFlatParts.cpp index 2f1368c..849b465 100644 --- a/EXE_NstCreateFlatParts.cpp +++ b/EXE_NstCreateFlatParts.cpp @@ -878,11 +878,13 @@ ExeCalcFlatPartDownRegion( int nPartId, double dH) // determino ed eseguo offset double dSideAng ; if ( pGeomDB->GetInfo( nCrvId, NST_KEY_SIDEANG, dSideAng) && abs( dSideAng) > EPS_ANG_SMALL) { - double dOffset = dH * tan( dSideAng * DEGTORAD) ; + double dOffset = 0 ; + pGeomDB->GetInfo( nCrvId, NST_KEY_OFFSET, dOffset) ; + double dCalcOffset = dH * tan( dSideAng * DEGTORAD) + dOffset ; ICurve* pCrv = GetCurve( pGeomDB->GetGeoObj( nNewId)) ; if ( pCrv == nullptr) return false ; - pCrv->SimpleOffset( dOffset) ; + pCrv->SimpleOffset( dCalcOffset) ; } // passo alla successiva nCrvId = pGeomDB->GetNext( nCrvId) ;