Compare commits

...

11 Commits

Author SHA1 Message Date
andrea.villa 3843cf5e8c Cambio versione per rilascio versione ufficiale 2026-04-10 09:32:38 +02:00
daniele.nicoli 94f86eae81 Tolta anche correzione a EZ 2026-04-09 17:36:16 +02:00
daniele.nicoli c16b1931a9 Merge branch 'develop' of https://gitlab.steamware.net/egalware-machines/essetre/essetre-90480023_xs-mw into develop 2026-04-09 17:23:02 +02:00
daniele.nicoli cf9c2ebbb6 - Aggiunto parametro PARK_Y_SCRAP_REMOVE nel Ts3Data e gestione.
- Salita in ZMax dopo una chiodatura avviene solo se l'utensile seguente è diverso da quello attuale (EB1).
2026-04-09 17:19:57 +02:00
andrea.villa e9aaede78c Altezza cuffia comprende sottopezzo
ZSafe chiodatura in coordinata assoluta alla Z di lavoro, non è in incrementale
2026-04-09 17:06:39 +02:00
andrea.villa 874e9f73d7 Aggiunto parametro in WallData 2026-04-09 10:53:00 +02:00
andrea.villa 7940f26f50 Aggiunto calcolo moltiplicatore lama su aggregato 2026-04-08 15:01:32 +02:00
andrea.villa f59b55e723 Per macro M26, il default è 1 anziché 0 2026-04-08 12:09:20 +02:00
andrea.villa 421b8dd8a5 Se LOAD90 attivo, bisogna scrivere 4, che significa di attivare il laser posto sul ponte, che cerca lo zero del pannello 2026-04-08 11:46:04 +02:00
andrea.villa 5db826e614 Corretta scrittura utensile anche in caso di aggregato 2026-04-08 09:58:30 +02:00
andrea.villa 7f8f17f358 - Rimosse variabili Lxxx iniziali
- Modifica a macro M26 e M27
- Corretta costruzione piano generico
2026-04-08 09:05:15 +02:00
4 changed files with 61 additions and 48 deletions
+5 -2
View File
@@ -8,7 +8,8 @@ require( 'EmtGenerator')
EgtEnableDebug( false)
if not EmtModifyHeadAuxDirection then error( 'A newer version of the program is required (minimum 2.3j5)') end
PP_VER = '3.1d1_DEV10'
PP_VER = '3.1d2'
PP_NVER = '3.1.4.2'
PP_NVER = '2.7.4.1'
-- Parametri macchina
@@ -36,7 +37,7 @@ MinZ2 = -770.0
MaxZ2 = 0.0
SawOffsX = 110.0
SawOffsY = 0
SawOffsZ = -149.55
SawOffsZ = -150.3
SawC1Offs = 0
SawB1Offs = 0
SawOffs = 0.0
@@ -75,6 +76,7 @@ DeltaTabZ = -1227.6497
CoeffVM = 0.5
OffsetH12X = 110
OffsetH12Z = 150
ParkYScrapRemove = nil
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90480023_XS-MW.data"
@@ -150,6 +152,7 @@ if EgtExistsFile( sData) then
if MchOffs.OFFSET_ZERO6_Y then Orig6DeltaX = -MchOffs.OFFSET_ZERO6_Y end
if MchOffs.OFFSET_ZERO6_X then Orig6DeltaY = MchOffs.OFFSET_ZERO6_X end
if MchOffs.OFFSET_ZERO6_Z then Orig6DeltaZ = MchOffs.OFFSET_ZERO6_Z end
if MchOffs.PARK_Y_SCRAP_REMOVE then ParkYScrapRemove = MchOffs.PARK_Y_SCRAP_REMOVE end
end
end
+53 -45
View File
@@ -60,28 +60,7 @@ function OnProgramStart()
end
EmtOutput( '('.. MLE_INFO..')')
-- Parametri macchina
local sOut = 'L151='..EgtNumToString( Nail11DeltaY - DeltaTabY, 2)..'\n'..
'L152='..EgtNumToString( DeltaTabX - Nail11DeltaX, 2)..'\n'..
'L153='..EgtNumToString( DeltaTabZ - Nail11DeltaZ, 2)..'\n'..
'L154='..EgtNumToString( Nail12DeltaY - DeltaTabY, 2)..'\n'..
'L155='..EgtNumToString( DeltaTabX - Nail12DeltaX, 2)..'\n'..
'L156='..EgtNumToString( DeltaTabZ - Nail12DeltaZ, 2)..'\n'..
'L157='..EgtNumToString( Nail13DeltaY - DeltaTabY, 2)..'\n'..
'L158='..EgtNumToString( DeltaTabX - Nail13DeltaX, 2)..'\n'..
'L159='..EgtNumToString( DeltaTabZ - Nail13DeltaZ, 2)..'\n'..
'L160='..EgtNumToString( Nail14DeltaY - DeltaTabY, 2)..'\n'..
'L161='..EgtNumToString( DeltaTabX - Nail14DeltaX, 2)..'\n'..
'L162='..EgtNumToString( DeltaTabZ - Nail14DeltaZ, 2)..'\n'..
'L163='..EgtNumToString( Orig2DeltaY, 2)..'\n'..
'L164='..EgtNumToString( -Orig2DeltaX, 2)..'\n'..
'L165='..EgtNumToString( Orig2DeltaZ, 2)..'\n'..
'L166='..EgtNumToString( Orig3DeltaY, 2)..'\n'..
'L167='..EgtNumToString( -Orig3DeltaX, 2)..'\n'..
'L168='..EgtNumToString( Orig3DeltaZ, 2)..'\n'..
'L169='..EgtNumToString( Orig4DeltaY, 2)..'\n'..
'L170='..EgtNumToString( -Orig4DeltaX, 2)..'\n'..
'L171='..EgtNumToString( Orig4DeltaZ, 2)..'\n'..
'G114'..' EA'..EgtNumToString( -DeltaTabY, 2)..' EB'..EgtNumToString( DeltaTabX, 2)..
local sOut = 'G114'..' EA'..EgtNumToString( -DeltaTabY, 2)..' EB'..EgtNumToString( DeltaTabX, 2)..
' EC'..EgtNumToString( DeltaTabZ, 2)..' ED'..EgtNumToString( MillOffs, 2)..
' EE'..EgtNumToString( Nail11DeltaY - DeltaTabY, 2, 2)..' EF'..EgtNumToString( DeltaTabX - Nail11DeltaX, 2)..' EG'..EgtNumToString( DeltaTabZ - Nail11DeltaZ, 2)..
' EH'..EgtNumToString( Nail12DeltaY - DeltaTabY, 2, 2)..' EI'..EgtNumToString( DeltaTabX - Nail12DeltaX, 2)..' EL'..EgtNumToString( DeltaTabZ - Nail12DeltaZ, 2)..
@@ -119,7 +98,7 @@ function OnProgramEnd()
EmtOutput( 'M05 E80000=1')
-- Tipo di scarico
if not TEST_USE then
EmtOutput( 'M27 E30057=1')
EmtOutput( 'M27 E30057=0')
end
-- Se modalità test, termino il programma
if TEST_USE then
@@ -157,10 +136,16 @@ function OnDispositionEnd()
' E30051='..EgtNumToString( 1000 * b3Raw:getDimX(), 0)..
' E30052='..EgtNumToString( 1000 * b3Raw:getDimZ(), 0))
EMT.ST = b3Raw:getDimZ()
-- Scelta origine
EmtOutput( 'M26 E30054='..EgtNumToString( EMT.ORIG, 0))
-- Comando per gestione carico. Se LOAD90 attivo, bisogna scrivere 4, che significa di attivare il laser posto sul ponte, che cerca lo zero del pannello
-- N.B.: si utilizza LOAD90 perchè è un parametro che già leggiamo e che sulle WALL non viene utilizzato
local BtlInfoId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or EgtGetCurrMachGroup() or GDB_ID.NULL
local nLoad90 = EgtGetInfo( BtlInfoId, 'LOAD90', 'i') or 0
if nLoad90 > 0 then nLoad90 = 4 else nLoad90 = 1 end
EmtOutput( 'M26 E30054='..EgtNumToString( nLoad90, 0))
-- Posizione cuffia
local dHCuff = b3Raw:getDimZ() + 32
local dHeightSubPiece = EMT.RAWPOS[3] or 0
local dHCuff = dHeightSubPiece + b3Raw:getDimZ() + 32
EmtOutput( 'E30039=' .. EgtNumToString( dHCuff * 1000, 0))
-- Eventuale salto a lavorazione in corso
EmtOutput( 'G79 NE80000')
@@ -252,11 +237,19 @@ end
function OnPathEnd()
if IsNailingHead( EMT.HEAD) then
local dStep = GetValNotes( EgtGetMachiningParam( MCH_MP.USERNOTES), 'Par', 'd') or 100
local dSafeZ = max( EgtGetMachiningParam( MCH_MP.STARTPOS), 10) or 20
local dSafeZ = EMT.NAIL_START_L3 + ( max( EgtGetMachiningParam( MCH_MP.STARTPOS), 10) or 20)
--local dSafeZ = EgtMdbGetGeneralParam( MCH_GP.SAFEZ)
if EMT.HEAD == 'H21' or EMT.HEAD == 'H22' or EMT.HEAD == 'H23' then
local nNextOperationId = EgtGetNextActiveOperation( EMT.MCHID)
if nNextOperationId then
EgtSetCurrMachining( nNextOperationId)
EMT.NEXTTOOL = EgtGetMachiningParam( MCH_MP.TOOL)
EgtSetCurrMachining( EMT.MCHID)
end
local sZMax = ''
if EMT.TOOL ~= EMT.NEXTTOOL then sZMax = ' EB1' end
EmtOutput( 'G124 X'..EmtLenToString( EMT.NAIL_START_L1, 3)..' Y'..EmtLenToString( EMT.NAIL_START_L2, 3)..' Z'..EmtLenToString( EMT.NAIL_START_L3, 3)..
' B'..EmtLenToString( EMT.NAIL_END_L1, 3)..' C'..EmtLenToString( EMT.NAIL_END_L2, 3)..' EA'..EmtLenToString( dStep, 3)..' EB1'..
' B'..EmtLenToString( EMT.NAIL_END_L1, 3)..' C'..EmtLenToString( EMT.NAIL_END_L2, 3)..' EA'..EmtLenToString( dStep, 3).. sZMax..
' W'..EmtLenToString( dSafeZ, 3)..EMT.NAIL_END)
else
local sExtra = ''
@@ -321,7 +314,7 @@ function OnRapid()
if EMT.SCRAPFIRST then
EMT.SCRAPFIRST = false
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = min( -( b3Raw:getMin():getX() - 2000), -MinY)
local ParkY = ParkYScrapRemove or min( -( b3Raw:getMin():getX() - 2000), MinY)
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
end
-- pre-posizionamento
@@ -333,8 +326,8 @@ function OnRapid()
local sEE = GetEE()
local sEF = GetEF()
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
local sEL = ' EL' .. EmtLenToString( ChSawLen, 3)
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
local sEL = ' EL' .. GetEL()
local sER = ' ER' .. EmtLenToString( EMT.TLEN, 3)
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
EmtOutput( sOut)
@@ -345,7 +338,7 @@ function OnRapid()
EMT.SCRAPFIRST = false
-- pausa per rimozione sfridi
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = min( -( b3Raw:getMin():getX() - 2000), -MinY)
local ParkY = ParkYScrapRemove or min( -( b3Raw:getMin():getX() - 2000), MinY)
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
end
end
@@ -367,8 +360,8 @@ function OnRapid()
local sEE = GetEE()
local sEF = GetEF()
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
local sEL = ' EL' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TLEN, ChSawLen), 3)
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
local sEL = ' EL' .. GetEL()
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
EmtOutput( sOut)
@@ -395,8 +388,8 @@ function OnRapid()
local sEE = GetEE()
local sEF = ' EF20000'
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
local sEL = ' EL' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TLEN, ChSawLen), 3)
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
local sEL = ' EL' .. GetEL()
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
if not IsNailingHead( EMT.HEAD) then
EmtOutput( 'G102'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EmtGetAxis('R2')..EmtGetAxis('R1')..EMT.IPLGLSTR..sET..sEU..sEE..sEF..sEM..sES..sEL..sER)
@@ -444,8 +437,8 @@ function OnRapid()
local sEE = GetEE()
local sEF = GetEF()
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
local sEL = ' EL' .. EmtLenToString( EMT.TLEN, 3)
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
local sEL = ' EL' .. GetEL()
local sER = ' ER' .. EmtLenToString( EMT.TDIAM / 2, 3)
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
EmtOutput( sOut)
@@ -459,8 +452,8 @@ function OnRapid()
local sEE = GetEE()
local sEF = GetEF()
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
local sEL = ' EL' .. EmtLenToString( EMT.TLEN, 3)
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
local sEL = ' EL' .. GetEL()
local sER = ' ER' .. EmtLenToString( EMT.TDIAM / 2, 3)
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
EmtOutput( sOut)
@@ -513,8 +506,8 @@ function OnLinear()
local sEE = GetEE()
local sEF = ' EF20000'
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
local sEL = ' EL' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TLEN, ChSawLen), 3)
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
local sEL = ' EL' .. GetEL()
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
if not IsNailingHead( EMT.HEAD) then
EmtOutput( 'G102'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EmtGetAxis('R2')..EmtGetAxis('R1')..EMT.IPLGLSTR..sET..sEU..sEE..sEF..sEM..sES..sEL..sER)
@@ -683,17 +676,20 @@ function CalcInterpPlane()
--EmtOutput( 'IPLGLFR='..tostring(EMT.IPLGLFR))
local _, dAngV, dAngO = SphericalFromVector( vtE)
local dAngO2 = EmtGetAngO2( EMT.IPLGLFR:getVersZ(), EMT.IPLGLFR:getVersX(), dAngV, dAngO)
dAngO = dAngO - 90
while dAngO < 0 do
dAngO = dAngO + 90
while dAngO - GEO.EPS_ANG_SMALL < 0 do
dAngO = dAngO + 360
end
while dAngO + GEO.EPS_ANG_SMALL > 360 do
dAngO = dAngO - 360
end
-- se rotazione solo attorno alla C allora si mette come rotazione finale
if abs( dAngV) < GEO.EPS_ANG_SMALL then
dAngO2 = dAngO2 + dAngO
while dAngO2 >= 360 do
dAngO2 = dAngO2 - 360
end
dAngO = 0
dAngO = 0
end
local xOut = - ( yS - DeltaTabY)
@@ -771,6 +767,18 @@ function GetEF()
return ' EF60000'
end
---------------------------------------------------------------------
function GetEL()
local dToolLen = EMT.TLEN
if EMT.HEAD == 'H12' then
dToolLen = dToolLen - SawOffsZ
elseif EMT.HEAD == 'H3' then
dToolLen = ChSawLen
end
return EgtNumToString( dToolLen, 3)
end
---------------------------------------------------------------------
function EmitCount()
EMT.CNT = EMT.CNT + 1
BIN
View File
Binary file not shown.
+3 -1
View File
@@ -30,8 +30,10 @@ local WallData = {
MAX_CLEAN_CRN60 = 150, -- massimo spessore per pulitura angolo con fresa 60deg
MILL_MAX_DEPTH_AS_MAT = false, -- massimo affondamento frese uguale ad altezza tagliente (max materiale)
RAWCOL = { 255, 160, 32, 30}, -- colore del grezzo
SIMUL_VIEW_DIR = 2, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
DEFAULT_RAW_NO_EXTRA_WIDTH = true,
SIMUL_VIEW_DIR = 4, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
ORIG_CORNER = 'BL', -- posizione origine (TL,BL,TR,BR,TM,BM)
RAWPART_ROT = 180,
USE_POSY = true -- utilizzare POSY di BTL (spostamento sullo spessore per pareti a layer)
}