Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fc8b39d260 | |||
| 0563e0c8ca | |||
| 726f04fabd | |||
| 6423ccf1b7 |
@@ -639,11 +639,14 @@ function OnRapid()
|
||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||
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
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and (EMT.ST > BeamHeightForFixRot or bGoToHome) and EMT.FLAG2 == 1 then
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.FLAG2 == 1 then
|
||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||
' B' .. EmtLenToString( EMT.R2pp, 3) .. ' C' .. EmtLenToString( EMT.R1pp, 3) ..
|
||||
' EE' .. EgtIf( bZmax, '3', '4') .. EMT.PREVsEL .. EMT.PREVsER .. EMT.PREVsET .. EMT.PREVsES
|
||||
EmtOutput( sOutPreMove)
|
||||
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1pp, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||
EmtOutput( sOutPreMove)
|
||||
EmtOutput( 'G101 ET1001')
|
||||
EmtOutput( 'G101 ET2001')
|
||||
end
|
||||
|
||||
@@ -688,11 +688,14 @@ function OnRapid()
|
||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||
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
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and ( EMT.ST > BeamHeightForFixRot or bGoToHome) and EMT.FLAG2 == 1 then
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.FLAG2 == 1 then
|
||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||
' B' .. EmtLenToString( EMT.R2pp, 3) .. ' C' .. EmtLenToString( EMT.R1pp, 3) ..
|
||||
' EE' .. EgtIf( bZmax, '3', '4') .. EMT.PREVsEL .. EMT.PREVsER .. EMT.PREVsET .. EMT.PREVsES
|
||||
EmtOutput( sOutPreMove)
|
||||
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||
EmtOutput( sOutPreMove)
|
||||
EmtOutput( 'G101 ET1001')
|
||||
EmtOutput( 'G101 ET2001')
|
||||
end
|
||||
|
||||
@@ -669,12 +669,17 @@ function OnRapid()
|
||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||
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
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and ( EMT.ST > BeamHeightForFixRot or bGoToHome) and EMT.FLAG2 == 1 then
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.FLAG2 == 1 then
|
||||
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
||||
' P4=' .. EgtNumToString( EMT.R2pp, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1pp, EMT.DECMACRO) ..
|
||||
' P6=' .. EgtNumToString( EMT.PREVTCPOS, EMT.DECMACRO) .. ' P7=' .. EgtNumToString( EMT.PREVS, 0) ..
|
||||
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
||||
EmtOutput( sOutPreMove)
|
||||
sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
||||
' P4=' .. EgtNumToString( 0, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1pp, EMT.DECMACRO) ..
|
||||
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
||||
EmtOutput( sOutPreMove)
|
||||
EmtOutput( 'M101 P1=2')
|
||||
EmtOutput( 'M101 P1=3')
|
||||
end
|
||||
|
||||
+6
-9
@@ -7,9 +7,6 @@ EgtEnableDebug( false)
|
||||
-- carico librerie
|
||||
local BD = require( 'BeamData')
|
||||
|
||||
LONG_TOOL_MINLEN = 221
|
||||
BIG_TOOL_DIAM = 300
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** GENERATION ***
|
||||
---------------------------------------------------------------------
|
||||
@@ -558,9 +555,9 @@ function OnSimulToolDeselect()
|
||||
-- movimento scarico sega a catena
|
||||
if EMT.HEAD == 'H3' then
|
||||
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
||||
if EMT.HT > BeamHeightForFixRot then
|
||||
SimulMoveAxis( 'X', SafeXRotAxes, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
SimulMoveAxis( 'X', SafeXRotAxes, MCH_SIM_STEP.RAPID)
|
||||
-- raddrizzo asse B prima di ruotare il C
|
||||
SimulMoveAxis( 'B', 0, MCH_SIM_STEP.COLLROT)
|
||||
local dPosA = EgtGetAxisPos( 'A')
|
||||
if abs( dPosA) < 0.1 then
|
||||
SimulMoveAxes( 'B', 0, MCH_SIM_STEP.COLLROT, 'C', EgtIf( BD.RIGHT_LOAD, -180, 0), MCH_SIM_STEP.COLLROT)
|
||||
@@ -805,14 +802,14 @@ function OnSimulMoveStart()
|
||||
EMT.MCHFIRST = false
|
||||
local bZmax = ( EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||
-- con pezzi alti aggiorno gli assi rotanti prima di muovermi sopra il pezzo
|
||||
if not EMT.LOAD and EMT.MOVE == 0 and ( EMT.HT > BeamHeightForFixRot or ( EMT.HEAD == 'H1' and EMT.TOTLEN > 350) or bGoToHome) and EMT.FLAG2 == 1 then
|
||||
if not EMT.LOAD and EMT.MOVE == 0 and ( EMT.HEAD == 'H3' or ( EMT.HEAD == 'H1' and EMT.TOTLEN > 350) or bGoToHome) and EMT.FLAG2 == 1 then
|
||||
-- se motosega mi muovo a X di sicurezza per ruotare, prima si raddrizza B e poi C in posizione
|
||||
if EMT.HEAD == 'H3' and bGoToHome then
|
||||
if EMT.HEAD == 'H3' or bGoToHome then
|
||||
SimulMoveAxis( 'X', SafeXRotAxes, MCH_SIM_STEP.RAPID)
|
||||
SimulMoveAxis( 'B', 0, MCH_SIM_STEP.COLLROT)
|
||||
SimulMoveAxis( 'C', EMT.R1, MCH_SIM_STEP.COLLROT)
|
||||
SimulMoveAxis( 'B', EMT.R2, MCH_SIM_STEP.COLLROT)
|
||||
elseif ( EMT.HEAD == 'H3' or ( bZmax and EMT.TOTLEN > 200)) then
|
||||
elseif ( bZmax and EMT.TOTLEN > 200) then
|
||||
SimulMoveAxes( 'X', SafeXRotAxes, MCH_SIM_STEP.RAPID, 'C', EMT.R1, MCH_SIM_STEP.COLLROT, 'B', EMT.R2, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
end
|
||||
|
||||
+36
-23
@@ -10,8 +10,8 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.7i2'
|
||||
PP_NVER = '2.7.9.2'
|
||||
PP_VER = '2.7j2'
|
||||
PP_NVER = '2.7.10.2'
|
||||
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)
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
==== Common_FAST Update Log ====
|
||||
|
||||
Versione 2.7j2 (08/10/2025)
|
||||
- (SIM-GEN) Quando si scarica motosega, si raddrizza prima l'asse B e poi si muove il C. Ora sempre e non solo se pezzo alto.
|
||||
|
||||
Versione 2.7j1 (06/10/2025)
|
||||
- (SIM-GEN) Quando si scarica motosega, si raddrizza prima l'asse B e poi si muove il C.
|
||||
|
||||
Versione 2.7i3 (23/09/2025)
|
||||
- (MLDE-ALL) Spostate costanti dimensioni utensili in MLDE.
|
||||
|
||||
Versione 2.7i2 (17/09/2025)
|
||||
- (EST) Stima tempi considerando accelerazioni
|
||||
- (SIM) Prelievo e deposito motosega con gli angoli comunicati da Essetre
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_FAST', -- nome script PP standard
|
||||
VERSION = '2.7i2', -- versione script
|
||||
VERSION = '2.7j2', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user