- update versione minima Cam5
- in BeamExec corretto il calcolo di nCycles: ora il calcolo dell'inversione si fa solo se richiesto - in BeamExec rimossa cancellazione entità temporanee: si mette tutto nel gruppo idTemp; adeguate le funzioni che creano geometrie temporanee - in MachiningLib Check2DBladeCollision migliorata e ultimata: da testare
This commit is contained in:
+4
-16
@@ -1205,7 +1205,8 @@ function BeamExec.GetProcessings( PARTS, bCalcBestPieceUnloadPosition)
|
||||
if not PARTS[nPart].id and PARTS[nPart].b3Raw:getDimX() < BeamData.dMinRaw then break end
|
||||
local vProcRot = {}
|
||||
|
||||
local nCycles = EgtIf( bCalcBestPieceUnloadPosition, 2, 1) -- se è prerotazione, oltre al ciclo normale, si devono verificare anche invertiti
|
||||
-- se è prerotazione, oltre al ciclo normale, si devono verificare anche invertiti
|
||||
local nCycles = EgtIf( bCalcBestPieceUnloadPosition and PARTS[nPart].GeneralParameters.GEN_sPiecesLoadingPosition ~= 'BTL_POSITION', 2, 1)
|
||||
-- per ogni inversione
|
||||
for nInvertIndex = 1, nCycles do
|
||||
-- per ogni rotazione
|
||||
@@ -1529,7 +1530,7 @@ end
|
||||
function BeamExec.GetCombinationMatrix( PARTS, bCalcBestPieceUnloadPosition)
|
||||
-- ricerca strategia di lavorazione per ogni pezzo e applicazione lavorazioni
|
||||
for nPart = 1, #PARTS do
|
||||
local nCycles = EgtIf( bCalcBestPieceUnloadPosition, 2, 1)
|
||||
local nCycles = EgtIf( bCalcBestPieceUnloadPosition and PARTS[nPart].GeneralParameters.GEN_sPiecesLoadingPosition ~= 'BTL_POSITION', 2, 1)
|
||||
-- per ogni inversione
|
||||
for nInvertIndex = 1, nCycles do
|
||||
-- calcolo della migliore strategia per ogni rotazione del pezzo
|
||||
@@ -1703,21 +1704,8 @@ function BeamExec.ProcessMachinings( PARTS)
|
||||
bAllStrategiesApplied = false
|
||||
MACHININGS, bAllStrategiesApplied = CalculateMachinings( vProcHeadTail, PARTS[nPart], MatrixResult.nInitialPosition)
|
||||
|
||||
-- cancellazione entità create ma non usate
|
||||
-- TODO funzione?
|
||||
local idAddGroup = BeamLib.GetAddGroup( PARTS[nPart].id)
|
||||
local idCurrentEntity = EgtGetFirstInGroup( idAddGroup or GDB_ID.NULL)
|
||||
while idCurrentEntity do
|
||||
if EgtGetLevel( idCurrentEntity) == GDB_LV.TEMP then
|
||||
local idEntityToDelete = idCurrentEntity
|
||||
idCurrentEntity = EgtGetNext( idCurrentEntity)
|
||||
EgtErase( idEntityToDelete)
|
||||
else
|
||||
idCurrentEntity = EgtGetNext( idCurrentEntity)
|
||||
end
|
||||
end
|
||||
|
||||
-- ordinamento lavorazioni
|
||||
-- TODO sostituire con sorting Egt
|
||||
-- TODO completare ordinamento. Mancano le dipendenze.
|
||||
-- TODO la FinalizeSorting andrebbe rimossa e usato un sorting che non viola le dipendenze
|
||||
MACHININGS = MachiningLib.PrepareMachiningsForSorting( PARTS[nPart])
|
||||
|
||||
Reference in New Issue
Block a user