|
|
|
@@ -10,8 +10,8 @@
|
|
|
|
|
require( 'EmtGenerator')
|
|
|
|
|
EgtEnableDebug( false)
|
|
|
|
|
|
|
|
|
|
PP_VER = '2.7i2'
|
|
|
|
|
PP_NVER = '2.7.9.2'
|
|
|
|
|
PP_VER = '2.7i4'
|
|
|
|
|
PP_NVER = '2.7.9.4'
|
|
|
|
|
MIN_MACH_VER = '2.5k1'
|
|
|
|
|
MACH_NAME = string.match( EgtGetCurrMachineDir(), "[^\\]+$") -- si ricava il nome della macchina dal direttorio
|
|
|
|
|
|
|
|
|
@@ -76,9 +76,12 @@ BeamHeightForFixRot = 9999 -- per abilitare assegnare 500
|
|
|
|
|
NewTopC = true
|
|
|
|
|
SafeXRotAxes = -150
|
|
|
|
|
AggreBlockHaus = false
|
|
|
|
|
EstimationRapidMultiplier = 1
|
|
|
|
|
SecondToolChanger = false
|
|
|
|
|
EstimationRapidMultiplier = 1
|
|
|
|
|
|
|
|
|
|
-- costanti dimensioni utensili
|
|
|
|
|
LONG_TOOL_MINLEN = 221
|
|
|
|
|
BIG_TOOL_DIAM = 300
|
|
|
|
|
|
|
|
|
|
-- leggo e aggiorno con parametri da BeamData
|
|
|
|
|
if BD then
|
|
|
|
@@ -144,8 +147,9 @@ if EgtExistsFile( sData) then
|
|
|
|
|
if Machine.Offsets.MINACC then MinAcc = Machine.Offsets.MINACC 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.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI 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.MAX_HEIGHT_ROT_B_ABOVE then BeamHeightForFixRot = Machine.Offsets.MAX_HEIGHT_ROT_B_ABOVE end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@@ -634,24 +638,33 @@ PVLightId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( PVId, 'SOLID') or GD
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
function OnSetHead()
|
|
|
|
|
-- se testa lama
|
|
|
|
|
if EMC.HEAD == 'H2' then
|
|
|
|
|
EmtModifyAxisDirection( 'B', VectorFromRotated( X_AX(), Z_AX(), -SawCOffs))
|
|
|
|
|
EmtModifyAxisHome( 'C', 0)
|
|
|
|
|
-- se sega a catena
|
|
|
|
|
elseif EMC.HEAD == 'H3' then
|
|
|
|
|
EmtModifyAxisDirection( 'B', X_AX())
|
|
|
|
|
EmtModifyAxisHome( 'C', 180)
|
|
|
|
|
local dDist = EgtIf( EMC.DIST and abs( EMC.DIST) > 1, EMC.DIST, ChSawLen)
|
|
|
|
|
EmtModifyExitPosition( EMC.HEAD, EMC.EXIT, Point3d( 0, 0, -dDist))
|
|
|
|
|
if not EMC.VER or EMC.VER < '2.5h2' then
|
|
|
|
|
local vtMove = Point3d( 0, 0, -dDist) - Point3d( EMC.EXITPOS)
|
|
|
|
|
local ExitId = EgtGetFirstNameInGroup( EgtGetHeadId( EMC.HEAD), 'T'..tostring( EMC.EXIT))
|
|
|
|
|
EgtMove( ExitId, vtMove)
|
|
|
|
|
if EMC.HEAD == 'H1' then
|
|
|
|
|
if EMC.TOTLEN and EMC.TOTLEN < LONG_TOOL_MINLEN then
|
|
|
|
|
EmtModifyAxisStroke( 'B', {MinB, MaxB})
|
|
|
|
|
else
|
|
|
|
|
EmtModifyAxisStroke( 'B', {-140, 140})
|
|
|
|
|
end
|
|
|
|
|
-- altrimenti
|
|
|
|
|
else
|
|
|
|
|
EmtModifyAxisDirection( 'B', X_AX())
|
|
|
|
|
EmtModifyAxisHome( 'C', 0)
|
|
|
|
|
EmtModifyAxisStroke( 'B', {MinB, MaxB})
|
|
|
|
|
if EMC.HEAD == 'H2' then
|
|
|
|
|
EmtModifyAxisDirection( 'B', VectorFromRotated( X_AX(), Z_AX(), -SawCOffs))
|
|
|
|
|
EmtModifyAxisHome( 'C', 0)
|
|
|
|
|
-- se sega a catena
|
|
|
|
|
elseif EMC.HEAD == 'H3' then
|
|
|
|
|
EmtModifyAxisDirection( 'B', X_AX())
|
|
|
|
|
EmtModifyAxisHome( 'C', 180)
|
|
|
|
|
local dDist = EgtIf( EMC.DIST and abs( EMC.DIST) > 1, EMC.DIST, ChSawLen)
|
|
|
|
|
EmtModifyExitPosition( EMC.HEAD, EMC.EXIT, Point3d( 0, 0, -dDist))
|
|
|
|
|
if not EMC.VER or EMC.VER < '2.5h2' then
|
|
|
|
|
local vtMove = Point3d( 0, 0, -dDist) - Point3d( EMC.EXITPOS)
|
|
|
|
|
local ExitId = EgtGetFirstNameInGroup( EgtGetHeadId( EMC.HEAD), 'T'..tostring( EMC.EXIT))
|
|
|
|
|
EgtMove( ExitId, vtMove)
|
|
|
|
|
end
|
|
|
|
|
-- altrimenti
|
|
|
|
|
else
|
|
|
|
|
EmtModifyAxisDirection( 'B', X_AX())
|
|
|
|
|
EmtModifyAxisHome( 'C', 0)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@@ -713,13 +726,13 @@ 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
|
|
|
|
|
-- se ci sono entita' 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
|
|
|
|
|
-- il porta-utensile flottante non puo' comprimersi piu' di 10mm
|
|
|
|
|
if dPos > 10 then
|
|
|
|
|
local sErr = 'Floating Ring compressed more than 10mm'
|
|
|
|
|
EmtSetLastError( 1222, sErr)
|
|
|
|
@@ -728,7 +741,7 @@ function SetFloatPos( sHead, dPos)
|
|
|
|
|
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
|
|
|
|
|
-- sposto tutte le entita' flottanti
|
|
|
|
|
for i = 1, #FloatEntities do
|
|
|
|
|
EgtMove( FloatEntities[i], vtMove, GDB_RT.GLOB)
|
|
|
|
|
EgtSetInfo( FloatEntities[i], 'Float', dPos)
|
|
|
|
|