-- 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