diff --git a/LuaLibs/ProcessDrill.lua b/LuaLibs/ProcessDrill.lua index 183e834..3b131c7 100644 --- a/LuaLibs/ProcessDrill.lua +++ b/LuaLibs/ProcessDrill.lua @@ -8,6 +8,7 @@ -- 2022/03/29 DS Corretta assegnazione fori molto inclinati fianco/coda a coda. -- 2022/04/21 DS Corretto riconoscimento fori di coda. -- 2022/06/22 Nel riconoscimento fori di coda si utilizza ora il reale sovramateriale di coda (dOvmTail) invece di BD.OVM_MID. +-- 2022/07/01 Aggiunta gestione allungamento percorsi fori in caso di materiale già rimosso da lavorazioni precedenti -- Tabella per definizione modulo local ProcessDrill = {} @@ -393,39 +394,28 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId) EgtSetMachiningParam( MCH_MP.SCC, nSCC) -- aggiusto l'affondamento local sMyWarn - - -- test - local dMaxElev = dDepth - local dToolHolderExtraLength = 0 - local dSafetyExtraLength = 0 + local dMaxElev = dLen + -- se c'è un taglio precedente di testa o coda posso impostare MaxElev per allungare il percorso + -- considero solo i fori "entranti" in testa o coda if ( Proc.MachineAfterHeadCutId and vtExtr:getX() > 0) or ( Proc.MachineAfterTailCutId and vtExtr:getX() < 0) then local ptCen = EgtCP( AuxId, GDB_RT.GLOB) local bIntersectionOk, _, vDistance = EgtLineSurfTmInters( ptCen, -vtExtr, Proc.MachineAfterHeadCutId or Proc.MachineAfterTailCutId, GDB_RT.GLOB) - dHoleEndToCutDistance = vDistance[1] + dHoleToCutDistance = vDistance[1] + -- il segno della distanza data dalla funzione di intersezione mi indica dove sia la geometria del foro if bIntersectionOk then - if dHoleEndToCutDistance > 0 then - dMaxElev = dLen - dHoleEndToCutDistance + dToolHolderExtraLength + dSafetyExtraLength - elseif dHoleEndToCutDistance < 0 then - dMaxElev = dHoleEndToCutDistance + dToolHolderExtraLength + dSafetyExtraLength + if dHoleToCutDistance > 0 then + dMaxElev = dLen - dHoleToCutDistance + elseif dHoleToCutDistance < 0 then + dMaxElev = -dHoleToCutDistance end end end --- local vtMove = -vtExtr * dLen --- ptCen:move( vtMove) --- end --- local bIntersectionOk, _, vDistance = EgtLineSurfTmInters( ptCen, -vtExtr, Proc.MachineAfterHeadCutId or Proc.MachineAfterTailCutId, GDB_RT.GLOB) --- if bIntersectionOk == true then --- dMaxElev = dDepth - abs( vDistance[1]) --- end --- end - -- fine test - - if dMaxElev > dMaxDepth + 10 * GEO.EPS_SMALL then - sMyWarn = 'Warning in drill : depth (' .. EgtNumToString( dDepth, 1) .. ') bigger than max tool depth (' .. EgtNumToString( dMaxDepth, 1) .. ')' - dDepth = dMaxDepth + local dToolAddLength = dLen - dMaxElev + if dDepth - dToolAddLength > dMaxDepth + 10 * GEO.EPS_SMALL then + sMyWarn = 'Warning in drill : depth (' .. EgtNumToString( dDepth - dToolAddLength, 1) .. ') bigger than max tool depth (' .. EgtNumToString( dMaxDepth, 1) .. ')' + dDepth = dMaxDepth + dToolAddLength EgtOutLog( sMyWarn) end - EgtSetMachiningParam( MCH_MP.DEPTH, dDepth) -- Note utente con dichiarazione nessuna generazione sfridi per Vmill local sUserNotes = 'VMRS=0;'