Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c7a867746c | |||
| e795838473 | |||
| 8d8d06022a | |||
| 3dc67b0861 | |||
| b291bc488b | |||
| c65aff1bed | |||
| 5f0f2a5961 | |||
| d75d1ca9ea | |||
| 2b23501bf6 |
+46
-23
@@ -106,8 +106,20 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnToolData()
|
||||
-- emissione dati utensile (esclusa sega a catena)
|
||||
if EMT.HEAD ~= 'H13' then
|
||||
-- emissione dati utensile
|
||||
-- lama su aggregato da sotto
|
||||
if EMT.HEAD == 'H22' then
|
||||
-- recupero posizione lama
|
||||
local dPosBase = tonumber( AdjustTcPos( false, EMT.TCPOS, 0))
|
||||
dAddLen = SawUnderOffsZ
|
||||
local sData = ' P2=' .. EmtLenToString( dAddLen + EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
||||
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( dAddLen + EMT.TTOTLEN, 3)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase).. sData)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase+1).. sData)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase+2).. sData)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase+3).. sData)
|
||||
-- altri utensili tranne sega a catena
|
||||
elseif EMT.HEAD ~= 'H13' then
|
||||
local dAddLen = 0
|
||||
if EMT.HEAD == 'H12' then
|
||||
dAddLen = -SawOffsZ
|
||||
@@ -119,13 +131,15 @@ function OnToolData()
|
||||
MyOutput( sOut)
|
||||
-- emissione dati sega a catena
|
||||
else
|
||||
-- recupero posizione motosega
|
||||
local dPosBase = tonumber( AdjustTcPos( false, EMT.TCPOS, 0))
|
||||
if EMT.TDIST and abs( EMT.TDIST) < 0.1 then EMT.TDIST = nil end
|
||||
local sData = ' P2=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3) .. ' P3=' .. EmtLenToString( EMT.TLEN, 3) ..
|
||||
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3)
|
||||
MyOutput( 'M992 P1=101' .. sData)
|
||||
MyOutput( 'M992 P1=102' .. sData)
|
||||
MyOutput( 'M992 P1=103' .. sData)
|
||||
MyOutput( 'M992 P1=104' .. sData)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase).. sData)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase+1).. sData)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase+2).. sData)
|
||||
MyOutput( 'M992 P1='..tostring( dPosBase+3).. sData)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -668,7 +682,7 @@ function OnRapid()
|
||||
EMT.V2POS = ParkV2
|
||||
-- primo posizionamento
|
||||
local Speed = EMT.S
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' then Speed = 1.65 * EMT.S end
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' or EMT.HEAD == 'H22' then Speed = 1.65 * EMT.S end
|
||||
local bOnlyCharY = true
|
||||
for i = 1, #EMT.AUXCMD do
|
||||
ProcessPathStartAux( EMT.AUXCMD[i], i)
|
||||
@@ -699,8 +713,8 @@ function OnRapid()
|
||||
EmitParkRoller( dPosT, bSplitCut)
|
||||
end
|
||||
-- in caso di rotazione della lama lontano dalla posizione di home degli assi rotanti
|
||||
local bXSpec = EgtIf( BD.RIGHT_LOAD, ( EMT.L2 > -DeltaTabY), ( EMT.L2 < -DeltaTabY))
|
||||
if ( EMT.HEAD == 'H12' or EMT.HEAD == 'H16') and ( abs( PrevR1 - EMT.R1) > 1 or abs( PrevR2 - EMT.R2) > 1) and ( abs( HomeR1 - EMT.R1) > 30.1 or abs( HomeR2 - EMT.R2) > 30.1) then
|
||||
local bXSpec = EgtIf( BD.RIGHT_LOAD, ( EMT.L2 > -DeltaTabY), ( EMT.L2 < -DeltaTabY))
|
||||
-- se bisogna scrivere tutti gli assi
|
||||
if WriteAllCoordsOnFirstM101 then
|
||||
EmitMoveDataHead( 1, { X=EgtIf( bXSpec, -DeltaTabY, EMT.L2), Z=MaxZ1, B=ParkB1, C=ParkC1, S=Speed})
|
||||
@@ -720,7 +734,12 @@ function OnRapid()
|
||||
EmitMoveDataHead( 1, { X=-ParkCSawX1, Z=HomeZ1, B=HomeR2, C=HomeR1, TRad=dTRad, TLen=dTLen, S=Speed})
|
||||
-- utensili standard
|
||||
else
|
||||
EmitMoveDataHead( 1, { X=EgtIf( bXSpec, -DeltaTabY, EMT.L2), Z=EMT.L3, B=ParkB1, C=ParkC1, S=Speed})
|
||||
-- utensili lunghi
|
||||
if EMT.TTOTLEN > LongTool then
|
||||
EmitMoveDataHead( 1, { X=EgtIf( bXSpec, -DeltaTabY, EMT.L2), Z=EMT.L3, B=ParkLongB1, C=ParkLongTc1C1, S=Speed})
|
||||
else
|
||||
EmitMoveDataHead( 1, { X=EgtIf( bXSpec, -DeltaTabY, EMT.L2), Z=EMT.L3, B=ParkB1, C=ParkC1, S=Speed})
|
||||
end
|
||||
end
|
||||
end
|
||||
if EMT.HEAD ~= 'H13' then
|
||||
@@ -779,7 +798,11 @@ function OnRapid()
|
||||
-- selezione testa (non posso muovere X)
|
||||
-- se bisogna scrivere tutti gli assi
|
||||
if WriteAllCoordsOnFirstM101 then
|
||||
EmitMoveDataHead( 2, { X=ParkX2, Z=ParkZ2, B=ParkB2, C=ParkC2, S=Speed})
|
||||
if EMT.HEAD == 'H22' then
|
||||
EmitMoveDataHead( 2, { X=MinX2, Z=ParkZ2, B=ParkB2, C=ParkC2, S=Speed})
|
||||
else
|
||||
EmitMoveDataHead( 2, { X=ParkX2, Z=ParkZ2, B=ParkB2, C=ParkC2, S=Speed})
|
||||
end
|
||||
else
|
||||
EmitMoveDataHead( 2, { X=ParkX2, S=Speed})
|
||||
end
|
||||
@@ -1039,7 +1062,7 @@ function OnRapid()
|
||||
local CurrB2 = PrevR2
|
||||
local CurrC2 = PrevR1
|
||||
local dSafeZ2 = EgtGetAxisHomePos( 'Z2')
|
||||
local Speed = EMT.S
|
||||
local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H22', 1, 1.65)
|
||||
-- calcolo posizione reale
|
||||
EMT.TCPOSREAL = 'T' .. AdjustTcPos( false, EMT.TCPOS, EMT.R3)
|
||||
-- se utensile cambiato (controllo il reale perchè per aggregato dipende come è stato caricato)
|
||||
@@ -1157,7 +1180,7 @@ function OnRapid()
|
||||
EMT.L2 = -EMT.L2
|
||||
-- emetto movimenti in Zero macchina
|
||||
local Speed = EMT.S
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' then Speed = 1.65 * EMT.S end
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' or EMT.HEAD == 'H22' then Speed = 1.65 * EMT.S end
|
||||
EmitMoveDataHead( 1, { X=EMT.L2, Z=EMT.L3, B=EMT.R2, C=EMT.R1, S=Speed})
|
||||
EmitMoveStartHead( 1)
|
||||
local dX2 = Delta2TabY + EMT.DOU_TLEN - ( -DeltaTabY - EMT.L2 + EMT.TLEN + EgtIf( BD.RIGHT_LOAD, -EMT.HB, EMT.HB))
|
||||
@@ -1177,7 +1200,7 @@ function OnRapid()
|
||||
EMT.L2 = -EMT.L2
|
||||
-- emetto movimenti in Zero macchina
|
||||
local Speed = EMT.S
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' then Speed = 1.65 * EMT.S end
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' or EMT.HEAD == 'H22' then Speed = 1.65 * EMT.S end
|
||||
EmitMoveDataHead( 1, { X=EMT.L2, Z=EMT.L3, B=EMT.R2, C=EMT.R1, S=Speed})
|
||||
EmitMoveStartHead( 1)
|
||||
local dX2 = -Head2Y - EMT.L2
|
||||
@@ -1231,9 +1254,9 @@ function OnRapid()
|
||||
EmtAdjustRotaryAxes()
|
||||
-- se Split lascio agganciata solo la pinza Y2 alla fine dei movimenti
|
||||
local bSplitCut = ( EMT.MCHUSERNOTES:find( 'Split', 1, true) ~= nil)
|
||||
-- se lavorazione successiva sopra con testa diversa, porto in home la testa corrente
|
||||
-- porto in home la testa corrente se lavorazione successiva sopra con testa diversa oppure se punta lunga
|
||||
local nNextTopHSet = GetNextTopHSet( EMT.MCHID)
|
||||
local bTopGoHome = ( nHSet ~= 2 and nNextTopHSet ~= 0 and nHSet ~= nNextTopHSet)
|
||||
local bTopGoHome = ( nHSet ~= 2 and nNextTopHSet ~= 0 and nHSet ~= nNextTopHSet) or ( nHSet == 1 and EMT.TTOTLEN > LongTool)
|
||||
EmitZmax( true, true, EMT.R1p, EMT.R2p, bSplitCut, bTopGoHome)
|
||||
-- aggiorno quota finale trave dopo Zmax
|
||||
EMT.L1o = EMT.TPOS
|
||||
@@ -2016,7 +2039,7 @@ function MyAdjustLinearAxes()
|
||||
elseif nHSet == 2 then
|
||||
local dAddLen = 0
|
||||
if EMT.HEAD == 'H22' then
|
||||
dAddLen = -Saw2OffsZ
|
||||
dAddLen = SawUnderOffsZ
|
||||
end
|
||||
local Len = EMT.TLEN + dAddLen + Mill2Offs
|
||||
local LenRef = Mill2Offs
|
||||
@@ -2142,7 +2165,8 @@ function CalcInterpPlane()
|
||||
local vtX = EMT.IPLGLFR:getVersX()
|
||||
local vtY = EMT.IPLGLFR:getVersY()
|
||||
local vtZ = EMT.IPLGLFR:getVersZ()
|
||||
if EMT.HEAD ~= 'H21' then
|
||||
local nHSet = GetHeadSet( EMT.HEAD)
|
||||
if nHSet ~= 2 then
|
||||
EMT.IPLGLSTR = ' X0 Y' .. EmtLenToString( xS, EMT.DECNUM) .. ' Z0' ..
|
||||
' A' .. EgtNumToString( -vtX:getY(), 6) .. ' B' .. EgtNumToString( vtX:getX(), 6) .. ' C' .. EgtNumToString( vtX:getZ(), 6) ..
|
||||
' I' .. EgtNumToString( -vtY:getY(), 6) .. ' J' .. EgtNumToString( vtY:getX(), 6) .. ' K' .. EgtNumToString( vtY:getZ(), 6) ..
|
||||
@@ -2249,16 +2273,11 @@ function EmitZmax( bReset, bEnd, PrevR1, PrevR2, bSplitCut, bTopGoHome)
|
||||
local dSafeZ1 = EgtIf( EMT.TTOTLEN < MinLengthLongCSaw, ParkCSawZ1, ParkLongCSawZ1)
|
||||
EmitMoveDataHead( 1, { Z=dSafeZ1, B=dHomeB1, Fmt=1})
|
||||
EmitMoveDataHead( 1, { X=-dHomeX1, C=dHomeC1, Fmt=1})
|
||||
if bTopGoHome then
|
||||
-- !!! da verificare bene (come PF) !!!
|
||||
EmitMoveDataHead( 1, { X=-ParkX1, TPos=50, Fmt=1})
|
||||
end
|
||||
EmitMoveStartHead( 1)
|
||||
EmitMoveWaitHead( 1)
|
||||
end
|
||||
-- se altrimenti testa 2
|
||||
elseif nSetHead == 2 then
|
||||
|
||||
-- posizioni sicure
|
||||
local dHomeX2 = EgtGetAxisHomePos( 'X2')
|
||||
local dHomeZ2 = EgtGetAxisHomePos( 'Z2')
|
||||
@@ -2272,7 +2291,11 @@ function EmitZmax( bReset, bEnd, PrevR1, PrevR2, bSplitCut, bTopGoHome)
|
||||
-- eseguo la discesa a Z2max
|
||||
EmitMoveDataHead( 2, { Z=-dHomeZ2, Fmt=1})
|
||||
EmitMoveDataHead( 2, { B=dHomeB2, C=dHomeC2, Fmt=1})
|
||||
EmitMoveDataHead( 2, { X=dHomeX2, Fmt=1})
|
||||
if EMT.HEAD == 'H22' then
|
||||
EmitMoveDataHead( 2, { X=SafeX2, Fmt=1})
|
||||
else
|
||||
EmitMoveDataHead( 2, { X=dHomeX2, Fmt=1})
|
||||
end
|
||||
EmitMoveStartHead( 2)
|
||||
EmitMoveWaitHead( 2)
|
||||
-- altrimenti testa 3
|
||||
|
||||
+16
-21
@@ -122,10 +122,10 @@ function OnSimulStart()
|
||||
{ Grp = 'Base', Sub = 'COLLISION', Name = 'CHSAW'},
|
||||
{ Grp = 'Z2', Sub = 'COLLISION', Name = 'COL1'},
|
||||
{ Grp = 'Z2', Sub = 'COLLISION', Name = 'CHAIN'},
|
||||
{ Grp = 'Z2', Sub = 'COLLISION', Name = 'COL2'}}
|
||||
{ Grp = 'Z2', Sub = 'COLLISION', Name = 'COL2'},
|
||||
{ Grp = 'X1', Sub = 'COLLISION', Name = 'STM'}}
|
||||
|
||||
if EgtGetHeadId('H31') then
|
||||
table.insert( McdData, { Grp = 'X1', Sub = 'COLLISION', Name = 'STM'})
|
||||
table.insert( McdData, { Grp = 'X3', Sub = 'COLLISION', Name = 'STM'})
|
||||
end
|
||||
|
||||
@@ -512,12 +512,6 @@ function OnSimulToolSelect( dPosA)
|
||||
EmtAddCollisionObjEx( i, Coll.Fr, Coll.Ty, Coll.Mv, Coll.P1, Coll.P2, Coll.P3)
|
||||
end
|
||||
end
|
||||
|
||||
-- se ho preso la lama, vado nella sua home. Se dPosA non è settato, significa che è selezione chiamata da CAM5 direttamente
|
||||
if EMT.HEAD == 'H22' and dPosA then
|
||||
SimulMoveAxes( 'Z2', MinZ2, MCH_SIM_STEP.RAPID)
|
||||
SimulMoveAxes( 'B2', ParkB2, MCH_SIM_STEP.COLLROT, 'C2', ParkC2, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -559,11 +553,11 @@ function OnSimulToolDeselect( dPrevA)
|
||||
SimulMoveAxis( 'X1', dPosX, MCH_SIM_STEP.RAPID)
|
||||
else
|
||||
if nPrevTc ~= 2 then
|
||||
SimulMoveAxes( 'B1', ParkB1, MCH_SIM_STEP.RAPROT, 'C1', ParkLongTc1C1, MCH_SIM_STEP.RAPROT)
|
||||
SimulMoveAxes( 'B1', ParkLongB1, MCH_SIM_STEP.RAPROT, 'C1', ParkLongTc1C1, MCH_SIM_STEP.RAPROT)
|
||||
local dPosX = ParkX1
|
||||
SimulMoveAxis( 'X1', dPosX, MCH_SIM_STEP.RAPID)
|
||||
else
|
||||
SimulMoveAxes( 'B1', ParkB1, MCH_SIM_STEP.RAPROT, 'C1', ParkLongTc2C1, MCH_SIM_STEP.RAPROT)
|
||||
SimulMoveAxes( 'B1', ParkLongB1, MCH_SIM_STEP.RAPROT, 'C1', ParkLongTc2C1, MCH_SIM_STEP.RAPROT)
|
||||
local dPosX = ParkTc2X1
|
||||
SimulMoveAxis( 'X1', dPosX, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
@@ -957,7 +951,11 @@ function OnSimulMoveStart()
|
||||
if EMT.ZMAX then
|
||||
-- se bisogna scrivere tutti gli assi
|
||||
if WriteAllCoordsOnFirstM101 then
|
||||
SimulMoveAxes( 'X2', MinX2, MCH_SIM_STEP.RAPID, 'B2', B2Home, MCH_SIM_STEP.COLLROT, 'C2', C2Home, MCH_SIM_STEP.COLLROT)
|
||||
if EMT.HEAD == 'H22' and EMT.PREVHEAD_H2 ~= EMT.HEAD then
|
||||
SimulMoveAxes( 'X2', MinX2, MCH_SIM_STEP.RAPID, 'B2', B2Home, MCH_SIM_STEP.COLLROT, 'C2', C2Home, MCH_SIM_STEP.COLLROT)
|
||||
else
|
||||
SimulMoveAxes( 'X2', SafeX2, MCH_SIM_STEP.RAPID, 'B2', B2Home, MCH_SIM_STEP.COLLROT, 'C2', C2Home, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
end
|
||||
SimulMoveAxis( 'Z2', Z2Home, MCH_SIM_STEP.RAPID)
|
||||
SimulMoveAxis( 'X2', EMT.L2, MCH_SIM_STEP.RAPID)
|
||||
@@ -1301,11 +1299,11 @@ end
|
||||
function ExecStartHome()
|
||||
-- Testa 1
|
||||
EgtResetAxisPos( 'X1')
|
||||
EgtResetAxisPos( 'Z1')
|
||||
EgtSetAxisPos( 'Z1', MaxZ1)
|
||||
EgtResetAxisPos( 'C1')
|
||||
EgtResetAxisPos( 'B1')
|
||||
-- Testa 2
|
||||
EgtResetAxisPos( 'X2')
|
||||
EgtSetAxisPos( 'X2', SafeX2)
|
||||
EgtSetAxisPos( 'Z2', MinZ2)
|
||||
EgtResetAxisPos( 'C2')
|
||||
EgtResetAxisPos( 'B2')
|
||||
@@ -1315,14 +1313,7 @@ end
|
||||
function ExecMoveHome( bNearV, bMchSplit)
|
||||
-- risalita a Zmax
|
||||
ExecMoveZmax( bMchSplit)
|
||||
ExecMoveZmax( bMchSplit)
|
||||
EMT.TO_ZMAX = nil
|
||||
-- se testa sotto
|
||||
if GetHeadSet( EMT.HEAD) == 2 then
|
||||
if not SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID) then
|
||||
EgtOutLog( 'Error on MoveHome : X2')
|
||||
end
|
||||
end
|
||||
-- se richiesto, avvicino i rulli
|
||||
if bNearV then
|
||||
ExecOpenRoller( 1)
|
||||
@@ -1398,7 +1389,11 @@ function ExecMoveZmax( bMchSplit)
|
||||
elseif nSetHead == 2 then
|
||||
SimulMoveAxis( 'Z2', ParkZ2, MCH_SIM_STEP.RAPID)
|
||||
SimulMoveAxes( 'B2', ParkB2, MCH_SIM_STEP.COLLROT, 'C2', ParkC2, MCH_SIM_STEP.COLLROT)
|
||||
SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID)
|
||||
if EMT.HEAD == 'H22' then
|
||||
SimulMoveAxis( 'X2', SafeX2, MCH_SIM_STEP.RAPID)
|
||||
else
|
||||
SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
-- altrimenti testa 3
|
||||
else
|
||||
SimulMoveAxes( 'Z3', MaxZ3, MCH_SIM_STEP.RAPID)
|
||||
|
||||
+17
-10
@@ -1,4 +1,4 @@
|
||||
-- Special Operations macchina Essetre-PF1250 by Egalware s.r.l. 2024/01/22
|
||||
-- Special Operations macchina Essetre-PF1250 by Egalware s.r.l. 2024/04/09
|
||||
-- Intestazioni
|
||||
|
||||
require( 'EmtGenerator')
|
||||
@@ -888,10 +888,14 @@ function SpecialCalcMachiningEncumbrance( nMchId, bPreCut)
|
||||
EgtSetAxisPos( 'B3', vAxMid[5])
|
||||
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C3'), GDB_BB.ONLY_VISIBLE)
|
||||
end
|
||||
|
||||
-- Forzo la distanza di sicurezza da utensile
|
||||
local nSecRollerDist = EgtGetValInNotes( EgtTdbGetCurrToolParam( MCH_TP.USERNOTES), 'SECDIST', 'i') or SIC_V
|
||||
|
||||
local dMinFrontEng = EgtIf( nSetHead ~= 2, MIN_ENG_RACK_V, EgtIf( vAxMax[3] < MIN_Z2_FOR_ENG_XZ2_V, MIN_ENG_V, MIN_ENG_XZ2_V))
|
||||
local dRollFront = max( b3Enc:getMax():getX(), dMinFrontEng) + SIC_V
|
||||
local dRollFront = max( b3Enc:getMax():getX(), dMinFrontEng) + nSecRollerDist
|
||||
local dMinBackEng = EgtIf( nSetHead ~= 2, MIN_ENG_V, EgtIf( vAxMax[3] < MIN_Z2_FOR_ENG_XZ2_V, MIN_ENG_V, MIN_ENG_XZ2_V))
|
||||
local dRollBack = max( -b3Enc:getMin():getX(), dMinBackEng) + SIC_V
|
||||
local dRollBack = max( -b3Enc:getMin():getX(), dMinBackEng) + nSecRollerDist
|
||||
EgtOutLog( ' RollFront = ' .. EgtNumToString( dRollFront, 1) .. ' RollBack = ' .. EgtNumToString( dRollBack, 1), 3)
|
||||
-- Calcolo della posizione della Punta Utensile rispetto allo Zero Macchina
|
||||
local ptTip
|
||||
@@ -1323,20 +1327,24 @@ function SpecAdjustCarriages( WorkTab)
|
||||
if WorkTab.dY1DeltaI then
|
||||
local dY1DeltaLim = MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V + EMC.HCING + EMC.HOVM + EgtIf( EMC.CNT == 1, AggLoad, 0)
|
||||
if WorkTab.dY1DeltaI <= dY1DeltaLim or ( WorkTab.dY1DeltaMaxF and WorkTab.dY1DeltaMaxF <= dY1DeltaLim) then
|
||||
bCloseV = true
|
||||
bCloseV = true
|
||||
end
|
||||
end
|
||||
if WorkTab.dY2DeltaI then
|
||||
local dY2DeltaLim = MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V
|
||||
if EMC.LB - WorkTab.dY2DeltaI <= dY2DeltaLim or ( WorkTab.dY2DeltaMinF and EMC.LB - WorkTab.dY2DeltaMinF <= dY2DeltaLim) then
|
||||
bCloseV = true
|
||||
bCloseV = true
|
||||
end
|
||||
end
|
||||
-- se ho cambiato modo di prendere utensile, forzo chiusura
|
||||
if bChangedTool == 2 then
|
||||
bCloseV = true
|
||||
bCloseV = true
|
||||
end
|
||||
|
||||
-- se i pezzi del cliente sono molto storti, si forza la chiusura per evitare che vada a sbattere. Se parametro non presente, si chiude solo se necessario
|
||||
if ForceToCloseRollersGate then
|
||||
bCloseV = true
|
||||
end
|
||||
|
||||
WorkTab.bCloseV = bCloseV
|
||||
|
||||
-- |POSIZIONO Y1| **[A]**
|
||||
@@ -1849,7 +1857,7 @@ local function PosY1Y2B( TabI, vCmd)
|
||||
end
|
||||
end
|
||||
nCnt = nCnt + 1
|
||||
if nCnt > 5 then return end
|
||||
if nCnt > 10 then return end
|
||||
until ( not bXW)
|
||||
-- chiusura/parcheggio dei trascinatori in funzioni chiamanti
|
||||
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
||||
@@ -1913,7 +1921,6 @@ local function PosY2Y1A( TabI, vCmd)
|
||||
MaxDispl( TabI, vCmd, 'M1')
|
||||
end
|
||||
end
|
||||
|
||||
until ( not bXW)
|
||||
-- chiusura/parcheggio dei trascinatori in funzioni chiamanti
|
||||
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
||||
@@ -1988,7 +1995,7 @@ local function PosY2Y1B( TabI, vCmd)
|
||||
end
|
||||
end
|
||||
nCnt = nCnt + 1
|
||||
if nCnt > 5 then return end
|
||||
if nCnt > 10 then return end
|
||||
until ( not bXW)
|
||||
-- la chiusura delle morse è fatta sopra
|
||||
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
==== Common_PF1250 Update Log ====
|
||||
|
||||
Versione 2.6d1 (09/04/2024)
|
||||
- (GEN) Corretto impostazione piano G24 con testa da sotto con aggregato
|
||||
- (SIM-GEN) Corretta posizione prelievo/parcheggio se lama su aggregato da sotto
|
||||
- (MLDE-SIM-GEN) Aggiunta variabile FACOLTATIVA 'ForceToCloseRollersGate' ( che legge la variabile da TS3 'CHIUDI_RULLI_SCAMBIO') in mlde per forzare chiusura paratie rulli
|
||||
durante scambio pinze per facilitare passaggio pezzi molto storti. Se non presente chiude solo se necessario.
|
||||
- (GEN) Corretta scrittura lista utensili iniziale M992 per doppia motosega e aggregato lama sotto
|
||||
- (SIM-GEN) Corretto movimento punte lunghe
|
||||
- (GEN) Corretto adeguamento speed per aggregato lama da sotto con coefficiente moltiplicativo
|
||||
- (SIM-GEN) Aumentato numero riposizionamenti possibili a 10 ( per pezzi molto lunghi non bastava il valore precedente: 5)
|
||||
- (GEN) Corretto posizionamento assi in home se primo utensile punta lunga
|
||||
|
||||
Versione 2.6c5 (26/03/2024)
|
||||
- (SIM) Corretto primo movimento in rapido della lavorazione per testa sotto. Ora allineata a generazione
|
||||
- (SIM-GEN) Aggiunta gestione parametro "SECDIST". Distanza di sicurezza tra paratia con rulli e utensile/testa. Parametro da inserire nelle note utensile
|
||||
- (MLDE-SIM) Modificate collisioni traversa. Ora non comprende carro X1, il quale ha il proprio oggetto di collisione
|
||||
|
||||
Versione 2.6c4 (14/03/2024)
|
||||
- (SIM) Miglioramento visualizzazione spigoli VMILL alla fine della simulazione. Funzione: EgtVolZmapSetShowEdges. N.B.= serve CAM5 2.6c2 NON OBBLIGATORIO
|
||||
- (GEN) Modifica controlli a preselezione utensile. Margine ridotto da 400m a 200mm.
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_PF1250', -- nome script PP standard
|
||||
VERSION = '2.6c4', -- versione script
|
||||
VERSION = '2.6d1', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user