Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 08016494e0 | |||
| 23d4f09653 | |||
| f5276d9952 | |||
| d5ec8a4300 | |||
| bfa7f6076e | |||
| 3c37ddfcd5 | |||
| 2c8ddc8613 | |||
| f875534370 | |||
| b2d607cb14 | |||
| da6216fdfd | |||
| a8f069616e | |||
| d363591acf | |||
| b005447490 | |||
| 274c807a01 | |||
| 93d536ffda |
@@ -28,7 +28,7 @@ function OnStart()
|
||||
--EMT.LINEINC = 1 -- incremento numerazione linee
|
||||
--EMT.Ft = 'F' -- token per feed
|
||||
--EMT.St = 'S' -- token per speed
|
||||
EMT.FMAXPINZE = 116000 -- feed massima pinze
|
||||
EMT.FMAXPINZE = EgtClamp( MaxFeedPinze or 116000, 20000, 116000) -- feed massima pinze
|
||||
SetToParkLine() -- si inizia con linee da parcheggiare su stack
|
||||
end
|
||||
|
||||
@@ -51,6 +51,7 @@ function OnProgramStart()
|
||||
end
|
||||
MyOutput( sPrefixCommentLine..'('.. CSP_INFO..')')
|
||||
MyOutput( sPrefixCommentLine..'('.. MACHINE_INFO..')')
|
||||
MyOutput( '(HEADER)')
|
||||
|
||||
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
||||
if TEST_USE then
|
||||
@@ -102,6 +103,7 @@ function OnProgramEnd()
|
||||
EMT.FALL = nil
|
||||
EMT.RELOAD = nil
|
||||
EMT.RELOAD2 = nil
|
||||
MyOutput( '(FOOTER)')
|
||||
-- Termino il programma
|
||||
MyOutput( 'M202')
|
||||
MyOutput( 'M02')
|
||||
@@ -2843,9 +2845,12 @@ function PreselectNextDiffHead( nMchId, sHead)
|
||||
-- faccio preselezione ( se sono arrivato qui, vuol dire che posso preselezionare)
|
||||
if nNextHSet == 1 then
|
||||
local dNextX
|
||||
-- se sto lavorando con testa 3, la testa 1 deve restare in home
|
||||
-- se sto lavorando con testa 3, la testa 1 preselezionata deve restare in home
|
||||
if nHSet == 3 then
|
||||
dNextX = EgtGetAxisHomePos( 'X1')
|
||||
dNextX = - EgtGetAxisHomePos( 'X1')
|
||||
-- se il prossimo utensile su testa 1 è utensile lungo, resta in home
|
||||
elseif sNextHead == 'H11' and dNextTotLen > LongTool then
|
||||
dNextX = - EgtGetAxisHomePos( 'X1')
|
||||
-- altrimenti recupero quota X1 (nostro L2)
|
||||
else
|
||||
dNextX = GetStartMachiningXaxis( nNextMchId)
|
||||
@@ -2857,7 +2862,7 @@ function PreselectNextDiffHead( nMchId, sHead)
|
||||
EmitMoveDataHead( 1, { X=dNextX, B=ParkB1, C=ParkC1, TPos=AdjustTcPos( false, sNextTcPos), Fmt=2})
|
||||
else
|
||||
local nNextTc = GetTcForTopHeadTool( sNextTcPos)
|
||||
EmitMoveDataHead( 1, { X=dNextX, B=ParkLongB1, C=EgtIf( nPrevTc ~= 2, ParkLongTc1C1, ParkLongTc2C1), TPos=AdjustTcPos( false, sNextTcPos), Fmt=2})
|
||||
EmitMoveDataHead( 1, { X=dNextX, B=ParkLongB1, C=EgtIf( nNextTc ~= 2, ParkLongTc1C1, ParkLongTc2C1), TPos=AdjustTcPos( false, sNextTcPos), Fmt=2})
|
||||
end
|
||||
EmitMoveStartHead( 1)
|
||||
elseif sNextHead == 'H12' or sNextHead == 'H16' then
|
||||
|
||||
+50
-4
@@ -463,6 +463,8 @@ function OnSimulToolSelect( dPosA)
|
||||
end
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' then
|
||||
EgtSetAxisPos( 'Z1', MaxZ1Blade)
|
||||
elseif EMT.HEAD == 'H13' then
|
||||
EgtSetAxisPos( 'Z1', ParkCSawZ1)
|
||||
else
|
||||
EgtSetAxisPos( 'Z1', MaxZ1)
|
||||
end
|
||||
@@ -528,8 +530,10 @@ function OnSimulToolSelect( dPosA)
|
||||
EMT.A2n = 'Y2'
|
||||
EMT.A3n = 'V1'
|
||||
EMT.A4n = 'V2'
|
||||
-- se attivo Vmill
|
||||
EmtSetToolForVmill( EMT.TOOL, EMT.HEAD, EMT.EXIT, EMT.VMILL)
|
||||
-- se utensile non flottante, abilito per Vmill
|
||||
if not EMT.TFLOAT then
|
||||
EmtSetToolForVmill( EMT.TOOL, EMT.HEAD, EMT.EXIT, EMT.VMILL)
|
||||
end
|
||||
-- se attivo Collision Check
|
||||
EMT.SAFEDIST = COLL_SAFE_DIST
|
||||
if EMT.COLLOBJ then
|
||||
@@ -573,7 +577,7 @@ function OnSimulToolDeselect( dPrevA)
|
||||
-- visualizzo utensile su TcPos
|
||||
ShowToolInTcPos( EMT.PREVTCPOS_H2, true)
|
||||
-- nascondo l'utensile sulla testa
|
||||
EgtSetStatus( EgtGetHeadId( EMT.PREVHEAD_H2 or '') or GDB_ID.NULL, GDB_ST.OFF)
|
||||
EgtSetMode( EgtGetHeadId( EMT.PREVHEAD_H2 or '') or GDB_ID.NULL, GDB_MD.HIDDEN)
|
||||
-- se testa gruppo 1
|
||||
elseif nNextSetHead == 1 and EMT.PREVTCPOS_H1 then
|
||||
-- deposito utensile fresa
|
||||
@@ -1263,6 +1267,18 @@ function OnSimulMoveStart()
|
||||
end
|
||||
EMT.ZMAX = nil
|
||||
EMT.TO_ZMAX = nil
|
||||
|
||||
-- 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
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -1316,17 +1332,44 @@ function OnSimulMoveEnd()
|
||||
-- ricavo prossimo utensile
|
||||
local sNextTool = GetNextTool( EMT.MCHID)
|
||||
-- vado in home se è ultimo movimento ed è ultima lavorazione
|
||||
local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool and nHSet == 3)
|
||||
local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool and nHSet == 3) or ( nHSet == 1 and EMT.TTOTLEN > LongTool)
|
||||
-- eseguo
|
||||
ExecMoveZmax( EMT.MCHSPLIT, bToXhome)
|
||||
EMT.TO_ZMAX = nil
|
||||
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
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulCollision()
|
||||
-- se prima collisione della lavorazione, la segnalo
|
||||
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
|
||||
local Class = ''
|
||||
if EMT.SIMCOBIND == 1001 or EMT.SIMCOBIND == 1011 then
|
||||
Class = 'T_'..EMT.HEAD
|
||||
@@ -1564,6 +1607,9 @@ function ExecMoveZmax( bMchSplit, bGoToHome)
|
||||
SimulMoveAxis( 'B1', HomeB, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
SimulMoveAxis( 'Z1', MyMaxZ1, MCH_SIM_STEP.RAPID)
|
||||
if bGoToHome then
|
||||
SimulMoveAxis( 'X1', ParkX1, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
-- salgo in Z sicurezza raddrizzando la B
|
||||
|
||||
+5
-1
@@ -77,6 +77,8 @@ function OnSpecialGetMaxZ()
|
||||
EMC.MAXZ = MaxZ1Blade - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||
elseif vtTp:getZ() > 0.707 or vtT:getZ() > 0.707 then
|
||||
EMC.MAXZ = ParkZ1 + 200
|
||||
elseif vtTp:getZ() > 0.5 or vtT:getZ() > 0.5 then
|
||||
EMC.MAXZ = ParkZ1 + 100
|
||||
else
|
||||
EMC.MAXZ = ParkZ1 + 1
|
||||
end
|
||||
@@ -95,6 +97,8 @@ function OnSpecialGetMaxZ()
|
||||
EMC.MAXZ = MaxZ1Blade - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||
elseif vtTp:getZ() > 0.707 or vtT:getZ() > 0.707 then
|
||||
EMC.MAXZ = ParkZ1 + 200
|
||||
elseif vtTp:getZ() > 0.5 or vtT:getZ() > 0.5 then
|
||||
EMC.MAXZ = ParkZ1 + 100
|
||||
else
|
||||
EMC.MAXZ = ParkZ1 + 1
|
||||
end
|
||||
@@ -205,7 +209,7 @@ local SIC_V = 50 -- sicurezza da testa
|
||||
local MIN_ENG_V = 115 -- ingombro asse Z
|
||||
local MIN_ENG_RACK_V = 161 -- ingombro asse Z con cremagliera
|
||||
local MIN_ENG_XZ2_V = 180 -- ingombro assi XZ sotto
|
||||
local MIN_Z2_FOR_ENG_XZ2_V = 270 -- quota Z2 da cui considerare ingombro assi XZ sotto
|
||||
local MIN_Z2_FOR_ENG_XZ2_V = 250 -- quota Z2 da cui considerare ingombro assi XZ sotto
|
||||
local AGG_V = MinDeltaYV -- ingombro rulli pressori + sicurezza
|
||||
local MaxLenSmT = 1500 -- massima lunghezza pezzo scaricato con nastri verdi
|
||||
local DIST_Y1MAX_LOAD = 100 -- distanza carrello Y1 da massimo asse al carico
|
||||
|
||||
@@ -26,6 +26,7 @@ H21.1:MILL_NOTIP=MillNoTip.nge
|
||||
H21.1:SAW_STD=SawH2Std.nge
|
||||
H21.1:SAW_FLAT=SawH2Flat.nge
|
||||
H22.1=Saw.nge
|
||||
H38.1=SawH3Std.nge
|
||||
|
||||
[Machinings]
|
||||
Drilling=1
|
||||
|
||||
+80
-36
@@ -5,8 +5,8 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.6l4'
|
||||
PP_NVER = '2.6.12.4'
|
||||
PP_VER = '2.7d1'
|
||||
PP_NVER = '2.7.4.1'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
MACH_NAME = 'Essetre-PF1500MAXrl-3T'
|
||||
|
||||
@@ -182,7 +182,7 @@ FirstSaw = false
|
||||
SecondSaw = true
|
||||
SecondChain = true -- magazzino seconda sega a catena
|
||||
TcSpecialTools = true -- magazzino per utensili speciali. In genere truciolatore
|
||||
DrillingAggregate = true -- aggregato foratura multipla dipende dal magazzino utensili speciali. Viene montato li
|
||||
DrillingAggregate = false -- aggregato foratura multipla dipende dal magazzino utensili speciali. Viene montato li
|
||||
TcAggreBladeUnder = true -- lama su aggregato per testa da sotto
|
||||
EmitAccClamps = true
|
||||
WriteAllCoordsOnFirstM101 = true
|
||||
@@ -249,9 +249,9 @@ if EgtExistsFile( sDataBeam) then
|
||||
if Machine.Offsets.PARK_Y2 then ParkMchY2 = Machine.Offsets.PARK_Y2 end
|
||||
if Machine.Offsets.MIN_V2 then MinV2 = Machine.Offsets.MIN_V2 end
|
||||
if Machine.Offsets.MAX_V2 then MaxV2 = Machine.Offsets.MAX_V2 end
|
||||
if Machine.Offsets.MIN_DELTAVY then MinDeltaYV = Machine.Offsets.MIN_DELTAVY + 0.1 end
|
||||
if Machine.Offsets.DIST_FTZERO then LoadT = Machine.Offsets.DIST_FTZERO end
|
||||
if Machine.Offsets.DELTA_CARICZERO then TurnerOffs = Machine.Offsets.DELTA_CARICZERO end
|
||||
if Machine.Offsets.MIN_DELTAVY then MinDeltaYV = Machine.Offsets.MIN_DELTAVY + 0.1 end
|
||||
if Machine.Offsets.DIST_UNLOAD then UnloadT = Machine.Offsets.DIST_UNLOAD end
|
||||
if Machine.Offsets.PIVOT_T1 then MillOffs = Machine.Offsets.PIVOT_T1 end
|
||||
if Machine.Offsets.PIVOT_T2 then Mill2Offs = Machine.Offsets.PIVOT_T2 end
|
||||
@@ -282,6 +282,7 @@ if EgtExistsFile( sDataBeam) then
|
||||
if Machine.Offsets.DEFTCPOS2 then DefTcPos2 = ( 'T' .. Machine.Offsets.DEFTCPOS2) end
|
||||
if Machine.Offsets.MINPRESS then MinForzaPinze = Machine.Offsets.MINPRESS end
|
||||
if Machine.Offsets.MAXPRESS then MaxForzaPinze = Machine.Offsets.MAXPRESS end
|
||||
if Machine.Offsets.MAXFEEDPINZE then MaxFeedPinze = Machine.Offsets.MAXFEEDPINZE end
|
||||
if Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO then ForceToCloseRollersGate = Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO == 1 end
|
||||
if Machine.Offsets.WOOD_DENSITY then WoodDensity = Machine.Offsets.WOOD_DENSITY end
|
||||
if Machine.Offsets.MOTORS23KW then Motors23KW = Machine.Offsets.MOTORS23KW == 1 end
|
||||
@@ -480,7 +481,7 @@ if DrillingAggregate then
|
||||
OthColl = {'B1/SOLID', 'C1/SOLID'},
|
||||
Geo = 'H14_HEAD/GEO',
|
||||
Aux = {'H14_HEAD/SOLID', 'H14_HEAD/COLLISION'}}
|
||||
end
|
||||
end
|
||||
|
||||
-- *** Testa 3 ***
|
||||
local X3Id = EmtAxis {
|
||||
@@ -938,28 +939,40 @@ if Tc2Active then
|
||||
ADir = X_AX(),
|
||||
Geo = 'BASE/T30'}
|
||||
end
|
||||
local ptTc3 = Point3d( 600, 1181, -321)
|
||||
EmtTcPos {
|
||||
Name = 'T101',
|
||||
Parent = 'Base',
|
||||
Type = MCH_HT.MULTI,
|
||||
ExitNbr = 6,
|
||||
Pos1 = ptTc3 + Vector3d( 0, 0, 0),
|
||||
TDir1 = Z_AX(),
|
||||
Pos2 = ptTc3 + Vector3d( -40, 0, 0),
|
||||
TDir2 = Z_AX(),
|
||||
Pos3 = ptTc3 + Vector3d( -80, 0, 0),
|
||||
TDir3 = Z_AX(),
|
||||
Pos4 = ptTc3 + Vector3d( 40, 0, 0),
|
||||
TDir4 = Z_AX(),
|
||||
Pos5 = ptTc3 + Vector3d( 80, 0, 0),
|
||||
TDir5 = Z_AX(),
|
||||
Pos6 = ptTc3 + Vector3d( 120, 0, 0),
|
||||
TDir6 = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'BASE/T101',
|
||||
Aux = 'BASE/T101_HS'}
|
||||
local ptTc4 = Point3d( 750, 1561, -150.8)
|
||||
if DrillingAggregate then
|
||||
local ptTc3 = Point3d( 600, 1181, -321)
|
||||
EmtTcPos {
|
||||
Name = 'T101',
|
||||
Parent = 'Base',
|
||||
Type = MCH_HT.MULTI,
|
||||
ExitNbr = 6,
|
||||
Pos1 = ptTc3 + Vector3d( 0, 0, 0),
|
||||
TDir1 = Z_AX(),
|
||||
Pos2 = ptTc3 + Vector3d( -40, 0, 0),
|
||||
TDir2 = Z_AX(),
|
||||
Pos3 = ptTc3 + Vector3d( -80, 0, 0),
|
||||
TDir3 = Z_AX(),
|
||||
Pos4 = ptTc3 + Vector3d( 40, 0, 0),
|
||||
TDir4 = Z_AX(),
|
||||
Pos5 = ptTc3 + Vector3d( 80, 0, 0),
|
||||
TDir5 = Z_AX(),
|
||||
Pos6 = ptTc3 + Vector3d( 120, 0, 0),
|
||||
TDir6 = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'BASE/T101_MULTIDRILL',
|
||||
Aux = 'BASE/T101_HS_MULTIDRILL'}
|
||||
else
|
||||
local ptTc3 = Point3d( 600, 1181, -180.8)
|
||||
EmtTcPos {
|
||||
Name = 'T101',
|
||||
Parent = 'Base',
|
||||
Pos = ptTc3,
|
||||
TDir = -X_AX(),
|
||||
ADir = Z_AX(),
|
||||
Geo = 'BASE/T101'}
|
||||
end
|
||||
|
||||
local ptTc4 = Point3d( 750, 1561, -180.8)
|
||||
EmtTcPos {
|
||||
Name = 'T111',
|
||||
Parent = 'Base',
|
||||
@@ -967,7 +980,7 @@ EmtTcPos {
|
||||
TDir = -X_AX(),
|
||||
ADir = Z_AX(),
|
||||
Geo = 'BASE/T111'}
|
||||
local ptTc5 = Point3d( 750, 1961, -150.8)
|
||||
local ptTc5 = Point3d( 750, 1961, -110.8)
|
||||
EmtTcPos {
|
||||
Name = 'T121',
|
||||
Parent = 'Base',
|
||||
@@ -1073,8 +1086,9 @@ EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC3') or GDB_ID.NULL, vtMovB, GDB_RT.G
|
||||
if TcSpecialTools then EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC4') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
||||
if SecondChain then EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC5') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
||||
EgtMove( EgtGetFirstNameInGroup( BaseId, 'TCR') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB)
|
||||
if TcSpecialTools then EgtMove( EgtGetFirstNameInGroup( BaseId, 'TCS') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
||||
if TcAggreBladeUnder then EgtMove( EgtGetFirstNameInGroup( BaseId, 'TCS') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
||||
if TcSpecialTools then EgtMove( EgtGetFirstNameInGroup( BaseId, 'T121') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
||||
if DrillingAggregate then EgtMove( EgtGetFirstNameInGroup( BaseId, 'T101') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
||||
EgtMove( EgtGetFirstNameInGroup( X1Id, 'SOLID'), vtMovB, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X1Id, 'COLLISION'), vtMovB, GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( Z1Id, 'SOLID'), vtOffset23KW, GDB_RT.GLOB)
|
||||
@@ -1274,12 +1288,8 @@ function GetAdjHeadFromTcPos( nHeadSet, sTcPos)
|
||||
if SecondSaw and sTcPos == 'T21' then
|
||||
return 'H16'
|
||||
-- utensili speciali
|
||||
elseif TcSpecialTools and sTcPos == 'T121' then
|
||||
if DrillingAggregate then
|
||||
return 'H14'
|
||||
else
|
||||
return 'H11'
|
||||
end
|
||||
elseif DrillingAggregate and sTcPos == 'T101' then
|
||||
return 'H14'
|
||||
-- motoseghe
|
||||
elseif sTcPos == 'T101' or sTcPos == 'T111' then
|
||||
return 'H13'
|
||||
@@ -1304,7 +1314,7 @@ end
|
||||
---------------------------------------------------------------------
|
||||
-- Funzione che riconosce testa per sega a catena
|
||||
function HeadIsChainSaw( sHead)
|
||||
return ( sHead == 'H13' or sHead == 'H15')
|
||||
return ( sHead == 'H13')
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -1489,6 +1499,37 @@ function GetPY2Light()
|
||||
return ( EgtGetInfo( PY2LightId, 'On') == '1')
|
||||
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
|
||||
@@ -1497,6 +1538,9 @@ function OnResetMachine()
|
||||
EmtUnlinkAllFixturesFromGroups()
|
||||
SetPY1Light( false)
|
||||
SetPY2Light( false)
|
||||
--resetto eventuale flottante
|
||||
SetFloatPos( 'H11', 0)
|
||||
SetFloatPos( 'H21', 0)
|
||||
-- nascondo Vmill
|
||||
local nRawId = EgtGetFirstRawPart()
|
||||
while nRawId do
|
||||
|
||||
Binary file not shown.
@@ -117,6 +117,46 @@ elseif bTc2Active and SecondSaw and SecondChain and TcSpecialTools and TcAggreBl
|
||||
{Pos = "Pos37", TcPos = "T229", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos38", TcPos = "T230", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos39", TcPos = "T301", Head = "H38", Group = "G5"}}
|
||||
elseif bTc2Active and SecondSaw and SecondChain and TcSpecialTools and TcAggreBladeUnder then
|
||||
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H11", Group = "G1"}, -- TC 1
|
||||
{Pos = "Pos2", TcPos = "T2", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos3", TcPos = "T3", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos4", TcPos = "T4", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos5", TcPos = "T5", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos6", TcPos = "T6", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos7", TcPos = "T7", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos8", TcPos = "T8", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos9", TcPos = "T9", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos10", TcPos = "T10", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos11", TcPos = "T11", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos12", TcPos = "T12", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos13", TcPos = "T13", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos14", TcPos = "T101", Head = "H13", Group = "G2"}, -- utensile speciale
|
||||
{Pos = "Pos15", TcPos = "T111", Head = "H13", Group = "G2"}, -- motosega
|
||||
{Pos = "Pos16", TcPos = "T121", Head = "H11", Group = "G2"}, -- truciolatore
|
||||
{Pos = "Pos17", TcPos = "T21", Head = "H16", Group = "G3"}, -- TC 2
|
||||
{Pos = "Pos18", TcPos = "T22", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos19", TcPos = "T23", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos20", TcPos = "T24", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos21", TcPos = "T25", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos22", TcPos = "T26", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos23", TcPos = "T27", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos24", TcPos = "T28", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos25", TcPos = "T29", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos26", TcPos = "T30", Head = "H11", Group = "G3"},
|
||||
{Pos = "Pos27", TcPos = "T201", Head = "H22", Group = "G4"}, -- lama con aggregatop da sotto
|
||||
{Pos = "Pos28", TcPos = "T220", Head = "H21", Group = "G4"}, -- TC margherita
|
||||
{Pos = "Pos29", TcPos = "T221", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos30", TcPos = "T222", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos31", TcPos = "T223", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos32", TcPos = "T224", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos33", TcPos = "T225", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos34", TcPos = "T226", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos35", TcPos = "T227", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos36", TcPos = "T228", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos37", TcPos = "T229", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos38", TcPos = "T230", Head = "H21", Group = "G4"},
|
||||
{Pos = "Pos39", TcPos = "T301", Head = "H38", Group = "G5"}}
|
||||
end
|
||||
|
||||
local UsePositionHead = true
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -27,6 +27,7 @@
|
||||
2=d,SIDESTEP
|
||||
3=d,SIDEDEPTH
|
||||
4=s,DOUBLE
|
||||
5=dr,TOOL_OVERHANG
|
||||
|
||||
[MILL_NOTIP]
|
||||
0=th,TH,
|
||||
@@ -34,6 +35,7 @@
|
||||
2=d,SIDESTEP
|
||||
3=d,SIDEDEPTH
|
||||
4=s,DOUBLE
|
||||
5=dr,TOOL_OVERHANG
|
||||
|
||||
[MORTISE_STD]
|
||||
0=b,MORTISE
|
||||
|
||||
+31
-2
@@ -1,7 +1,36 @@
|
||||
==== Common_PF1250 Update Log ====
|
||||
|
||||
Versione 2.7d1 (01/04/2025)
|
||||
- (GEN) Aggiunta commenti HEADER e FOOTER per comunicazione con linea o altre macchine, da parte di Essetre.
|
||||
|
||||
Versione 2.7b5 (26/02/2025)
|
||||
- (MLDE-GEN) Gestione lettura feed massima pinze da Ts3.
|
||||
|
||||
Versione 2.7b4 (21/02/2025)
|
||||
- (SIM-GEN) Ripristinato comportamento precedente calcolo posizione dei rulli di pinzaggio fatto con 2.7b2.
|
||||
- (MLDE-SIM) Gestione aggregato flottante. Serve modifica MLDE. Ticket#2297
|
||||
|
||||
Versione 2.7b3 (06/02/2025)
|
||||
- (SIM) Dopo aver scaricato utensile, si setta nota "HIDDEN" per dichiarare utensile non più sulla testa e non considerare le collisioni.
|
||||
|
||||
Versione 2.7b2 (04/02/2025)
|
||||
- (SIM-GEN) Piccola modifica nel calcolo posizione dei rulli di pinzaggio.
|
||||
|
||||
Versione 2.7b1 (03/02/2025)
|
||||
- (SIM) Corretta simulazione che non mandava testa in home in caso di utensile lungo. Generazione era già ok. Ticket#2280
|
||||
|
||||
Versione 2.7a2 (28/01/2025)
|
||||
- (SIM-GEN) In MLSE aggiunta piccola correzione quota Z in caso di direzione Z tra 0.5 e 0.707.
|
||||
|
||||
Versione 2.7a1 (17/01/2025)
|
||||
- (GEN) Piccola correzione posizione X in preselezione utensile
|
||||
- (GEN) Corretto primo punto X preselezione utensile. Ticket#2183 e #2250
|
||||
|
||||
Versione 2.6l7 (19/12/2024)
|
||||
- (SIM) HOTFIX : corretto posizione Z zero alla selezione dell'utensile in caso di motosega. Ticket#2235
|
||||
|
||||
Versione 2.6l6 (18/12/2024)
|
||||
- (MLDE-SIM-GEN) Aggiunta variabile 'SafeX2RotAxis' in sostituzionme della 'ParkMchY2' che era usata impropriamente
|
||||
- (MLDE-SIM-GEN) Aggiunta variabile 'SafeX2RotAxis' in sostituzione della 'ParkMchY2' che era usata impropriamente
|
||||
|
||||
Versione 2.6l5 (17/12/2024)
|
||||
- (SIM) Corretta posizione iniziale testa 2. Ticket#2228
|
||||
@@ -25,7 +54,7 @@ Versione 2.6l1 (13/12/2024)
|
||||
- (SIM-GEN) A fine barra, testa 3 sempre in home
|
||||
- (GEN) Controllo esistenza terzo asse ausiliario
|
||||
- (GEN) Corretto primo movimento in X quando si parte con testa 3. Ticket#2216
|
||||
- (GEN) Se su testa 1 c'è un aggregato e si utilizzerà la testa 3, si pscarica aggregato e si prende utensile di default. Ticket#2222
|
||||
- (GEN) Se su testa 1 c'è un aggregato e si utilizzerà la testa 3, si scarica aggregato e si prende utensile di default. Ticket#2222
|
||||
- (GEN) Durante utilizzo della testa 3, non si preselezionano altre teste. Ticket#2220
|
||||
- (SIM-GEN) Se lavorazione con testa dedicata lama e su testa 1 c'era aggregato, viene scaricato. Ticket#2216
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_PF1250', -- nome script PP standard
|
||||
VERSION = '2.6l6', -- versione script
|
||||
VERSION = '2.7d1', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user