Compare commits

...

16 Commits

Author SHA1 Message Date
andrea.villa 2eeb5f2e43 Versione minima portato a 3.1f4 2026-07-14 10:41:34 +02:00
andrea.villa 578848df0b Merge branch 'develop' 2026-07-08 16:05:53 +02:00
andrea.villa 4846e95a47 - Allineamento con common ver. 3.1g2
- Cambio versione per rilascio
2026-07-08 16:05:41 +02:00
andrea.villa 666b075c2c Aumentato dimensioni solido collisione magazzino specialo ONE 2026-07-08 10:02:58 +02:00
andrea.villa 32af3789a2 Merge branch 'master' into develop 2026-07-08 10:02:22 +02:00
andrea.villa 9e00046400 Merge branch 'develop' 2026-07-07 09:20:49 +02:00
andrea.villa 9e8c67fcb8 Merge branch 'NewLink' into develop 2026-07-07 08:56:11 +02:00
andrea.villa 3c8ef31433 Allineamento con common ver. 3.1g1 2026-07-07 08:55:48 +02:00
andrea.villa b89e384dbc Corretta generazione M77 (Scarica spezzone in entrata) durante scarico speciale 2026-07-06 14:49:13 +02:00
andrea.villa 612929dca8 Apertura pinze anche in LOAD 2026-06-26 12:43:32 +02:00
andrea.villa 7ec47d6ac2 Corretta simulazione scarico motosega
sistemato errore in MLDE
2026-06-26 10:18:17 +02:00
andrea.villa cd01e1a07e Corretta gestione motosega sotto traversa 2026-06-26 08:31:09 +02:00
andrea.villa d3aac014b7 Allineamento con common ver. 3.1f3 2026-06-08 14:41:56 +02:00
andrea.villa 87ebd3a20d Aggiunta lettura quote parcheggio 2026-06-03 12:15:44 +02:00
andrea.villa 8e46749ecd HOTFIX problema simulazione 2026-06-03 11:54:12 +02:00
andrea.villa c083e04e59 Allineamento a common 3.1f1 2026-06-03 09:47:59 +02:00
7 changed files with 152 additions and 89 deletions
+30 -3
View File
@@ -599,7 +599,7 @@ function OnMachiningEnd()
local sOut = 'G156 EA'..tostring( EMT.PRODID)..' EB'..tostring( EMT.PATTID)..' EC'..tostring( EMT.CUTID)..' ED2'
EmtOutput( sOut)
end
elseif not EMT.PREROT then
elseif not EMT.PREROT and not EMT.SPECSPLIT then
EmtOutput( 'M77')
end
end
@@ -862,6 +862,33 @@ function OnRapid()
if EMT.MDCHAR[i].MovType ~= 1 then bOnlyCharY = false end
end
EMT.MDCHAR = {}
local bParkV = false
-- verifica se serve aprire i carrelli
local bCondBase = EMT.MCHFIRST or EMT.MOVE == 0
local bCondPosition = EMT.V1POS < EMT.V1NEXTPOS - 1 or
EMT.V2POS > EMT.V2NEXTPOS + 1 or
RollerParkingNeeded( EMT.HEAD, EMT.R1, EMT.R2, EMT.R1, EMT.R2)
if bCondBase and bCondPosition then
bParkV = true
end
local bNlhParkV = ( EMT.MOVE == 0 and ( EMT.FLAG2 == 1 or EMT.FLAG2 == 2))
if bNlhParkV then
bParkV = ( EMT.FLAG == 2 and bParkV) or ( not EMT.MCHSPLIT or bSplit)
end
if bParkV or bNlhParkV then
local bMchSplit = ( bNlhParkV and EMT.MCHSPLIT and bSplit)
local bAgg = EgtExistsInfo( EMT.PATHID, 'CNT')
if EMT.SPLIT_Y1DELTA and not EMT.MCHSPLIT then EMT.Y1DELTA = EMT.SPLIT_Y1DELTA end
local dPosT = EMT.TPOS or EMT.L1op
EmitParkRoller( dPosT, bMchSplit, bAgg)
end
if EMT.SPLIT_Y1DELTA then EMT.Y1DELTA = EMT.SPLIT_Y1DELTA end
EmitMoveStartChars( EgtIf( bOnlyCharY, 1, 3))
EmtOutput( '( *** '..EMT.MCHNAME..'/'..EMT.TOOL..' *** )')
@@ -2101,11 +2128,11 @@ function MyAdjustLinearAxes()
local Len = EMT.TLEN + dAddLen + Mill2Offs
local LenRef = Mill2Offs
vtE = Vector3d( EMT.TDIR) * Len - Z_AX() * LenRef
elseif EMT.HEAD == 'H13' then
elseif EMT.HEAD == 'H13' or EMT.HEAD == 'H15' then
local Len = ( EMT.TDIST or ChSawLen) + MillOffs
local LenRef = MillOffs
vtE = Vector3d( EMT.ADIR) * Len - Z_AX() * LenRef
elseif EMT.HEAD == 'H15' or EMT.HEAD == 'H23' then
elseif EMT.HEAD == 'H23' then
local Len = ( EMT.TDIST or ChSawLen) + Mill2Offs
local LenRef = Mill2Offs
vtE = Vector3d( EMT.ADIR) * Len - Z_AX() * LenRef
+75 -56
View File
@@ -537,14 +537,6 @@ function OnSimulToolSelect( dPosA)
end
end
-- se ho due teste, verifico che l'altra sia dalla parte opposta
--if EgtGetHeadId( 'H21') then
-- if nSetHead == 1 then
-- EgtSetAxisPos( 'X2', MinX2)
-- else
-- EgtSetAxisPos( 'X1', MaxX1)
-- end
--end
-- se sega a catena, imposto subito angolo scelto per asse virtuale A
if HeadIsChainSaw( EMT.HEAD) then
-- apro le paratie
@@ -617,63 +609,76 @@ end
---------------------------------------------------------------------
function OnSimulToolDeselect( dPrevA)
-- se utensile corrente è sega a catena, devo depositarla
if HeadIsChainSaw( EMT.PREVHEAD_H1) then
-- visualizzo utensile su TcPos
ShowToolInTcPos( EMT.PREVTCPOS_H1, true)
-- nascondo l'utensile sulla testa
EgtSetMode( EgtGetHeadId( EMT.PREVHEAD_H1 or '') or GDB_ID.NULL, GDB_MD.HIDDEN)
-- se non è chiamata per cambio angolo di presa della sega a catena
if not dPrevA then
local sTool, sHead, sTcPos = FindNextToolOnHeadSet( 1, false)
-- se ToolDeselect chiamata da MLPE, bisogna scaricare perchè è ultimo movimento di rise e poi si cambia utensile
if dPrevA then
local dHeadSet = GetHeadSet( EMT.HEAD)
-- se utensile corrente è sega a catena, devo depositarla
if dHeadSet == 1 and HeadIsChainSaw( EMT.HEAD) then
-- visualizzo utensile su TcPos
ShowToolInTcPos( EMT.PREVTCPOS_H1, true)
-- nascondo l'utensile sulla testa
EgtSetMode( EgtGetHeadId( EMT.PREVHEAD_H1 or '') or GDB_ID.NULL, GDB_MD.HIDDEN)
-- si cerca prossimo utensile
local sTool, sHead, sTcPos, bCarrMove = FindNextToolOnHeadSet( 1, false)
-- imposto correttamente i dati di testa
local OrigEMC = EMC
EMC = { HEAD = sHead, TOOL = sTool, TCPOS = sTcPos, TOTDIAM = 0}
EMC = { HEAD = sHead or 'H11', TOOL = sTool, TCPOS = sTcPos, TOTDIAM = 0}
OnSetHead()
EMC = OrigEMC
local dHomeX1 = EgtGetAxisHomePos( 'X1')
local dHomeC1 = EgtGetAxisHomePos( 'C1')
local dHomeB1 = EgtGetAxisHomePos( 'B1')
-- se c'è prossimo utensile, oppure se non c'è e c'è un movimento carrelli
if sTool or ( not sTool and bCarrMove) then
-- cambio utensile
EgtSetAxisPos( 'C1', dHomeC1)
EgtSetAxisPos( 'B1', dHomeB1)
EgtSetAxisPos( 'Z1', MaxZ1)
SimulMoveAxis( 'X1', dHomeX1, MCH_SIM_STEP.RAPID)
if sTcPos then
LoadNextTool( 1, DefTcPos1)
local dHomeX1 = EgtGetAxisHomePos( 'X1')
local dHomeC1 = EgtGetAxisHomePos( 'C1')
local dHomeB1 = EgtGetAxisHomePos( 'B1')
-- cambio utensile
EgtSetAxisPos( 'C1', dHomeC1)
EgtSetAxisPos( 'B1', dHomeB1)
EgtSetAxisPos( 'Z1', MaxZ1)
SimulMoveAxis( 'X1', dHomeX1, MCH_SIM_STEP.RAPID)
if sTcPos then
LoadNextTool( 1, sTcPos)
end
end
EMT.CHSAW_OUT = nil
end
elseif HeadIsChainSaw( EMT.PREVHEAD_H2) then
-- visualizzo utensile su TcPos
ShowToolInTcPos( EMT.PREVTCPOS_H2, true)
-- nascondo l'utensile sulla testa
EgtSetMode( EgtGetHeadId( EMT.PREVHEAD_H2 or '') or GDB_ID.NULL, GDB_MD.HIDDEN)
-- se non è chiamata per cambio angolo di presa della sega a catena
if not dPrevA then
-- cambio utensile
EgtSetAxisPos( 'C2', ParkC2)
EgtSetAxisPos( 'B2', ParkB2)
EgtSetAxisPos( 'Z2', MaxZ2)
SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID)
local sTool, sHead, sTcPos = FindNextToolOnHeadSet( 2, false)
elseif dHeadSet == 2 and HeadIsChainSaw( EMT.HEAD) then
-- visualizzo utensile su TcPos
ShowToolInTcPos( EMT.PREVTCPOS_H2, true)
-- nascondo l'utensile sulla testa
EgtSetMode( EgtGetHeadId( EMT.PREVHEAD_H2 or '') or GDB_ID.NULL, GDB_MD.HIDDEN)
-- imposto correttamente i dati di testa
local sTool, sHead, sTcPos, bCarrMove = FindNextToolOnHeadSet( 2, false)
local OrigEMC = EMC
EMC = { HEAD = sHead or 'H21', TOOL = sTool, TCPOS = sTcPos, TOTDIAM = 0}
OnSetHead()
EMC = OrigEMC
if sTcPos then
LoadNextTool( 2, DefTcPos2)
-- se c'è prossimo utensile, oppure se non c'è e c'è un movimento carrelli
if sTool or ( not sTool and bCarrMove) then
local dHomeX2 = EgtGetAxisHomePos( 'X2')
local dHomeC2 = EgtGetAxisHomePos( 'C2')
local dHomeB2 = EgtGetAxisHomePos( 'B2')
-- cambio utensile
EgtSetAxisPos( 'C2', dHomeC2)
EgtSetAxisPos( 'B2', dHomeB2)
EgtSetAxisPos( 'Z2', MaxZ2)
SimulMoveAxis( 'X2', dHomeX2, MCH_SIM_STEP.RAPID)
if sTcPos then
LoadNextTool( 2, sTcPos)
end
end
EMT.CHSAW_OUT = nil
end
return
end
EMT.CHSAW_OUT = nil
-- se utensile non cambia e non è sega a catena, esco
if ( EMT.NEXTTOOL == EMT.PREVTOOL_H1 or EMT.NEXTTOOL == EMT.PREVTOOL_H2) and not HeadIsChainSaw( EMT.NEXTHEAD) then return end
-- deposito utensile
EgtOutText( 'Tool change in progress...')
-- se prossimo utensile sega a catena, devo mettere in home testa 1 e depositare l'utensile sulla testa 2 o viceversa
local dHeadSet = GetHeadSet( EMT.PREVHEAD)
@@ -686,12 +691,14 @@ function OnSimulToolDeselect( dPrevA)
'B2', EgtGetAxisHomePos( 'B2'), MCH_SIM_STEP.COLLROT, 'C2', EgtGetAxisHomePos( 'C2'), MCH_SIM_STEP.COLLROT)
end
if dHeadSet == 1 then
local dNextHeadSet = GetHeadSet( EMT.NEXTHEAD)
if dNextHeadSet == 1 then
-- visualizzo utensile su TcPos
ShowToolInTcPos( EMT.PREVTCPOS_H1, true)
-- nascondo l'utensile sulla testa
EgtSetMode( EgtGetHeadId( EMT.PREVHEAD_H1 or '') or GDB_ID.NULL, GDB_MD.HIDDEN)
else
elseif dNextHeadSet == 2 then
-- visualizzo utensile su TcPos
ShowToolInTcPos( EMT.PREVTCPOS_H2, true)
-- nascondo l'utensile sulla testa
@@ -2622,7 +2629,7 @@ function FindNextToolOnHeadSet( nHSet, bFirst)
local CurrMachId = EgtGetCurrMachining()
local CurrTool = EgtTdbGetCurrToolParam( MCH_TP.NAME)
-- cerco lavorazione con utensile su gruppo testa indicato
local sTool, sHead, sTcPos
local sTool, sHead, sTcPos, bCarrMove
local OpId
if bFirst then
OpId = EgtGetFirstActiveOperation()
@@ -2635,12 +2642,20 @@ function FindNextToolOnHeadSet( nHSet, bFirst)
if EgtSetCurrMachining( OpId) then
local sNextTool = EgtGetMachiningParam( MCH_MP.TOOL)
if EgtTdbSetCurrTool( sNextTool) then
local nClId = EgtGetFirstNameInGroup( OpId, 'CL') -- recupero Id del gruppo CL della lavorazione corrente
local nPathId = EgtGetFirstInGroup( nClId or GDB_ID.NULL) -- Id del primo gruppo nella lavorazione (P1)
local dAuxMoveCount = EgtGetInfo( nPathId, 'AS#', 'd') or 0 -- numero di movimenti ausiliari
if dAuxMoveCount > 3 then
bCarrMove = true
end
local sNextHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
if GetHeadSet( sNextHead) == nHSet and EMT.TOOL ~= sNextTool then
if not HeadIsChainSaw( sNextHead) then
sHead = sNextHead
sTool = sNextTool
sTcPos = EgtTdbGetCurrToolParam( MCH_TP.TCPOS)
if GetHeadSet( sNextHead) == nHSet then
if EMT.TOOL ~= sNextTool then
if not HeadIsChainSaw( sNextHead) then
sHead = sNextHead
sTool = sNextTool
sTcPos = EgtTdbGetCurrToolParam( MCH_TP.TCPOS)
end
end
break
end
@@ -2649,11 +2664,15 @@ function FindNextToolOnHeadSet( nHSet, bFirst)
end
OpId = EgtGetNextActiveOperation( OpId)
end
-- se non c'è un operazione, significa che è fine pezzo, quindi si forza movimento carrelli perchè avverrà uno scarico
if not OpId then
bCarrMove = true
end
-- ripristino stato iniziale
EgtSetCurrMachining( CurrMachId or GDB_ID.NULL)
EgtTdbSetCurrTool( CurrTool or '')
-- restituisco risultato
return sTool, sHead, sTcPos
return sTool, sHead, sTcPos, bCarrMove
end
---------------------------------------------------------------------
+3 -14
View File
@@ -320,6 +320,8 @@ function OnSpecialLink()
else
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2, EMC.L3, EMC.R1, EMC.R2, EMC.R3}, 30, 3, 2, 'UniqueRise=1;')
end
-- altrimenti collegamento tra due lavorazioni (3)
else
end
-- se fresa su testa 2
@@ -422,19 +424,6 @@ function OnSpecialLink()
end
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2, EMC.L3, EMC.R1, EMC.R2}, 30, 3, 2, 'LastRise=1;')
-- se fine lavorazione con deposito utensile
elseif EMC.LINKTYPE == 2 then
-- retrazione
EmtRemoveRise( EMC.PREVMCHID, EMC.PREVMAIN)
if abs( EMC.R1 - EMC.R1p) > 1 or abs( EMC.R2 - EMC.R2p) > 1 then
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2p, EMC.L3, EMC.R1p, 0}, 30, 3, 2, EgtIf( bSplit, 'Split=1;', '')..'FirstRise=1;')
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2p, EMC.L3, EMC.R1, 0}, 30, 3, 2)
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2p, EMC.L3, EMC.R1, EMC.R2}, 30, 3, 2)
else
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2p, EMC.L3, EMC.R1p, EMC.R2p}, 30, 3, 2, EgtIf( bSplit, 'Split=1;', ''))
end
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2, EMC.L3, EMC.R1, EMC.R2}, 30, 3, 2, 'LastRise=1;')
-- altrimenti collegamento tra due lavorazioni (3)
else
-- recupero quota massima di collegamento
@@ -477,7 +466,7 @@ function OnSpecialLink()
EmtAddClimb( EMC.NEXTMCHID, EMC.NEXTMAIN, { EMC.L1, EMC.L2p, EMC.L3p, EMC.R1p, EMC.R2p, EMC.R3}, 30, 2, 2, 'FirstClimb=1;')
EmtAddClimb( EMC.NEXTMCHID, EMC.NEXTMAIN, { EMC.L1, EMC.L2, EMC.L3p, EMC.R1, EMC.R2p, EMC.R3}, 30, 2, 2)
if abs( EMC.R3) < 0.1 then
EmtAddClimb( EMC.NEXTMCHID, EMC.NEXTMAIN, { EMC.L1, EMC.L2, ParkCSaw0Z1, EMC.R1, EMC.R2, EMC.R3}, 30, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, EMC.NEXTMAIN, { EMC.L1, EMC.L2, ParkCSaw0Z2, EMC.R1, EMC.R2, EMC.R3}, 30, 2, 2)
else
EmtAddClimb( EMC.NEXTMCHID, EMC.NEXTMAIN, { EMC.L1, EMC.L2, EMC.L3p, EMC.R1, EMC.R2, EMC.R3}, 30, 2, 2)
end
+18 -13
View File
@@ -32,9 +32,9 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '3.1f1_RC7'
PP_NVER = '3.1.6.1'
MIN_MACH_VER = '2.5k1'
PP_VER = '3.1g2'
PP_NVER = '3.1.7.2'
MIN_MACH_VER = '3.1f4'
MACH_NAME = EgtGetCurrMachineName()
-- Carico i dati globali
@@ -224,7 +224,7 @@ if EgtExistsFile( sData) then
-- aggiustamenti
MinY1 = MinV1 + MinDeltaYV
MaxY1 = MaxMchY1
ParkV1 = MaxV1
ParkV1 = MaxV1
ParkY1 = ParkV1 + MinDeltaYV
MinY2 = MinMchY2
MaxY2 = MaxV2 - MinDeltaYV
@@ -836,13 +836,10 @@ function OnSetHead()
EmtModifyAxisHome( 'B1', MyHomeB1)
end
-- se testa H13 (sega a catena)
elseif EMC.HEAD == 'H13' then
elseif EMC.HEAD == 'H13' or EMC.HEAD == 'H15' then
-- aggiustamenti per distanza
local dDist = EgtIf( EMC.DIST and abs( EMC.DIST) > 1, EMC.DIST, ChSawLen)
EmtModifyExitPosition( EMC.HEAD, EMC.EXIT, Point3d( 0, 0, -dDist))
local vtMove = Point3d( 0, 0, -dDist) - Point3d( EMC.EXITPOS)
local ExitId = EgtGetFirstNameInGroup( EgtGetHeadId( EMC.HEAD), 'T'..tostring( EMC.EXIT))
EgtMove( ExitId, vtMove)
-- recupero valore asse A bloccato
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
local CSawPosA = tonumber( sVal:sub( 3) or '')
@@ -851,19 +848,20 @@ function OnSetHead()
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA))
EmtModifyAxisHome( 'B1', ParkCSawB1)
EmtModifyAxisDirection( 'B1', X_AX())
-- se testa H15 (mortasatrice di One)
elseif EMC.HEAD == 'H15' then
error( 'Error : Mortiser not yet managed')
end
end
---------------------------------------------------------------------
-------------------------- Testa utilizzata -------------------------
function GetHeadSet( sHead)
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' or sHead == 'H15' then
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' or sHead == 'H15' or sHead == 'H17' then
return 1
elseif sHead == 'H19' then
return 11
elseif sHead == 'H21' or sHead == 'H22' or sHead == 'H23' then
return 2
elseif sHead == 'H29' then
return 21
else
return 0
end
@@ -892,6 +890,7 @@ function GetHeadTCSet( sHead, sTcPos)
return 0
end
end
---------------------------------------------------------------------
-- Funzione che restituisce l'altezza del pezzo in lavorazione
function GetRawHeight()
@@ -911,6 +910,12 @@ function HeadIsChainSaw( sHead)
return ( sHead == 'H13' or sHead == 'H15')
end
---------------------------------------------------------------------
-- Funzione che riconosce testa per tastatore
function HeadIsProbe( sHead)
return ( sHead == 'H19' or sHead == 'H29')
end
---------------------------------------------------------------------
-- Funzione che calcola la posizione Home di Z per la sega a catena dal valore dell'asse virtuale
function GetChainSawZHomeFromVirtualAxis( dPosA)
@@ -974,7 +979,7 @@ end
-- Funzione per impostare spia stato morsa carrello Y1
function SetPY1Light( bClosed)
if not PY1LightId then return end
EgtSetColor( PY1LightId, EgtIf( bClosed, 'RED', 'LIME'))
EgtSetColor( PY1LightId, EgtIf( bClosed, 'RED', 'LIME'))
if bClosed then
EgtSetInfo( PY1LightId, 'On', '1')
else
BIN
View File
Binary file not shown.
+24 -1
View File
@@ -1,10 +1,33 @@
==== Common_ONE-PF Update Log ====
Versione 3.1g2 (07/07/2026)
- (SIM) Corretta gestione cambio utensile con motosega
Versione 3.1g1 (07/07/2026)
- (ALL) Prima versione con gestione nuovi link (no tastatore)
- Gestione lavorazioni in doppio
- Preselezione utensile gestibile da parametri TS3
- Gestione Drilling e Pocketing NT
Versione 3.1f5 (26/06/2026)
- (SIM-GEN) Se tasca con motosega in faccia sopra e pezzo alto, si ruota in sicurezza.
Versione 3.1f4 (17/06/2026)
- (MLDE-GEN) Corretta preselezione in caso di testa in lavoro troppo vicina a quella che sta preselezionando. Da aggiungere in MLDE parametri 'Limit_T1_Presel_T2' e 'Limit_T2_Presel_T1'
Versione 3.1f3 (08/06/2026)
- (GEN) M77 viene ora eseguita, prima era commentata.
Versione 3.1f2 (05/06/2026)
- (MLDE-GEN) Aggiunti parametri di limite asse X per decidere se fare preselezione su altra testa. Serve modifica MLDE
Versione 3.1f1 (03/06/2026)
- (NGE-MLDE-GEN-SIM) Versione unificata con predisposizione per gestione tastatori. Serve modificare anche la macchina, per ora gestione completa solo su PFrl.
Versione 3.1c2 (17/03/2026)
- (SIM-GEN) Aggiunta OnSpecialApplyMachining per calcolare i carrelli da subito
- Aggiungendo OnSpecialApplyMachining, ora la OnSpecialGetPrevMachiningOffset lavora correttamente. ATT: MIN_MACH -> 3.1b2
Versione 3.1c1 (04/03/2026)
- (GEN) Corretta chiamata di una variabile insesistente in caso di ONE
- (SIM) Allineata simulazione a generazione
+2 -2
View File
@@ -3,8 +3,8 @@
local InfoCommon_STD_PP = {
NAME = 'Common_ONE-PF', -- nome script PP standard
VERSION = '3.1c2', -- versione script
MIN_MACH_VER_PP_COMMON = '3.1b2' -- versione minima kernel
VERSION = '3.1g2', -- versione script
MIN_MACH_VER_PP_COMMON = '3.1f1' -- versione minima kernel
}
return InfoCommon_STD_PP