From 001fd45f0ce9400971502db25d27794bba33a8b5 Mon Sep 17 00:00:00 2001 From: "daniele.nicoli" Date: Mon, 22 Dec 2025 08:23:07 +0100 Subject: [PATCH 1/2] =?UTF-8?q?-=20Eliminata=20MinJoin,=20utilizzata=20al?= =?UTF-8?q?=20suo=20posto=20funzione=20gi=C3=A0=20esistente=20UpdateMinJoi?= =?UTF-8?q?n=20nell'mlde=20-=20Modificata=20formula=20calcolo=20Area=20min?= =?UTF-8?q?ima?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Common_FAST.mlpe | 20 +++++++++------ Common_FAST.mlse | 63 +++--------------------------------------------- UpdateLog.txt | 4 +++ 3 files changed, 19 insertions(+), 68 deletions(-) diff --git a/Common_FAST.mlpe b/Common_FAST.mlpe index ed34918..4fe9f6e 100644 --- a/Common_FAST.mlpe +++ b/Common_FAST.mlpe @@ -464,10 +464,11 @@ function OnSimulDispositionStart() EgtMove( nRawId, vtMove, GDB_RT.GLOB) EmtLinkRawPartToGroup( nRawId, 'Y') end + nRawId = nNextRawId end - nRawId = nNextRawId + --nRawId = nNextRawId + EMT.LB = b3Bar:getDimX() end - EMT.LB = b3Bar:getDimX() end -- Indicazione angolo rotazione pezzo EMT.ROT = EgtGetInfo( EMT.DISPID, 'ROT', 'i') or 0 @@ -1169,15 +1170,16 @@ function CheckClamping( sClampName) -- minima area considerata per un corretto pinzaggio DistZClampToTable = DistZClampToTable or 0 - local MinJoin = BD.GetMinJoin( EMT.ST, EMT.HT, EgtIf( EMT.SPLIT, EMT.LT, EMT.LB)) + --local MinJoin = BD.GetMinJoin( EMT.ST, EMT.HT, EgtIf( EMT.SPLIT, EMT.LT, EMT.LB)) + UpdateMinJoinDeltaTol( EMT.ST, EMT.HT, EgtIf( EMT.SPLIT, EMT.LT, EMT.LB)) local MinZClamping = min( b3ClampingArea:getDimZ() + DistZClampToTable, EMT.HT) - DistZClampToTable local dMinClamping = ( MinJoin * MinZClamping) -- si moltiplica per un coefficiente minimo sotto al quale si da l'errore di pinzaggio ClampingCoeffMin = EgtClamp( ClampingCoeffMin, 0.01, 1) if MinZClamping > 116 then - dMinClamping = MinJoin * 116 + ( math.pow( MinJoin, 2) / 2) + dMinClamping = MinJoin * 116 + ( pow( MinJoin, 2) / 2) if MinJoin > 280 then - dMinClamping = dMinClamping + ( math.pow( MinJoin - 280, 2)) + dMinClamping = MinJoin * 116 + ( pow( 280, 2) / 2) + ( pow( MinJoin - 280, 2)) end end @@ -1213,13 +1215,13 @@ function CheckClamping( sClampName) -- controllo altro lato solo se non sono già in errore if not bWriteErrMessage then -- controllo faccia posteriore - dArea = CalculateIntersectionArea( 'MAX', 'Y', 3) + dArea, dXClampedLenght = CalculateIntersectionArea( 'MAX', 'Y', 3) -- ERRORE: pinza troppo poco (meno di 1/3 del minimo richiesto) if dArea and dArea < dMinClampingAreaErr then -- solo se pinza almeno 1cm2, e la somma della lunghezza pinzata è maggiore della lunghezza minima pinzabile da Warning e non errore if dXClampedLenght >= MinJoin * ClampingCoeffMin and dArea > 1000 then - bError = false - end + bError = false + end -- pinzaggio non fattibile, errore if bError then sErr = 'ERROR CLAMPING ' .. sClampName .. ' : '..tostring( ceil( ( dArea / dMinClampingAreaWarn) * 100))..'% ( '.. tostring( dArea/1000)..'cm2)' @@ -1248,6 +1250,7 @@ end --------------------------------------------------------------------- function ExecMovePY( bClose) + --SimulMoveAxes( 'PY', EgtIf( not bClose, MaxHoOpen, EMT.HB), MCH_SIM_STEP.RAPID) local dPY = MaxOpen if bClose then dPY = EgtIf( EMT.ROT == -1, EMT.HT, EMT.ST) @@ -1261,6 +1264,7 @@ end --------------------------------------------------------------------- function ExecMovePV( bClose) + --EgtIf( not bClose, MaxHoOpen, EMT.HB), MCH_SIM_STEP.RAPID) local dPV = MaxOpen if bClose then dPV = EgtIf( EMT.ROT == -1, EMT.HT, EMT.ST) diff --git a/Common_FAST.mlse b/Common_FAST.mlse index 1abfef3..ea8ca83 100644 --- a/Common_FAST.mlse +++ b/Common_FAST.mlse @@ -31,20 +31,10 @@ end ---------- OnSpecialApplyDisposition & OnPostApplyMachining --------- ----------------------- Costanti ------------------------------------ -local DELTA_TOL_V = 110 -local DELTA_TOL_S = 210 -local DELTA_TOL_L = 410 local DELTA_TOL_FIXED = 50 -local DeltaTol = DELTA_TOL_S +local DeltaTol = 210 local DELTA_SIC = 1 local AGG_LOAD = 50 -local MIN_JOIN_VV = EgtClamp( MinJoinVV or 75, 60, 150) -local MIN_JOIN_SS = EgtClamp( MinJoinSS or 100, 80, 275) -local MIN_JOIN_LS = EgtClamp( MinJoinLS or 290, 250, 400) -local MIN_JOIN_SL = EgtClamp( MinJoinSL or 100, 80, 400) -local MIN_JOIN_LL = EgtClamp( MinJoinLL or 400, 300, 600) -local MinJoin = MIN_JOIN_SS -local MinOther = abs( MinY) + abs( MaxV) + MinJoin ----------------------- Variabili ----------------------------------- local Test = false @@ -153,53 +143,6 @@ local function IsFirstMachiningAfterRotation( nMchId) return ( nRot ~= nPrevRot) end ---------------------------------------------------------------------- -local function UpdateMinJoinDeltaTol() - local L_SMALL = 800 - local H_V = 90 - local H_S = 200 - local H_L = 400 - local W_V = 90 - local W_S = 150 - local W_L = 250 - if EMC.SB <= W_V and EMC.HB <= H_V then - MinJoin = MIN_JOIN_VV - DeltaTol = DELTA_TOL_V - elseif EMC.LB <= L_SMALL then - MinJoin = MIN_JOIN_SS - DeltaTol = DELTA_TOL_S - else - local dMinJoinS - local dMinJoinL - if EMC.SB <= W_S then - dMinJoinS = MIN_JOIN_SS - dMinJoinL = MIN_JOIN_LS - elseif EMC.SB <= W_L then - local Coeff = ( EMC.SB - W_S) / ( W_L - W_S) - dMinJoinS = ( 1 - Coeff) * MIN_JOIN_SS + Coeff * MIN_JOIN_SL - dMinJoinL = ( 1 - Coeff) * MIN_JOIN_LS + Coeff * MIN_JOIN_LL - else - dMinJoinS = MIN_JOIN_SL - dMinJoinL = MIN_JOIN_LL - end - if EMC.HB <= H_S then - MinJoin = dMinJoinS - DeltaTol = DELTA_TOL_S - elseif EMC.HB <= H_L then - local Coeff = ( EMC.HB - H_S) / ( H_L - H_S) - MinJoin = ( 1 - Coeff) * dMinJoinS + Coeff * dMinJoinL - DeltaTol = ( 1 - Coeff) * DELTA_TOL_S + Coeff * DELTA_TOL_L - else - MinJoin = dMinJoinL - DeltaTol = DELTA_TOL_L - end - if EMC.SB < W_V then - DeltaTol = DELTA_TOL_V - end - end - MinOther = abs( MinY) + abs( MaxV) + MinJoin -end - --------------------------------------------------------------------- local function GetCUTID() -- recupero CUTID del pezzo in lavoro @@ -367,7 +310,7 @@ function OnSpecialApplyDisposition() EMC.ZMIN = b3Raw:getMin():getZ() -- Aggiorno limiti di presa e tolleranza - UpdateMinJoinDeltaTol() + UpdateMinJoinDeltaTol( EMC.SB, EMC.HB, EMC.LB) -- Assegno sovramateriale di testa e ingombro tagli di testa e di coda EMC.HOVM = EgtGetInfo( nCurrRawId, 'HOVM', 'd') or 0 @@ -656,7 +599,7 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR EMC.ZMIN = b3Raw:getMin():getZ() -- Aggiorno limiti di presa e tolleranza - UpdateMinJoinDeltaTol() + UpdateMinJoinDeltaTol( EMC.SB, EMC.HB, EMC.LB) -- Recupero sovramateriale di testa e ingombro tagli di testa e di coda EMC.HOVM = EgtGetInfo( nCurrRawId, 'HOVM', 'd') or 0 diff --git a/UpdateLog.txt b/UpdateLog.txt index c1a99a3..ee24b72 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,9 @@ ==== Common_FAST Update Log ==== +Versione 2.7-- (--/--/2025) +- (SIM) Eliminata MinJoin, utilizzata al suo posto funzione già esistente UpdateMinJoin nell'mlde +- (SIM) Modificata formula calcolo Area minima + Versione 2.7l2 (18/12/2025) - (SIM) Aggiunta funzione CheckClamping From ff984c30b429f86d015f5a509624a58af5a1a686 Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Mon, 22 Dec 2025 10:05:59 +0100 Subject: [PATCH 2/2] Cambio versione per rilascio a cliente --- UpdateLog.txt | 2 +- Version.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/UpdateLog.txt b/UpdateLog.txt index ee24b72..a41b5e2 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,6 +1,6 @@ ==== Common_FAST Update Log ==== -Versione 2.7-- (--/--/2025) +Versione 2.7l3 (22/12/2025) - (SIM) Eliminata MinJoin, utilizzata al suo posto funzione già esistente UpdateMinJoin nell'mlde - (SIM) Modificata formula calcolo Area minima diff --git a/Version.lua b/Version.lua index 338d0c4..d3851bc 100644 --- a/Version.lua +++ b/Version.lua @@ -3,7 +3,7 @@ local InfoCommon_STD_PP = { NAME = 'Common_FAST', -- nome script PP standard - VERSION = '2.7l2', -- versione script + VERSION = '2.7l3', -- versione script MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel }