Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7394cd769b | |||
| 9301eaa3b6 | |||
| 8e138131c4 | |||
| 14c090b23f | |||
| 0ed07e3541 | |||
| 880873c1d3 | |||
| 830bd62c72 | |||
| c01cc3f2d1 | |||
| 0dba75296d | |||
| 8e707122b2 | |||
| 3aebd1d297 | |||
| b5ffbdea11 | |||
| b7fbaf80f9 | |||
| 6bc6420d01 | |||
| ee7c64627a | |||
| 345224da78 | |||
| 240c837cd4 | |||
| aa2004042e |
+6
-40
@@ -27,7 +27,10 @@ function OnStart()
|
||||
--EMT.LINEINC = 1 -- incremento numerazione linee
|
||||
--EMT.Ft = 'F' -- token per feed
|
||||
--EMT.St = 'S' -- token per speed
|
||||
EMT.FMAXPINZE = 102000 -- feed massima pinze
|
||||
EMT.FMAXPINZE = EgtClamp( MaxFeedPinze or 102000, 20000, 102000) -- feed massima pinze
|
||||
EMT.MAXACC = MaxAcc or ( EMT.FMAXPINZE / ( 60 * 0.3)) -- accelerazione massima pinze
|
||||
EMT.MINACC = MinAcc or ( EMT.FMAXPINZE / ( 60 * 4)) -- accelerazione minima pinze
|
||||
|
||||
-- utensili default
|
||||
EMT.PREVTCPOS_H1 = DefTcPos1
|
||||
EMT.PREVTCPOS_H2 = DefTcPos2
|
||||
@@ -442,14 +445,6 @@ function OnMachiningStart()
|
||||
local MyParkCSawC2 = GetChainSawCHomeFromVirtualAxis( dPosA)
|
||||
EmtModifyAxisHome( 'C2', MyParkCSawC2)
|
||||
end
|
||||
-- gestione eventuale tastatura
|
||||
local bProbing = EgtGetValInNotes( EMT.MCHUSERNOTES, 'PROBE', 'b') or EgtGetValInNotes( EMT.MCHUSERNOTES, 'START-PROBE', 'b')
|
||||
if bProbing then
|
||||
if VerifyToolProbeCompatibility() then
|
||||
EMT.PROBE = true
|
||||
EMT.EXECPROBE = true
|
||||
end
|
||||
end
|
||||
-- gestione eventuale lavorazione in doppio
|
||||
local nDouType = EgtGetValInNotes( EMT.MCHUSERNOTES, 'DOUBLE', 'i')
|
||||
if nDouType == 2 or nDouType == 3 then
|
||||
@@ -614,15 +609,6 @@ function OnMachiningEnd()
|
||||
EMT.PREVHEAD = EMT.HEAD
|
||||
EMT.PREVTCPOS = EMT.TCPOS
|
||||
|
||||
-- se tastatura attiva, si disabilita la tastatura
|
||||
if EMT.PROBE then
|
||||
-- gestione eventuale tastatura
|
||||
local bStopProbing = EgtGetValInNotes( EMT.MCHUSERNOTES, 'PROBE', 'b') or EgtGetValInNotes( EMT.MCHUSERNOTES, 'END-PROBE', 'b')
|
||||
if bStopProbing then
|
||||
EmtOutput( 'G145 Z-10 EF7')
|
||||
EMT.PROBE = nil
|
||||
end
|
||||
end
|
||||
-- se taglio finale, aggiorno lunghezza barra
|
||||
if EMT.MCHCUT then
|
||||
EMT.LB = EMT.LT + ( EMT.X_OFF or 0)
|
||||
@@ -1526,22 +1512,6 @@ function OnRapid()
|
||||
EMT.RELOAD = false
|
||||
EMT.RELOAD2 = nil
|
||||
end
|
||||
-- se bisogna fare tastatura
|
||||
if EMT.EXECPROBE then
|
||||
EMT.EXECPROBE = nil
|
||||
local vtE = Vector3d( EMT.EXTR)
|
||||
local sFace
|
||||
if AreSameVectorApprox( vtE, Y_AX()) then
|
||||
sFace = 2
|
||||
elseif AreSameVectorApprox( vtE, -Y_AX()) then
|
||||
sFace = 4
|
||||
elseif AreSameVectorApprox( vtE, Z_AX()) then
|
||||
sFace = 3
|
||||
else
|
||||
error( "PROBING DIRECTION NOT MANAGED")
|
||||
end
|
||||
EmtOutput( 'G145 Z-10 EF'..sFace)
|
||||
end
|
||||
-- se taglio di coda senza residuo da scaricare, emetto M175 per accelerare il carico della barra successiva
|
||||
if EMT.MCHUSERNOTES and EMT.MCHUSERNOTES:find( 'Cut', 1, true) then
|
||||
EmtOutput( 'M175')
|
||||
@@ -1813,17 +1783,13 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function CalcDinamicaPinze( dH, dS, dL)
|
||||
local MinTempoAcc = 0.3 -- [s]
|
||||
local MaxTempoAcc = 4.0 -- [s]
|
||||
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 AccMaxPinze = EMT.MAXACC
|
||||
local AccPinze = EgtClamp( FMaxPinze / ( 60 * TempoAcc), EMT.MINACC, EMT.MAXACC)
|
||||
local RidFeed = 100 / Massa * 100
|
||||
if RidFeed > 100 then
|
||||
RidFeed = 100
|
||||
|
||||
+6
-21
@@ -779,12 +779,6 @@ function OnSimulMachiningStart()
|
||||
else
|
||||
EMT.TASKID = 0
|
||||
end
|
||||
-- gestione eventuale tastatura
|
||||
EMT.PROBE = nil
|
||||
local bProbing = EgtGetValInNotes( EMT.MCHUSERNOTES, 'PROBE', 'b')
|
||||
if bProbing then
|
||||
EMT.PROBE = true
|
||||
end
|
||||
-- gestione eventuale lavorazione in doppio
|
||||
local nDouType = EgtGetValInNotes( EMT.MCHUSERNOTES, 'DOUBLE', 'i')
|
||||
if nDouType == 2 then
|
||||
@@ -1059,9 +1053,9 @@ function OnSimulMoveStart()
|
||||
end
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
-- se anche precedente con sega a catena ma depositata, devo riprenderla
|
||||
if EMT.CHSAW_OUT then
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||
OnSimulToolDeselect()
|
||||
EgtLoadTool( EMT.HEAD, 1, EMT.TOOL)
|
||||
@@ -1125,9 +1119,9 @@ function OnSimulMoveStart()
|
||||
end
|
||||
-- altrimenti sega a catena (H13 o H15)
|
||||
else
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
-- se anche precedente con sega a catena ma depositata, devo riprenderla
|
||||
if EMT.CHSAW_OUT then
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||
OnSimulToolDeselect()
|
||||
EgtLoadTool( EMT.HEAD, 1, EMT.TOOL)
|
||||
@@ -1201,9 +1195,9 @@ function OnSimulMoveStart()
|
||||
end
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
-- se anche precedente con sega a catena ma depositata, devo riprenderla
|
||||
if EMT.CHSAW_OUT then
|
||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||
OnSimulToolDeselect()
|
||||
EgtLoadTool( EMT.HEAD, 1, EMT.TOOL)
|
||||
@@ -1681,7 +1675,7 @@ function ExecMoveZmax( bMchSplit, btoXHome)
|
||||
SimulMoveAxes( 'X1', HomeX, MCH_SIM_STEP.RAPID, 'C1', HomeC, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
else
|
||||
-- se sega a catena
|
||||
-- se fresa o lama
|
||||
if not HeadIsChainSaw( EMT.HEAD) then
|
||||
if abs( HomeC - CurrC) > 0.1 or abs( HomeB - CurrB) > 0.1 then
|
||||
local dZref = HomeZ + GetZExtra( EMT.HEAD, CurrB)
|
||||
@@ -1734,13 +1728,13 @@ function ExecMoveZmax( bMchSplit, btoXHome)
|
||||
EMT.XHOME = true
|
||||
SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
-- altrimenti sega a catena
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
SimulMoveAxes( 'Z2', HomeZ, MCH_SIM_STEP.RAPID, 'B2', HomeB, MCH_SIM_STEP.COLLROT)
|
||||
if EMT.R3 and abs( EMT.R3) < 0.1 then
|
||||
SimulMoveAxis( 'Z2', ParkCSawZ2, MCH_SIM_STEP.RAPID)
|
||||
end
|
||||
SimulMoveAxes( 'X2', HomeX, MCH_SIM_STEP.RAPID, 'C2', HomeC, MCH_SIM_STEP.COLLROT)
|
||||
SimulMoveAxes( 'X2', ParkCSawX2, MCH_SIM_STEP.RAPID, 'C2', HomeC, MCH_SIM_STEP.COLLROT)
|
||||
end
|
||||
end
|
||||
EMT.ZMAX = true
|
||||
@@ -2288,15 +2282,6 @@ function LoadNextTool( nHSet, sTcPosDef, bFirst)
|
||||
return sTool
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function VerifyToolProbeCompatibility()
|
||||
local bToolIsCompatible = false
|
||||
if EMT.TTOTLEN < 200 and EMT.TTOTDIAM < 80 then
|
||||
bToolIsCompatible = true
|
||||
end
|
||||
return bToolIsCompatible
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** ESTIMATION T&L ***
|
||||
---------------------------------------------------------------------
|
||||
|
||||
+13
-6
@@ -1553,8 +1553,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
|
||||
@@ -1562,11 +1565,15 @@ function SpecCalcUnload()
|
||||
table.insert( vCmd, { 11, 0})
|
||||
EMC.CNT = nil
|
||||
end
|
||||
-- Sposto il pezzo in posizione di scarico
|
||||
local dFinT = 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 = 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
|
||||
|
||||
+13
-2
@@ -1,8 +1,19 @@
|
||||
==== Common_ONE-PF Update Log ====
|
||||
|
||||
Versione 2.7-- (--/--/2025)
|
||||
Versione 2.7g3 (22/07/2025)
|
||||
- (SIM) Corretto lettura angolo di presa della motosega
|
||||
|
||||
Versione 2.7g2 (08/07/2025)
|
||||
- (SIM) Corretto movimento a parcheggio sega a catena. Ticket#2517
|
||||
|
||||
Versione 2.7g1 (01/07/2025)
|
||||
- (GEN) Rimossa gestione PROBE inserita per sbaglio
|
||||
- (GEN) Corretto gestione accelerazioni
|
||||
- (SIM-GEN) Aggiunta gestione massima lunghezza scarico
|
||||
|
||||
Versione 2.7f1 (04/06/2025)
|
||||
- (SIM) Aggiunta gestione qualità VMILL da impostazioni macchina. Tolto parametro 'CoeffVM'.
|
||||
- (GEN) Prima versione gestione tastatore
|
||||
- (GEN) Aggiunti parametri FMAXPINZE, MAXACC, MINACC configurabili da TS3. Ticket#2052
|
||||
|
||||
Versione 2.7e1 (28/05/2025)
|
||||
- (SIM-GEN) Alla separazione si spostano i carrelli di 30mm aprendo il taglio. Ticket#2259,Ticket#2328
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_ONE-PF', -- nome script PP standard
|
||||
VERSION = '2.7--', -- versione script
|
||||
VERSION = '2.7g3', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user