diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index aabade7..0ccaaec 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -1,4 +1,4 @@ --- ProcessLapJoint.lua by Egaltech s.r.l. 2022/03/18 +-- ProcessLapJoint.lua by Egaltech s.r.l. 2022/03/20 -- Gestione calcolo mezzo-legno per Travi -- 2019/10/08 Agg. gestione OpenPocket. -- 2021/01/24 Con sega a catena ora sempre impostato asse A. @@ -37,6 +37,7 @@ -- 2022/02/07 Corretto caso con due facce che non è un LongDoubleCut ma che veniva identificato come tale. -- 2022/02/14 Introdotto uso svuotature ZigZag ottimizzate. -- 2022/03/18 Corretta lavorazione BH. +-- 2022/03/20 Quando si usa lama uso Q10 come massima elevazione. -- Tabella per definizione modulo local ProcessLapJoint = {} @@ -70,6 +71,7 @@ local Q_ONLY_CONTOUR = '' -- i local Q_SIDE_ROUGH_TOOL = '' -- i local Q_ANTISPLINT_TYPE = '' -- i local Q_BLADE_ON_ALONG_FACE = '' -- i +local Q_MAX_ELEVATION = '' -- d -- variabile smussi local bMadeChamfer @@ -109,6 +111,7 @@ local function AssignQIdent( Proc) Q_ONLY_CONTOUR = '' Q_SIDE_ROUGH_TOOL = '' Q_ANTISPLINT_TYPE = '' + Q_MAX_ELEVATION = 'Q10' if ( Proc.Grp == 3 or Proc.Grp == 4) and Proc.Prc == 16 then Q_FORCE_BLADE = 'Q01' -- i @@ -257,26 +260,26 @@ local function GetChainSawBlockedAxis( nInd) return BD.GetChainSawBlockedAxis( nInd) else if nInd == 1 then - return EgtIf( BD.C_SIMM, 'A=90', 'A=0') + return EgtIf( BD.C_SIMM, 'A=90', 'A=90') else - return EgtIf( BD.C_SIMM, 'A=0', 'A=90') + return EgtIf( BD.C_SIMM, 'A=0', 'A=0') end end end --------------------------------------------------------------------- -local function GetChainSawInitAngs( vtN, vtO) +local function GetChainSawInitAngs( vtN, vtO, nInd) if BD.GetChainSawInitAngs then - return BD.GetChainSawInitAngs( vtN, vtO) + return BD.GetChainSawInitAngs( vtN, vtO, nInd) else if BD.C_SIMM then - if vtN:getY() > 0 then - return 'C=180' - else - return 'C=-180' - end + return EgtIf( vtN:getY() > 0, 'C=180', 'C=-180') else - return '' + if nInd ==1 then + return '' + else + return EgtIf( vtN:getY() > 0, 'C=180', 'C=-180') + end end end end @@ -2822,6 +2825,8 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, else bOrthoFaces = bOrthoFacesMaster end + -- eventuale massima elevazione imposta dall'utente + local dMaxElev = EgtGetInfo( Proc.Id, Q_MAX_ELEVATION, 'd') if bOrthoFaces then -- ottengo le dimensioni del tunnel @@ -2918,7 +2923,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, dSawMaxDepth = BD.MAX_DIM_HTCUT_HBEAM end -- Se entrambi gli estremi sono aperti e possibile, lavoro con la lama - if bOpenStart and bOpenEnd and bForceUseBlade and dElev < dSawMaxDepth + 10 * GEO.EPS_SMALL then + if bOpenStart and bOpenEnd and bForceUseBlade and ( dMaxElev or dElev) < dSawMaxDepth + 10 * GEO.EPS_SMALL then -- recupero altri dati dell'utensile local dSawDiam = 400 local dSawThick = 4 @@ -3037,7 +3042,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, end -- imposto angolo 3° asse rot e eventuale angolo suggerito per inizio EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, GetChainSawBlockedAxis( 1)) - EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, rfFac:getVersZ())) + EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, rfFac:getVersZ(), 1)) -- imposto offset radiale local dOffs = ( i - 1) * dStep EgtSetMachiningParam( MCH_MP.OFFSR, dOffs) @@ -3060,7 +3065,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, end -- impostazione alternativa angolo 3° asse rot EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, GetChainSawBlockedAxis( 2)) - EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, rfFac:getVersZ())) + EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, rfFac:getVersZ(), 2)) if not EgtApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError() EgtSetOperationMode( nMchFId, false) @@ -3111,7 +3116,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, EgtSetMachiningParam( MCH_MP.FACEUSE, nFaceUse) -- imposto angolo 3° asse rot EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, GetChainSawBlockedAxis( 1)) - EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho)) + EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho, 1)) -- imposto offset radiale local dOffs = ( i - 1) * dStep EgtSetMachiningParam( MCH_MP.OFFSR, dOffs) @@ -3149,8 +3154,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, EgtOutLog( sWarn) end end - -- recupero massima elevazione da Q10 - local dMaxElev = EgtGetInfo( Proc.Id, 'Q10', 'd') + -- recupero massima elevazione da utente if dMaxElev and dMaxElev > 10 then local sNotes = 'MaxElev=' .. EgtNumToString( dMaxElev, 1) .. ';' EgtSetMachiningParam( MCH_MP.USERNOTES, sNotes) @@ -3164,7 +3168,7 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd, end -- impostazione alternativa angolo 3° asse rot EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, GetChainSawBlockedAxis( 2)) - EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho)) + EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho, 2)) if not EgtApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError() EgtSetOperationMode( nMchFId, false) @@ -4481,7 +4485,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa local vtN = EgtSurfTmFacetNormVersor( Proc.Id, nLundIdFace, GDB_ID.ROOT) -- imposto angolo 3° asse rot EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, GetChainSawBlockedAxis( 1)) - EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho)) + EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho, 1)) -- imposto offset radiale local dOffs = ( i - 1) * dStep EgtSetMachiningParam( MCH_MP.OFFSR, dOffs) @@ -4502,7 +4506,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa return false, sErr end EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, GetChainSawBlockedAxis( 2)) - EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho)) + EgtSetMachiningParam( MCH_MP.INITANGS, GetChainSawInitAngs( vtN, vtOrtho, 2)) if not EgtApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError() EgtSetOperationMode( nMchFId, false)