8875fc4c68
- in SPLITCUT, HEADCUT. TAILCUT se taglio non riuscito si prova con il riduci percorso
59 lines
2.2 KiB
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
|