DataBeam :

- piccole modifiche per PF1250.
This commit is contained in:
Dario Sassi
2020-12-21 07:24:15 +00:00
parent 624eb47f57
commit e26866aa5d
2 changed files with 25 additions and 18 deletions
+14 -12
View File
@@ -1,4 +1,4 @@
-- ProcessDrill.lua by Egaltech s.r.l. 2020/12/14
-- ProcessDrill.lua by Egaltech s.r.l. 2020/12/17
-- Gestione calcolo forature per Travi
-- Tabella per definizione modulo
@@ -110,7 +110,7 @@ function ProcessDrill.Split( Proc, b3Raw)
return false
end
-- recupero la lavorazione
local sDrilling, _, dMaxMat = ML.FindDrilling( dDiam)
local sDrilling, _, dMaxMat = ML.FindDrilling( dDiam, nil, BD.DOWN_HEAD and ( Proc.Down or vtExtr:getZ() < 0.1))
if not sDrilling then dMaxMat = 0 end
-- restituisco se va fatto in doppio (solo fori orizzontali)
local bHoriz = ( abs( vtExtr:getZ()) < abs( BD.DRILL_VZ_MIN) and
@@ -202,28 +202,30 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
dCheckDepth = nil
dCheckDepth2 = nil
end
-- abilitazione foratura da sotto
local bDrillDown = ( BD.DOWN_HEAD and ( Proc.Down or vtExtr:getZ() < 0.1))
-- primo gruppo di controlli con lunghezza utensile calcolata
-- recupero la lavorazione
local sDrilling, nType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, dCheckDepth, BD.DOWN_HEAD and Proc.Down)
local sDrilling, nType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, dCheckDepth, bDrillDown)
if not sDrilling then
-- se ho passato altezza di taglio utensile allora rifaccio la ricerca senza passare altezza utensile
if dCheckDepth then
dCheckDepth = nil
sDrilling, nType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, nil, BD.DOWN_HEAD and Proc.Down)
sDrilling, nType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, nil, bDrillDown)
end
if not sDrilling then
nErrorCode = 1
end
end
-- se la lunghezza utensile massima supera il valore limite del BeamData e la componente Z supera i 10 gradi
-- se esiste la lavorazione e la lunghezza utensile massima supera il valore limite del BeamData e la componente Z supera i 10 gradi
-- allora ricerco un utensile senza lunghezza massima
if dMaxToolLength > ( BD.MAX_TOOL_LEN_FOR_HOR_MACH or 300) and abs( vtExtr:getZ()) < ( BD.DRILL_VZ_MIN_LONG_TOOL or cos(10)) then
if nErrorCode == 0 and dMaxToolLength > ( BD.MAX_TOOL_LEN_FOR_HOR_MACH or 300) and abs( vtExtr:getZ()) < ( BD.DRILL_VZ_MIN_LONG_TOOL or cos(10)) then
-- se non ho passato altezza di taglio utensile allora la lunghezza utensile non è idonea per il taglio
if not dCheckDepth then
nErrorCode = 2
-- rifaccio ricerca lavorazione senza specificare la profondità (dovrebbe trovare l'utensile più corto)
else
sDrilling, nType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam)
sDrilling, nType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, nil, bDrillDown)
if not sDrilling then
nErrorCode = 1
end
@@ -237,26 +239,26 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
-- recupero la lavorazione
local sDrilling2, nType2, dMaxDepth2, dMaxToolLength2, dToolDiam2, dDiamTh2, dToolFreeLen2
if dDepth2 > dDepth + BD.DRILL_OVERLAP then
sDrilling2, nType2, dMaxDepth2, dMaxToolLength2, dToolDiam2, dDiamTh2, dToolFreeLen2 = ML.FindDrilling( dDiam, dCheckDepth2, BD.DOWN_HEAD and Proc.Down)
sDrilling2, nType2, dMaxDepth2, dMaxToolLength2, dToolDiam2, dDiamTh2, dToolFreeLen2 = ML.FindDrilling( dDiam, dCheckDepth2, bDrillDown)
if not sDrilling2 then
-- se ho passato altezza di taglio utensile allora rifaccio la ricerca senza passare altezza utensile
if dCheckDepth2 then
dCheckDepth2 = nil
sDrilling2, nType2, dMaxDepth2, dMaxToolLength2, dToolDiam2, dDiamTh2, dToolFreeLen2 = ML.FindDrilling( dDiam, nil, BD.DOWN_HEAD and Proc.Down)
sDrilling2, nType2, dMaxDepth2, dMaxToolLength2, dToolDiam2, dDiamTh2, dToolFreeLen2 = ML.FindDrilling( dDiam, nil, bDrillDown)
end
if not sDrilling2 then
nErrorCode = 1
end
end
-- se la lunghezza utensile massima supera il valore limite del BeamData e la componente Z supera i 10 gradi
-- se esiste la lavorazione e la lunghezza utensile massima supera il valore limite del BeamData e la componente Z supera i 10 gradi
-- allora ricerco un utensile senza lunghezza massima
if dMaxToolLength2 > ( BD.MAX_TOOL_LEN_FOR_HOR_MACH or 300) and abs( vtExtr:getZ()) < ( BD.DRILL_VZ_MIN_LONG_TOOL or cos(10)) then
if nErrorCode == 0 and dMaxToolLength2 > ( BD.MAX_TOOL_LEN_FOR_HOR_MACH or 300) and abs( vtExtr:getZ()) < ( BD.DRILL_VZ_MIN_LONG_TOOL or cos(10)) then
-- se non ho passato altezza di taglio utensile allora la lunghezza utensile non è idonea per il taglio
if not dCheckDepth2 then
nErrorCode = 2
-- rifaccio ricerca lavorazione senza specificare la profondità (dovrebbe trovare l'utensile più corto)
else
sDrilling2, nType2, dMaxDepth2, dMaxToolLength2, dToolDiam2, dDiamTh2, dToolFreeLen2 = ML.FindDrilling( dDiam)
sDrilling2, nType2, dMaxDepth2, dMaxToolLength2, dToolDiam2, dDiamTh2, dToolFreeLen2 = ML.FindDrilling( dDiam, nil, bDrillDown)
if not sDrilling2 then
nErrorCode = 1
end