Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c6b75eb944 | |||
| c109ac41af | |||
| 03734128a9 | |||
| 9d199cac54 | |||
| 023632b7ab | |||
| 16b854c9e1 | |||
| 33023fbe6a | |||
| 54fcc24c91 | |||
| 0ea9753518 | |||
| 9ea7c3aeee | |||
| a16a4fa02b | |||
| 148a34af51 | |||
| ba2602c5b2 | |||
| 1b2c4cfb89 | |||
| 148e04c466 | |||
| 2dd8c8a90d | |||
| cf04189fe2 | |||
| f223da1a1c | |||
| bab2d2315d | |||
| 7256395366 | |||
| a9a2183e3a | |||
| a3354527f2 | |||
| 95ac29a6cf | |||
| 74e2f8394c | |||
| d7948c1426 | |||
| 5c0a3e2f36 | |||
| adfa28e06b | |||
| 7460a2d7d7 | |||
| 932475851f | |||
| 30c80b0ac2 | |||
| f5ddc9849d |
+28
-10
@@ -5,7 +5,7 @@ EgtOutLog( ' ONE-BeamData started')
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
local BeamData = {
|
||||
RIGHT_LOAD = true, -- flag carico da destra
|
||||
RIGHT_LOAD = true, -- flag carico da destra
|
||||
SIMUL_VIEW_DIR = 1, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
|
||||
ROT90 = false, -- flag abilitazione rotazione 90 gradi
|
||||
MIN_WIDTH = 40, -- larghezza minima del grezzo
|
||||
@@ -54,7 +54,7 @@ local BeamData = {
|
||||
DIM_STRIP_SMALL = 0.1, -- dimensione codolo piccolo (quando le parti sostenute sono sicuramente sulla parte sopra del pezzo)
|
||||
RAWCOL = { 255, 160, 32, 30}, -- colore del grezzo
|
||||
RAW_OFFSET = 2000, -- spostamento grezzo rimanente dopo split
|
||||
VICE_MINH = 110, -- altezza minima della morsa
|
||||
VICE_MINH = 1000, -- altezza minima della morsa
|
||||
OFFSET_DRILL_TENON = 0, -- offset fori su tenoni verso base degli stessi (0=non fare)
|
||||
USER_HOLE_DIAM = 14, -- diametro foro per L20
|
||||
MAX_TOOL_LEN_FOR_HOR_MACH = 500, -- massima lunghezza ingombro per poter fare forature (fresature) oltre i 10 gradi dalla verticale
|
||||
@@ -67,13 +67,13 @@ local BeamData = {
|
||||
MAXDIAM_POCK_CORNER = 31, -- diametro massimo utensile ammesso per tasche con angoli interni
|
||||
USE_LONGCUT = false, -- per i tagli longitudinali usare solo la lavorazione di lama LongCut
|
||||
ADVANCE_TAIL_CUT = true, -- per spostare prima del taglio di separazione il taglio di coda su pezzi corti con robabile caduta
|
||||
ADVANCE_TAIL_OFFS = 1, -- accorciamento taglio di coda avanzato (minimo 1)
|
||||
CLAMP5 = false -- presenza pinza speciale per pezzi piccoli
|
||||
ADVANCE_TAIL_OFFS = 1, -- accorciamento taglio di coda avanzato (minimo 1)
|
||||
CLAMP5 = false -- presenza pinza speciale per pezzi piccoli
|
||||
}
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-ONErl.data"
|
||||
local sData = EgtGetSourceDir().."\\Ts3Data.lua"
|
||||
local sData = EgtGetCurrMachineDir().."\\Beam\\Ts3Data.lua"
|
||||
if EgtExistsFile( sTs3Data) then
|
||||
EgtCopyFile( sTs3Data, sData)
|
||||
local sTs3DataOld = sTs3Data..'.old'
|
||||
@@ -161,14 +161,32 @@ end
|
||||
BeamData.GetMinUnloadableRaw = GetMinUnloadableRaw
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetChainSawBlockedAxis( nInd)
|
||||
if nInd == 1 then
|
||||
return 'A=-90'
|
||||
local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
||||
-- lama
|
||||
if nToolType == MCH_TY.SAW_STD or nToolType == MCH_TY.SAW_FLAT then
|
||||
return ''
|
||||
-- sega a catena
|
||||
elseif nToolType == MCH_TY.MORTISE_STD then
|
||||
if sHead == 'H13' or sHead == 'H15' then
|
||||
if sBlockedAxis == 'parallel' then
|
||||
return 'A=0'
|
||||
elseif sBlockedAxis == 'perpendicular' then
|
||||
return 'A=-90'
|
||||
end
|
||||
else
|
||||
return ''
|
||||
end
|
||||
-- fresa
|
||||
elseif nToolType == MCH_TY.MILL_STD or nToolType == MCH_TY.MILL_NOTIP then
|
||||
return ''
|
||||
-- punta
|
||||
elseif nToolType == MCH_TY.DRILL_STD or nToolType == MCH_TY.DRILL_LONG then
|
||||
return ''
|
||||
else
|
||||
return 'A=0'
|
||||
return ''
|
||||
end
|
||||
end
|
||||
BeamData.GetChainSawBlockedAxis = GetChainSawBlockedAxis
|
||||
BeamData.GetBlockedAxis = GetBlockedAxis
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetChainSawInitAngs( vtN, vtO, nInd)
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
17=ProfTCone
|
||||
18=SmallToolContour
|
||||
19=AntiSplintMillCut
|
||||
20=SideMillAsBlade
|
||||
21=SideMillAsBlade_H2
|
||||
|
||||
[Pocketing]
|
||||
1=Pocket
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,11 @@
|
||||
-- Special Operations macchina Essetre-ONErl by EgalWare s.r.l. 2023/11/15
|
||||
-- Special Operations macchine standard ONE e PF by EgalWare s.r.l. 2023/11/24
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
-- Carico i dati globali
|
||||
local sBaseDir = EgtGetSourceDir()
|
||||
local BD = dofile( sBaseDir .. 'Beam\\BeamData.lua')
|
||||
|
||||
EgtOutLog ( '** Essetre-ONErl '..PP_VER..' **', 1)
|
||||
|
||||
-- Carico libreria
|
||||
local BD = require( 'BeamData')
|
||||
|
||||
---------------------- OnSpecialGetMaxZ -----------------------------
|
||||
---------------------------------------------------------------------
|
||||
@@ -36,23 +32,30 @@ function OnSpecialGetMaxZ()
|
||||
-- Inizializzazioni
|
||||
EMC.ERR = 0
|
||||
|
||||
-- Gestione speciale per sega a catena
|
||||
-- Gestione speciale per sega a catena su utesta 1
|
||||
if EMC.HEAD == 'H13' or EMC.HEAD == 'H15' then
|
||||
EMC.MAXZ = EgtGetAxisHomePos( 'Z1')
|
||||
return
|
||||
-- Gestione speciale per sega a catena su testa 2
|
||||
elseif EMC.HEAD == 'H23' then
|
||||
EMC.MAXZ = EgtGetAxisHomePos( 'Z2')
|
||||
return
|
||||
end
|
||||
|
||||
-- Sistemazione dati di input
|
||||
local vtTp = Vector3d( EMC.TDIRp)
|
||||
local nPos = tonumber( string.sub( EMC.TCPOS, 2)) or 0
|
||||
local sHead_TC = GetHeadTCSet( EMC.HEAD, EMC.TCPOS)
|
||||
local bFromZmax = false
|
||||
if vtTp:isSmall() then
|
||||
vtTp = X_AX()
|
||||
bFromZmax = true
|
||||
if nPos <= 10 then
|
||||
if sHead_TC == 'Head1_TC1' then
|
||||
EMC.R1p = ParkC1
|
||||
EMC.R2p = ParkB1
|
||||
else
|
||||
elseif sHead_TC == 'Head2_TC2' then
|
||||
EMC.R1p = ParkC2
|
||||
EMC.R2p = ParkB2
|
||||
elseif sHead_TC == 'Head1_TC2' then
|
||||
EMC.R1p = ParkFrnC1
|
||||
EMC.R2p = ParkFrnB1
|
||||
end
|
||||
@@ -62,14 +65,14 @@ function OnSpecialGetMaxZ()
|
||||
local bBSameSign = (( EMC.R2p < 10 and EMC.R2 < 10) or ( EMC.R2p > -10 and EMC.R2 > -10))
|
||||
|
||||
-- Calcolo in funzione della testa e dei parametri
|
||||
if EMC.HEAD == 'H11' and nPos <= 10 then
|
||||
if bBSameSign and vtTp:getX() > -0.3 and vtT:getX() > -0.3 then
|
||||
if EMC.HEAD == 'H11' then
|
||||
if bBSameSign and vtTp:getX() > -0.1 and vtT:getX() > -0.1 then
|
||||
EMC.MAXZ = MaxZ1
|
||||
else
|
||||
local vMZ = {{ Tz=0.85, Ez=380}, { Tz=0.5, Ez=270}, { Tz=-0.01, Ez=160}}
|
||||
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 nPos <= 10 then
|
||||
elseif EMC.HEAD == 'H12' and sHead_TC == 'Head1_TC1' then
|
||||
if vtTp:getX() > 0.3 and vtT:getX() > 0.3 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)
|
||||
@@ -88,17 +91,10 @@ function OnSpecialGetMaxZ()
|
||||
local vMZ = {{ Tz=0.85, Ez=440}, { Tz=0.5, Ez=200}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
else
|
||||
local vMZ = {{ Tz=0.85, Ez=380}, { Tz=0.7, Ez=280}, { Tz=0.5, Ez=180}, { Tz=0.15, Ez=60}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||
local vMZ = {{ Tz=0.85, Ez=400}, { Tz=0.7, Ez=300}, { Tz=0.5, Ez=195}, { Tz=0.15, Ez=70}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
end
|
||||
elseif EMC.HEAD == 'H11' then
|
||||
if bBSameSign and vtTp:getX() > -0.3 and vtT:getX() > -0.3 then
|
||||
EMC.MAXZ = MaxZ1
|
||||
else
|
||||
local vMZ = {{ Tz=0.85, Ez=380}, { Tz=0.5, Ez=270}, { Tz=-0.01, Ez=160}}
|
||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
end
|
||||
elseif EMC.HEAD == 'H12' then
|
||||
elseif EMC.HEAD == 'H12' and sHead_TC == 'Head1_TC2' then
|
||||
if vtTp:getX() > 0.3 and vtT:getX() > 0.3 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)
|
||||
@@ -120,9 +116,39 @@ function OnSpecialGetMaxZ()
|
||||
local vMZ = {{ Tz=0.85, Ez=380}, { Tz=0.7, Ez=280}, { Tz=0.5, Ez=180}, { Tz=0.15, Ez=60}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
end
|
||||
elseif EMC.HEAD == 'H21' then
|
||||
if bBSameSign and vtTp:getX() > -0.1 and vtT:getX() > -0.1 then
|
||||
EMC.MAXZ = MaxZ2
|
||||
else
|
||||
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 = ParkZ2 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
end
|
||||
elseif EMC.HEAD == 'H22' then
|
||||
if vtTp:getX() > 0.3 and vtT:getX() > 0.3 then
|
||||
if bBSameSign and abs( EMC.R1 - EMC.R1p) < 165 then
|
||||
EMC.MAXZ = MaxZ2 - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||
elseif vtTp:getZ() > 0.707 or vtT:getZ() > 0.707 then
|
||||
EMC.MAXZ = ParkZ2 + 200
|
||||
else
|
||||
EMC.MAXZ = ParkZ2 + 1
|
||||
end
|
||||
elseif bBSameSign and
|
||||
(( EMC.R1p > -180.1 and EMC.R1p < -29.9 and EMC.R1 > -180.1 and EMC.R1 < -29.9 and EMC.R2p < 10 and EMC.R2 < 10) or
|
||||
( EMC.R1p > -330.1 and EMC.R1p < -179.9 and EMC.R1 > -330.1 and EMC.R1 < -179.9 and EMC.R2p > -10 and EMC.R2 > -10)) then
|
||||
EMC.MAXZ = MaxZ2 - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||
elseif bBSameSign and
|
||||
(( EMC.R1p > -180.1 and EMC.R1p < 0.1 and EMC.R1 > -180.1 and EMC.R1 < 0.1 and EMC.R2p < 10 and EMC.R2 < 10) or
|
||||
( EMC.R1p > -360.1 and EMC.R1p < -179.9 and EMC.R1 > -360.1 and EMC.R1 < -179.9 and EMC.R2p > -10 and EMC.R2 > -10)) then
|
||||
local vMZ = {{ Tz=0.85, Ez=440}, { Tz=0.5, Ez=200}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||
EMC.MAXZ = ParkZ2 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
else
|
||||
local vMZ = {{ Tz=0.85, Ez=400}, { Tz=0.7, Ez=300}, { Tz=0.5, Ez=195}, { Tz=0.15, Ez=70}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||
EMC.MAXZ = ParkZ2 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
---------------------- OnSpecialMoveZup -----------------------------
|
||||
---------------------------------------------------------------------
|
||||
function OnSpecialMoveZup()
|
||||
@@ -137,16 +163,17 @@ function OnSpecialMoveZup()
|
||||
local vtT = Vector3d( EMC.TDIR)
|
||||
|
||||
-- Posizione nel TC
|
||||
local nPos = tonumber( string.sub( EMC.TCPOS, 2)) or 0
|
||||
local sHead_TC = GetHeadTCSet( EMC.HEAD, EMC.TCPOS)
|
||||
|
||||
-- recupero Z1 home
|
||||
local dZmax = EgtGetAxisHomePos( 'Z1')
|
||||
local nHeadSet = GetHeadSet( EMC.HEAD)
|
||||
local dZmax = EgtGetAxisHomePos( EgtIf( nHeadSet ~= 2, 'Z1', 'Z2'))
|
||||
|
||||
-- se fresa
|
||||
if EMC.HEAD == 'H11' then
|
||||
-- se fresa su testa1 o su testa 2
|
||||
if EMC.HEAD == 'H11' or EMC.HEAD == 'H21' then
|
||||
;
|
||||
-- se lama posizionata dietro
|
||||
elseif EMC.HEAD == 'H12' and nPos <= 10 then
|
||||
-- se lama posizionata su CU prossimo a testa 1
|
||||
elseif EMC.HEAD == 'H12' 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()))
|
||||
@@ -163,8 +190,8 @@ function OnSpecialMoveZup()
|
||||
EMC.MODIF = true
|
||||
end
|
||||
end
|
||||
-- se lama posizionata in fronte
|
||||
elseif EMC.HEAD == 'H12' then
|
||||
-- se lama posizionata su CU prossimo a testa 2
|
||||
elseif ( EMC.HEAD == 'H12' and sHead_TC == 'Head1_TC2') or ( EMC.HEAD == 'H22' and sHead_TC == 'Head2_TC2') then
|
||||
-- se inclinata oltre 90 gradi e interferisce con la trave
|
||||
if ( EMC.R2 < -87.9 and ( EMC.R1 < -180.0 or EMC.R1 > -15.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()))
|
||||
@@ -263,6 +290,22 @@ local function GetNextStartOrRestPhase( nPhase)
|
||||
return nNextPhase
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function IsFirstMachiningOfStart( nMchId)
|
||||
-- se non è fase inizio di pezzo, ritorno risultato negativo
|
||||
if not IsStartOrRestPhase( EMC.PHASE) then
|
||||
return false
|
||||
end
|
||||
-- recupero la precedente operazione attiva
|
||||
local nPrevOperId = EgtGetPrevActiveOperation( nMchId)
|
||||
-- se non esiste o non è una disposizione, ritorno risultato negativo
|
||||
if not nPrevOperId or EgtGetOperationType( nPrevOperId) ~= MCH_OY.DISP then
|
||||
return false
|
||||
end
|
||||
-- è la prima
|
||||
return true
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetPhaseRot( nPhase)
|
||||
return ( EgtGetInfo( EgtGetPhaseDisposition( nPhase) or GDB_ID.NULL, 'ROT', 'i') or 0)
|
||||
@@ -811,6 +854,7 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
|
||||
EMC.SB = b3Tot:getDimY()
|
||||
EMC.HB = b3Tot:getDimZ()
|
||||
EMC.LT = b3Raw:getDimX()
|
||||
EgtOutLog( ' BarLen='..EgtNumToString( EMC.LB, 1), 3)
|
||||
|
||||
-- Aggiorno limiti di presa
|
||||
UpdateMinJoin()
|
||||
@@ -1049,21 +1093,35 @@ function SpecialCalcMachiningEncumbrance( nMchId, bPreCut)
|
||||
-- Recupero valore assi macchina
|
||||
local nSecId = EgtGetNext( EgtGetFirstInGroup( nPathId))
|
||||
local vAxes = EmtGetAxesPos( nSecId)
|
||||
if not vAxes or #vAxes < 5 or (( sHead == 'H13' or sHead == 'H23') and #vAxes < 6) then
|
||||
if not vAxes or #vAxes < 5 or (( sHead == 'H13' or sHead == 'H15' or sHead == 'H23') and #vAxes < 6) then
|
||||
EMC.ERR = 15
|
||||
EMC.MSG = ' Error : machine axes values not found'
|
||||
return
|
||||
end
|
||||
-- Calcolo dell'ingombro della testa rispetto allo Zero Macchina
|
||||
local b3Enc
|
||||
EgtSetAxisPos( 'C1', vAxes[4])
|
||||
EgtSetAxisPos( 'B1', vAxes[5])
|
||||
if sHead == 'H13' then
|
||||
EgtSetAxisPos( 'A', vAxes[6])
|
||||
|
||||
if sHead ~= 'H21' and sHead ~= 'H22' and sHead ~= 'H23' then
|
||||
EgtSetAxisPos( 'C1', vAxes[4])
|
||||
EgtSetAxisPos( 'B1', vAxes[5])
|
||||
if sHead == 'H13' or sHead == 'H15' then
|
||||
EgtSetAxisPos( 'A', vAxes[6])
|
||||
end
|
||||
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C1'), GDB_BB.ONLY_VISIBLE)
|
||||
else
|
||||
EgtSetAxisPos( 'C2', vAxes[4])
|
||||
EgtSetAxisPos( 'B2', vAxes[5])
|
||||
if sHead == 'H23' then
|
||||
EgtSetAxisPos( 'A', vAxes[6])
|
||||
end
|
||||
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C2'), GDB_BB.ONLY_VISIBLE)
|
||||
end
|
||||
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C1'), GDB_BB.ONLY_VISIBLE)
|
||||
local dRollFront = max( b3Enc:getMax():getX(), MIN_FRONT_ENG_V) + SIC_V
|
||||
local dRollBack = max( -b3Enc:getMin():getX(), MIN_BACK_ENG_V) + SIC_V
|
||||
|
||||
-- Forzo la distanza di sicurezza da utensile
|
||||
local nSecRollerDist = EgtGetValInNotes( EgtTdbGetCurrToolParam( MCH_TP.USERNOTES), 'SECDIST', 'i') or SIC_V
|
||||
|
||||
local dRollFront = max( b3Enc:getMax():getX(), MIN_FRONT_ENG_V) + nSecRollerDist
|
||||
local dRollBack = max( -b3Enc:getMin():getX(), MIN_BACK_ENG_V) + nSecRollerDist
|
||||
EgtOutLog( ' RollFront = ' .. EgtNumToString( dRollFront, 1) .. ' RollBack = ' .. EgtNumToString( dRollBack, 1), 3)
|
||||
-- Calcolo della posizione della Punta Utensile rispetto allo Zero Macchina
|
||||
local ptTip
|
||||
@@ -1259,6 +1317,9 @@ function SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1Del
|
||||
return {}
|
||||
end
|
||||
|
||||
-- al carico o con prima lavorazione di un pezzo si deve ignorare l'ingombro delle lavorazioni di testa per il pinzaggio
|
||||
if EMC.LOAD or IsFirstMachiningOfStart( EMC.MCHID) then EMC.HCING = 0 end
|
||||
|
||||
return SpecAdjustCarriages( WorkTab)
|
||||
|
||||
-- [B] se richiesti entrambi e posso metterli
|
||||
@@ -1547,8 +1608,6 @@ function SpecCalcPreRot()
|
||||
EMC.CNT = nil
|
||||
-- riporto il carrello in home
|
||||
table.insert( vCmd, { 1, 'Y1', ParkY1})
|
||||
-- dichiaro morse non agganciate
|
||||
table.insert( vCmd, { 21, 0, 0})
|
||||
|
||||
-- eventuale unione tabelle
|
||||
if #vCmdPre > 0 then
|
||||
@@ -1560,13 +1619,16 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function ChangedTool( nMchId)
|
||||
local bChanged = false
|
||||
local bChanged = true
|
||||
-- Salvo lavorazione e utensile correnti, per ripristinarli alla fine
|
||||
local nOrigMchId = EgtGetCurrMachining()
|
||||
local sOrigTool = EgtTdbGetCurrToolParam( MCH_TP.NAME)
|
||||
-- Recupero l'utensile della lavorazione precedente
|
||||
local nPrevMchId = EgtGetPrevActiveOperation( nMchId or GDB_ID.NULL)
|
||||
if nPrevMchId and EgtGetOperationType( nPrevMchId) ~= MCH_OY.DISP then
|
||||
while nPrevMchId and EgtGetOperationType( nPrevMchId) == MCH_OY.DISP do
|
||||
nPrevMchId = EgtGetPrevActiveOperation( nPrevMchId or GDB_ID.NULL)
|
||||
end
|
||||
if nPrevMchId then
|
||||
EgtSetCurrMachining( nPrevMchId)
|
||||
local sTool = EgtGetMachiningParam( MCH_MP.TOOL)
|
||||
bChanged = ( sTool ~= sOrigTool)
|
||||
@@ -1585,7 +1647,8 @@ function SpecAdjustCarriages( WorkTab)
|
||||
--EgtOutLog( ' --->>> CNT=' .. EgtIf( EMC.CNT, '1', '_'))
|
||||
|
||||
-- Aggiorno la posizione dei rulli per eventuale cambio utensile
|
||||
if ChangedTool( EMC.MCHID) then
|
||||
local bChangedTool = ChangedTool( EMC.DISPID or EMC.MCHID)
|
||||
if bChangedTool then
|
||||
WorkTab.dV1PosI = ParkV1
|
||||
WorkTab.dV2PosI = ParkV2
|
||||
end
|
||||
@@ -1593,15 +1656,26 @@ function SpecAdjustCarriages( WorkTab)
|
||||
local bCloseV = false
|
||||
if WorkTab.dY1DeltaI then
|
||||
if WorkTab.dY1DeltaI <= MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V + EMC.HCING + EMC.HOVM + EgtIf( EMC.CNT == 1, AggLoad, 0) then
|
||||
bCloseV = true
|
||||
bCloseV = true
|
||||
end
|
||||
end
|
||||
if WorkTab.dY2DeltaI then
|
||||
if EMC.LB - WorkTab.dY2DeltaI <= MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V + EgtIf( SPLIT, EMC.TCING, 0) + EgtIf( EMC.CNT == 1, AggLoad, 0) then
|
||||
bCloseV = true
|
||||
bCloseV = true
|
||||
end
|
||||
end
|
||||
if WorkTab.dY2DeltaMinF then
|
||||
if EMC.LB - WorkTab.dY2DeltaMinF <= MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V + EgtIf( SPLIT, EMC.TCING, 0) + EgtIf( EMC.CNT == 1, AggLoad, 0) then
|
||||
bCloseV = true
|
||||
end
|
||||
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
|
||||
EgtOutLog( ' Tool : '..( EgtIf( bChangedTool, 'CHANGED', 'same')).. ' CloseV : '..( EgtIf( bCloseV, 'TRUE', 'false')), 1)
|
||||
|
||||
-- |POSIZIONO Y1| **[A]**
|
||||
if WorkTab.dY1DeltaMinF and ( not WorkTab.dY2DeltaMinF) then
|
||||
@@ -2420,8 +2494,8 @@ function SpecAdjustCarrB1( WorkTab)
|
||||
if not SpecTestSomeMoveInCmds( vCmd) then
|
||||
table.insert( vCmd, { 3, 'Y1', dY1PosI, 'Y2', dY2PosI, 'T', WorkTab.dTPosI, EMC.CNT})
|
||||
end
|
||||
table.insert( vCmd, { 11, 1}) -- chiudo Y1
|
||||
table.insert( vCmd, { 12, 1}) -- Chiudo Y2
|
||||
table.insert( vCmd, { 11, 1}) -- chiudo Y1
|
||||
-- imposto i nuovi parametri di aggancio
|
||||
table.insert( vCmd, { 21, dY1DeltaF, dY2DeltaF})
|
||||
EgtOutLog( ' Y1DeltaF=' .. EgtNumToString( dY1DeltaF) .. ' Y2DeltaF=' .. EgtNumToString( dY2DeltaF), 1)
|
||||
@@ -2492,8 +2566,8 @@ function SpecAdjustCarrB2( WorkTab)
|
||||
if not SpecTestSomeMoveInCmds( vCmd) then
|
||||
table.insert( vCmd, { 3, 'Y1', dY1PosI, 'Y2', dY2PosI, 'T', WorkTab.dTPosI, EMC.CNT})
|
||||
end
|
||||
table.insert( vCmd, { 11, 1}) -- chiudo Y1
|
||||
table.insert( vCmd, { 12, 1}) -- Chiudo Y2
|
||||
table.insert( vCmd, { 11, 1}) -- chiudo Y1
|
||||
-- imposto i nuovi parametri di aggancio
|
||||
table.insert( vCmd, { 21, dY1DeltaF, dY2DeltaF})
|
||||
EgtOutLog( ' Y1DeltaF=' .. EgtNumToString( dY1DeltaF) .. ' Y2DeltaF=' .. EgtNumToString( dY2DeltaF), 1)
|
||||
@@ -2553,7 +2627,7 @@ function SpecAdjustCarrC( WorkTab)
|
||||
WorkTab.dY1DeltaMaxF = EMC.LB - ( MinJoin + MyTCING)
|
||||
-- se Y1 deve accentrarsi
|
||||
if WorkTab.dY1DeltaI > WorkTab.dY1DeltaMaxF then
|
||||
WorkTab.dY1DeltaMinF = EMC.LB - 2 *( MinJoin + MyTCING)
|
||||
WorkTab.dY1DeltaMinF = EMC.LB - 2 * MinJoin - MyTCING
|
||||
end
|
||||
end
|
||||
-- posizioni obiettivo dei carrelli al centro dei rispettivi intervalli di validità
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
|
||||
REM Compilazione degli script macchina Egaltech 2024.02.22
|
||||
REM Per togliere info di debug aggiungere flag -s prima del nome del file di input
|
||||
|
||||
REM Compilazione 32 bit e copia file da non compilare
|
||||
|
||||
@echo off
|
||||
|
||||
REM chiedo all'utente la versione da assegnare alla macchina da compilare
|
||||
set /p "machineVersion=Inserisci versione: "
|
||||
|
||||
REM variabili per costruire i percorsi delle cartelle
|
||||
set "machineName=Essetre-ONErl"
|
||||
set "deployFolder=C:\MachinesDeploy"
|
||||
set "machinePath=%deployFolder%\%machineName%\"
|
||||
set "fullPathSource=%deployFolder%\%machineName%\%machineVersion%\%machineName%"
|
||||
set "fullPathZip=%deployFolder%\%machineName%\%machineVersion%"
|
||||
|
||||
REM elimino eventuale cartella esistente
|
||||
rmdir /s /Q %fullPathZip%
|
||||
|
||||
REM copio i sorgenti nel percorso di destinazione
|
||||
ROBOCOPY . %fullPathSource%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
||||
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 -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%\*.*
|
||||
|
||||
REM elimino il percorso temporaneo
|
||||
rmdir /s /Q %fullPathSource%\bin\
|
||||
+92
-19
@@ -1,18 +1,48 @@
|
||||
-- Descrizione macchina Essetre-ONErl by EgalWare s.r.l. 2023/11/17
|
||||
-- Descrizione macchina Essetre-ONErl by EgalWare s.r.l. 2024/02/20
|
||||
-- 2023/11/15 ver 2.5k1 Prima versione (derivata da ONE carico standard).
|
||||
-- 2023/11/17 ver 2.5k2 Gestione Pinza5
|
||||
-- 2023/11/30 ver 2.6a1 Prima versione con utilizzo post-processore standard per macchine ONE e PF
|
||||
-- 2024/01/12 ver 2.6a2 Allineamento con common versione 2.6a2
|
||||
-- 2024/01/23 ver 2.6a3 Allineamento con common versione 2.6a3
|
||||
-- In BeamData, parametro VICE_MINH portato a 1000
|
||||
-- 2024/02/19 ver 2.6b1 In BeamData aggiunta funzione GetBlockedAxis che sostituisce la GetChainSawBlockedAxis.
|
||||
-- 2024/02/20 ver 2.6b2 Allineamento con common vewrsione 2.6b1
|
||||
-- 2024/02/23 ver 2.6b3 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/26 ver 2.6c3 Con aggregati, non viene più aggiunto il gruippo SOLID (in MLDE)
|
||||
-- Allineamento con common ver. 2.6c9
|
||||
-- 2024/03/28 ver 2.6d1 Allineamento con common ver. 2.6d1
|
||||
-- 2024/04/12 ver 2.6d2 Allineamento con common ver. 2.6d2
|
||||
-- Aggiunto parametro ForceToCloseRollersGate
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.5k2'
|
||||
PP_VER = '2.6d2'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
MACH_NAME = 'Essetre-ONErl'
|
||||
|
||||
-- Carico i dati globali
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
-- Elimino direttori altre macchine e imposto direttorio macchina corrente per ricerca librerie
|
||||
EgtRemoveBaseMachineDirFromPackagePath()
|
||||
EgtAddToPackagePath( sMachDir .. '\\Beam\\?.lua')
|
||||
EgtAddToPackagePath( sMachDir .. '\\?.lua')
|
||||
INFO_STD_PP = require( 'Version')
|
||||
-- prendo la versione kernel minima necessaria più nuova tra macchina e script comuni
|
||||
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 ( '** ' .. MACH_NAME..' '..PP_VER..' ** ( '..INFO_STD_PP.NAME..': '..INFO_STD_PP.VERSION..' - MinMach: '.. MIN_MACH_VER ..') **', 1)
|
||||
|
||||
-- Parametri macchina
|
||||
NumericalControl = 'NUM' -- NUM o TPA
|
||||
NumericalControl = 'NUM' -- NUM o TPA o NUM_FLEX
|
||||
Progress = false
|
||||
Mortiser = false -- solo per One (nella Progress la stessa posizione è per ChainSaw)
|
||||
Mortiser = false -- solo per One (nella Progress la stessa posizione è per ChainSaw)
|
||||
MinMchY1 = 335
|
||||
MaxMchY1 = 5700.0
|
||||
ParkMchY1 = 960.0
|
||||
@@ -37,7 +67,7 @@ MaxHoOpen = 420
|
||||
MaxVeOpen = 820
|
||||
RollCageMin = 120
|
||||
RollCageMax = 250
|
||||
Clamp5 = true
|
||||
Clamp5 = false
|
||||
MinW = 0
|
||||
MaxW = 670
|
||||
ParkW = 0
|
||||
@@ -56,7 +86,7 @@ ChSawLen = 94.0
|
||||
MinX1 = 0
|
||||
MaxX1 = 2735
|
||||
MinZ1 = -1550
|
||||
MaxZ1 = -20 -- per evitare problemi con striscia led
|
||||
MaxZ1 = -20 -- per evitare problemi con striscia led
|
||||
MinC1 = -275
|
||||
MaxC1 = 275
|
||||
MinB1 = -127
|
||||
@@ -64,13 +94,14 @@ MaxB1 = 127
|
||||
MinB1b = -119
|
||||
MaxB1b = 119
|
||||
ParkX1 = MaxX1
|
||||
ParkFrnX1 = MinX1
|
||||
ParkFrnX1 = 200
|
||||
ParkZ1 = -535
|
||||
ParkC1 = 90
|
||||
ParkFrnC1 = -90
|
||||
ParkB1 = 90
|
||||
ParkFrnB1 = -90
|
||||
LimX1RotSaw = 2900
|
||||
LimX1PlRotSaw = 1920
|
||||
ParkCSawX1 = 1350
|
||||
ParkCSawX1S = MinX1
|
||||
ParkCSawZ1 = -50
|
||||
@@ -78,10 +109,12 @@ ParkCSaw0Z1 = -400
|
||||
ParkCSawC1 = 90
|
||||
ParkCSaw0C1 = 0
|
||||
ParkCSawB1 = 0
|
||||
ParkLongToolB1 = 0
|
||||
ParkLongToolC1 = 0
|
||||
TurnerOffs = 50.0
|
||||
AggLoad = 50
|
||||
DeltaTabY = 1210.0
|
||||
DeltaTabZ = -1060.0 -- per TPA la quota è dal centro di rotazione (va aggiunto MillOffs)
|
||||
DeltaTabZ = -1060.0 -- per TPA la quota è dal centro di rotazione (va aggiunto MillOffs)
|
||||
DeltaRulliTraveZ = 980
|
||||
DeltaRulliTappetoZ = -485
|
||||
DimTabY = 500
|
||||
@@ -90,10 +123,11 @@ AutomaticRotation = true
|
||||
AutoRotMinLen = 0
|
||||
DefTcPos1 = 'T3'
|
||||
CoeffVM = 0.5
|
||||
ForceToCloseRollersGate = false
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-ONErl.data"
|
||||
local sData = EgtGetSourceDir().."\\Beam\\Ts3Data.lua"
|
||||
local sData = sMachDir.."\\Beam\\Ts3Data.lua"
|
||||
if EgtExistsFile( sTs3Data) then
|
||||
EgtCopyFile( sTs3Data, sData)
|
||||
local sTs3DataOld = sTs3Data..'.old'
|
||||
@@ -104,7 +138,13 @@ if EgtExistsFile( sData) then
|
||||
local Machine = dofile( sData)
|
||||
if Machine then
|
||||
if Machine.Offsets then
|
||||
--NumericalControl = EgtIf( Machine.Offsets.TIPO_CN == 0, 'NUM', 'TPA')
|
||||
if Machine.Offsets.TIPO_CN == 0 then
|
||||
NumericalControl = 'NUM'
|
||||
elseif Machine.Offsets.TIPO_CN == 1 then
|
||||
NumericalControl = 'TPA'
|
||||
else
|
||||
NumericalControl = 'NUM_FLEX'
|
||||
end
|
||||
if Machine.Offsets.X1_POS then MinX1 = -Machine.Offsets.X1_POS end
|
||||
if Machine.Offsets.X1_NEG then MaxX1 = -Machine.Offsets.X1_NEG end
|
||||
if Machine.Offsets.Z1_NEG then MinZ1 = Machine.Offsets.Z1_NEG end
|
||||
@@ -147,6 +187,7 @@ if EgtExistsFile( sData) then
|
||||
if Machine.Offsets.SAWOFFSX then SawOffsX = Machine.Offsets.SAWOFFSX end
|
||||
if Machine.Offsets.SAWOFFSZ then SawOffsZ = Machine.Offsets.SAWOFFSZ end
|
||||
if Machine.Offsets.DEFTCPOS1 then DefTcPos1 = ( 'T' .. Machine.Offsets.DEFTCPOS1) end
|
||||
if Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO then ForceToCloseRollersGate = Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO == 1 end
|
||||
-- aggiustamenti
|
||||
MinY1 = MinV1 + MinDeltaYV
|
||||
MaxY1 = MaxMchY1
|
||||
@@ -157,7 +198,7 @@ if EgtExistsFile( sData) then
|
||||
ParkV1 = min( ParkV1, MaxV1, abs( MinV2))
|
||||
ParkV2 = -ParkV1
|
||||
ParkX1 = MaxX1
|
||||
ParkFrnX1 = MinX1
|
||||
--ParkFrnX1 = MinX1
|
||||
ParkCSawZ1 = min( ParkCSawZ1, MaxZ1)
|
||||
ParkCSaw0Z1 = min( ParkCSaw0Z1, MaxZ1)
|
||||
Mortiser = ( Mortiser and not Progress)
|
||||
@@ -173,8 +214,8 @@ EmtGeneral {
|
||||
ExitMaxAdjust = 300,
|
||||
ExitMaxRotAdj = 0.5,
|
||||
AngDeltaMinForHome = 80,
|
||||
Special = 'Essetre-ONE.mlse',
|
||||
Processor = 'Essetre-ONE.mlpe'}
|
||||
Special = 'Common_ONE-PF.mlse',
|
||||
Processor = 'Common_ONE-PF.mlpe'}
|
||||
local sBaseAux = {'BASE/SOLID', 'BASE/SIGN', 'BASE/CONVOYER', 'BASE/BELT', 'BASE/COLLISION', 'BASE/TC1'}
|
||||
if Progress then
|
||||
table.insert( sBaseAux, 'BASE/TC1S')
|
||||
@@ -286,8 +327,7 @@ if Progress then
|
||||
Rot2Stroke = { -90.1, 90.1},
|
||||
SolCh = MCH_SCC.ADIR_NEAR,
|
||||
OthColl = {'B1/SOLID', 'C1/SOLID'},
|
||||
Geo = 'H15_HEAD/GEO',
|
||||
Aux = 'H15_HEAD/SOLID'}
|
||||
Geo = 'H15_HEAD/GEO'}
|
||||
else
|
||||
H13Id = EmtHead {
|
||||
Name = 'H13',
|
||||
@@ -301,8 +341,7 @@ else
|
||||
Rot2Stroke = { -90.1, 90.1},
|
||||
SolCh = MCH_SCC.ADIR_NEAR,
|
||||
OthColl = {'B1/SOLID', 'C1/SOLID'},
|
||||
Geo = 'H13_HEAD/GEO',
|
||||
Aux = 'H13_HEAD/SOLID'}
|
||||
Geo = 'H13_HEAD/GEO'}
|
||||
end
|
||||
EgtSetInfo( H13Id, 'ZSAFEDELTA', '60')
|
||||
EgtSetInfo( H13Id, 'ZMAXONROT', '1,80')
|
||||
@@ -321,8 +360,7 @@ if not Progress and Mortiser then
|
||||
Rot2Stroke = { -90.1, 90.1},
|
||||
SolCh = MCH_SCC.ADIR_NEAR,
|
||||
OthColl = {'B1/SOLID', 'C1/SOLID'},
|
||||
Geo = 'H15_HEAD/GEO',
|
||||
Aux = 'H15_HEAD/SOLID'}
|
||||
Geo = 'H15_HEAD/GEO'}
|
||||
EgtSetInfo( H15Id, 'ZSAFEDELTA', '60')
|
||||
EgtSetInfo( H15Id, 'ZMAXONROT', '1,80')
|
||||
end
|
||||
@@ -746,6 +784,41 @@ function OnSetHead()
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-------------------------- Testa utilizzata -------------------------
|
||||
function GetHeadSet( sHead)
|
||||
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' or sHead == 'H15' then
|
||||
return 1
|
||||
elseif sHead == 'H21' or sHead == 'H22' or sHead == 'H23' then
|
||||
return 2
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
---------------------------- Cambio Utensile ------------------------
|
||||
function GetHeadTCSet( sHead, sTcPos)
|
||||
local nPos = tonumber( string.sub( sTcPos, 2)) or 0
|
||||
-- testa 1
|
||||
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' or sHead == 'H15' then
|
||||
-- testa 1 su CU prossimo a testa 2
|
||||
if nPos > 10 then
|
||||
return 'Head1_TC2'
|
||||
-- testa 1 su CU prossimo a testa 1
|
||||
else
|
||||
return 'Head1_TC1'
|
||||
end
|
||||
-- testa 2 su CU prossimo a testa 2
|
||||
elseif sHead == 'H21' or sHead == 'H22' or sHead == 'H23' then
|
||||
return 'Head2_TC2'
|
||||
-- testa 2 su CU prossimo a testa 1 (non esiste una condfigurazione fatta in questo modo)
|
||||
elseif nPos < 10 then
|
||||
return 'Head2_TC1'
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
---------------------------------------------------------------------
|
||||
-- Funzione che restituisce l'altezza del pezzo in lavorazione
|
||||
function GetRawHeight()
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+100
@@ -0,0 +1,100 @@
|
||||
==== Common_ONE-PF Update Log ====
|
||||
|
||||
Versione 2.6d2 (12/04/2024)
|
||||
- (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.
|
||||
|
||||
Versione 2.6d1 (28/03/2024)
|
||||
- (GEN) Rimosso da generazione funzione GetNextTool duplicata
|
||||
- (SIM-GEN) Se fase successiva start di un altro pezzo, la GetNextTool restituisce nil, per forzare movimento home in caso di utensili speciali
|
||||
- (MLDE-GEN) Aggiunto parametro 'IS_TEST_MACHINE' FACOLTATIVO. Se non esiste o 'false' è macchina standard, se 'true' è una macchina utilizzata per i test Egalware interni
|
||||
- (SIM) Corretto movimento in simulazione se motosega su testa 2
|
||||
|
||||
Versione 2.6c9 (26/03/2024)
|
||||
- (SIM) Corretta gestione cambio utensile con motosega. In alcuni casi non era coerente con generazione
|
||||
- (GEN) In 'PreparePostRotation' si resetta sempre anche la paratia in uscita (Ticket#1733)
|
||||
|
||||
Versione 2.6c8 (22/03/2024)
|
||||
- (SIM) Miglioramento visualizzazione spigoli VMILL alla fine della simulazione. Funzione: EgtVolZmapSetShowEdges. CAM5 ver. 2.6c2 FACOLTATIVA.
|
||||
|
||||
Versione 2.6c7 (11/03/2024)
|
||||
- (SIM-GEN) Aggiunta gestione parametro "SECDIST". Distanza di sicurezza tra paratia con rulli e utensile/testa. Parametro da inserire nelle note utensile.
|
||||
- (MLPE-GEN) Aggiunto parametro "WriteM05Command" (NON OBBLIGATORIO) per decidere se scrivere il comando M05 per arresto mandrino. Default a true.
|
||||
|
||||
Versione 2.6c6 (08/03/2024)
|
||||
- (SIM-GEN) Gestione rotazioni 90° come su FAST, caso MID2 (split/cut prima delle rotazioni)
|
||||
|
||||
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)
|
||||
- (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)
|
||||
- (GEN) Per movimento con motosega, si ribadiscono tutti gli assi nella prima G141
|
||||
|
||||
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)
|
||||
- (SIM-GEN) Migliorato calcolo dimensioni grezzo per apertura rulli in caso di 'precut'
|
||||
|
||||
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)
|
||||
|
||||
Versione 2.6a3 (23/01/2024)
|
||||
- (GEN) Corretto gestione del movimento precedente all'ultimo che manda il pezzo alla posizione di scarico
|
||||
|
||||
Versione 2.6a2 (09/01/2024)
|
||||
- Nuova versione. Prima versione stabile rilasciabile.
|
||||
|
||||
Versione 2.6a1 (28/11/2023)
|
||||
- Prima versione post-proc comune tra macchine ONE e PF
|
||||
- (SIM) Corretta visualizzazione motosega in caso sia stata scaricata ( per paratie rulli compattate per passaggio pezzo)
|
||||
- (SIM+MLDE) Definite variabili 'ParkLongToolB1' e 'ParkLongToolC1' per valori B e C di home in caso punta lunga su T201
|
||||
- (MLDE) Si prende la versione kernel minima necessaria più nuova tra macchina e script comuni (MIN_MACH_VER)
|
||||
- (GEN) Piccola miglioria su G157, si scrive solo se c'è qualcosa nella stringa sPreMove
|
||||
- (GEN+MLDE) Inserita gestione macro con carico ottimizzato. Macro macchina presente come standard solo su macchine PF. Parametro "OptimizedLoadBeam"
|
||||
- (GEN+SIM) Migliorata gestione riposizionamento pinze, in caso testa debba andare in home
|
||||
- (GEN) Se a zeta massima con lama e utensile successivo diverso, mi sposto sempre verso X-HOME
|
||||
- (GEN) Corretto movimento in caso di testa 1 su TC-2. Utilizzava le quote della testa 2 anziché della 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
-- Version.lua by EgalWare s.r.l. 2023/11/28
|
||||
-- Gestione della versione dei file comuni post-processori macchine ONE e PF di Essetre
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_ONE-PF', -- nome script PP standard
|
||||
VERSION = '2.6d2', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
return InfoCommon_STD_PP
|
||||
Reference in New Issue
Block a user