diff --git a/Common_ONE-PF.NUM.mlpe b/Common_ONE-PF.NUM.mlpe index 81be93e..8c2aeeb 100644 --- a/Common_ONE-PF.NUM.mlpe +++ b/Common_ONE-PF.NUM.mlpe @@ -1,6 +1,10 @@ -- Processore standard macchine ONE e PF by EgalWare s.r.l. 2023/11/24 -- Con controllo numerico NUM +-- Carico i dati globali +local sBaseDir = EgtGetSourceDir() +local BD = dofile( sBaseDir .. 'Beam\\BeamData.lua') + -- Variabili di modulo local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.' local MACHINE_INFO = 'PP_VER ver.'..PP_VER @@ -476,7 +480,7 @@ function OnMachiningEnd() elseif EMT.AUXTYPE == 'P' then if EMT.PREROT then if not EMT.ZMAX then - EmitZmax( false, true, true, EMT.R1, EMT.R2, ( #EMT.MDCHAR > 0)) + EmitZmax( false, true, true, EMT.R1, EMT.R2, false, ( #EMT.MDCHAR > 0)) EMT.ZMAX = true EMT.TO_ZMAX = nil else @@ -486,7 +490,7 @@ function OnMachiningEnd() EmtOutput( '(PART ROTATION)') elseif EMT.FALL then if EMT.TO_ZMAX and not EMT.ZMAX then - EmitZmax( false, true, true, EMT.R1, EMT.R2, ( #EMT.MDCHAR > 0)) + EmitZmax( false, true, true, EMT.R1, EMT.R2, false, ( #EMT.MDCHAR > 0)) EMT.ZMAX = true EMT.TO_ZMAX = nil EMT.TO_XHOME = nil @@ -494,7 +498,7 @@ function OnMachiningEnd() EmtOutput( '(PART FALL)') elseif EMT.SPECSPLIT then if EMT.TO_ZMAX and not EMT.ZMAX then - EmitZmax( false, true, true, EMT.R1, EMT.R2, ( #EMT.MDCHAR > 0)) + EmitZmax( false, true, true, EMT.R1, EMT.R2, false, ( #EMT.MDCHAR > 0)) EMT.ZMAX = true EMT.TO_ZMAX = nil EMT.TO_XHOME = nil @@ -613,7 +617,7 @@ function OnPathStart() local dCosA = sqrt( max( 1 - EMT.EXTR[1] * EMT.EXTR[1], 0)) EMT.DELTA_LT = max( EMT.XMINT - Point3d( EMT.MMAX):getX() - dCosA * EMT.TDIAM / 2, 0) end - + -- se utensile non cambiato, salvo eventuali precedenti lineari e rotanti if EMT.TOOL == EMT.PREVTOOL and not EMT.ZMAX then EMT.L1pp = EMT.L1op @@ -805,7 +809,7 @@ function OnRapid() dXref = -LimX1PlRotSaw end -- se fresa o lama - if EMT.HEAD ~= 'H13' and EMT.HEAD ~= 'H15' then + if not HeadIsChainSaw( EMT.HEAD) then EmitMoveDataHead( 1, { X=dXref, Z=MyMaxZ1, B=ParkB1, C=ParkC1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveStartHead( 1) EmitMoveWaitHead( 1) @@ -828,11 +832,20 @@ function OnRapid() end -- altrimenti sega a catena else - EmitMoveDataHead( 1, { X=EMT.L2, Z=ParkCSawZ1, B=HomeB1, C=EMT.R1, TRad=dTRad, TLen=dTLen, S=Speed}) + EmitMoveDataHead( 1, { X=-ParkCSawX1, Z=ParkCSawZ1, B=ParkCSawB1, C=ParkCSawC1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveStartHead( 1) EmitMoveWaitHead( 1) EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) - EmitMoveDataHead( 1, { Z=dSafeZ1, B=EMT.R2, C=EMT.R1, S=Speed}) + + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) + -- se circa verticale + else + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) + end end EmitMoveDataHead( 1, { X=EMT.L2, Z=EMT.L3, B=EMT.R2, C=EMT.R1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveStartHead( 1) @@ -864,7 +877,7 @@ function OnRapid() local HomeB1 = EgtGetAxisHomePos( 'B1') local dTRad, dTLen = GetToolRadLen() -- se fresa o lama - if EMT.HEAD ~= 'H13' and EMT.HEAD ~= 'H15' then + if not HeadIsChainSaw( EMT.HEAD) then EmitMoveDataHead( 1, { X=EMT.L2, Z=MyMaxZ1, B=HomeB1, C=HomeC1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveStartHead( 1) EmitMoveWaitHead( 1) @@ -886,23 +899,21 @@ function OnRapid() end -- altrimenti sega a catena else - -- se pezzo molto alto e R3=0, mi sposto prima in X (per ora solo davanti) - if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - EmitMoveDataHead( 1, { X=-SafeCSaw0X2, Z=ParkCSawZ1, B=HomeB1, C=HomeC1, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveStartHead( 1) - EmitMoveWaitHead( 1) - EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) - EmitMoveDataHead( 1, { X=EMT.L2, Z=dSafeZ1, B=EMT.R2, S=Speed}) - EmitMoveDataHead( 1, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { X=-ParkCSawX1, Z=ParkCSawZ1, B=ParkCSawB1, C=ParkCSawC1, TRad=dTRad, TLen=dTLen, S=Speed}) + EmitMoveStartHead( 1) + EmitMoveWaitHead( 1) + EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) + + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) + -- se circa verticale else - EmitMoveDataHead( 1, { X=EMT.L2, Z=ParkCSawZ1, B=HomeB1, C=HomeC1, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveStartHead( 1) - EmitMoveWaitHead( 1) - EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) - EmitMoveDataHead( 1, { Z=dSafeZ1, S=Speed}) - EmitMoveDataHead( 1, { C=EMT.R1, S=Speed}) - EmitMoveDataHead( 1, { B=EMT.R2, S=Speed}) + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) end + end EmitMoveDataHead( 1, { X=EMT.L2, Z=EMT.L3, B=EMT.R2, C=EMT.R1, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveStartHead( 1) @@ -920,7 +931,7 @@ function OnRapid() local HomeB2 = EgtGetAxisHomePos( 'B2') local dTRad, dTLen = GetToolRadLen() -- se fresa o lama - if EMT.HEAD ~= 'H23' then + if not HeadIsChainSaw( EMT.HEAD) then EmitMoveDataHead( 2, { X=EMT.L2, Z=MyMaxZ2, B=HomeB2, C=HomeC2, TRad=dTRad, TLen=dTLen, S=Speed}) EmitMoveStartHead( 2) EmitMoveWaitHead( 2) @@ -942,21 +953,19 @@ function OnRapid() end -- altrimenti sega a catena else - -- se pezzo molto alto e R3=0, mi sposto prima in X (per ora solo davanti) - if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - EmitMoveDataHead( 2, { X=-SafeCSaw0X2, Z=ParkCSawZ2, B=HomeB2, C=HomeC2, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveStartHead( 2) - EmitMoveWaitHead( 2) - EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) - EmitMoveDataHead( 2, { X=EMT.L2, Z=dSafeZ2, B=EMT.R2, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { X=-ParkCSawX1, Z=ParkCSawZ1, B=ParkCSawB1, C=ParkCSawC1, TRad=dTRad, TLen=dTLen, S=Speed}) + EmitMoveStartHead( 1) + EmitMoveWaitHead( 1) + EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) + + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) + -- se circa verticale else - EmitMoveDataHead( 2, { X=EMT.L2, Z=ParkCSawZ2, B=HomeB2, C=HomeC2, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveStartHead( 2) - EmitMoveWaitHead( 2) - EmitMoveWaitChars( EgtIf( bOnlyCharY, 1, 3)) - EmitMoveDataHead( 2, { X=EMT.L2, Z=dSafeZ2, B=EMT.R2, C=HomeC2, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) end end EmitMoveDataHead( 2, { X=EMT.L2, Z=EMT.L3, B=EMT.R2, C=EMT.R1, TRad=dTRad, TLen=dTLen, S=Speed}) @@ -1116,7 +1125,7 @@ function OnRapid() local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65) if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then -- se fresa o lama - if EMT.HEAD ~= 'H13' and EMT.HEAD ~= 'H15' then + if not HeadIsChainSaw( EMT.HEAD) then local CurrZ1 = EMT.L3pp or MyMaxZ1 local CurrB1 = PrevR2 local CurrC1 = PrevR1 @@ -1142,9 +1151,16 @@ function OnRapid() end -- altrimenti sega a catena 'H13' else - EmitMoveDataHead( 1, { X=EMT.L2, Z=ParkCSawZ1, B=HomeB1, C=HomeC1, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveDataHead( 1, { Z=dSafeZ1, S=Speed}) - EmitMoveDataHead( 1, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { X=-ParkCSawX1, Z=ParkCSawZ1, B=ParkCSawB1, C=ParkCSawC1, TRad=dTRad, TLen=dTLen, S=Speed}) + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) + -- se circa verticale + else + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) + end end end EmitMoveDataHead( 1, { X=EMT.L2, Z=EMT.L3, B=EMT.R2, C=EMT.R1, TRad=dTRad, TLen=dTLen, S=Speed}) @@ -1183,7 +1199,7 @@ function OnRapid() local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65) if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then -- se fresa o lama - if EMT.HEAD ~= 'H13' and EMT.HEAD ~= 'H15' then + if not HeadIsChainSaw( EMT.HEAD) then local CurrZ1 = EMT.L3pp or MyMaxZ1 local CurrB1 = PrevR2 local CurrC1 = PrevR1 @@ -1205,16 +1221,15 @@ function OnRapid() end -- altrimenti sega a catena else - -- se pezzo molto alto e R3=0, mi sposto prima in X (per ora solo davanti) - if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - EmitMoveDataHead( 1, { X=-SafeCSaw0X1, Z=ParkCSawZ1, B=HomeB1, C=HomeC1, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveDataHead( 1, { X=EMT.L2, Z=dSafeZ1, B=EMT.R2, S=Speed}) - EmitMoveDataHead( 1, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { X=-ParkCSawX1, Z=ParkCSawZ1, B=ParkCSawB1, C=ParkCSawC1, TRad=dTRad, TLen=dTLen, S=Speed}) + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) + -- se circa verticale else - EmitMoveDataHead( 1, { X=EMT.L2, Z=ParkCSawZ1, B=HomeB1, C=HomeC1, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveDataHead( 1, { Z=dSafeZ1, S=Speed}) - EmitMoveDataHead( 1, { C=EMT.R1, S=Speed}) - EmitMoveDataHead( 1, { B=EMT.R2, S=Speed}) + EmitMoveDataHead( 1, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 1, { Z=EMT.L3, B=EMT.R2, S=Speed}) end end end @@ -1232,7 +1247,7 @@ function OnRapid() local Speed = EMT.S * EgtIf( EMT.HEAD ~= 'H12' and EMT.HEAD ~= 'H22', 1, 1.65) if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then -- se fresa o lama - if EMT.HEAD ~= 'H23' then + if not HeadIsChainSaw( EMT.HEAD) then local CurrZ2 = EMT.L3pp or MyMaxZ2 local CurrB2 = PrevR2 local CurrC2 = PrevR1 @@ -1254,15 +1269,15 @@ function OnRapid() end -- altrimenti sega a catena else - -- se pezzo molto alto e R3=0, mi sposto prima in X (per ora solo davanti) - if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - EmitMoveDataHead( 2, { X=-SafeCSaw0X2, Z=ParkCSawZ2, B=HomeB2, C=HomeC2, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveDataHead( 2, { X=EMT.L2, Z=dSafeZ2, B=EMT.R2, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 2, { X=-ParkCSawX1, Z=ParkCSawZ1, B=ParkCSawB1, C=ParkCSawC1, TRad=dTRad, TLen=dTLen, S=Speed}) + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + EmitMoveDataHead( 2, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 2, { Z=EMT.L3, B=EMT.R2, S=Speed}) + -- se circa verticale else - EmitMoveDataHead( 2, { X=EMT.L2, Z=ParkCSawZ2, B=HomeB2, C=HomeC2, TRad=dTRad, TLen=dTLen, S=Speed}) - EmitMoveDataHead( 2, { Z=dSafeZ2, B=EMT.R2, S=Speed}) - EmitMoveDataHead( 2, { C=EMT.R1, S=Speed}) + EmitMoveDataHead( 2, { X=EMT.L2, C=EMT.R1, S=Speed}) + EmitMoveDataHead( 2, { Z=EMT.L3, B=EMT.R2, S=Speed}) end end end @@ -1416,7 +1431,7 @@ function OnRapid() local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool) or ( EMT.HEAD == 'H23' and EMT.TOOL ~= sNextTool) or ( EMT.HEAD == 'H13' and EMT.TOOL ~= sNextTool) or EMT.HEAD == 'H12' or EMT.HEAD == 'H22' local CurrL3o = EMT.L3o EMT.L3o = EMT.L3op - EmitZmax( true, true, bToXhome, EMT.R1p, EMT.R2p) + EmitZmax( true, true, bToXhome, EMT.R1p, EMT.R2p, EMT.MCHSPLIT) EMT.L3o = CurrL3o -- aggiorno quota finale trave dopo Zmax EMT.L1o = EMT.TPOS @@ -1809,7 +1824,10 @@ function PrepareMoveChar( sCmd, nInd) elseif Cmd[1] == '11' then EMT.ISY1 = CalcCharStatusN( Cmd[2]) EMT.FSY1 = EMT.ISY1 - EMT.BV = EgtIf( Cmd[2] ~= '0', 1, 2) + -- se pinza due in presa, non attivo la 1 + if EMT.BV ~= 2 then + EMT.BV = EgtIf( Cmd[2] ~= '0', 1, 2) + end if #EMT.MDCHAR > 0 then EMT.MDCHAR[#EMT.MDCHAR].FinStatY1 = EMT.FSY1 end elseif Cmd[1] == '12' then EMT.ISY2 = CalcCharStatusN( Cmd[2]) @@ -2428,7 +2446,7 @@ function GetSpecUnloading( nPathId) end --------------------------------------------------------------------- -function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bUsePrevDelta) +function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelta) if bReset then EmitResetMachining() end @@ -2445,7 +2463,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bUsePrevDelta) -- se necessario allargo le cabine if RollerParkingNeeded( EMT.HEAD, PrevR1, PrevR2, dSafeC1, dSafeB1) then local dPosT = EgtIf( bEnd, EMT.L1o, EMT.TPOS or EMT.L1op) - EmitParkRoller( dPosT, bUsePrevDelta) + EmitParkRoller( dPosT, bSplitCut, bUsePrevDelta) end -- se fresa o lama if GetHeadTCSet( EMT.HEAD, EMT.TCPOS) == 'Head1_TC1' then @@ -2480,15 +2498,13 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bUsePrevDelta) EmitMoveWaitHead( 1) -- altrimenti sega a catena else - if BD.RIGHT_LOAD then - EmitMoveDataHead( 1, { X=-EMT.L2o, Z=dSafeZ1, B=dSafeB1, C=PrevR1}) - EmitMoveDataHead( 1, { X=-dSafeX1, C=dSafeC1}) - if bXhome then - EmitMoveDataHead( 1, { X=-ParkX1, Z=ParkCSawZ1, B=ParkB1, C=ParkC1, TPos=50}) - end - else - EmitMoveDataHead( 1, { X=-EMT.L2o, Z=dSafeZ1, B=dSafeB1, C=PrevR1}) - EmitMoveDataHead( 1, { C=dSafeC1}) + EmitMoveDataHead( 1, { Z=dSafeZ1, B=dSafeB1}) + if EMT.SB > 650 and abs( EMT.R3) < 0.1 then + EmitMoveDataHead( 1, { Z=ParkCSawZ1, B=ParkB1}) + end + EmitMoveDataHead( 1, { X=-dSafeX1, C=dSafeC1}) + if bXhome then + EmitMoveDataHead( 1, { X=-ParkX1, Z=ParkCSawZ1, B=ParkB1, C=ParkC1, TPos=50}) end EmitMoveStartHead( 1) EmitMoveWaitHead( 1) @@ -2496,7 +2512,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bUsePrevDelta) -- se altrimenti fresa o lama su TC frontale else -- se fresa o lama - if EMT.HEAD ~= 'H13' and EMT.HEAD ~= 'H15' then + if not HeadIsChainSaw( EMT.HEAD) then -- eseguo la salita a Z1max (oriento solo se assi rotanti non già a posto) if abs( dSafeC1 - PrevR1) > 0.1 or abs( dSafeB1 - PrevR2) > 0.1 then local dZref = dSafeZ1 + GetZExtra( EMT.HEAD, PrevR2) @@ -2520,13 +2536,11 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bUsePrevDelta) EmitMoveWaitHead( 1) -- altrimenti sega a catena else - EmitMoveDataHead( 1, { X=-EMT.L2o, Z=dSafeZ1, B=dSafeB1, C=PrevR1}) - EmitMoveDataHead( 1, { C=dSafeC1}) - -- se pezzo molto alto e R3=0, mi sposto prima in X (per ora solo davanti) + EmitMoveDataHead( 1, { Z=dSafeZ1, B=dSafeB1}) if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - EmitMoveDataHead( 1, { X=-SafeCSaw0X1}) - EmitMoveDataHead( 1, { Z=ParkCSawZ1}) + EmitMoveDataHead( 1, { Z=ParkCSawZ1, B=ParkB1}) end + EmitMoveDataHead( 1, { X=-dSafeX1, C=dSafeC1}) if bXhome then EmitMoveDataHead( 1, { X=-ParkX1, Z=ParkCSawZ1, B=ParkB1, C=ParkC1, TPos=50}) end @@ -2545,10 +2559,10 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bUsePrevDelta) -- se necessario allargo le cabine if RollerParkingNeeded( EMT.HEAD, PrevR1, PrevR2, dSafeC2, dSafeB2) then local dPosT = EgtIf( bEnd, EMT.L1o, EMT.TPOS or EMT.L1op) - EmitParkRoller( dPosT, bUsePrevDelta) + EmitParkRoller( dPosT, bSplitCut, bUsePrevDelta) end -- se fresa o lama - if EMT.HEAD ~= 'H23' then + if not HeadIsChainSaw( EMT.HEAD) then -- eseguo la salita a Z2max (oriento solo se assi rotanti non già a posto) if abs( dSafeC2 - PrevR1) > 0.1 or abs( dSafeB2 - PrevR2) > 0.1 then local dZref = dSafeZ2 + GetZExtra( EMT.HEAD, PrevR2) @@ -2572,13 +2586,11 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bUsePrevDelta) EmitMoveWaitHead( 2) -- altrimenti sega a catena else - EmitMoveDataHead( 2, { X=-EMT.L2o, Z=dSafeZ2, B=dSafeB2, C=PrevR1}) - EmitMoveDataHead( 2, { C=dSafeC2}) - -- se pezzo molto alto e R3=0, mi sposto prima in X (per ora solo davanti) + EmitMoveDataHead( 1, { Z=dSafeZ2, B=dSafeB2}) if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - EmitMoveDataHead( 2, { X=-SafeCSaw0X2}) - EmitMoveDataHead( 2, { Z=ParkCSawZ2}) + EmitMoveDataHead( 1, { Z=ParkCSawZ2, B=ParkB2}) end + EmitMoveDataHead( 1, { X=-dSafeX2, C=dSafeC2}) if bXhome then EmitMoveDataHead( 2, { X=-ParkX2, Z=ParkCSawZ2, B=ParkB2, C=ParkC2, TPos=50}) end @@ -2655,7 +2667,7 @@ function EmitResetMachining() end --------------------------------------------------------------------- -function EmitParkRoller( dPosT, bUsePrevDelta) +function EmitParkRoller( dPosT, bSplitCut, bUsePrevDelta) -- se entrambe già parcheggiate, non devo fare alcunché if ( EMT.V1POS - ParkV1) > -0.1 and ( EMT.V2POS - ParkV2) < 0.1 then return end -- Assegno quote pinze correnti @@ -2672,7 +2684,7 @@ function EmitParkRoller( dPosT, bUsePrevDelta) local DiffY1 = MyParkY1 - dPosY1 local DiffY2 = MyParkY2 - dPosY2 --EmtOutput( string.format( 'PosT=%.3f DiffY1=%.3f DiffY2=%.3f', dPosT, DiffY1, DiffY2)) - if EMT.MCHSPLIT then + if bSplitCut then if DiffY1 > 0.1 then MDChar.Y1 = dPosY1 + DiffY1 end @@ -2706,7 +2718,7 @@ function EmitParkRoller( dPosT, bUsePrevDelta) local dPosY1 = dPosT + dY1Delta local DiffY1 = MyParkY1 - dPosY1 local dMoveY1 = EgtIf( DiffY1 > 0.1, dMoveV1, 0) - local dTryMoveY1 = ParkV1 - dPosT - EgtIf( EMT.MCHSPLIT or EMT.FALL, EMT.LT, 0) + local dTryMoveY1 = ParkV1 - dPosT - EgtIf( bSplitCut or EMT.FALL, EMT.LT, 0) if ( dPosT > ParkV2 - ExtraParkV and dPosT < ParkV1 and dPosY1 + dTryMoveY1 < MaxY1) then dMoveY1 = max( dMoveY1, dTryMoveY1) end MDChar.Y1 = dPosY1 + dMoveY1 MDChar.MovType = 1 diff --git a/Common_ONE-PF.mlpe b/Common_ONE-PF.mlpe index 1234d20..936a077 100644 --- a/Common_ONE-PF.mlpe +++ b/Common_ONE-PF.mlpe @@ -6,6 +6,10 @@ require( 'EmtGenerator') EgtEnableDebug( false) +-- Carico i dati globali +local sBaseDir = EgtGetSourceDir() +local BD = dofile( sBaseDir .. 'Beam\\BeamData.lua') + --------------------------------------------------------------------- -- *** GENERATION *** --------------------------------------------------------------------- @@ -276,7 +280,9 @@ function OnSimulDispositionStart() EMT.LB = b3Bar:getDimX() EMT.LR = b3Raw:getDimX() EMT.LT = b3Part:getDimX() - EMT.XMINT = b3Part:getMin():getX() + if b3Part:getMin() then + EMT.XMINT = b3Part:getMin():getX() + ( EgtGetAxisPos( 'T') - EgtGetAxisHomePos( 'T')) + end EMT.HOVM = EgtGetInfo( nPartRawId or GDB_ID.NULL, 'HOVM', 'd') or 0 EMT.CUTID = EgtGetInfo( PartId or GDB_ID.NULL, 'CUTID', 'i') or 0 EMT.Y1SPEC = nil @@ -511,13 +517,6 @@ function OnSimulToolDeselect( dPrevA) end elseif HeadIsChainSaw( EMT.PREVHEAD_H2) then -- simulo movimento - if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - local CurrX2 = EgtGetAxisPos( 'X2') - if CurrX2 < SafeCSaw0X2 then - SimulMoveAxis( 'X2', SafeCSaw0X2, MCH_SIM_STEP.RAPID) - end - SimulMoveAxis( 'Z2', ParkCSawZ2, MCH_SIM_STEP.RAPID) - end SimulMoveAxis( 'X2', ParkCSawX2, MCH_SIM_STEP.RAPID) local dMyParkC = EgtGetAxisHomePos( 'C2') if dPrevA then dMyParkC = GetChainSawCHomeFromVirtualAxis( dPrevA) end @@ -751,7 +750,7 @@ function OnSimulMachiningStart() local bAgg = EgtExistsInfo( EMT.PATHID, 'CNT') ExecParkRoller( nil, nil, nil, nil, false, bAgg) -- eseguo - SimulMoveAxes( 'Z2', ParkZ2, MCH_SIM_STEP.RAPID) + SimulMoveAxis( 'Z2', ParkZ2, MCH_SIM_STEP.RAPID) SimulMoveAxes( 'B2', ParkB2, MCH_SIM_STEP.COLLROT, 'C2', ParkC2, MCH_SIM_STEP.COLLROT) SimulMoveAxis( 'Z2', MaxZ2, MCH_SIM_STEP.RAPID) SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID) @@ -794,6 +793,7 @@ function OnSimulPathStart() if EMT.MCHPRECUT then local dCosA = sqrt( max( 1 - EMT.EXTR[1] * EMT.EXTR[1], 0)) EMT.DELTA_LT = max( EMT.XMINT - Point3d( EMT.MMAX):getX() - dCosA * EMT.TDIAM / 2, 0) + EgtOutLog( 'PreCutDeltaLT='..EgtNumToString( EMT.DELTA_LT, 3), 5) end end @@ -808,7 +808,7 @@ function OnSimulPathEnd() EMT.Y1DELTA = nil ExecMovePY1( false) end - ExecMoveZmax( EMT.MCHSPLIT) + ExecMoveZmax( EMT.MCHSPLIT, false) EMT.TO_ZMAX = nil end end @@ -831,7 +831,7 @@ function OnSimulPathEndAux() ExecAuxCmd( EMT.AUX, false) -- se ultimo comando e richiesta risalita a Zmax if EMT.AUXIND == EMT.AUXTOT and EMT.TO_ZMAX then - ExecMoveZmax( EMT.MCHSPLIT) + ExecMoveZmax( EMT.MCHSPLIT, false) EMT.TO_ZMAX = nil end end @@ -895,7 +895,10 @@ function OnSimulMoveStart() local nRes = 0 if bParkV then local bAgg = EgtExistsInfo( EMT.PATHID, 'CNT') + -- se la lavorazione è un taglio di separazione, se necessario, ripristino posizione di Y1DELTA prima di aprire i rulli + if EMT.SPLIT_Y1DELTA and not EMT.MCHSPLIT then EMT.Y1DELTA = EMT.SPLIT_Y1DELTA end nRes = ExecParkRoller( Y1Pos, Y2Pos, V1Pos, V2Pos, false, bAgg) + if EMT.SPLIT_Y1DELTA then EMT.Y1DELTA = nil end end -- se movimento in rapido ad inizio lavorazione if EMT.MOVE == 0 and EMT.MOVEIND <= 3 then @@ -949,18 +952,18 @@ function OnSimulMoveStart() EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( dPosA)) EmtModifyAxisHome( 'B1', ParkCSawB1) B1Home = EgtGetAxisHomePos( 'B1') + C1Home = EgtGetAxisHomePos( 'C1') Z1Home = EgtGetAxisHomePos( 'Z1') EMT.CHSAW_OUT = nil end - -- Porto la Z alla giusta quota - if Z1Pos > Z1Home + 1 and abs( B1Pos) > 89.9 then - SimulMoveAxis( 'X1', EMT.L2, MCH_SIM_STEP.RAPID) - SimulMoveAxis( 'Z1', Z1Home, MCH_SIM_STEP.RAPID) - end - -- se movimento iniziale da Zmax - if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then - SimulMoveAxes( 'X1', EMT.L2, MCH_SIM_STEP.RAPID, 'Z1', Z1Home, MCH_SIM_STEP.RAPID, 'B1', B1Home, MCH_SIM_STEP.COLLROT, 'C1', EMT.R1, MCH_SIM_STEP.COLLROT) - SimulMoveAxis( 'B1', EMT.R2, MCH_SIM_STEP.COLLROT) + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + SimulMoveAxes( 'X1', EMT.L2, MCH_SIM_STEP.RAPID, 'C1', EMT.R1, MCH_SIM_STEP.COLLROT) + SimulMoveAxes( 'Z1', EMT.L3, MCH_SIM_STEP.RAPID, 'B1', EMT.R2, MCH_SIM_STEP.COLLROT) + -- se circa verticale + else + SimulMoveAxes( 'X1', EMT.L2, MCH_SIM_STEP.RAPID, 'C1', EMT.R1, MCH_SIM_STEP.COLLROT) + SimulMoveAxes( 'Z1', EMT.L3, MCH_SIM_STEP.RAPID, 'B1', EMT.R2, MCH_SIM_STEP.COLLROT) end end -- altrimenti testa 2 @@ -1002,18 +1005,18 @@ function OnSimulMoveStart() EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( dPosA)) EmtModifyAxisHome( 'B1', ParkCSawB1) B1Home = EgtGetAxisHomePos( 'B1') + C1Home = EgtGetAxisHomePos( 'C1') Z1Home = EgtGetAxisHomePos( 'Z1') EMT.CHSAW_OUT = nil end - -- Porto la Z alla giusta quota - if Z1Pos > Z1Home + 1 and abs( B1Pos) > 89.9 then - SimulMoveAxis( 'X1', EMT.L2, MCH_SIM_STEP.RAPID) - SimulMoveAxis( 'Z1', Z1Home, MCH_SIM_STEP.RAPID) - end - -- se movimento iniziale da Zmax - if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then - SimulMoveAxes( 'X1', EMT.L2, MCH_SIM_STEP.RAPID, 'Z1', Z1Home, MCH_SIM_STEP.RAPID, 'B1', B1Home, MCH_SIM_STEP.COLLROT, 'C1', EMT.R1, MCH_SIM_STEP.COLLROT) - SimulMoveAxis( 'B1', EMT.R2, MCH_SIM_STEP.COLLROT) + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + SimulMoveAxes( 'X1', EMT.L2, MCH_SIM_STEP.RAPID, 'C1', EMT.R1, MCH_SIM_STEP.COLLROT) + SimulMoveAxes( 'Z1', EMT.L3, MCH_SIM_STEP.RAPID, 'B1', EMT.R2, MCH_SIM_STEP.COLLROT) + -- se circa verticale + else + SimulMoveAxes( 'X1', EMT.L2, MCH_SIM_STEP.RAPID, 'C1', EMT.R1, MCH_SIM_STEP.COLLROT) + SimulMoveAxes( 'Z1', EMT.L3, MCH_SIM_STEP.RAPID, 'B1', EMT.R2, MCH_SIM_STEP.COLLROT) end end else @@ -1048,20 +1051,14 @@ function OnSimulMoveStart() end -- altrimenti sega a catena else - -- Porto la Z alla giusta quota - if Z2Pos > Z2Home + 1 and abs( B2Pos) > 89.9 then - SimulMoveAxis( 'X2', EMT.L2, MCH_SIM_STEP.RAPID) - SimulMoveAxis( 'Z2', Z2Home, MCH_SIM_STEP.RAPID) - end - -- se movimento iniziale da Zmax - if EMT.ZMAX or ( EMT.FLAG == 2 and EMT.FLAG2 == 1) then - -- se pezzo molto alto e R3=0, mi sposto in X (per ora solo davanti) - if EMT.SB > 650 and abs( EMT.R3) < 0.1 then - SimulMoveAxes( 'X2', SafeCSaw0X2, MCH_SIM_STEP.RAPID) - SimulMoveAxes( 'X2', EMT.L2, MCH_SIM_STEP.RAPID, 'Z2', Z2Home, MCH_SIM_STEP.RAPID, 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) - else - SimulMoveAxes( 'Z2', Z2Home, MCH_SIM_STEP.RAPID, 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) - end + -- se motosega configurata per lavorazioni di fianco o circa orizzontale + if dPosA == 0 or abs( EMT.R2) < 10 then + SimulMoveAxes( 'X2', EMT.L2, MCH_SIM_STEP.RAPID, 'C2', EMT.R1, MCH_SIM_STEP.COLLROT) + SimulMoveAxes( 'Z2', EMT.L3, MCH_SIM_STEP.RAPID, 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) + -- se circa verticale + else + SimulMoveAxes( 'X2', EMT.L2, MCH_SIM_STEP.RAPID, 'C2', EMT.R1, MCH_SIM_STEP.COLLROT) + SimulMoveAxes( 'Z2', EMT.L3, MCH_SIM_STEP.RAPID, 'B2', EMT.R2, MCH_SIM_STEP.COLLROT) end end end @@ -1178,8 +1175,12 @@ function OnSimulMoveEnd() if EMT.MOVE == 0 and EMT.FLAG == 3 then -- eventuale rimozione sfridi RemoveScraps() + -- se Split o Presplit lascio agganciata solo la pinza Y2 alla fine dei movimenti + local sNextTool = GetNextTool( EMT.MCHID) + -- vado in home se è ultimo movimento ed è ultima lavorazione, se sono con motosega e devo cambiare utensile, oppure se ho la lama + local bToXhome = ( IsLastPath( EMT.PATHID) and not sNextTool) or ( EMT.HEAD == 'H23' and EMT.TOOL ~= sNextTool) or ( EMT.HEAD == 'H13' and EMT.TOOL ~= sNextTool) or EMT.HEAD == 'H12' or EMT.HEAD == 'H22' -- eseguo - ExecMoveZmax( EMT.MCHSPLIT) + ExecMoveZmax( EMT.MCHSPLIT, bToXhome) EMT.TO_ZMAX = nil end end @@ -1296,7 +1297,7 @@ function ExecAuxCmd( sCmd, bPathStart) ExecMoveHome( Cmd[2] == '1', EgtIf( bPathStart, false, EMT.MCHSPLIT)) elseif Cmd[1] == '11' then local bClose = Cmd[2] ~= '0' - if bPathStart and EMT.MCHSPLIT and not EMT.FALL and EMT.AUXIND >= 8 then bClose = false end + if bPathStart and EMT.MCHSPLIT and not EMT.FALL and GetPY2Light() then bClose = false end ExecMovePY1( bClose) elseif Cmd[1] == '12' then ExecMovePY2( Cmd[2] ~= '0') @@ -1380,7 +1381,7 @@ end --------------------------------------------------------------------- function ExecMoveHome( bNearV, bMchSplit) -- risalita a Zmax - ExecMoveZmax( bMchSplit) + ExecMoveZmax( bMchSplit, true) EMT.TO_ZMAX = nil -- se richiesto, avvicino i rulli if bNearV then @@ -1426,7 +1427,7 @@ function ExecMoveHome( bNearV, bMchSplit) end --------------------------------------------------------------------- -function ExecMoveZmax( bMchSplit) +function ExecMoveZmax( bMchSplit, btoXHome) -- set della testa local nSetHead = GetHeadSet( EMT.HEAD) if nSetHead == 0 then return end @@ -1467,20 +1468,28 @@ function ExecMoveZmax( bMchSplit) SimulMoveAxis( 'B1', HomeB, MCH_SIM_STEP.COLLROT) end SimulMoveAxis( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID) + if btoXHome then + SimulMoveAxis( 'X1', ParkX1, MCH_SIM_STEP.RAPID) + end -- se lavorazione in doppio if EMT.DOU_TYPE == 2 then local CurrZ2 = EgtGetAxisPos( 'Z2') if CurrZ2 < ParkZ2 then - SimulMoveAxes( 'Z2', ParkZ2, MCH_SIM_STEP.RAPID) + SimulMoveAxis( 'Z2', ParkZ2, MCH_SIM_STEP.RAPID) end SimulMoveAxes( 'B2', ParkB2, MCH_SIM_STEP.COLLROT, 'C2', ParkC2, MCH_SIM_STEP.COLLROT) - SimulMoveAxes( 'Z2', MaxZ2, MCH_SIM_STEP.RAPID) - SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID) + SimulMoveAxis( 'Z2', MaxZ2, MCH_SIM_STEP.RAPID) + if bToXHome then + SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID) + end EMT.DOU_TO_ZMAX = nil end -- altrimenti sega a catena else SimulMoveAxes( 'Z1', HomeZ, MCH_SIM_STEP.RAPID, 'B1', HomeB, MCH_SIM_STEP.COLLROT) + if EMT.SB > 650 and abs( EMT.R3) < 0.1 then + SimulMoveAxes( 'Z1', ParkCSawZ1, MCH_SIM_STEP.RAPID, 'B1', ParkB1, MCH_SIM_STEP.COLLROT) + end SimulMoveAxes( 'X1', HomeX, MCH_SIM_STEP.RAPID, 'C1', HomeC, MCH_SIM_STEP.COLLROT) end else @@ -1496,10 +1505,16 @@ function ExecMoveZmax( bMchSplit) SimulMoveAxis( 'B1', HomeB, MCH_SIM_STEP.COLLROT) end SimulMoveAxis( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID) + if btoXHome then + SimulMoveAxis( 'X1', ParkX1, MCH_SIM_STEP.RAPID) + end -- altrimenti sega a catena else SimulMoveAxes( 'Z1', HomeZ, MCH_SIM_STEP.RAPID, 'B1', HomeB, MCH_SIM_STEP.COLLROT) - SimulMoveAxis( 'C1', HomeC, MCH_SIM_STEP.COLLROT) + if EMT.SB > 650 and abs( EMT.R3) < 0.1 then + SimulMoveAxes( 'Z1', ParkCSawZ1, MCH_SIM_STEP.RAPID, 'B1', ParkB1, MCH_SIM_STEP.COLLROT) + end + SimulMoveAxes( 'X1', HomeX, MCH_SIM_STEP.RAPID, 'C1', HomeC, MCH_SIM_STEP.COLLROT) end end @@ -1517,10 +1532,16 @@ function ExecMoveZmax( bMchSplit) SimulMoveAxis( 'B2', HomeB, MCH_SIM_STEP.COLLROT) end SimulMoveAxis( 'Z2', MaxZ2, MCH_SIM_STEP.RAPID) - -- altrimenti sega a catena + if btoXHome then + SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID) + end + -- altrimenti sega a catena else SimulMoveAxes( 'Z2', HomeZ, MCH_SIM_STEP.RAPID, 'B2', HomeB, MCH_SIM_STEP.COLLROT) - SimulMoveAxis( 'X2', HomeX, MCH_SIM_STEP.RAPID, 'C2', HomeC, MCH_SIM_STEP.COLLROT) + if EMT.SB > 650 and abs( EMT.R3) < 0.1 then + SimulMoveAxes( 'Z2', ParkCSawZ2, MCH_SIM_STEP.RAPID, 'B2', ParkB2, MCH_SIM_STEP.COLLROT) + end + SimulMoveAxes( 'X2', HomeX, MCH_SIM_STEP.RAPID, 'C2', HomeC, MCH_SIM_STEP.COLLROT) end end EMT.ZMAX = true @@ -1593,13 +1614,13 @@ end --------------------------------------------------------------------- function ExecMovePY1( bClose) - SimulMoveAxes( 'PY1', EgtIf( not bClose, MaxHoOpen, EMT.HB), MCH_SIM_STEP.RAPID) + SimulMoveAxis( 'PY1', EgtIf( not bClose, MaxHoOpen, EMT.HB), MCH_SIM_STEP.RAPID) SetPY1Light( bClose) end --------------------------------------------------------------------- function ExecMovePY2( bClose) - SimulMoveAxes( 'PY2', EgtIf( not bClose, MaxHoOpen, EMT.HB), MCH_SIM_STEP.RAPID) + SimulMoveAxis( 'PY2', EgtIf( not bClose, MaxHoOpen, EMT.HB), MCH_SIM_STEP.RAPID) SetPY2Light( bClose) end diff --git a/Common_ONE-PF.mlse b/Common_ONE-PF.mlse index 4b23849..3b80e54 100644 --- a/Common_ONE-PF.mlse +++ b/Common_ONE-PF.mlse @@ -6,7 +6,7 @@ EgtEnableDebug( false) -- Carico i dati globali local sBaseDir = EgtGetSourceDir() -BD = dofile( sBaseDir .. 'Beam\\BeamData.lua') +local BD = dofile( sBaseDir .. 'Beam\\BeamData.lua') ---------------------- OnSpecialGetMaxZ ----------------------------- --------------------------------------------------------------------- @@ -2486,8 +2486,8 @@ function SpecAdjustCarrB1( WorkTab) if not SpecTestSomeMoveInCmds( vCmd) then table.insert( vCmd, { 3, 'Y1', dY1PosI, 'Y2', dY2PosI, 'T', WorkTab.dTPosI, EMC.CNT}) end - table.insert( vCmd, { 11, 1}) -- chiudo Y1 table.insert( vCmd, { 12, 1}) -- Chiudo Y2 + table.insert( vCmd, { 11, 1}) -- chiudo Y1 -- imposto i nuovi parametri di aggancio table.insert( vCmd, { 21, dY1DeltaF, dY2DeltaF}) EgtOutLog( ' Y1DeltaF=' .. EgtNumToString( dY1DeltaF) .. ' Y2DeltaF=' .. EgtNumToString( dY2DeltaF), 1) @@ -2558,8 +2558,8 @@ function SpecAdjustCarrB2( WorkTab) if not SpecTestSomeMoveInCmds( vCmd) then table.insert( vCmd, { 3, 'Y1', dY1PosI, 'Y2', dY2PosI, 'T', WorkTab.dTPosI, EMC.CNT}) end - table.insert( vCmd, { 11, 1}) -- chiudo Y1 table.insert( vCmd, { 12, 1}) -- Chiudo Y2 + table.insert( vCmd, { 11, 1}) -- chiudo Y1 -- imposto i nuovi parametri di aggancio table.insert( vCmd, { 21, dY1DeltaF, dY2DeltaF}) EgtOutLog( ' Y1DeltaF=' .. EgtNumToString( dY1DeltaF) .. ' Y2DeltaF=' .. EgtNumToString( dY2DeltaF), 1) diff --git a/Essetre-ONE.ini b/Essetre-ONE.ini index bb6e594..3533cda 100644 --- a/Essetre-ONE.ini +++ b/Essetre-ONE.ini @@ -133,7 +133,7 @@ Default=Standard [Estimations] Enable=1 -WinPlace=0,514,138,628,810 +WinPlace=0,514,138,893,834 [VMill] Enable=1 diff --git a/Essetre-ONE.mlde b/Essetre-ONE.mlde index 4977fbc..0a5737a 100644 --- a/Essetre-ONE.mlde +++ b/Essetre-ONE.mlde @@ -1,4 +1,4 @@ --- Descrizione macchina Essetre-ONE by EgalTech s.r.l. 2023/08/07 +-- Descrizione macchina Essetre-ONE by EgalTech s.r.l. 2024/02/07 -- 2021/05/18 ver 2.3e5 Prima versione (in comune con PF). -- 2021/09/02 ver 2.3h1 Diverse correzioni per gestione carrelli con rotazione pezzo. -- 2021/09/27 ver 2.3i2 Recupero modifiche PF1250. @@ -39,12 +39,13 @@ -- 2024/01/17 ver 2.6a2 Allineamento con Common ver. 2.6a2 -- 2024/01/23 ver 2.6a3 Allineamento con Common ver. 2.6a3 -- 2024/01/23 ver 2.6a4 Allineamento con Common ver. 2.6a5 +-- 2024/02/07 ver 2.6a5 Allineamento con Common ver. 2.6a6 -- Intestazioni require( 'EmtGenerator') EgtEnableDebug( false) -PP_VER = '2.6a4' +PP_VER = '2.6a5' MIN_MACH_VER = '2.5k1' local sBaseDir = EgtGetSourceDir() @@ -119,6 +120,7 @@ ParkB1 = 90 ParkFrnB1 = -90 LimX1RotSaw = 2900 LimX1PlRotSaw = 1965 +SafeCSaw0X1 = 1350 ParkCSawX1 = 1350 ParkCSawX1S = MinX1 ParkCSawZ1 = -50 diff --git a/UpdateLog.txt b/UpdateLog.txt index b731aa3..7a8330c 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -24,3 +24,10 @@ versione 2.6a4 (24/01/2024) versione 2.6a5 (26/01/2024) - (SIM-GEN) Migliorato calcolo dimensioni grezzo per apertura rulli in caso di 'precut' + +versione 2.6a6 (02/02/2024) +- (SIM) Corretta simulazione movimento in X-Home, coerente con generazione +- (GEN) Aggiunta lettura parametro 'Split' +- (SIM) Se lavorazione è un taglio di separazione, se necessario, ripristino posizione di Y1DELTA prima di aprire i rulli +- (SIM-GEN) Modificata gestione movimenti motosega, in aggiunta con caso particolare di pezzo alto più di 650mm +- (ALL) Caricamento BeamData come local diff --git a/Version.lua b/Version.lua index 12ae44a..05ebbe8 100644 --- a/Version.lua +++ b/Version.lua @@ -3,7 +3,7 @@ local InfoCommon_STD_PP = { NAME = 'Common_ONE-PF', -- nome script PP standard - VERSION = '2.6a5', -- versione script + VERSION = '2.6a6', -- versione script MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel }