diff --git a/LuaLibs/BeamLib.lua b/LuaLibs/BeamLib.lua index 0c19524..cf52d70 100644 --- a/LuaLibs/BeamLib.lua +++ b/LuaLibs/BeamLib.lua @@ -883,6 +883,25 @@ function BeamLib.GetBlockedAxis( sMachining, sBlockedAxis, b3Raw, vtTool, vtOut) return '' end +--------------------------------------------------------------------- +function BeamLib.GetAuxDir( sMachining, sBlockedAxis, b3Raw, vtTool, vtOut) + -- informazioni sull'utensile della lavorazione + local nToolType, sHead + if EgtMdbSetCurrMachining( sMachining) then + local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) + if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then + nToolType = EgtTdbGetCurrToolParam( MCH_TP.TYPE) + sHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD) + end + end + -- se presente funzione specifica nella macchina, la richiamo + if BD.GetAuxDir then + return BD.GetAuxDir( sHead, nToolType, sBlockedAxis, b3Raw, vtTool, vtOut) + end + -- niente + return nil +end + --------------------------------------------------------------------- -- Trova l'Ind (0 based) della faccia meglio orientata come l'asse vtAx. Restituisce anche vtN e ptC della faccia stessa. La faccia di indice (0 based) fctExclude non viene considerata nella ricerca. function BeamLib.FindFaceBestOrientedAsAxis( Proc, vtAx, fctExclude) diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index c3008a9..7e263d9 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -170,6 +170,12 @@ function MakeParallelOne( nSurfId, nFacet, sCutting, dSawDiam, nFaceUse, dVzLimD end local vtOut = EgtIf( vtN:getX() > 0, X_AX(), -X_AX()) EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( sCutting, 'perpendicular', b3Raw, vtTool, vtOut)) + local sAuxDir, sInitAngs = BL.GetAuxDir( sCutting, 'perpendicular', b3Raw, vtTool, vtOut) + if sAuxDir then + sNotes = EgtSetValInNotes( sNotes, 'VtAuxDir', sAuxDir) + EgtSetMachiningParam( MCH_MP.INITANGS, sInitAngs) + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.STD) + end -- eventuali note if ( sLeadInOutType == 'PerpendicularOutraw') then sNotes = EgtSetValInNotes( sNotes, 'OutRaw', 3) @@ -631,6 +637,12 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw -- imposto angolo 3° asse rot local sBlockedAxis = EgtIf( bMaximizeVerticalDepth, 'parallel', 'perpendicular') EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( sCutting, sBlockedAxis, b3Raw, vtN, vtOrthO)) + local sAuxDir, sInitAngs = BL.GetAuxDir( sCutting, sBlockedAxis, b3Raw, vtN, vtOrthO) + if sAuxDir then + sNotes = EgtSetValInNotes( sNotes, 'VtAuxDir', sAuxDir) + EgtSetMachiningParam( MCH_MP.INITANGS, sInitAngs) + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.STD) + end -- eventuali note if ( sLeadInOutType == 'PerpendicularOutraw') then sNotes = EgtSetValInNotes( sNotes, 'OutRaw', 3) diff --git a/Version.lua b/Version.lua index b9770cc..e1b3d28 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Beam NAME = 'Beam' -VERSION = '3.1d2' +VERSION = '3.1d3' MIN_EXE = '3.1b1'