Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a4428dfc7e | |||
| dee48eaa84 | |||
| 0c98a3b342 | |||
| 4663adcc5c | |||
| dace2e7321 | |||
| c7c9d4be20 | |||
| 632c28c667 | |||
| feb0f12b61 | |||
| e6fb6380cb | |||
| f7c241163c | |||
| e42381e231 | |||
| 5636d35be5 | |||
| 562416f232 | |||
| 5a584431cb | |||
| 07a004f18d | |||
| c332eccef2 | |||
| cdcfb0b053 | |||
| 09efa2d462 | |||
| 6a0d00e10b | |||
| 4d773f5bfa | |||
| cb0c293fd7 | |||
| b4235bcc9b | |||
| c5e0c1124d | |||
| 52e9ec6286 | |||
| 36f393ab79 | |||
| ad8091e168 | |||
| d738334a57 | |||
| 3100e615f7 | |||
| a6d54ac40d | |||
| 785e4490ea | |||
| 971fcc0c07 | |||
| db7cb8c1b1 | |||
| 80fdaf23f4 | |||
| b832df5767 | |||
| 793fe00cc9 |
+85
-14
@@ -75,7 +75,8 @@ local BeamData = {
|
|||||||
PRECUT_HEAD = true, -- flag abilitazione pretaglio grezzo a zero in testa
|
PRECUT_HEAD = true, -- flag abilitazione pretaglio grezzo a zero in testa
|
||||||
PRECUT_TAIL = true, -- flag abilitazione pretaglio grezzo a zero in coda
|
PRECUT_TAIL = true, -- flag abilitazione pretaglio grezzo a zero in coda
|
||||||
MIN_HEIGHT_ADDED_CUTS = 400, -- altezza minima pezzo per effettuare tagli orizzontali aggiuntivi in testa e coda
|
MIN_HEIGHT_ADDED_CUTS = 400, -- altezza minima pezzo per effettuare tagli orizzontali aggiuntivi in testa e coda
|
||||||
GAIN_RECLAMPING = 1000 -- in caso di scarso pinzaggio, mm da recuperare con pinzaggio ulteriore prima di spostare
|
GAIN_RECLAMPING = 1000, -- in caso di scarso pinzaggio, mm da recuperare con pinzaggio ulteriore prima di spostare
|
||||||
|
STRATEGIES_SCRIPT = 'Essetre'
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Aggiornamento con dati da TechnoEssetre7
|
-- Aggiornamento con dati da TechnoEssetre7
|
||||||
@@ -105,6 +106,7 @@ if EgtExistsFile( sData) then
|
|||||||
BeamData.ADVANCE_TAIL_OFFS = Machine.Offsets.ADVANCE_TAIL_OFFS or BeamData.ADVANCE_TAIL_OFFS
|
BeamData.ADVANCE_TAIL_OFFS = Machine.Offsets.ADVANCE_TAIL_OFFS or BeamData.ADVANCE_TAIL_OFFS
|
||||||
BeamData.LEN_VERY_SHORT_PART = Machine.Offsets.LEN_VERY_SHORT_PART or BeamData.LEN_VERY_SHORT_PART
|
BeamData.LEN_VERY_SHORT_PART = Machine.Offsets.LEN_VERY_SHORT_PART or BeamData.LEN_VERY_SHORT_PART
|
||||||
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
||||||
|
BeamData.MAX_DIM_HTCUT_HBEAM = Machine.Offsets.MAX_DIM_HTCUT_HBEAM or BeamData.MAX_DIM_HTCUT_HBEAM
|
||||||
if Machine.Offsets.PRECUT_HEAD_DISABLE then BeamData.PRECUT_HEAD = ( Machine.Offsets.PRECUT_HEAD_DISABLE == 0) end
|
if Machine.Offsets.PRECUT_HEAD_DISABLE then BeamData.PRECUT_HEAD = ( Machine.Offsets.PRECUT_HEAD_DISABLE == 0) end
|
||||||
if Machine.Offsets.PRECUT_TAIL_DISABLE then BeamData.PRECUT_TAIL = ( Machine.Offsets.PRECUT_TAIL_DISABLE == 0) end
|
if Machine.Offsets.PRECUT_TAIL_DISABLE then BeamData.PRECUT_TAIL = ( Machine.Offsets.PRECUT_TAIL_DISABLE == 0) end
|
||||||
if Machine.Offsets.MIN_HEIGHT_ADDED_CUTS then BeamData.MIN_HEIGHT_ADDED_CUTS = min( Machine.Offsets.MIN_HEIGHT_ADDED_CUTS, BeamData.MIN_HEIGHT_ADDED_CUTS) end
|
if Machine.Offsets.MIN_HEIGHT_ADDED_CUTS then BeamData.MIN_HEIGHT_ADDED_CUTS = min( Machine.Offsets.MIN_HEIGHT_ADDED_CUTS, BeamData.MIN_HEIGHT_ADDED_CUTS) end
|
||||||
@@ -184,36 +186,105 @@ local function GetChainSawInitAngs( vtN, vtO, nInd)
|
|||||||
end
|
end
|
||||||
BeamData.GetChainSawInitAngs = GetChainSawInitAngs
|
BeamData.GetChainSawInitAngs = GetChainSawInitAngs
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetMinNzTopHead( vtNFace)
|
||||||
|
if vtNFace and abs( vtNFace:getY()) > 0.8659 then
|
||||||
|
return -0.2499
|
||||||
|
else
|
||||||
|
return sin( -45)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetMinNzDownUp( b3Raw, vtNFace, vtToolDirection)
|
||||||
|
if vtToolDirection and vtToolDirection:getZ() > 0.35 then
|
||||||
|
-- N_HorAng < 15° or N_HorAng > 55°
|
||||||
|
if vtNFace and ( abs( vtNFace:getY()) < 0.259 or abs( vtNFace:getY()) > 0.819) then
|
||||||
|
return -0.708
|
||||||
|
-- N_HorAng > 50°
|
||||||
|
elseif vtNFace and abs( vtNFace:getY()) > 0.766 then
|
||||||
|
return -0.383
|
||||||
|
else
|
||||||
|
return EgtIf( b3Raw:getDimZ() < BeamData.MIN_DIM_HBEAM, -0.609, -0.383)
|
||||||
|
end
|
||||||
|
elseif vtToolDirection and vtToolDirection:getZ() < - 0.01
|
||||||
|
and ( vtNFace and ( abs( vtNFace:getY()) > 0.983))
|
||||||
|
and ( b3Raw:getDimY() < 210) then
|
||||||
|
|
||||||
|
return -0.173
|
||||||
|
else
|
||||||
|
-- N_HorAng > 60°
|
||||||
|
if vtNFace and ( abs( vtNFace:getY()) > 0.866) then
|
||||||
|
return -0.708
|
||||||
|
else
|
||||||
|
if b3Raw:getDimZ() < 120 then
|
||||||
|
return -0.708
|
||||||
|
elseif b3Raw:getDimZ() < 200 then
|
||||||
|
-- N_HorAng < 15° or N_HorAng > 55°
|
||||||
|
if vtNFace and ( abs( vtNFace:getY()) < 0.259 or abs( vtNFace:getY()) > 0.819) then
|
||||||
|
return -0.5
|
||||||
|
else
|
||||||
|
return -0.383
|
||||||
|
end
|
||||||
|
elseif b3Raw:getDimZ() < 300 then
|
||||||
|
-- N_HorAng < 10°
|
||||||
|
if vtNFace and ( abs( vtNFace:getY()) < 0.174) then
|
||||||
|
return -0.5
|
||||||
|
else
|
||||||
|
return -0.259
|
||||||
|
end
|
||||||
|
elseif b3Raw:getDimZ() < BeamData.MIN_DIM_HBEAM then
|
||||||
|
-- N_HorAng < 10°
|
||||||
|
if vtNFace and ( abs( vtNFace:getY()) < 0.174) then
|
||||||
|
return -0.342
|
||||||
|
else
|
||||||
|
return -0.259
|
||||||
|
end
|
||||||
|
else
|
||||||
|
-- N_HorAng < 10°
|
||||||
|
if vtNFace and ( abs( vtNFace:getY()) < 0.174) then
|
||||||
|
return -0.383
|
||||||
|
else
|
||||||
|
return -0.174
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
local function GetSetupInfo( sHead)
|
local function GetSetupInfo( sHead)
|
||||||
local SetupInfo = {}
|
local SetupInfo = {}
|
||||||
|
|
||||||
-- dati comuni
|
-- dati comuni
|
||||||
SetupInfo.bIsCSymmetric = false
|
SetupInfo.bIsCSymmetrical = false
|
||||||
SetupInfo.dCAxisEncumbrance = 180
|
SetupInfo.dCAxisEncumbrance = 180
|
||||||
|
SetupInfo.dCAxisSideEncumbrance = 200
|
||||||
|
SetupInfo.dPivot = 175
|
||||||
SetupInfo.bToolOnAggregate = false
|
SetupInfo.bToolOnAggregate = false
|
||||||
|
|
||||||
-- testa 5 assi da sopra
|
-- testa 5 assi da sopra
|
||||||
if sHead == 'H1' then
|
if sHead == 'H1' then
|
||||||
SetupInfo.bIsTopHead = true
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
|
SetupInfo.PreferredSide = {}
|
||||||
SetupInfo.dMaxNegativeAngle = sin( -45)
|
SetupInfo.GetMinNz = GetMinNzTopHead
|
||||||
-- lama su testa 5 assi da sopra
|
-- lama su testa 5 assi da sopra
|
||||||
elseif sHead == 'H2' then
|
elseif sHead == 'H2' then
|
||||||
SetupInfo.bIsTopHead = true
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
|
SetupInfo.PreferredSide = {}
|
||||||
SetupInfo.dMaxNegativeAngle = sin( -45)
|
SetupInfo.GetMinNz = GetMinNzTopHead
|
||||||
|
SetupInfo.GetMinNzDownUp = GetMinNzDownUp
|
||||||
-- motosega
|
-- motosega
|
||||||
elseif sHead == 'H3' then
|
elseif sHead == 'H3' then
|
||||||
SetupInfo.bIsTopHead = true
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
|
SetupInfo.PreferredSide = {}
|
||||||
SetupInfo.dMaxNegativeAngle = 0
|
SetupInfo.GetMinNz = function() return 0 end
|
||||||
-- rinvio angolare 90° (considerato come fosse una testa da sotto)
|
-- rinvio angolare 90° (considerato come fosse una testa da sotto)
|
||||||
elseif sHead == 'H5' then
|
elseif sHead == 'H5' then
|
||||||
SetupInfo.bToolOnAggregate = true
|
SetupInfo.bToolOnAggregate = true
|
||||||
SetupInfo.bIsBottomHead = true
|
SetupInfo.HeadType = { bTop = false, bBottom = true}
|
||||||
SetupInfo.bIsTopHead = not SetupInfo.bIsBottomHead
|
SetupInfo.PreferredSide = {}
|
||||||
SetupInfo.dMaxPositiveAngle = 0
|
SetupInfo.GetMaxNz = function() return 0 end
|
||||||
end
|
end
|
||||||
|
|
||||||
return SetupInfo
|
return SetupInfo
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ Name=Offsets
|
|||||||
31=l,OFFSETX_RINV_2,150,OFFSETX_RINV_2
|
31=l,OFFSETX_RINV_2,150,OFFSETX_RINV_2
|
||||||
32=l,OFFSETZ_RINV_2,347,OFFSETZ_RINV_2
|
32=l,OFFSETZ_RINV_2,347,OFFSETZ_RINV_2
|
||||||
33=l,MIN_JOIN_SS,100,MIN_JOIN_SS
|
33=l,MIN_JOIN_SS,100,MIN_JOIN_SS
|
||||||
|
34=l,MIN_JOIN_VV,75,MIN_JOIN_VV
|
||||||
|
|
||||||
[2]
|
[2]
|
||||||
Name=Trave
|
Name=Trave
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ local INFO_STD_PP = require( 'Version')
|
|||||||
local BD = require( 'BeamData')
|
local BD = require( 'BeamData')
|
||||||
|
|
||||||
-- Variabili di modulo
|
-- Variabili di modulo
|
||||||
local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
local CSP_INFO = INFO_STD_PP.NAME..'_'..NumericalControl..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
||||||
local MACHINE_INFO = MACH_NAME..' ver.'..PP_VER
|
local MACHINE_INFO = MACH_NAME..' ver.'..PP_VER
|
||||||
local TEST_USE = false
|
local TEST_USE = false
|
||||||
|
|
||||||
@@ -53,6 +53,7 @@ function OnProgramStart()
|
|||||||
end
|
end
|
||||||
EmtOutput( sPrefixCommentLine..'('.. CSP_INFO..')')
|
EmtOutput( sPrefixCommentLine..'('.. CSP_INFO..')')
|
||||||
EmtOutput( sPrefixCommentLine..'('.. MACHINE_INFO..')\n')
|
EmtOutput( sPrefixCommentLine..'('.. MACHINE_INFO..')\n')
|
||||||
|
EmtOutput( '(HEADER)')
|
||||||
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
||||||
if TEST_USE then
|
if TEST_USE then
|
||||||
EmtOutput( 'M28')
|
EmtOutput( 'M28')
|
||||||
@@ -104,6 +105,7 @@ function OnProgramEnd()
|
|||||||
EMT.FALL = nil
|
EMT.FALL = nil
|
||||||
EMT.RELOAD = nil
|
EMT.RELOAD = nil
|
||||||
EMT.RELOAD2 = nil
|
EMT.RELOAD2 = nil
|
||||||
|
EmtOutput( '(FOOTER)')
|
||||||
-- Se modalità test, termino il programma
|
-- Se modalità test, termino il programma
|
||||||
if TEST_USE then
|
if TEST_USE then
|
||||||
EmtOutput( 'M02')
|
EmtOutput( 'M02')
|
||||||
@@ -630,7 +632,7 @@ function OnRapid()
|
|||||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||||
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||||
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
||||||
if EMT.PREVHEAD == 'H3' and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
' B' .. EmtLenToString( EMT.R2pp, 3) .. ' C' .. EmtLenToString( EMT.R1pp, 3) ..
|
' B' .. EmtLenToString( EMT.R2pp, 3) .. ' C' .. EmtLenToString( EMT.R1pp, 3) ..
|
||||||
' EE' .. EgtIf( bZmax, '3', '4') .. EMT.PREVsEL .. EMT.PREVsER .. EMT.PREVsET .. EMT.PREVsES
|
' EE' .. EgtIf( bZmax, '3', '4') .. EMT.PREVsEL .. EMT.PREVsER .. EMT.PREVsET .. EMT.PREVsES
|
||||||
@@ -652,7 +654,7 @@ function OnRapid()
|
|||||||
local sES = ' ES'..EgtNumToString( EMT.S, 0)
|
local sES = ' ES'..EgtNumToString( EMT.S, 0)
|
||||||
|
|
||||||
-- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione
|
-- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione
|
||||||
if ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if not EMT.LOAD and ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
local sEEPreMove = ' EE' .. EgtIf( bZmax, '3', '4')
|
local sEEPreMove = ' EE' .. EgtIf( bZmax, '3', '4')
|
||||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') .. sEE .. sEL .. sER .. sET .. sES
|
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') .. sEE .. sEL .. sER .. sET .. sES
|
||||||
@@ -1538,7 +1540,7 @@ function MyAdjustLinearAxes()
|
|||||||
elseif EMT.HEAD ~= 'H3' then
|
elseif EMT.HEAD ~= 'H3' then
|
||||||
local Len = EMT.TLEN + EgtIf( EMT.HEAD == 'H1', MillOffs, abs( SawOffs))
|
local Len = EMT.TLEN + EgtIf( EMT.HEAD == 'H1', MillOffs, abs( SawOffs))
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
vtE = Vector3d( EMT.EXTR) * Len - Z_AX() * LenRef
|
vtE = Vector3d( EMT.TDIR) * Len - Z_AX() * LenRef
|
||||||
else
|
else
|
||||||
local LenAux = ( EMT.TDIST or ChSawLen) + MillOffs
|
local LenAux = ( EMT.TDIST or ChSawLen) + MillOffs
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ local INFO_STD_PP = require( 'Version')
|
|||||||
local BD = require( 'BeamData')
|
local BD = require( 'BeamData')
|
||||||
|
|
||||||
-- Variabili di modulo
|
-- Variabili di modulo
|
||||||
local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
local CSP_INFO = INFO_STD_PP.NAME..'_'..NumericalControl..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
||||||
local MACHINE_INFO = MACH_NAME..' ver.'..PP_VER
|
local MACHINE_INFO = MACH_NAME..' ver.'..PP_VER
|
||||||
local TEST_USE = false
|
local TEST_USE = false
|
||||||
|
|
||||||
@@ -53,6 +53,7 @@ function OnProgramStart()
|
|||||||
end
|
end
|
||||||
EmtOutput( sPrefixCommentLine..'('.. CSP_INFO..')')
|
EmtOutput( sPrefixCommentLine..'('.. CSP_INFO..')')
|
||||||
EmtOutput( sPrefixCommentLine..'('.. MACHINE_INFO..')\n')
|
EmtOutput( sPrefixCommentLine..'('.. MACHINE_INFO..')\n')
|
||||||
|
EmtOutput( '(HEADER)')
|
||||||
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
||||||
if TEST_USE then
|
if TEST_USE then
|
||||||
EmtOutput( 'M28')
|
EmtOutput( 'M28')
|
||||||
@@ -108,6 +109,7 @@ function OnProgramEnd()
|
|||||||
EMT.FALL = nil
|
EMT.FALL = nil
|
||||||
EMT.RELOAD = nil
|
EMT.RELOAD = nil
|
||||||
EMT.RELOAD2 = nil
|
EMT.RELOAD2 = nil
|
||||||
|
EmtOutput( '(FOOTER)')
|
||||||
-- Se modalità test, termino il programma
|
-- Se modalità test, termino il programma
|
||||||
if TEST_USE then
|
if TEST_USE then
|
||||||
EmtOutput( 'M02')
|
EmtOutput( 'M02')
|
||||||
@@ -675,7 +677,7 @@ function OnRapid()
|
|||||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||||
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||||
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
||||||
if EMT.PREVHEAD == 'H3' and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
' B' .. EmtLenToString( EMT.R2pp, 3) .. ' C' .. EmtLenToString( EMT.R1pp, 3) ..
|
' B' .. EmtLenToString( EMT.R2pp, 3) .. ' C' .. EmtLenToString( EMT.R1pp, 3) ..
|
||||||
' EE' .. EgtIf( bZmax, '3', '4') .. EMT.PREVsEL .. EMT.PREVsER .. EMT.PREVsET .. EMT.PREVsES
|
' EE' .. EgtIf( bZmax, '3', '4') .. EMT.PREVsEL .. EMT.PREVsER .. EMT.PREVsET .. EMT.PREVsES
|
||||||
@@ -720,7 +722,7 @@ function OnRapid()
|
|||||||
local sES = ' ES'..EgtNumToString( EMT.S, 0)
|
local sES = ' ES'..EgtNumToString( EMT.S, 0)
|
||||||
|
|
||||||
-- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione
|
-- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione
|
||||||
if ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if not EMT.LOAD and ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
local sEEPreMove = ' EE' .. EgtIf( bZmax, '3', '4')
|
local sEEPreMove = ' EE' .. EgtIf( bZmax, '3', '4')
|
||||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') .. sEE .. sEL .. sER .. sET .. sES
|
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') .. sEE .. sEL .. sER .. sET .. sES
|
||||||
@@ -1640,7 +1642,7 @@ function MyAdjustLinearAxes()
|
|||||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H2' then
|
if EMT.HEAD == 'H1' or EMT.HEAD == 'H2' then
|
||||||
local Len = EMT.TLEN + EgtIf( EMT.HEAD == 'H1', MillOffs, abs( SawOffs))
|
local Len = EMT.TLEN + EgtIf( EMT.HEAD == 'H1', MillOffs, abs( SawOffs))
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
vtE = Vector3d( EMT.EXTR) * Len - Z_AX() * LenRef
|
vtE = Vector3d( EMT.TDIR) * Len - Z_AX() * LenRef
|
||||||
elseif EMT.HEAD == 'H3' then
|
elseif EMT.HEAD == 'H3' then
|
||||||
local LenAux = ( EMT.TDIST or ChSawLen) + MillOffs
|
local LenAux = ( EMT.TDIST or ChSawLen) + MillOffs
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
|
|||||||
+48
-43
@@ -6,7 +6,7 @@ local INFO_STD_PP = require( 'Version')
|
|||||||
local BD = require( 'BeamData')
|
local BD = require( 'BeamData')
|
||||||
|
|
||||||
-- Variabili di modulo
|
-- Variabili di modulo
|
||||||
local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
local CSP_INFO = INFO_STD_PP.NAME..'_'..NumericalControl..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
||||||
local MACHINE_INFO = MACH_NAME..' ver.'..PP_VER
|
local MACHINE_INFO = MACH_NAME..' ver.'..PP_VER
|
||||||
local TEST_USE = false
|
local TEST_USE = false
|
||||||
|
|
||||||
@@ -21,13 +21,16 @@ function OnStart()
|
|||||||
EMT.USETO1 = false -- abilitazione uso origine tavola
|
EMT.USETO1 = false -- abilitazione uso origine tavola
|
||||||
EMT.MODAL = true -- abilitazione emissione modale
|
EMT.MODAL = true -- abilitazione emissione modale
|
||||||
EMT.INCHES = false -- unità di misura mm/inches
|
EMT.INCHES = false -- unità di misura mm/inches
|
||||||
EMT.DECNUM = 5 -- numero di decimali dopo la virgola
|
EMT.DECNUM = 4 -- numero di decimali dopo la virgola
|
||||||
|
EMT.DECVERS = 6 -- numero di decimali dopo la virgola per versori
|
||||||
|
EMT.DECRAD = 4 -- numero di decimali dopo la virgola per raggio
|
||||||
|
EMT.DECMACRO = 3 -- numero di decimali dopo la virgola per macro
|
||||||
EMT.NUM = false -- abilitazione numerazione linee
|
EMT.NUM = false -- abilitazione numerazione linee
|
||||||
--EMT.Nt = 'N' -- token per la numerazione di linea
|
--EMT.Nt = 'N' -- token per la numerazione di linea
|
||||||
--EMT.LINENBR = 0 -- numero di linea
|
--EMT.LINENBR = 0 -- numero di linea
|
||||||
--EMT.LINEINC = 1 -- incremento numerazione linee
|
--EMT.LINEINC = 1 -- incremento numerazione linee
|
||||||
--EMT.Ft = 'F' -- token per feed
|
--EMT.Ft = 'F' -- token per feed
|
||||||
--EMT.St = 'S' -- token per speed
|
--EMT.St = 'S' -- token per speed
|
||||||
EMT.FMAXPINZE = 154000 -- feed massima pinze
|
EMT.FMAXPINZE = 154000 -- feed massima pinze
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -51,6 +54,7 @@ function OnProgramStart()
|
|||||||
end
|
end
|
||||||
ParkLine( sPrefixCommentLine..'('.. CSP_INFO..')')
|
ParkLine( sPrefixCommentLine..'('.. CSP_INFO..')')
|
||||||
ParkLine( sPrefixCommentLine..'('.. MACHINE_INFO..')')
|
ParkLine( sPrefixCommentLine..'('.. MACHINE_INFO..')')
|
||||||
|
ParkLine( '(HEADER)')
|
||||||
|
|
||||||
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
||||||
if TEST_USE then
|
if TEST_USE then
|
||||||
@@ -108,6 +112,7 @@ function OnProgramEnd()
|
|||||||
EMT.FALL = nil
|
EMT.FALL = nil
|
||||||
EMT.RELOAD = nil
|
EMT.RELOAD = nil
|
||||||
EMT.RELOAD2 = nil
|
EMT.RELOAD2 = nil
|
||||||
|
EmtOutput( '(FOOTER)')
|
||||||
-- Termino il programma
|
-- Termino il programma
|
||||||
EmtOutput( 'M02')
|
EmtOutput( 'M02')
|
||||||
end
|
end
|
||||||
@@ -116,8 +121,8 @@ end
|
|||||||
function OnToolData()
|
function OnToolData()
|
||||||
-- emissione dati utensili
|
-- emissione dati utensili
|
||||||
if EMT.HEAD == 'H1' then
|
if EMT.HEAD == 'H1' then
|
||||||
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
||||||
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
||||||
ParkLine( sOut)
|
ParkLine( sOut)
|
||||||
-- cerco posizione di attrezzaggio del primo utensile di lavorazione
|
-- cerco posizione di attrezzaggio del primo utensile di lavorazione
|
||||||
if EMT.TOOL == EMT.TOOL_1 and EMT.TLEN_1 < LONG_TOOL_MINLEN then
|
if EMT.TOOL == EMT.TOOL_1 and EMT.TLEN_1 < LONG_TOOL_MINLEN then
|
||||||
@@ -125,14 +130,14 @@ function OnToolData()
|
|||||||
end
|
end
|
||||||
-- emissione dati lama
|
-- emissione dati lama
|
||||||
elseif EMT.HEAD == 'H2' then
|
elseif EMT.HEAD == 'H2' then
|
||||||
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
||||||
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
||||||
ParkLine( sOut)
|
ParkLine( sOut)
|
||||||
-- emissione dati sega a catena
|
-- emissione dati sega a catena
|
||||||
elseif EMT.HEAD == 'H3' then
|
elseif EMT.HEAD == 'H3' then
|
||||||
if EMT.TDIST and abs( EMT.TDIST) < 0.1 then EMT.TDIST = nil end
|
if EMT.TDIST and abs( EMT.TDIST) < 0.1 then EMT.TDIST = nil end
|
||||||
local sData = ' P2=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3) .. ' P3=' .. EmtLenToString( EMT.TLEN, 3) ..
|
local sData = ' P2=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) ..
|
||||||
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3)
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), EMT.DECMACRO)
|
||||||
if EMT.TCPOS == 'T101' then
|
if EMT.TCPOS == 'T101' then
|
||||||
ParkLine( 'M992 P1=101' .. sData)
|
ParkLine( 'M992 P1=101' .. sData)
|
||||||
ParkLine( 'M992 P1=102' .. sData)
|
ParkLine( 'M992 P1=102' .. sData)
|
||||||
@@ -148,13 +153,13 @@ function OnToolData()
|
|||||||
elseif EMT.HEAD == 'H5' or EMT.HEAD == 'H6' then
|
elseif EMT.HEAD == 'H5' or EMT.HEAD == 'H6' then
|
||||||
local nPos = EgtIf( EMT.HEAD == 'H5', 91, 93)
|
local nPos = EgtIf( EMT.HEAD == 'H5', 91, 93)
|
||||||
if EMT.EXIT == 2 then nPos = nPos + 1 end
|
if EMT.EXIT == 2 then nPos = nPos + 1 end
|
||||||
local sOut = 'M992 P1=' .. EgtNumToString( nPos, 0) .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
local sOut = 'M992 P1=' .. EgtNumToString( nPos, 0) .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
||||||
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
||||||
ParkLine( sOut)
|
ParkLine( sOut)
|
||||||
-- emissione dati sega a catena
|
-- emissione dati sega a catena
|
||||||
elseif EMT.HEAD == 'H7' then
|
elseif EMT.HEAD == 'H7' then
|
||||||
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
||||||
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
||||||
ParkLine( sOut)
|
ParkLine( sOut)
|
||||||
-- altro non previsto
|
-- altro non previsto
|
||||||
else
|
else
|
||||||
@@ -224,8 +229,8 @@ function OnDispositionEnd()
|
|||||||
|
|
||||||
if IdTrave >= 0 then
|
if IdTrave >= 0 then
|
||||||
local sPrt = '( *** Part '.. EgtNumToString( IdTrave, 0) ..' ***)'
|
local sPrt = '( *** Part '.. EgtNumToString( IdTrave, 0) ..' ***)'
|
||||||
local sOut = '( SN=' .. IdTrave .. ' LBarra=' .. EmtLenToString( LBarra, 3) .. ' L='..EmtLenToString( LTrave, 3) ..
|
local sOut = '( SN=' .. IdTrave .. ' LBarra=' .. EmtLenToString( LBarra, EMT.DECMACRO) .. ' L='..EmtLenToString( LTrave, EMT.DECMACRO) ..
|
||||||
' H=' .. EmtLenToString( HTrave, 3) .. ' S=' .. EmtLenToString( STrave, 3) .. ' )'
|
' H=' .. EmtLenToString( HTrave, EMT.DECMACRO) .. ' S=' .. EmtLenToString( STrave, EMT.DECMACRO) .. ' )'
|
||||||
EMT.PRODID = EgtGetInfo( BtlInfoId, 'PRODID', 'i') or 0
|
EMT.PRODID = EgtGetInfo( BtlInfoId, 'PRODID', 'i') or 0
|
||||||
EMT.PATTID = EgtGetInfo( BtlInfoId, 'PATTID', 'i') or 0
|
EMT.PATTID = EgtGetInfo( BtlInfoId, 'PATTID', 'i') or 0
|
||||||
EMT.CUTID = EgtGetInfo( EMT.IDT, 'CUTID', 'i') or 0
|
EMT.CUTID = EgtGetInfo( EMT.IDT, 'CUTID', 'i') or 0
|
||||||
@@ -655,10 +660,10 @@ function OnRapid()
|
|||||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||||
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||||
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
||||||
if EMT.PREVHEAD == 'H3' and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, 3) .. ' P3=' .. EmtLenToString( MyZHome, 3) ..
|
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
||||||
' P4=' .. EgtNumToString( EMT.R2pp, 3) .. ' P5=' .. EgtNumToString( EMT.R1pp, 3) ..
|
' P4=' .. EgtNumToString( EMT.R2pp, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1pp, EMT.DECMACRO) ..
|
||||||
' P6=' .. EgtNumToString( EMT.PREVTCPOS, 3) .. ' P7=' .. EgtNumToString( EMT.PREVS, 0) ..
|
' P6=' .. EgtNumToString( EMT.PREVTCPOS, EMT.DECMACRO) .. ' P7=' .. EgtNumToString( EMT.PREVS, 0) ..
|
||||||
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
||||||
EmtOutput( sOutPreMove)
|
EmtOutput( sOutPreMove)
|
||||||
EmtOutput( 'M101 P1=2')
|
EmtOutput( 'M101 P1=2')
|
||||||
@@ -671,9 +676,9 @@ function OnRapid()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione
|
-- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione
|
||||||
if ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if not EMT.LOAD and ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, 3) .. ' P3=' .. EmtLenToString( MyZHome, 3) ..
|
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
||||||
' P4=' .. EgtNumToString( EMT.R2, 3) .. ' P5=' .. EgtNumToString( EMT.R1, 3) ..
|
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
||||||
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||||
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
||||||
EmtOutput( sOutPreMove)
|
EmtOutput( sOutPreMove)
|
||||||
@@ -687,8 +692,8 @@ function OnRapid()
|
|||||||
if EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
MyZPos = MyZHome
|
MyZPos = MyZHome
|
||||||
end
|
end
|
||||||
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, 3) .. ' P3=' .. EmtLenToString( MyZPos, 3) ..
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZPos, EMT.DECMACRO) ..
|
||||||
' P4=' .. EgtNumToString( EMT.R2, 3) .. ' P5=' .. EgtNumToString( EMT.R1, 3) ..
|
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
||||||
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||||
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
||||||
if EMT.LOAD then
|
if EMT.LOAD then
|
||||||
@@ -738,7 +743,7 @@ function OnRapid()
|
|||||||
sV = EmtLenToString( ParkV)
|
sV = EmtLenToString( ParkV)
|
||||||
sB = '2'
|
sB = '2'
|
||||||
end
|
end
|
||||||
sOut = 'M112 P1='..EmtLenToString( EMT.L1, 3)..' P3='..sA..' P4='..sB..' P5=0 P6='..sY..' P7='..sV..' P9='..GetFmaxClamp()
|
sOut = 'M112 P1='..EmtLenToString( EMT.L1, EMT.DECMACRO)..' P3='..sA..' P4='..sB..' P5=0 P6='..sY..' P7='..sV..' P9='..GetFmaxClamp()
|
||||||
ParkLine( sOut)
|
ParkLine( sOut)
|
||||||
EMT.LOAD = false
|
EMT.LOAD = false
|
||||||
-- emissione prime linee speciali e linee parcheggiate
|
-- emissione prime linee speciali e linee parcheggiate
|
||||||
@@ -789,7 +794,7 @@ function OnRapid()
|
|||||||
sOut = 'M101 P1=3'
|
sOut = 'M101 P1=3'
|
||||||
EmtOutput( sOut)
|
EmtOutput( sOut)
|
||||||
end
|
end
|
||||||
sOut = 'M112 P1=' .. EmtLenToString( EMT.L1, 3) ..' P3='..sA..' P4='..sB..' P6='..sY..' P7='..sV..' P9=' .. GetFmaxClamp()
|
sOut = 'M112 P1=' .. EmtLenToString( EMT.L1, EMT.DECMACRO) ..' P3='..sA..' P4='..sB..' P6='..sY..' P7='..sV..' P9=' .. GetFmaxClamp()
|
||||||
EmtOutput( sOut)
|
EmtOutput( sOut)
|
||||||
if not bHeadFirst then
|
if not bHeadFirst then
|
||||||
sOut = 'M101 P1=2'
|
sOut = 'M101 P1=2'
|
||||||
@@ -861,15 +866,15 @@ function OnRapid()
|
|||||||
if EMT.ST > BeamHeightForFixRot and EMT.HEAD == 'H1' and EMT.TOOL ~= EMT.NEXTTOOL and EMT.NEXTHEAD ~= 'H2' then
|
if EMT.ST > BeamHeightForFixRot and EMT.HEAD == 'H1' and EMT.TOOL ~= EMT.NEXTTOOL and EMT.NEXTHEAD ~= 'H2' then
|
||||||
local dBAxis = 90
|
local dBAxis = 90
|
||||||
local dCAxis = EgtIf( BD.RIGHT_LOAD, 90, -90)
|
local dCAxis = EgtIf( BD.RIGHT_LOAD, 90, -90)
|
||||||
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, 3) .. ' P3=' .. EmtLenToString( EMT.L3, 3) ..
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.L3, EMT.DECMACRO) ..
|
||||||
' P4=' .. EgtNumToString( dBAxis, 3) .. ' P5=' .. EgtNumToString( dCAxis, 3) ..
|
' P4=' .. EgtNumToString( dBAxis, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( dCAxis, EMT.DECMACRO) ..
|
||||||
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||||
' P8=0' .. ' P9=0' .. ' P10=3'
|
' P8=0' .. ' P9=0' .. ' P10=3'
|
||||||
EmtOutput( sOut)
|
EmtOutput( sOut)
|
||||||
EmtOutput( 'M101 P1=2')
|
EmtOutput( 'M101 P1=2')
|
||||||
EmtOutput( 'M101 P1=3')
|
EmtOutput( 'M101 P1=3')
|
||||||
sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, 3) .. ' P3=' .. EmtLenToString( EMT.L3, 3) ..
|
sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.L3, EMT.DECMACRO) ..
|
||||||
' P4=' .. EgtNumToString( dBAxis, 3) .. ' P5=' .. EgtNumToString( dCAxis, 3) ..
|
' P4=' .. EgtNumToString( dBAxis, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( dCAxis, EMT.DECMACRO) ..
|
||||||
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||||
' P8=0' .. ' P9=0' .. ' P10=3'
|
' P8=0' .. ' P9=0' .. ' P10=3'
|
||||||
EmtOutput( sOut)
|
EmtOutput( sOut)
|
||||||
@@ -886,8 +891,8 @@ function OnRapid()
|
|||||||
MyAdjustLinearAxes()
|
MyAdjustLinearAxes()
|
||||||
EmtAdjustRotaryAxes()
|
EmtAdjustRotaryAxes()
|
||||||
EmtResetPrev()
|
EmtResetPrev()
|
||||||
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, 3) .. ' P3=' .. EmtLenToString( EMT.L3, 3) ..
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.L3, EMT.DECMACRO) ..
|
||||||
' P4=' .. EgtNumToString( EMT.R2, 3) .. ' P5=' .. EgtNumToString( EMT.R1, 3) ..
|
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
||||||
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||||
' P8=0' .. ' P9=0' .. ' P10=3'
|
' P8=0' .. ' P9=0' .. ' P10=3'
|
||||||
EmtOutput( sOut)
|
EmtOutput( sOut)
|
||||||
@@ -1007,7 +1012,7 @@ function OnArc()
|
|||||||
--local sCen = ' ' .. EMT.C1t .. EmtLenToString(EMT.C1,3) ..
|
--local sCen = ' ' .. EMT.C1t .. EmtLenToString(EMT.C1,3) ..
|
||||||
-- ' ' .. EMT.C2t .. EmtLenToString(EMT.C2,3)
|
-- ' ' .. EMT.C2t .. EmtLenToString(EMT.C2,3)
|
||||||
-- raggio
|
-- raggio
|
||||||
local sRad = ' ' .. EMT.RRt .. EmtLenToString( EMT.RR, EMT.DECNUM)
|
local sRad = ' ' .. EMT.RRt .. EmtLenToString( EMT.RR, EMT.DECRAD)
|
||||||
-- aggiungo feed
|
-- aggiungo feed
|
||||||
local sFeed = EmtGetFeed()
|
local sFeed = EmtGetFeed()
|
||||||
-- tipo arco
|
-- tipo arco
|
||||||
@@ -1639,7 +1644,7 @@ function MyAdjustLinearAxes()
|
|||||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H2' then
|
if EMT.HEAD == 'H1' or EMT.HEAD == 'H2' then
|
||||||
local Len = EMT.TLEN + EgtIf( EMT.HEAD == 'H1', MillOffs, abs( SawOffs))
|
local Len = EMT.TLEN + EgtIf( EMT.HEAD == 'H1', MillOffs, abs( SawOffs))
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
vtE = Vector3d( EMT.EXTR) * Len - Z_AX() * LenRef
|
vtE = Vector3d( EMT.TDIR) * Len - Z_AX() * LenRef
|
||||||
elseif EMT.HEAD == 'H3' then
|
elseif EMT.HEAD == 'H3' then
|
||||||
local LenAux = ( EMT.TDIST or ChSawLen) + MillOffs
|
local LenAux = ( EMT.TDIST or ChSawLen) + MillOffs
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
@@ -1650,13 +1655,13 @@ function MyAdjustLinearAxes()
|
|||||||
local LenAux = MillOffs + AngTr1Offs
|
local LenAux = MillOffs + AngTr1Offs
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2)
|
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2)
|
||||||
vtE = Vector3d( EMT.EXTR) * Len + vtAux * LenAux - Z_AX() * LenRef
|
vtE = Vector3d( EMT.TDIR) * Len + vtAux * LenAux - Z_AX() * LenRef
|
||||||
elseif EMT.HEAD == 'H7' then
|
elseif EMT.HEAD == 'H7' then
|
||||||
local Len = EMT.TLEN + AngTrBHLen
|
local Len = EMT.TLEN + AngTrBHLen
|
||||||
local LenAux = MillOffs + AngTrBHOffs
|
local LenAux = MillOffs + AngTrBHOffs
|
||||||
local LenRef = MillOffs
|
local LenRef = MillOffs
|
||||||
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2)
|
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2)
|
||||||
vtE = Vector3d( EMT.EXTR) * Len + vtAux * LenAux - Z_AX() * LenRef
|
vtE = Vector3d( EMT.TDIR) * Len + vtAux * LenAux - Z_AX() * LenRef
|
||||||
else
|
else
|
||||||
EmtSetLastError( 1211, 'Head not allowed ' .. EMT.HEAD)
|
EmtSetLastError( 1211, 'Head not allowed ' .. EMT.HEAD)
|
||||||
end
|
end
|
||||||
@@ -1767,9 +1772,9 @@ function CalcInterpPlane()
|
|||||||
local vtY = EMT.IPLGLFR:getVersY()
|
local vtY = EMT.IPLGLFR:getVersY()
|
||||||
local vtZ = EMT.IPLGLFR:getVersZ()
|
local vtZ = EMT.IPLGLFR:getVersZ()
|
||||||
EMT.IPLGLSTR = ' X0 Y' .. EmtLenToString( xS, EMT.DECNUM) .. ' Z0' ..
|
EMT.IPLGLSTR = ' X0 Y' .. EmtLenToString( xS, EMT.DECNUM) .. ' Z0' ..
|
||||||
' A' .. EgtNumToString( - vtX:getY(), 6) .. ' B' .. EgtNumToString( vtX:getX(), 6) .. ' C' .. EgtNumToString( vtX:getZ(), 6) ..
|
' A' .. EgtNumToString( - vtX:getY(), EMT.DECVERS) .. ' B' .. EgtNumToString( vtX:getX(), EMT.DECVERS) .. ' C' .. EgtNumToString( vtX:getZ(), EMT.DECVERS) ..
|
||||||
' I' .. EgtNumToString( - vtY:getY(), 6) .. ' J' .. EgtNumToString( vtY:getX(), 6) .. ' K' .. EgtNumToString( vtY:getZ(), 6) ..
|
' I' .. EgtNumToString( - vtY:getY(), EMT.DECVERS) .. ' J' .. EgtNumToString( vtY:getX(), EMT.DECVERS) .. ' K' .. EgtNumToString( vtY:getZ(), EMT.DECVERS) ..
|
||||||
' P' .. EgtNumToString( - vtZ:getY(), 6) .. ' Q' .. EgtNumToString( vtZ:getX(), 6) .. ' R' .. EgtNumToString( vtZ:getZ(), 6)
|
' P' .. EgtNumToString( - vtZ:getY(), EMT.DECVERS) .. ' Q' .. EgtNumToString( vtZ:getX(), EMT.DECVERS) .. ' R' .. EgtNumToString( vtZ:getZ(), EMT.DECVERS)
|
||||||
EMT.IPLGL = true
|
EMT.IPLGL = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+65
-6
@@ -466,8 +466,10 @@ function OnSimulToolSelect( dPosA)
|
|||||||
EMT.TOTDIAM = EgtTdbGetCurrToolParam( MCH_TP.TOTDIAM)
|
EMT.TOTDIAM = EgtTdbGetCurrToolParam( MCH_TP.TOTDIAM)
|
||||||
-- se non è chiamato da altro script (non c'è parametro)
|
-- se non è chiamato da altro script (non c'è parametro)
|
||||||
if not dPosA then
|
if not dPosA then
|
||||||
-- se attivo Vmill
|
-- se utensile non flottante, abilito per Vmill
|
||||||
SetToolForVmill( EMT.TOOL, EMT.HEAD, EMT.EXIT, EMT.VMILL)
|
if not EMT.TFLOAT then
|
||||||
|
EmtSetToolForVmill( EMT.TOOL, EMT.HEAD, EMT.EXIT, EMT.VMILL)
|
||||||
|
end
|
||||||
-- se attivo Collision Check
|
-- se attivo Collision Check
|
||||||
EMT.SAFEDIST = COLL_SAFE_DIST
|
EMT.SAFEDIST = COLL_SAFE_DIST
|
||||||
if EMT.COLLOBJ then
|
if EMT.COLLOBJ then
|
||||||
@@ -527,6 +529,14 @@ function OnSimulToolSelect( dPosA)
|
|||||||
EgtSetAxisPos( 'B', 0)
|
EgtSetAxisPos( 'B', 0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
-- se TC 1
|
||||||
|
if GetTCSet( EMT.TCPOS) == 1 then
|
||||||
|
EgtSetAxisPos( 'B', 90)
|
||||||
|
else
|
||||||
|
if EMT.HEAD ~= 'H3' then
|
||||||
|
EgtSetAxisPos( 'B', -90)
|
||||||
|
end
|
||||||
|
end
|
||||||
-- breve pausa
|
-- breve pausa
|
||||||
EgtPause( 100)
|
EgtPause( 100)
|
||||||
EgtOutText( '')
|
EgtOutText( '')
|
||||||
@@ -576,7 +586,11 @@ function OnSimulToolDeselect()
|
|||||||
-- altrimenti posizioni standard rastrelliera
|
-- altrimenti posizioni standard rastrelliera
|
||||||
else
|
else
|
||||||
SimulMoveAxis( 'X', 0, MCH_SIM_STEP.RAPID)
|
SimulMoveAxis( 'X', 0, MCH_SIM_STEP.RAPID)
|
||||||
SimulMoveAxes( 'B', 90, MCH_SIM_STEP.COLLROT, 'C', -90, MCH_SIM_STEP.COLLROT)
|
if GetTCSet( EMT.TCPOS) == 1 then
|
||||||
|
SimulMoveAxes( 'B', 90, MCH_SIM_STEP.COLLROT, 'C', -90, MCH_SIM_STEP.COLLROT)
|
||||||
|
else
|
||||||
|
SimulMoveAxes( 'B', -90, MCH_SIM_STEP.COLLROT, 'C', -90, MCH_SIM_STEP.COLLROT)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
-- movimento scarico utensile di grosso diametro (su T111)
|
-- movimento scarico utensile di grosso diametro (su T111)
|
||||||
else
|
else
|
||||||
@@ -590,18 +604,25 @@ function OnSimulToolDeselect()
|
|||||||
-- nascondo utensile su testa e lo visualizzo su TcPos
|
-- nascondo utensile su testa e lo visualizzo su TcPos
|
||||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||||
ShowToolInTcPos( EMT.TCPOS_1, true)
|
ShowToolInTcPos( EMT.TCPOS_1, true)
|
||||||
|
|
||||||
-- movimento per carico utensile
|
-- movimento per carico utensile
|
||||||
if EMT.NEXTHEAD ~= 'H3' and EMT.NEXTHEAD ~= 'H5' and EMT.NEXTHEAD ~= 'H6' then
|
if EMT.NEXTHEAD ~= 'H3' and EMT.NEXTHEAD ~= 'H5' and EMT.NEXTHEAD ~= 'H6' then
|
||||||
SimulMoveAxes( 'B', 90, MCH_SIM_STEP.RAPROT, 'C', EgtIf( BD.RIGHT_LOAD, 90, -90), MCH_SIM_STEP.RAPROT)
|
SimulMoveAxes( 'B', EgtIf( GetTCSet( EMT.TCPOS) == 1, 90, -90), MCH_SIM_STEP.RAPROT, 'C', EgtIf( BD.RIGHT_LOAD, 90, -90), MCH_SIM_STEP.RAPROT)
|
||||||
else
|
else
|
||||||
SimulMoveAxes( 'B', 0, MCH_SIM_STEP.RAPROT, 'C', EgtIf( BD.RIGHT_LOAD, 90, -90), MCH_SIM_STEP.RAPROT)
|
SimulMoveAxes( 'B', 0, MCH_SIM_STEP.RAPROT, 'C', EgtIf( BD.RIGHT_LOAD, 90, -90), MCH_SIM_STEP.RAPROT)
|
||||||
end
|
end
|
||||||
-- se segue lama, carico utensile di default
|
-- se segue lama, carico utensile di default
|
||||||
if EMT.NEXTHEAD == 'H2' then
|
if EMT.NEXTHEAD == 'H2' then
|
||||||
local sDefTool = GetDefaultToolName()
|
local sDefTool = GetDefaultToolName()
|
||||||
EgtLoadTool( 'H1', 1, sDefTool)
|
|
||||||
EMT.TOOL_1 = sDefTool
|
EMT.TOOL_1 = sDefTool
|
||||||
EMT.TCPOS_1 = GetToolTcPos( EMT.TOOL_1)
|
EMT.TCPOS_1 = GetToolTcPos( EMT.TOOL_1)
|
||||||
|
-- se TC 1
|
||||||
|
if GetTCSet( EMT.TCPOS_1) == 1 then
|
||||||
|
EgtSetAxisPos( 'B', 90)
|
||||||
|
else
|
||||||
|
EgtSetAxisPos( 'B', -90)
|
||||||
|
end
|
||||||
|
EgtLoadTool( 'H1', 1, sDefTool)
|
||||||
-- lo nascondo sul portautensili
|
-- lo nascondo sul portautensili
|
||||||
ShowToolInTcPos( EMT.TCPOS_1, false)
|
ShowToolInTcPos( EMT.TCPOS_1, false)
|
||||||
end
|
end
|
||||||
@@ -768,7 +789,6 @@ function OnSimulMoveStart()
|
|||||||
EgtOutText( '')
|
EgtOutText( '')
|
||||||
EMT.MCHFIRST = false
|
EMT.MCHFIRST = false
|
||||||
local bZmax = ( EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
local bZmax = ( EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||||
|
|
||||||
-- con pezzi alti aggiorno gli assi rotanti prima di muovermi sopra il pezzo
|
-- con pezzi alti aggiorno gli assi rotanti prima di muovermi sopra il pezzo
|
||||||
if not EMT.LOAD and EMT.MOVE == 0 and EMT.HB > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
if not EMT.LOAD and EMT.MOVE == 0 and EMT.HB > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
||||||
-- se motosega mi muovo a X di sicurezza per ruotare
|
-- se motosega mi muovo a X di sicurezza per ruotare
|
||||||
@@ -778,20 +798,59 @@ function OnSimulMoveStart()
|
|||||||
end
|
end
|
||||||
EMT.POSTROT = nil
|
EMT.POSTROT = nil
|
||||||
end
|
end
|
||||||
|
-- se aggregato flottante su inizio attacco va compresso
|
||||||
|
if EMT.TFLOAT and not EMT.TFLOAT_CMP and EMT.MOVE == 1 and EgtGetName( EMT.MOVEID) == 'LI' then
|
||||||
|
-- recupero lunghezza
|
||||||
|
local dOffsL = - EgtGetMachiningParam( MCH_MP.OFFSL)
|
||||||
|
-- imposto compressione della parte flottante
|
||||||
|
SetFloatPos( EMT.HEAD, dOffsL)
|
||||||
|
-- imposto dati utensile in posizione compressa
|
||||||
|
EmtSetToolForVmill( EMT.TOOL, EMT.HEAD, EMT.EXIT, EMT.VMILL, 2, -dOffsL)
|
||||||
|
-- dichiaro che è compresso (assegnando Id entità di movimento)
|
||||||
|
EMT.TFLOAT_CMP = EMT.MOVEID
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function OnSimulMoveEnd()
|
function OnSimulMoveEnd()
|
||||||
|
-- se termine di passata con lama
|
||||||
if EMT.FLAG == 301 then
|
if EMT.FLAG == 301 then
|
||||||
-- rimozione eventuali sfridi
|
-- rimozione eventuali sfridi
|
||||||
ExecRemoveScraps()
|
ExecRemoveScraps()
|
||||||
end
|
end
|
||||||
|
-- se utensile flottante e movimento di compressione
|
||||||
|
if EMT.TFLOAT and EMT.MOVEID == EMT.TFLOAT_CMP then
|
||||||
|
-- verifico ci sia stata collisione tra ghiera flottante (portautensile e pezzo)
|
||||||
|
if not EMT.TFLOAT_TH_COMPR_COLL then
|
||||||
|
local sErr = 'CUTID='..tostring( EMT.CUTID)..'; TASKID='..tostring( EMT.TASKID)..'; Mach='..EMT.MCHNAME..'; Floating Ring not compressed on approach'
|
||||||
|
EmtSetLastError( 1222, sErr)
|
||||||
|
EgtOutLog( 'Error : ' .. sErr, 1)
|
||||||
|
else
|
||||||
|
EgtOutLog( 'Floating Ring compressed on approach (MOVEID='..EgtNumToString( EMT.MOVEID)..')', 1)
|
||||||
|
end
|
||||||
|
EMT.TFLOAT_TH_COMPR_COLL = nil
|
||||||
|
end
|
||||||
|
-- se aggregato flottante su fine uscita va rilasciato
|
||||||
|
if EMT.TFLOAT and EMT.TFLOAT_CMP and EMT.MOVE == 1 and EgtGetName( EMT.MOVEID) == 'LO' and EgtGetName( EgtGetNext( EMT.MOVEID) or GDB_ID.NULL) ~= 'LO' then
|
||||||
|
-- reset compressione della parte flottante
|
||||||
|
SetFloatPos( EMT.HEAD, 0)
|
||||||
|
-- dichiaro che è rilasciato
|
||||||
|
EMT.TFLOAT_CMP = nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function OnSimulCollision()
|
function OnSimulCollision()
|
||||||
-- se prima collisione della lavorazione, la segnalo
|
-- se prima collisione della lavorazione, la segnalo
|
||||||
if EMT.MCHNAME ~= EMT.LAST_MCHNAME_COLLIDE then
|
if EMT.MCHNAME ~= EMT.LAST_MCHNAME_COLLIDE then
|
||||||
|
-- speciale per utensile flottante (suo holder contro il grezzo)
|
||||||
|
if EMT.TFLOAT and EMT.TFLOAT_CMP and EMT.SIMCOBIND == 1002 and EMT.SIMVMID == EMT.VMILL[1] then
|
||||||
|
if EMT.MOVEID == EMT.TFLOAT_CMP then
|
||||||
|
EMT.TFLOAT_TH_COMPR_COLL = true
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
-- standard
|
||||||
local Class = ''
|
local Class = ''
|
||||||
if EMT.SIMCOBIND == 1001 then
|
if EMT.SIMCOBIND == 1001 then
|
||||||
Class = 'T_H1'
|
Class = 'T_H1'
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ EgtEnableDebug( false)
|
|||||||
-- carico librerie
|
-- carico librerie
|
||||||
local BD = require( 'BeamData')
|
local BD = require( 'BeamData')
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- *** Generic Machinings ***
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
pcall( require, 'EmtGenMachining') -- si fa una require con PCALL perchè la libreria è opzionale
|
||||||
|
|
||||||
|
|
||||||
---------------------- OnSpecialMoveZup -----------------------------
|
---------------------- OnSpecialMoveZup -----------------------------
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function OnSpecialMoveZup()
|
function OnSpecialMoveZup()
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ SurfFinishing=1
|
|||||||
[5AxMilling]
|
[5AxMilling]
|
||||||
5AxScript1=5AxProject
|
5AxScript1=5AxProject
|
||||||
5AxScript2=5AxPocketProject
|
5AxScript2=5AxPocketProject
|
||||||
|
5AxScript3=5AxCylProject
|
||||||
|
|
||||||
[Machining]
|
[Machining]
|
||||||
InitScript=InitMach.lua
|
InitScript=InitMach.lua
|
||||||
|
|||||||
+194
-71
@@ -24,8 +24,8 @@
|
|||||||
require( 'EmtGenerator')
|
require( 'EmtGenerator')
|
||||||
EgtEnableDebug( false)
|
EgtEnableDebug( false)
|
||||||
|
|
||||||
PP_VER = '2.7a3_DEV1'
|
PP_VER = '2.7d1'
|
||||||
PP_NVER = '2.7.1.3'
|
PP_NVER = '2.7.4.1'
|
||||||
MIN_MACH_VER = '2.5k1'
|
MIN_MACH_VER = '2.5k1'
|
||||||
MACH_NAME = 'Essetre-FAST'
|
MACH_NAME = 'Essetre-FAST'
|
||||||
|
|
||||||
@@ -90,6 +90,7 @@ BeamHeightForFixRot = 9999 -- per abilitare assegnare 500
|
|||||||
NewTopC = true
|
NewTopC = true
|
||||||
SafeXRotAxes = 150
|
SafeXRotAxes = 150
|
||||||
AggreBlockHaus = false
|
AggreBlockHaus = false
|
||||||
|
SecondToolChanger = false
|
||||||
EstimationRapidMultiplier = 1
|
EstimationRapidMultiplier = 1
|
||||||
|
|
||||||
-- leggo e aggiorno con parametri da BeamData
|
-- leggo e aggiorno con parametri da BeamData
|
||||||
@@ -159,12 +160,17 @@ if EgtExistsFile( sData) then
|
|||||||
if Machine.Offsets.MIN_JOIN_LL then MinJoinLL = Machine.Offsets.MIN_JOIN_LL end
|
if Machine.Offsets.MIN_JOIN_LL then MinJoinLL = Machine.Offsets.MIN_JOIN_LL end
|
||||||
if Machine.Offsets.NEWTOPC then NewTopC = ( Machine.Offsets.NEWTOPC == 1) end
|
if Machine.Offsets.NEWTOPC then NewTopC = ( Machine.Offsets.NEWTOPC == 1) end
|
||||||
if Machine.Offsets.AGGRE_BH then AggreBlockHaus = ( Machine.Offsets.AGGRE_BH == 1) end
|
if Machine.Offsets.AGGRE_BH then AggreBlockHaus = ( Machine.Offsets.AGGRE_BH == 1) end
|
||||||
|
if Machine.Offsets.SEC_TC then SecondToolChanger = ( Machine.Offsets.SEC_TC == 1) end
|
||||||
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
|
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if SpecialBH then SecondSupport = 0 end
|
if SpecialBH then SecondSupport = 0 end
|
||||||
|
|
||||||
|
-- compongo i gruppi appartenenti alla base
|
||||||
|
local sBaseAux = {'BASE/SOLID', 'BASE/TC', 'BASE/SIGN', 'BASE/COLLISION'}
|
||||||
|
if SecondToolChanger then table.insert( sBaseAux, 5, 'BASE/TC2') end
|
||||||
|
|
||||||
EmtGeneral {
|
EmtGeneral {
|
||||||
File='Essetre-FAST.nge',
|
File='Essetre-FAST.nge',
|
||||||
Offset = Vector3d( 0, 1150.16, -1500.0),
|
Offset = Vector3d( 0, 1150.16, -1500.0),
|
||||||
@@ -178,7 +184,8 @@ EmtGeneral {
|
|||||||
local BaseId = EmtBase {
|
local BaseId = EmtBase {
|
||||||
Name = 'Base',
|
Name = 'Base',
|
||||||
Geo='BASE/GEO',
|
Geo='BASE/GEO',
|
||||||
Aux={'BASE/SOLID', 'BASE/TC', 'BASE/SIGN', 'BASE/COLLISION'}}
|
Aux = sBaseAux}
|
||||||
|
|
||||||
local XId = EmtAxis {
|
local XId = EmtAxis {
|
||||||
Name = 'X',
|
Name = 'X',
|
||||||
Parent = 'Base',
|
Parent = 'Base',
|
||||||
@@ -338,6 +345,7 @@ if AggreBlockHaus then
|
|||||||
Geo = 'H7_HEAD/GEO',
|
Geo = 'H7_HEAD/GEO',
|
||||||
Aux = {'H7_HEAD/SOLID', 'H7_HEAD/COLLISION'}}
|
Aux = {'H7_HEAD/SOLID', 'H7_HEAD/COLLISION'}}
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Morse
|
-- Morse
|
||||||
local YId = EmtAxis {
|
local YId = EmtAxis {
|
||||||
Name = 'Y',
|
Name = 'Y',
|
||||||
@@ -468,22 +476,83 @@ EmtTcPos {
|
|||||||
TDir = -X_AX(),
|
TDir = -X_AX(),
|
||||||
ADir = -Y_AX(),
|
ADir = -Y_AX(),
|
||||||
Geo = 'BASE/T10'}
|
Geo = 'BASE/T10'}
|
||||||
EmtTcPos {
|
if AggreBlockHaus then
|
||||||
Name = 'T11',
|
local TcpSsId = EmtTcPos {
|
||||||
Parent = 'Base',
|
Name = 'T11',
|
||||||
Pos = Point3d( 523.8, 88.0, -877.5),
|
|
||||||
TDir = -X_AX(),
|
|
||||||
ADir = -Y_AX(),
|
|
||||||
Geo = 'BASE/T11'}
|
|
||||||
if not SpecialBH then
|
|
||||||
EmtTcPos {
|
|
||||||
Name = 'T101',
|
|
||||||
Parent = 'Base',
|
Parent = 'Base',
|
||||||
Pos = Point3d( -510.4, 113.2, -160.8),
|
Pos = Point3d( 678.3, -1.963, -877.5),
|
||||||
TDir = X_AX(),
|
TDir = Y_AX(),
|
||||||
ADir = Z_AX(),
|
ADir = -X_AX(),
|
||||||
Geo = 'BASE/T101'}
|
Geo = 'BASE/T121',
|
||||||
|
Aux = 'BASE/T121_HS'}
|
||||||
else
|
else
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T11',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( 523.8, 88.0, -877.5),
|
||||||
|
TDir = -X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T11'}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- ToolChanger 2
|
||||||
|
if SecondToolChanger then
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T21',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, 172.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T21'}
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T22',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, 67.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T22'}
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T23',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, -37.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T23'}
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T24',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, -142.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T24'}
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T25',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, -247.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T25'}
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T26',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, -352.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T26'}
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T27',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, -457.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T27'}
|
||||||
|
EmtTcPos {
|
||||||
|
Name = 'T28',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -503.2, 88.0, -562.5),
|
||||||
|
TDir = X_AX(),
|
||||||
|
ADir = -Y_AX(),
|
||||||
|
Geo = 'BASE/T28'}
|
||||||
EmtTcPos {
|
EmtTcPos {
|
||||||
Name = 'T101',
|
Name = 'T101',
|
||||||
Parent = 'Base',
|
Parent = 'Base',
|
||||||
@@ -491,59 +560,66 @@ else
|
|||||||
TDir = X_AX(),
|
TDir = X_AX(),
|
||||||
ADir = Z_AX(),
|
ADir = Z_AX(),
|
||||||
Geo = 'BASE/T101S'}
|
Geo = 'BASE/T101S'}
|
||||||
end
|
else
|
||||||
if SecondSupport == 1 then
|
if not SpecialBH then
|
||||||
-- supporto per punta
|
EmtTcPos {
|
||||||
EmtTcPos {
|
Name = 'T101',
|
||||||
Name = 'T111',
|
Parent = 'Base',
|
||||||
Parent = 'Base',
|
Pos = Point3d( -510.4, 113.2, -160.8),
|
||||||
Pos = Point3d( -510.4, 113.2, -329.8),
|
TDir = X_AX(),
|
||||||
TDir = Z_AX(),
|
ADir = Z_AX(),
|
||||||
ADir = X_AX(),
|
Geo = 'BASE/T101'}
|
||||||
Geo = 'BASE/T111'}
|
else
|
||||||
elseif SecondSupport == 2 then
|
EmtTcPos {
|
||||||
-- supporto per mortasatrice
|
Name = 'T101',
|
||||||
local TcpSsId = EmtTcPos {
|
Parent = 'Base',
|
||||||
Name = 'T111',
|
Pos = Point3d( -510.4, 113.2, -1160.8),
|
||||||
Parent = 'Base',
|
TDir = X_AX(),
|
||||||
Pos = Point3d( -510.4, 113.2, -430.8),
|
ADir = Z_AX(),
|
||||||
TDir = X_AX(),
|
Geo = 'BASE/T101S'}
|
||||||
ADir = Z_AX(),
|
end
|
||||||
Geo = 'BASE/T111M'}
|
if SecondSupport == 1 then
|
||||||
EgtSetInfo( TcpSsId, 'Mortiser', true)
|
-- supporto per punta
|
||||||
elseif SecondSupport == 3 then
|
EmtTcPos {
|
||||||
-- supporto per rinvio angolare
|
Name = 'T111',
|
||||||
local TcpSsId = EmtTcPos {
|
Parent = 'Base',
|
||||||
Name = 'T91',
|
Pos = Point3d( -510.4, 113.2, -329.8),
|
||||||
Parent = 'Base',
|
TDir = Z_AX(),
|
||||||
ExitNbr = 2,
|
ADir = X_AX(),
|
||||||
Pos1 = Point3d( -710.4-150, 113.2, -329.8-170),
|
Geo = 'BASE/T111'}
|
||||||
TDir1 = X_AX(),
|
elseif SecondSupport == 2 then
|
||||||
Pos2 = Point3d( -710.4+150, 113.2, -329.8-170),
|
-- supporto per mortasatrice
|
||||||
TDir2 = -X_AX(),
|
local TcpSsId = EmtTcPos {
|
||||||
ADir = Z_AX(),
|
Name = 'T111',
|
||||||
Geo = 'BASE/T91',
|
Parent = 'Base',
|
||||||
Aux = 'BASE/T91_HS'}
|
Pos = Point3d( -510.4, 113.2, -430.8),
|
||||||
end
|
TDir = X_AX(),
|
||||||
if SpecialBH then
|
ADir = Z_AX(),
|
||||||
EmtTcPos {
|
Geo = 'BASE/T111M'}
|
||||||
Name = 'T111',
|
EgtSetInfo( TcpSsId, 'Mortiser', true)
|
||||||
Parent = 'Base',
|
elseif SecondSupport == 3 then
|
||||||
Pos = Point3d( -810.4, 113.2, -329.8),
|
-- supporto per rinvio angolare
|
||||||
TDir = Y_AX(),
|
local TcpSsId = EmtTcPos {
|
||||||
ADir = X_AX(),
|
Name = 'T91',
|
||||||
Geo = 'BASE/T111S'}
|
Parent = 'Base',
|
||||||
end
|
ExitNbr = 2,
|
||||||
|
Pos1 = Point3d( -710.4-150, 113.2, -329.8-170),
|
||||||
if AggreBlockHaus then
|
TDir1 = X_AX(),
|
||||||
local TcpSsId = EmtTcPos {
|
Pos2 = Point3d( -710.4+150, 113.2, -329.8-170),
|
||||||
Name = 'T121',
|
TDir2 = -X_AX(),
|
||||||
Parent = 'Base',
|
ADir = Z_AX(),
|
||||||
Pos = Point3d( 678.3, -1.963, -877.5),
|
Geo = 'BASE/T91',
|
||||||
TDir = Y_AX(),
|
Aux = 'BASE/T91_HS'}
|
||||||
ADir = -X_AX(),
|
end
|
||||||
Geo = 'BASE/T121',
|
if SpecialBH then
|
||||||
Aux = 'BASE/T121_HS'}
|
EmtTcPos {
|
||||||
|
Name = 'T111',
|
||||||
|
Parent = 'Base',
|
||||||
|
Pos = Point3d( -810.4, 113.2, -329.8),
|
||||||
|
TDir = Y_AX(),
|
||||||
|
ADir = X_AX(),
|
||||||
|
Geo = 'BASE/T111S'}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Aggiusto posizioni geometriche
|
-- Aggiusto posizioni geometriche
|
||||||
@@ -596,7 +672,7 @@ end
|
|||||||
-- Funzione per impostare spia stato morsa carrello Y
|
-- Funzione per impostare spia stato morsa carrello Y
|
||||||
function SetPYLight( bClosed)
|
function SetPYLight( bClosed)
|
||||||
if not PYLightId then return end
|
if not PYLightId then return end
|
||||||
EgtSetColor( PYLightId, EgtIf( bClosed, 'RED', 'LIME'))
|
EgtSetColor( PYLightId, EgtIf( bClosed, 'RED', 'LIME'))
|
||||||
if bClosed then
|
if bClosed then
|
||||||
EgtSetInfo( PYLightId, 'On', '1')
|
EgtSetInfo( PYLightId, 'On', '1')
|
||||||
else
|
else
|
||||||
@@ -630,6 +706,52 @@ function GetPVLight()
|
|||||||
return ( EgtGetInfo( PVLightId, 'On') == '1')
|
return ( EgtGetInfo( PVLightId, 'On') == '1')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
---------------------------- Cambio Utensile ------------------------
|
||||||
|
function GetTCSet( sTcPos)
|
||||||
|
-- TC 1
|
||||||
|
if sTcPos == 'T1' or sTcPos == 'T2' or sTcPos == 'T3' or sTcPos == 'T4' or sTcPos == 'T5' or
|
||||||
|
sTcPos == 'T6' or sTcPos == 'T7' or sTcPos == 'T8' or sTcPos == 'T9' or sTcPos == 'T10' or sTcPos == 'T11' then
|
||||||
|
return 1
|
||||||
|
-- TC 2
|
||||||
|
elseif sTcPos == 'T21' or sTcPos == 'T22' or sTcPos == 'T23' or sTcPos == 'T24' or
|
||||||
|
sTcPos == 'T25' or sTcPos == 'T26' or sTcPos == 'T27' or sTcPos == 'T28' then
|
||||||
|
return 2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- Funzione per impostare la posizione del rinvio flottante
|
||||||
|
function SetFloatPos( sHead, dPos)
|
||||||
|
-- recupero Id testa
|
||||||
|
local nHeadId = EgtGetHeadId( sHead)
|
||||||
|
if not nHeadId then return false end
|
||||||
|
-- se ci sono entità flottanti nel ToolHolder
|
||||||
|
local nRefId = EgtGetFirstNameInGroup( nHeadId, '_T1')
|
||||||
|
local vtTool = EgtFR( nRefId, GDB_ID.ROOT):getVersZ()
|
||||||
|
local nObjId = EgtGetFirstGroupInGroup( EgtGetFirstNameInGroup( nHeadId, 'T1'))
|
||||||
|
local FloatEntities = EgtGetInfoInGroup( nObjId, 'Float')
|
||||||
|
if FloatEntities and #FloatEntities > 0 then
|
||||||
|
-- il porta-utensile flottante non può comprimersi più di 10mm
|
||||||
|
if dPos > 10 then
|
||||||
|
local sErr = 'Floating Ring compressed more than 10mm'
|
||||||
|
EmtSetLastError( 1222, sErr)
|
||||||
|
EgtOutLog( 'Error : ' .. sErr, 1)
|
||||||
|
end
|
||||||
|
local dFloat = EgtGetInfo( FloatEntities[1], 'Float', 'd')
|
||||||
|
if abs( dPos - dFloat) > 10 * GEO.EPS_SMALL then
|
||||||
|
local vtMove = ( dPos - dFloat) * vtTool
|
||||||
|
-- sposto tutte le entità flottanti
|
||||||
|
for i = 1, #FloatEntities do
|
||||||
|
EgtMove( FloatEntities[i], vtMove, GDB_RT.GLOB)
|
||||||
|
EgtSetInfo( FloatEntities[i], 'Float', dPos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Funzione per resettare tutte le attivazioni della macchina
|
-- Funzione per resettare tutte le attivazioni della macchina
|
||||||
function OnResetMachine()
|
function OnResetMachine()
|
||||||
@@ -637,6 +759,7 @@ function OnResetMachine()
|
|||||||
EmtUnlinkAllFixturesFromGroups()
|
EmtUnlinkAllFixturesFromGroups()
|
||||||
SetPYLight( false)
|
SetPYLight( false)
|
||||||
SetPVLight( false)
|
SetPVLight( false)
|
||||||
|
SetFloatPos( 'H1', 0)
|
||||||
-- nascondo Vmill
|
-- nascondo Vmill
|
||||||
local nRawId = EgtGetFirstRawPart()
|
local nRawId = EgtGetFirstRawPart()
|
||||||
while nRawId do
|
while nRawId do
|
||||||
|
|||||||
Binary file not shown.
+24
-14
@@ -7,27 +7,34 @@
|
|||||||
[Sawing]
|
[Sawing]
|
||||||
|
|
||||||
[Milling]
|
[Milling]
|
||||||
0=d,MaxElev,0
|
0=l,MaxElev,0
|
||||||
1=d,OutRaw,0
|
1=d,OutRaw,0
|
||||||
2=d,SideElev,0
|
2=l,SideElev,0
|
||||||
3=d,TrimExt,0
|
3=d,TrimExt,0
|
||||||
4=sr,VtFaceUse,0,0,0
|
4=s,VtFaceUse,0,0,0
|
||||||
|
5=s,EdgesFaceUse,0
|
||||||
|
|
||||||
[Pocketing]
|
[Pocketing]
|
||||||
0=d,MaxElev,0
|
0=l,MaxElev,0
|
||||||
1=b,Open,0
|
1=b,Open,0
|
||||||
2=d,OpenMinSave,0
|
2=d,OpenMinSafe,0
|
||||||
3=d,OpenOutRaw,0
|
3=d,OpenOutRaw,0
|
||||||
4=d,MaxOptSize,0
|
4=l,MaxOptSize,0
|
||||||
|
|
||||||
[Mortising]
|
[Mortising]
|
||||||
0=d,MaxElev,0
|
0=d,MaxElev,0
|
||||||
|
|
||||||
[Chiseling]
|
[Chiseling]
|
||||||
|
|
||||||
|
[SawRoughing]
|
||||||
|
|
||||||
|
[SawFinishing]
|
||||||
|
|
||||||
[GenMachining]
|
[GenMachining]
|
||||||
|
|
||||||
[SurfRoughing]
|
[SurfRoughing]
|
||||||
|
0=l,MaxElev,1000
|
||||||
|
1=b,PlaneZ,0
|
||||||
|
|
||||||
[SurfFinishing]
|
[SurfFinishing]
|
||||||
0=b,SkipMaxDown,1
|
0=b,SkipMaxDown,1
|
||||||
@@ -38,11 +45,14 @@
|
|||||||
2=s,Type,ZigZag
|
2=s,Type,ZigZag
|
||||||
3=d,SideAng,90
|
3=d,SideAng,90
|
||||||
4=l,Step,10
|
4=l,Step,10
|
||||||
5=l,OffsProj,0
|
5=d,AngIni,-90
|
||||||
6=l,LiTang,0
|
6=d,AngFin,90
|
||||||
7=l,LiOrth,0
|
7=l,LiTang,0
|
||||||
8=l,LiElev,0
|
8=l,LiOrth,0
|
||||||
9=l,LoTang,0
|
9=l,LiElev,0
|
||||||
10=l,LoOrth,0
|
10=l,LoTang,0
|
||||||
11=l,LoElev,0
|
11=l,LoOrth,0
|
||||||
12=b,DirFromGuide,1
|
12=l,LoElev,0
|
||||||
|
13=b,DirFromGuide,0
|
||||||
|
14=b,SurfAvoid,0
|
||||||
|
|
||||||
|
|||||||
+27
-15
@@ -24,9 +24,7 @@ local INVALIDPOS = ""
|
|||||||
local POS = "Pos"
|
local POS = "Pos"
|
||||||
|
|
||||||
-- Geom Set
|
-- Geom Set
|
||||||
local GS = {}
|
local GS = {{"H1", "H7"}}
|
||||||
|
|
||||||
local bAggreBlockHaus = ( EgtGetHeadId( 'H7') ~= nil)
|
|
||||||
|
|
||||||
-- Configurazione posizioni
|
-- Configurazione posizioni
|
||||||
local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H1", Group = "G1"},
|
local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H1", Group = "G1"},
|
||||||
@@ -39,23 +37,37 @@ local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H1", Group = "G1"},
|
|||||||
{Pos = "Pos8", TcPos = "T8", Head = "H1", Group = "G1"},
|
{Pos = "Pos8", TcPos = "T8", Head = "H1", Group = "G1"},
|
||||||
{Pos = "Pos9", TcPos = "T9", Head = "H1", Group = "G1"},
|
{Pos = "Pos9", TcPos = "T9", Head = "H1", Group = "G1"},
|
||||||
{Pos = "Pos10", TcPos = "T10", Head = "H1", Group = "G1"},
|
{Pos = "Pos10", TcPos = "T10", Head = "H1", Group = "G1"},
|
||||||
{Pos = "Pos11", TcPos = EgtIf( bAggreBlockHaus, "T121", "T11"), Head = EgtIf( bAggreBlockHaus, "H7", "H1"), Group = "G1"},
|
{Pos = "Pos11", TcPos = "T11", Head = "H1", Group = "G1"},
|
||||||
{Pos = "Pos12", TcPos = "T42", Head = "H2", Group = "G1"},
|
{Pos = "Pos12", TcPos = "T42", Head = "H2", Group = "G1"},
|
||||||
{Pos = "Pos13", TcPos = "T101", Head = "H3", Group = "G2"}}
|
{Pos = "Pos13", TcPos = "T101", Head = "H3", Group = "G2"}}
|
||||||
local SecSuppId = EgtGetTcPosId( 'T111')
|
|
||||||
if SecSuppId then
|
local IsTC2Active = ( EgtGetFirstNameInGroup( EgtGetBaseId( 'Base'), 'TC2') ~= nil)
|
||||||
local bMortiser = EgtGetInfo( SecSuppId, 'Mortiser', 'b')
|
if IsTC2Active then
|
||||||
if bMortiser then
|
local PositionTableTC2={{Pos = "Pos14", TcPos = "T21", Head = "H1", Group = "G3"},
|
||||||
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H3", Group = "G2"})
|
{Pos = "Pos15", TcPos = "T22", Head = "H1", Group = "G3"},
|
||||||
else
|
{Pos = "Pos16", TcPos = "T23", Head = "H1", Group = "G3"},
|
||||||
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H1", Group = "G2"})
|
{Pos = "Pos17", TcPos = "T24", Head = "H1", Group = "G3"},
|
||||||
|
{Pos = "Pos18", TcPos = "T25", Head = "H1", Group = "G3"},
|
||||||
|
{Pos = "Pos19", TcPos = "T26", Head = "H1", Group = "G3"},
|
||||||
|
{Pos = "Pos20", TcPos = "T27", Head = "H1", Group = "G3"},
|
||||||
|
{Pos = "Pos21", TcPos = "T28", Head = "H1", Group = "G3"}}
|
||||||
|
EgtJoinTables( PositionTable, PositionTableTC2)
|
||||||
|
else
|
||||||
|
local SecSuppId = EgtGetTcPosId( 'T111')
|
||||||
|
if SecSuppId then
|
||||||
|
local bMortiser = EgtGetInfo( SecSuppId, 'Mortiser', 'b')
|
||||||
|
if bMortiser then
|
||||||
|
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H3", Group = "G2"})
|
||||||
|
else
|
||||||
|
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H1", Group = "G2"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if EgtGetHeadId( 'H5') then
|
||||||
|
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T91", Head = "H5", Group = "G2"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if EgtGetHeadId( 'H5') then
|
|
||||||
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T91", Head = "H5", Group = "G2"})
|
|
||||||
end
|
|
||||||
|
|
||||||
local UsePositionHead = true
|
local UsePositionHead = false
|
||||||
|
|
||||||
local function IsInGeomSet( ToolHead, PosHead)
|
local function IsInGeomSet( ToolHead, PosHead)
|
||||||
for GsIndex = 1, #GS do
|
for GsIndex = 1, #GS do
|
||||||
|
|||||||
Binary file not shown.
@@ -27,6 +27,7 @@
|
|||||||
2=d,SIDESTEP
|
2=d,SIDESTEP
|
||||||
3=d,SIDEDEPTH
|
3=d,SIDEDEPTH
|
||||||
4=s,DOUBLE
|
4=s,DOUBLE
|
||||||
|
5=dr,TOOL_OVERHANG
|
||||||
|
|
||||||
[MILL_NOTIP]
|
[MILL_NOTIP]
|
||||||
0=th,TH,
|
0=th,TH,
|
||||||
@@ -34,6 +35,7 @@
|
|||||||
2=d,SIDESTEP
|
2=d,SIDESTEP
|
||||||
3=d,SIDEDEPTH
|
3=d,SIDEDEPTH
|
||||||
4=s,DOUBLE
|
4=s,DOUBLE
|
||||||
|
5=dr,TOOL_OVERHANG
|
||||||
|
|
||||||
[MORTISE_STD]
|
[MORTISE_STD]
|
||||||
0=b,MORTISE
|
0=b,MORTISE
|
||||||
|
|||||||
+18
-3
@@ -1,13 +1,28 @@
|
|||||||
==== Common_FAST Update Log ====
|
==== Common_FAST Update Log ====
|
||||||
|
|
||||||
Versione 2.7a3 (08/01/2024)
|
Versione 2.7d1 (14/04/2025)
|
||||||
|
- (GEN) Corretto movimento iniziale in caso di motosega, si controlla solo se non è il carico. Ticket#2385
|
||||||
|
|
||||||
|
Versione 2.7c1 (26/03/2025)
|
||||||
|
- (GEN) All'inizio del codice ISO si scrive nel commento anche il controllo numerico utilizzato per la generazione.
|
||||||
|
- (GEN) Aggiunta commenti HEADER e FOOTER per comunicazione con linea o altre macchine, da parte di Essetre.
|
||||||
|
- (GEN) In MyAdjustLinearAxes si utilizza TDIR per calcolarsi gli offset per compatibilità con lavorazioni a 5 assi.
|
||||||
|
|
||||||
|
Versione 2.7b1 (20/02/2025)
|
||||||
|
- (SIM-GEN) Aggiunta possibilità di settare HCING/TCING nelle note di ogni singola lavorazione per gestire parte non pinzabile del pezzo. Funziona solo con nuovo pinzaggio.
|
||||||
|
- (SIM-GEN) Piccola correzione calcolo posizione carrelli con nuova strategia di pinzaggio.
|
||||||
|
- (SIM-GEN) Caricamento libreria EmtGenMachining. Si fa una require con PCALL perchè la libreria è opzionale e non è detto che ci sia. In installazione CAM5 dalla 2.7a1
|
||||||
|
- (GEN) Per controllo TPA, modifica al numero di decimali.
|
||||||
|
- (SIM) Aggiunta gestione per ToolHolder flottante
|
||||||
|
|
||||||
|
Versione 2.7a3 (08/01/2025)
|
||||||
- (GEN) Dopo separazione, in NUM_PLUS, si srive EH1 solo se macro G101, perchè altrimenti non è prevista. Ticket#2239
|
- (GEN) Dopo separazione, in NUM_PLUS, si srive EH1 solo se macro G101, perchè altrimenti non è prevista. Ticket#2239
|
||||||
|
|
||||||
Versione 2.7a2 (08/01/2024)
|
Versione 2.7a2 (08/01/2025)
|
||||||
- (MLDE-SIM) Aggiunta gestione FACOLTATIVA 'EstimationRapidMultiplier' in MLDE per regolare il tempo stimato. Se non presente in MLDE, default 1.
|
- (MLDE-SIM) Aggiunta gestione FACOLTATIVA 'EstimationRapidMultiplier' in MLDE per regolare il tempo stimato. Se non presente in MLDE, default 1.
|
||||||
- (SIM) Aggiunta gestione qualità VMILL da impostazioni macchina
|
- (SIM) Aggiunta gestione qualità VMILL da impostazioni macchina
|
||||||
|
|
||||||
Versione 2.7a1 (07/01/2024)
|
Versione 2.7a1 (07/01/2025)
|
||||||
- (MLDE-SIM-GEN) Nuovo aggregato 90° (H7) per fresa tipo BlockHaus. Ticket#2142
|
- (MLDE-SIM-GEN) Nuovo aggregato 90° (H7) per fresa tipo BlockHaus. Ticket#2142
|
||||||
- (SIM-GEN) Aumentati limiti massimi di pinzaggio minimo
|
- (SIM-GEN) Aumentati limiti massimi di pinzaggio minimo
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
local InfoCommon_STD_PP = {
|
local InfoCommon_STD_PP = {
|
||||||
NAME = 'Common_FAST', -- nome script PP standard
|
NAME = 'Common_FAST', -- nome script PP standard
|
||||||
VERSION = '2.7a3', -- versione script
|
VERSION = '2.7d1', -- versione script
|
||||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user