Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 52aaea30ac | |||
| 6922eac78e | |||
| 4c80f37797 | |||
| 5da4ccece9 | |||
| 171187c172 | |||
| 3413e43f62 | |||
| d8cd917aaf | |||
| ba63901305 | |||
| 507e75121f | |||
| 6d937b7e88 |
+96
-110
@@ -46,16 +46,12 @@ local BeamData = {
|
|||||||
|
|
||||||
-- costanti riportate da mlde non necessarie per automatismo (sostituire con GetParameters o simile)
|
-- costanti riportate da mlde non necessarie per automatismo (sostituire con GetParameters o simile)
|
||||||
local MldeParameters = {}
|
local MldeParameters = {}
|
||||||
MldeParameters.NumericalControl = 'TPA' -- NUM o TPA o NUM_PLUS
|
|
||||||
MldeParameters.MinX = 0
|
|
||||||
MldeParameters.MaxX = 1350
|
|
||||||
MldeParameters.MinZ = -1350
|
|
||||||
MldeParameters.MaxZ = 0
|
|
||||||
MldeParameters.MillOffs = 177.35
|
MldeParameters.MillOffs = 177.35
|
||||||
MldeParameters.SawOffs = -242.68
|
MldeParameters.MinJoinVV = 75
|
||||||
MldeParameters.DeltaTabY = 898.0
|
MldeParameters.MinJoinSS = 100
|
||||||
MldeParameters.DeltaTabZ = -1017.8 + MldeParameters.MillOffs -- per TPA : -1013.3 + MillOffs -- per NUM : -838.4
|
MldeParameters.MinJoinLS = 290
|
||||||
MldeParameters.NewTopC = true
|
MldeParameters.MinJoinSL = 100
|
||||||
|
MldeParameters.MinJoinLL = 400
|
||||||
|
|
||||||
-- Aggiornamento con dati macchina personalizzati
|
-- Aggiornamento con dati macchina personalizzati
|
||||||
-- TODO sostituire con GetParameters o simile
|
-- TODO sostituire con GetParameters o simile
|
||||||
@@ -71,22 +67,6 @@ if EgtExistsFile( sData) then
|
|||||||
local Machine = dofile( sData)
|
local Machine = dofile( sData)
|
||||||
if Machine then
|
if Machine then
|
||||||
if Machine.Offsets then
|
if Machine.Offsets then
|
||||||
if Machine.Offsets.TIPO_CN == 0 then
|
|
||||||
MldeParameters.NumericalControl = 'NUM'
|
|
||||||
elseif Machine.Offsets.TIPO_CN == 2 then
|
|
||||||
MldeParameters.NumericalControl = 'NUM_PLUS'
|
|
||||||
else
|
|
||||||
MldeParameters.NumericalControl = 'TPA'
|
|
||||||
end
|
|
||||||
if Machine.Offsets.MAX_X then MldeParameters.MinX = - Machine.Offsets.MAX_X end
|
|
||||||
if Machine.Offsets.MIN_X then MldeParameters.MaxX = - Machine.Offsets.MIN_X end
|
|
||||||
if Machine.Offsets.MIN_Z then MldeParameters.MinZ = Machine.Offsets.MIN_Z end
|
|
||||||
if Machine.Offsets.MAX_Z then MldeParameters.MaxZ = Machine.Offsets.MAX_Z end
|
|
||||||
if Machine.Offsets.PIVOTFRESA then MldeParameters.MillOffs = - Machine.Offsets.PIVOTFRESA end
|
|
||||||
if Machine.Offsets.PIVOTLAMA then MldeParameters.SawOffs = - Machine.Offsets.PIVOTLAMA end
|
|
||||||
if Machine.Offsets.OFFSETX then MldeParameters.DeltaTabY = - Machine.Offsets.OFFSETX end
|
|
||||||
if Machine.Offsets.OFFSETZ then MldeParameters.DeltaTabZ = Machine.Offsets.OFFSETZ + EgtIf( MldeParameters.NumericalControl == 'TPA', MldeParameters.MillOffs, 0) end
|
|
||||||
if Machine.Offsets.NEWTOPC then MldeParameters.NewTopC = ( Machine.Offsets.NEWTOPC == 1) end
|
|
||||||
BeamData.MINRAW_S = max( BeamData.MINRAW_S, Machine.Offsets.MINRAW_S or BeamData.MINRAW_S)
|
BeamData.MINRAW_S = max( BeamData.MINRAW_S, Machine.Offsets.MINRAW_S or BeamData.MINRAW_S)
|
||||||
BeamData.MINRAW_L = max( BeamData.MINRAW_L, Machine.Offsets.MINRAW_L or BeamData.MINRAW_L)
|
BeamData.MINRAW_L = max( BeamData.MINRAW_L, Machine.Offsets.MINRAW_L or BeamData.MINRAW_L)
|
||||||
BeamData.CUT_EXTRA = Machine.Offsets.CUT_EXTRA or BeamData.CUT_EXTRA
|
BeamData.CUT_EXTRA = Machine.Offsets.CUT_EXTRA or BeamData.CUT_EXTRA
|
||||||
@@ -98,9 +78,15 @@ if EgtExistsFile( sData) then
|
|||||||
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
||||||
BeamData.MAX_HEIGHT2 = Machine.Offsets.MAX_HEIGHT2 or BeamData.MAX_HEIGHT2
|
BeamData.MAX_HEIGHT2 = Machine.Offsets.MAX_HEIGHT2 or BeamData.MAX_HEIGHT2
|
||||||
BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID
|
BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID
|
||||||
|
if Machine.Offsets.PIVOTFRESA then MldeParameters.MillOffs = - Machine.Offsets.PIVOTFRESA end
|
||||||
if Machine.Offsets.ROT90 ~= nil then BeamData.ROT90 = ( Machine.Offsets.ROT90 == 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
|
if Machine.Offsets.ROT180 ~= nil then BeamData.ROT180 = ( Machine.Offsets.ROT180 == 1) end
|
||||||
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
|
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_VV then MldeParameters.MinJoinVV = EgtClamp( Machine.Offsets.MIN_JOIN_VV, 60, 150) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_SS then MldeParameters.MinJoinSS = EgtClamp( Machine.Offsets.MIN_JOIN_SS, 80, 275) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_LS then MldeParameters.MinJoinLS = EgtClamp( Machine.Offsets.MIN_JOIN_LS, 250, 400) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_SL then MldeParameters.MinJoinSL = EgtClamp( Machine.Offsets.MIN_JOIN_SL, 80, 400) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_LL then MldeParameters.MinJoinLL = EgtClamp( Machine.Offsets.MIN_JOIN_LL, 300, 600) end
|
||||||
end
|
end
|
||||||
if Machine.Trave then
|
if Machine.Trave then
|
||||||
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
|
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
|
||||||
@@ -114,6 +100,90 @@ if EgtExistsFile( sData) then
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetSectionCoeff( dW, dH, dL)
|
||||||
|
local SEZ_L = 80000
|
||||||
|
local SEZ_S = 20000
|
||||||
|
local LEN_SMALL = 2000
|
||||||
|
local dSez = dW * dH
|
||||||
|
if dSez <= SEZ_S then
|
||||||
|
return 0.0
|
||||||
|
elseif dSez < SEZ_L then
|
||||||
|
if dL and dL < LEN_SMALL then dSez = max( 0.6 * dSez, SEZ_S) end
|
||||||
|
local dCoeff = ( dSez - SEZ_S) / ( SEZ_L - SEZ_S)
|
||||||
|
return dCoeff
|
||||||
|
else
|
||||||
|
return 1.0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- TODO questa è copiata (e migliorata) da mlde, va unificata
|
||||||
|
-- TODO vedere se servono anche dDeltaTol e dMinOther
|
||||||
|
local function GetMinJoin( dW, dH, dL)
|
||||||
|
|
||||||
|
-- funzione di supporto per interpolazione lineare
|
||||||
|
local function MapRange( x, x1, x2, y1, y2)
|
||||||
|
if x <= x1 then return y1 end
|
||||||
|
if x >= x2 then return y2 end
|
||||||
|
return y1 + ( y2 - y1) * ( ( x - x1) / ( x2 - x1))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- costanti geometriche e tolleranze
|
||||||
|
local L_SMALL = 800
|
||||||
|
local H_V, H_S, H_L = 90, 200, 400
|
||||||
|
local W_V, W_S, W_L = 90, 150, 250
|
||||||
|
|
||||||
|
local DELTA_TOL_S = 210
|
||||||
|
local DELTA_TOL_V = 110
|
||||||
|
local DELTA_TOL_L = 410
|
||||||
|
|
||||||
|
local dMinJoin, dDeltaTol
|
||||||
|
|
||||||
|
if dW <= W_V and dH <= H_V then
|
||||||
|
dMinJoin = MldeParameters.MinJoinVV
|
||||||
|
dDeltaTol = DELTA_TOL_V
|
||||||
|
elseif dL <= L_SMALL then
|
||||||
|
dMinJoin = MldeParameters.MinJoinSS
|
||||||
|
dDeltaTol = DELTA_TOL_S
|
||||||
|
else
|
||||||
|
-- 1. Interpolazione sulla larghezza partendo da valori macchina
|
||||||
|
local dMinJoinS = MapRange( dW, W_S, W_L, MldeParameters.MinJoinSS, MldeParameters.MinJoinSL)
|
||||||
|
local dMinJoinL = MapRange( dW, W_S, W_L, MldeParameters.MinJoinLS, MldeParameters.MinJoinLL)
|
||||||
|
|
||||||
|
-- 2. Interpolazione sull'altezza partendo dai valori interpolati sulla larghezza
|
||||||
|
dMinJoin = MapRange( dH, H_S, H_L, dMinJoinS, dMinJoinL)
|
||||||
|
dDeltaTol = MapRange( dH, H_S, H_L, DELTA_TOL_S, DELTA_TOL_L)
|
||||||
|
|
||||||
|
if dW < W_V then
|
||||||
|
dDeltaTol = DELTA_TOL_V
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--local dMinOther = abs( MldeParameters.MinY) + abs( MldeParameters.MaxV) + dMinJoin
|
||||||
|
|
||||||
|
return dMinJoin
|
||||||
|
end
|
||||||
|
BeamData.GetMinJoin = GetMinJoin
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetRestrictedLength( dW, dH, dL)
|
||||||
|
local dMinJoin = GetMinJoin( dW, dH, dL)
|
||||||
|
local dExtra = 50
|
||||||
|
|
||||||
|
local dRestrictedLength = dMinJoin + dExtra
|
||||||
|
|
||||||
|
return dRestrictedLength
|
||||||
|
end
|
||||||
|
BeamData.GetRestrictedLength = GetRestrictedLength
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetMinUnloadableRaw( dW, dH)
|
||||||
|
local dCoeff = GetSectionCoeff( dW, dH)
|
||||||
|
return ( 1 - dCoeff) * BeamData.MINRAW_S + dCoeff * BeamData.MINRAW_L
|
||||||
|
end
|
||||||
|
BeamData.GetMinUnloadableRaw = GetMinUnloadableRaw
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
||||||
-- lama
|
-- lama
|
||||||
@@ -175,87 +245,6 @@ local function GetSCC( vtToolDirection, vtEdgeDirection, vtNFace)
|
|||||||
return nSCC
|
return nSCC
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
-- sAxis può essere AB, C, Z; restituisce direzioni, profondità di estrusione e punti per il controllo precollisione
|
|
||||||
local function GetPreCollisionData( sAxis, vtC, vtHead)
|
|
||||||
|
|
||||||
local PreCollisionData = {}
|
|
||||||
|
|
||||||
-- Pivot uguale per tutti; non c'è aggregato quindi non dipende da SCC
|
|
||||||
-- riferimento vtPivot
|
|
||||||
-- - vtHead (Z): asse rotazione utensile, guarda il mandrino
|
|
||||||
-- - vtToolSCC (X): direzione asse C o aggregato
|
|
||||||
-- - vtEdge (Y): direzione lato, verso in base a X e Z
|
|
||||||
-- - punto di applicazione: naso mandrino o aggregato
|
|
||||||
PreCollisionData.vtMovePivot = Vector3d( 0, 0, -MldeParameters.SawOffs)
|
|
||||||
|
|
||||||
-- carro Z
|
|
||||||
if sAxis == 'Z' then
|
|
||||||
|
|
||||||
PreCollisionData.Directions = { vtDirectionX = X_AX(), vtDirectionY = Z_AX(), vtDirectionZ = -Y_AX()}
|
|
||||||
PreCollisionData.bSurfTmByRevolve = true
|
|
||||||
PreCollisionData.Points = {
|
|
||||||
Point3d( 0, 523, 0),
|
|
||||||
Point3d( 109.556, 523, 0),
|
|
||||||
Point3d( 109.556, 583, 0),
|
|
||||||
Point3d( 143.113, 583, 0),
|
|
||||||
Point3d( 143.113, 2533, 0),
|
|
||||||
Point3d( 0, 2533, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
-- motore (asse A o B)
|
|
||||||
elseif sAxis == 'AB' then
|
|
||||||
|
|
||||||
PreCollisionData.Directions = { vtDirectionX = vtC, vtDirectionY = -vtHead, vtDirectionZ = vtC ^ -vtHead}
|
|
||||||
PreCollisionData.dExtrusionDepth = 180
|
|
||||||
PreCollisionData.Points = {
|
|
||||||
Point3d( 100,-122,0),
|
|
||||||
Point3d( 100, -232.5, 0),
|
|
||||||
Point3d( -90, -232.5, 0),
|
|
||||||
Point3d( -90, 204.505, 0),
|
|
||||||
Point3d( -77.5, 216.55, 0),
|
|
||||||
Point3d( -89, 234.05, 0),
|
|
||||||
Point3d( -89, 242.55, 0),
|
|
||||||
Point3d( 89, 242.55, 0),
|
|
||||||
Point3d( 89, 234.05, 0),
|
|
||||||
Point3d( 77.5, 216.55, 0),
|
|
||||||
Point3d( 90, 204.505, 0),
|
|
||||||
Point3d( 90, 93, 0),
|
|
||||||
Point3d( 125, 93, 0),
|
|
||||||
Point3d( 125, -122, 0),
|
|
||||||
Point3d( 100, -122, 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
-- asse C
|
|
||||||
elseif sAxis == 'C' then
|
|
||||||
|
|
||||||
PreCollisionData.Directions = { vtDirectionX = vtC, vtDirectionY = Z_AX(), vtDirectionZ = vtC ^ Z_AX()}
|
|
||||||
PreCollisionData.dExtrusionDepth = 200
|
|
||||||
PreCollisionData.Points = {
|
|
||||||
Point3d( 125, -92.752, 0),
|
|
||||||
Point3d( 203.5, -92.752, 0),
|
|
||||||
Point3d( 203.5, -100, 0),
|
|
||||||
Point3d( 400, -100, 0),
|
|
||||||
Point3d( 450, -50, 0),
|
|
||||||
Point3d( 450, 400, 0),
|
|
||||||
Point3d( 360, 490, 0),
|
|
||||||
Point3d( 170, 490, 0),
|
|
||||||
Point3d( 170, 523, 0),
|
|
||||||
Point3d( EgtIf( MldeParameters.NewTopC, -110, -175), 523, 0),
|
|
||||||
Point3d( EgtIf( MldeParameters.NewTopC, -110, -175), 400, 0),
|
|
||||||
Point3d( 230.858, 400, 0),
|
|
||||||
Point3d( 325, 305.858, 0),
|
|
||||||
Point3d( 325, 146, 0),
|
|
||||||
Point3d( 203.5, 146, 0),
|
|
||||||
Point3d( 203.5, 93, 0),
|
|
||||||
Point3d( 125, 93, 0),
|
|
||||||
Point3d( 125, -92.752, 0)
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return PreCollisionData
|
|
||||||
end
|
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
local function GetSetupInfo( sHead)
|
local function GetSetupInfo( sHead)
|
||||||
local SetupInfo = {}
|
local SetupInfo = {}
|
||||||
@@ -265,21 +254,18 @@ local function GetSetupInfo( sHead)
|
|||||||
SetupInfo.dCAxisEncumbrance = 180
|
SetupInfo.dCAxisEncumbrance = 180
|
||||||
SetupInfo.dCAxisSideEncumbrance = 200
|
SetupInfo.dCAxisSideEncumbrance = 200
|
||||||
SetupInfo.bToolOnAggregate = false
|
SetupInfo.bToolOnAggregate = false
|
||||||
SetupInfo.vtRotationAxisC = EgtGetAxisDir( 'C')
|
|
||||||
SetupInfo.vtRotationAxisAB = EgtGetAxisDir( 'B')
|
|
||||||
|
|
||||||
-- testa 5 assi da sopra
|
-- testa 5 assi da sopra
|
||||||
if sHead == 'H1' then
|
if sHead == 'H1' then
|
||||||
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
SetupInfo.PreferredSide = {}
|
SetupInfo.PreferredSide = {}
|
||||||
SetupInfo.dPivot = MldeParameters.MillOffs -- per uscita fresa, diverso da uscita lama
|
SetupInfo.dPivot = MldeParameters.MillOffs -- per uscita fresa, diverso da uscita lama
|
||||||
SetupInfo.GetMinNz = function() return sin( -45) end
|
SetupInfo.GetMinNz = function() return sin( -25) end
|
||||||
-- lama su testa 5 assi da sopra
|
-- lama su testa 5 assi da sopra
|
||||||
elseif sHead == 'H2' then
|
elseif sHead == 'H2' then
|
||||||
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
SetupInfo.PreferredSide = {}
|
SetupInfo.PreferredSide = {}
|
||||||
SetupInfo.GetMinNz = function() return sin( -45) end
|
SetupInfo.GetMinNz = function() return sin( -45) end
|
||||||
SetupInfo.GetPreCollisionData = GetPreCollisionData
|
|
||||||
SetupInfo.GetSCC = GetSCC
|
SetupInfo.GetSCC = GetSCC
|
||||||
-- motosega
|
-- motosega
|
||||||
elseif sHead == 'H3' then
|
elseif sHead == 'H3' then
|
||||||
|
|||||||
@@ -1348,7 +1348,7 @@ function PrepareUnload( sCmd)
|
|||||||
table.insert( EMT.AUXCMD, sMsg)
|
table.insert( EMT.AUXCMD, sMsg)
|
||||||
if Cmd[2] == 'V' then
|
if Cmd[2] == 'V' then
|
||||||
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
||||||
local sEE = EgtIf( EMT.PHASE == EgtGetPhaseCount(), '0', '1')
|
local sEE = EgtIf( EMT.PHASE == EgtGetPhaseCount() or IsEnd2Phase( EMT.PHASE), '0', '1')
|
||||||
local sOut = 'G111 '..Cmd[2]..Cmd[3]..' EC141 ED83 EE'..sEE..' EF'..GetFmaxClamp()
|
local sOut = 'G111 '..Cmd[2]..Cmd[3]..' EC141 ED83 EE'..sEE..' EF'..GetFmaxClamp()
|
||||||
table.insert( EMT.AUXSTR, sOut)
|
table.insert( EMT.AUXSTR, sOut)
|
||||||
end
|
end
|
||||||
@@ -1357,7 +1357,7 @@ function PrepareUnload( sCmd)
|
|||||||
table.insert( EMT.AUXCMD, sMsg)
|
table.insert( EMT.AUXCMD, sMsg)
|
||||||
if Cmd[4] == 'V' then
|
if Cmd[4] == 'V' then
|
||||||
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
||||||
local sEAB = EgtIf( EMT.PHASE == EgtGetPhaseCount(), '111', '112')
|
local sEAB = EgtIf( EMT.PHASE == EgtGetPhaseCount() or IsEnd2Phase( EMT.PHASE), '111', '112')
|
||||||
local sOut = 'G111 '..Cmd[4]..Cmd[5]..' EA'..sEAB..' EB'..sEAB..' EC142 ED141 EE2 EF'..GetFmaxClamp()
|
local sOut = 'G111 '..Cmd[4]..Cmd[5]..' EA'..sEAB..' EB'..sEAB..' EC142 ED141 EE2 EF'..GetFmaxClamp()
|
||||||
table.insert( EMT.AUXSTR, sOut)
|
table.insert( EMT.AUXSTR, sOut)
|
||||||
EMT.U_STD = true
|
EMT.U_STD = true
|
||||||
@@ -1517,10 +1517,13 @@ function PreparePostRotation( sCmd)
|
|||||||
elseif nVDelta > 0 then
|
elseif nVDelta > 0 then
|
||||||
EMT.YDELTA = nil
|
EMT.YDELTA = nil
|
||||||
EMT.VDELTA = nVDelta
|
EMT.VDELTA = nVDelta
|
||||||
end
|
end
|
||||||
local sYLoad = ' Y'..EmtLenToString( LoadT)
|
local sYLoad = ' Y'..EmtLenToString( LoadT)
|
||||||
local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1'
|
local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1'
|
||||||
table.insert( EMT.AUXSTR, sOut)
|
table.insert( EMT.AUXSTR, sOut)
|
||||||
|
-- setto parametri di pinzaggio reali
|
||||||
|
EMT.SA = ' EA110'
|
||||||
|
EMT.SE = ' EE1'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1435,7 +1435,7 @@ function PrepareUnload( sCmd)
|
|||||||
table.insert( EMT.AUXCMD, sMsg)
|
table.insert( EMT.AUXCMD, sMsg)
|
||||||
if Cmd[2] == 'V' then
|
if Cmd[2] == 'V' then
|
||||||
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
||||||
local sEE = EgtIf( EMT.PHASE == EgtGetPhaseCount(), '0', '1')
|
local sEE = EgtIf( EMT.PHASE == EgtGetPhaseCount() or IsEnd2Phase( EMT.PHASE), '0', '1')
|
||||||
local sOut = 'G111 '..Cmd[2]..Cmd[3]..' EC141 ED83 EE'..sEE..' EF'..GetFmaxClamp()
|
local sOut = 'G111 '..Cmd[2]..Cmd[3]..' EC141 ED83 EE'..sEE..' EF'..GetFmaxClamp()
|
||||||
table.insert( EMT.AUXSTR, sOut)
|
table.insert( EMT.AUXSTR, sOut)
|
||||||
end
|
end
|
||||||
@@ -1444,7 +1444,7 @@ function PrepareUnload( sCmd)
|
|||||||
table.insert( EMT.AUXCMD, sMsg)
|
table.insert( EMT.AUXCMD, sMsg)
|
||||||
if Cmd[4] == 'V' then
|
if Cmd[4] == 'V' then
|
||||||
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
-- se non è ultima fase c'è una barra sulla pinza Y (1)
|
||||||
local sEAB = EgtIf( EMT.PHASE == EgtGetPhaseCount(), '111', '112')
|
local sEAB = EgtIf( EMT.PHASE == EgtGetPhaseCount() or IsEnd2Phase( EMT.PHASE), '111', '112')
|
||||||
local sOut = 'G111 '..Cmd[4]..Cmd[5]..' EA'..sEAB..' EB'..sEAB..' EC142 ED141 EE2 EF'..GetFmaxClamp()
|
local sOut = 'G111 '..Cmd[4]..Cmd[5]..' EA'..sEAB..' EB'..sEAB..' EC142 ED141 EE2 EF'..GetFmaxClamp()
|
||||||
table.insert( EMT.AUXSTR, sOut)
|
table.insert( EMT.AUXSTR, sOut)
|
||||||
EMT.U_STD = true
|
EMT.U_STD = true
|
||||||
@@ -1604,10 +1604,13 @@ function PreparePostRotation( sCmd)
|
|||||||
elseif nVDelta > 0 then
|
elseif nVDelta > 0 then
|
||||||
EMT.YDELTA = nil
|
EMT.YDELTA = nil
|
||||||
EMT.VDELTA = nVDelta
|
EMT.VDELTA = nVDelta
|
||||||
end
|
end
|
||||||
local sYLoad = ' Y'..EmtLenToString( LoadT)
|
local sYLoad = ' Y'..EmtLenToString( LoadT)
|
||||||
local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1'
|
local sOut = 'G111'..sYLoad..' EA76'..EMT.SB..' EE0 EF'..EmtLenToString( EMT.FMAXPINZE,0)..' ET1'
|
||||||
table.insert( EMT.AUXSTR, sOut)
|
table.insert( EMT.AUXSTR, sOut)
|
||||||
|
-- setto parametri di pinzaggio reali
|
||||||
|
EMT.SA = ' EA110'
|
||||||
|
EMT.SE = ' EE1'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1626,10 +1626,13 @@ function PreparePostRotation( sCmd)
|
|||||||
elseif nVDelta > 0 then
|
elseif nVDelta > 0 then
|
||||||
EMT.YDELTA = nil
|
EMT.YDELTA = nil
|
||||||
EMT.VDELTA = nVDelta
|
EMT.VDELTA = nVDelta
|
||||||
end
|
end
|
||||||
local sYLoad = ' P2='..EmtLenToString( LoadT)
|
local sYLoad = ' P2='..EmtLenToString( LoadT)
|
||||||
local sOut = 'M111 P1=11'..sYLoad..' P4=76'..EMT.SB..' P8=0 P9='..GetFmaxClamp()
|
local sOut = 'M111 P1=11'..sYLoad..' P4=76'..EMT.SB..' P8=0 P9='..GetFmaxClamp()
|
||||||
table.insert( EMT.AUXSTR, sOut)
|
table.insert( EMT.AUXSTR, sOut)
|
||||||
|
-- setto parametri di pinzaggio reali
|
||||||
|
EMT.SA = ' P4=110'
|
||||||
|
EMT.SE = ' P8=1'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -1572,8 +1572,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
dMaxMovePilgrimStepSingleClampY = MaxY - dYPosI
|
dMaxMovePilgrimStepSingleClampY = MaxY - dYPosI
|
||||||
dMaxMovePilgrimStepSingleClampV = - MinV + dVPosI
|
dMaxMovePilgrimStepSingleClampV = - MinV + dVPosI
|
||||||
else
|
else
|
||||||
dMaxMovePilgrimStepDoubleClamp = MaxY - MinY - MinV + MaxV
|
dMaxMovePilgrimStepDoubleClamp = MaxY - MyMinY - MinV + MaxV
|
||||||
dMaxMovePilgrimStepSingleClampY = MaxY - MinY
|
dMaxMovePilgrimStepSingleClampY = MaxY - MyMinY
|
||||||
dMaxMovePilgrimStepSingleClampV = - MinV + MaxV
|
dMaxMovePilgrimStepSingleClampV = - MinV + MaxV
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1863,8 +1863,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
dTPosI = dTPosA
|
dTPosI = dTPosA
|
||||||
dYPosI = dYPosA
|
dYPosI = dYPosA
|
||||||
dVPosI = dVPosA
|
dVPosI = dVPosA
|
||||||
dMaxMovePilgrimStepDoubleClamp = MaxY - MinY - MinV + MaxV
|
dMaxMovePilgrimStepDoubleClamp = MaxY - MyMinY - MinV + MaxV
|
||||||
dMaxMovePilgrimStepSingleClampY = MaxY - MinY
|
dMaxMovePilgrimStepSingleClampY = MaxY - MyMinY
|
||||||
dMaxMovePilgrimStepSingleClampV = - MinV + MaxV
|
dMaxMovePilgrimStepSingleClampV = - MinV + MaxV
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1917,10 +1917,10 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
-- recupero una corsa massima e l'altra solo di quello che serve
|
-- recupero una corsa massima e l'altra solo di quello che serve
|
||||||
elseif abs( dYDeltaI - dYDeltaF) > dMaxMovePilgrimStepSingleClampV then
|
elseif abs( dYDeltaI - dYDeltaF) > dMaxMovePilgrimStepSingleClampV then
|
||||||
-- suddivido il movimento su entrambe le morse
|
-- suddivido il movimento su entrambe le morse
|
||||||
local dTotMove = ( dYDeltaF - dYDeltaI) / 2
|
local dTotMove = ( ( dYDeltaF + dVDeltaF) / 2 + ( dYDeltaI + dVDeltaI) / 2) / 2
|
||||||
-- morsa Y arriva in posizione finale
|
-- morsa Y arriva in posizione finale
|
||||||
dVPosA = MaxV - dTotMove
|
dVPosA = EgtClamp( MaxV - dTotMove, MaxV, MinV)
|
||||||
dTPosA = dTPosI - dVPosI + MaxV - dTotMove
|
dTPosA = dTPosI - dVPosI + dVPosA
|
||||||
dYPosA = dYDeltaF + dTPosA
|
dYPosA = dYDeltaF + dTPosA
|
||||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||||
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
|
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
|
||||||
@@ -2024,10 +2024,10 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
-- recupero una corsa massima e l'altra solo di quello che serve
|
-- recupero una corsa massima e l'altra solo di quello che serve
|
||||||
elseif abs( dVDeltaI - dVDeltaF) > dMaxMovePilgrimStepSingleClampY then
|
elseif abs( dVDeltaI - dVDeltaF) > dMaxMovePilgrimStepSingleClampY then
|
||||||
-- suddivido il movimento su entrambe le morse
|
-- suddivido il movimento su entrambe le morse
|
||||||
local dTotMove = ( dVDeltaI - dVDeltaF) / 2
|
local dTotMove = ( ( dYDeltaF + dVDeltaF) / 2 + ( dYDeltaI + dVDeltaI) / 2) / 2
|
||||||
-- morsa V arriva in posizione finale
|
-- morsa V arriva in posizione finale
|
||||||
dYPosA = MinY + dTotMove
|
dYPosA = EgtClamp( MinY + dTotMove, MinY, MaxY)
|
||||||
dTPosA = dTPosI + ( MinY - dYPosI) + dTotMove
|
dTPosA = dTPosI - dYPosI + dYPosA
|
||||||
dVPosA = dVDeltaF + dTPosA
|
dVPosA = dVDeltaF + dTPosA
|
||||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||||
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
|
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
|
||||||
|
|||||||
+5
-5
@@ -25,11 +25,11 @@ REM copio i sorgenti nel percorso temporaneo per i compilati
|
|||||||
ROBOCOPY . %fullPathSource%\bin\%machineName%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
ROBOCOPY . %fullPathSource%\bin\%machineName%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
||||||
|
|
||||||
REM copio i file compilati nel percorso temporaneo per i compilati
|
REM copio i file compilati nel percorso temporaneo per i compilati
|
||||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.mlpe -s Common-FAST.mlpe
|
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_FAST.mlpe -s Common_FAST.mlpe
|
||||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.mlse -s Common-FAST.mlse
|
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_FAST.mlse -s Common_FAST.mlse
|
||||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.NUM.mlpe -s Common-FAST.NUM.mlpe
|
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_FAST.NUM.mlpe -s Common_FAST.NUM.mlpe
|
||||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.NUM_PLUS.mlpe -s Common-FAST.NUM_PLUS.mlpe
|
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_FAST.NUM_PLUS.mlpe -s Common_FAST.NUM_PLUS.mlpe
|
||||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.TPA.mlpe -s Common-FAST.TPA.mlpe
|
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_FAST.TPA.mlpe -s Common_FAST.TPA.mlpe
|
||||||
|
|
||||||
REM comprimo i file compilati in uno zip pronto per essere distribuito
|
REM comprimo i file compilati in uno zip pronto per essere distribuito
|
||||||
tar.exe acvf %fullPathZip%\%machineName%.zip -C %fullPathSource%\bin\ %machineName%\*.*
|
tar.exe acvf %fullPathZip%\%machineName%.zip -C %fullPathSource%\bin\ %machineName%\*.*
|
||||||
|
|||||||
+2
-2
@@ -24,8 +24,8 @@
|
|||||||
require( 'EmtGenerator')
|
require( 'EmtGenerator')
|
||||||
EgtEnableDebug( false)
|
EgtEnableDebug( false)
|
||||||
|
|
||||||
PP_VER = '3.1c4'
|
PP_VER = '3.1d2'
|
||||||
PP_NVER = '3.1.3.4'
|
PP_NVER = '3.1.4.2'
|
||||||
MIN_MACH_VER = '2.7j1'
|
MIN_MACH_VER = '2.7j1'
|
||||||
MACH_NAME = EgtGetCurrMachineName()
|
MACH_NAME = EgtGetCurrMachineName()
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
==== Common_FAST Update Log ====
|
==== Common_FAST Update Log ====
|
||||||
|
|
||||||
|
Versione 3.1d2 (22/04/2026)
|
||||||
|
- (GEN) Corretta generazione del PreparePostRotation (in tutti i CN) ora salva lo stato della pinza per lo spostamento successivo. Ticket#2933
|
||||||
|
- (SIM-GEN) Corretto pinzaggio in caso di passo del pellegrino con recupero completo di una sola pinza
|
||||||
|
|
||||||
|
Versione 3.1d1 (14/04/2026)
|
||||||
|
- (SIM-GEN) Aggiorna lo step totale del PilgrimStep e lo step Y con il valore di MyMinY, di modo che tenga conto del AGG_LOAD quando c'è. Ticket#2919
|
||||||
|
- (GEN) Per NUM, si lascia aperta la pinza di carico in caso di END2. TPA era già corretto. Ticket#2869
|
||||||
|
|
||||||
Versione 3.1c2 (30/03/2026)
|
Versione 3.1c2 (30/03/2026)
|
||||||
- (SIM-GEN) Corretti moviemnti con motosega. Ora si ruota la C con B sempre a zero, anche alla posizione X di sicurezza. Ticket#2866
|
- (SIM-GEN) Corretti moviemnti con motosega. Ora si ruota la C con B sempre a zero, anche alla posizione X di sicurezza. Ticket#2866
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
local InfoCommon_STD_PP = {
|
local InfoCommon_STD_PP = {
|
||||||
NAME = 'Common_FAST', -- nome script PP standard
|
NAME = 'Common_FAST', -- nome script PP standard
|
||||||
VERSION = '3.1c2', -- versione script
|
VERSION = '3.1d2', -- versione script
|
||||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user