Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c25fc2d1b8 | |||
| f5e67a1aaf | |||
| 4d08de16ef | |||
| abd92d6a0f | |||
| 539f039ef1 | |||
| 29a80e8791 | |||
| 892323481f | |||
| 44d611325c | |||
| 2ac1b905c9 | |||
| e6816814a2 | |||
| 2fa39c1c75 | |||
| 5c3112069e | |||
| 649c3d6515 | |||
| c563716ca4 | |||
| e7f2f603e7 | |||
| 3df92a19aa | |||
| 3bd76519c3 | |||
| 63792dd188 | |||
| 35aedbb536 | |||
| be3863310a | |||
| bdcd60e3f9 | |||
| 7975e98314 | |||
| 3f0ddfecef | |||
| 7d988cf95a | |||
| 238f8f27d7 | |||
| 9e2211861b | |||
| e6c7baa364 | |||
| f0ebef849b | |||
| 58f1946cc7 | |||
| becb01f9d9 | |||
| 4fdc71af0d | |||
| a861c9373f | |||
| 5b78161215 | |||
| d6717c173a | |||
| 06b25af1f9 | |||
| 0354c77889 | |||
| 539ce1c06e | |||
| ddd316361d | |||
| 2adb22f342 | |||
| 60636a707b | |||
| 72b09f0328 | |||
| 43f4ab9f72 | |||
| bd12cb1267 | |||
| 1f1ac0af7b | |||
| d12e84383d |
@@ -42,6 +42,7 @@ local BeamData = {
|
||||
DRILL_TOL = 0.2, -- tolleranza tra diametro foro e diametro punta
|
||||
DRILL_VZ_MIN = - 0.51, -- componente limite in Z del versore di un foro
|
||||
DRILL_VX_MAX = 0.867, -- componente limite in X del versore di un foro sulle facce laterali
|
||||
MAX_ANGLE_DRILL_CUT = 15, -- delta angolo massimo tra foro e taglio che lo attraversa
|
||||
DRILL_OVERLAP = 5, -- sovrapposizione tra due mezze forature
|
||||
MILL_OVERLAP = 5, -- sovrapposizione tra due mezze fresature
|
||||
MAX_DIST_HTFEA = 50.0, -- massima distanza di feature da testa o coda per essere considerata tale
|
||||
@@ -68,6 +69,8 @@ local BeamData = {
|
||||
KIOTP = 5, -- coefficiente moltiplicativo per attacco/uscita lama tangente anzichè perpendicolare
|
||||
MAXDIAM_POCK_CORNER = 31, -- diametro massimo utensile ammesso per tasche con angoli interni
|
||||
USE_LONGCUT = true, -- per i tagli longitudinali usare solo la lavorazione di lama LongCut
|
||||
PRECUT_HEAD = true, -- flag abilitazione pretaglio grezzo a zero in testa
|
||||
PRECUT_TAIL = true, -- flag abilitazione pretaglio grezzo a zero in coda
|
||||
ADVANCE_TAIL_CUT = true, -- per spostare prima del taglio di separazione il taglio di coda su pezzi corti con robabile caduta
|
||||
ADVANCE_TAIL_OFFS = 10, -- accorciamento taglio di coda avanzato (minimo 1)
|
||||
DOUBLE_HEAD_DOVETAIL = false, -- flag abilitazione lavorazione mortase a coda di rondine in doppio
|
||||
@@ -104,7 +107,19 @@ 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.MAX_ANGLE_DRILL_CUT then BeamData.MAX_ANGLE_DRILL_CUT = EgtClamp( Machine.Offsets.MAX_ANGLE_DRILL_CUT, 1, 89) end
|
||||
if Machine.Offsets.ROT90 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
|
||||
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
|
||||
if Machine.Offsets.MIN_JOIN_S then BeamData.MIN_JOIN_S = EgtClamp( Machine.Offsets.MIN_JOIN_S, 80, 150) end
|
||||
if Machine.Offsets.MIN_JOIN_L then BeamData.MIN_JOIN_L = EgtClamp( Machine.Offsets.MIN_JOIN_L, 300, 450) end
|
||||
end
|
||||
if Machine.Trave then
|
||||
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
22=Long2CutSide
|
||||
23=SmallToolContour
|
||||
24=AntiSplintMillCut
|
||||
25=Prof_end
|
||||
26=SideMillAsBlade
|
||||
|
||||
[Pocketing]
|
||||
1=Pocket
|
||||
|
||||
+639
-290
File diff suppressed because it is too large
Load Diff
+567
-84
File diff suppressed because it is too large
Load Diff
+170
-15
@@ -4,9 +4,74 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** Generic Machinings ***
|
||||
---------------------------------------------------------------------
|
||||
require( 'EmtGenMachining')
|
||||
---------------------------------------------------------------------
|
||||
|
||||
-- Carico libreria
|
||||
local BD = require( 'BeamData')
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** Generic Machinings ***
|
||||
---------------------------------------------------------------------
|
||||
require( 'EmtGenMachining')
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** Special GetPrevMachiningOffset ***
|
||||
---------------------------------------------------------------------
|
||||
-----------------------------------------------------------------------------------------
|
||||
function OnSpecialGetPrevMachiningOffset()
|
||||
-- Aggiorno posizione della testa della trave a seguito di movimenti delle pinze non previsti tra le fasi
|
||||
local function TPosUpdate()
|
||||
local nClId = EgtGetFirstNameInGroup( EMC.CURRMCHID, 'CL') -- recupero Id del gruppo CL della lavorazione corrente
|
||||
local nPathId = EgtGetFirstInGroup( nClId or GDB_ID.NULL) -- Id del primo gruppo nella lavorazione (P1)
|
||||
if not nPathId then
|
||||
EMC.ERR = 12
|
||||
EMC.MSG = ' Error : CL group path not found'
|
||||
return
|
||||
end
|
||||
local dAuxMoveCount = EgtGetInfo( nPathId, 'AS#', 'd') or 0 -- numero di movimenti ausiliari
|
||||
local dTRepos = nil
|
||||
-- controlla ogni gruppo di movimenti ausiliari
|
||||
for i = 1, dAuxMoveCount do
|
||||
local aAuxMove = EgtGetInfo( nPathId, 'AS' .. tostring( i), 'vs') or {} -- array contenete i parametri di ogni gruppo
|
||||
-- controlla solo i movimenti della testa trave e salva l'ultimo
|
||||
if aAuxMove[1] == '2' or aAuxMove[1] == '3' then
|
||||
for j = 2, #aAuxMove do
|
||||
if aAuxMove[j] == 'T' then
|
||||
dTRepos = aAuxMove[j+1]
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return dTRepos
|
||||
end
|
||||
|
||||
-- default
|
||||
EMC.ERR = 0
|
||||
EMC.PREVOFFSX = 0
|
||||
-- se c'è cambio di fase tra le lavorazioni (quindi la precedente è l'ultima della sua fase e la corrente la prima)
|
||||
if EMC.PREVPHASE ~= EMC.CURRPHASE then
|
||||
-- se la fase corrente è di inizio lavorazione di nuova trave
|
||||
if IsStartOrRestPhase( EMC.CURRPHASE) then
|
||||
-- recupero la posizione finale della lavorazione precedente
|
||||
local vPrevAx = EmtGetFinalAxesPos( EMC.PREVMCHID)
|
||||
-- ricava se e quanto la trave viene spostata tra le due fasi dai movimenti ausiliari e corregge l'offset di fine fase
|
||||
local dNewTPos = TPosUpdate()
|
||||
-- se ci sono dei movimenti della testa trave tra le due fasi ricava il delta tra la vecchia e la nuova posizione
|
||||
if dNewTPos then
|
||||
EMC.PREVOFFSX = dNewTPos - vPrevAx[1]
|
||||
-- oppure la X (L1) di questa corrisponde alla posizione iniziale della nuova trave, se ne deduce l'offset
|
||||
else
|
||||
EMC.PREVOFFSX = ParkV1 - vPrevAx[1]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------- OnSpecialGetMaxZ -----------------------------
|
||||
---------------------------------------------------------------------
|
||||
local function CalcExtraZ( vtTp, vtT, vMZ)
|
||||
@@ -72,7 +137,7 @@ function OnSpecialGetMaxZ()
|
||||
local vMZ = {{ Tz=0.85, Ez=390}, { Tz=0.5, Ez=280}, { Tz=-0.01, Ez=160}, { Tz=-0.5, Ez=1}, { Tz=-0.61, Ez=1}}
|
||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
end
|
||||
elseif EMC.HEAD == 'H12' and sHead_TC == 'Head1_TC1' then
|
||||
elseif ( EMC.HEAD == 'H12' or EMC.HEAD == 'H17') and sHead_TC == 'Head1_TC1' then
|
||||
if vtTp:getX() > 0.4 and vtT:getX() > 0.4 then
|
||||
if bBSameSign and abs( EMC.R1 - EMC.R1p) < 165 then
|
||||
EMC.MAXZ = MaxZ1 - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||
@@ -173,7 +238,7 @@ function OnSpecialMoveZup()
|
||||
if EMC.HEAD == 'H11' or EMC.HEAD == 'H21' then
|
||||
;
|
||||
-- se lama posizionata su CU prossimo a testa 1
|
||||
elseif EMC.HEAD == 'H12' and sHead_TC == 'Head1_TC1' then
|
||||
elseif ( EMC.HEAD == 'H12' or EMC.HEAD == 'H17') and sHead_TC == 'Head1_TC1' then
|
||||
-- se inclinata oltre 90 gradi e interferisce con la trave
|
||||
if ( EMC.R2 > 87.9 and ( EMC.R1 < 15.0 or EMC.R1 > 180.0)) or ( EMC.R2 < -87.9 and ( EMC.R1 > -15.0 and EMC.R1 < 180.0)) then
|
||||
local dZref = dZmax + min( 330 * vtT:getZ(), 0) + 260 * ( 1 - sqrt( 1- vtT:getZ() * vtT:getZ()))
|
||||
@@ -208,6 +273,13 @@ function OnSpecialMoveZup()
|
||||
EMC.MODIF = true
|
||||
end
|
||||
end
|
||||
elseif HeadIsChainSaw( EMC.HEAD) then
|
||||
EMC.TTOTLEN = EgtTdbGetCurrToolParam( MCH_TP.TOTLEN)
|
||||
if EMC.TDIR[3] < -0.15 and EMC.L3 > - EMC.TTOTLEN then
|
||||
EMC.L3 = EMC.TTOTLEN * EMC.TDIR[3]
|
||||
-- dichiaro modificato
|
||||
EMC.MODIF = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -223,7 +295,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 = 320 -- massima sporgenza posteriore del pezzo da pinza speciale
|
||||
local MAX_BACK_CLAMP_5 = EgtClamp( MaxBackClamp5 or 320, 200, 380) -- massima sporgenza posteriore del pezzo da pinza speciale
|
||||
|
||||
----------------------- Variabili -----------------------------------
|
||||
local Test = false
|
||||
@@ -654,14 +726,72 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnPostApplyMachining()
|
||||
-- Inizializzo codice di errore
|
||||
EMC.ERR = 0
|
||||
-- Verifico se ultima lavorazione della fase
|
||||
local nNextOpeId = EgtGetNextActiveOperation( EMC.MCHID)
|
||||
local bMchLast = ( not nNextOpeId or EgtGetOperationPhase( nNextOpeId) ~= EMC.PHASE) -- Agisco sui diversi percorsi della lavorazione
|
||||
local nPathId = EgtGetFirstInGroup( EgtGetFirstNameInGroup( EMC.MCHID, 'CL') or GDB_ID.NULL)
|
||||
while nPathId do
|
||||
-- recupero id del successivo
|
||||
nPathId = EgtGetNext( nPathId)
|
||||
-- verifico se ultimo percorso di ultima lavorazione della fase
|
||||
local bLast = ( bMchLast and ( not nPathId))
|
||||
-- se ultimo, elimino ritorno in home
|
||||
if bLast then EgtRemoveOperationHome( EMC.MCHID) end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSpecialApplyMachining()
|
||||
|
||||
EgtOutLog( ' Lavorazione : ' .. EgtGetName( EMC.MCHID), 1)
|
||||
|
||||
-- Inizializzo codice di errore
|
||||
EMC.ERR = 0
|
||||
|
||||
-- Recupero la precedente operazione
|
||||
local nPrevOpeId = EgtGetPrevActiveOperation( EMC.MCHID)
|
||||
|
||||
-- Se esiste lavorazione precedente ed è una tastatura
|
||||
if nPrevOpeId and EgtGetOperationType( nPrevOpeId) == MCH_OY.PROBING then
|
||||
-- se stessa testa e montato già utensile corretto
|
||||
-- recupero valori assi alla fine della lavorazione precedente e all'inizio della corrente
|
||||
local vPrevAxes = EmtGetFinalAxesPos( nPrevOpeId, true)
|
||||
local vCurrAxes = EmtGetInitialAxesPos( EMC.MCHID, true)
|
||||
-- info lavorazione precedente
|
||||
EgtSetCurrMachining( nPrevOpeId)
|
||||
local sPrevTool = EgtGetMachiningParam( MCH_MP.TOOL)
|
||||
local sPrevHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
local nSetHead = GetHeadSet( sPrevHead)
|
||||
local bPrevIsFirstHead = ( nSetHead == 1 or nSetHead == 11)
|
||||
-- info lavorazione corrente
|
||||
EgtSetCurrMachining( EMC.MCHID)
|
||||
local sCurrTool = EgtGetMachiningParam( MCH_MP.TOOL)
|
||||
local sCurrHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
nSetHead = GetHeadSet( sCurrHead)
|
||||
local bCurrIsFirstHead = ( nSetHead == 1 or nSetHead == 11)
|
||||
|
||||
-- se utensile corrente è compatibile (significa che è già stato precaricato) se stessa testa e con stessa configurazioen assi rotanti, annullo risalita
|
||||
if IsToolCompatibleWithProbe( sCurrTool, sPrevTool) and bPrevIsFirstHead == bCurrIsFirstHead and abs( vCurrAxes[4] - vPrevAxes[4]) < 1 and abs( vCurrAxes[5] - vPrevAxes[5]) < 1 then
|
||||
-- in lavorazione precedente elimino eventuale retrazione a Zmax
|
||||
EmtRemoveRise( nPrevOpeId)
|
||||
-- in lavorazione corrente elimino eventuale approccio da Zmax
|
||||
EmtRemoveClimb( EMC.MCHID)
|
||||
-- prendo sempre la Z massima tra le due
|
||||
local vClimbPoint
|
||||
if vCurrAxes[3] - 1.0 < vPrevAxes[3] then
|
||||
vClimbPoint = vCurrAxes
|
||||
vCurrAxes[3] = vPrevAxes[3]
|
||||
elseif vPrevAxes[3] - 1.0 < vCurrAxes[3] then
|
||||
vClimbPoint = vPrevAxes
|
||||
vPrevAxes[3] = vCurrAxes[3]
|
||||
end
|
||||
EmtAddClimb( EMC.MCHID, vClimbPoint, 4, 1, 0)
|
||||
end
|
||||
end
|
||||
|
||||
-- Recupero la posizione della trave e dei carrelli al termine della precedente operazione
|
||||
local nPrevOpeId = EgtGetPrevActiveOperation( EMC.MCHID)
|
||||
-- se precedente operazione non esiste, errore
|
||||
if not nPrevOpeId then
|
||||
EMC.ERR = 1
|
||||
@@ -761,7 +891,7 @@ function OnPostApplyMachining()
|
||||
-- verifico se ultimo percorso di ultima lavorazione della fase
|
||||
local bLast = ( bMchLast and ( not nPathId))
|
||||
-- se ultimo, elimino ritorno in home
|
||||
if bLast then EgtRemoveOperationHome( EMC.MCHID) end
|
||||
-- if bLast then EgtRemoveOperationHome( EMC.MCHID) end
|
||||
-- salvo lo stato dei carrelli
|
||||
local OriTPos = EMC.TPOS
|
||||
local OriY1Delta = EMC.Y1DELTA
|
||||
@@ -819,7 +949,6 @@ function OnPostApplyMachining()
|
||||
local vAxes = EmtGetAxesPos( nLastEntId)
|
||||
if #vAxes > 0 then EMC.TPOS = vAxes[1] end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -1097,6 +1226,17 @@ function SpecialCalcMachiningEncumbrance( nMchId, bPreCut)
|
||||
end
|
||||
-- Recupero testa
|
||||
local sHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
local sToolName = EgtTdbGetCurrToolParam( MCH_TP.NAME)
|
||||
local nSetHead = GetHeadSet( sHead)
|
||||
local bIsFirstHead = ( nSetHead == 1 or nSetHead == 11)
|
||||
|
||||
-- se lavorazione di tastatura, si considera montato utensile di default
|
||||
if HeadIsProbe( sHead) then
|
||||
local sOtherToolName = GetToolNameFromTcPos( EgtIf( bIsFirstHead, DefTcPos1, DefTcPos2))
|
||||
local sOtherHeadTool, _ = GetToolHead( sOtherToolName)
|
||||
EgtLoadTool( sOtherHeadTool, 1, sOtherToolName)
|
||||
end
|
||||
|
||||
-- Recupero valore assi macchina
|
||||
local nSecId = EgtGetNext( EgtGetFirstInGroup( nPathId))
|
||||
local vAxes = EmtGetAxesPos( nSecId)
|
||||
@@ -1107,8 +1247,8 @@ function SpecialCalcMachiningEncumbrance( nMchId, bPreCut)
|
||||
end
|
||||
-- Calcolo dell'ingombro della testa rispetto allo Zero Macchina
|
||||
local b3Enc
|
||||
|
||||
if sHead ~= 'H21' and sHead ~= 'H22' and sHead ~= 'H23' then
|
||||
|
||||
if bIsFirstHead then
|
||||
EgtSetAxisPos( 'C1', vAxes[4])
|
||||
EgtSetAxisPos( 'B1', vAxes[5])
|
||||
if sHead == 'H13' or sHead == 'H15' then
|
||||
@@ -1142,6 +1282,7 @@ function SpecialCalcMachiningEncumbrance( nMchId, bPreCut)
|
||||
local dDistFront = - ptMax:getX() - LoadT - dHeadFront
|
||||
local dDistBack = ptMin:getX() + LoadT + EMC.LB - dHeadBack
|
||||
EgtOutLog( ' DistFront = ' .. EgtNumToString( dDistFront, 1) .. ' DistBack = ' .. EgtNumToString( dDistBack, 1), 3)
|
||||
|
||||
return dDistFront, dDistBack, dRollFront, dRollBack
|
||||
end
|
||||
|
||||
@@ -1423,7 +1564,14 @@ function SpecCalcSplit( dLenRaw, dMaxLenLeft)
|
||||
local vCmd = {}
|
||||
EgtOutLog( ' *[S]', 1)
|
||||
local bSplit = ( EMC.Y2DELTA ~= nil or EMC.W2DELTA ~= nil)
|
||||
local ParkT = EgtIf( bSplit and dMaxLenLeft > ParkV1 - 50, LoadT, ParkV1)
|
||||
local ParkT = ParkV1
|
||||
if bSplit then
|
||||
if dMaxLenLeft + 100 > LoadT then
|
||||
ParkT = dMaxLenLeft + 300
|
||||
elseif dMaxLenLeft + 100 > ParkV1 then
|
||||
ParkT = LoadT
|
||||
end
|
||||
end
|
||||
local sType = EgtIf( EMC.Y2DELTA, 'Split', EgtIf( EMC.W2DELTA, 'SpecSplit', 'Fall'))
|
||||
table.insert( vCmd, { 0, sType})
|
||||
if not bSplit then EnsureZmax( false, vCmd) end
|
||||
@@ -1546,8 +1694,11 @@ 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'})
|
||||
table.insert( vCmd, { 0, 'Unloading', EgtIf( bStdUl, 'Unloading', 'Manual Unloading')})
|
||||
-- posizionamento sicuro teste e rulli (non serve ?)
|
||||
--table.insert( vCmd, { 4, 0})
|
||||
-- Se pinza Y chiusa, la apro
|
||||
@@ -1555,11 +1706,15 @@ function SpecCalcUnload()
|
||||
table.insert( vCmd, { 11, 0})
|
||||
EMC.CNT = nil
|
||||
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)
|
||||
-- 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
|
||||
-- apro la morsa
|
||||
table.insert( vCmd, { 12, 0})
|
||||
-- riporto il carrello in home
|
||||
|
||||
Binary file not shown.
+40
-10
@@ -8,10 +8,10 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.6l2'
|
||||
PP_NVER = '2.6.12.2'
|
||||
PP_VER = '3.1f2'
|
||||
PP_NVER = '3.1.6.1'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
MACH_NAME = 'Essetre-PFMAXrl'
|
||||
MACH_NAME = EgtGetCurrMachineName()
|
||||
|
||||
-- Carico i dati globali
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
@@ -79,6 +79,7 @@ SawC2Offs = 0
|
||||
SawB2Offs = 0
|
||||
MinX1 = 700
|
||||
MaxX1 = 2735
|
||||
Limit_T1_Presel_T2 = MinX1
|
||||
MinZ1 = -1850
|
||||
MaxZ1 = 0
|
||||
MinC1 = -275
|
||||
@@ -105,6 +106,7 @@ ParkCSaw0C1 = 0
|
||||
ParkCSawB1 = 0
|
||||
MinX2 = 0
|
||||
MaxX2 = 2035
|
||||
Limit_T2_Presel_T1 = MaxX2
|
||||
MinZ2 = -1850
|
||||
MaxZ2 = 0
|
||||
MinC2 = -275
|
||||
@@ -139,8 +141,9 @@ SecondSaw = true
|
||||
AutomaticRotation = true
|
||||
OptimizedLoadBeam = true
|
||||
AutoRotMinLen = 0
|
||||
CoeffVM = 0.5
|
||||
ForceToCloseRollersGate = false
|
||||
DistZClampToTable = 5 -- distanza tra la tavola e il punto più basso della morsa
|
||||
ClampingCoeffMin = nil -- coefficiente di fissaggio, se 0 o nil non fa controllo, per il momento da inizializzare da Ts3Data
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PFMAXrl.data"
|
||||
@@ -197,6 +200,8 @@ if EgtExistsFile( sData) then
|
||||
if Machine.Offsets.MIN_V2 then MinV2 = Machine.Offsets.MIN_V2 end
|
||||
if Machine.Offsets.MAX_V2 then MaxV2 = Machine.Offsets.MAX_V2 end
|
||||
if Machine.Offsets.CLAMP5 then Clamp5 = ( Machine.Offsets.CLAMP5 == 1) end
|
||||
if Machine.Offsets.MIN_W then MinW = Machine.Offsets.MIN_W end
|
||||
if Machine.Offsets.MAX_W then MaxW = Machine.Offsets.MAX_W end
|
||||
if Machine.Offsets.MINWOPEN then MinWOpen = Machine.Offsets.MINWOPEN end
|
||||
if Machine.Offsets.MAXWOPEN then MaxWOpen = Machine.Offsets.MAXWOPEN end
|
||||
if Machine.Offsets.MAXWHEIGHT then MaxWHeight = Machine.Offsets.MAXWHEIGHT end
|
||||
@@ -224,8 +229,16 @@ if EgtExistsFile( sData) then
|
||||
if Machine.Offsets.SAW2OFFSZ then Saw2OffsZ = Machine.Offsets.SAW2OFFSZ 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.LIMIT_T1_PRESEL_T2 then Limit_T1_Presel_T2 = Machine.Offsets.LIMIT_T1_PRESEL_T2 end
|
||||
if Machine.Offsets.LIMIT_T2_PRESEL_T1 then Limit_T2_Presel_T1 = Machine.Offsets.LIMIT_T2_PRESEL_T1 end
|
||||
if Machine.Offsets.NOULOAD then MaxUnloadLen = Machine.Offsets.NOULOAD 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.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.COEFF_CLAMP_CHECK then ClampingCoeffMin = Machine.Offsets.COEFF_CLAMP_CHECK end
|
||||
-- aggiustamenti
|
||||
MinY1 = MinV1 + MinDeltaYV
|
||||
MaxY1 = MaxMchY1
|
||||
@@ -272,7 +285,7 @@ local X1Id = EmtAxis {
|
||||
Home = ParkX1,
|
||||
Invert = true,
|
||||
Geo = 'X1_AXIS/GEO',
|
||||
Aux = 'X1_AXIS/SOLID'}
|
||||
Aux = {'X1_AXIS/SOLID', 'X1_AXIS/COLLISION'}}
|
||||
-- *** Testa 1 ***
|
||||
EmtAxis {
|
||||
Name = 'Z1',
|
||||
@@ -372,7 +385,7 @@ local X2Id = EmtAxis {
|
||||
Home = ParkX2,
|
||||
Invert = true,
|
||||
Geo = 'X2_AXIS/GEO',
|
||||
Aux = 'X2_AXIS/SOLID'}
|
||||
Aux = {'X2_AXIS/SOLID', 'X2_AXIS/COLLISION'}}
|
||||
local Z2Id = EmtAxis {
|
||||
Name = 'Z2',
|
||||
Parent = 'X2',
|
||||
@@ -408,6 +421,7 @@ local B2Id = EmtAxis {
|
||||
Aux = {'B2_AXIS/SOLID', 'B2_AXIS/COLLISION'}}
|
||||
local vtMove2 = Vector3d( 0, Head2Y, Head2Z)
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), vtMove2, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'COLLISION'), vtMove2, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'SOLID'), vtMove2, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'COLLISION'), vtMove2, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( C2Id, 'SOLID'), vtMove2, GDB_RT.GLOB)
|
||||
@@ -461,7 +475,7 @@ local PY1Id = EmtAxis {
|
||||
Stroke = {0, MaxHoOpen},
|
||||
Home = MaxHoOpen,
|
||||
Geo = 'PY1_AXIS/GEO',
|
||||
Aux = 'PY1_AXIS/SOLID'}
|
||||
Aux = {'PY1_AXIS/SOLID', 'PY1_AXIS/CLAMP_CHECK'}}
|
||||
local Y2Id = EmtAxis {
|
||||
Name = 'Y2',
|
||||
Parent = 'Base',
|
||||
@@ -481,7 +495,7 @@ local PY2Id = EmtAxis {
|
||||
Stroke = {0, MaxHoOpen},
|
||||
Home = MaxHoOpen,
|
||||
Geo = 'PY2_AXIS/GEO',
|
||||
Aux = 'PY2_AXIS/SOLID'}
|
||||
Aux = {'PY2_AXIS/SOLID', 'PY2_AXIS/CLAMP_CHECK'}}
|
||||
-- Rulli
|
||||
local V1Id = EmtAxis {
|
||||
Name = 'V1',
|
||||
@@ -592,6 +606,7 @@ EmtTable {
|
||||
Parent = 'T',
|
||||
Type = MCH_TT.FLAT,
|
||||
Ref1 = Point3d( -DimTabX, DeltaTabY, DeltaTabZ),
|
||||
Coll = 'Base/BELT',
|
||||
Geo = 'TABLE/GEO',
|
||||
Aux = 'TABLE/SOLID'}
|
||||
-- *** ToolChanger ***
|
||||
@@ -775,15 +790,19 @@ EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC3') or GDB_ID.NULL, vtMovB, GDB_RT.G
|
||||
EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC4') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC5') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X1Id, 'SOLID'), vtMovB, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X1Id, 'COLLISION'), vtMovB, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), vtMovB, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'COLLISION'), vtMovB, GDB_RT.GLOB)
|
||||
local vtMovC = Vector3d( 0, 0, ( DeltaTabZ + DeltaRulliTappetoZ + 1895)) -- -( -1410 - 485)
|
||||
EgtMove( EgtGetFirstNameInGroup( BaseId, 'BELT'), vtMovC, GDB_RT.GLOB)
|
||||
local vtMove = Vector3d( 0, ( DeltaTabY - 1170.0), ( DeltaTabZ + 1410.0))
|
||||
EgtMove( EgtGetFirstNameInGroup( BaseId, 'CONVOYER'), vtMove, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( Y1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( PY1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( PY1Id, 'CLAMP_CHECK'), vtMove + Vector3d(0,0,DistZClampToTable), GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( Y2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( PY2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( PY2Id, 'CLAMP_CHECK'), vtMove + Vector3d(0,0,DistZClampToTable), GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( V1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( PV1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( QV1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||
@@ -860,11 +879,16 @@ function OnSetHead()
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-------------------------- Testa utilizzata -------------------------
|
||||
function GetHeadSet( sHead)
|
||||
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' then
|
||||
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' or sHead == 'H15' or sHead == 'H17' then
|
||||
return 1
|
||||
elseif sHead == 'H21' or sHead == 'H22' then
|
||||
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
|
||||
@@ -904,6 +928,12 @@ function HeadIsChainSaw( sHead)
|
||||
return ( sHead == 'H13')
|
||||
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)
|
||||
|
||||
+28
-19
@@ -7,18 +7,20 @@
|
||||
[Sawing]
|
||||
|
||||
[Milling]
|
||||
0=d,MaxElev,0
|
||||
0=l,MaxElev,0
|
||||
1=d,OutRaw,0
|
||||
2=d,SideElev,0
|
||||
2=l,SideElev,0
|
||||
3=d,TrimExt,0
|
||||
4=sr,VtFaceUse,0,0,0
|
||||
4=s,VtFaceUse,0,0,0
|
||||
5=s,EdgesFaceUse,0
|
||||
|
||||
[Pocketing]
|
||||
0=d,MaxElev,0
|
||||
0=l,MaxElev,0
|
||||
1=b,Open,0
|
||||
2=d,OpenMinSave,0
|
||||
2=d,OpenMinSafe,0
|
||||
3=d,OpenOutRaw,0
|
||||
4=d,MaxOptSize,0
|
||||
4=l,MaxOptSize,0
|
||||
5=b,AdjustFeed,1
|
||||
|
||||
[Mortising]
|
||||
0=d,MaxElev,0
|
||||
@@ -30,21 +32,28 @@
|
||||
[SawFinishing]
|
||||
|
||||
[GenMachining]
|
||||
0=l,LinTol,0.1
|
||||
1=l,MaxLen,2
|
||||
2=s,Type,ZigZag
|
||||
3=d,SideAng,90
|
||||
4=l,Step,10
|
||||
5=l,OffsProj,0
|
||||
6=l,LiTang,0
|
||||
7=l,LiOrth,0
|
||||
8=l,LiElev,0
|
||||
9=l,LoTang,0
|
||||
10=l,LoOrth,0
|
||||
11=l,LoElev,0
|
||||
12=b,DirFromGuide,1
|
||||
|
||||
[SurfRoughing]
|
||||
0=l,MaxElev,1000
|
||||
1=b,PlaneZ,0
|
||||
|
||||
[SurfFinishing]
|
||||
0=b,SkipMaxDown,1
|
||||
|
||||
[5AxMilling]
|
||||
0=l,LinTol,0.01
|
||||
1=l,MaxLen,10
|
||||
2=s,Type,ZigZag
|
||||
3=d,SideAng,90
|
||||
4=l,Step,10
|
||||
5=d,AngIni,-90
|
||||
6=d,AngFin,90
|
||||
7=l,LiTang,0
|
||||
8=l,LiOrth,0
|
||||
9=l,LiElev,0
|
||||
10=l,LoTang,0
|
||||
11=l,LoOrth,0
|
||||
12=l,LoElev,0
|
||||
13=b,DirFromGuide,0
|
||||
14=b,SurfAvoid,0
|
||||
|
||||
|
||||
Binary file not shown.
+111
@@ -1,5 +1,116 @@
|
||||
==== Common_ONE-PF Update Log ====
|
||||
|
||||
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
|
||||
|
||||
Versione 3.1b1 (20/02/2026)
|
||||
- (GEN) Aggiunta funzione ToolPreSelection() per la preselezione utensile. Ticket#2789
|
||||
- (GEN) Funzione rinominata in ToolPreSelectionSingleHead(), ora utilizza funzione in MLDE per capire se è motosega
|
||||
|
||||
Versione 3.1a1 (16/01/2026)
|
||||
- (SIM-GEN) Aggiunto controllo che evita collisioni durante lo svincolo in Z della sega a catena nelle funzioni ExecMoveZMax() e EmitZMax(). Ticket#2767
|
||||
- (SIM-GEN) Piccola correzione modifiche fatte in precedenza
|
||||
|
||||
Versione 2.7l1 (18/12/2025)
|
||||
- (SIM-GEN) Aggiunto controllo post movimenti ausiliari dell' EMC.PREVOFFSX nella funzione OnSpecialGetPrevMachiningOffset(). Ticket#2727
|
||||
- (SIM-GEN) Divisione movimento B in approccio se > 90°. Ticket#2754
|
||||
- (SIM) Aggiunta funzione CheckClamping
|
||||
|
||||
Versione 2.7k3 (28/11/2025)
|
||||
- (GEN) Prima di andare allo scarico, si aggiunge movimento intermedio dove si aspetta che rulli scarico siano arrivati in posizione. Ticket#2716
|
||||
|
||||
Versione 2.7k2 (20/11/2025)
|
||||
- (SIM) Aggiornata risoluzione VMillTol in funzione dello spessore lama
|
||||
|
||||
Versione 2.7k1 (05/11/2025)
|
||||
- (SIM-GEN) Corretto calcolo per decidere se serve aprire i rulli
|
||||
- (GEN) Aggiunta tolleranza in creazione piano di lavoro inclinato
|
||||
- (SIM) Allo scarico si resetta Y2DELTA. Ticket#2687
|
||||
|
||||
Versione 2.7j3 (23/10/2025)
|
||||
- (SIM) Corretta posizione parcheggio in caso di testa 1 su magazzino 2. Ticket#2660
|
||||
|
||||
Versione 2.7j2 (21/10/2025)
|
||||
- (GEN) Se SPLIT con pinza 5, corretto salvataggio posizione pinza 2. Ticket#2654
|
||||
|
||||
Versione 2.7j1 (08/10/2025)
|
||||
- (GEN) Salvataggio posizione Z su lavorazione precedente, sbagliava in caso di separazione. Ticket#2637
|
||||
|
||||
Versione 2.7i1 (10/09/2025)
|
||||
- (SIM-GEN) Piccole correzioni per gestire secondo TC su ONE. Ticket#2563
|
||||
- (SIM-GEN) Gestione aggregato BH completato. Ticket#2482
|
||||
- (EST) Stima tempi considerando accelerazioni
|
||||
- (SIM-GEN) Se fase start o restart, si aggiorna la posizione in X dell'asse per calcolare il link corretto
|
||||
- (GEN) Piccola correzione risalita ZMAX dopo RELOAD del pezzo. Generazione allineata a simulazione.
|
||||
|
||||
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) Aggiunti parametri FMAXPINZE, MAXACC, MINACC configurabili da TS3. Ticket#2052
|
||||
|
||||
Versione 2.7e1 (28/05/2025)
|
||||
- (SIM-GEN) Alla separazione si spostano i carrelli di 30mm aprendo il taglio. Ticket#2259,Ticket#2328
|
||||
|
||||
Versione 2.7d1 (16/04/2025)
|
||||
- (SIM) Distanza di collisione portata a 3mm, qualità VMILL ridotta a 4mm. Ticket#2395
|
||||
|
||||
Versione 2.7c3 (25/03/2025)
|
||||
- (GEN) Corretto movimento approccio alla lavorazione se utensile lama montata su magazzino 2. Ticket#2361
|
||||
|
||||
Versione 2.7c2 (12/03/2025)
|
||||
- (SIM-GEN) Migliorato calcolo posizione barra dopo split. Tiene in considerazione ingombro lavorazioni pezzo. Ticket#2321
|
||||
- (GEN) Aggiunta commenti HEADER e FOOTER per comunicazione con linea o altre macchine, da parte di Essetre.
|
||||
- (SIm-GEN) Migliorato movimento approccio al pezzo con lama. Allineamento simulazione-generazione che facevano due movimenti leggermente diversi. Ticket#2335
|
||||
|
||||
Versione 2.7c1 (05/03/2025)
|
||||
- (GEN) Corretto movimento in home utensile precedente. Ticket#2324
|
||||
|
||||
Versione 2.7b1 (07/02/2025)
|
||||
- (SIM-GEN) In caso di Progress, alla deselezione utensile testa 1 su TC2 si fa movimento Z raddrizzando asse B. Ticket#2247
|
||||
- (SIM-GEN) Estensione soluzione Ticket#2206. Ora si aprono di 5mm extra anche se solo una morsa resta in posizione. Ticket#2259
|
||||
- (SIM) Migliorato controllo collisioni con traversa. Ora si considera asse X. Serve modifica NGE! Ticket#2257
|
||||
|
||||
Versione 2.7a2 (15/01/2024)
|
||||
- (SIM-GEN) In caso di testa 1 su TC2 (ONE), si ruota prima la C e poi la B. Ticket#2247
|
||||
|
||||
Versione 2.7a1 (07/01/2024)
|
||||
- (GEN) In separazione, quando si porta indietro il restante, si aprono le paratie rulli subito. Ticket#2214
|
||||
- (SIM-GEN) Se entrambe le morse sono restate in posizione, le sposto comunque di 5mm per distanziare i pezzi separati. Ticket#2206
|
||||
|
||||
Versione 2.6l2 (09/12/2024)
|
||||
- (SIM-GEN) Corretto problema introdotto in 2.6l1 per risolvere #2198. Ticket#2203
|
||||
- (SIM-GEN) In MLSE modificato controllo direzione utensile per determinare Z massima. Ticket#2204
|
||||
|
||||
+2
-2
@@ -3,8 +3,8 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_ONE-PF', -- nome script PP standard
|
||||
VERSION = '2.6l2', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
VERSION = '3.1f2', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '3.1b2' -- versione minima kernel
|
||||
}
|
||||
|
||||
return InfoCommon_STD_PP
|
||||
|
||||
Reference in New Issue
Block a user