Compare commits

...

5 Commits

Author SHA1 Message Date
andrea.villa f0ac13dbda Merge remote-tracking branch 'origin/develop' 2026-02-06 13:43:41 +01:00
andrea.villa adc7b49891 - Aggiornamento MAchNotes per lavorazioni a 5 assi
- Cambio versione per rilascio a cliente
2026-02-06 13:43:29 +01:00
daniele.nicoli 4b193c2d8d - Mosso nell' .nge il solido di collisione tra utensile e asse C superiore per essere portato al livello del solido reale.
- Implementati nell' .mlde un nuovo parametro (DistRotCenterBToTopC), reso impostabile LONG_TOOL_MINLEN e il movimento del solido di collisione sopracitato e della faccia della flangia dell'asse C superiore per regolare l'ingombro per ogni macchina. I parametri sono impostabili da Ts3Data.lua.
2026-01-28 10:39:54 +01:00
daniele.nicoli 70234649b5 Merge remote-tracking branch 'origin/master' into develop 2026-01-28 08:53:59 +01:00
andrea.villa 8a47ffd80e Allineamento a common ver. 3.1a2 2026-01-26 15:58:04 +01:00
7 changed files with 61 additions and 48 deletions
+3 -3
View File
@@ -609,6 +609,9 @@ function OnRapid()
MyBackupAxes()
-- se primo movimento della lavorazione, gestione speciale
if EMT.MCHFIRST and not EMT.OPEISDISP then
-- primo posizionamento
local MyZHome = EgtGetAxisHomePos( 'Z')
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
-- decido se muovere prima testa o carrelli (standard prima testa)
local bHeadFirst = true
local sLateG101
@@ -641,9 +644,6 @@ function OnRapid()
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
local sES = ' ES'..EgtNumToString( EMT.S, 0)
-- primo posizionamento
local MyZHome = EgtGetAxisHomePos( 'Z')
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.FLAG2 == 1 then
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
+3 -3
View File
@@ -657,6 +657,9 @@ function OnRapid()
MyBackupAxes()
-- se primo movimento della lavorazione, gestione speciale
if EMT.MCHFIRST and not EMT.OPEISDISP then
-- primo posizionamento
local MyZHome = EgtGetAxisHomePos( 'Z')
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
-- decido se muovere prima testa o carrelli (standard prima testa)
local bHeadFirst = true
local sLateG101
@@ -713,9 +716,6 @@ function OnRapid()
local sES = ' ES'..EgtNumToString( EMT.S, 0)
-- primo posizionamento
local MyZHome = EgtGetAxisHomePos( 'Z')
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.FLAG2 == 1 then
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
+26 -24
View File
@@ -10,8 +10,8 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '3.1a1'
PP_NVER = '3.1.1.1'
PP_VER = '3.1b1'
PP_NVER = '3.1.2.1'
MIN_MACH_VER = '2.7j1'
MACH_NAME = EgtGetCurrMachineName()
@@ -51,6 +51,7 @@ LoadT = 1454.2
UnloadT = -1700
MaxOpen = 305
MillOffs = 177.35
DistRotCenterBToTopC = 400 -- distanza tra il centro di rotazione del mandrino B e la mensola C
SawOffs = -242.68
SawBOffs = 0
SawCOffs = 0
@@ -158,6 +159,8 @@ if EgtExistsFile( sData) then
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
if Machine.Offsets.MAX_HEIGHT_ROT_B_ABOVE then BeamHeightForFixRot = Machine.Offsets.MAX_HEIGHT_ROT_B_ABOVE end
if Machine.Offsets.COEFF_CLAMP_CHECK then ClampingCoeffMin = Machine.Offsets.COEFF_CLAMP_CHECK end
if Machine.Offsets.DIST_ROT_CENTER_B_TO_TOP_C then DistRotCenterBToTopC = EgtClamp( Machine.Offsets.DIST_ROT_CENTER_B_TO_TOP_C, 395, 410) end
if Machine.Offsets.LONG_TOOL_MINLEN then LONG_TOOL_MINLEN = EgtClamp( Machine.Offsets.LONG_TOOL_MINLEN, 216, 226.1) end
end
end
end
@@ -216,28 +219,27 @@ local CId = EmtAxis {
Home = 0,
Geo = 'C_AXIS/GEO',
Aux = {'C_AXIS/SOLID', 'C_AXIS/COLLISION', 'C_AXIS/COLLISION2'}}
if NewTopC then
local vtMove = Vector3d( 65,0,0)
local SolidArmId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'SOLID'), 'ARM')
if EgtSurfTmMoveFacet then
EgtSurfTmMoveFacet( SolidArmId, 11, vtMove, GDB_RT.GLOB)
else
EgtSurfTmMoveVertex( SolidArmId, 23, EgtSurfTmGetVertex( SolidArmId, 23, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
EgtSurfTmMoveVertex( SolidArmId, 25, EgtSurfTmGetVertex( SolidArmId, 25, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
EgtSurfTmMoveVertex( SolidArmId, 35, EgtSurfTmGetVertex( SolidArmId, 35, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
EgtSurfTmMoveVertex( SolidArmId, 36, EgtSurfTmGetVertex( SolidArmId, 36, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
end
local CollTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION'), 'TOP')
EgtMove( CollTopId, vtMove, GDB_RT.GLOB)
EgtSetName( CollTopId, 'BOX')
local RefId = CollTopId + EgtGetInfo( CollTopId, 'Frame', 'i')
EgtSetInfo( RefId, 'CollSkip', 'C_TOP')
else
local CollTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION'), 'TOP')
EgtSetName( CollTopId, 'BOX')
local RefId = CollTopId + EgtGetInfo( CollTopId, 'Frame', 'i')
EgtSetInfo( RefId, 'CollSkip', 'C_TOP')
end
-- Imposto i vettori di movimento separatamente se sono presenti le variabili di riferimento
local vtXMove = Vector3d( EgtIf( NewTopC, 65, 0), 0, 0)
local dZMove = min( ( MillOffs + LONG_TOOL_MINLEN + 3), DistRotCenterBToTopC) - 400
local vtZMove = Vector3d( 0, 0, dZMove)
-- Muove le facce in X e Z del solido principale
local SolidArmId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'SOLID'), 'ARM')
EgtSurfTmMoveFacet( SolidArmId, 14, vtZMove, GDB_RT.GLOB)
EgtSurfTmMoveFacet( SolidArmId, 11, vtXMove, GDB_RT.GLOB)
-- Muove il solido di collisione denominato "TOP" in X e muove la sua faccia inferiore per portarla al pari del solido principale
local CollTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION'), 'TOP')
EgtMove( CollTopId, vtXMove, GDB_RT.GLOB)
EgtSurfTmMoveFacet( CollTopId, 4, vtZMove, GDB_RT.GLOB)
EgtSetName( CollTopId, 'BOX')
-- Imposta nel Frame di riferimento l'info "CollSkip"
local RefId = CollTopId + EgtGetInfo( CollTopId, 'Frame', 'i')
EgtSetInfo( RefId, 'CollSkip', 'C_TOP')
-- Muove il solido di collisione C_TOP
local CollUtTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION2'), 'C_TOP')
EgtMove( CollUtTopId, vtZMove, GDB_RT.GLOB)
EmtAxis {
Name = 'B',
Parent = 'C',
Binary file not shown.
+25 -17
View File
@@ -33,26 +33,34 @@
[GenMachining]
[SurfRoughing]
0=l,MaxElev,1000
0=l,MaxElev,0
1=b,PlaneZ,0
2=i,Order,[0=ByPlane;1=ByDepth]
[SurfFinishing]
0=b,SkipMaxDown,1
1=i,OptimalType,[0=ZigZag;2=SpiralIn;3=SpiralOut]
2=d,SplitAngle,45
3=d,AngleTol,5
[5AxMilling]
0=l,LinTol,0.01
1=l,MaxLen,10
2=s,Type,ZigZag
3=d,SideAng,90
4=l,Step,10
5=d,AngIni,-90
6=d,AngFin,90
7=l,LiTang,0
8=l,LiOrth,0
9=l,LiElev,0
10=l,LoTang,0
11=l,LoOrth,0
12=l,LoElev,0
13=b,DirFromGuide,0
14=b,SurfAvoid,0
0=s,VtAuxDir,0,1,0
1=l,LinTol,0.01
2=l,MaxLen,10
3=i,ProjType,[0=MinDist;1=FixedDir;2=Guide]
4=i,PocketType,[0=ZigZag;2=SpiralIn;3=SpiralOut]
5=d,PocketAng,0
6=d,SideAng,90
7=d,LeadAng,0
8=l,Step,10
9=d,AngIni,-90
10=d,AngFin,90
11=l,LiTang,0
12=l,LiOrth,0
13=l,LiElev,0
14=l,LoTang,0
15=l,LoOrth,0
16=l,LoElev,0
17=b,DirFromGuide,0
18=b,SurfAvoid,0
19=d,SingConeAng,0.1
+3
View File
@@ -1,5 +1,8 @@
==== Common_FAST Update Log ====
Versione 3.1a2 (26/01/2026)
- (GEN) Nella G101 il parametro EE era sempre a 4 perchè la variabile veniva settata dopo. Ticket#2796
Versione 3.1a1 (08/01/2026)
- (SIM) Ottimizzata scrittura funzione ClampCheck post aggiornamento dll
- (SIM) Corretto problema della funzione OnSimulDispositionStart in caso di fase finale.
+1 -1
View File
@@ -3,7 +3,7 @@
local InfoCommon_STD_PP = {
NAME = 'Common_FAST', -- nome script PP standard
VERSION = '3.1a1', -- versione script
VERSION = '3.1a2', -- versione script
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
}