diff --git a/AutoNester.cpp b/AutoNester.cpp index a7b26ae..56af780 100644 --- a/AutoNester.cpp +++ b/AutoNester.cpp @@ -198,7 +198,7 @@ AutoNester::SetInterpartGap( double dGap) //---------------------------------------------------------------------------- bool -AutoNester::Compute( int nMaxTime) +AutoNester::Compute( bool bMinimizeOnXvsY, int nMaxTime) { if ( m_pOrder == nullptr) return false ; @@ -210,6 +210,8 @@ AutoNester::Compute( int nMaxTime) for ( auto Iter = m_IdSheetPtr.begin() ; Iter != m_IdSheetPtr.end() ; ++ Iter) CNS_SetDefectGap( Iter->second, m_dInterpartGap) ; } + // per evitare pezzi posti inutilmente di sghembo su ultimo pannello + CNS_SetObjective( m_pOrder, ( bMinimizeOnXvsY ? CNS_IntelligentMinimizeX : CNS_IntelligentMinimizeY)) ; // recupero i codici di sblocco del nesting string sKeyId, sKeySign ; SplitFirst( GetENsKey2(), "-", sKeyId, sKeySign) ; diff --git a/AutoNester.h b/AutoNester.h index 3d79296..e5fdb69 100644 --- a/AutoNester.h +++ b/AutoNester.h @@ -32,7 +32,7 @@ class AutoNester : public IAutoNester bool AddPart( int nPartId, const PolyArc& Outline, bool bCanFlip, bool bCanRotate, double dRotStep, int nPriority, int nCount) override ; bool AddToolOutlineToPart( int nPartId, const PolyArc& ToolOutline) override ; bool SetInterpartGap( double dGap) override ; - bool Compute( int nMaxTime) override ; + bool Compute( bool bMinimizeOnXvsY, int nMaxTime) override ; bool CancelComputation( void) override ; bool GetComputationStatus( int& nStatus) override ; bool GetResults( double& dTotFillRatio, ANIVECT& vANI) override ;