Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e00046400 | |||
| 9e8c67fcb8 | |||
| 3c8ef31433 | |||
| b89e384dbc | |||
| d3aac014b7 | |||
| 87ebd3a20d | |||
| 8e46749ecd | |||
| c083e04e59 |
@@ -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
|
||||
|
||||
+9
-4
@@ -96,6 +96,10 @@ function OnSimulStart()
|
||||
if DefTcPos2 then
|
||||
LoadFirstTool( 2, DefTcPos2)
|
||||
end
|
||||
|
||||
-- se presenti, nascondo i tastatori
|
||||
DeactivateProbeTool()
|
||||
|
||||
ExecStartHome()
|
||||
-- Se reset o home, esco
|
||||
if EMT.SIM1ST then return end
|
||||
@@ -130,7 +134,8 @@ function OnSimulStart()
|
||||
{ Grp = 'Base', Sub = 'COLLISION', Name = 'TC1'},
|
||||
{ Grp = 'Base', Sub = 'COLLISION', Name = 'TC2'},
|
||||
{ Grp = 'Base', Sub = 'BELT', Name = 'COLLISION'},
|
||||
{ Grp = 'X1', Sub = 'COLLISION', Name = 'STM'}}
|
||||
{ Grp = 'X1', Sub = 'COLLISION', Name = 'STM'},
|
||||
{ Grp = 'X1', Sub = 'COLLISION', Name = 'STM2'}}
|
||||
|
||||
if EgtGetHeadId( 'H21') then
|
||||
table.insert( McdData, { Grp = 'X2', Sub = 'COLLISION', Name = 'STM'})
|
||||
@@ -662,7 +667,7 @@ function OnSimulToolDeselect( dPrevA)
|
||||
end
|
||||
|
||||
-- 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
|
||||
if bSkipToolChange or ( ( 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
|
||||
@@ -2569,7 +2574,7 @@ function GetHeadSetFromTcPos( sTcPos)
|
||||
local TCPOS_2A = {}
|
||||
local TCPOS_2B = {}
|
||||
if EgtGetHeadId( 'H21') then
|
||||
TCPOS_1A = { 'T1', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10'}
|
||||
TCPOS_1A = { 'T1', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', '501'}
|
||||
TCPOS_1B = { 'T101'}
|
||||
TCPOS_2A = { 'T11', 'T12', 'T13', 'T14', 'T15', 'T16', 'T17', 'T18', 'T19', 'T20'}
|
||||
TCPOS_2B = { 'T111'}
|
||||
@@ -2577,7 +2582,7 @@ function GetHeadSetFromTcPos( sTcPos)
|
||||
TCPOS_1A = { 'T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10'}
|
||||
TCPOS_1B = { 'T101', 'T201'}
|
||||
TCPOS_1C = { 'T301'}
|
||||
TCPOS_2A = { 'T11', 'T12', 'T13', 'T14', 'T15', 'T16', 'T17', 'T18', 'T19', 'T20'}
|
||||
TCPOS_2A = { 'T11', 'T12', 'T13', 'T14', 'T15', 'T16', 'T17', 'T18', 'T19', 'T20', '502'}
|
||||
end
|
||||
for _, sVal in ipairs( TCPOS_1A) do
|
||||
if sVal == sTcPos then return 1, 1 end
|
||||
|
||||
+49
-13
@@ -4,6 +4,12 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** Generic Machinings ***
|
||||
---------------------------------------------------------------------
|
||||
require( 'EmtGenMachining')
|
||||
---------------------------------------------------------------------
|
||||
|
||||
-- Carico libreria
|
||||
local BD = require( 'BeamData')
|
||||
|
||||
@@ -320,6 +326,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 +430,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
|
||||
@@ -979,6 +974,46 @@ function OnSpecialApplyMachining()
|
||||
|
||||
-- Recupero la posizione della trave e dei carrelli al termine della 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
|
||||
-- se precedente operazione non esiste, errore
|
||||
if not nPrevOpeId then
|
||||
EMC.ERR = 1
|
||||
@@ -1505,6 +1540,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
|
||||
|
||||
|
||||
+6
-5
@@ -32,9 +32,9 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '3.1f1_RC10'
|
||||
PP_NVER = '3.1.6.1'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
PP_VER = '3.1g1'
|
||||
PP_NVER = '3.1.7.1'
|
||||
MIN_MACH_VER = '3.1f1'
|
||||
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
|
||||
@@ -890,6 +890,7 @@ function GetHeadTCSet( sHead, sTcPos)
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- Funzione che restituisce l'altezza del pezzo in lavorazione
|
||||
function GetRawHeight()
|
||||
@@ -978,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
|
||||
|
||||
+21
-1
@@ -1,10 +1,30 @@
|
||||
==== Common_ONE-PF Update Log ====
|
||||
|
||||
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
@@ -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.1g1', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '3.1f1' -- versione minima kernel
|
||||
}
|
||||
|
||||
return InfoCommon_STD_PP
|
||||
|
||||
Reference in New Issue
Block a user