diff --git a/LuaLibs/ProcessDtMortise.lua b/LuaLibs/ProcessDtMortise.lua index 837e555..d641fe4 100644 --- a/LuaLibs/ProcessDtMortise.lua +++ b/LuaLibs/ProcessDtMortise.lua @@ -1,7 +1,8 @@ --- ProcessDtMortise.lua by Egaltech s.r.l. 2021/04/14 +-- ProcessDtMortise.lua by Egaltech s.r.l. 2021/06/28 -- Gestione calcolo mortase a coda di rondine per Travi -- 2021/04/08 Aggiunto controllo massimo materiale lavorabile dalla fresa. -- 2021/04/08 Miglioria scelta lavorazione in presenza di testa da sotto. +-- 2021/06/28 Aggiunta gestione attacco e uscita con pocket. -- Tabella per definizione modulo local ProcessDtMortise = {} @@ -391,6 +392,17 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH) -- sistemo il lato e la direzione di lavoro EgtSetMachiningParam( MCH_MP.WORKSIDE, EgtIf( bCW, MCH_MILL_WS.LEFT, MCH_MILL_WS.RIGHT)) EgtSetMachiningParam( MCH_MP.INVERT, EgtIf( bCW, false, true)) + -- in presenza di pocket imposto dati ingresso e uscita + if bPocket then + EgtSetMachiningParam( MCH_MP.STARTPOS, 5) + EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.TANGENT) + EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI) + EgtSetMachiningParam( MCH_MP.STARTADDLEN, 5) + EgtSetMachiningParam( MCH_MP.ENDADDLEN, 0) + EgtSetMachiningParam( MCH_MP.LITANG, dToolDiam / 2) + EgtSetMachiningParam( MCH_MP.LIPERP, 5) + EgtSetMachiningParam( MCH_MP.LIELEV, 0) + end -- dichiaro non si generano sfridi per VMill local sUserNotes = 'MaxElev='.. EgtNumToString( dMaxMat - 0.1, 1) .. '; VMRS=0;' EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes) diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 555e477..3009ace 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -4562,6 +4562,13 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) local MAX_MILL_LIN = 80 -- recupero l'ingombro del grezzo di appartenenza local b3Raw = EgtGetRawPartBBox( nRawId) + -- recupero l'ingombro della trave + local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD) + if not b3Solid then + local sErr = 'Error : part box not found' + EgtOutLog( sErr) + return false, sErr + end -- in base al tipo di feature attribuisco il significato dei parametri Q AssignQIdent( Proc) -- se non forzate frese, uso la lama @@ -4593,7 +4600,8 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) end end -- se lunghezza richiede spezzatura - if Proc.Box:getDimX() > BD.LONGCUT_MAXLEN then + if ( Proc.Box:getDimX() > BD.LONGCUT_MAXLEN) or + ( Proc.Box:getDimX() > 0.8 * b3Solid:getDimX() and Proc.Box:getDimX() > BD.LONGCUT_ENDLEN) then -- una faccia if Proc.Fct == 1 then return LongCut.Make( Proc, nPhase, nRawId, nPartId) @@ -4645,13 +4653,6 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) end -- due facce elseif Proc.Fct == 2 then - -- recupero l'ingombro della trave - local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD) - if not b3Solid then - local sErr = 'Error : part box not found' - EgtOutLog( sErr) - return false, sErr - end -- se praticamente è lunga come la trave if Proc.Box:getDimX() > 0.8 * b3Solid:getDimX() then local nUseSideTool = EgtGetInfo( Proc.Id, Q_SIDE_ROUGH_TOOL, 'i') or 0 diff --git a/LuaLibs/ProcessProfCamb.lua b/LuaLibs/ProcessProfCamb.lua index e98586f..98b9166 100644 --- a/LuaLibs/ProcessProfCamb.lua +++ b/LuaLibs/ProcessProfCamb.lua @@ -1,6 +1,7 @@ --- ProcessProfCamb.lua by Egaltech s.r.l. 2021/05/03 +-- ProcessProfCamb.lua by Egaltech s.r.l. 2021/06/28 -- Gestione calcolo profilo caudato per Travi -- 2021/05/03 Aggiunta gestione smusso da sopra e sotto per macchina con testa da sotto. +-- 2021/06/28 Per macchine con testa sotto, smussi di lato con questa testa se non c'è lav.ne da sopra. -- Tabella per definizione modulo local ProcessProfCamb = {} @@ -171,9 +172,14 @@ local function VerifyCham( Proc, AuxId, nRawId, bMakeVertCham, sDephtCham, sOnly if nChamfer > 0 then sMilling = ML.FindMilling( 'Mark') if not sMilling then - local sErr = 'Error : chamfer not found in library' - EgtOutLog( sErr) - return -1, 0, sErr + if BD.DOWN_HEAD and abs( vtExtr:getZ()) < 0.1 then + sMilling = ML.FindMilling( 'Mark_H2') + end + if not sMilling then + local sErr = 'Error : chamfer not found in library' + EgtOutLog( sErr) + return -1, 0, sErr + end end if BD.DOWN_HEAD and abs( vtExtr:getZ()) > 0.9 then sMilling2 = ML.FindMilling( 'Mark_H2') diff --git a/LuaLibs/ProcessProfConcave.lua b/LuaLibs/ProcessProfConcave.lua index c512c8e..f8f5f89 100644 --- a/LuaLibs/ProcessProfConcave.lua +++ b/LuaLibs/ProcessProfConcave.lua @@ -1,6 +1,7 @@ --- ProcessProfConcave.lua by Egaltech s.r.l. 2021/05/03 +-- ProcessProfConcave.lua by Egaltech s.r.l. 2021/06/28 -- Gestione calcolo profilo concavo per Travi -- 2021/05/03 Aggiunta gestione smusso da sopra e sotto per macchina con testa da sotto. +-- 2021/06/28 Per macchine con testa sotto, smussi di lato con questa testa se non c'è lav.ne da sopra. -- Tabella per definizione modulo local ProcessProfConcave = {} @@ -162,9 +163,14 @@ local function VerifyCham( Proc, AuxId, nRawId, bMakeVertCham, sDephtCham, sOnly if nChamfer > 0 then sMilling = ML.FindMilling( 'Mark') if not sMilling then - local sErr = 'Error : chamfer not found in library' - EgtOutLog( sErr) - return -1, 0, sErr + if BD.DOWN_HEAD and abs( vtExtr:getZ()) < 0.1 then + sMilling = ML.FindMilling( 'Mark_H2') + end + if not sMilling then + local sErr = 'Error : chamfer not found in library' + EgtOutLog( sErr) + return -1, 0, sErr + end end if BD.DOWN_HEAD and abs( vtExtr:getZ()) > 0.9 then sMilling2 = ML.FindMilling( 'Mark_H2') diff --git a/LuaLibs/ProcessProfConvex.lua b/LuaLibs/ProcessProfConvex.lua index ee481f5..00492e7 100644 --- a/LuaLibs/ProcessProfConvex.lua +++ b/LuaLibs/ProcessProfConvex.lua @@ -1,6 +1,7 @@ --- ProcessProfConvex.lua by Egaltech s.r.l. 2021/05/03 +-- ProcessProfConvex.lua by Egaltech s.r.l. 2021/06/28 -- Gestione calcolo profilo convesso per Travi -- 2021/05/03 Aggiunta gestione smusso da sopra e sotto per macchina con testa da sotto. +-- 2021/06/28 Per macchine con testa sotto, smussi di lato con questa testa se non c'è lav.ne da sopra. -- Tabella per definizione modulo local ProcessProfConvex = {} @@ -162,9 +163,14 @@ local function VerifyCham( Proc, AuxId, nRawId, bMakeVertCham, sDephtCham, sOnly if nChamfer > 0 then sMilling = ML.FindMilling( 'Mark') if not sMilling then - local sErr = 'Error : chamfer not found in library' - EgtOutLog( sErr) - return -1, 0, sErr + if BD.DOWN_HEAD and abs( vtExtr:getZ()) < 0.1 then + sMilling = ML.FindMilling( 'Mark_H2') + end + if not sMilling then + local sErr = 'Error : chamfer not found in library' + EgtOutLog( sErr) + return -1, 0, sErr + end end if BD.DOWN_HEAD and abs( vtExtr:getZ()) > 0.9 then sMilling2 = ML.FindMilling( 'Mark_H2') diff --git a/LuaLibs/ProcessProfFront.lua b/LuaLibs/ProcessProfFront.lua index 8e5a6dd..156ea0a 100644 --- a/LuaLibs/ProcessProfFront.lua +++ b/LuaLibs/ProcessProfFront.lua @@ -1,6 +1,7 @@ --- ProcessProfFront.lua by Egaltech s.r.l. 2021/05/03 +-- ProcessProfFront.lua by Egaltech s.r.l. 2021/06/28 -- Gestione calcolo profilo frontale per Travi -- 2021/05/03 Aggiunta gestione smusso da sopra e sotto per macchina con testa da sotto. +-- 2021/06/28 Per macchine con testa sotto, smussi di lato con questa testa se non c'è lav.ne da sopra. -- Tabella per definizione modulo local ProcessProfFront = {} @@ -134,9 +135,14 @@ local function VerifyCham( Proc, AuxId, nRawId, bMakeVertCham, sDephtCham, sOnly if nChamfer > 0 then sMilling = ML.FindMilling( 'Mark') if not sMilling then - local sErr = 'Error : chamfer not found in library' - EgtOutLog( sErr) - return -1, 0, sErr + if BD.DOWN_HEAD and abs( vtExtr:getZ()) < 0.1 then + sMilling = ML.FindMilling( 'Mark_H2') + end + if not sMilling then + local sErr = 'Error : chamfer not found in library' + EgtOutLog( sErr) + return -1, 0, sErr + end end if BD.DOWN_HEAD and abs( vtExtr:getZ()) > 0.9 then sMilling2 = ML.FindMilling( 'Mark_H2') diff --git a/LuaLibs/ProcessProfHead.lua b/LuaLibs/ProcessProfHead.lua index 06043aa..d912947 100644 --- a/LuaLibs/ProcessProfHead.lua +++ b/LuaLibs/ProcessProfHead.lua @@ -1,6 +1,7 @@ --- ProcessProfHead.lua by Egaltech s.r.l. 2021/05/03 +-- ProcessProfHead.lua by Egaltech s.r.l. 2021/06/28 -- Gestione calcolo profilo di testa per Travi --- 2021/05/03 Aggiunta gestione smusso da sopra e sotto per macchina con testa da sotto. +-- 2021/05/03 Aggiunta gestione smusso da sopra e sotto per macchina con testa sotto. +-- 2021/06/28 Per macchine con testa sotto, smussi di lato con questa testa se non c'è lav.ne da sopra. -- Tabella per definizione modulo local ProcessProfHead = {} @@ -154,9 +155,14 @@ local function VerifyCham( Proc, AuxId, nRawId, bMakeVertCham, sDephtCham, sOnly if nChamfer > 0 then sMilling = ML.FindMilling( 'Mark') if not sMilling then - local sErr = 'Error : chamfer not found in library' - EgtOutLog( sErr) - return -1, 0, sErr + if BD.DOWN_HEAD and abs( vtExtr:getZ()) < 0.1 then + sMilling = ML.FindMilling( 'Mark_H2') + end + if not sMilling then + local sErr = 'Error : chamfer not found in library' + EgtOutLog( sErr) + return -1, 0, sErr + end end if BD.DOWN_HEAD and abs( vtExtr:getZ()) > 0.9 then sMilling2 = ML.FindMilling( 'Mark_H2') diff --git a/LuaLibs/ProcessScarfJoint.lua b/LuaLibs/ProcessScarfJoint.lua index 24e1272..e4977ee 100644 --- a/LuaLibs/ProcessScarfJoint.lua +++ b/LuaLibs/ProcessScarfJoint.lua @@ -1,5 +1,6 @@ --- ProcessScarfJoint.lua by Egaltech s.r.l. 2020/12/10 +-- ProcessScarfJoint.lua by Egaltech s.r.l. 2021/06/28 -- Gestione calcolo giunto Gerber per Travi +-- 2021/06/28 Aggiunto extra-taglio alle lamate orizzontali. -- Tabella per definizione modulo local ProcessScarfJoint = {} @@ -167,9 +168,11 @@ local function ApplyDiceCut( vFaceOrd, nGoodFace1, nGoodFace4, nAddGrpId, b3Soli end end end + -- extra taglio + local dExtraCut = EgtIf( i % 2 == 1, 0, BD.CUT_EXTRA) -- lavoro la faccia for j = 1, #vCuts[i] do - bOk, sErr = BL.MakeOneFaceBySaw( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthoO, nil, 0, BD.CUT_SIC, 0, 0, 0, nil, b3Raw) + bOk, sErr = BL.MakeOneFaceBySaw( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthoO, nil, dExtraCut, BD.CUT_SIC, 0, 0, 0, nil, b3Raw) if not bOk then return bOk, sErr end end end