diff --git a/Beam/BeamData.lua b/Beam/BeamData.lua index 936506d..343c424 100644 --- a/Beam/BeamData.lua +++ b/Beam/BeamData.lua @@ -10,6 +10,7 @@ local BeamData = { SIMUL_VIEW_DIR = 1, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE) GO_FAST = 0, -- flag abilitazione modalità veloce (0=no, 1=carrelli, 2=anche cambio utensili) ROT90 = false, -- flag abilitazione rotazione 90 gradi + ROT180 = true, -- flag abilitazione rotazione 180 gradi NEWCLAMPING = false, -- flag abilitazione nuovo metodo riposizionamento carrelli FASTCLAMPING= true, -- flag abilitazione riduzione numero riposizionamenti al carico e durante grande trascinamento MIN_WIDTH = 40, -- larghezza minima del grezzo @@ -112,6 +113,7 @@ if EgtExistsFile( sData) then if Machine.Offsets.NEWCLAMPING ~= nil then BeamData.NEWCLAMPING = ( Machine.Offsets.NEWCLAMPING == 1) end if Machine.Offsets.FASTCLAMPING ~= nil then BeamData.FASTCLAMPING = ( Machine.Offsets.FASTCLAMPING == 1) end if Machine.Offsets.ROT90 ~= nil then BeamData.ROT90 = ( Machine.Offsets.ROT90 == 1) end + if Machine.Offsets.ROT180 ~= nil then BeamData.ROT180 = ( Machine.Offsets.ROT180 == 1) end end if Machine.Trave then BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH diff --git a/Common_FAST.NUM.mlpe b/Common_FAST.NUM.mlpe index 360a8c3..b5621b3 100644 --- a/Common_FAST.NUM.mlpe +++ b/Common_FAST.NUM.mlpe @@ -1647,7 +1647,7 @@ end --------------------------------------------------------------------- function GetET( sHead, sTcPos, dAxR3) - if sHead == 'H1' then + if sHead == 'H1' or sHead == 'H5' or sHead == 'H6' then return ' E'..sTcPos elseif sHead == 'H2' then return ' ET42' diff --git a/Common_FAST.mlpe b/Common_FAST.mlpe index ecfeee3..d07cda2 100644 --- a/Common_FAST.mlpe +++ b/Common_FAST.mlpe @@ -477,8 +477,8 @@ function OnSimulToolSelect( dPosA) EMT.A1n = 'Y' EMT.A2n = 'V' end - -- carico utensile se non lama su sua testa o dummy - if EMT.HEAD ~= 'H2' and EMT.HEAD ~= 'H4' then + -- carico utensile se non lama + if EMT.HEAD ~= 'H2' then -- se sega a catena, imposto subito angolo scelto per asse virtuale A if EMT.HEAD == 'H3' then if not dPosA then @@ -589,8 +589,8 @@ function OnSimulToolDeselect() ShowToolInTcPos( EMT.TCPOS_1, false) end EgtOutText( '') - -- deposito utensile se prossimo non lama su sua testa o dummy - elseif EMT.NEXTHEAD ~= 'H2' and EMT.NEXTHEAD ~= 'H4' then + -- deposito utensile se prossimo non lama su sua testa + elseif EMT.NEXTHEAD ~= 'H2' then if EMT.NEXTTOOL ~= EMT.TOOL_1 then EgtOutText( 'Tool change in progress...') -- simulo movimento diff --git a/Common_FAST.mlse b/Common_FAST.mlse index 2b2dbc2..4880797 100644 --- a/Common_FAST.mlse +++ b/Common_FAST.mlse @@ -1028,9 +1028,9 @@ function SpecCalcEncumbrance( vtTool, vtArm, ptMin, ptMax, bSaw, bChain, dTLen, elseif ( vtTool:getX() > 0.5) then dHeadFront = 450 end - if vtTool:getX() > 0.25 then + if vtTool:getX() > 0.25 then dHeadFront = dHeadFront + max( dTLen - 130, 0) * vtTool:getX() - elseif vtTool:getX() > 0 then + elseif vtTool:getX() > 0 then dHeadFront = dHeadFront + ( dTLen + 180) * vtTool:getX() end if vtTool:getX() < -0.866 then @@ -1042,7 +1042,7 @@ function SpecCalcEncumbrance( vtTool, vtArm, ptMin, ptMax, bSaw, bChain, dTLen, if vtArm:getX() > 0.259 then dHeadFront = 510 else - dHeadFront = EgtIf( vtTool:getZ() > 0.966, 160, 280) + dHeadFront = EgtIf( vtTool:getZ() > 0.966, 170, 280) end end -- per fresature longitudinali con utensile di fianco diff --git a/Essetre-FASTrl.ini b/Essetre-FASTrl.ini index 6796466..9e5e8d3 100644 --- a/Essetre-FASTrl.ini +++ b/Essetre-FASTrl.ini @@ -21,6 +21,10 @@ H1.1:MILL_NOTIP=MillNoTip.nge H1.1:SAW_FLAT=TcSaw.nge H2.1=Saw.nge H3.1=ChainSaw.nge +H5.1=AngTransm.nge +H5.2=AngTransm.nge +H6.1=AngTransm.nge +H6.2=AngTransm.nge [Machinings] Drilling=1 @@ -46,6 +50,8 @@ H1=6608 H2=6615 ; Chainsaw H3=6616 +; Angular transmission +H5=6603 [SetUp] Default=Standard diff --git a/Essetre-FASTrl.mlde b/Essetre-FASTrl.mlde index ff087d7..d856c3b 100644 --- a/Essetre-FASTrl.mlde +++ b/Essetre-FASTrl.mlde @@ -94,14 +94,14 @@ if EgtExistsFile( sData) then if Machine then if Machine.Offsets then NumericalControl = EgtIf( Machine.Offsets.TIPO_CN == 0, 'NUM', 'TPA') - if Machine.Offsets.MIN_X then MaxX = -Machine.Offsets.MIN_X end - if Machine.Offsets.MAX_X then MinX = -Machine.Offsets.MAX_X end - MinZ = Machine.Offsets.MIN_Z or MinZ - MaxZ = Machine.Offsets.MAX_Z or MaxZ - MinB = Machine.Offsets.MIN_B or MinB - MaxB = Machine.Offsets.MAX_B or MaxB - MinC = Machine.Offsets.MIN_C or MinC - MaxC = Machine.Offsets.MAX_C or MaxC + if Machine.Offsets.MAX_X then MinX = - Machine.Offsets.MAX_X end + if Machine.Offsets.MIN_X then MaxX = - Machine.Offsets.MIN_X end + if Machine.Offsets.MIN_Z then MinZ = Machine.Offsets.MIN_Z end + if Machine.Offsets.MAX_Z then MaxZ = Machine.Offsets.MAX_Z end + if Machine.Offsets.MIN_B then MinB = Machine.Offsets.MIN_B end + if Machine.Offsets.MAX_B then MaxB = Machine.Offsets.MAX_B end + if Machine.Offsets.MIN_C then MinC = Machine.Offsets.MIN_C end + if Machine.Offsets.MAX_C then MaxC = Machine.Offsets.MAX_C end MinY = Machine.Offsets.MIN_Y or Machine.Offsets.MINY or MinY MaxY = Machine.Offsets.MAX_Y or Machine.Offsets.MAXY or MaxY ParkY = Machine.Offsets.PARKYY or ParkY @@ -132,6 +132,7 @@ if EgtExistsFile( sData) then if Machine.Offsets.MIN_JOIN_LS then MinJoinLS = Machine.Offsets.MIN_JOIN_LS end if Machine.Offsets.MIN_JOIN_SL then MinJoinSL = Machine.Offsets.MIN_JOIN_SL end if Machine.Offsets.MIN_JOIN_LL then MinJoinLL = Machine.Offsets.MIN_JOIN_LL end + if Machine.Offsets.NEWTOPC then NewTopC = ( Machine.Offsets.NEWTOPC == 1) end end end end @@ -269,6 +270,31 @@ EgtSetInfo( H3Id, 'ZMAXONROT', '1,5') if BeamHeightForFixRot < 1000 then EgtSetInfo( H3Id, 'ROTATZMAX', '1') end +-- Eventuale rinvio angolare +if SecondSupport >= 3 then + local H5Id = EmtHead { + Name = 'H5', + Parent = 'B', + HSet = 'H1', + Type = MCH_HT.MULTI, + ExitNbr = 2, + Pos1 = Point3d( 0, AngTr1Len, -AngTr1Offs), + TDir1 = -Y_AX(), + Pos2 = Point3d( 0, -AngTr1Len, -AngTr1Offs), + TDir2 = Y_AX(), + ADir = Z_AX(), + Rot1W = 0.2, + Rot2Stroke = { -120, 120}, + OthColl = { 'H2', 'B/SOLID', 'C/SOLID'}, + Geo = 'H5_HEAD/GEO', + Aux = {'H5_HEAD/SOLID', 'H5_HEAD/COLLISION'}} + EgtSetInfo( H5Id, 'AGB_TYPE', 2) + EgtSetInfo( H5Id, 'AGB_DMAX', 240) + EgtSetInfo( H5Id, 'AGB_ENCH', 44) + EgtSetInfo( H5Id, 'AGB_ENCV', 380) + EgtSetInfo( H5Id, 'AGB_MDIR', -X_AX()) + EgtSetInfo( H5Id, 'ZMAXONROT', '1,15') +end -- Morse local YId = EmtAxis { Name = 'Y', @@ -423,6 +449,7 @@ else Geo = 'BASE/T101S'} end if SecondSupport == 1 then + -- supporto per punta EmtTcPos { Name = 'T111', Parent = 'Base', @@ -430,6 +457,29 @@ if SecondSupport == 1 then TDir = Z_AX(), ADir = -X_AX(), Geo = 'BASE/T111'} +elseif SecondSupport == 2 then + -- supporto per mortasatrice + local TcpSsId = EmtTcPos { + Name = 'T111', + Parent = 'Base', + Pos = Point3d( 510.4, -113.2, -430.8), + TDir = X_AX(), + ADir = Z_AX(), + Geo = 'BASE/T111M'} + EgtSetInfo( TcpSsId, 'Mortiser', true) +elseif SecondSupport == 3 then + -- supporto per rinvio angolare + local TcpSsId = EmtTcPos { + Name = 'T91', + Parent = 'Base', + ExitNbr = 2, + Pos1 = Point3d( 710.4+150, -113.2, -329.8-170), + TDir1 = -X_AX(), + Pos2 = Point3d( 710.4-150, -113.2, -329.8-170), + TDir2 = X_AX(), + ADir = Z_AX(), + Geo = 'BASE/T91', + Aux = 'BASE/T91_HS'} end if SpecialBH then EmtTcPos { diff --git a/Essetre-FASTrl.nge b/Essetre-FASTrl.nge index e488711..6d6cdd7 100644 Binary files a/Essetre-FASTrl.nge and b/Essetre-FASTrl.nge differ diff --git a/Scripts/SetUp.lua b/Scripts/SetUp.lua index 2806b6e..97f9aee 100644 --- a/Scripts/SetUp.lua +++ b/Scripts/SetUp.lua @@ -39,10 +39,18 @@ local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H1", Group = "G1"}, {Pos = "Pos10", TcPos = "T10", Head = "H1", Group = "G1"}, {Pos = "Pos11", TcPos = "T11", Head = "H1", Group = "G1"}, {Pos = "Pos12", TcPos = "T42", Head = "H2", Group = "G1"}, - {Pos = "Pos13", TcPos = "T101", Head = "H3", Group = "G1"}} - -if EgtGetTcPosId( 'T111') then - table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H1", Group = "G1"}) + {Pos = "Pos13", TcPos = "T101", Head = "H3", Group = "G2"}} +local SecSuppId = EgtGetTcPosId( 'T111') +if SecSuppId then + local bMortiser = EgtGetInfo( SecSuppId, 'Mortiser', 'b') + if bMortiser then + table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H3", Group = "G2"}) + else + table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H1", Group = "G2"}) + end +end +if EgtGetHeadId( 'H5') then + table.insert( PositionTable, {Pos = "Pos14", TcPos = "T91", Head = "H5", Group = "G2"}) end local UsePositionHead = true diff --git a/THolders/AngTransm.nge b/THolders/AngTransm.nge new file mode 100644 index 0000000..d2541c4 Binary files /dev/null and b/THolders/AngTransm.nge differ diff --git a/UpdateLog.txt b/UpdateLog.txt index 41c4b6c..b9c4d2b 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,10 @@ ==== Common_FAST Update Log ==== +Versione 2.6k1 (11/11/2024) +- (GEN) Aggiunta gestione aggregato a T per NUM +- (SIM) Tolta gestione testa dummy H4 +- (SIM-GEN) Aggiustato parametro in calcolo ingombro lavorazione. Ticket#2163 + Versione 2.6j10 (25/10/2024) - (SIM-GEN) Miglioria 2.6j9. Si ribadisce pinza in presa sempre, all'inizio, in base a quella attiva diff --git a/Version.lua b/Version.lua index 789bfa8..e4d4abd 100644 --- a/Version.lua +++ b/Version.lua @@ -3,7 +3,7 @@ local InfoCommon_STD_PP = { NAME = 'Common_FAST', -- nome script PP standard - VERSION = '2.6j10', -- versione script + VERSION = '2.6k1', -- versione script MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel }