diff --git a/Beam/BeamData.lua b/Beam/BeamData.lua index d16ee30..3390de2 100644 --- a/Beam/BeamData.lua +++ b/Beam/BeamData.lua @@ -12,7 +12,8 @@ local BeamData = { MAX_WIDTH = 1505, -- larghezza massima del grezzo MAX_HEIGHT = 605, -- altezza massima del grezzo LEN_SHORT_PART = 1200, -- lunghezza massima pezzo piccolo - MAX_RAW = 20000, -- massima lunghezza grezzo (deve essere minore di LenTable - RAW_OFFSET) + LEN_VERY_SHORT_PART = 800, -- lunghezza massima pezzo molto corto (molto probabile lo scarico a caduta) + MAX_RAW = 26000, -- massima lunghezza grezzo (deve essere minore di LenTable - RAW_OFFSET) STD_RAW = 14000, -- lunghezza standard della barra di grezzo OVM_HEAD = 10, -- sovramateriale testa OVM_MID = 5.4, -- sovramateriale intermedio (spessore lama) @@ -107,6 +108,11 @@ if EgtExistsFile( sDataBeam) then BeamData.DIM_STRIP_SMALL = Machine.Offsets.DIM_STRIP_SMALL or BeamData.DIM_STRIP_SMALL BeamData.DIM_TO_CENTER_STRIP = Machine.Offsets.DIM_TO_CENTER_STRIP or BeamData.DIM_TO_CENTER_STRIP BeamData.MAXDIAM_POCK_CORNER = Machine.Offsets.MAXDIAM_POCK_CORNER or BeamData.MAXDIAM_POCK_CORNER + BeamData.LONGCUT_ENDLEN = Machine.Offsets.LONGCUT_ENDLEN or BeamData.LONGCUT_ENDLEN + BeamData.LONGCUT_MAXLEN = Machine.Offsets.LONGCUT_MAXLEN or BeamData.LONGCUT_MAXLEN + BeamData.ADVANCE_TAIL_OFFS = Machine.Offsets.ADVANCE_TAIL_OFFS or BeamData.ADVANCE_TAIL_OFFS + BeamData.LEN_VERY_SHORT_PART = Machine.Offsets.LEN_VERY_SHORT_PART or BeamData.LEN_VERY_SHORT_PART + BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID end if Machine.Trave then diff --git a/Common_PF1250.TPA.mlpe b/Common_PF1250.TPA.mlpe index 937fa1c..1dd5921 100644 --- a/Common_PF1250.TPA.mlpe +++ b/Common_PF1250.TPA.mlpe @@ -28,7 +28,9 @@ 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, 130000) -- feed massima pinze + EMT.MAXACC = MaxAcc or 6000 -- accelerazione massima pinze. In realtà è il tempo in millisecondi, quindi MAXACC corrisponde al tempo massimo per raggiungere la velocità desiderata + EMT.MINACC = MinAcc or 600 -- accelerazione minima pinze. In realtà è il tempo in millisecondi, quindi MINACC corrisponde al tempo massimo per raggiungere la velocità desiderata SetToParkLine() -- si inizia con linee da parcheggiare su stack end @@ -51,6 +53,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 +105,7 @@ function OnProgramEnd() EMT.FALL = nil EMT.RELOAD = nil EMT.RELOAD2 = nil + MyOutput( '(FOOTER)') -- Termino il programma MyOutput( 'M202') MyOutput( 'M02') @@ -290,6 +294,8 @@ function OnDispositionEnd() for i = 1, #EMT.MDCHAR do EmitMoveDataChars( EMT.MDCHAR[i]) if EMT.MDCHAR[i].Y1 then EMT.CHY_ON = true end + if EMT.MDCHAR[i].V1 then EMT.V1POS = EMT.MDCHAR[i].V1 end + if EMT.MDCHAR[i].V2 then EMT.V2POS = EMT.MDCHAR[i].V2 end end if #EMT.MDCHAR > 0 then local nMoveType = EgtIf( EMT.CHY_ON, 3, 2) @@ -580,8 +586,8 @@ function OnPathStart() if EMT.TOOL == EMT.PREVTOOL and not EMT.ZMAX then EMT.L2pp = EMT.L2op EMT.L3pp = EMT.L3op - EMT.R1pp = EMT.R1p - EMT.R2pp = EMT.R2p + EMT.R1pp = EMT.R1p or EMT.R1pp + EMT.R2pp = EMT.R2p or EMT.R2pp else EMT.L2pp = nil EMT.L3pp = nil @@ -1386,6 +1392,7 @@ function OnRapid() MyOutput( 'M98') MyOutput( 'M6 ' .. GetHeadToolCode() .. AdjustTcPos( true)) MyOutput( 'G24' .. EMT.IPLGLSTR) + EMT.PLANEACTIVE = true -- forzo successiva emissione assi rotanti EMT.R1p = nil EMT.R2p = nil @@ -1467,6 +1474,7 @@ function OnLinear() MyOutput( 'M98') MyOutput( 'M6 ' .. GetHeadToolCode() .. AdjustTcPos( true)) MyOutput( 'G24' .. EMT.IPLGLSTR) + EMT.PLANEACTIVE = true -- emissione movimento EMT.R1p = nil EMT.R2p = nil @@ -1557,6 +1565,7 @@ function OnArc() MyOutput( 'M98') MyOutput( 'M6 ' .. GetHeadToolCode() .. AdjustTcPos( true)) MyOutput( 'G24' .. EMT.IPLGLSTR) + EMT.PLANEACTIVE = true -- emissione movimento EMT.R1p = nil EMT.R2p = nil @@ -1621,24 +1630,20 @@ end --------------------------------------------------------------------- function CalcDinamicaPinze( dH, dS, dL) - local MinTempoAcc = 0.6 -- [s] - local MaxTempoAcc = 6.0 -- [s] - local KgMtCubo= WoodDensity or 550 -- densità legno [Kg / metro cubo] + local MinTempoAcc = EMT.MINACC -- [ms] ~600 + local MaxTempoAcc = EMT.MAXACC -- [ms] ~6000 + local KgMtCubo= WoodDensity or 550 -- densità legno [Kg / metro cubo] local Massa = ( dH * dS * dL * KgMtCubo ) / 1e9 -- massa [Kg] local FMaxPinze = EMT.FMAXPINZE -- Feed massima pinze [mm/min] local ForzaAttrito = 350 * 9.8 * 0.2 -- Forza chiusura pinze [Kgf] * g * Coeff_Attrito -> [N] - local TempoAcc = ( ( Massa * FMaxPinze) / ( 60 * ForzaAttrito) / 1000) - if ( TempoAcc < MinTempoAcc) then TempoAcc = MinTempoAcc end - if ( TempoAcc > MaxTempoAcc) then TempoAcc = MaxTempoAcc end - local AccMaxPinze = FMaxPinze / ( 60 * MinTempoAcc) - local AccPinze = FMaxPinze / ( 60 * TempoAcc) + local TempoAcc = EgtClamp( ( Massa * FMaxPinze) / ( 60 * ForzaAttrito), MinTempoAcc, MaxTempoAcc) local RidFeed = 100 / Massa * 100 if RidFeed > 100 then RidFeed = 100 elseif RidFeed < 10 then RidFeed = 10 end - return TempoAcc * 1000, MinTempoAcc * 1000, RidFeed + return TempoAcc, MinTempoAcc, RidFeed end --------------------------------------------------------------------- @@ -2323,7 +2328,7 @@ function AdjustTcPos( bLen3, sTcPos, dAxR3) end end if sPos == '111' then - if not dAxR3 then dAxR3 = EMT.R3 end + if not dAxR3 then dAxR3 = EMT.R3 or 0 end -- controllo che il valore esista. Altrimenti è una testa senza asse ausiliario if dAxR3 then if abs( dAxR3 - 0) < 0.1 then @@ -2340,7 +2345,7 @@ function AdjustTcPos( bLen3, sTcPos, dAxR3) end end if sPos == '121' then - if not dAxR3 then dAxR3 = EMT.R3 end + if not dAxR3 then dAxR3 = EMT.R3 or 0 end -- controllo che il valore esista. Altrimenti è una testa senza asse ausiliario if dAxR3 then if abs( dAxR3 - 0) < 0.1 then @@ -2622,15 +2627,19 @@ end --------------------------------------------------------------------- function EmitResetMachining() - MyOutput( 'G27') - if EMT.PREFALLCUT then - MyOutput( 'M29') - EMT.PREFALLCUT = nil + if EMT.PLANEACTIVE then + MyOutput( 'G27') + if EMT.PREFALLCUT then + MyOutput( 'M29') + EMT.PREFALLCUT = nil + end + local sP12 = '' + if EMT.TOOL ~= GetNextTool( EMT.MCHID) then sP12 = EgtIf( EMT.HEAD ~= 'H21', ' P1=0'..EgtIf( EMT.DOU_TYPE, ' P2=0', ''), ' P2=0') end + local sP4 = EgtIf( EMT.MCHUSERNOTES:find( 'Split', 1, true), ' P4=1', '') + MyOutput( 'M99'..sP12..sP4) + -- piano non più attivo + EMT.PLANEACTIVE = false end - local sP12 = '' - if EMT.TOOL ~= GetNextTool( EMT.MCHID) then sP12 = EgtIf( EMT.HEAD ~= 'H21', ' P1=0'..EgtIf( EMT.DOU_TYPE, ' P2=0', ''), ' P2=0') end - local sP4 = EgtIf( EMT.MCHUSERNOTES:find( 'Split', 1, true), ' P4=1', '') - MyOutput( 'M99'..sP12..sP4) end --------------------------------------------------------------------- diff --git a/Common_PF1250.mlpe b/Common_PF1250.mlpe index 7bebadd..639d1a9 100644 --- a/Common_PF1250.mlpe +++ b/Common_PF1250.mlpe @@ -224,18 +224,24 @@ function OnSimulDispositionStart() end end -- determino la risoluzione dello Zmap - local dArea = b3Raw:getDimX() * b3Raw:getDimY() + b3Raw:getDimX() * b3Raw:getDimZ() + b3Raw:getDimY() * b3Raw:getDimZ() - local dTol = 4.51 - if dArea < CoeffVM * 0.5e6 then - dTol = 1.01 - elseif dArea < CoeffVM * 1.2e6 then - dTol = 1.51 - elseif dArea < CoeffVM * 2.5e6 then - dTol = 1.97 - elseif dArea < CoeffVM * 5.0e6 then - dTol = 2.81 - elseif dArea < CoeffVM * 10.0e6 then - dTol = 3.77 + local dTol = 4.71 + if EmtGetVMillStep then + dTol = EmtGetVMillStep( b3Raw:getDimX(), b3Raw:getDimY(), b3Raw:getDimZ(), 4.71) + else + local dArea = b3Raw:getDimX() * b3Raw:getDimY() + b3Raw:getDimX() * b3Raw:getDimZ() + b3Raw:getDimY() * b3Raw:getDimZ() + if dArea < 0.075e6 then + dTol = 0.71 + elseif dArea < 0.15e6 then + dTol = 1.01 + elseif dArea < 0.3e6 then + dTol = 1.51 + elseif dArea < 0.6e6 then + dTol = 1.97 + elseif dArea < 1.2e6 then + dTol = 2.81 + elseif dArea < 2.4e6 then + dTol = 3.77 + end end -- creo lo Zmap local VMillId = EgtVolZmapBox( nPartRawId, b3Raw:getMin(), b3Raw:getDimX(), b3Raw:getDimY(), b3Raw:getDimZ(), dTol, true, GDB_RT.GLOB) @@ -2164,18 +2170,19 @@ end --------------------------------------------------------------------- -- *** ESTIMATION T&L *** --------------------------------------------------------------------- -local RAPID_X_FEED = 70000 -- mm/min -local RAPID_Y_FEED = 100000 -- mm/min -local RAPID_Z_FEED = 32000 -- mm/min -local RAPID_C_FEED = 15000 -- deg/min -local RAPID_B_FEED = 15000 -- deg/min -local RAPID_MIN_T = 0.1 -- s -local LOAD_T = 2 -- s -local CHAR_ONE_MOVE_T = 1 -- s -local ROTATION_T = 40 -- s -local SPLIT_T = 6 -- s -local UNLOAD_T = 4 -- s -local FALL_T = 2 -- s +local ESTIMATION_RAPID_COEFF = EstimationRapidMultiplier or 1 +local RAPID_X_FEED = 70000 / ESTIMATION_RAPID_COEFF -- mm/min +local RAPID_Y_FEED = 100000 / ESTIMATION_RAPID_COEFF -- mm/min +local RAPID_Z_FEED = 32000 / ESTIMATION_RAPID_COEFF -- mm/min +local RAPID_C_FEED = 15000 / ESTIMATION_RAPID_COEFF -- deg/min +local RAPID_B_FEED = 15000 / ESTIMATION_RAPID_COEFF -- deg/min +local RAPID_MIN_T = 0.1 * ESTIMATION_RAPID_COEFF -- s +local LOAD_T = 2 * ESTIMATION_RAPID_COEFF -- s +local CHAR_ONE_MOVE_T = 1 * ESTIMATION_RAPID_COEFF -- s +local ROTATION_T = 40 * ESTIMATION_RAPID_COEFF -- s +local SPLIT_T = 6 * ESTIMATION_RAPID_COEFF -- s +local UNLOAD_T = 4 * ESTIMATION_RAPID_COEFF -- s +local FALL_T = 2 * ESTIMATION_RAPID_COEFF -- s --------------------------------------------------------------------- function OnEstimStart() diff --git a/Common_PF1250.mlse b/Common_PF1250.mlse index 676260e..c1e9ef9 100644 --- a/Common_PF1250.mlse +++ b/Common_PF1250.mlse @@ -1301,8 +1301,11 @@ function SpecCalcUnload() EgtOutLog( ' *[U1]', 1) end local vCmd = {} + -- Tipo di scarico + local bStdUl = ( not MaxUnloadLen or MaxUnloadLen < 1 or EMC.LB - EMC.HOVM < MaxUnloadLen + 1) + -- Commento - table.insert( vCmd, { 0, 'Unloading'}) + table.insert( vCmd, { 0, 'Unloading', EgtIf( bStdUl, 'Unloading', 'Manual Unloading')}) -- posizionamento sicuro teste e rulli (non serve ?) --table.insert( vCmd, { 4, 0}) -- Se pinza Y chiusa, la apro @@ -1310,11 +1313,15 @@ function SpecCalcUnload() table.insert( vCmd, { 11, 0}) EMC.CNT = nil end - -- Sposto il pezzo in posizione di scarico - local dFinT = EgtIf( EMC.LB < MaxLenSmT, UnloadSmT, UnloadT) - EMC.LB - local dFinY2 = dFinT + EMC.Y2DELTA - table.insert( vCmd, { 2, 'T', dFinT, 'Y2', dFinY2}) - EgtOutLog( ' Y2PosF=' .. EgtNumToString( dFinY2), 1) + -- Se non supero la lunghezza massima di scarico, sposto il pezzo in posizione di scarico + if bStdUl then + local dFinT = EgtIf( EMC.LB < MaxLenSmT, UnloadSmT, UnloadT) - EMC.LB + local dFinY2 = dFinT + EMC.Y2DELTA + table.insert( vCmd, { 2, 'T', dFinT, 'Y2', dFinY2}) + EgtOutLog( ' Y2PosF=' .. EgtNumToString( dFinY2), 1) + else + table.insert( vCmd, { 1, 'Y2', MaxY2}) + end -- apro la morsa table.insert( vCmd, { 12, 0}) -- riporto il carrello in home diff --git a/Essetre-PF1500MAXrl-3T.mlde b/Essetre-PF1500MAXrl-3T.mlde index 6377d0b..81fdbab 100644 --- a/Essetre-PF1500MAXrl-3T.mlde +++ b/Essetre-PF1500MAXrl-3T.mlde @@ -5,10 +5,10 @@ require( 'EmtGenerator') EgtEnableDebug( false) -PP_VER = '2.7b4' -PP_NVER = '2.7.2.4' -MIN_MACH_VER = '2.5k1' -MACH_NAME = 'Essetre-PF1500MAXrl-3T' +PP_VER = '2.7h2' +PP_NVER = '2.7.8.2' +MIN_MACH_VER = '2.7d2' +MACH_NAME = string.match( EgtGetCurrMachineDir(), "[^\\]+$") -- si ricava il nome della macchina dal direttorio -- Carico i dati globali local sMachDir = EgtGetCurrMachineDir() @@ -161,7 +161,7 @@ DeltaTabY = 2065.5 DeltaTabZ = -1491.0 + MillOffs -- per TPA : -1228.0 + MillOffs -- per NUM : -1058.0 DeltaRulliTraveZ = -1266 DimTabY = 1600 -DimTabX = 30000 +DimTabX = 34000 Delta2TabY = -2907.4 Delta2TabZ = 693.0 - Mill2Offs -- per TPA : 543.0 - Mill2Offs -- per NUM : 373.0 Delta3TabY = 2065.5 @@ -174,7 +174,6 @@ Head2Y = DeltaTabY - Delta2TabY Head2Z = DeltaTabZ - Delta2TabZ DefTcPos1 = 'T1' DefTcPos2 = 'T220' -CoeffVM = 0.5 MinForzaPinze = 400 -- [Kgf] MaxForzaPinze = 1000 -- [Kgf] Tc2Active = true @@ -182,12 +181,13 @@ 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 ForceToCloseRollersGate = false Motors23KW = true +EstimationRapidMultiplier = 1 -- Aggiornamento con dati da TechnoEssetre7 local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PF1500MAXrl-3T.data" @@ -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,11 @@ 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.NOULOAD then MaxUnloadLen = Machine.Offsets.NOULOAD end + if Machine.Offsets.MAXFEEDPINZE then MaxFeedPinze = Machine.Offsets.MAXFEEDPINZE end + if Machine.Offsets.MAXACC then MaxAcc = Machine.Offsets.MAXACC end + if Machine.Offsets.MINACC then MinAcc = Machine.Offsets.MINACC end + if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI 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 @@ -323,6 +328,7 @@ EmtGeneral { ExitMaxAdjust = 300, ExitMaxRotAdj = 0.5, AngDeltaMinForHome = 80, + LinkAxesMoveOrder = MCH_LKAMO.HEAD_BEFORE_IF_SAME_ANG, Special = 'Common_PF1250.mlse', Processor = 'Common_PF1250.mlpe'} -- in base alla corsa macchina, si carica la rulliera di carico/scarico appropriata @@ -480,7 +486,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 +944,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 +985,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 +1091,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 +1293,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 +1319,7 @@ end --------------------------------------------------------------------- -- Funzione che riconosce testa per sega a catena function HeadIsChainSaw( sHead) - return ( sHead == 'H13' or sHead == 'H15') + return ( sHead == 'H13') end --------------------------------------------------------------------- diff --git a/Essetre-PF1500MAXrl-3T.nge b/Essetre-PF1500MAXrl-3T.nge index 50af5b5..afc6131 100644 Binary files a/Essetre-PF1500MAXrl-3T.nge and b/Essetre-PF1500MAXrl-3T.nge differ diff --git a/MachNotes.ini b/MachNotes.ini index 5f58449..8b2d740 100644 --- a/MachNotes.ini +++ b/MachNotes.ini @@ -7,18 +7,19 @@ [Sawing] [Milling] -0=d,MaxElev,0 +0=l,MaxElev,0 1=d,OutRaw,0 -2=d,SideElev,0 +2=l,SideElev,0 3=d,TrimExt,0 -4=sr,VtFaceUse,0,0,0 +4=s,VtFaceUse,0,0,0 +5=s,EdgesFaceUse,0 [Pocketing] -0=d,MaxElev,0 +0=l,MaxElev,0 1=b,Open,0 -2=d,OpenMinSave,0 +2=d,OpenMinSafe,0 3=d,OpenOutRaw,0 -4=d,MaxOptSize,0 +4=l,MaxOptSize,0 [Mortising] 0=d,MaxElev,0 @@ -30,21 +31,28 @@ [SawFinishing] [GenMachining] -0=l,LinTol,0.1 -1=l,MaxLen,2 -2=s,Type,ZigZag -3=d,SideAng,90 -4=l,Step,10 -5=l,OffsProj,0 -6=l,LiTang,0 -7=l,LiOrth,0 -8=l,LiElev,0 -9=l,LoTang,0 -10=l,LoOrth,0 -11=l,LoElev,0 -12=b,DirFromGuide,1 [SurfRoughing] +0=l,MaxElev,1000 +1=b,PlaneZ,0 [SurfFinishing] 0=b,SkipMaxDown,1 + +[5AxMilling] +0=l,LinTol,0.01 +1=l,MaxLen,10 +2=s,Type,ZigZag +3=d,SideAng,90 +4=l,Step,10 +5=d,AngIni,-90 +6=d,AngFin,90 +7=l,LiTang,0 +8=l,LiOrth,0 +9=l,LiElev,0 +10=l,LoTang,0 +11=l,LoOrth,0 +12=l,LoElev,0 +13=b,DirFromGuide,0 +14=b,SurfAvoid,0 + diff --git a/Scripts/SetUp.lua b/Scripts/SetUp.lua index 90ed21f..3b9c052 100644 --- a/Scripts/SetUp.lua +++ b/Scripts/SetUp.lua @@ -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 diff --git a/UpdateLog.txt b/UpdateLog.txt index 1779ca6..8014786 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,26 @@ ==== Common_PF1250 Update Log ==== +Versione 2.7h2 (21/08/2025) +- (GEN) Se la testa rimane bassa, corretto caso di reset del piano generico a fine lavorazione +- (GEN) Corretto movimento in Z massima dopo scarico pezzo + +Versione 2.7h1 (20/08/2025) +- (GEN) Per posizione T111 e T121, se non è presente asse rotante per presa aggregato (es. se si mette una fresa normale) viene settato a zero. +- (MLDE-SIM) Aggiunta variabile FACOLTATIVA 'EstimationRapidMultiplier' in mlde per regolare il tempo stimato di rapido su macchine vecchie. Se non presente default 1. + +Versione 2.7g1 (01/07/2025) +- (GEN) Lettura parametri accelerazioni da TS3. Ticket#2052 +- (SIM-GEN) Aggiunta gestione massima lunghezza scarico + +Versione 2.7d2 (24/04/2025) +- (SIM) Modifica qualità VMILL. Da ora si può impostare da impostazioni CAM5 + +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 @@ -11,7 +32,7 @@ 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 simulazioen che non mandava testa in home in caso di utensile lungo. Generazione era già ok. Ticket#2280 +- (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. diff --git a/Version.lua b/Version.lua index 9db9255..2294ec7 100644 --- a/Version.lua +++ b/Version.lua @@ -3,7 +3,7 @@ local InfoCommon_STD_PP = { NAME = 'Common_PF1250', -- nome script PP standard - VERSION = '2.7b4', -- versione script + VERSION = '2.7h2', -- versione script MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel }