diff --git a/LuaLibs/CalcToolPath.lua b/LuaLibs/CalcToolPath.lua index b932be4..cd090b0 100644 --- a/LuaLibs/CalcToolPath.lua +++ b/LuaLibs/CalcToolPath.lua @@ -174,7 +174,7 @@ local function AddRetractionOnLastCrv( nTpathGrpId, LayerParams) end -------------------------------------------------------------------- -local function CalcSettiLink( ptS, ptE, nCurr, nLoopGrp) +local function CalcSettiLink( ptS, ptE, nCurr, nLoopGrp, bForceLink) local nCrvId = EgtGetFirstInGroup( nLoopGrp) -- recupero la curva di offset su cui calcolare link @@ -227,6 +227,14 @@ local function CalcSettiLink( ptS, ptE, nCurr, nLoopGrp) nCrvId = EgtGetNext( nCrvId) end + + -- se non ho trovato un collegamento sul bordo, creo una linea tra ptS e ptE + if bForceLink then + local nLinkId = EgtCurveCompoFromPoints( EgtGetParent( nCurr), {ptS, ptE}) + EgtSetInfo( nLinkId, KEY_TYPE, TYPE.SETTO) + EgtRelocateGlob( nLinkId, nCurr, GDB_IN.AFTER) + end + end -------------------------------------------------------------------- @@ -272,7 +280,7 @@ local function AddSettiLeadIn( nCrv, nLoopsGrp, LayerParams) end nCrvOffs = EgtGetNext( nCrvOffs) - end + end end -------------------------------------------------------------------- @@ -433,9 +441,9 @@ local function CalcSettiToolPath( nCrvGrp, nTpathGrpId, LayerParams, dCorrZ) for j = 1, #tabSetti[i] - 1 do local ptS = EgtEP( tabSetti[i][j]) local ptE = EgtSP( tabSetti[i][j + 1]) - CalcSettiLink( ptS, ptE, tabSetti[i][j], nLoopGrp) + CalcSettiLink( ptS, ptE, tabSetti[i][j], nLoopGrp, true) -- creo link fittizio per eliminare tratto corrispondente sulla curva di offset - local nFakeLink = CalcSettiLink( EgtSP( tabSetti[i][j]), EgtEP(tabSetti[i][j + 1]), tabSetti[i][j], nLoopGrp) + local nFakeLink = CalcSettiLink( EgtSP( tabSetti[i][j]), EgtEP( tabSetti[i][j + 1]), tabSetti[i][j], nLoopGrp, false) EgtErase( nFakeLink) end end @@ -445,7 +453,7 @@ local function CalcSettiToolPath( nCrvGrp, nTpathGrpId, LayerParams, dCorrZ) local nCnt = #tabSetti[i] local ptS = EgtEP( tabSetti[i][nCnt]) local ptE = EgtSP( tabSetti[i + 1][1]) - CalcSettiLink( ptS, ptE, tabSetti[i][nCnt], nLoopGrp) + CalcSettiLink( ptS, ptE, tabSetti[i][nCnt], nLoopGrp, false) end end