Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ec66b14b8 | |||
| 37a2fb6c5c | |||
| 864b59d5bc | |||
| fa16abc878 | |||
| 0a11dd15a1 | |||
| 072a34ffc3 | |||
| 537b77643f | |||
| 40a7015016 | |||
| 32816dd287 | |||
| c1fff58e93 | |||
| 925da8106b | |||
| e9f1645329 | |||
| dafa913d46 | |||
| cafe6f242b |
+32
-7
@@ -6,7 +6,7 @@ local BD = require( 'BeamData')
|
||||
|
||||
-- Variabili di modulo
|
||||
local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
||||
local MACHINE_INFO = 'PP_VER ver.'..PP_VER
|
||||
local MACHINE_INFO = MACH_NAME..' ver.'..PP_VER
|
||||
|
||||
local TEST_USE = false
|
||||
|
||||
@@ -269,10 +269,34 @@ function OnDispositionEnd()
|
||||
local nPrevRot = GetPhaseRot( EMT.PHASE - 1)
|
||||
-- verifico se sono diverse
|
||||
if nRot ~= nPrevRot then
|
||||
local nDeltaRot = nRot - nPrevRot
|
||||
-- rotazione automatica o manuale (sempre con il medesimo comando)
|
||||
local sOut = 'M180 L0=' .. tostring( nDeltaRot)
|
||||
EmtOutput( sOut)
|
||||
-- se ho la testa 2, quindi tipo PF
|
||||
if EgtGetHeadId( 'H21') then
|
||||
local nDeltaRot = nRot - nPrevRot
|
||||
-- rotazione automatica o manuale (sempre con il medesimo comando)
|
||||
local sOut = 'M180 L0=' .. tostring( nDeltaRot)
|
||||
EmtOutput( sOut)
|
||||
-- altrimenti se ONE
|
||||
else
|
||||
if nRot > nPrevRot then nRot = nRot - 4 end
|
||||
local nDeltaRot = nRot - nPrevRot
|
||||
-- se rotazione automatica richiesta e possibile
|
||||
if AutomaticRotation and EMT.LB >= AutoRotMinLen then
|
||||
local sOut = 'M180 L0=' .. tostring( -nDeltaRot)
|
||||
EmtOutput( sOut)
|
||||
else
|
||||
local sOut
|
||||
if nDeltaRot == -1 then
|
||||
sOut = 'M151'
|
||||
elseif nDeltaRot == -2 then
|
||||
sOut = 'M152'
|
||||
elseif nDeltaRot == -3 then
|
||||
sOut = 'M153'
|
||||
end
|
||||
EmtOutput( sOut)
|
||||
EmtOutput( 'M86')
|
||||
EmtOutput( 'G4F.5')
|
||||
end
|
||||
end
|
||||
-- imposto stato post-rotazione
|
||||
EMT.POSTROT = true
|
||||
-- imposto recupero sovramateriale in X non più presente
|
||||
@@ -1108,7 +1132,7 @@ function OnRapid()
|
||||
end
|
||||
EMT.MDCHAR = {}
|
||||
-- se necessario allargo le cabine
|
||||
if RollerParkingNeeded( EMT.HEAD, PrevR1, PrevR2, EMT.R1, EMT.R2) or
|
||||
if RollerParkingNeeded( EMT.HEAD, PrevR1, PrevR2, EMT.R1, EMT.R2) or EMT.TOOL ~= EMT.PREVTOOL or
|
||||
EMT.V1POS < EMT.V1NEXTPOS - 1 or EMT.V2POS > EMT.V2NEXTPOS + 1 then
|
||||
local dPosT = EMT.TPOS or EMT.L1op
|
||||
EmitParkRoller( dPosT, EMT.MCHSPLIT)
|
||||
@@ -1427,7 +1451,8 @@ function OnRapid()
|
||||
-- se Split o Presplit lascio agganciata solo la pinza Y2 alla fine dei movimenti
|
||||
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' or EMT.HEAD == 'H22'
|
||||
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
|
||||
local CurrL3o = EMT.L3o
|
||||
EMT.L3o = EMT.L3op
|
||||
EmitZmax( true, true, bToXhome, EMT.R1p, EMT.R2p, EMT.MCHSPLIT)
|
||||
|
||||
+39
-29
@@ -727,17 +727,6 @@ function OnSimulMachiningStart()
|
||||
end
|
||||
-- salvo dati utensile
|
||||
local nSetHead = GetHeadSet( EMT.HEAD)
|
||||
-- per gruppo testa 1
|
||||
if nSetHead == 1 then
|
||||
EMT.PREVTOOL_H1 = EMT.TOOL
|
||||
EMT.PREVHEAD_H1 = EMT.HEAD
|
||||
EMT.PREVTCPOS_H1 = EMT.TCPOS
|
||||
-- per gruppo testa 2
|
||||
elseif nSetHead == 2 then
|
||||
EMT.PREVTOOL_H2 = EMT.TOOL
|
||||
EMT.PREVHEAD_H2 = EMT.HEAD
|
||||
EMT.PREVTCPOS_H2 = EMT.TCPOS
|
||||
end
|
||||
-- recupero alcuni dati della lavorazione
|
||||
EMT.MCHNAME = EgtGetOperationName( EMT.MCHID)
|
||||
EMT.MCHTYPE = EgtGetMachiningParam( MCH_MP.TYPE)
|
||||
@@ -813,6 +802,20 @@ function OnSimulMachiningEnd()
|
||||
if EMT.DOU_TYPE and not EMT.ZMAX then EMT.DOU_TO_ZMAX = true end
|
||||
EMT.DOU_TYPE = nil
|
||||
EMT.DOU_TOOL = nil
|
||||
-- salvo dati utensile
|
||||
local nSetHead = GetHeadSet( EMT.HEAD)
|
||||
-- per gruppo testa 1
|
||||
if nSetHead == 1 then
|
||||
EMT.PREVTOOL_H1 = EMT.TOOL
|
||||
EMT.PREVHEAD_H1 = EMT.HEAD
|
||||
EMT.PREVTCPOS_H1 = EMT.TCPOS
|
||||
-- per gruppo testa 2
|
||||
elseif nSetHead == 2 then
|
||||
EMT.PREVTOOL_H2 = EMT.TOOL
|
||||
EMT.PREVHEAD_H2 = EMT.HEAD
|
||||
EMT.PREVTCPOS_H2 = EMT.TCPOS
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -838,7 +841,7 @@ end
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulPathEnd()
|
||||
-- rimozione sfridi
|
||||
RemoveScraps()
|
||||
ExecRemoveScraps()
|
||||
-- se non ci sono comandi ausiliari associati e richiesta risalita a Zmax
|
||||
if EMT.AUXTOT == 0 and EMT.TO_ZMAX then
|
||||
if EMT.MCHSPLIT and not EMT.TO_FALL and not EMT.TO_SPECSPLIT then
|
||||
@@ -911,7 +914,8 @@ function OnSimulMoveStart()
|
||||
local bParkV = false
|
||||
if EMT.MCHFIRST then
|
||||
-- se rulli più chiusi del richiesto o cambio direzione utensile (tranne solo asse B con C0 o equivalenti) devo mettere i rulli in parcheggio
|
||||
if V1Pos < EMT.V1NEXTPOS - 1 or V2Pos > EMT.V2NEXTPOS + 1 or RollerParkingNeeded( EMT.HEAD, EMT.R1p, EMT.R2p, EMT.R1, EMT.R2) then
|
||||
if V1Pos < EMT.V1NEXTPOS - 1 or V2Pos > EMT.V2NEXTPOS + 1 or RollerParkingNeeded( EMT.HEAD, EMT.R1p, EMT.R2p, EMT.R1, EMT.R2) or
|
||||
( EMT.TOOL ~= EMT.PREVTOOL_H1 and EMT.TOOL ~= EMT.PREVTOOL_H2) then
|
||||
bParkV = true
|
||||
EMT.A3 = ParkV1
|
||||
EMT.A4 = ParkV2
|
||||
@@ -1171,6 +1175,11 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulMoveEnd()
|
||||
-- rimozione eventuali sfridi
|
||||
if EMT.FLAG == 301 then
|
||||
ExecRemoveScraps()
|
||||
end
|
||||
|
||||
-- se primo rapido della lavorazione
|
||||
if EMT.MCHFIRST and EMT.MOVE == 0 then
|
||||
-- se lavorazione split, dichiaro carro Y1 riagganciato
|
||||
@@ -1212,11 +1221,12 @@ function OnSimulMoveEnd()
|
||||
-- se Zmax dopo fine lavorazione
|
||||
if EMT.MOVE == 0 and EMT.FLAG == 3 then
|
||||
-- eventuale rimozione sfridi
|
||||
RemoveScraps()
|
||||
ExecRemoveScraps()
|
||||
-- se Split o Presplit lascio agganciata solo la pinza Y2 alla fine dei movimenti
|
||||
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' or EMT.HEAD == 'H22'
|
||||
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
|
||||
-- eseguo
|
||||
ExecMoveZmax( EMT.MCHSPLIT, bToXhome)
|
||||
EMT.TO_ZMAX = nil
|
||||
@@ -1819,7 +1829,7 @@ function ExecOpenRoller( nInd)
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function RemoveScraps()
|
||||
function ExecRemoveScraps()
|
||||
-- se attivo VMILL, lavorazione ed è richiesto di eliminare gli sfridi
|
||||
if EMT.VMILL and #EMT.VMILL > 0 and not EMT.OPEISDISP and EMT.VMRS then
|
||||
local vMillId = EMT.VMILL[1]
|
||||
@@ -1850,7 +1860,6 @@ function RemoveScraps()
|
||||
end
|
||||
EMT.VMRS = false
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -2115,18 +2124,19 @@ end
|
||||
---------------------------------------------------------------------
|
||||
-- *** ESTIMATION T&L ***
|
||||
---------------------------------------------------------------------
|
||||
local RAPID_X_FEED = 70000 -- mm/min
|
||||
local RAPID_Y_FEED = 100000 -- mm/min
|
||||
local RAPID_Z_FEED = 32000 -- mm/min
|
||||
local RAPID_C_FEED = 15000 -- deg/min
|
||||
local RAPID_B_FEED = 15000 -- deg/min
|
||||
local RAPID_MIN_T = 0.1 -- s
|
||||
local LOAD_T = 2 -- s
|
||||
local CHAR_ONE_MOVE_T = 1 -- s
|
||||
local ROTATION_T = 40 -- s
|
||||
local SPLIT_T = 6 -- s
|
||||
local UNLOAD_T = 4 -- s
|
||||
local FALL_T = 2 -- s
|
||||
local ESTIMATION_RAPID_COEFF = EstimationRapidMultiplier or 1
|
||||
local RAPID_X_FEED = 70000 / ESTIMATION_RAPID_COEFF -- mm/min
|
||||
local RAPID_Y_FEED = 100000 / ESTIMATION_RAPID_COEFF -- mm/min
|
||||
local RAPID_Z_FEED = 32000 / ESTIMATION_RAPID_COEFF -- mm/min
|
||||
local RAPID_C_FEED = 15000 / ESTIMATION_RAPID_COEFF -- deg/min
|
||||
local RAPID_B_FEED = 15000 / ESTIMATION_RAPID_COEFF -- deg/min
|
||||
local RAPID_MIN_T = 0.1 * ESTIMATION_RAPID_COEFF -- s
|
||||
local LOAD_T = 2 * ESTIMATION_RAPID_COEFF -- s
|
||||
local CHAR_ONE_MOVE_T = 1 * ESTIMATION_RAPID_COEFF -- s
|
||||
local ROTATION_T = 40 * ESTIMATION_RAPID_COEFF -- s
|
||||
local SPLIT_T = 6 * ESTIMATION_RAPID_COEFF -- s
|
||||
local UNLOAD_T = 4 * ESTIMATION_RAPID_COEFF -- s
|
||||
local FALL_T = 2 * ESTIMATION_RAPID_COEFF -- s
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnEstimStart()
|
||||
|
||||
+3
-3
@@ -25,9 +25,9 @@ REM copio i sorgenti nel percorso temporaneo per i compilati
|
||||
ROBOCOPY . %fullPathSource%\bin\%machineName%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
||||
|
||||
REM copio i file compilati nel percorso temporaneo per i compilati
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_ONE-PF.mlpe Common-PF1250.mlpe
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_ONE-PF.mlse Common-PF1250.mlse
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_ONE-PF.NUM.mlpe Common-PF1250.TPA.mlpe
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_ONE-PF.mlpe -s Common_ONE-PF.mlpe
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_ONE-PF.mlse -s Common_ONE-PF.mlse
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_ONE-PF.NUM.mlpe -s Common_ONE-PF.NUM.mlpe
|
||||
|
||||
REM comprimo i file compilati in uno zip pronto per essere distribuito
|
||||
tar.exe acvf %fullPathZip%\%machineName%.zip -C %fullPathSource%\bin\ %machineName%\*.*
|
||||
|
||||
+8
-2
@@ -42,13 +42,19 @@
|
||||
-- 2024/02/07 ver 2.6a5 Allineamento con Common ver. 2.6a6
|
||||
-- 2024/02/19 ver 2.6b1 In BeamData aggiunta funzione GetBlockedAxis che sostituisce la GetChainSawBlockedAxis.
|
||||
-- 2024/02/23 ver 2.6b2 Allineamento con common ver. 2.6b2; in mlde aggiunte chiamate EgtAddToPackagePath
|
||||
-- 2024/02/29 ver 2.6c1 Allineamento con common ver. 2.6c1
|
||||
-- 2024/03/04 ver 2.6c2 Modificato log con nome macchina
|
||||
-- Allineamento con common ver. 2.6c2
|
||||
-- 2024/03/06 ver 2.6c3 Allineamento con common ver. 2.6c4
|
||||
-- 2024/03/06 ver 2.6c4 Allineamento con common ver. 2.6c5
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.6b2'
|
||||
PP_VER = '2.6c4'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
MACH_NAME = 'Essetre-ONE'
|
||||
|
||||
-- Carico i dati globali
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
@@ -62,7 +68,7 @@ if INFO_STD_PP.MIN_MACH_VER_PP_COMMON > MIN_MACH_VER then
|
||||
MIN_MACH_VER = INFO_STD_PP.MIN_MACH_VER_PP_COMMON
|
||||
end
|
||||
|
||||
EgtOutLog ( '**PP_VER ver.'..PP_VER..'**'..INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION, 1)
|
||||
EgtOutLog ( '** ' .. MACH_NAME..' '..PP_VER..' ** ( '..INFO_STD_PP.NAME..': '..INFO_STD_PP.VERSION..' - MinMach: '.. MIN_MACH_VER ..') **', 1)
|
||||
|
||||
-- Parametri macchina
|
||||
NumericalControl = 'NUM' -- NUM o TPA o NUM_FLEX
|
||||
|
||||
+23
-6
@@ -1,29 +1,46 @@
|
||||
==== Essetre_StdPF Update Log ====
|
||||
|
||||
versione 2.6b2 (26/02/2024)
|
||||
Versione 2.6c5 (07/03/2024)
|
||||
- (GEN) Per ribaltamento, i comandi si differenziano per macchina. Sembra che ONE e PF abbiano comandi diversi. In attesa di conferma da parte di Essetre
|
||||
- (SIM-GEN) Se cambiato utensile, si aprono sempre paratie
|
||||
- (SIM) Spostato salvataggio dati utensile precedente in MachiningEnd, prima era in MachininsStart
|
||||
|
||||
Versione 2.6c4 (06/03/2024)
|
||||
- (SIM-GEN) Alla fine del movimento a Z-MAX, in home con lama solo se si cambia utensile. Prima andava sempre in home se era lama, anche se non doveva cambiare utensile
|
||||
|
||||
Versione 2.6c3 (05/03/2024)
|
||||
- (MLDE-SIM) Aggiunta variabile FACOLTATIVA 'EstimationRapidMultiplier' in mlde per regolare il tempo stimato di rapido su macchine vecchie. Se non presente default 1.
|
||||
|
||||
Versione 2.6c2 (04/03/2024)
|
||||
- (MLDE-GEN) Aggiunta variabile 'MACH_NAME' in MLDE con nome macchina
|
||||
|
||||
Versione 2.6c1 (29/02/2024)
|
||||
- (SIM) Gestione rimozione VMILL per tagli a cubetti Zig-Zag
|
||||
|
||||
Versione 2.6b2 (26/02/2024)
|
||||
- (MLDE-SIM-GEN) EgtAddToPackagePath spostato in mlde
|
||||
|
||||
versione 2.6b1 (20/02/2024)
|
||||
Versione 2.6b1 (20/02/2024)
|
||||
- (SIM) Corretto controllo calcolo Z su primo movimento lama, allineato a generazione
|
||||
- (GEN) Corretto emissione movimenti per macchine con motosega su testa 2
|
||||
- (SIM) Aggiunta funzioni "OnSimulInit" e "OnSimulExit" per orientare vista corretta in caso di macchina con carico destro. N.B.= serve CAM5 2.6b4
|
||||
- (ALL) "BeamData" caricato come libreria con 'require' anziché come file con 'dofile'
|
||||
- (GEN) In "GetMovesInAuxCmd" si passa la posizione calcolata V1 indipendentemente dall'utilizzo di Y1
|
||||
|
||||
versione 2.6a7 (12/02/2024)
|
||||
Versione 2.6a7 (12/02/2024)
|
||||
- (GEN) Per movimento con motosega, si ribadiscono tutti gli assi nella prima G141
|
||||
|
||||
versione 2.6a6 (02/02/2024)
|
||||
Versione 2.6a6 (02/02/2024)
|
||||
- (SIM) Corretta simulazione movimento in X-Home, coerente con generazione
|
||||
- (GEN) Aggiunta lettura parametro 'Split'
|
||||
- (SIM) Se lavorazione è un taglio di separazione, se necessario, ripristino posizione di Y1DELTA prima di aprire i rulli
|
||||
- (SIM-GEN) Modificata gestione movimenti motosega, in aggiunta con caso particolare di pezzo alto più di 650mm
|
||||
- (ALL) Caricamento BeamData come local
|
||||
|
||||
versione 2.6a5 (26/01/2024)
|
||||
Versione 2.6a5 (26/01/2024)
|
||||
- (SIM-GEN) Migliorato calcolo dimensioni grezzo per apertura rulli in caso di 'precut'
|
||||
|
||||
versione 2.6a4 (24/01/2024)
|
||||
Versione 2.6a4 (24/01/2024)
|
||||
- (GEN) Se pezzo tenuto solo con pinza destra non si esclude la rulliera di sinistra, se pezzogrande, può venire in supporto
|
||||
- (SIM-GEN) Correzione gestione apertura/chiusura rulli sul fine barra e in generale (da PF1250)
|
||||
- (SIM) Aggiunto solido collisione lama sotto traversa (per PF-progress)
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_ONE-PF', -- nome script PP standard
|
||||
VERSION = '2.6b2', -- versione script
|
||||
VERSION = '2.6c5', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user