Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 00297eca64 | |||
| c0f489b339 | |||
| 7b35cccaf5 | |||
| da6d0bed2a | |||
| 75ff61f3dc | |||
| dba8997045 | |||
| 263758a422 | |||
| 1e6bc44019 | |||
| 0909656a6c | |||
| 23e17d9623 | |||
| 7ba04b6e17 | |||
| 67401b8799 | |||
| 8b9a77cdaf | |||
| 9662b22f03 |
@@ -106,13 +106,6 @@ if EgtExistsFile( sData) then
|
||||
BeamData.DIM_STRIP_SMALL = Machine.Offsets.DIM_STRIP_SMALL or BeamData.DIM_STRIP_SMALL
|
||||
BeamData.DIM_TO_CENTER_STRIP = Machine.Offsets.DIM_TO_CENTER_STRIP or BeamData.DIM_TO_CENTER_STRIP
|
||||
BeamData.MAXDIAM_POCK_CORNER = Machine.Offsets.MAXDIAM_POCK_CORNER or BeamData.MAXDIAM_POCK_CORNER
|
||||
BeamData.LONGCUT_ENDLEN = Machine.Offsets.LONGCUT_ENDLEN or BeamData.LONGCUT_ENDLEN
|
||||
BeamData.LONGCUT_MAXLEN = Machine.Offsets.LONGCUT_MAXLEN or BeamData.LONGCUT_MAXLEN
|
||||
BeamData.ADVANCE_TAIL_OFFS = Machine.Offsets.ADVANCE_TAIL_OFFS or BeamData.ADVANCE_TAIL_OFFS
|
||||
BeamData.LEN_VERY_SHORT_PART = Machine.Offsets.LEN_VERY_SHORT_PART or BeamData.LEN_VERY_SHORT_PART
|
||||
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
||||
BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID
|
||||
if Machine.Offsets.ROT90 ~= nil then BeamData.ROT90 = ( Machine.Offsets.ROT90 == 1) end
|
||||
if Machine.Offsets.PRECUT_HEAD_DISABLE then BeamData.PRECUT_HEAD = ( Machine.Offsets.PRECUT_HEAD_DISABLE == 0) end
|
||||
if Machine.Offsets.PRECUT_TAIL_DISABLE then BeamData.PRECUT_TAIL = ( Machine.Offsets.PRECUT_TAIL_DISABLE == 0) end
|
||||
end
|
||||
@@ -242,19 +235,11 @@ local function GetSetupInfo( sHead)
|
||||
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||
SetupInfo.PreferredSide = { bFront = false, bBack = true}
|
||||
SetupInfo.dMinNz = sin( -45)
|
||||
-- se con aggregato si considera non simmetrico
|
||||
SetupInfo.bIsCSymmetrical = false
|
||||
-- riduzione massimo materiale se usato in tagli orizzontali con affondamento verticale
|
||||
SetupInfo.dMaxMatDecrease = 20
|
||||
-- lama su testa 5 assi da sopra, davanti
|
||||
elseif sHead == 'H22' then
|
||||
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||
SetupInfo.PreferredSide = { bFront = true, bBack = false}
|
||||
SetupInfo.dMinNz = sin( -45)
|
||||
-- se con aggregato si considera non simmetrico
|
||||
SetupInfo.bIsCSymmetrical = false
|
||||
-- riduzione massimo materiale se usato in tagli orizzontali con affondamento verticale
|
||||
SetupInfo.dMaxMatDecrease = 20
|
||||
-- motosega 1
|
||||
elseif sHead == 'H13' or sHead == 'H23' then
|
||||
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
22=Long2CutSide
|
||||
23=SmallToolContour
|
||||
24=AntiSplintMillCut
|
||||
25=Prof_end
|
||||
|
||||
[Pocketing]
|
||||
1=Pocket
|
||||
|
||||
+77
-31
@@ -312,8 +312,6 @@ function OnDispositionEnd()
|
||||
MyOutputNoNum( '(PART UNLOAD)')
|
||||
for i = 1, #EMT.MDCHAR do
|
||||
EmitMoveDataChars( EMT.MDCHAR[i])
|
||||
if EMT.MDCHAR[i].V1 then EMT.V1POS = EMT.MDCHAR[i].V1 end
|
||||
if EMT.MDCHAR[i].V2 then EMT.V2POS = EMT.MDCHAR[i].V2 end
|
||||
end
|
||||
EmitMoveStartChars( 2)
|
||||
-- se dopo c'è scarico spezzone devo mettere attesa termine esecuzione
|
||||
@@ -329,8 +327,7 @@ function OnDispositionEnd()
|
||||
end
|
||||
elseif EMT.SPECUNLOADING then
|
||||
EmtOutput( '(PART SPEC UNLOADING)')
|
||||
local dAbsHeadPos = EMT.L1pp or EMT.L1
|
||||
EmitBeamHeadData( { T=dAbsHeadPos, Pz5=2})
|
||||
EmitBeamHeadData( { T=EMT.L1, Pz5=2})
|
||||
EMT.SPECUNLOADING = nil
|
||||
EMT.W2DELTA = nil
|
||||
-- emissione conclusione pezzo precedente
|
||||
@@ -448,6 +445,14 @@ function OnMachiningStart()
|
||||
local MyParkCSawC2 = GetChainSawCHomeFromVirtualAxis( dPosA)
|
||||
EmtModifyAxisHome( 'C2', MyParkCSawC2)
|
||||
end
|
||||
-- gestione eventuale tastatura
|
||||
local bProbing = EgtGetValInNotes( EMT.MCHUSERNOTES, 'PROBE', 'b') or EgtGetValInNotes( EMT.MCHUSERNOTES, 'START-PROBE', 'b')
|
||||
if bProbing and Probe then
|
||||
if VerifyToolProbeCompatibility() then
|
||||
EMT.PROBE = true
|
||||
EMT.EXECPROBE = true
|
||||
end
|
||||
end
|
||||
-- gestione eventuale lavorazione in doppio
|
||||
local nDouType = EgtGetValInNotes( EMT.MCHUSERNOTES, 'DOUBLE', 'i')
|
||||
if nDouType == 2 or nDouType == 3 then
|
||||
@@ -612,6 +617,15 @@ function OnMachiningEnd()
|
||||
EMT.PREVHEAD = EMT.HEAD
|
||||
EMT.PREVTCPOS = EMT.TCPOS
|
||||
|
||||
-- se tastatura attiva, si disabilita la tastatura
|
||||
if EMT.PROBE then
|
||||
-- gestione eventuale tastatura
|
||||
local bStopProbing = EgtGetValInNotes( EMT.MCHUSERNOTES, 'PROBE', 'b') or EgtGetValInNotes( EMT.MCHUSERNOTES, 'END-PROBE', 'b')
|
||||
if bStopProbing then
|
||||
EmtOutput( 'G145 Z-10 EF0')
|
||||
EMT.PROBE = nil
|
||||
end
|
||||
end
|
||||
-- se taglio finale, aggiorno lunghezza barra
|
||||
if EMT.MCHCUT then
|
||||
EMT.LB = EMT.LT + ( EMT.X_OFF or 0)
|
||||
@@ -677,8 +691,8 @@ function OnPathStart()
|
||||
EMT.L1pp = EMT.L1op
|
||||
EMT.L2pp = EMT.L2op
|
||||
EMT.L3pp = EMT.L3op
|
||||
EMT.R1pp = EMT.R1p or EMT.R1pp
|
||||
EMT.R2pp = EMT.R2p or EMT.R2pp
|
||||
EMT.R1pp = EMT.R1p
|
||||
EMT.R2pp = EMT.R2p
|
||||
else
|
||||
EMT.L1pp = nil
|
||||
EMT.L2pp = nil
|
||||
@@ -826,11 +840,11 @@ function OnRapid()
|
||||
EMT.L3 = EMT.L3s
|
||||
end
|
||||
end
|
||||
local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65)
|
||||
-- se prima lavorazione
|
||||
if EMT.LOAD then
|
||||
EMT.V2POS = ParkV2
|
||||
-- primo posizionamento
|
||||
local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65)
|
||||
local bOnlyCharY = true
|
||||
-- eventuale Movimento Pinze
|
||||
for i = 1, #EMT.AUXCMD do
|
||||
@@ -1240,7 +1254,6 @@ function OnRapid()
|
||||
local HomeC1 = EgtGetAxisHomePos( 'C1')
|
||||
local HomeB1 = EgtGetAxisHomePos( 'B1')
|
||||
local dTRad, dTLen = GetToolRadLen()
|
||||
local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65)
|
||||
if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then
|
||||
-- se fresa o lama
|
||||
if not HeadIsChainSaw( EMT.HEAD) then
|
||||
@@ -1339,7 +1352,6 @@ function OnRapid()
|
||||
local HomeC1 = EgtGetAxisHomePos( 'C1')
|
||||
local HomeB1 = EgtGetAxisHomePos( 'B1')
|
||||
local dTRad, dTLen = GetToolRadLen()
|
||||
local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65)
|
||||
if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then
|
||||
-- se fresa o lama
|
||||
if not HeadIsChainSaw( EMT.HEAD) then
|
||||
@@ -1403,7 +1415,6 @@ function OnRapid()
|
||||
local HomeC2 = EgtGetAxisHomePos( 'C2')
|
||||
local HomeB2 = EgtGetAxisHomePos( 'B2')
|
||||
local dTRad, dTLen = GetToolRadLen()
|
||||
local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65)
|
||||
if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then
|
||||
-- se fresa o lama
|
||||
if not HeadIsChainSaw( EMT.HEAD) then
|
||||
@@ -1515,13 +1526,53 @@ function OnRapid()
|
||||
EMT.RELOAD = false
|
||||
EMT.RELOAD2 = nil
|
||||
end
|
||||
-- TODO DA SISTEMARE
|
||||
-- se bisogna fare tastatura
|
||||
if EMT.EXECPROBE then
|
||||
EMT.EXECPROBE = nil
|
||||
local dSecDistProbe = 10 -- 10 = distanza sicurezza tastatore
|
||||
local dLenProbe = 170 -- 170 = lunghezza tastatore
|
||||
local dOffHeadProbe = 75 -- offset naso mandrino / centro tastatore
|
||||
local dPivot = EgtIf( GetHeadSet( EMT.HEAD) == 1, MillOffs, Mill2Offs)
|
||||
local vtE = Vector3d( EMT.EXTR)
|
||||
local sFace, ProbePosX, ProbePosZ
|
||||
if AreSameVectorApprox( vtE, Y_AX()) then
|
||||
ProbePosX = -( EMT.TABORI1[2] + EMT.HB + dSecDistProbe + dLenProbe + MillOffs)
|
||||
ProbePosZ = EMT.TABORI1[3] - MillOffs + ( EMT.SB / 2) + EgtIf( EMT.R2 > 0, dOffHeadProbe, -dOffHeadProbe)
|
||||
sFace = EgtIf( BD.RIGHT_LOAD, 4, 2)
|
||||
elseif AreSameVectorApprox( vtE, -Y_AX()) then
|
||||
ProbePosX = -( EMT.TABORI1[2] - dSecDistProbe - dLenProbe - MillOffs)
|
||||
ProbePosZ = EMT.TABORI1[3] - MillOffs + ( EMT.SB / 2) + EgtIf( EMT.R2 > 0, dOffHeadProbe, -dOffHeadProbe)
|
||||
sFace = EgtIf( BD.RIGHT_LOAD, 2, 4)
|
||||
elseif AreSameVectorApprox( vtE, Z_AX()) then
|
||||
ProbePosX = -( EMT.TABORI1[2] + ( EMT.HB / 2) + dOffHeadProbe)
|
||||
ProbePosZ = EMT.TABORI1[3] + EMT.SB + dSecDistProbe + dLenProbe
|
||||
sFace = 3
|
||||
else
|
||||
error( "PROBING DIRECTION NOT MANAGED")
|
||||
end
|
||||
|
||||
EmitMoveDataHead( GetHeadSet( EMT.HEAD), { X=ProbePosX, Z=ProbePosZ, B=EMT.R2, C=EMT.R1})
|
||||
EmitMoveStartHead( GetHeadSet( EMT.HEAD))
|
||||
EmitMoveWaitHead( GetHeadSet( EMT.HEAD))
|
||||
local sProbeHead = ' ET' .. GetHeadSet( EMT.HEAD)
|
||||
EmtOutput( 'G145 Z-20 EF'..sFace..sProbeHead)
|
||||
-- ci si riporta in posizione fuori ingombro pezzo
|
||||
if AreSameVectorApprox( vtE, Y_AX()) or AreSameVectorApprox( vtE, -Y_AX()) then
|
||||
ProbePosZ = EMT.TABORI1[3] + EMT.SB
|
||||
elseif AreSameVectorApprox( vtE, Z_AX()) then
|
||||
ProbePosX = EMT.L2
|
||||
end
|
||||
EmitMoveDataHead( GetHeadSet( EMT.HEAD), { X=ProbePosX, Z=ProbePosZ, B=EMT.R2, C=EMT.R1, S=Speed})
|
||||
EmitMoveStartHead( GetHeadSet( EMT.HEAD))
|
||||
EmitMoveWaitHead( GetHeadSet( EMT.HEAD))
|
||||
end
|
||||
-- se taglio di coda senza residuo da scaricare, emetto M175 per accelerare il carico della barra successiva
|
||||
if EMT.MCHUSERNOTES and EMT.MCHUSERNOTES:find( 'Cut', 1, true) then
|
||||
EmtOutput( 'M175')
|
||||
end
|
||||
EMT.REFLOC = 0
|
||||
EMT.MCHFIRST = false
|
||||
EMT.PLANEACTIVE = true
|
||||
EMT.ZMAX = false
|
||||
-- se standard
|
||||
elseif EMT.FLAG == 0 or EMT.FLAG == 1 or EMT.FLAG == 2 then
|
||||
@@ -1551,7 +1602,6 @@ function OnRapid()
|
||||
EmtOutput( 'M175')
|
||||
end
|
||||
EMT.MCHFIRST = false
|
||||
EMT.PLANEACTIVE = true
|
||||
end
|
||||
-- se necessario, impostazione riferimento locale
|
||||
if EMT.REFLOC == 0 then
|
||||
@@ -1608,7 +1658,7 @@ function OnRapid()
|
||||
MyAdjustLinearAxes()
|
||||
EmtAdjustRotaryAxes()
|
||||
-- se Split o Presplit lascio agganciata solo la pinza Y2 alla fine dei movimenti
|
||||
local sNextTool = GetNextTool( EMT.MCHID, true)
|
||||
local sNextTool = GetNextTool( EMT.MCHID)
|
||||
-- vado in home se è ultimo movimento ed è ultima lavorazione, se sono con motosega e devo cambiare utensile, oppure se ho la lama
|
||||
local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool) or ( EMT.HEAD == 'H23' and EMT.TOOL ~= sNextTool) or ( EMT.HEAD == 'H13' and EMT.TOOL ~= sNextTool) or
|
||||
( EMT.HEAD == 'H12' and EMT.TOOL ~= sNextTool ) or ( EMT.HEAD == 'H22' and EMT.TOOL ~= sNextTool) or EMT.MCHSPLIT
|
||||
@@ -1656,7 +1706,6 @@ function OnLinear()
|
||||
EMT.L3p = nil
|
||||
local sDouFlag = EgtIf( EMT.DOU_TYPE, ' EE1', '')
|
||||
EmtOutput( 'G142'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EMT.IPLGLSTR..EgtIf( nHSet~=2, ' EU1', ' EU2')..sDouFlag..' EF'..GetFmaxClamp())
|
||||
EMT.PLANEACTIVE = true
|
||||
-- emissione movimento
|
||||
local sOut = 'G0'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..
|
||||
EmtGetAxis('R2')..EmtGetAxis('R1')
|
||||
@@ -1740,7 +1789,6 @@ function OnArc()
|
||||
EMT.L3p = nil
|
||||
local sDouFlag = EgtIf( EMT.DOU_TYPE, ' EE1', '')
|
||||
EmtOutput( 'G142'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EMT.IPLGLSTR..EgtIf( nHSet~=2, ' EU1', ' EU2')..sDouFlag..' EF'..GetFmaxClamp())
|
||||
EMT.PLANEACTIVE = true
|
||||
-- emissione movimento
|
||||
local sOut = 'G0'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..
|
||||
EmtGetAxis('R2')..EmtGetAxis('R1')
|
||||
@@ -1790,13 +1838,17 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function CalcDinamicaPinze( dH, dS, dL)
|
||||
local MinTempoAcc = 0.3 -- [s]
|
||||
local MaxTempoAcc = 4.0 -- [s]
|
||||
local KgMtCubo= WoodDensity or 550 -- densità legno [Kg / metro cubo]
|
||||
local Massa = ( dH * dS * dL * KgMtCubo ) / 1e9 -- massa [Kg]
|
||||
local FMaxPinze = EMT.FMAXPINZE -- Feed massima pinze [mm/min]
|
||||
local ForzaAttrito = 350 * 9.8 * 0.2 -- Forza chiusura pinze [Kgf] * g * Coeff_Attrito -> [N]
|
||||
local TempoAcc = ( ( Massa * FMaxPinze) / ( 60 * ForzaAttrito) / 1000)
|
||||
local AccMaxPinze = EMT.MAXACC
|
||||
local AccPinze = EgtClamp( FMaxPinze / ( 60 * TempoAcc), EMT.MINACC, EMT.MAXACC)
|
||||
if ( TempoAcc < MinTempoAcc) then TempoAcc = MinTempoAcc end
|
||||
if ( TempoAcc > MaxTempoAcc) then TempoAcc = MaxTempoAcc end
|
||||
local AccMaxPinze = EMT.MAXACC or FMaxPinze / ( 60 * MinTempoAcc)
|
||||
local AccPinze = FMaxPinze / ( 60 * TempoAcc)
|
||||
local RidFeed = 100 / Massa * 100
|
||||
if RidFeed > 100 then
|
||||
RidFeed = 100
|
||||
@@ -2422,9 +2474,6 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function GetV1ToCloseNum( UseCurrV1)
|
||||
if EMT.MCHPRECUT or EMT.MCHCUT then
|
||||
return false
|
||||
end
|
||||
--EmtOutput( string.format( 'L1m=%.3f L1M=%.3f', EMT.MAXMIN[1], EMT.MAXMAX[1]))
|
||||
--EmtOutput( string.format( 'LB=%.3f LT=%.3f', EMT.LB, EMT.LT))
|
||||
local dV1Pos
|
||||
@@ -2806,7 +2855,9 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
local MovH = { Z = EgtIf( dZref > EMT.L3o, dZref, EMT.L3o)}
|
||||
MovH.X = -dXPos ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
|
||||
EmitMoveDataHead( 1, MovH)
|
||||
EmitMoveDataHead( 1, { Z=dMaxZ1, B=0})
|
||||
if EMT.HEAD == 'H12' and ( abs( dSafeC1 - PrevR1) > 30.1 or abs( dSafeB1 - PrevR2) > 30.1) or not( bProgress) then
|
||||
EmitMoveDataHead( 1, { Z=dMaxZ1, B=0})
|
||||
end
|
||||
EmitMoveDataHead( 1, { C=dSafeC1})
|
||||
EmitMoveDataHead( 1, { B=dSafeB1})
|
||||
EmitMoveDataHead( 1, { Z=dMaxZ1})
|
||||
@@ -2957,19 +3008,14 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function EmitResetMachining()
|
||||
if EMT.PLANEACTIVE then
|
||||
-- se non sono a Z massima e operatore deve entrare in cabina spango sempre
|
||||
if not EMT.ZMAX and ( GetSpecUnloading( EMT.PATHID) or GetFall( EMT.PATHID)) then
|
||||
EmtOutput( 'M05')
|
||||
-- altrimenti spegnimento dipende da parametro
|
||||
elseif ( EMT.TOOL ~= GetNextTool( EMT.MCHID, false) and IsLastPath( EMT.PATHID)) or GetSpecUnloading( EMT.PATHID) or GetFall( EMT.PATHID) then
|
||||
if ( EMT.TOOL ~= GetNextTool( EMT.MCHID) and IsLastPath( EMT.PATHID)) or GetSpecUnloading( EMT.PATHID) or GetFall( EMT.PATHID) then
|
||||
-- se da MLDE parametro non settato, o settato a true, scrivo il comando arresto mandrino
|
||||
if WriteM05Command == nil or WriteM05Command then
|
||||
EmtOutput( 'M05')
|
||||
end
|
||||
local sOut = 'G157 EA1'
|
||||
EmtOutput( sOut)
|
||||
-- piano non più attivo
|
||||
EMT.PLANEACTIVE = false
|
||||
end
|
||||
local sOut = 'G157 EA1'
|
||||
EmtOutput( sOut)
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
+36
-26
@@ -237,9 +237,9 @@ function OnSimulDispositionStart()
|
||||
end
|
||||
end
|
||||
-- determino la risoluzione dello Zmap
|
||||
local dTol = 4.71
|
||||
local dTol = 4.00
|
||||
if EmtGetVMillStep then
|
||||
dTol = EmtGetVMillStep( b3Raw:getDimX(), b3Raw:getDimY(), b3Raw:getDimZ(), 4.71)
|
||||
dTol = EmtGetVMillStep( b3Raw:getDimX(), b3Raw:getDimY(), b3Raw:getDimZ(), 4.00)
|
||||
else
|
||||
local dArea = b3Raw:getDimX() * b3Raw:getDimY() + b3Raw:getDimX() * b3Raw:getDimZ() + b3Raw:getDimY() * b3Raw:getDimZ()
|
||||
if dArea < 0.075e6 then
|
||||
@@ -513,8 +513,10 @@ function OnSimulToolSelect( dPosA)
|
||||
end
|
||||
-- se sega a catena, imposto subito angolo scelto per asse virtuale A
|
||||
if HeadIsChainSaw( EMT.HEAD) then
|
||||
-- apro le paratie
|
||||
ExecParkRoller( nil, nil, nil, nil, false, IsStartPhase( EMT.PHASE))
|
||||
-- se non Progress, apro le paratie
|
||||
if not Progress then
|
||||
ExecParkRoller( nil, nil, nil, nil, false, IsStartPhase( EMT.PHASE))
|
||||
end
|
||||
-- valore dell'asse virtuale
|
||||
dPosA = dPosA or GetNextChainSawingVirtualAxis( EMT.MCHID)
|
||||
-- imposto il valore di A
|
||||
@@ -719,7 +721,7 @@ function OnSimulToolDeselect( dPrevA)
|
||||
local MyParkB1 = ParkB1
|
||||
local MyParkC1 = ParkC1
|
||||
-- se ho due teste oppure è progress, significa che ho CU verticale
|
||||
if EgtGetHeadId('H21') or Progress then
|
||||
if EgtGetHeadId('H21') or bProgress then
|
||||
MyParkB1 = EgtIf( GetHeadTCSet( EMT.NEXTHEAD, EMT.NEXTTCPOS) == 'Head1_TC1', ParkB1, ParkFrnB1)
|
||||
MyParkC1 = EgtIf( GetHeadTCSet( EMT.NEXTHEAD, EMT.NEXTTCPOS) == 'Head1_TC1', ParkC1, ParkFrnC1)
|
||||
-- altrimenti su one CU speciale motosega-utensile lungo
|
||||
@@ -770,7 +772,6 @@ function OnSimulMachiningStart()
|
||||
EMT.VMRS = ( EMT.MCHTYPE ~= MCH_MY.DRILLING and not EMT.MCHUSERNOTES:find( 'VMRS=0;', 1, true))
|
||||
EMT.MCHSPLIT = ( EMT.MCHUSERNOTES:find( 'Split;', 1, true) ~= nil)
|
||||
EMT.MCHPRECUT = ( EMT.MCHUSERNOTES:find( 'Precut;', 1, true) ~= nil)
|
||||
EMT.MCHCUT = ( EMT.MCHUSERNOTES:find( 'Cut;', 1, true) ~= nil)
|
||||
-- recupero TASKID della feature lavorata
|
||||
local vId = EgtGetMachiningGeometry()
|
||||
if vId and #vId > 0 and #vId[1] > 0 then
|
||||
@@ -778,6 +779,12 @@ function OnSimulMachiningStart()
|
||||
else
|
||||
EMT.TASKID = 0
|
||||
end
|
||||
-- gestione eventuale tastatura
|
||||
EMT.PROBE = nil
|
||||
local bProbing = EgtGetValInNotes( EMT.MCHUSERNOTES, 'PROBE', 'b')
|
||||
if bProbing then
|
||||
EMT.PROBE = true
|
||||
end
|
||||
-- gestione eventuale lavorazione in doppio
|
||||
local nDouType = EgtGetValInNotes( EMT.MCHUSERNOTES, 'DOUBLE', 'i')
|
||||
if nDouType == 2 then
|
||||
@@ -964,12 +971,7 @@ function OnSimulMoveStart()
|
||||
-- pinza 5
|
||||
if EMT.W2DELTA then
|
||||
EMT.A5n = 'W'
|
||||
local dPosQW = EgtGetAxisPos( 'QW') or 0
|
||||
if dPosQW < 1 then
|
||||
EMT.A5m = nil
|
||||
else
|
||||
EMT.A5m = 'T'
|
||||
end
|
||||
EMT.A5m = 'T'
|
||||
EMT.A5 = EMT.L1 + EMT.W2DELTA - EMT.A4
|
||||
VerifyWStroke( EMT.A5)
|
||||
end
|
||||
@@ -1057,9 +1059,9 @@ function OnSimulMoveStart()
|
||||
end
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
-- se anche precedente con sega a catena ma depositata, devo riprenderla
|
||||
if EMT.CHSAW_OUT then
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||
OnSimulToolDeselect()
|
||||
EgtLoadTool( EMT.HEAD, 1, EMT.TOOL)
|
||||
@@ -1123,9 +1125,9 @@ function OnSimulMoveStart()
|
||||
end
|
||||
-- altrimenti sega a catena (H13 o H15)
|
||||
else
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
-- se anche precedente con sega a catena ma depositata, devo riprenderla
|
||||
if EMT.CHSAW_OUT then
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||
OnSimulToolDeselect()
|
||||
EgtLoadTool( EMT.HEAD, 1, EMT.TOOL)
|
||||
@@ -1199,9 +1201,9 @@ function OnSimulMoveStart()
|
||||
end
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
-- se anche precedente con sega a catena ma depositata, devo riprenderla
|
||||
if EMT.CHSAW_OUT then
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||
OnSimulToolDeselect()
|
||||
EgtLoadTool( EMT.HEAD, 1, EMT.TOOL)
|
||||
@@ -1347,7 +1349,7 @@ function OnSimulMoveEnd()
|
||||
-- eventuale rimozione sfridi
|
||||
ExecRemoveScraps()
|
||||
-- se Split o Presplit lascio agganciata solo la pinza Y2 alla fine dei movimenti
|
||||
local sNextTool = GetNextTool( EMT.MCHID, true)
|
||||
local sNextTool = GetNextTool( EMT.MCHID)
|
||||
-- vado in home se è ultimo movimento ed è ultima lavorazione, se sono con motosega e devo cambiare utensile, oppure se ho la lama
|
||||
local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool) or ( EMT.HEAD == 'H23' and EMT.TOOL ~= sNextTool) or ( EMT.HEAD == 'H13' and EMT.TOOL ~= sNextTool) or
|
||||
( EMT.HEAD == 'H12' and EMT.TOOL ~= sNextTool ) or ( EMT.HEAD == 'H22' and EMT.TOOL ~= sNextTool) or EMT.MCHSPLIT
|
||||
@@ -1481,7 +1483,7 @@ function ExecAuxCmd( sCmd, bPathStart)
|
||||
ExecMoveHome( Cmd[2] == '1', EgtIf( bPathStart, false, EMT.MCHSPLIT))
|
||||
elseif Cmd[1] == '11' then
|
||||
local bClose = Cmd[2] ~= '0'
|
||||
if bPathStart and EMT.MCHSPLIT and not ( EMT.FALL or EMT.TO_FALL) and GetPY2Light() then bClose = false end
|
||||
if bPathStart and EMT.MCHSPLIT and not EMT.FALL and GetPY2Light() then bClose = false end
|
||||
ExecMovePY1( bClose)
|
||||
elseif Cmd[1] == '12' then
|
||||
ExecMovePY2( Cmd[2] ~= '0')
|
||||
@@ -1679,12 +1681,14 @@ function ExecMoveZmax( bMchSplit, btoXHome)
|
||||
SimulMoveAxes( 'X1', HomeX, MCH_SIM_STEP.RAPID, 'C1', HomeC, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
else
|
||||
-- se fresa o lama
|
||||
-- se sega a catena
|
||||
if not HeadIsChainSaw( EMT.HEAD) then
|
||||
if abs( HomeC - CurrC) > 0.1 or abs( HomeB - CurrB) > 0.1 then
|
||||
local dZref = HomeZ + GetZExtra( EMT.HEAD, CurrB)
|
||||
SimulMoveAxes( 'Z1', EgtIf( dZref > CurrZ, dZref, CurrZ), MCH_SIM_STEP.RAPID, 'B1', EgtClamp( CurrB, -90, 90), MCH_SIM_STEP.COLLROT)
|
||||
SimulMoveAxes( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID, 'B1', 0, MCH_SIM_STEP.COLLROT)
|
||||
if EMT.HEAD == 'H12' and ( abs( HomeC - CurrC) > 30.1 or abs( HomeB - CurrB) > 30.1) or not( bProgress) then
|
||||
SimulMoveAxes( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID, 'B1', 0, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
SimulMoveAxis( 'C1', HomeC, MCH_SIM_STEP.COLLROT)
|
||||
SimulMoveAxis( 'B1', HomeB, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
@@ -1730,13 +1734,13 @@ function ExecMoveZmax( bMchSplit, btoXHome)
|
||||
EMT.XHOME = true
|
||||
SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
-- altrimenti sega a catena
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
SimulMoveAxes( 'Z2', HomeZ, MCH_SIM_STEP.RAPID, 'B2', HomeB, MCH_SIM_STEP.COLLROT)
|
||||
if EMT.R3 and abs( EMT.R3) < 0.1 then
|
||||
SimulMoveAxis( 'Z2', ParkCSawZ2, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
SimulMoveAxes( 'X2', ParkCSawX2, MCH_SIM_STEP.RAPID, 'C2', HomeC, MCH_SIM_STEP.COLLROT)
|
||||
SimulMoveAxes( 'X2', HomeX, MCH_SIM_STEP.RAPID, 'C2', HomeC, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
end
|
||||
EMT.ZMAX = true
|
||||
@@ -2208,9 +2212,6 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function GetV1ToClose()
|
||||
if EMT.MCHPRECUT or EMT.MCHCUT then
|
||||
return false
|
||||
end
|
||||
--EgtOutLog( string.format( 'L1m=%.3f L1M=%.3f V2NP=%.3f LB=%.3f', EMT.MAXMIN[1], EMT.MAXMAX[1], EMT.V2NEXTPOS, EMT.LB))
|
||||
--EgtOutLog( string.format( 'LB=%.3f LT=%.3f', EMT.LB, EMT.LT or 0))
|
||||
return ( EMT.MAXMAX[1] <= EMT.V1NEXTPOS + RollCageMin and EMT.MAXMIN[1] + EMT.LB >= EMT.V1NEXTPOS + RollCageMax)
|
||||
@@ -2287,6 +2288,15 @@ function LoadNextTool( nHSet, sTcPosDef, bFirst)
|
||||
return sTool
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function VerifyToolProbeCompatibility()
|
||||
local bToolIsCompatible = false
|
||||
if EMT.TTOTLEN < 160 and EMT.TTOTDIAM < 80 then
|
||||
bToolIsCompatible = true
|
||||
end
|
||||
return bToolIsCompatible
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** ESTIMATION T&L ***
|
||||
---------------------------------------------------------------------
|
||||
@@ -2820,7 +2830,7 @@ function GetNextChainSawingVirtualAxis( MchId)
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function GetNextTool( nMchId, bResetOnStart)
|
||||
function GetNextTool( nMchId)
|
||||
-- inizializzo prossimo utensile
|
||||
local sNextTool
|
||||
-- recupero lavorazione successiva
|
||||
@@ -2828,7 +2838,7 @@ function GetNextTool( nMchId, bResetOnStart)
|
||||
while nNextMchId do
|
||||
-- se la prossima lavorazione è lo start di un altro pezzo, faccio finta che cambia utensile in modo che vada in parcheggio con utensili speciali
|
||||
if EgtGetOperationType( nNextMchId) == MCH_OY.DISP then
|
||||
if IsStartOrRestPhase( EMT.PHASE+1) and bResetOnStart then
|
||||
if IsStartOrRestPhase( EMT.PHASE+1) then
|
||||
return nil
|
||||
end
|
||||
else
|
||||
|
||||
+7
-14
@@ -223,7 +223,7 @@ local MIN_BACK_ENG_V = 115 -- ingombro asse Z a sinistra
|
||||
local AGG_V = MinDeltaYV -- ingombro rulli pressori + sicurezza
|
||||
local MIN_CLAMP_5 = 150 -- minima presa con la pinza speciale (pinza 5)
|
||||
local SIC_CLAMP_5 = 50 -- sicurezza testa da pinza speciale
|
||||
local MAX_BACK_CLAMP_5 = EgtClamp( MaxBackClamp5 or 320, 200, 380) -- massima sporgenza posteriore del pezzo da pinza speciale
|
||||
local MAX_BACK_CLAMP_5 = 320 -- massima sporgenza posteriore del pezzo da pinza speciale
|
||||
|
||||
----------------------- Variabili -----------------------------------
|
||||
local Test = false
|
||||
@@ -1553,11 +1553,8 @@ function SpecCalcUnload()
|
||||
EgtOutLog( ' *[U1]', 1)
|
||||
end
|
||||
local vCmd = {}
|
||||
-- Tipo di scarico
|
||||
local bStdUl = ( not MaxUnloadLen or MaxUnloadLen < 1 or EMC.LB - EMC.HOVM < MaxUnloadLen + 1)
|
||||
|
||||
-- Commento
|
||||
table.insert( vCmd, { 0, 'Unloading', EgtIf( bStdUl, 'Unloading', 'Manual Unloading')})
|
||||
table.insert( vCmd, { 0, 'Unloading'})
|
||||
-- posizionamento sicuro teste e rulli (non serve ?)
|
||||
--table.insert( vCmd, { 4, 0})
|
||||
-- Se pinza Y chiusa, la apro
|
||||
@@ -1565,15 +1562,11 @@ function SpecCalcUnload()
|
||||
table.insert( vCmd, { 11, 0})
|
||||
EMC.CNT = nil
|
||||
end
|
||||
-- Se non supero la lunghezza massima di scarico, sposto il pezzo in posizione di scarico
|
||||
if bStdUl then
|
||||
local dFinT = UnloadT - EMC.LB
|
||||
local dFinY2 = dFinT + EMC.Y2DELTA
|
||||
table.insert( vCmd, { 2, 'T', dFinT, 'Y2', dFinY2})
|
||||
EgtOutLog( ' Y2PosF=' .. EgtNumToString( dFinY2), 1)
|
||||
else
|
||||
table.insert( vCmd, { 1, 'Y2', MaxY2})
|
||||
end
|
||||
-- Sposto il pezzo in posizione di scarico
|
||||
local dFinT = UnloadT - EMC.LB
|
||||
local dFinY2 = dFinT + EMC.Y2DELTA
|
||||
table.insert( vCmd, { 2, 'T', dFinT, 'Y2', dFinY2})
|
||||
EgtOutLog( ' Y2PosF=' .. EgtNumToString( dFinY2), 1)
|
||||
-- apro la morsa
|
||||
table.insert( vCmd, { 12, 0})
|
||||
-- riporto il carrello in home
|
||||
|
||||
Binary file not shown.
+26
-9
@@ -44,10 +44,10 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.7h2'
|
||||
PP_NVER = '2.7.8.2'
|
||||
PP_VER = '2.7f1_DEV9'
|
||||
PP_NVER = '2.7.6.1'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
MACH_NAME = 'Essetre-PFrl'
|
||||
MACH_NAME = string.match( EgtGetCurrMachineDir(), "[^\\]+$") -- si ricava il nome della macchina dal direttorio
|
||||
|
||||
-- Carico i dati globali
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
@@ -172,8 +172,12 @@ DefTcPos1 = 'T3'
|
||||
DefTcPos2 = 'T13'
|
||||
SecondSaw = false
|
||||
AutomaticRotation = true
|
||||
OptimizedLoadBeam = true
|
||||
AutoRotMinLen = 0
|
||||
CoeffVM = 0.5
|
||||
EstimationRapidMultiplier = 1
|
||||
ForceToCloseRollersGate = false
|
||||
Probe = nil
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PFrl.data"
|
||||
@@ -255,15 +259,15 @@ if EgtExistsFile( sData) then
|
||||
if Machine.Offsets.SAWOFFSZ then SawOffsZ = Machine.Offsets.SAWOFFSZ end
|
||||
if Machine.Offsets.SAW2OFFSX then Saw2OffsX = Machine.Offsets.SAW2OFFSX end
|
||||
if Machine.Offsets.SAW2OFFSZ then Saw2OffsZ = Machine.Offsets.SAW2OFFSZ end
|
||||
if Machine.Offsets.NOULOAD then MaxUnloadLen = Machine.Offsets.NOULOAD end
|
||||
if Machine.Offsets.DEFTCPOS1 then DefTcPos1 = ( 'T' .. Machine.Offsets.DEFTCPOS1) end
|
||||
if Machine.Offsets.DEFTCPOS2 then DefTcPos2 = ( 'T' .. Machine.Offsets.DEFTCPOS2) end
|
||||
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
|
||||
if Machine.Offsets.MAXFEEDPINZE then MaxFeedPinze = Machine.Offsets.MAXFEEDPINZE end
|
||||
if Machine.Offsets.MAXACC then MaxAcc = Machine.Offsets.MAXACC end
|
||||
if Machine.Offsets.MINACC then MinAcc = Machine.Offsets.MINACC end
|
||||
if Machine.Offsets.DEFTCPOS1 then DefTcPos1 = ( 'T' .. Machine.Offsets.DEFTCPOS1) end
|
||||
if Machine.Offsets.DEFTCPOS2 then DefTcPos2 = ( 'T' .. Machine.Offsets.DEFTCPOS2) end
|
||||
if Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO then ForceToCloseRollersGate = Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO == 1 end
|
||||
if Machine.Offsets.WOOD_DENSITY then WoodDensity = Machine.Offsets.WOOD_DENSITY end
|
||||
if Machine.Offsets.MAX_BACK_CLAMP_5 then MaxBackClamp5 = Machine.Offsets.MAX_BACK_CLAMP_5 end
|
||||
if Machine.Offsets.PROBE then Probe = Machine.Offsets.PROBE end -- Tastatore su entrembe le teste. 1 = solo testa 1, 2 = solo testa 2, 3 = entrambe le teste
|
||||
-- aggiustamenti
|
||||
MinY1 = MinV1 + MinDeltaYV
|
||||
MaxY1 = MaxMchY1
|
||||
@@ -335,6 +339,13 @@ EmtAxis {
|
||||
Home = ParkC1,
|
||||
Geo = 'C1_AXIS/GEO',
|
||||
Aux = {'C1_AXIS/SOLID', 'C1_AXIS/COLLISION'}}
|
||||
-- se tastatore presente
|
||||
local sBAxisAuxGeom
|
||||
if Probe == 1 or Probe == 3 then
|
||||
sBAxisAuxGeom = {'B1_AXIS/SOLID', 'B1_AXIS/COLLISION', 'PROBE_B1/SOLID_PROBE', 'PROBE_B1/COLLISION_PROBE'}
|
||||
else
|
||||
sBAxisAuxGeom = {'B1_AXIS/SOLID', 'B1_AXIS/COLLISION'}
|
||||
end
|
||||
EmtAxis {
|
||||
Name = 'B1',
|
||||
Parent = 'C1',
|
||||
@@ -345,7 +356,7 @@ EmtAxis {
|
||||
Stroke = {MinB1, MaxB1},
|
||||
Home = ParkB1,
|
||||
Geo = 'B1_AXIS/GEO',
|
||||
Aux = {'B1_AXIS/SOLID', 'B1_AXIS/COLLISION'}}
|
||||
Aux = sBAxisAuxGeom }
|
||||
-- Frese
|
||||
local H11Id = EmtHead {
|
||||
Name = 'H11',
|
||||
@@ -434,6 +445,12 @@ local C2Id = EmtAxis {
|
||||
Home = ParkC2,
|
||||
Geo = 'C2_AXIS/GEO',
|
||||
Aux = {'C2_AXIS/SOLID', 'C2_AXIS/COLLISION'}}
|
||||
-- se presente tastatore
|
||||
if Probe == 2 or Probe == 3 then
|
||||
sBAxisAuxGeom = {'B2_AXIS/SOLID', 'B2_AXIS/COLLISION', 'PROBE_B2/SOLID_PROBE', 'PROBE_B2/COLLISION_PROBE'}
|
||||
else
|
||||
sBAxisAuxGeom = {'B2_AXIS/SOLID', 'B2_AXIS/COLLISION'}
|
||||
end
|
||||
local B2Id = EmtAxis {
|
||||
Name = 'B2',
|
||||
Parent = 'C2',
|
||||
@@ -444,7 +461,7 @@ local B2Id = EmtAxis {
|
||||
Stroke = {MinB2, MaxB2},
|
||||
Home = ParkB2,
|
||||
Geo = 'B2_AXIS/GEO',
|
||||
Aux = {'B2_AXIS/SOLID', 'B2_AXIS/COLLISION'}}
|
||||
Aux = sBAxisAuxGeom}
|
||||
local vtMove2 = Vector3d( 0, Head2Y, Head2Z)
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), vtMove2, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'COLLISION'), vtMove2, GDB_RT.GLOB)
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
3=d,TrimExt,0
|
||||
4=s,VtFaceUse,0,0,0
|
||||
5=s,EdgesFaceUse,0
|
||||
6=b,PROBE,0
|
||||
7=b,START-PROBE,0
|
||||
8=b,END-PROBE,0
|
||||
|
||||
[Pocketing]
|
||||
0=l,MaxElev,0
|
||||
|
||||
+1
-24
@@ -1,31 +1,8 @@
|
||||
==== Common_ONE-PF Update Log ====
|
||||
|
||||
Versione 2.7h2 (28/08/2025)
|
||||
- (GEN) Migliorata gestione spegnimento utensile e disattivazione piano
|
||||
- (SIM-GEN) Corretto nome variabile e altre piccole modifiche per Progress
|
||||
|
||||
Versione 2.7h1 (20/08/2025)
|
||||
- (SIM-GEN) Non si chiudono i rulli se tagli o pretagli di testa e coda
|
||||
- (SIM) Corretto movimento pinza 5 in caso di riposizionamento pinza 1
|
||||
- (GEN) Corretta quota assoluta posizione testa trave in caso di pinza 5 e testa rimasta bassa
|
||||
- (GEN) Se ultima lavorazione pezzo precedente ha stesso utensile della prima lavorazione pezzo successivo, la speed resta accesa
|
||||
|
||||
Versione 2.7g4 (23/07/2025)
|
||||
- (SIM-GEN) Aggiunto parametro configurabile da TS3 per massima sporgenza trave in coda per pinza 5. Ticket#2538
|
||||
|
||||
Versione 2.7g3 (22/07/2025)
|
||||
- (SIM) Corretto lettura angolo di presa della motosega
|
||||
|
||||
Versione 2.7g2 (08/07/2025)
|
||||
- (SIM) Corretto movimento a parcheggio sega a catena. Ticket#2517
|
||||
|
||||
Versione 2.7g1 (01/07/2025)
|
||||
- (GEN) Rimossa gestione PROBE inserita per sbaglio
|
||||
- (GEN) Corretto gestione accelerazioni
|
||||
- (SIM-GEN) Aggiunta gestione massima lunghezza scarico
|
||||
|
||||
Versione 2.7f1 (04/06/2025)
|
||||
- (SIM) Aggiunta gestione qualità VMILL da impostazioni macchina. Tolto parametro 'CoeffVM'.
|
||||
- (GEN) Prima versione gestione tastatore
|
||||
- (GEN) Aggiunti parametri FMAXPINZE, MAXACC, MINACC configurabili da TS3. Ticket#2052
|
||||
|
||||
Versione 2.7e1 (28/05/2025)
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_ONE-PF', -- nome script PP standard
|
||||
VERSION = '2.7h2', -- versione script
|
||||
VERSION = '2.7f1', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user