DataBeam :

- migliorato ordinamento fori
- riunite FindMilling, .... in una unica libreria
- altre piccole migliorie.
This commit is contained in:
Dario Sassi
2019-04-26 15:06:31 +00:00
parent fc441ff8b2
commit 998624035b
30 changed files with 354 additions and 710 deletions
+4 -23
View File
@@ -11,7 +11,7 @@ EgtOutLog( ' ProcessDrill started', 1)
-- Dati
local BD = require( 'BeamData')
local Drillings = require( 'DrillData')
local ML = require( 'MachiningLib')
---------------------------------------------------------------------
-- Riconoscimento della feature
@@ -43,25 +43,6 @@ function ProcessDrill.IsTailFeature( Proc, b3Raw)
end
end
---------------------------------------------------------------------
local function FindDrilling( dDiam)
-- ricerca sulle forature, dal diametro maggiore al minore
for i = #Drillings, 1, -1 do
local Drilling = Drillings[i]
if ( Drilling.Type == 'Drill' and Drilling.Diam < dDiam + 10 * GEO.EPS_SMALL and Drilling.Diam > dDiam - BD.DRILL_TOL - 10 * GEO.EPS_SMALL) then
return i, Drilling.Name, Drilling.Type
end
end
-- ricerca sulle svuotature, dal diametro maggiore al minore
for i = #Drillings, 1, -1 do
local Drilling = Drillings[i]
if ( Drilling.Type == 'Pocket' and dDiam > Drilling.Diam + 10 * GEO.EPS_SMALL) then
return i, Drilling.Name, Drilling.Type
end
end
return 0
end
---------------------------------------------------------------------
-- Verifica se da lavorare in due metà
function ProcessDrill.Split( Proc)
@@ -77,12 +58,12 @@ function ProcessDrill.Split( Proc)
local vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB)
local bOpen = ( EgtGetInfo( Proc.Id, 'FCE', 'i') ~= 0)
-- recupero la lavorazione
local nDri, sDrilling = FindDrilling( dDiam)
local sDrilling, _, dMaxMat = ML.FindDrilling( dDiam)
if not sDrilling then
return bOpen
end
-- restituisco se va fatto in doppio
return ( bOpen and dLen > Drillings[nDri].MaxMat + 10 * GEO.EPS_SMALL)
return ( bOpen and dLen > dMaxMat + 10 * GEO.EPS_SMALL)
end
---------------------------------------------------------------------
@@ -137,7 +118,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
if bToInvert then vtExtr = - vtExtr end
if Proc.Flg == -2 then bToInvert = true end
-- recupero la lavorazione
local nDri, sDrilling, nType = FindDrilling( dDiam)
local sDrilling, nType = ML.FindDrilling( dDiam)
if not sDrilling then
local sErr = 'Error on process ' .. tostring( Proc.Id) .. ' drilling not found in library'
EgtOutLog( sErr)