diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index 7311158..4157e25 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -406,6 +406,14 @@ local function OrderFeatures( vProc, b3Raw) if B1.Head ~= B2.Head then return B1.Head end + -- se entrambi di testa e primo è scasso o mortasa va messo dopo + if B1.Head and B2.Head and ( LapJoint.Identify( B1) or Mortise.Identify( B1) or DtMortise.Identify( B1)) then + return false + end + -- se entrambi di testa e secondo è scasso o mortasa va messo dopo + if B1.Head and B2.Head and ( LapJoint.Identify( B2) or Mortise.Identify( B2) or DtMortise.Identify( B2)) then + return true + end -- se primo è feature di coda e l'altro è separazione o non è feature di coda if B1.Tail and ( Split.Identify( B2) or not B2.Tail) then return false @@ -414,12 +422,12 @@ local function OrderFeatures( vProc, b3Raw) if B2.Tail and ( Split.Identify( B1) or not B1.Tail) then return true end - -- se primo è mortasa di coda, sempre dopo tutto - if B1.Tail and ( Mortise.Identify( B1) or DtMortise.Identify( B1)) then + -- se primo è scasso o mortasa di coda, sempre dopo tutto + if B1.Tail and ( LapJoint.Identify( B1) or Mortise.Identify( B1) or DtMortise.Identify( B1)) then return false end - -- se secondo è mortasa di coda, sempre dopo tutto - if B2.Tail and ( Mortise.Identify( B2) or DtMortise.Identify( B2)) then + -- se secondo è scasso o mortasa di coda, sempre dopo tutto + if B2.Tail and ( LapJoint.Identify( B2) or Mortise.Identify( B2) or DtMortise.Identify( B2)) then return true end -- se primo è taglio longitudinale completo o altra lav. lunga, dopo tutte le altre feature non di coda