Compare commits

...

2 Commits

Author SHA1 Message Date
andrea.villa 5d53f6b074 - In separazione si sposta di 150mm anziché 30
- Posizione parcheggio testa 2
2026-05-22 12:07:48 +02:00
andrea.villa 65460d7320 - Aggiunto controllo zona sicura èper testa H11 (da migliorare)
- mantenuto stesso piano con motosega, corretto problema controllo direzione piano
2026-05-22 09:19:21 +02:00
4 changed files with 39 additions and 11 deletions
+19 -5
View File
@@ -637,7 +637,11 @@ function OnPathStart()
EMT.MCHFIRST = true
EMT.MCHFIRSTFEED = true
-- se piano locale compatibile
local vtExtr = Vector3d( EMT.EXTR)
if not HeadIsChainSaw( EMT.HEAD) then
vtExtr = Vector3d( EMT.EXTR)
else
vtExtr = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
end
if EMT.REFLOC and AreSameVectorApprox( vtExtr, EMT.IPLGLFR:getVersZ()) then
;
-- altrimenti primo posizionamento sempre in globale
@@ -2331,8 +2335,8 @@ function EmitParkRoller( dPosT, bSplitCut, bUsePrevDelta)
end
-- se anche solo una morsa è restata in posizione, le sposto comunque entrambe di 5mm per distanziare i pezzi separati
if bYNoMove or bVNoMove then
MDChar.Y1 = MDChar.Y1 + 30
MDChar.Y2 = MDChar.Y2 - 30
MDChar.Y1 = MDChar.Y1 + 150
MDChar.Y2 = MDChar.Y2 - 150
end
elseif DiffY1 > 0.1 and DiffY2 < -0.1 then
EmtSetLastError( 1201, 'Error Collision in ParkRoller')
@@ -2445,9 +2449,19 @@ function ToolPreSelectionSingleHead( nMchId)
if bCarrMove then
-- se è stato trovato utensile, emetto preselezione
if sToolChangePos and sToolChange and sToolChangeHead then
local MyParkX1 = EgtIf( GetHeadTCSet( sToolChangeHead, sToolChangePos) == 'Head1_TC2', ParkFrnX1, ParkX1)
local MyParkX1, MyParkB1, MyParkC1
if GetHeadTCSet( sToolChangeHead, sToolChangePos) == 'Head1_TC2' then
MyParkX1 = ParkFrnX1
MyParkB1 = ParkFrnB1
MyParkC1 = ParkFrnC1
else
MyParkX1 = ParkX1
MyParkB1 = ParkB1
MyParkC1 = ParkC1
end
EmtOutput( '( *** TOOL PRE-SEL *** )')
EmitMoveDataHead( 1, { X=-MyParkX1, Z=MaxZ1, B=ParkB1, C=ParkC1, TPos=AdjustTcPos( false, sToolChangePos)})
EmitMoveDataHead( 1, { X=-MyParkX1, Z=MaxZ1, B=MyParkB1, C=MyParkC1, TPos=AdjustTcPos( false, sToolChangePos)})
-- comincio i movimenti di preselezione
EmitMoveStartHead( 1)
-- se preselezione e c'era montata motosega, si aspetta fine della preselezione prima di andare avanti
+1 -1
View File
@@ -1667,7 +1667,7 @@ function ExecParkRoller( PosY1, PosY2, PosV1, PosV2, bSpliCut, bAgg)
dAddMove = 0
-- se almeno una è rimasta ferma in posizione, allontano comunque di 30mm ulteriori
else
dAddMove = 30
dAddMove = 150
end
local MoveY1 = max( DiffY1, 0.0)
local MoveY2 = min( DiffY2, 0.0)
+18 -4
View File
@@ -92,8 +92,15 @@ local function IsLinkSafe( vPrec, vNext)
for t=1, #DirectionsToTest do
local vtToolDir = EgtGetCalcToolDirFromAngles( DirectionsToTest[t].C, DirectionsToTest[t].B)
-- se testa standard
if EMC.HEAD == 'H11' then
-- TODO considerare caso sotto la traversa
-- se sotto la traversa
if vtToolDir:getX() > -0.1 then
bSafeMove = true
end
-- se lama su aggregato
if EMC.HEAD == 'H12' then
elseif EMC.HEAD == 'H12' then
-- se sotto la traversa
if vtToolDir:getX() < 0.342 then
local dLen = SawOffsZ - MillOffs
@@ -150,10 +157,17 @@ function OnSpecialLink()
-- altrimenti collegamento tra due lavorazioni (3)
else
-- recupero quota massima di collegamento
local vLFiAx = EmtGetFinalAxesPos( EMC.PREVMCHID, EMC.PREVMAIN, false)
local vLInAx = EmtGetInitialAxesPos( EMC.NEXTMCHID, EMC.NEXTMAIN, false)
local vFinalAxLink = EmtGetFinalAxesPos( EMC.PREVMCHID, EMC.PREVMAIN, false)
local vInitAxLink = EmtGetInitialAxesPos( EMC.NEXTMCHID, EMC.NEXTMAIN, false)
local bSafeMove = IsLinkSafe( vFinalAxLink, vInitAxLink)
-- se gli assi rotanti non sono cambiati e il collegamento è come ultimo punto della lavorazione
if abs( EMC.R1 - EMC.R1p) < 1 and abs( EMC.R2 - EMC.R2p) < 1 and abs( EMC.L3p - vFinalAxLink[3]) < 1 and abs( EMC.L3 - vInitAxLink[3]) < 1 then
bSafeMove = true
end
-- se superata quota massima ammessa
if max( vLFiAx[3], vLInAx[3]) > ParkZ1 + 1 then
if not bSafeMove then
-- retrazione
EmtRemoveRise( EMC.PREVMCHID, EMC.PREVMAIN)
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2p, MaxZ1, EMC.R1p, 0}, 30, 3, 2, 'UniqueRise=1;')
+1 -1
View File
@@ -32,7 +32,7 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '3.1e1_NL3'
PP_VER = '3.1e1_NL5'
PP_NVER = '3.1.3.2'
MIN_MACH_VER = '2.5k1'
MACH_NAME = EgtGetCurrMachineName()