gestiti ulteriori casi per allungamento foro

This commit is contained in:
luca.mazzoleni
2022-07-01 14:59:39 +02:00
parent d5709be6b0
commit f30a44fb63
+14 -24
View File
@@ -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;'