- modifica offset in x per profilo di testa obliquo
This commit is contained in:
Annamaria Sassi
2026-09-01 11:06:48 +02:00
parent eea9f61b43
commit ffc119d461
+16 -6
View File
@@ -543,17 +543,22 @@ function WinExec.ProcessFeatures( PARTS)
local maxOffsetX = {}
for i = 1, #PARTS do
--maxOffsetX[i] = 99 - PARTS[i].RawOffset.dOverMatLeft - PARTS[i].OffsetPartToRaw.X
maxOffsetX[i] = 80 - PARTS[i].RawOffset.dOverMatLeft
end
for i = 1, #MACHININGS do
if MACHININGS[i].AuxiliaryData.nPhase == 1 then
-- aggiunge effettivamente la lavorazione e restituisce gli ingombri
local bIsApplyOk, sErr, b3MachEncumbrance = MachiningLib.AddOperation( MACHININGS[i]) -- TODO ingombro lavorazione mi restituisce dati sbagliati. C'è un riferimento?
local bIsApplyOk, sErr, b3MachEncumbrance = MachiningLib.AddOperation( MACHININGS[i])
-- se feature di testa, sposto testa in base a ingombro lavorazione
if MACHININGS[i].Proc.bHeadProfile and b3MachEncumbrance then
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase1.dOffsetX = max( b3MachEncumbrance:getMax():getX() - PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMin():getX() + 5, maxOffsetX[MACHININGS[i].Proc.nIndexPart])
-- profilo di testa obliquo
if b3MachEncumbrance:getMax():getX() ~= b3MachEncumbrance:getMin():getX() and b3MachEncumbrance:getMax():getX() > b3MachEncumbrance:getMin():getX() then
local diff = b3MachEncumbrance:getMax():getX() - b3MachEncumbrance:getMin():getX()
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase1.dOffsetX = max( b3MachEncumbrance:getMax():getX() - PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMin():getX() + 5, maxOffsetX[MACHININGS[i].Proc.nIndexPart]) + diff
else
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase1.dOffsetX = max( b3MachEncumbrance:getMax():getX() - PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMin():getX() + 5, maxOffsetX[MACHININGS[i].Proc.nIndexPart])
end
end
end
end
@@ -571,7 +576,6 @@ function WinExec.ProcessFeatures( PARTS)
end
for i = 1, #PARTS do
--maxOffsetX[i] = 99 - PARTS[i].RawOffset.dOverMatRight - PARTS[i].OffsetPartToRaw.X
maxOffsetX[i] = 80 - PARTS[i].RawOffset.dOverMatRight
end
-- scrivo lavorazioni seconda fase
@@ -580,10 +584,16 @@ function WinExec.ProcessFeatures( PARTS)
for i = 1, #MACHININGS do
if MACHININGS[i].AuxiliaryData.nPhase == 2 then
-- aggiunge effettivamente la lavorazione
local bIsApplyOk, sErr, b3MachEncumbrance = MachiningLib.AddOperation( MACHININGS[i]) -- TODO ingombro lavorazione mi restituisce dati sbagliati. C'è un riferimento?
local bIsApplyOk, sErr, b3MachEncumbrance = MachiningLib.AddOperation( MACHININGS[i])
-- se feature di testa, sposto testa in base a ingombro lavorazione
if MACHININGS[i].Proc.bHeadProfile and b3MachEncumbrance then
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase2.dOffsetX = max( PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMax():getX() - b3MachEncumbrance:getMin():getX() + 5, maxOffsetX[MACHININGS[i].Proc.nIndexPart])
-- profilo di testa obliquo
if b3MachEncumbrance:getMin():getX() ~= b3MachEncumbrance:getMax():getX() then
local diff = b3MachEncumbrance:getMax():getX() - b3MachEncumbrance:getMin():getX()
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase2.dOffsetX = max( PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMax():getX() - b3MachEncumbrance:getMin():getX() + 5, maxOffsetX[MACHININGS[i].Proc.nIndexPart]) + diff
else
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase2.dOffsetX = max( PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMax():getX() - b3MachEncumbrance:getMin():getX() + 5, maxOffsetX[MACHININGS[i].Proc.nIndexPart])
end
end
end
end