diff --git a/EXE_GdbModifyCurve.cpp b/EXE_GdbModifyCurve.cpp index f483892..c55b35b 100644 --- a/EXE_GdbModifyCurve.cpp +++ b/EXE_GdbModifyCurve.cpp @@ -1413,7 +1413,7 @@ ExeExplodeCurveCompo( int nId, int* pnCount) //------------------------------------------------------------------------------- bool -ExeMergeCurvesInCurveCompo( int nId, double dLinTol) +ExeMergeCurvesInCurveCompo( int nId, double dLinTol, bool bStartEnd) { IGeomDB* pGeomDB = GetCurrGeomDB() ; VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL) @@ -1422,12 +1422,13 @@ ExeMergeCurvesInCurveCompo( int nId, double dLinTol) bool bOk = ( pCompo != nullptr) ; // lancio il merge delle curve componenti const double ANG_TOL_STD_DEG = 15 ; - bOk = bOk && pCompo->MergeCurves( dLinTol, ANG_TOL_STD_DEG) ; + bOk = bOk && pCompo->MergeCurves( dLinTol, ANG_TOL_STD_DEG, bStartEnd) ; ExeSetModified() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { string sLua = "EgtMergeCurvesInCurveCompo(" + ToString( nId) + "," + - ToString( dLinTol) + ")" + + ToString( dLinTol) + "," + + ( bStartEnd ? "true" : "false") + ")" + " -- Ok=" + ToString( bOk) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } diff --git a/EXE_MachMgr.cpp b/EXE_MachMgr.cpp index 17dbfd3..57358be 100644 --- a/EXE_MachMgr.cpp +++ b/EXE_MachMgr.cpp @@ -1898,7 +1898,7 @@ ExeGetCalcTipFromPositions( double dX, double dY, double dZ, double dAngA, doubl GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // calcolo il tip utensile dagli assi macchina - return pGseCtx->m_pMachMgr->GetCalcTipFromPositions( dX, dY, dZ, dAngA, dAngB, bBottom, ptTip) ; + return pGseCtx->m_pMachMgr->GetCalcTipFromPositions( dX, dY, dZ, dAngA, dAngB, false, bBottom, ptTip) ; } //----------------------------------------------------------------------------- diff --git a/EXE_NstCreateFlatParts.cpp b/EXE_NstCreateFlatParts.cpp index 49111f1..a903f6c 100644 --- a/EXE_NstCreateFlatParts.cpp +++ b/EXE_NstCreateFlatParts.cpp @@ -626,7 +626,7 @@ ExeAdjustFlatPartLayer( int nLayerId) // Se curva composita if ( pGeomDB->GetGeoType( nId) == CRV_COMPO) { // Compatto - bOk = ExeMergeCurvesInCurveCompo( nId, 10 * EPS_SMALL) ; + bOk = ExeMergeCurvesInCurveCompo( nId, 10 * EPS_SMALL, true) ; // Esplodo in curve semplici bOk = bOk && ExeExplodeCurveCompo( nId, nullptr) ; } diff --git a/EgtExecutor.rc b/EgtExecutor.rc index c1544b7..c64b90e 100644 Binary files a/EgtExecutor.rc and b/EgtExecutor.rc differ diff --git a/LUA_GdbModifyCurve.cpp b/LUA_GdbModifyCurve.cpp index f0d2b3d..de5bc87 100644 --- a/LUA_GdbModifyCurve.cpp +++ b/LUA_GdbModifyCurve.cpp @@ -623,14 +623,18 @@ LuaExplodeCurveCompo( lua_State* L) static int LuaMergeCurvesInCurveCompo( lua_State* L) { - // 1 o 2 parametri : Id [, dLinTol] + // 1 o 2 o 3 parametri : Id [, dLinTol] [, bStartEnd] int nId ; LuaCheckParam( L, 1, nId) double dLinTol = 0.01 ; - LuaGetParam( L, 2, dLinTol) ; + bool bStartEnd = true ; + if ( LuaGetParam( L, 2, dLinTol)) + LuaGetParam( L, 3, bStartEnd) ; + else + LuaGetParam( L, 2, bStartEnd) ; LuaClearStack( L) ; // esplosione della curva composita - bool bOk = ExeMergeCurvesInCurveCompo( nId, dLinTol) ; + bool bOk = ExeMergeCurvesInCurveCompo( nId, dLinTol, bStartEnd) ; LuaSetParam( L, bOk) ; return 1 ; }