Compare commits

...

11 Commits

Author SHA1 Message Date
andrea.villa 7d13d2604b Gestione completa aggregato a T 2024-11-12 08:35:18 +01:00
andrea.villa d7916832ed NGE con solidi Aggregato a T 2024-11-07 16:54:19 +01:00
andrea.villa 24cb48df12 Merge remote-tracking branch 'origin/master' into develop 2024-11-07 16:53:24 +01:00
andrea.villa 979d625b23 - Allineamento con Common ver. 2.6j10 2024-10-25 14:38:03 +02:00
andrea.villa 16e36eff78 - Allineamento con Common ver. 2.6j9 2024-10-22 11:22:45 +02:00
andrea.villa 009869eb9f - Allineamento con Common ver. 2.6j8
- Aggiunto LEN_SHORT_PART tra i parametri configurabili da TS3
2024-10-21 08:48:14 +02:00
andrea.villa ee56eaab7d Allineamento con Common ver. 2.6j7 2024-10-18 10:24:41 +02:00
andrea.villa 60459649c2 Allineamento con common ver. 2.6j6 2024-10-17 16:12:31 +02:00
andrea.villa bb83671c7e - Allineamento con common ver. 2.6j5
- Tolti i commenti iniziali da quando è stato creato progetto GIT
2024-10-17 09:40:55 +02:00
andrea.villa 21abd1b45f Aggiunta lettura alcune variabili impostabili da TS3 2024-10-15 10:27:36 +02:00
andrea.villa e6c85e29a4 - Allineamento con common ver. 2.6j4 2024-10-15 09:22:38 +02:00
10 changed files with 160 additions and 96 deletions
+7
View File
@@ -10,6 +10,7 @@ local BeamData = {
SIMUL_VIEW_DIR = 1, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
GO_FAST = 0, -- flag abilitazione modalità veloce (0=no, 1=carrelli, 2=anche cambio utensili)
ROT90 = false, -- flag abilitazione rotazione 90 gradi
ROT180 = true, -- flag abilitazione rotazione 180 gradi
NEWCLAMPING = false, -- flag abilitazione nuovo metodo riposizionamento carrelli
FASTCLAMPING= true, -- flag abilitazione riduzione numero riposizionamenti al carico e durante grande trascinamento
MIN_WIDTH = 40, -- larghezza minima del grezzo
@@ -101,12 +102,18 @@ if EgtExistsFile( sData) 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
if Machine.Offsets.PRECUT_HEAD_DISABLE then BeamData.PRECUT_HEAD = ( Machine.Offsets.PRECUT_HEAD_DISABLE == 0) end
if Machine.Offsets.PRECUT_TAIL_DISABLE then BeamData.PRECUT_TAIL = ( Machine.Offsets.PRECUT_TAIL_DISABLE == 0) end
if Machine.Offsets.MIN_HEIGHT_ADDED_CUTS then BeamData.MIN_HEIGHT_ADDED_CUTS = min( Machine.Offsets.MIN_HEIGHT_ADDED_CUTS, BeamData.MIN_HEIGHT_ADDED_CUTS) end
if Machine.Offsets.NEWCLAMPING ~= nil then BeamData.NEWCLAMPING = ( Machine.Offsets.NEWCLAMPING == 1) end
if Machine.Offsets.FASTCLAMPING ~= nil then BeamData.FASTCLAMPING = ( Machine.Offsets.FASTCLAMPING == 1) end
if Machine.Offsets.ROT90 ~= nil then BeamData.ROT90 = ( Machine.Offsets.ROT90 == 1) end
if Machine.Offsets.ROT180 ~= nil then BeamData.ROT180 = ( Machine.Offsets.ROT180 == 1) end
end
if Machine.Trave then
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
+1 -1
View File
@@ -1647,7 +1647,7 @@ end
---------------------------------------------------------------------
function GetET( sHead, sTcPos, dAxR3)
if sHead == 'H1' then
if sHead == 'H1' or sHead == 'H5' or sHead == 'H6' then
return ' E'..sTcPos
elseif sHead == 'H2' then
return ' ET42'
+48 -42
View File
@@ -1214,6 +1214,9 @@ function SpecCalcCarriages( dDistFront, dDistBack, bFixedDelta, bFixedPos)
end
local dDistBackEff = min( dDistBack, EMC.LB - MyMinOther - EMC.HCING - EMC.HOVM)
-- se primo scambio
local MyMinY = EgtIf( EMC.CNT == 1, MinY + AGG_LOAD, MinY)
EgtOutLog( ' Dist/Min : Back=' .. EgtNumToString( dDistBackEff, 1) .. '/' .. EgtNumToString( MinBackJoin, 1) ..
' Front=' .. EgtNumToString( dDistFrontEff, 1) .. '/' .. EgtNumToString( MinFrontJoin, 1) ..
' Fixed : Delta=' .. EgtIf( bFixedDelta, 'T', 'F') .. ' Pos=' .. EgtIf( bFixedPos, 'T', 'F'), 3)
@@ -1233,7 +1236,7 @@ function SpecCalcCarriages( dDistFront, dDistBack, bFixedDelta, bFixedPos)
if dDistFrontEff < MinFrontJoin and dDistBackEff > MinBackJoin - GEO.EPS_SMALL then
-- se Y non era in presa, mi ricalcolo la posizione
if not dYDelta then
dYDelta = dVDelta + ( MinY - MaxV)
dYDelta = dVDelta + ( MyMinY - MaxV)
end
dNewYDelta = EMC.LB - dDistBackEff
-- verifico se posso lasciare la morsa in posizione
@@ -1250,11 +1253,11 @@ function SpecCalcCarriages( dDistFront, dDistBack, bFixedDelta, bFixedPos)
elseif dDistBackEff > MinBackJoin - GEO.EPS_SMALL and dDistFrontEff > MinFrontJoin - GEO.EPS_SMALL then
-- se Y non era in presa, mi ricalcolo la posizione
if not dYDelta then
dYDelta = dVDelta + ( MinY - MaxV)
dYDelta = dVDelta + ( MyMinY - MaxV)
end
-- se V non era in presa, mi ricalcolo la posizione
if not dVDelta then
dVDelta = dYDelta - ( MinY - MaxV)
dVDelta = dYDelta - ( MyMinY - MaxV)
end
dNewYDelta = EMC.LB - dDistBackEff
@@ -1284,12 +1287,17 @@ function SpecCalcCarriages( dDistFront, dDistBack, bFixedDelta, bFixedPos)
elseif dDistBackEff < MinBackJoin and dDistFrontEff > MinFrontJoin - GEO.EPS_SMALL then
-- se V non era in presa, mi ricalcolo la posizione
if not dVDelta then
dVDelta = dYDelta - ( MinY - MaxV)
dVDelta = dYDelta - ( MyMinY - MaxV)
end
dNewVDelta = dDistFrontEff
-- verifico se posso lasciare la morsa in posizione
local dVDeltaTol = GetDeltaTol( dNewVDelta, EMC.TCING, EMC.HCING, EMC.HOVM, 'V', bFixedDelta)
local bVDeltaS = ( dNewVDelta > dVDelta + dVDeltaTol or dNewVDelta < dVDelta - DELTA_SIC)
local bVDeltaS
if EMC.YDELTA == nil and EMC.YDELTANEXT == nil then
bVDeltaS = (( dNewVDelta > dVDelta + dVDeltaTol and not bFixedPos) or dNewVDelta < dVDelta - DELTA_SIC)
else
bVDeltaS = ( dNewVDelta > dVDelta + dVDeltaTol or dNewVDelta < dVDelta - DELTA_SIC)
end
-- reimposto i delta finali in caso di spostamenti richiesti significativi, tenuto conto delle tolleranze
if bVDeltaS then
dNewVDelta = dNewVDelta - dVDeltaTol/2
@@ -1489,6 +1497,17 @@ function SpecCalcPreRot()
return vCmd
end
---------------------------------------------------------------------
local function CalcCharStatus( sType, dDelta)
-- se per carrello Y
if sType == 'Y' then
return EgtIf( EMC.LB - dDelta < LenToPress, 1, 2)
-- altrimenti per carrello V
else
return EgtIf( dDelta < LenToPress, 1, 2)
end
end
---------------------------------------------------------------------
function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
local dYPosA, dVPosA, dTPosA
@@ -1525,6 +1544,14 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
local bZmaxOk = EnsureZmax( bZmaxOk, vCmd)
end
-- ribadisco pinzaggio
if EMC.YDELTA then
table.insert( vCmd, { 11, 1})
end
if EMC.VDELTA then
table.insert( vCmd, { 12, 1})
end
-- reset contatore primo riposizionamento con compensazione lettura laser
EMC.CNT = nil
@@ -1556,7 +1583,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
-- * deve effettivamente spostarsi
-- * non si arriva da gestione passo del pellegrino
-- * se riesce a raggiungere la posizione con le corse a disposizione per come sono posizionate le morse attualmente
if ( dYDeltaI - dVDeltaF) >= MyMinY - MaxV and abs( dVDeltaF - dVDeltaI) > 10 * GEO.EPS_SMALL and not EMC.PILGRIMSTEP and
if ( dYDeltaI - dVDeltaF) + 10 * GEO.EPS_SMALL >= MyMinY - MaxV and abs( dVDeltaF - dVDeltaI) > 10 * GEO.EPS_SMALL and not EMC.PILGRIMSTEP and
( dVDeltaF - dVDeltaI > MinV - dVPosI + MyMinY - dYPosI) then
table.insert( vCmd, { 0, 'Direct-V-Y'})
-- se l'altra morsa non era in presa, vado a pinzare il pezzo
@@ -1615,7 +1642,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dTPosI = dTPosA
-- blocco la morsa
table.insert( vCmd, { 12, 1})
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
-- imposto i nuovi parametri di aggancio
if EMC.YDELTANEXT and EMC.VDELTANEXT then
@@ -1626,7 +1653,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dYPosA = dTPosF + dYDeltaF
dVPosA = dTPosF + dVDeltaF
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 11, 1})
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
-- la morsa al carico è adesso in posizione
dYDeltaI = dYDeltaF
end
@@ -1638,7 +1665,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dTPosA = -( dYPosA + dVDeltaF)
dVPosA = dTPosA + dVDeltaF
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 11, 1})
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
-- la morsa al carico è adesso in posizione
dYDeltaI = dYDeltaF
end
@@ -1661,7 +1688,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
-- * deve effettivamente spostarsi
-- * non si arriva da gestione passo del pellegrino
-- * se riesce a raggiungere la posizione con le corse a disposizione per come sono posizionate le morse attualmente
elseif ( dYDeltaF - dVDeltaI) >= MyMinY - MaxV and abs( dYDeltaF - dYDeltaI) > 10 * GEO.EPS_SMALL and not EMC.PILGRIMSTEP and
elseif ( dYDeltaF - dVDeltaI) + 10 * GEO.EPS_SMALL >= MyMinY - MaxV and abs( dYDeltaF - dYDeltaI) > 10 * GEO.EPS_SMALL and not EMC.PILGRIMSTEP and
( dYDeltaF - dYDeltaI < MaxY - dYPosI + MaxV - dVPosI) then
table.insert( vCmd, { 0, 'Direct-Y-V'})
-- se l'altra morsa non era in presa, vado a pinzare il pezzo
@@ -1723,7 +1750,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dTPosI = dTPosA
-- blocco la morsa
table.insert( vCmd, { 11, 1})
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
-- imposto i nuovi parametri di aggancio
if EMC.YDELTANEXT and EMC.VDELTANEXT then
@@ -1733,7 +1760,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dYPosA = dTPosF + dYDeltaF
dVPosA = dTPosF + dVDeltaF
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 12, 1})
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
-- la morsa al carico è adesso in posizione
dVDeltaI = dVDeltaF
end
@@ -1745,7 +1772,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dTPosA = dVPosA - dVDeltaF
dYPosA = dTPosA + dYDeltaF
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 12, 1})
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
-- la morsa al carico è adesso in posizione
dVDeltaI = dVDeltaF
end
@@ -1858,7 +1885,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dTPosA = dTPosI - dVPosI + MinV
dYPosA = dYDeltaF + dTPosA
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 11, 1})
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
table.insert( vCmd, { 12, 0})
dTPosI = dTPosA
EMC.YDELTA = dYDeltaF
@@ -1875,7 +1902,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dVPosA = dTPosI + dVDeltaI - dTotMove
dTPosA = dTPosI - dTotMove
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 11, 1})
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
table.insert( vCmd, { 12, 0})
-- aggiorno nuova posizione della morsa al carico dopo riposizionamento
@@ -1903,12 +1930,12 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
-- imposto i nuovi parametri di aggancio
if EMC.YDELTANEXT and EMC.VDELTANEXT then
table.insert( vCmd, { 12, 1})
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
table.insert( vCmd, { 21, dYDeltaF, dVDeltaF})
elseif EMC.YDELTANEXT then
table.insert( vCmd, { 21, dYDeltaF, 0})
else
table.insert( vCmd, { 12, 1})
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
table.insert( vCmd, { 11, 0})
-- sposto il carrello Y in parcheggio
table.insert( vCmd, { 1, 'Y', ParkY})
@@ -1964,7 +1991,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dTPosA = dTPosI + ( MaxY - dYPosI)
dVPosA = dVDeltaF + dTPosA
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 12, 1})
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
table.insert( vCmd, { 11, 0})
dTPosI = dTPosA
EMC.YDELTA = dYDeltaI
@@ -1981,7 +2008,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dVPosA = dTPosI + dVDeltaI - dTotMove
dTPosA = dTPosI + dTotMove
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
table.insert( vCmd, { 12, 1})
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
table.insert( vCmd, { 11, 0})
-- aggiorno nuova posizione della morsa allo scarico dopo riposizionamento
@@ -2007,22 +2034,12 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
dYDeltaI = dYDeltaF
end
-- sistemo apertura morse
if EMC.YDELTANEXT then
table.insert( vCmd, { 11, 1})
end
if not EMC.VDELTANEXT then
table.insert( vCmd, { 12, 0})
-- sposto il carrello Y in parcheggio
table.insert( vCmd, { 1, 'V', ParkV})
end
-- imposto i nuovi parametri di aggancio
if EMC.YDELTANEXT and EMC.VDELTANEXT then
table.insert( vCmd, { 11, 1})
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
table.insert( vCmd, { 21, dYDeltaF, dVDeltaF})
elseif EMC.YDELTANEXT then
table.insert( vCmd, { 11, 1})
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
-- sposto il carrello Y in parcheggio
table.insert( vCmd, { 12, 0})
table.insert( vCmd, { 1, 'V', ParkV})
@@ -2277,17 +2294,6 @@ function SpecAdjustCarriagesOLD( dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, d
end
end
---------------------------------------------------------------------
local function CalcCharStatus( sType, dDelta)
-- se per carrello Y
if sType == 'Y' then
return EgtIf( EMC.LB - dDelta < LenToPress, 1, 2)
-- altrimenti per carrello V
else
return EgtIf( dDelta < LenToPress, 1, 2)
end
end
---------------------------------------------------------------------
local function GetCorseDisp( dCorsaYfc, dCorsaVfc, dDistN, sSide)
local dRecTotn = min( dDistN, dCorsaYfc+ dCorsaVfc) -- recupero possibile al netto di dCorsa..TrA)
+6
View File
@@ -21,6 +21,10 @@ H1.1:MILL_NOTIP=MillNoTip.nge
H1.1:SAW_FLAT=TcSaw.nge
H2.1=Saw.nge
H3.1=ChainSaw.nge
H5.1=AngTransm.nge
H5.2=AngTransm.nge
H6.1=AngTransm.nge
H6.2=AngTransm.nge
[Machinings]
Drilling=1
@@ -46,6 +50,8 @@ H1=6608
H2=6615
; Chainsaw
H3=6616
; Angular transmission
H5=6603
[SetUp]
Default=Standard
+63 -48
View File
@@ -3,50 +3,15 @@
-- 2022/07/22 Ver.2.4g2 DS Modifiche per ribaltamento pezzo con molto scarto iniziale.
-- 2023/01/16 Ver.2.5a1 DS/LM Modificata posizione home della testa H3.
-- 2023/01/23 Ver.2.5a2 DS Allineamento con FAST (per problemi scorrimento carrelli rispetto a trave).In simulazione corretta visualizzazione Sega a catena.
-- 2023/07/26 Ver.2.5g1 DS Per NUM aggiunta gestione rotazione in alto su pezzi alti (G101 EH1) come per TPA in versione 2.3f2.
-- 2023/07/26 Ver.2.5g2 DS Per NUM tolta segnalazione errore rotazione a Zmax per pezzi alti non gestita (era su EMT.FLAG == 5).
-- 2023/09/29 ver 2.5i1 In BeamData e mlde aggiunta la lettura di alcuni parametri da Ts3Data.
-- 2024/01/17 Ver.2.6a1 DS Aggiunta gestione BlockHouse come in FAST.
-- 2024/02/09 Ver 2.6b1 LM In BeamData aggiunta funzione GetBlockedAxis che sostituisce la GetChainSawBlockedAxis.
-- 2024/02/22 Ver 2.6b2 LM In mlse corretto calcolo pinzaggio quando testa vicina.
-- 2024/02/23 ver 2.6c1 Rimossa chiamata funzione EgtGetSourceDir
-- Prima versione post common
-- Allineamento con common ver. 2.6c3
-- 2024/02/23 ver 2.6c2 Aggiornamento BeamData per visualizzazione in simulazione
-- 2024/02/27 ver 2.6c3 Allineamento con common ver. 2.6c4. Aggiunto parametro 'SafeXRotAxes' per rotazione motosega con pezzi alti
-- Parametro 'SecondSupport' gestito come intero
-- 2024/02/29 ver 2.6c4 Allineamento con common ver. 2.6c4
-- 2024/03/04 ver 2.6c5 Modificato log con nome macchina
-- Allineamento con common ver. 2.6c6
-- 2024/03/12 ver 2.6c6 Allineamento con common ver. 2.6c7
-- Migliorie alla geometria macchina e suo caricamento
-- 2024/03/28 ver 2.6d1 Allineamento con common ver. 2.6c8
-- 2024/03/28 ver 2.6d2 Allineamento con common ver. 2.6d2
-- 2024/04/30 ver 2.6e1 Allineamento con common ver. 2.6e1
-- Aggiunta variabile WoodDensity per gestione WOOD_DENSITY
-- 2024/05/06 ver 2.6e2 Allineamento con common ver. 2.6e2
-- 2024/05/06 ver 2.6e3 Allineamento con common ver. 2.6e3
-- Aggiunte variabili MinJoin(xx) per gestione MIN_JOIN_(xx)
-- 2024/06/03 ver 2.6f1 Aggiunta funzione GetSetupInfo a BeamData per nuovo automatismo
-- 2024/07/03 ver 2.6g1 Allineamento con common ver. 2.6g1
-- 2024/09/02 ver 2.6i1 Allineamento con common ver. 2.6i1, Rimossi file "Common-"
-- 2024/09/02 ver 2.6i2 Corretto file YML per compilare file "Common_"
-- 2024/09/16 ver 2.6i3 Allineamento con common ver. 2.6i2
-- 2024/09/18 ver 2.6i4 Modificato YAML per comunicazione versioni a LiMan. Aggiunta PP_NVER, versione macchina in formato numerico.
-- 2024/09/24 ver 2.6i5 Allineamento con common ver. 2.6i4
-- 2024/09/24 ver 2.6i6 Allineamento con common ver. 2.6i5
-- 2024/09/25 ver 2.6i7 Allineamento con common ver. 2.6i6
-- 2024/10/01 ver 2.6j1 Allineamento con common ver. 2.6j1
-- 2024/10/03 AV ver 2.6j2 Allineamento con common ver. 2.6j2
-- Aggiunta lettura parametro ROT90 da TS3 in BeamData
-- 2024/10/04 LM ver 2.6j3 in BeamData corretta lettura ROT90 da TS3
-- 2024/10/11 AV ver 2.6j4 Allineamento con common ver. 2.6j3
-------------------------------------
-- NOTE VERSIONI SUCCESSIVE IN GIT --
-------------------------------------
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.6j4'
PP_NVER = '2.6.10.4'
PP_VER = '2.6j11'
PP_NVER = '2.6.10.11'
MIN_MACH_VER = '2.5k1'
MACH_NAME = 'Essetre-FASTrl'
@@ -129,14 +94,14 @@ if EgtExistsFile( sData) then
if Machine then
if Machine.Offsets then
NumericalControl = EgtIf( Machine.Offsets.TIPO_CN == 0, 'NUM', 'TPA')
if Machine.Offsets.MIN_X then MaxX = -Machine.Offsets.MIN_X end
if Machine.Offsets.MAX_X then MinX = -Machine.Offsets.MAX_X end
MinZ = Machine.Offsets.MIN_Z or MinZ
MaxZ = Machine.Offsets.MAX_Z or MaxZ
MinB = Machine.Offsets.MIN_B or MinB
MaxB = Machine.Offsets.MAX_B or MaxB
MinC = Machine.Offsets.MIN_C or MinC
MaxC = Machine.Offsets.MAX_C or MaxC
if Machine.Offsets.MAX_X then MinX = - Machine.Offsets.MAX_X end
if Machine.Offsets.MIN_X then MaxX = - Machine.Offsets.MIN_X end
if Machine.Offsets.MIN_Z then MinZ = Machine.Offsets.MIN_Z end
if Machine.Offsets.MAX_Z then MaxZ = Machine.Offsets.MAX_Z end
if Machine.Offsets.MIN_B then MinB = Machine.Offsets.MIN_B end
if Machine.Offsets.MAX_B then MaxB = Machine.Offsets.MAX_B end
if Machine.Offsets.MIN_C then MinC = Machine.Offsets.MIN_C end
if Machine.Offsets.MAX_C then MaxC = Machine.Offsets.MAX_C end
MinY = Machine.Offsets.MIN_Y or Machine.Offsets.MINY or MinY
MaxY = Machine.Offsets.MAX_Y or Machine.Offsets.MAXY or MaxY
ParkY = Machine.Offsets.PARKYY or ParkY
@@ -167,6 +132,7 @@ if EgtExistsFile( sData) then
if Machine.Offsets.MIN_JOIN_LS then MinJoinLS = Machine.Offsets.MIN_JOIN_LS end
if Machine.Offsets.MIN_JOIN_SL then MinJoinSL = Machine.Offsets.MIN_JOIN_SL end
if Machine.Offsets.MIN_JOIN_LL then MinJoinLL = Machine.Offsets.MIN_JOIN_LL end
if Machine.Offsets.NEWTOPC then NewTopC = ( Machine.Offsets.NEWTOPC == 1) end
end
end
end
@@ -304,6 +270,31 @@ EgtSetInfo( H3Id, 'ZMAXONROT', '1,5')
if BeamHeightForFixRot < 1000 then
EgtSetInfo( H3Id, 'ROTATZMAX', '1')
end
-- Eventuale rinvio angolare
if SecondSupport >= 3 then
local H5Id = EmtHead {
Name = 'H5',
Parent = 'B',
HSet = 'H1',
Type = MCH_HT.MULTI,
ExitNbr = 2,
Pos1 = Point3d( 0, AngTr1Len, -AngTr1Offs),
TDir1 = -Y_AX(),
Pos2 = Point3d( 0, -AngTr1Len, -AngTr1Offs),
TDir2 = Y_AX(),
ADir = Z_AX(),
Rot1W = 0.2,
Rot2Stroke = { -120, 120},
OthColl = { 'H2', 'B/SOLID', 'C/SOLID'},
Geo = 'H5_HEAD/GEO',
Aux = {'H5_HEAD/SOLID', 'H5_HEAD/COLLISION'}}
EgtSetInfo( H5Id, 'AGB_TYPE', 2)
EgtSetInfo( H5Id, 'AGB_DMAX', 240)
EgtSetInfo( H5Id, 'AGB_ENCH', 44)
EgtSetInfo( H5Id, 'AGB_ENCV', 380)
EgtSetInfo( H5Id, 'AGB_MDIR', -X_AX())
EgtSetInfo( H5Id, 'ZMAXONROT', '1,15')
end
-- Morse
local YId = EmtAxis {
Name = 'Y',
@@ -458,6 +449,7 @@ else
Geo = 'BASE/T101S'}
end
if SecondSupport == 1 then
-- supporto per punta
EmtTcPos {
Name = 'T111',
Parent = 'Base',
@@ -465,6 +457,29 @@ if SecondSupport == 1 then
TDir = Z_AX(),
ADir = -X_AX(),
Geo = 'BASE/T111'}
elseif SecondSupport == 2 then
-- supporto per mortasatrice
local TcpSsId = EmtTcPos {
Name = 'T111',
Parent = 'Base',
Pos = Point3d( 510.4, -113.2, -430.8),
TDir = X_AX(),
ADir = Z_AX(),
Geo = 'BASE/T111M'}
EgtSetInfo( TcpSsId, 'Mortiser', true)
elseif SecondSupport == 3 then
-- supporto per rinvio angolare
local TcpSsId = EmtTcPos {
Name = 'T91',
Parent = 'Base',
ExitNbr = 2,
Pos1 = Point3d( 710.4+150, -113.2, -329.8-170),
TDir1 = -X_AX(),
Pos2 = Point3d( 710.4-150, -113.2, -329.8-170),
TDir2 = X_AX(),
ADir = Z_AX(),
Geo = 'BASE/T91',
Aux = 'BASE/T91_HS'}
end
if SpecialBH then
EmtTcPos {
Binary file not shown.
+12 -4
View File
@@ -39,10 +39,18 @@ local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H1", Group = "G1"},
{Pos = "Pos10", TcPos = "T10", Head = "H1", Group = "G1"},
{Pos = "Pos11", TcPos = "T11", Head = "H1", Group = "G1"},
{Pos = "Pos12", TcPos = "T42", Head = "H2", Group = "G1"},
{Pos = "Pos13", TcPos = "T101", Head = "H3", Group = "G1"}}
if EgtGetTcPosId( 'T111') then
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H1", Group = "G1"})
{Pos = "Pos13", TcPos = "T101", Head = "H3", Group = "G2"}}
local SecSuppId = EgtGetTcPosId( 'T111')
if SecSuppId then
local bMortiser = EgtGetInfo( SecSuppId, 'Mortiser', 'b')
if bMortiser then
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H3", Group = "G2"})
else
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T111", Head = "H1", Group = "G2"})
end
end
if EgtGetHeadId( 'H5') then
table.insert( PositionTable, {Pos = "Pos14", TcPos = "T91", Head = "H5", Group = "G2"})
end
local UsePositionHead = true
Binary file not shown.
+22
View File
@@ -1,5 +1,27 @@
==== Common_FAST Update Log ====
Versione 2.6j10 (25/10/2024)
- (SIM-GEN) Miglioria 2.6j9. Si ribadisce pinza in presa sempre, all'inizio, in base a quella attiva
Versione 2.6j9 (22/10/2024)
- (SIM-GEN) Miglioria 2.6j6. Oltre al passo pellegrino si ribadisce anche quando è scambio diretto
Versione 2.6j8 (21/10/2024)
- (SIM-GEN) Corretto problema tolleranza aggiunto con versione 2.6j7
Versione 2.6j7 (18/10/2024)
- (SIM-GEN) In nuova disposizione carrelli, aggiunta tolleranza di 100 EPS quando si calcola minimo posizionamento
Versione 2.6j6 (17/10/2024)
- (GEN) Si ribadisce che la pinza era in presa, prima di cominciare con lo scambio del passo del pellegrino. Ticket#2121
Versione 2.6j5 (17/10/2024)
- (SIM-GEN) Piccola correzione nuovo riposizionamento. Nel taglio dello scarto finale riposizionava nel vuoto. Ticket#2115
Versione 2.6j4 (15/10/2024)
- (SIM-GEN) Piccola correzione nuovo riposizionamento. Non considerava i 50mm di tolleranza su primo pinzaggio dopo ribaltamento
- (SIM-GEN) Gestione attivazione pressore verticale in nuovo riposizionamento
Versione 2.6j3 (11/10/2024)
- (GEN) Corretta scrittura macro start/attesa movimenti per NUM. Veniva scritto codice per TPA.
+1 -1
View File
@@ -3,7 +3,7 @@
local InfoCommon_STD_PP = {
NAME = 'Common_FAST', -- nome script PP standard
VERSION = '2.6j3', -- versione script
VERSION = '2.6j10', -- versione script
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
}