From 3867f7b7ed0779f9892dc9caa6dafc8ee9803253 Mon Sep 17 00:00:00 2001 From: "daniele.nicoli" Date: Fri, 27 Mar 2026 13:04:52 +0100 Subject: [PATCH] Sistemati anche casi di prima lavorazione con motosega, ora in tutti i casi la motosega che si muove da Home spezza i movimenti B e C dai lineari. --- Common_FAST.NUM.mlpe | 7 +++++-- Common_FAST.NUM_PLUS.mlpe | 7 +++++-- Common_FAST.TPA.mlpe | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Common_FAST.NUM.mlpe b/Common_FAST.NUM.mlpe index 597789d..2f7f754 100644 --- a/Common_FAST.NUM.mlpe +++ b/Common_FAST.NUM.mlpe @@ -662,9 +662,12 @@ function OnRapid() EmtOutput( '( *** ' .. sOut .. ' *** )') end + local bSplitMove = false + bSplitMove = bSplitMove or EMT.HEAD == 'H3' + bSplitMove = bSplitMove or ( not EMT.LOAD and ( bZmax and EMT.TTOTLEN > 200)) + bSplitMove = bSplitMove or ( not EMT.LOAD and ( EMT.ST > BeamHeightForFixRot or ( EMT.HEAD == 'H1' and EMT.TTOTLEN > 350) or bGoToHome)) -- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione - if not EMT.LOAD and ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and - ( EMT.ST > BeamHeightForFixRot or ( EMT.HEAD == 'H1' and EMT.TTOTLEN > 350) or bGoToHome) and EMT.FLAG2 == 1 then + if bSplitMove and EMT.FLAG2 == 1 then local sEEPreMove = ' EE' .. EgtIf( bZmax, '3', '4') local sOutPreMove if EMT.HEAD == 'H3' or bGoToHome then diff --git a/Common_FAST.NUM_PLUS.mlpe b/Common_FAST.NUM_PLUS.mlpe index 16b3c1f..2f2bf56 100644 --- a/Common_FAST.NUM_PLUS.mlpe +++ b/Common_FAST.NUM_PLUS.mlpe @@ -734,9 +734,12 @@ function OnRapid() EmtOutput( '( *** ' .. sOut .. ' *** )') end + local bSplitMove = false + bSplitMove = bSplitMove or EMT.HEAD == 'H3' + bSplitMove = bSplitMove or ( not EMT.LOAD and ( bZmax and EMT.TTOTLEN > 200)) + bSplitMove = bSplitMove or ( not EMT.LOAD and ( EMT.ST > BeamHeightForFixRot or ( EMT.HEAD == 'H1' and EMT.TTOTLEN > 350) or bGoToHome)) -- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione - if not EMT.LOAD and ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and - ( EMT.ST > BeamHeightForFixRot or ( EMT.HEAD == 'H1' and EMT.TTOTLEN > 350) or bGoToHome) and EMT.FLAG2 == 1 then + if bSplitMove and EMT.FLAG2 == 1 then local sEEPreMove = ' EE' .. EgtIf( bZmax, '3', '4') local sOutPreMove if EMT.HEAD == 'H3' or bGoToHome then diff --git a/Common_FAST.TPA.mlpe b/Common_FAST.TPA.mlpe index 485c8c9..de0dbdb 100644 --- a/Common_FAST.TPA.mlpe +++ b/Common_FAST.TPA.mlpe @@ -689,9 +689,12 @@ function OnRapid() EmtOutput( '( * ' .. sOut .. ' * )') end + local bSplitMove = false + bSplitMove = bSplitMove or EMT.HEAD == 'H3' + bSplitMove = bSplitMove or ( not EMT.LOAD and ( bZmax and EMT.TTOTLEN > 200)) + bSplitMove = bSplitMove or ( not EMT.LOAD and ( EMT.ST > BeamHeightForFixRot or ( EMT.HEAD == 'H1' and EMT.TTOTLEN > 350) or bGoToHome)) -- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione - if not EMT.LOAD and ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and - ( EMT.ST > BeamHeightForFixRot or ( EMT.HEAD == 'H1' and EMT.TTOTLEN > 350) or bGoToHome) and EMT.FLAG2 == 1 then + if bSplitMove and EMT.FLAG2 == 1 then local sOutPreMove if EMT.HEAD == 'H3' or bGoToHome then if EMT.PREVHEAD == 'H3' then