diff --git a/BatchProcess.lua b/BatchProcess.lua index 99846c2..0eb86a5 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -495,7 +495,7 @@ if ( WALL.FLAG == 0 and ( bToProcess or bToRecalc)) or WALL.FLAG == 3 or WALL.F if not bSimOk then if nErr == MCH_SHE.INIT then WALL.ERR = 19 - WALL.MSG = 'Error in clamps disposition' + WALL.MSG = 'Error starting simulation' elseif nErr == MCH_SHE.COLLISION then WALL.ERR = 22 WALL.MSG = 'Head-part collision' @@ -504,7 +504,7 @@ if ( WALL.FLAG == 0 and ( bToProcess or bToRecalc)) or WALL.FLAG == 3 or WALL.F WALL.MSG = 'Axis outstroke ' .. sErr elseif nErr == MCH_SHE.SPECIAL then WALL.ERR = 24 - WALL.MSG = 'Clamp move error ' .. sErr + WALL.MSG = 'Special error ' .. sErr else WALL.ERR = 25 WALL.MSG = 'General failure (contact supplier)' diff --git a/BatchProcessNew.lua b/BatchProcessNew.lua index 894d821..7f54185 100644 --- a/BatchProcessNew.lua +++ b/BatchProcessNew.lua @@ -486,7 +486,7 @@ if ( WALL.FLAG == 0 and ( bToProcess or bToRecalc)) or WALL.FLAG == 3 or WALL.F if not bSimOk then if nErr == MCH_SHE.INIT then WALL.ERR = 19 - WALL.MSG = 'Error in clamps disposition' + WALL.MSG = 'Error starting simulation' elseif nErr == MCH_SHE.COLLISION then WALL.ERR = 22 WALL.MSG = 'Head-part collision' @@ -495,7 +495,7 @@ if ( WALL.FLAG == 0 and ( bToProcess or bToRecalc)) or WALL.FLAG == 3 or WALL.F WALL.MSG = 'Axis outstroke ' .. sErr elseif nErr == MCH_SHE.SPECIAL then WALL.ERR = 24 - WALL.MSG = 'Clamp move error ' .. sErr + WALL.MSG = 'Special error ' .. sErr else WALL.ERR = 25 WALL.MSG = 'General failure (contact supplier)' diff --git a/LuaLibs/WProcessFreeContour.lua b/LuaLibs/WProcessFreeContour.lua index d66300c..eedc3ef 100644 --- a/LuaLibs/WProcessFreeContour.lua +++ b/LuaLibs/WProcessFreeContour.lua @@ -1,4 +1,4 @@ --- ProcessFreeContour.lua by Egaltech s.r.l. 2021/06/15 +-- ProcessFreeContour.lua by Egaltech s.r.l. 2021/06/30 -- Gestione calcolo profilo libero per Pareti -- Tabella per definizione modulo @@ -1139,7 +1139,7 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd if nConeCut == 1 then EgtSetMachiningParam( MCH_MP.LEAVETAB, false) end -- aggiungo geometria EgtSetMachiningGeometry( {{ Proc.Id, vFace[i].Fac}}) - local dSal = 0 + local dSal = EgtIf( #vFace == 1, -dMillDiam / 2, 0) local dEal = vFace[i].Whisk - vFace[i].Len EgtSetMachiningParam( MCH_MP.STARTADDLEN, dSal) EgtSetMachiningParam( MCH_MP.ENDADDLEN, dEal) @@ -1154,7 +1154,7 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd -- posizione braccio porta testa local nSCC = MCH_SCC.ADIR_ZP if abs( vFace[i].Norm:getZ()) < GEO.EPS_SMALL then - nSCC = MCH_SCC.ADIR_YP + nSCC = EgtIf( abs( vFace[i].Norm:getX()) > abs( vFace[i].Norm:getY()), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_YP) end EgtSetMachiningParam( MCH_MP.SCC, nSCC) -- eseguo @@ -1212,7 +1212,7 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd j = EgtIf( j + 1 <= #vFace, j + 1, EgtIf( bAllType4 or not bClosed, nil, 1)) end -- se faccia singola è da fare tutta senza oltrepassare estremi - if #vFace == 1 then + if #vFace == 1 and vFace[OrigI].Type == 4 then dSal = -dMillDiam / 2 dEal = -dMillDiam / 2 -- altrimenti va verificato @@ -1235,6 +1235,10 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd dSal = 0 dEal = 0 end + -- se faccia singola non oltrepasso l'estremo finale + if #vFace == 1 then + dEal = -dMillDiam / 2 + end end -- se non devo scaricare l'angolo if nConeCut <= 1 then @@ -1253,6 +1257,12 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.RIGHT) -- posizione braccio porta testa EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.ADIR_XP) + -- posizione braccio porta testa + local nSCC = MCH_SCC.ADIR_ZP + if abs( vFace[OrigI].Norm:getZ()) < GEO.EPS_SMALL then + nSCC = EgtIf( abs( vFace[OrigI].Norm:getX()) > abs( vFace[OrigI].Norm:getY()), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_YP) + end + EgtSetMachiningParam( MCH_MP.SCC, nSCC) -- altrimenti se devo fare rientranza per inserimento utensile cono 30° elseif nConeCut == 2 then -- creo la costruzione del percorso @@ -1354,7 +1364,7 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd -- posizione braccio porta testa local nSCC = MCH_SCC.ADIR_ZP if abs( vFace[i].Norm:getZ()) < GEO.EPS_SMALL then - nSCC = MCH_SCC.ADIR_YP + nSCC = EgtIf( abs( vFace[i].Norm:getX()) > abs( vFace[i].Norm:getY()), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_YP) end EgtSetMachiningParam( MCH_MP.SCC, nSCC) -- eseguo diff --git a/LuaLibs/WallExec.lua b/LuaLibs/WallExec.lua index 5779f57..cac67ec 100644 --- a/LuaLibs/WallExec.lua +++ b/LuaLibs/WallExec.lua @@ -1,4 +1,4 @@ --- WallExec.lua by Egaltech s.r.l. 2021/04/20 +-- WallExec.lua by Egaltech s.r.l. 2021/06/30 -- Libreria esecuzione lavorazioni per Pareti -- Tabella per definizione modulo @@ -311,8 +311,7 @@ local function SortMach( nPhase, PrevMch, nPartId, nType, sStartName, bExistName ( not bExistName and string.sub( EgtGetName( nOperId), 1, #sStartName) ~= sStartName)) and ( not sInfo or ( bExistInfo and EgtGetInfo( nOperId, sInfo, 'i') == 1) or ( not bExistInfo and EgtGetInfo( nOperId, sInfo, 'i') ~= 1)) then - -- rendo comunque attiva la lavorazione - EgtSetOperationMode( nOperId, true) + -- non si deve cambiare lo stato di attivazione della lavorazione (se disabilitata errata) EgtSetCurrMachining( nOperId) if not EgtIsMachiningEmpty() then -- punto iniziale e finale e direzione della lavorazione