Files
databeamnew/StrategyLibs/SPLITCUT.lua

59 lines
2.2 KiB
Lua

-- SPLITCUT.lua by Egalware s.r.l. 2024/04/02
-- Libreria di supporto a strategie con funzioni comune a strategie diverse.
-- Tabella per definizione modulo
local SPLITCUT = {}
-- Include
require( 'EgtBase')
-- Carico i dati globali
local FeatureLib = require( 'FeatureLib')
local BeamLib = require( 'BeamLib')
-- strategie di base
local BladeToWaste = require('BLADETOWASTE')
EgtOutLog( ' SPLITCUT started', 1)
-----------------------------------------------------------------------------------
---------------------- FUNZIONI DI SPLIT ------------------------------------------
-----------------------------------------------------------------------------------
function SPLITCUT.GetMachining( Proc, Part, ParametersFromStrategy)
local Machining = { sTypeMachining = 'None'}
local Result = {}
-- sTypeMachining = Blade\ ChainSawHorizontal\ ChainSawSideSingle\ ChainSawSideDouble\ ChainSawPlusBlade\ Mill\ None
-- se forza utilizzo motosega
if ParametersFromStrategy.bForceChainSaw then
-- ChainSawHorizontal (motosega)
-- ChainSawSideSingle (motosega)
-- ChainSawSideDouble (motosega)
else
-- Blade
Machining, Result = BladeToWaste.Make( Proc, Part, ParametersFromStrategy)
-- se taglio non riuscito, si riprova con il riduci percorso forzato (collisione possibile in separazione pezzi alti)
if ( not Machining) or ( #Machining == 0) then
local NewParametersFromStrategy = BeamLib.TableCopyDeep( ParametersFromStrategy)
NewParametersFromStrategy.bReduceBladePath = true
Machining, Result = BladeToWaste.Make( Proc, Part, NewParametersFromStrategy)
end
if Machining and ( #Machining > 0) then
Machining.sTypeMachining = 'Blade'
end
-- TODO : casi con motosega da completare
-- ChainSawPlusBlade (motosega più lama orizzontale)
-- Mill (svuotatura)
end
-- se non ho trovato neanche una lavorazione completa, non posso separare
if Machining.sTypeMachining == 'None' then
Result = FeatureLib.GetStrategyResultNotApplicable( 'Split not possible')
end
return Machining, Result
end
-------------------------------------------------------------------------------------------------------------
return SPLITCUT