diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index e91303a..a61c4c9 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -364,6 +364,14 @@ 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 + return false + end + -- se secondo è mortasa di coda, sempre dopo tutto + if B2.Tail and ( 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 if abs( B1.Box:getDimX() - b3Raw:getDimX()) < 0.2 * b3Raw:getDimX() then -- se anche l'altra è lunga, faccio prima quello a Zmax diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 2c04745..b906794 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -1,4 +1,4 @@ --- ProcessCut.lua by Egaltech s.r.l. 2019/10/17 +-- ProcessCut.lua by Egaltech s.r.l. 2019/11/12 -- Gestione calcolo singoli tagli di lama per Travi -- Tabella per definizione modulo @@ -142,7 +142,7 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) local dVzLimDwnUp = dNzLimDwnUp if j ~= 1 then vtNewOrthoO = -vtOrthoO - dVzLimDwnUp = -0.72 + dVzLimDwnUp = -0.707 end local bOk, sErr = BL.MakeOneFaceBySaw( vCuts[i][j], 0, sCutting, dSawDiam, vtNewOrthoO, dVzLimDwnUp, 0.1, BD.CUT_SIC, 0, 0, nil, b3Raw) if not bOk then diff --git a/LuaLibs/ProcessDtMortise.lua b/LuaLibs/ProcessDtMortise.lua index 8fb91ea..dfec515 100644 --- a/LuaLibs/ProcessDtMortise.lua +++ b/LuaLibs/ProcessDtMortise.lua @@ -1,4 +1,4 @@ --- ProcessMortise.lua by Egaltech s.r.l. 2019/09/25 +-- ProcessMortise.lua by Egaltech s.r.l. 2019/11/12 -- Gestione calcolo mortase a coda di rondice per Travi -- Tabella per definizione modulo @@ -23,14 +23,13 @@ end --------------------------------------------------------------------- -- Classificazione della feature function ProcessDtMortise.Classify( Proc) - -- recupero i dati della faccia di fondo - local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT) - -- verifico sia una superficie - if not vtN then - return false - end + -- recupero i dati della curva di contorno della faccia di fondo + local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i') + if not AuxId then return false end + AuxId = AuxId + Proc.Id + local vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB) -- verifico se la mortasa è lavorabile solo da sotto - local bDown = ( vtN:getZ() < - 0.1) + local bDown = ( vtExtr:getZ() < - 0.1) return true, bDown end @@ -48,10 +47,8 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId) -- recupero i dati della curva e del top local dDepth = abs( EgtCurveThickness( AuxId)) local vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB) - local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT) - EgtOutLog( 'ptC=' .. tostring( ptC) ..' vtN=' .. tostring( vtN), 3) -- verifico che la mortasa non sia orientata verso il basso (-5 deg) - if vtN:getZ() < - 0.1 then + if vtExtr:getZ() < - 0.1 then local sErr = 'Error on process ' .. tostring( Proc.Id) .. ' DtMortise from bottom impossible' EgtOutLog( sErr) return false, sErr diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index a503a71..eba4031 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -1,4 +1,4 @@ --- ProcessLapJoint.lua by Egaltech s.r.l. 2019/11/10 +-- ProcessLapJoint.lua by Egaltech s.r.l. 2019/11/12 -- Gestione calcolo mezzo-legno per Travi -- 2019/10/08 Agg. gestione OpenPocket. @@ -559,7 +559,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, rfFac, -- ingombro del grezzo local b3Raw = EgtGetRawPartBBox( nRawId) -- Eseguo i tagli - local nStep = ceil( ( dV - 0.5) / dSawThick) + local nStep = ceil( dV / dSawThick) local dStep = 0 if nStep > 1 then dStep = ( dV - dSawThick) / ( nStep - 1)