DataBeam :

- modifica a ordinamento fori
- in ProcessDrill tolto Proc.Id da messaggi di errore
- in ProcessLongDoubleCut aggiunto calcolo parte perpendicolare attacco se concavo da sotto.
This commit is contained in:
Dario Sassi
2020-07-27 18:22:07 +00:00
parent 8e6f59ca62
commit 3bc033c5d6
3 changed files with 15 additions and 8 deletions
+4 -3
View File
@@ -1,4 +1,4 @@
-- BeamExec.lua by Egaltech s.r.l. 2020/07/25
-- BeamExec.lua by Egaltech s.r.l. 2020/07/27
-- Libreria esecuzione lavorazioni per Travi
-- 2019/07/11 Aggiunta gestione stato rotazione di feature per TS3.
-- 2019/09/04 Corretto controllo feature di testa e coda con sovramateriale di testa elevato.
@@ -15,6 +15,7 @@
-- 2020/05/25 Correzione rotazione di 90deg dopo scarico su carico.
-- 2020/06/02 Per dati foro si chiama funzione GetData di ProcessDrill (per gestire variazioni di diametro da UserParams).
-- 2020/07/25 Ricalcolati flag head e tail della prima parte del foro dopo lo split.
-- 2002/07/27 Modifica a ordinamento fori.
-- Tabella per definizione modulo
local BeamExec = {}
@@ -390,7 +391,7 @@ end
-------------------------------------------------------------------------------------------------------------
local function OrderFeatures( vProc, b3Raw)
local dSmallDrillRange = EgtIf( b3Raw:getDimX() < BD.LEN_SHORT_PART, 150, 250)
local dSmallDrillRange = EgtIf( b3Raw:getDimX() < BD.LEN_SHORT_PART, 200, 600)
-- funzione di confronto
-- secondo centro box in X (taglio di intestazione prima di altri tagli di testa e taglio di separazione però prima di altri tagli di coda)
@@ -485,7 +486,7 @@ local function OrderFeatures( vProc, b3Raw)
table.sort( vProc, CompareFeatures)
-- riunisco fori con lo stesso diametro e non troppo lontani
local dDrillRange = EgtIf( BD.GO_FAST == 2, 6000, EgtIf( b3Raw:getDimX() < BD.LEN_SHORT_PART, 200, 600))
local dDrillRange = EgtIf( BD.GO_FAST == 2, 6000, dSmallDrillRange)
for i = 1, #vProc do
local ProcI = vProc[i]
if ProcI.Prc == 40 then
+4 -4
View File
@@ -1,4 +1,4 @@
-- ProcessDrill.lua by Egaltech s.r.l. 2020/07/25
-- ProcessDrill.lua by Egaltech s.r.l. 2020/07/27
-- Gestione calcolo forature per Travi
-- Tabella per definizione modulo
@@ -164,7 +164,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i') or 0
if AuxId then AuxId = AuxId + Proc.Id end
if not AuxId or EgtGetType( AuxId) ~= GDB_TY.CRV_ARC then
local sErr = 'Error on process ' .. tostring( Proc.Id) .. ' missing drill geometry'
local sErr = 'Error : missing drill geometry'
EgtOutLog( sErr)
return false, sErr
end
@@ -177,7 +177,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
-- verifico che il foro non sia fattibile solo da sotto
local bToInvert = ( vtExtr:getZ() < BD.DRILL_VZ_MIN)
if bToInvert and ( not bOpen or Proc.Flg ~= 1) then
local sErr = 'Error on process ' .. tostring( Proc.Id) .. ' drilling from bottom impossible'
local sErr = 'Error : drilling from bottom impossible'
EgtOutLog( sErr)
return false, sErr
end
@@ -187,7 +187,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
-- recupero la lavorazione
local sDrilling, nType = ML.FindDrilling( dDiam)
if not sDrilling then
local sErr = 'Error on process ' .. tostring( Proc.Id) .. ' drilling not found in library'
local sErr = 'Error : drilling not found in library'
EgtOutLog( sErr)
return false, sErr
end
+7 -1
View File
@@ -1,4 +1,4 @@
-- ProcessLongDoubleCut.lua by Egaltech s.r.l. 2020/04/18
-- ProcessLongDoubleCut.lua by Egaltech s.r.l. 2020/07/27
-- Gestione calcolo doppio taglio longitudinale per Travi
-- Tabella per definizione modulo
@@ -664,6 +664,12 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId)
-- imposto lato di lavoro e inversione
EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.LEFT)
EgtSetMachiningParam( MCH_MP.INVERT, true)
-- nel caso concavo, devo impostare la lunghezza di attacco ortogonale
if not bConvex then
local dLioPerp = vWidth[i] * sqrt( 1 - vtN[i]:getZ() * vtN[i]:getZ()) / abs( vtN[i]:getZ()) + BD.COLL_SIC
EgtSetMachiningParam( MCH_MP.LIPERP, dLioPerp)
EgtSetMachiningParam( MCH_MP.LOPERP, dLioPerp)
end
-- verifico massimo affondamento (tengo conto dell'inclinazione utensile e della pinza con estremità conica)
local dCollSic = max( BD.COLL_SIC, ( dThDiam - dToolDiam) / 2 * abs( vtN[vOrd[i]]:getY() / vtN[vOrd[i]]:getZ()) - 3)
if vWidth[vOrd[i]] + dAgg > dMaxDepth - dCollSic then