diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index 52dd49a..8159585 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -1,4 +1,4 @@ --- MachiningLib.lua by Egaltech s.r.l. 2019/07/25 +-- MachiningLib.lua by Egaltech s.r.l. 2019/10/07 -- Libreria ricerca lavorazioni per Travi -- Tabella per definizione modulo @@ -17,11 +17,21 @@ local Pocketings = require( 'PocketingData') local Sawings = require( 'SawingData') local Drillings = require( 'DrillData') +--------------------------------------------------------------------- +local function SetCurrMachiningAndTool( sMachName) + if not EgtMdbSetCurrMachining( sMachName) then return false end + local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) + local sTool = EgtTdbGetToolFromUUID( sTuuid) + if not sTool then return false end + if not EgtTdbSetCurrTool( sTool) then return false end + return EgtTdbGetCurrToolParam( MCH_TP.ACTIVE) +end + --------------------------------------------------------------------- function MachiningLib.FindCutting( sType) for i = 1, #Cuttings do local Cutting = Cuttings[i] - if Cutting.On and Cutting.Type == sType then + if Cutting.On and Cutting.Type == sType and SetCurrMachiningAndTool( Cutting.Name) then return Cutting.Name end end @@ -31,7 +41,7 @@ end function MachiningLib.FindMilling( sType) for i = 1, #Millings do local Milling = Millings[i] - if Milling.On and Milling.Type == sType then + if Milling.On and Milling.Type == sType and SetCurrMachiningAndTool( Milling.Name) then return Milling.Name end end @@ -41,16 +51,12 @@ end function MachiningLib.FindPocketing( sType, dMaxDiam, dDepth) for i = 1, #Pocketings do local Pocketing = Pocketings[i] - if Pocketing.On and Pocketing.Type == sType and EgtMdbSetCurrMachining( Pocketing.Name) then - local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) - local sTool = EgtTdbGetToolFromUUID( sTuuid) - if sTool and EgtTdbSetCurrTool( sTool) then - local dTDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) - local dTMaxDepth = EgtTdbGetCurrToolMaxDepth() - if ( not dMaxDiam or dTDiam < dMaxDiam + GEO.EPS_SMALL) and - ( not dDepth or dTMaxDepth > dDepth - GEO.EPS_SMALL) then - return Pocketing.Name - end + if Pocketing.On and Pocketing.Type == sType and SetCurrMachiningAndTool( Pocketing.Name) then + local dTDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) + local dTMaxDepth = EgtTdbGetCurrToolMaxDepth() + if ( not dMaxDiam or dTDiam < dMaxDiam + GEO.EPS_SMALL) and + ( not dDepth or dTMaxDepth > dDepth - GEO.EPS_SMALL) then + return Pocketing.Name end end end @@ -60,7 +66,7 @@ end function MachiningLib.FindSawing( sType) for i = 1, #Sawings do local Sawing = Sawings[i] - if Sawing.On and Sawing.Type == sType then + if Sawing.On and Sawing.Type == sType and SetCurrMachiningAndTool( Sawing.Name) then return Sawing.Name end end @@ -72,30 +78,22 @@ function MachiningLib.FindDrilling( dDiam) -- ricerca sulle forature, dal diametro maggiore al minore for i = #Drillings, 1, -1 do local Drilling = Drillings[i] - if Drilling.On and Drilling.Type == 'Drill' and EgtMdbSetCurrMachining( Drilling.Name) then - local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) - local sTool = EgtTdbGetToolFromUUID( sTuuid) - if sTool and EgtTdbSetCurrTool( sTool) then - local dTDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) - local dTMaxMat = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) - if dTDiam < dDiam + 10 * GEO.EPS_SMALL and dTDiam > dDiam - BD.DRILL_TOL - 10 * GEO.EPS_SMALL then - return Drilling.Name, Drilling.Type, dTMaxMat - end + if Drilling.On and Drilling.Type == 'Drill' and SetCurrMachiningAndTool( Drilling.Name) then + local dTDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) + local dTMaxMat = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) + if dTDiam < dDiam + 10 * GEO.EPS_SMALL and dTDiam > dDiam - BD.DRILL_TOL - 10 * GEO.EPS_SMALL then + return Drilling.Name, Drilling.Type, dTMaxMat end end end -- ricerca sulle svuotature, dal diametro maggiore al minore for i = #Drillings, 1, -1 do local Drilling = Drillings[i] - if Drilling.On and Drilling.Type == 'Pocket' and EgtMdbSetCurrMachining( Drilling.Name) then - local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) - local sTool = EgtTdbGetToolFromUUID( sTuuid) - if sTool and EgtTdbSetCurrTool( sTool) then - local dTDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) - local dTMaxDepth = EgtTdbGetCurrToolMaxDepth() - if dTDiam < dDiam - 10 * GEO.EPS_SMALL then - return Drilling.Name, Drilling.Type, dTMaxDepth - end + if Drilling.On and Drilling.Type == 'Pocket' and SetCurrMachiningAndTool( Drilling.Name) then + local dTDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) + local dTMaxDepth = EgtTdbGetCurrToolMaxDepth() + if dTDiam < dDiam - 10 * GEO.EPS_SMALL then + return Drilling.Name, Drilling.Type, dTMaxDepth end end end