diff --git a/Common_FAST.mlpe b/Common_FAST.mlpe index 08816c3..ecc5fcd 100644 --- a/Common_FAST.mlpe +++ b/Common_FAST.mlpe @@ -521,14 +521,7 @@ function OnSimulToolSelect( dPosA) EgtSetAxisPos( 'C', EgtIf( BD.RIGHT_LOAD, 180, 0)) -- se aggregato flottante elseif EMT.HEAD == 'H8' then - local dFloating = EgtGetValInNotes( EMT.USERNOTES, 'DIST_FLOATING', d) - -- local CustomAggreFloatOffs = 0 - -- local vtAggreMove = Vector3d( 0, 0, CustomAggreFloatOffs - 220) - -- EgtMove( EgtGetFirstNameInGroup( H8Id, 'MOVE'), vtAggreMove, GDB_RT.GLOB) - -- EgtMove( EgtGetFirstNameInGroup( H8Id, 'COLLISION'), vtAggreMove, GDB_RT.GLOB) - -- local ExitId = EgtGetFirstNameInGroup( EgtGetHeadId( EMC.HEAD), 'T'..tostring( EMC.EXIT)) - -- EgtMove( ExitId, vtMove) - + ; -- nessuna azione necessaria end -- se punta lunga if EMT.TOTLEN > LONG_TOOL_MINLEN then @@ -537,6 +530,12 @@ function OnSimulToolSelect( dPosA) EgtSetAxisPos( 'B', 0) end end + -- se TC 1 + if GetTCSet( EMT.TCPOS) == 1 then + EgtSetAxisPos( 'B', 90) + else + EgtSetAxisPos( 'B', -90) + end -- breve pausa EgtPause( 100) EgtOutText( '') @@ -554,7 +553,7 @@ function OnSimulToolDeselect() -- se cambia uscita su rinvio non devo fare alcunché if ( EMT.HEAD == 'H5' and EMT.NEXTHEAD == 'H5') or ( EMT.HEAD == 'H6' and EMT.NEXTHEAD == 'H6') then return end -- se sega a catena o rinvio o punta lunga o utensile di grosso diametro, devo cambiare - if EMT.HEAD == 'H3' or EMT.HEAD == 'H5' or EMT.HEAD == 'H6' or EMT.HEAD == 'H7' or ( EMT.HEAD == 'H1' and ( EMT.TOTLEN > LONG_TOOL_MINLEN or EMT.TOTDIAM > BIG_TOOL_DIAM)) then + if EMT.HEAD == 'H3' or EMT.HEAD == 'H5' or EMT.HEAD == 'H6' or EMT.HEAD == 'H7' or EMT.HEAD == 'H8' or ( EMT.HEAD == 'H1' and ( EMT.TOTLEN > LONG_TOOL_MINLEN or EMT.TOTDIAM > BIG_TOOL_DIAM)) then EgtOutText( 'Tool change in progress...') -- movimento scarico sega a catena if EMT.HEAD == 'H3' then @@ -586,7 +585,11 @@ function OnSimulToolDeselect() -- altrimenti posizioni standard rastrelliera else 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 -- movimento scarico utensile di grosso diametro (su T111) else @@ -600,18 +603,25 @@ function OnSimulToolDeselect() -- nascondo utensile su testa e lo visualizzo su TcPos EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN) ShowToolInTcPos( EMT.TCPOS_1, true) + -- movimento per carico utensile 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 SimulMoveAxes( 'B', 0, MCH_SIM_STEP.RAPROT, 'C', EgtIf( BD.RIGHT_LOAD, 90, -90), MCH_SIM_STEP.RAPROT) end -- se segue lama, carico utensile di default if EMT.NEXTHEAD == 'H2' then local sDefTool = GetDefaultToolName() - EgtLoadTool( 'H1', 1, sDefTool) EMT.TOOL_1 = sDefTool 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 ShowToolInTcPos( EMT.TCPOS_1, false) end diff --git a/Essetre-FAST.mlde b/Essetre-FAST.mlde index fcee8d5..713185a 100644 --- a/Essetre-FAST.mlde +++ b/Essetre-FAST.mlde @@ -22,7 +22,7 @@ ------------------------------------- require( 'EmtGenerator') -EgtEnableDebug( false) +EgtEnableDebug( true) PP_VER = '2.7a1' PP_NVER = '2.7.1.1' @@ -723,6 +723,20 @@ function GetPVLight() return ( EgtGetInfo( PVLightId, 'On') == '1') 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 resettare tutte le attivazioni della macchina function OnResetMachine()