12 Commits

Author SHA1 Message Date
andrea.villa 40ab4990a7 - Lettura nuovi parametri da Offset per automatismo
- ParkY non viene calcolato ma si legge dagli offset
2025-10-02 17:54:16 +02:00
andrea.villa 17ed12d1a4 Tolta chiamata debug 2025-09-26 08:15:04 +02:00
andrea.villa 51cd139d04 In MLSE corretto movimento motosega, servono 6 assi. 2025-09-26 08:14:06 +02:00
andrea.villa 6e90aef7eb In MLSE corretta lettura tabella EMC 2025-09-25 15:57:05 +02:00
andrea.villa e25710d8c1 - Aggiunto file BAT per compilare macchina
- Aggiunte note utensili e lavorazioni
2025-09-25 09:37:01 +02:00
andrea.villa 3055a8d03c Aggiunto solido collisione su testa 1 2025-09-25 08:45:02 +02:00
andrea.villa feb68589b1 - Prima versione testabile in macchina
- Gestione quota parcheggio testa 1 per pezzi piccoli
- Gestione rotazione testa lama in posizioen di sicurezza
2025-09-24 15:50:29 +02:00
andrea.villa f17642b64f Correzione movimenti se testa lama 2025-09-24 13:15:22 +02:00
andrea.villa 8aedd1db7f Corretta emissione movimenti e piano di lavorazione iniziale 2025-09-24 12:09:36 +02:00
andrea.villa fa55eb558c Prima versione gestione nuovi link 2025-09-24 12:02:07 +02:00
andrea.villa 6f59081ecb Merge branch 'main' into develop 2025-09-24 11:59:51 +02:00
andrea.villa aab05a8610 Merge remote-tracking branch 'origin/main' into develop 2025-09-24 11:58:33 +02:00
9 changed files with 383 additions and 71 deletions
+36
View File
@@ -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-90580012"
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%\Essetre-WALL.mlpe -s Essetre-WALL.mlpe
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Essetre-WALL.NUM.mlpe -s Essetre-WALL.NUM.mlpe
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Essetre-WALL.mlse -s Essetre-WALL.mlse
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\
+10 -3
View File
@@ -19,13 +19,14 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.7h1'
PP_NVER = '2.7.8.1'
PP_VER = '2.7j1_DEV1'
PP_NVER = '2.7.10.1'
-- Parametri macchina
NumericalControl = 'NUM' -- NUM o TPA
MinY = 10000.0
MaxY = 35500.0
ParkY = 35000.0
MinY2 = 0.0
MaxY2 = 25500.0
MinX1 = -5440.0
@@ -67,6 +68,8 @@ DeltaTab2Z = -1150.0
GantryTabs = 11000.0
OffsetTabs = 332
CoeffVM = 0.75
ParkX1_SP = -5100
SafePosRotAx = -4000
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90580012.data"
@@ -87,6 +90,7 @@ if EgtExistsFile( sData) then
if MchOffs.MIN_Y then MaxY = -MchOffs.MIN_Y end
if MchOffs.MAX_Y2 then MinY2 = -MchOffs.MAX_Y2 end
if MchOffs.MIN_Y2 then MaxY2 = -MchOffs.MIN_Y2 end
if MchOffs.PARK_Y then ParkY = EgtClamp( -MchOffs.PARK_Y, MinY, MaxY) end
MinX1 = MchOffs.MIN_X or MinX1
MaxX1 = MchOffs.MAX_X or MaxX1
MinZ1 = MchOffs.MIN_Z or MinZ1
@@ -115,6 +119,8 @@ if EgtExistsFile( sData) then
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_X_SAW then SawDeltaY = ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_X_SAW) end
if MchOffs.ZERO_Z_MILL and MchOffs.ZERO_Z_SAW then SawDeltaZ = ( MchOffs.ZERO_Z_MILL - MchOffs.ZERO_Z_SAW) end
GantryTabs = MchOffs.GANTRY_TABLES or GantryTabs
ParkX1_SP = MchOffs.PARK_X1_SP or ParkX1_SP
SafePosRotAx = MchOffs.SAFE_ROT_AX or SafePosRotAx
end
end
@@ -128,6 +134,7 @@ EmtGeneral {
Offset = Vector3d( -783.5, -5820.00, -1778.0),
AxisMaxAdjust = 300,
ExitMaxAdjust = 300,
NewLinkMgr = 1,
Special = 'Essetre-WALL.mlse',
Processor = 'Essetre-WALL.mlpe'}
local BaseId = EmtBase {
@@ -187,7 +194,7 @@ EmtAxis {
Stroke = {MinX1, MaxX1},
Home = MinX1,
Geo = 'X1_AXIS/GEO',
Aux = {'X1_AXIS/SOLID'}}
Aux = {'X1_AXIS/SOLID', 'X1_AXIS/COLLISION'}}
EmtAxis {
Name = 'Z1',
Parent = 'X1',
Binary file not shown.
+51 -19
View File
@@ -224,7 +224,7 @@ function OnRapid()
if EMT.SCRAPFIRST then
EMT.SCRAPFIRST = false
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = max( -( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), -MaxY)
-- local ParkY = max( -( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), -MaxY)
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
end
-- pre-posizionamento
@@ -250,7 +250,7 @@ function OnRapid()
if bSystemSR then EMT.SCRAPFIRST = false end
-- pausa per rimozione sfridi
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = max( -( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), -MaxY)
-- local ParkY = max( -( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), -MaxY)
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
end
end
@@ -261,7 +261,8 @@ function OnRapid()
if EMT.HEAD == 'H1' then
sOut = sOut .. ' U' .. EmtLenToString( MaxX2, 3) .. ' W0 V90 A0'
elseif EMT.HEAD == 'H2' then
sOut = sOut .. ' U' .. EmtLenToString( MinX1, 3) .. ' W0 V0 A0'
local nHomeH1 = EgtIf( EMT.MAXMIN[2] > SafePosRotAx, ParkX1_SP, MinX1)
sOut = sOut .. ' U' .. EmtLenToString( nHomeH1, 3) .. ' W0 V0 A0'
elseif EMT.HEAD == 'H3' then
sOut = sOut .. ' U' .. EmtLenToString( MaxX2, 3) .. ' W0 V90 A0'
else
@@ -277,9 +278,45 @@ function OnRapid()
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)
EMT.REFLOC = 0
EMT.MCHFIRST = false
EMT.ZMAX = false
-- se ultimo climb
if EMT.FLAG2 == 1 or EMT.FLAG2 == 0 then
EMT.REFLOC = 0
EMT.ZMAX = false
end
elseif EMT.FLAG == 2 and ( EMT.FLAG2 == 1 or EMT.FLAG2 == 2) then
MyAdjustLinearAxes()
EmtAdjustRotaryAxes()
-- primo posizionamento
EmtResetPrev()
local sOut = 'G101' .. EmtGetAxis( 'L1') .. EmtGetAxis( 'L2') .. EmtGetAxis( 'L3') ..
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1')
if EMT.HEAD == 'H1' then
sOut = sOut .. ' U' .. EmtLenToString( MaxX2, 3) .. ' W0 V90 A0'
elseif EMT.HEAD == 'H2' then
local nHomeH1 = EgtIf( EMT.MAXMIN[2] > SafePosRotAx, ParkX1_SP, MinX1)
sOut = sOut .. ' U' .. EmtLenToString( nHomeH1, 3) .. ' W0 V0 A0'
elseif EMT.HEAD == 'H3' then
sOut = sOut .. ' U' .. EmtLenToString( MaxX2, 3) .. ' W0 V90 A0'
else
EmtSetLastError( 1211, "Unknown Head : " .. EMT.HEAD)
end
local sET = GetET()
local sEU = GetEU()
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, ( EMT.TDIST or ChSawLen)), 3)
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)
EMT.MCHFIRST = false
-- se ultimo climb
if EMT.FLAG2 == 1 or EMT.FLAG2 == 0 then
EMT.REFLOC = 0
EMT.ZMAX = false
end
-- se standard
elseif EMT.FLAG == 0 or EMT.FLAG == 1 or EMT.FLAG == 2 then
-- se necessario, impostazione riferimento locale
@@ -318,23 +355,18 @@ function OnRapid()
end
-- se altrimenti risalita a Z max a fine lavorazione
elseif EMT.FLAG == 3 then
if EMT.REFLOC then
EMT.REFLOC = nil
EMT.IPLGL = false
local PrevL3op = EMT.L3op
EmtResetPrev()
EMT.REFLOC = nil
EMT.IPLGL = false
EmtResetPrev()
if not EMT.ZMAX then
-- dichiarazione fine lavorazione
EmtOutput( 'G103'..GetET()..' E80000='..tostring( EMT.CNT + 1))
MyAdjustLinearAxes()
EmtAdjustRotaryAxes()
if EMT.HEAD == 'H1' and PrevL3op < SafeZ1 then
local sOut = 'G101 ' .. EMT.L3t .. EmtLenToString( SafeZ1, 3) .. GetET() .. GetEU() .. GetEE() .. GetEF()
EmtOutput( sOut)
end
local sOut = 'G101' .. EmtGetAxis( 'L3') .. EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') .. GetET() .. GetEU() .. GetEE() .. GetEF()
EmtOutput( sOut)
EMT.ZMAX = true
end
MyAdjustLinearAxes()
EmtAdjustRotaryAxes()
local sOut = 'G101' .. EmtGetAxis( 'L2') .. EmtGetAxis( 'L3') .. EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') .. GetET() .. GetEU() .. GetEE() .. GetEF()
EmtOutput( sOut)
EMT.ZMAX = true
-- se altrimenti movimento in Home
elseif EMT.FLAG == 4 then
-- non previsto
+38 -1
View File
@@ -93,6 +93,26 @@ function OnSimulStart()
EgtOutLog( 'Warning : MCODET with one or more null Element(s) ')
end
-- Preparo lista solidi macchina con cui possono collidere gli oggetti sopra riportati (in aggiunta a VMill)
local function GetMCoDet( AbId, sGrpName, sSolName)
local GrpId = EgtGetFirstNameInGroup( AbId, sGrpName)
if not GrpId then return GDB_ID.NULL end
return EgtGetFirstNameInGroup( GrpId, sSolName) or GDB_ID.NULL
end
local function VerifyMCoDet( vMCD, sName)
for i = #vMCD, 1, -1 do
if not vMCD[i] or vMCD[i] == GDB_ID.NULL then
table.remove( vMCD, i)
EgtOutLog( ' Warning : '..sName..'[' .. tostring( i) .. '] is null')
elseif EgtGetDebugLevel() >= 4 then
EgtOutLog( ' '..sName..'[' .. tostring( i) .. ']='..tostring(vMCD[i]))
end
end
end
EMT.MCODET_H1 = {}
EMT.MCODET_H1[1] = GetMCoDet( EgtGetAxisId( 'X1'), 'COLLISION', 'SOL1')
VerifyMCoDet( EMT.MCODET_H1, 'MCODET_H1')
-- Preparo lista collisioni vuota
EMT.COLLIDE = {}
end
@@ -281,6 +301,17 @@ function OnSimulToolSelect()
for i, Coll in ipairs( EMT.COLLOBJ) do
EmtAddCollisionObjEx( i, Coll.Fr, Coll.Ty, Coll.Mv, Coll.P1, Coll.P2, Coll.P3)
end
-- aggiungo collisione altra testa
for i = #EMT.CODET, #( EMT.MCODET or {}) + EgtIf( EMT.VMILL, 1 ,0) + 1, -1 do
table.remove( EMT.CODET, i)
end
if EMT.HEAD == 'H2' then
for i = 1, #EMT.MCODET_H1 do
table.insert( EMT.CODET, EMT.MCODET_H1[i])
end
end
end
end
@@ -419,6 +450,11 @@ function OnSimulMoveStart()
EMT.A1n = 'Y2'
EMT.A1m = 'Y'
end
-- il parcheggio della testa 1 dipende occupazione testa 2
if EMT.HEAD == 'H2' and EMT.MAXMIN then
local nHomeH1 = EgtIf( EMT.MAXMIN[2] > SafePosRotAx, ParkX1_SP, MinX1)
EgtSetAxisPos( 'X1', nHomeH1)
end
-- se rapido a fine lavorazione con testa bassa, prima risalgo opportunamente in Z
if EMT.HEAD == 'H1' and EMT.MOVE == 0 and EMT.FLAG == 3 and EMT.L3p < SafeZ1 then
SimulMoveAxis( 'Z1', SafeZ1, MCH_SIM_STEP.RAPID)
@@ -453,7 +489,8 @@ end
---------------------------------------------------------------------
function ParkForScrapRemove()
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = min( ( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), MaxY)
--local ParkY = min( ( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), MaxY)
SimulMoveAxis( 'Z1', EgtGetAxisHomePos( 'Z1'), MCH_SIM_STEP.RAPID)
if EMT.TAB2 then
SimulMoveAxes( 'Y', ParkY, MCH_SIM_STEP.RAPID, 'Y2', ParkY - DimTabX - OffsetTabs, MCH_SIM_STEP.RAPID)
+155 -48
View File
@@ -6,58 +6,165 @@ EgtEnableDebug( false)
EgtOutLog ( '** Essetre-WALL.mlse '..PP_VER..' **', 1)
---------------------------------------------------------------------
function OnSpecialMoveZup()
-- Inizializzazioni
EMC.MODIF = false
EMC.ERR = 1
-- Se fresa
-----------------------------------------------------------------------------------------
function OnSpecialLink()
-- se fresa su testa 1
if EMC.HEAD == 'H1' then
if EMC.L3 > -300 then
EMC.R1 = EgtGetAxisHomePos( 'C1')
EMC.R2 = EgtGetAxisHomePos( 'B1')
EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2)
EMC.MODIF = true
-- se inizio lavorazione con prelievo utensile
if EMC.LINKTYPE == 1 then
EmtRemoveClimb( EMC.NEXTMCHID)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, EMC.L3p, EMC.R1p, EMC.R2p}, 31, 2, 1)
-- se fine lavorazione con deposito utensile
elseif EMC.LINKTYPE == 2 then
if EMC.L3p < SafeZ1 then
EmtRemoveRise( EMC.PREVMCHID)
EmtAddRise( EMC.PREVMCHID, { EMC.L1p, EMC.L2p, SafeZ1, EMC.R1p, EMC.R2p}, 31, 3, 1)
EmtAddRise( EMC.PREVMCHID, { EMC.L1p, EMC.L2p, EMC.L3, EMC.R1, EMC.R2}, 31, 3, 1)
end
-- altrimenti collegamento tra due lavorazioni (3)
else
end
-- se altrimenti sega a catena
elseif EMC.HEAD == 'H3' then
-- disabilito
do EMC.ERR = 0 return end
local L3New = EMC.L3
local R1New = EMC.R1
local R2New = EMC.R2
if EMC.L3 > -300 then
L3New = min( EMC.L3, -250)
R1New = EgtGetAxisHomePos( 'C1')
R2New = EgtGetAxisHomePos( 'B1')
EMC.MODIF = true
end
if EMC.L2 > -1200 then
R1New = 180
EMC.MODIF = true
elseif EMC.L2 < -4700 then
R1New = 0
EMC.MODIF = true
end
if EMC.MODIF then
EMC.L3 = L3New
EMC.R1 = R1New
EMC.R2 = R2New
EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2, EMC.R3)
end
-- se altrimenti lama
-- se testa lama
elseif EMC.HEAD == 'H2' then
if EMC.L3 > -200 then
EMC.R1 = EgtGetAxisHomePos( 'C2')
EMC.R2 = EgtGetAxisHomePos( 'B2')
EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2)
EMC.MODIF = true
-- se inizio lavorazione con prelievo utensile
if EMC.LINKTYPE == 1 then
EmtRemoveClimb( EMC.NEXTMCHID)
if EMC.L2 < SafePosRotAx then
local nXAxisRotation = SafePosRotAx
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, nXAxisRotation, EMC.L3p, EMC.R1p, EMC.R2p}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, nXAxisRotation, EMC.L3p, EMC.R1, EMC.R2}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, EMC.L3p, EMC.R1, EMC.R2}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, EMC.L3, EMC.R1, EMC.R2}, 31, 2, 1)
else
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, EMC.L3p, EMC.R1p, EMC.R2p}, 31, 2, 1)
end
-- se fine lavorazione con deposito utensile
elseif EMC.LINKTYPE == 2 then
if EMC.L2p < SafePosRotAx then
EmtRemoveRise( EMC.PREVMCHID)
local nXAxisRotation = SafePosRotAx
EmtAddRise( EMC.PREVMCHID, { EMC.L1p, nXAxisRotation, EMC.L3p, EMC.R1p, EMC.R2p}, 31, 3, 1)
EmtAddRise( EMC.PREVMCHID, { EMC.L1p, nXAxisRotation, EMC.L3, EMC.R1, EMC.R2}, 31, 3, 1)
end
-- altrimenti collegamento tra due lavorazioni (3)
else
-- si in zona dove non si può ruotare
if EMC.L2 < SafePosRotAx or EMC.L2p < SafePosRotAx then
local vLFiAx = EmtGetFinalAxesPos( EMC.PREVMCHID, false)
-- approccio
EmtRemoveClimb( EMC.NEXTMCHID)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, SafePosRotAx, vLFiAx[3], EMC.R1p, EMC.R2p}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, SafePosRotAx, vLFiAx[3], EMC.R1, EMC.R2}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, vLFiAx[3], EMC.R1, EMC.R2}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, EMC.L3, EMC.R1, EMC.R2}, 31, 2, 1)
end
end
-- se sega a catena su testa 1
elseif EMC.HEAD == 'H3' then
-- se inizio lavorazione con prelievo utensile
if EMC.LINKTYPE == 1 then
EmtRemoveClimb( EMC.NEXTMCHID)
-- se fuori dalal zona sicura, primo movimento all'interno
if EMC.L2 > -1200 then
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, -1200, ParkChSawZ1, EMC.R1p, EMC.R2p, EMC.R3p}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, -1200, ParkChSawZ1, EMC.R1, EMC.R2, EMC.R3p}, 31, 2, 2)
elseif EMC.L2 < -4500 then
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, -4500, ParkChSawZ1, EMC.R1p, EMC.R2p, EMC.R3p}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, -4500, ParkChSawZ1, EMC.R1, EMC.R2, EMC.R3p}, 31, 2, 2)
else
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, ParkChSawZ1, EMC.R1p, EMC.R2p, EMC.R3p}, 31, 2, 2)
end
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, ParkChSawZ1, EMC.R1, EMC.R2, EMC.R3p}, 31, 2, 1)
-- se fine lavorazione con deposito utensile
elseif EMC.LINKTYPE == 2 then
EmtRemoveRise( EMC.PREVMCHID)
if EMC.L2p > -1200 or EMC.L2p < -4500 then
EmtAddRise( EMC.PREVMCHID, { EMC.L1p, ParkChSawX1, ParkChSawZ1, EMC.R1p, EMC.R2p, EMC.R3p}, 31, 3, 2)
end
EmtAddRise( EMC.PREVMCHID, { EMC.L1p, ParkChSawX1, ParkChSawZ1, EMC.R1, EMC.R2, EMC.R3p}, 31, 3, 1)
-- altrimenti collegamento tra due lavorazioni (3)
else
-- se deve ruotare assi rotanti
if abs( EMC.R1 - EMC.R1p) > 1 or abs( EMC.R2 - EMC.R2p) > 1 then
if EMC.L2 > -1200 or EMC.L2 < -4500 or EMC.L2p > -1200 or EMC.L2p < -4500 then
local nXAxisRotation
-- retrazione
EmtRemoveRise( EMC.PREVMCHID)
if EMC.L2p > -1200 then
nXAxisRotation = -1200
elseif EMC.L2p < -4500 then
nXAxisRotation = -4500
end
EmtAddRise( EMC.PREVMCHID, { EMC.L1p, nXAxisRotation, EMC.L3p, EMC.R1p, EMC.R2p, EMC.R3p}, 31, 3, 1)
-- approccio
EmtRemoveClimb( EMC.NEXTMCHID)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, nXAxisRotation, EMC.L3, EMC.R1, EMC.R2, EMC.R3}, 31, 2, 2)
EmtAddClimb( EMC.NEXTMCHID, { EMC.L1, EMC.L2, EMC.L3, EMC.R1, EMC.R2, EMC.R3}, 31, 2, 1)
end
end
end
-- altrimenti errore
else
error( "Unknown Head")
end
EMC.ERR = 0
end
---------------------------------------------------------------------
-- function OnSpecialMoveZup()
--
-- -- Inizializzazioni
-- EMC.MODIF = false
-- EMC.ERR = 1
--
-- -- Se fresa
-- if EMC.HEAD == 'H1' then
-- if EMC.L3 > -300 then
-- EMC.R1 = EgtGetAxisHomePos( 'C1')
-- EMC.R2 = EgtGetAxisHomePos( 'B1')
-- EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2)
-- EMC.MODIF = true
-- end
-- -- se altrimenti sega a catena
-- elseif EMC.HEAD == 'H3' then
-- -- disabilito
-- do EMC.ERR = 0 return end
-- local L3New = EMC.L3
-- local R1New = EMC.R1
-- local R2New = EMC.R2
-- if EMC.L3 > -300 then
-- L3New = min( EMC.L3, -250)
-- R1New = EgtGetAxisHomePos( 'C1')
-- R2New = EgtGetAxisHomePos( 'B1')
-- EMC.MODIF = true
-- end
-- if EMC.L2 > -1200 then
-- R1New = 180
-- EMC.MODIF = true
-- elseif EMC.L2 < -4700 then
-- R1New = 0
-- EMC.MODIF = true
-- end
-- if EMC.MODIF then
-- EMC.L3 = L3New
-- EMC.R1 = R1New
-- EMC.R2 = R2New
-- EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2, EMC.R3)
-- end
-- -- se altrimenti lama
-- elseif EMC.HEAD == 'H2' then
-- if EMC.L3 > -200 then
-- EMC.R1 = EgtGetAxisHomePos( 'C2')
-- EMC.R2 = EgtGetAxisHomePos( 'B2')
-- EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2)
-- EMC.MODIF = true
-- end
--
-- -- altrimenti errore
-- else
-- error( "Unknown Head")
-- end
-- EMC.ERR = 0
-- end
--
+50
View File
@@ -0,0 +1,50 @@
; Commento per evitare BOM con UTF-8
;Index = Type, Description, Default Value
; Type : b=boolean, d=double, l=lenght, s=string
[Drilling]
[Sawing]
[Milling]
0=d,MaxElev,0
1=d,OutRaw,0
2=d,SideElev,0
3=d,TrimExt,0
4=sr,VtFaceUse,0,0,0
[Pocketing]
0=d,MaxElev,0
1=b,Open,0
2=d,OpenMinSave,0
3=d,OpenOutRaw,0
4=d,MaxOptSize,0
[Mortising]
0=d,MaxElev,0
[Chiseling]
[SawRoughing]
[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]
[SurfFinishing]
0=b,SkipMaxDown,1
+41
View File
@@ -0,0 +1,41 @@
; Commento per evitare BOM con UTF-8
; Index, Type, Description, Value
; Index = 0,1,..,n
; Type : d=double, l=lenght, s=string, b=boolean, dr=double recalc, sr= string recalc, lr=lenght recalc, br=boolean recalc, th=toolholder
; Description : STEP, SIDESTEP, ...
[DRILL_STD]
0=th,TH,
1=d,STEP
2=s,DOUBLE
[SAW_STD]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=b,LONGCUT
[SAW_FLAT]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=b,LONGCUT
[MILL_STD]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=d,SIDEDEPTH
4=s,DOUBLE
[MILL_NOTIP]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=d,SIDEDEPTH
4=s,DOUBLE
[MORTISE_STD]
0=b,MORTISE
1=d,STEP
2=d,SIDESTEP
+2
View File
@@ -79,6 +79,8 @@ if EgtExistsFile( sData) then
WallData.DELTA_X = Machine.Offsets.DELTA_Y or WallData.DELTA_X
WallData.DELTA_Y = Machine.Offsets.DELTA_X or WallData.DELTA_Y
WallData.DELTA_Z = Machine.Offsets.DELTA_Z or WallData.DELTA_Z
WallData.SQUARING_TYPE = Machine.Offsets.SQUARING_TYPE or WallData.SQUARING_TYPE
if Machine.Offsets.CUT_WITH_OUTLINE ~= nil then WallData.CUT_WITH_OUTLINE = ( Machine.Offsets.CUT_WITH_OUTLINE == 1) end
end
if Machine.Trave then
WallData.MIN_LENGTH = Machine.Trave.YMIN or WallData.MIN_LENGTH