Compare commits

...

5 Commits

Author SHA1 Message Date
luca.mazzoleni ea4c237ab9 - modificata GetSetupInfo 2025-02-28 09:24:48 +01:00
luca.mazzoleni dc31cfba27 - in BeamData GetSetupInfo modificate informazioni testa 2025-02-25 10:47:11 +01:00
luca.mazzoleni a908e52b77 - in BeamData -> GetSetupInfo aggiunte informazioni testa davanti/dietro (bIsFrontHead, bIsBackHead) 2025-02-18 13:20:58 +01:00
andrea.villa fca1cc97a0 Merge branch 'master' of https://gitlab.steamware.net/egalware-machines/essetre/Essetre-PF 2025-02-07 12:38:12 +01:00
andrea.villa 37a0b8de9e - Allineamento con common ver. 2.7b1
- Modifica NGE per collisioni con traversa
2025-02-07 12:37:09 +01:00
7 changed files with 65 additions and 33 deletions
+28 -17
View File
@@ -216,30 +216,41 @@ local function GetSetupInfo( sHead)
local SetupInfo = {}
-- dati comuni
SetupInfo.bIsCSymmetric = true
SetupInfo.bIsCSymmetrical = true
SetupInfo.dCAxisEncumbrance = 180
SetupInfo.bToolOnAggregate = false
SetupInfo.Head = {}
-- testa 5 assi da sopra
if sHead == 'H11' or sHead == 'H21' then
SetupInfo.bIsTopHead = true
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
SetupInfo.dMaxNegativeAngle = sin( -45)
-- lama su testa 5 assi da sopra
elseif sHead == 'H12' or sHead == 'H22' then
SetupInfo.bIsTopHead = true
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
SetupInfo.dMaxNegativeAngle = sin( -45)
-- testa 5 assi da sopra, dietro
if sHead == 'H11' then
SetupInfo.HeadType = { bTop = true, bBottom = false}
SetupInfo.PreferredSide = { bFront = false, bBack = true}
SetupInfo.dMinNz = sin( -45)
-- testa 5 assi da sopra, davanti
elseif sHead == 'H21' then
SetupInfo.HeadType = { bTop = true, bBottom = false}
SetupInfo.PreferredSide = { bFront = true, bBack = false}
SetupInfo.dMinNz = sin( -45)
-- lama su testa 5 assi da sopra, dietro
elseif sHead == 'H12' then
SetupInfo.HeadType = { bTop = true, bBottom = false}
SetupInfo.PreferredSide = { bFront = false, bBack = true}
SetupInfo.dMinNz = sin( -45)
-- lama su testa 5 assi da sopra, davanti
elseif sHead == 'H22' then
SetupInfo.HeadType = { bTop = true, bBottom = false}
SetupInfo.PreferredSide = { bFront = true, bBack = false}
SetupInfo.dMinNz = sin( -45)
-- motosega 1
elseif sHead == 'H13' or sHead == 'H23' then
SetupInfo.bIsTopHead = true
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
SetupInfo.dMaxNegativeAngle = 0
SetupInfo.HeadType = { bTop = true, bBottom = false}
SetupInfo.PreferredSide = {}
SetupInfo.dMinNz = 0
-- motosega 2
elseif sHead == 'H15' then
SetupInfo.bIsBottomHead = true
SetupInfo.bIsTopHead = not SetupInfo.bIsBottomHead
SetupInfo.dMaxPositiveAngle = 0
SetupInfo.HeadType = { bTop = false, bBottom = true}
SetupInfo.PreferredSide = {}
SetupInfo.dMaxNz = 0
end
return SetupInfo
+5 -5
View File
@@ -983,8 +983,8 @@ function OnRapid()
-- altrimenti caso standard
else
EmitMoveDataHead( 1, { Z=dZref, S=Speed})
EmitMoveDataHead( 1, { B=EMT.R2, S=Speed})
EmitMoveDataHead( 1, { C=EMT.R1, S=Speed})
EmitMoveDataHead( 1, { B=EMT.R2, S=Speed})
end
-- altrimenti sega a catena
else
@@ -1357,8 +1357,8 @@ function OnRapid()
-- altrimenti caso standard
else
EmitMoveDataHead( 1, { Z=dZref, S=Speed})
EmitMoveDataHead( 1, { B=EMT.R2, S=Speed})
EmitMoveDataHead( 1, { C=EMT.R1, S=Speed})
EmitMoveDataHead( 1, { B=EMT.R2, S=Speed})
end
-- altrimenti sega a catena
else
@@ -2780,7 +2780,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
local MovH = { Z = EgtIf( dZref > EMT.L3o, dZref, EMT.L3o)}
MovH.X = -dXPos ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
EmitMoveDataHead( 1, MovH)
if EMT.HEAD == 'H12' and ( abs( dSafeC1 - PrevR1) > 30.1 or abs( dSafeB1 - PrevR2) > 30.1) then
if EMT.HEAD == 'H12' and ( abs( dSafeC1 - PrevR1) > 30.1 or abs( dSafeB1 - PrevR2) > 30.1) or not( bProgress) then
EmitMoveDataHead( 1, { Z=dMaxZ1, B=0})
end
EmitMoveDataHead( 1, { C=dSafeC1})
@@ -2978,8 +2978,8 @@ function EmitParkRoller( dPosT, bSplitCut, bUsePrevDelta)
bVNoMove = true
MDChar.Y2 = dPosY2
end
-- se entrambe le morse sono restate in posizione, le sposto comunque di 5mm per distanziare i pezzi separati
if bYNoMove and bVNoMove then
-- se anche solo una morsa è restata in posizione, le sposto comunque entrambe di 5mm per distanziare i pezzi separati
if bYNoMove or bVNoMove then
MDChar.Y1 = MDChar.Y1 + 5
MDChar.Y2 = MDChar.Y2 - 5
end
+16 -6
View File
@@ -121,7 +121,13 @@ function OnSimulStart()
{ Grp = 'Base', Sub = 'COLLISION', Name = 'COL2'},
{ Grp = 'Base', Sub = 'COLLISION', Name = 'TC1'},
{ Grp = 'Base', Sub = 'COLLISION', Name = 'TC2'},
{ Grp = 'Base', Sub = 'BELT', Name = 'COLLISION'}}
{ Grp = 'Base', Sub = 'BELT', Name = 'COLLISION'},
{ Grp = 'X1', Sub = 'COLLISION', Name = 'STM'}}
if EgtGetHeadId( 'H21') then
table.insert( McdData, { Grp = 'X2', Sub = 'COLLISION', Name = 'STM'})
end
-- gruppo CHSAW si attiva solo se progress, one con BIT mortiser o PF
if Progress or Mortiser or EgtGetHeadId( 'H21') then
table.insert( McdData, { Grp = 'Base', Sub = 'COLLISION', Name = 'CHSAW'})
@@ -1101,8 +1107,8 @@ function OnSimulMoveStart()
-- caso standard
else
SimulMoveAxis( 'Z1', dZref, MCH_SIM_STEP.RAPID)
SimulMoveAxis( 'B1', EMT.R2, MCH_SIM_STEP.COLLROT)
SimulMoveAxis( 'C1', EMT.R1, MCH_SIM_STEP.COLLROT)
SimulMoveAxis( 'B1', EMT.R2, MCH_SIM_STEP.COLLROT)
end
end
-- altrimenti sega a catena (H13 o H15)
@@ -1663,7 +1669,7 @@ function ExecMoveZmax( bMchSplit, btoXHome)
if abs( HomeC - CurrC) > 0.1 or abs( HomeB - CurrB) > 0.1 then
local dZref = HomeZ + GetZExtra( EMT.HEAD, CurrB)
SimulMoveAxes( 'Z1', EgtIf( dZref > CurrZ, dZref, CurrZ), MCH_SIM_STEP.RAPID, 'B1', EgtClamp( CurrB, -90, 90), MCH_SIM_STEP.COLLROT)
if EMT.HEAD == 'H12' and ( abs( HomeC - CurrC) > 30.1 or abs( HomeB - CurrB) > 30.1) then
if EMT.HEAD == 'H12' and ( abs( HomeC - CurrC) > 30.1 or abs( HomeB - CurrB) > 30.1) or not( bProgress) then
SimulMoveAxes( 'Z1', MaxZ1, MCH_SIM_STEP.RAPID, 'B1', 0, MCH_SIM_STEP.COLLROT)
end
SimulMoveAxis( 'C1', HomeC, MCH_SIM_STEP.COLLROT)
@@ -1844,15 +1850,19 @@ function ExecParkRoller( PosY1, PosY2, PosV1, PosV2, bSpliCut, bAgg)
local DiffY2 = MyParkY2 - PosY2
-- se appena eseguito taglio di separazione
if bSpliCut then
-- se entrambe le morse sono restate in posizione, le sposto comunque di 5mm per distanziare i pezzi separati
local dAddMove
-- se entrambe le morse si spostano vado in posizione calcolata
if DiffY1 > 0.1 and DiffY2 < -0.1 then
dAddMove = 0
-- se almeno una è rimasta ferma in posizione, allontano comunque di 5mm ulteriori
else
dAddMove = 5
end
local MoveY1 = max( DiffY1, 0.0 + dAddMove)
local MoveY2 = min( DiffY2, 0.0 - dAddMove)
local MoveY1 = max( DiffY1, 0.0)
local MoveY2 = min( DiffY2, 0.0)
MoveY1 = MoveY1 + dAddMove
MoveY2 = MoveY2 - dAddMove
-- aggancio i pezzi rimanenti all'asse Y1
LinkRemainingPartsToY1()
+7 -4
View File
@@ -32,8 +32,8 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.7a2'
PP_NVER = '2.7.1.2'
PP_VER = '2.7b4'
PP_NVER = '2.7.2.4'
MIN_MACH_VER = '2.5k1'
MACH_NAME = 'Essetre-PF'
@@ -299,7 +299,7 @@ local X1Id = EmtAxis {
Home = ParkX1,
Invert = true,
Geo = 'X1_AXIS/GEO',
Aux = 'X1_AXIS/SOLID'}
Aux = {'X1_AXIS/SOLID', 'X1_AXIS/COLLISION'}}
-- *** Testa 1 ***
EmtAxis {
Name = 'Z1',
@@ -373,7 +373,7 @@ local X2Id = EmtAxis {
Home = ParkX2,
Invert = true,
Geo = 'X2_AXIS/GEO',
Aux = 'X2_AXIS/SOLID'}
Aux = {'X2_AXIS/SOLID', 'X2_AXIS/COLLISION'}}
local Z2Id = EmtAxis {
Name = 'Z2',
Parent = 'X2',
@@ -409,6 +409,7 @@ local B2Id = EmtAxis {
Aux = {'B2_AXIS/SOLID', 'B2_AXIS/COLLISION'}}
local vtMove2 = Vector3d( 0, Head2Y, Head2Z)
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), vtMove2, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( X2Id, 'COLLISION'), vtMove2, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'SOLID'), vtMove2, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'COLLISION'), vtMove2, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( C2Id, 'SOLID'), vtMove2, GDB_RT.GLOB)
@@ -792,7 +793,9 @@ if Mortiser then
EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC4') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB)
end
EgtMove( EgtGetFirstNameInGroup( X1Id, 'SOLID'), vtMovB, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( X1Id, 'COLLISION'), vtMovB, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), vtMovB, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( X2Id, 'COLLISION'), vtMovB, GDB_RT.GLOB)
local vtMovC = Vector3d( 0, 0, ( DeltaTabZ + DeltaRulliTappetoZ + 1495)) -- -( -1010 - 485)
EgtMove( EgtGetFirstNameInGroup( BaseId, 'BELT'), vtMovC, GDB_RT.GLOB)
local vtMove = Vector3d( 0, ( DeltaTabY - 1550.0), ( DeltaTabZ + 1010.0))
BIN
View File
Binary file not shown.
+8
View File
@@ -1,5 +1,13 @@
==== Common_ONE-PF Update Log ====
Versione 2.7b1 (07/02/2025)
- (SIM-GEN) In caso di Progress, alla deselezione utensile testa 1 su TC2 si fa movimento Z raddrizzando asse B. Ticket#2247
- (SIM-GEN) Estensione soluzione Ticket#2206. Ora si aprono di 5mm extra anche se solo una morsa resta in posizione. Ticket#2259
- (SIM) Migliorato controllo collisioni con traversa. Ora si considera asse X. Serve modifica NGE! Ticket#2257
Versione 2.7a2 (15/01/2024)
- (SIM-GEN) In caso di testa 1 su TC2 (ONE), si ruota prima la C e poi la B. Ticket#2247
Versione 2.7a1 (07/01/2024)
- (GEN) In separazione, quando si porta indietro il restante, si aprono le paratie rulli subito. Ticket#2214
- (SIM-GEN) Se entrambe le morse sono restate in posizione, le sposto comunque di 5mm per distanziare i pezzi separati. Ticket#2206
+1 -1
View File
@@ -3,7 +3,7 @@
local InfoCommon_STD_PP = {
NAME = 'Common_ONE-PF', -- nome script PP standard
VERSION = '2.7a1', -- versione script
VERSION = '2.7b1', -- versione script
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
}