CAMAuto :
- gestione offset in X tenendo conto dei tagli obliqui.
This commit is contained in:
@@ -205,7 +205,7 @@ function WinExec.AddApplyResultToGlobalList( nErr, idCut, sMsg)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- *** Inserimento delle lavorazioni nelle travi ***
|
||||
-- *** Inserimento delle lavorazioni nei pezzi ***
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
local function CollectFeatures( vProc, Part, nIndexPart)
|
||||
@@ -488,7 +488,7 @@ local function UpdateRawPosition( PARTS)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function CheckAndMovePawPart( nIdRawToMove, vtMove)
|
||||
local function CheckAndMoveRawPart( nIdRawToMove, vtMove)
|
||||
EgtMoveRawPart( nIdRawToMove, vtMove)
|
||||
end
|
||||
|
||||
@@ -506,7 +506,7 @@ function WinExec.ProcessFeatures( PARTS)
|
||||
|
||||
-- si recuperano tutte le feature di tutti i pezzi in una lista unica
|
||||
for nPart = 1, #PARTS do
|
||||
-- recupero le feature di lavorazione della trave
|
||||
-- recupero le feature di lavorazione dei pezzi
|
||||
vProc = CollectFeatures( vProc, PARTS[nPart], nPart)
|
||||
|
||||
-- recupero informazioni ausiliarie feature e dipendenze tra feature dello stesso pezzo
|
||||
@@ -525,6 +525,11 @@ function WinExec.ProcessFeatures( PARTS)
|
||||
|
||||
-- ordina le lavorazioni
|
||||
OrderMachining( MACHININGS)
|
||||
|
||||
local maxOffsetX = {}
|
||||
for i = 1, #PARTS do
|
||||
maxOffsetX[i] = 99 - PARTS[i].OffsetPartToRaw.X
|
||||
end
|
||||
|
||||
for i = 1, #MACHININGS do
|
||||
if MACHININGS[i].AuxiliaryData.nPhase == 1 then
|
||||
@@ -532,7 +537,7 @@ function WinExec.ProcessFeatures( PARTS)
|
||||
local bIsApplyOk, sErr, b3MachEncumbrance = MachiningLib.AddOperation( MACHININGS[i]) -- TODO ingombro lavorazione mi restituisce dati sbagliati. C'è un riferimento?
|
||||
-- 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 = b3MachEncumbrance:getMax():getX() - PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMin():getX() + 5
|
||||
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase1.dOffsetX = min( b3MachEncumbrance:getMax():getX() - PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMin():getX() + 5, maxOffsetX[MACHININGS[i].Proc.nIndexPart])
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -545,7 +550,7 @@ function WinExec.ProcessFeatures( PARTS)
|
||||
-- TODO controllare calcolo ingombro
|
||||
local vtMove = Vector3d( - PARTS[i].DispOffsets.Phase1.dOffsetX, 0, 0)
|
||||
if vtMove ~= V_NULL() then
|
||||
CheckAndMovePawPart( PARTS[i].idRaw, vtMove)
|
||||
CheckAndMoveRawPart( PARTS[i].idRaw, vtMove)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -558,7 +563,7 @@ function WinExec.ProcessFeatures( PARTS)
|
||||
local bIsApplyOk, sErr, b3MachEncumbrance = MachiningLib.AddOperation( MACHININGS[i]) -- TODO ingombro lavorazione mi restituisce dati sbagliati. C'è un riferimento?
|
||||
-- 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 = PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMax():getX() - b3MachEncumbrance:getMin():getX() + 5
|
||||
PARTS[MACHININGS[i].Proc.nIndexPart].DispOffsets.Phase2.dOffsetX = min( PARTS[MACHININGS[i].Proc.nIndexPart].b3Part:getMax():getX() - b3MachEncumbrance:getMin():getX() + 5, 94)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -567,7 +572,7 @@ function WinExec.ProcessFeatures( PARTS)
|
||||
-- TODO controllare calcolo ingombro
|
||||
local vtMove = Vector3d( PARTS[i].DispOffsets.Phase2.dOffsetX, 0, 0)
|
||||
if vtMove ~= V_NULL() then
|
||||
CheckAndMovePawPart( PARTS[i].idRaw, vtMove)
|
||||
CheckAndMoveRawPart( PARTS[i].idRaw, vtMove)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user