diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index 71d0bd0..1cb6c2d 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -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 diff --git a/LuaLibs/ProcessDrill.lua b/LuaLibs/ProcessDrill.lua index 08758c6..a5a6925 100644 --- a/LuaLibs/ProcessDrill.lua +++ b/LuaLibs/ProcessDrill.lua @@ -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 diff --git a/LuaLibs/ProcessLongDoubleCut.lua b/LuaLibs/ProcessLongDoubleCut.lua index 7b655ca..0dbbc3f 100644 --- a/LuaLibs/ProcessLongDoubleCut.lua +++ b/LuaLibs/ProcessLongDoubleCut.lua @@ -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