Compare commits

...

92 Commits

Author SHA1 Message Date
andrea.villa 9e00046400 Merge branch 'develop' 2026-07-07 09:20:49 +02:00
andrea.villa 9e8c67fcb8 Merge branch 'NewLink' into develop 2026-07-07 08:56:11 +02:00
andrea.villa 3c8ef31433 Allineamento con common ver. 3.1g1 2026-07-07 08:55:48 +02:00
andrea.villa b89e384dbc Corretta generazione M77 (Scarica spezzone in entrata) durante scarico speciale 2026-07-06 14:49:13 +02:00
andrea.villa 612929dca8 Apertura pinze anche in LOAD 2026-06-26 12:43:32 +02:00
andrea.villa 7ec47d6ac2 Corretta simulazione scarico motosega
sistemato errore in MLDE
2026-06-26 10:18:17 +02:00
andrea.villa cd01e1a07e Corretta gestione motosega sotto traversa 2026-06-26 08:31:09 +02:00
andrea.villa 4eb9669e1a Corretta gestione pinze 2026-06-23 15:00:10 +02:00
andrea.villa 393fd10524 - Corretta gestione motosega in caso di mafcchina 2 teste
- Corretta simulazione
2026-06-22 15:38:54 +02:00
andrea.villa 872f74c9a7 - Corretti movimenti in doppio
- Migliorata simulazione con motosega e mazaggino speciale ONE
2026-06-18 12:10:38 +02:00
andrea.villa e162d3ab29 - Corretto problema climb con piano già attivato, in realtà è un movimento standard
- Prima versione movimenti in doppio
2026-06-18 08:24:30 +02:00
andrea.villa 28e1024e83 - Corretto limiti preseelzione altra testa
- Se lavorazione in doppio aggiunto ultimo punto prima di cominciare accoppiamento teste
- aggiunta gestione forature e svuotature in doppio NT
2026-06-17 08:47:34 +02:00
andrea.villa 64007f528f Revert modifiche in generazione per lavorazioni in doppio. Non erano corrette. 2026-06-16 10:09:38 +02:00
andrea.villa 8544e05690 - Modifiche per lavorazioni in doppio
- Corretto problema in risalita, scriveva un movimento CLIMB
2026-06-15 15:20:01 +02:00
andrea.villa 11dfc9c4b7 - Si resetta piano lavoraizone anche se cambiano solo i rulli
- Piccole modifiche minori
2026-06-12 14:54:18 +02:00
andrea.villa d3aac014b7 Allineamento con common ver. 3.1f3 2026-06-08 14:41:56 +02:00
andrea.villa 982fa60005 Lettura posizione parcheggi da Offset TS3 2026-06-08 10:05:30 +02:00
daniele.nicoli 28606a4a3a Merge branch 'Test_M77' into NewLink. Test fatti da Mariano Ok. 2026-06-04 11:30:44 +02:00
daniele.nicoli c414cde957 Split - spostate travi alla quota di parcheggio dei rulli in modo che l'area di lavoro sia sgombra dopo uno split. 2026-06-04 08:56:04 +02:00
andrea.villa 87ebd3a20d Aggiunta lettura quote parcheggio 2026-06-03 12:15:44 +02:00
andrea.villa 8e46749ecd HOTFIX problema simulazione 2026-06-03 11:54:12 +02:00
andrea.villa c083e04e59 Allineamento a common 3.1f1 2026-06-03 09:47:59 +02:00
daniele.nicoli ce76fe23d2 OnRapid() diminuita la tolleranza 0.1 -> GEO.EPS_SMALL per il cambio degli assi rotativi. 2026-05-29 11:52:37 +02:00
daniele.nicoli c78c2412a5 OnRapid() se presenti movimenti dei carrelli resetta piano di lavorazione 2026-05-28 10:09:38 +02:00
daniele.nicoli 95867ec10f Tolto commento a M77, versione DEV1 da testare 2026-05-27 13:17:58 +02:00
daniele.nicoli 1c0cfdfd22 Forza scrittura di tutti gli assi lineari nel G142 2026-05-27 11:46:43 +02:00
daniele.nicoli 7e977d81cb Cambio versione 2026-05-27 08:31:19 +02:00
daniele.nicoli 6cdb3888a0 Aggiunto UniqueRise per l'emissione di Start e Wait Head( nHSet) 2026-05-26 17:19:36 +02:00
andrea.villa e0dfd45f1c Corretto comando allo split che muove entrambe le pinze 2026-05-26 11:23:07 +02:00
andrea.villa 799b5aead7 Corretto reset piano generico 2026-05-25 17:35:52 +02:00
andrea.villa b9c7989717 Modifica per scarico mascherato 2026-05-22 16:32:15 +02:00
andrea.villa 5d53f6b074 - In separazione si sposta di 150mm anziché 30
- Posizione parcheggio testa 2
2026-05-22 12:07:48 +02:00
andrea.villa 65460d7320 - Aggiunto controllo zona sicura èper testa H11 (da migliorare)
- mantenuto stesso piano con motosega, corretto problema controllo direzione piano
2026-05-22 09:19:21 +02:00
andrea.villa 423d02e67a - Sistemati movimenti lama e motosega
- Corretto comportamento motosega in simulazione
2026-05-21 12:51:15 +02:00
andrea.villa 8275f167eb Movimenti motosega migliorati
Scarico motosega alla fine del ISO
2026-05-21 09:39:44 +02:00
andrea.villa fd38235dfd Corretta gestione parametro MaxFeedPinze 2026-05-21 08:32:40 +02:00
andrea.villa bb609d7412 Merge branch 'NewLink' of https://gitlab.steamware.net/egalware-machines/essetre/Essetre-ONE into NewLink 2026-05-20 15:01:52 +02:00
andrea.villa f0a8cd93d4 - Si riporta trave in zona carico dopo una fase start partita con un riposizionamento
- Se split è ultima lavorazione della trave, si va allo scarico direttamente
- Gestione mantenere stesso piano in caso di lavorazioni con stesso utensile compatibili
- Prima gestione preselezione utensile
- Migliorie varie nuovi link
2026-05-20 15:01:49 +02:00
daniele.nicoli c2fbbfd6d9 Spostato EgtClamp della massima velocità pinze (MaxFeedPinze) nell'mlde. Aumentato il massimo da 102000 a 155000 2026-05-08 16:41:38 +02:00
andrea.villa 4f7b11c715 Cambio versione 2026-05-08 08:17:44 +02:00
andrea.villa 804002fc6e Deselezione motosega in caso di movimento in home (DA SISTEMARE) 2026-05-07 17:02:20 +02:00
andrea.villa dae3b89b4d Prima versione nuovi link 2026-05-07 10:51:13 +02:00
daniele.nicoli caeed11218 Aggiunto Clamp di sicurezza per lettura dei parametri MinJoin da Ts3Data 2026-04-23 12:25:31 +02:00
daniele.nicoli 9beb1ecb41 Merge branch 'master' into develop 2026-04-23 12:24:08 +02:00
andrea.villa 3092966bff Merge remote-tracking branch 'origin/develop' 2026-03-17 15:16:56 +01:00
andrea.villa e5715f3808 Allineamento a common ver. 3.1c2 2026-03-17 15:16:43 +01:00
daniele.nicoli bd02e140d2 Aggiunto info "PreviewShow" per anteprima utensile/testa nel MACH 2026-03-09 08:29:05 +01:00
daniele.nicoli 777bda68ff Aggiunti parametri di lettura da TS3Data.lua: MIN_JOIN_S, MIN_JOIN_L e MAX_ANGLE_DRILL_CUT 2026-03-05 14:44:08 +01:00
daniele.nicoli fe6f9d4523 Merge remote-tracking branch 'origin/HEAD' into develop 2026-03-05 14:42:32 +01:00
andrea.villa 5fa0594754 Allineamento con common ver. 3.1c1 2026-03-04 10:32:16 +01:00
andrea.villa 8bc06dbb15 Merge remote-tracking branch 'origin/develop' 2026-02-20 09:00:35 +01:00
andrea.villa d9308f4c7e Allineamento con common ver. 3.1b1 2026-02-20 09:00:19 +01:00
daniele.nicoli 0262c1241f Aggiunta la lettura da TS3Data.lua delle corse dell'asse W (MIN_W e MAX_W) 2026-02-03 10:48:53 +01:00
daniele.nicoli dac8bb129d Merge branch 'master' into develop 2026-02-03 10:47:24 +01:00
andrea.villa 3a67314ccd Allineamento con common ver. 3.1a1 2026-01-16 15:40:06 +01:00
andrea.villa b2ce5e69a0 Merge remote-tracking branch 'origin/develop' 2025-12-18 16:05:13 +01:00
andrea.villa 6a9b2b5f58 - Allineamento a common ver. 2.7l1
- Aggiunto parametro MAX_ANGLE_DRILL_CUT a BeamData
- Recupero nome macchina da funzione EGT
2025-12-18 16:05:00 +01:00
andrea.villa ed4a3db13b Merge remote-tracking branch 'origin/TestCheckPinzaggioVMILL' into develop 2025-12-18 16:02:25 +01:00
daniele.nicoli 0825eb8227 Modificata versione in 2.7l1_DEV1 2025-12-15 09:50:42 +01:00
daniele.nicoli 51a27d960b Versione con aggiornamento di test a Common.mlpe:
- mlpe, aggiunta funzione ClampCheck
- nge, aggiunta geometria
- mlde, aggiunte variabili, geometria e spostamento. Il coefficente è impostato a nil e modificabile da TS3Data.
2025-12-15 09:49:07 +01:00
daniele.nicoli 5c27dca65c Merge branch 'master' into develop 2025-12-15 09:00:04 +01:00
andrea.villa 8df0b7b47e Corretto disegno porta utensile 2025-12-11 09:20:57 +01:00
andrea.villa 7d0f491909 - Nuovo ToolHolder
- Allineamento con common ver. 2.7k3
2025-11-28 15:40:49 +01:00
andrea.villa 4165843cf9 Merge remote-tracking branch 'origin/develop' 2025-11-20 16:58:22 +01:00
andrea.villa 61bb0aa701 - Allineamento a common ver. 2.7k2
- Cambio versione per rilascio a cliente
2025-11-20 16:58:00 +01:00
daniele.nicoli f3f9f38c84 Aggiunta gestione CUT_SIC impostabile da TS3Data.lua 2025-11-13 11:23:32 +01:00
daniele.nicoli 4b12300100 Merge branch 'master' into develop 2025-11-13 10:55:48 +01:00
andrea.villa 1f93f2f45a Allineamento con common ver. 2.7k1 2025-11-05 13:22:45 +01:00
andrea.villa 718d2ceee3 Allineamento con common ver. 2.7j3 2025-10-23 07:48:09 +02:00
andrea.villa d85a6e3ba3 #critical# Allineamento con common ver. 2.7j2 2025-10-21 10:47:03 +02:00
andrea.villa 605400d40c Allineamento con common ver. 2.7j1 2025-10-08 13:12:51 +02:00
andrea.villa 3576c6ac11 Allineamento con common ver. 2.7i1, HOTFIX 2025-09-10 12:10:26 +02:00
andrea.villa dc43388def - Allineamento common ver. 2.71
- Aggiunto solido collisione per tappeto
2025-09-10 10:35:22 +02:00
andrea.villa 3102d381ed Piccole correzioni per gestire secondo TC su ONE 2025-08-29 16:52:09 +02:00
andrea.villa 3e80505457 - Sistemato script per setup
- Rimosso frame copiato per sbaglio
2025-08-28 14:50:25 +02:00
andrea.villa 7d1749c9ab - Allinemento con common ver. 2.7h2
- Aggiunto secondo cambio utensile
2025-08-28 13:06:28 +02:00
andrea.villa 900cc65fb0 Merge remote-tracking branch 'origin/develop' 2025-08-20 14:31:12 +02:00
andrea.villa 7850144992 Allineamento con common ver. 2.7h1 2025-08-20 14:30:55 +02:00
andrea.villa d6c384d159 Merge remote-tracking branch 'origin/V1OpenOnTailCut' into develop 2025-08-20 14:28:59 +02:00
luca.mazzoleni b314c701fb V1OpenOnTailCut 2025-08-06 10:30:40 +02:00
luca.mazzoleni 1c731d2f51 Merge branch 'master' into develop 2025-08-06 10:21:17 +02:00
andrea.villa 9da267149a - Allineamento con common ver. 2.7g4
- Aggiunto parametro MaxBackClamp5
2025-07-23 12:15:47 +02:00
andrea.villa ee7db694e6 Allineamento con common ver. 2.7g3 2025-07-22 11:17:55 +02:00
andrea.villa b66f238ca5 Alineamento con common ver. 2.7g1 2025-07-01 10:07:32 +02:00
andrea.villa edd07a5bc5 - Allineamento con Common ver. 2.7e1
- Aggiornamento versione
2025-05-28 12:39:28 +02:00
andrea.villa 5825c0f292 Merge commit '8307af3165c0a7129705f4c27387d0bfac7a1190' 2025-05-21 08:33:03 +02:00
andrea.villa 7e5738ffa9 Cambio versione 2025-04-28 13:38:47 +02:00
andrea.villa 947a2c27ae - Allineamento con common ver. 2.7d1
- Aggiornamento MachNotes
- Lettura PRECUT per automatismo
2025-04-16 13:43:07 +02:00
andrea.villa b6f4304daa #critical# Allineamento con common 2.7c3 2025-03-26 07:59:49 +01:00
andrea.villa 4cb36a2899 Allineamento con common ver. 2.7c2 2025-03-12 08:30:20 +01:00
andrea.villa 8307af3165 Alla separazione si aprono le pinze di 30mm per evitare che pezzo torni indietro dell'offset compensato con misurazione laser. E' un test, non siamo sicuri che sia questo il problema. 2025-03-10 12:30:03 +01:00
andrea.villa 3c31786eae Merge remote-tracking branch 'origin/master' into develop 2025-03-10 12:26:50 +01:00
12 changed files with 2322 additions and 2120 deletions
+16
View File
@@ -42,6 +42,7 @@ local BeamData = {
DRILL_TOL = 0.2, -- tolleranza tra diametro foro e diametro punta
DRILL_VZ_MIN = - 0.51, -- componente limite in Z del versore di un foro
DRILL_VX_MAX = 0.867, -- componente limite in X del versore di un foro sulle facce laterali
MAX_ANGLE_DRILL_CUT = 15, -- delta angolo massimo tra foro e taglio che lo attraversa
DRILL_OVERLAP = 5, -- sovrapposizione tra due mezze forature
MILL_OVERLAP = 5, -- sovrapposizione tra due mezze fresature
MAX_DIST_HTFEA = 50.0, -- massima distanza di feature da testa o coda per essere considerata tale
@@ -67,6 +68,8 @@ local BeamData = {
KIOTP = 6, -- coefficiente moltiplicativo per attacco/uscita lama tangente anzichè perpendicolare
MAXDIAM_POCK_CORNER = 31, -- diametro massimo utensile ammesso per tasche con angoli interni
USE_LONGCUT = false, -- per i tagli longitudinali usare solo la lavorazione di lama LongCut
PRECUT_HEAD = true, -- flag abilitazione pretaglio grezzo a zero in testa
PRECUT_TAIL = true, -- flag abilitazione pretaglio grezzo a zero in coda
ADVANCE_TAIL_CUT = true, -- per spostare prima del taglio di separazione il taglio di coda su pezzi corti con robabile caduta
ADVANCE_TAIL_OFFS = 1, -- accorciamento taglio di coda avanzato (minimo 1)
CLAMP5 = false -- presenza pinza speciale per pezzi piccoli
@@ -96,6 +99,19 @@ 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
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
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
BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID
if Machine.Offsets.MAX_ANGLE_DRILL_CUT then BeamData.MAX_ANGLE_DRILL_CUT = EgtClamp( Machine.Offsets.MAX_ANGLE_DRILL_CUT, 1, 89) end
if Machine.Offsets.ROT90 ~= nil then BeamData.ROT90 = ( Machine.Offsets.ROT90 == 1) end
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
if Machine.Offsets.MIN_JOIN_S then BeamData.MIN_JOIN_S = EgtClamp( Machine.Offsets.MIN_JOIN_S, 80, 150) end
if Machine.Offsets.MIN_JOIN_L then BeamData.MIN_JOIN_L = EgtClamp( Machine.Offsets.MIN_JOIN_L, 300, 450) end
end
if Machine.Trave then
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
+2
View File
@@ -28,6 +28,8 @@
17=ProfTCone
18=SmallToolContour
19=AntiSplintMillCut
20=SideMillAsBlade
21=Prof_end
[Pocketing]
1=Pocket
+716 -1130
View File
File diff suppressed because it is too large Load Diff
+670 -735
View File
File diff suppressed because it is too large Load Diff
+674 -203
View File
File diff suppressed because it is too large Load Diff
+80 -30
View File
@@ -32,10 +32,10 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.7c1'
PP_NVER = '2.7.3.1'
MIN_MACH_VER = '2.5k1'
MACH_NAME = 'Essetre-ONE'
PP_VER = '3.1g1'
PP_NVER = '3.1.7.1'
MIN_MACH_VER = '3.1f1'
MACH_NAME = EgtGetCurrMachineName()
-- Carico i dati globali
local sMachDir = EgtGetCurrMachineDir()
@@ -99,6 +99,7 @@ MinX1 = 0
MaxX1 = 2735
MinZ1 = -1550
MaxZ1 = -20 -- per evitare problemi con striscia led
MaxZ1Blade = 0
MinC1 = -275
MaxC1 = 275
MinB1 = -127
@@ -135,9 +136,12 @@ DimTabX = 30000
AutomaticRotation = true
AutoRotMinLen = 0
DefTcPos1 = 'T3'
CoeffVM = 0.5
EstimationRapidMultiplier = 1
ForceToCloseRollersGate = false
SecondToolChanger = false
DistZClampToTable = 5 -- distanza tra la tavola e il punto più basso della morsa
ClampingCoeffMin = nil -- coefficiente di fissaggio, se 0 o nil non fa controllo, per il momento da inizializzare da Ts3Data
MaxFeedPinze = 102000
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-ONE.data"
@@ -161,9 +165,11 @@ if EgtExistsFile( sData) then
end
if Machine.Offsets.X1_POS then MinX1 = -Machine.Offsets.X1_POS end
if Machine.Offsets.X1_NEG then MaxX1 = -Machine.Offsets.X1_NEG end
if Machine.Offsets.PARK_X1 then ParkX1 = -Machine.Offsets.PARK_X1 end
if Machine.Offsets.PARK_X1POS then ParkFrnX1 = -Machine.Offsets.PARK_X1POS end
if Machine.Offsets.PARK_X1NEG then ParkX1 = -Machine.Offsets.PARK_X1NEG end
if Machine.Offsets.Z1_NEG then MinZ1 = Machine.Offsets.Z1_NEG end
if Machine.Offsets.Z1_POS then MaxZ1 = min( MaxZ1, Machine.Offsets.Z1_POS) end
if Machine.Offsets.Z1_POS_LAMA then MaxZ1Blade = min( MaxZ1Blade, Machine.Offsets.Z1_POS_LAMA) end
if Machine.Offsets.PARK_Z1 then ParkZ1 = Machine.Offsets.PARK_Z1 end
if Machine.Offsets.C1_NEG then MinC1 = Machine.Offsets.C1_NEG end
if Machine.Offsets.C1_POS then MaxC1 = Machine.Offsets.C1_POS end
@@ -182,6 +188,8 @@ if EgtExistsFile( sData) then
if Machine.Offsets.MIN_V2 then MinV2 = Machine.Offsets.MIN_V2 end
if Machine.Offsets.MAX_V2 then MaxV2 = Machine.Offsets.MAX_V2 end
if Machine.Offsets.CLAMP5 then Clamp5 = ( Machine.Offsets.CLAMP5 == 1) end
if Machine.Offsets.MIN_W then MinW = Machine.Offsets.MIN_W end
if Machine.Offsets.MAX_W then MaxW = Machine.Offsets.MAX_W end
if Machine.Offsets.MINWOPEN then MinWOpen = Machine.Offsets.MINWOPEN end
if Machine.Offsets.MAXWOPEN then MaxWOpen = Machine.Offsets.MAXWOPEN end
if Machine.Offsets.MAXWHEIGHT then MaxWHeight = Machine.Offsets.MAXWHEIGHT end
@@ -202,22 +210,33 @@ if EgtExistsFile( sData) then
if Machine.Offsets.SAWOFFSX then SawOffsX = Machine.Offsets.SAWOFFSX end
if Machine.Offsets.SAWOFFSZ then SawOffsZ = Machine.Offsets.SAWOFFSZ end
if Machine.Offsets.DEFTCPOS1 then DefTcPos1 = ( 'T' .. Machine.Offsets.DEFTCPOS1) end
if Machine.Offsets.NOULOAD then MaxUnloadLen = Machine.Offsets.NOULOAD end
if Machine.Offsets.MAXFEEDPINZE then MaxFeedPinze = EgtClamp( Machine.Offsets.MAXFEEDPINZE, 20000, 155000) end
if Machine.Offsets.MAXACC then MaxAcc = Machine.Offsets.MAXACC end
if Machine.Offsets.MINACC then MinAcc = Machine.Offsets.MINACC end
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
if Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO then ForceToCloseRollersGate = Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO == 1 end
if Machine.Offsets.WOOD_DENSITY then WoodDensity = Machine.Offsets.WOOD_DENSITY end
if Machine.Offsets.MAX_BACK_CLAMP_5 then MaxBackClamp5 = Machine.Offsets.MAX_BACK_CLAMP_5 end
if Machine.Offsets.SEC_TC then SecondToolChanger = ( Machine.Offsets.SEC_TC == 1) end
if Machine.Offsets.COEFF_CLAMP_CHECK then ClampingCoeffMin = Machine.Offsets.COEFF_CLAMP_CHECK end
-- aggiustamenti
MinY1 = MinV1 + MinDeltaYV
MaxY1 = MaxMchY1
ParkV1 = MaxV1
ParkV1 = MaxV1
ParkY1 = ParkV1 + MinDeltaYV
MinY2 = MinMchY2
MaxY2 = MaxV2 - MinDeltaYV
ParkV2 = MinV2
ParkY2 = ParkV2 - MinDeltaYV
ParkX1 = min( ParkX1, MaxX1)
ParkFrnX1 = max( ParkFrnX1, MinX1)
MaxZ1Blade = min( MaxZ1Blade, MaxZ1)
ParkCSawZ1 = min( ParkCSawZ1, MaxZ1)
ParkCSaw0Z1 = min( ParkCSaw0Z1, MaxZ1)
Mortiser = ( Mortiser and not Progress)
SecondToolChanger = ( SecondToolChanger and not Progress)
end
end
end
@@ -230,6 +249,8 @@ EmtGeneral {
ExitMaxAdjust = 300,
ExitMaxRotAdj = 0.5,
AngDeltaMinForHome = 80,
LinkAxesMoveOrder = MCH_LKAMO.HEAD_BEFORE_IF_SAME_ANG,
NewLinkMgr = 1,
Special = 'Common_ONE-PF.mlse',
Processor = 'Common_ONE-PF.mlpe'}
local sBaseAux = {'BASE/SOLID', 'BASE/SIGN', 'BASE/CONVOYER', 'BASE/BELT', 'BASE/COLLISION', 'BASE/TC1'}
@@ -237,6 +258,10 @@ if Progress then
table.insert( sBaseAux, 'BASE/TC1S')
table.insert( sBaseAux, 'BASE/TC2')
table.insert( sBaseAux, 'BASE/TC3')
elseif SecondToolChanger then
table.insert( sBaseAux, 'BASE/TC2')
table.insert( sBaseAux, 'BASE/TC2S')
table.insert( sBaseAux, 'BASE/TC3')
else
table.insert( sBaseAux, 'BASE/MTC')
if Mortiser then table.insert( sBaseAux, 'BASE/TC3') end
@@ -330,7 +355,7 @@ EmtAxis {
Home = 0,
Geo = 'A1_AXIS/GEO'}
local H13Id
if Progress then
if Progress or SecondToolChanger then
H13Id = EmtHead {
Name = 'H13',
Parent = 'A',
@@ -361,9 +386,9 @@ else
end
EgtSetInfo( H13Id, 'ZSAFEDELTA', '60')
EgtSetInfo( H13Id, 'ZMAXONROT', '1,80')
-- Mortasatrice sotto la traversa (solo per One)
-- Mortasatrice sotto la traversa (solo per One base con un solo cambio utensile)
local H15Id
if not Progress and Mortiser then
if not Progress and Mortiser and not SecondToolChanger then
H15Id = EmtHead {
Name = 'H15',
Parent = 'A',
@@ -401,7 +426,7 @@ local PY1Id = EmtAxis {
Stroke = {0, MaxHoOpen},
Home = MaxHoOpen,
Geo = 'PY1_AXIS/GEO',
Aux = 'PY1_AXIS/SOLID'}
Aux = {'PY1_AXIS/SOLID', 'PY1_AXIS/CLAMP_CHECK'}}
local Y2Id = EmtAxis {
Name = 'Y2',
Parent = 'Base',
@@ -421,7 +446,7 @@ local PY2Id = EmtAxis {
Stroke = {0, MaxHoOpen},
Home = MaxHoOpen,
Geo = 'PY2_AXIS/GEO',
Aux = 'PY2_AXIS/SOLID'}
Aux = {'PY2_AXIS/SOLID', 'PY2_AXIS/CLAMP_CHECK'}}
-- Rulli
local V1Id = EmtAxis {
Name = 'V1',
@@ -532,6 +557,7 @@ EmtTable {
Parent = 'T',
Type = MCH_TT.FLAT,
Ref1 = Point3d( - DimTabX, DeltaTabY - DimTabY, DeltaTabZ),
Coll = 'Base/BELT',
Geo = 'TABLE/GEO',
Aux = 'TABLE/SOLID'}
-- *** ToolChanger ***
@@ -617,16 +643,33 @@ EmtTcPos {
TDir = -Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T10'}
if Progress then
if Progress or SecondToolChanger then
local ptTc2 = Point3d( 150, -170, -217 + ( DeltaTabZ + DeltaRulliTraveZ + 29))
local vtDt2 = Vector3d( 0, 0, - 102.5)
if SecondToolChanger then
EmtTcPos {
Name = 'T11',
Parent = 'Base',
Pos = ptTc2 + Vector3d( SawOffsX, SawOffsZ, 0),
Pos = ptTc2,
TDir = Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T11'}
Geo = 'BASE/T11b'}
EmtTcPos {
Name = 'T12',
Parent = 'Base',
Pos = ptTc2 + 1 * vtDt1,
TDir = Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T12'}
else
EmtTcPos {
Name = 'T11',
Parent = 'Base',
Pos = ptTc2 + Vector3d( SawOffsX, SawOffsZ, 0),
TDir = Y_AX(),
ADir = -X_AX(),
Geo = 'BASE/T11'}
end
EmtTcPos {
Name = 'T13',
Parent = 'Base',
@@ -701,9 +744,9 @@ else
ADir = X_AX(),
Geo = 'BASE/T201'}
end
if Progress or Mortiser then
if Progress or Mortiser or SecondToolChanger then
local ptTc3 = Point3d( 480, 506.1, -200.8 + ( DeltaTabZ + DeltaRulliTraveZ + 29))
local sName = EgtIf( Progress, 'T101', 'T301')
local sName = EgtIf( Progress or SecondToolChanger, 'T101', 'T301')
EmtTcPos {
Name = sName,
Parent = 'Base',
@@ -731,8 +774,10 @@ local vtMove = Vector3d( 0, ( DeltaTabY - 1550.0), ( DeltaTabZ + 1060.0))
EgtMove( EgtGetFirstNameInGroup( BaseId, 'CONVOYER'), vtMove, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( Y1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( PY1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( PY1Id, 'CLAMP_CHECK'), vtMove + Vector3d(0,0,DistZClampToTable), GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( Y2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( PY2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( PY2Id, 'CLAMP_CHECK'), vtMove + Vector3d(0,0,DistZClampToTable), GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( V1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( PV1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
EgtMove( EgtGetFirstNameInGroup( QV1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
@@ -763,10 +808,10 @@ function OnSetHead()
if EMC.HEAD == 'H11' or EMC.HEAD == 'H12' then
if EMC.HEAD == 'H11' then
local dRawH = GetRawHeight()
EmtModifyAxisHome( 'Z1', ParkZ1 + EgtIf( dRawH > 650, EgtIf( EMC.TOTDIAM < 61, 235, 165), 0))
EmtModifyAxisHome( 'Z1', MaxZ1)
EmtModifyAxisDirection( 'B1', X_AX())
else
EmtModifyAxisHome( 'Z1', ParkZ1)
EmtModifyAxisHome( 'Z1', MaxZ1Blade)
EmtModifyAxisDirection( 'B1', Vector3d( cos( SawC1Offs), -sin( SawC1Offs), 0))
end
local nPos = tonumber( string.sub( EMC.TCPOS, 2)) or 0
@@ -777,7 +822,7 @@ function OnSetHead()
else
local MyHomeB1, MyHomeC1
-- se cambio utensile verticale
if EgtGetHeadId('H21') or bProgress then
if EgtGetHeadId( 'H21') or Progress or SecondToolChanger then
MyHomeB1 = ParkFrnB1
MyHomeC1 = ParkFrnC1
-- altrimenti su one CU speciale motosega-utensile lungo
@@ -791,13 +836,10 @@ function OnSetHead()
EmtModifyAxisHome( 'B1', MyHomeB1)
end
-- se testa H13 (sega a catena)
elseif EMC.HEAD == 'H13' then
elseif EMC.HEAD == 'H13' or EMC.HEAD == 'H15' then
-- aggiustamenti per distanza
local dDist = EgtIf( EMC.DIST and abs( EMC.DIST) > 1, EMC.DIST, ChSawLen)
EmtModifyExitPosition( EMC.HEAD, EMC.EXIT, Point3d( 0, 0, -dDist))
local vtMove = Point3d( 0, 0, -dDist) - Point3d( EMC.EXITPOS)
local ExitId = EgtGetFirstNameInGroup( EgtGetHeadId( EMC.HEAD), 'T'..tostring( EMC.EXIT))
EgtMove( ExitId, vtMove)
-- recupero valore asse A bloccato
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
local CSawPosA = tonumber( sVal:sub( 3) or '')
@@ -806,19 +848,20 @@ function OnSetHead()
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA))
EmtModifyAxisHome( 'B1', ParkCSawB1)
EmtModifyAxisDirection( 'B1', X_AX())
-- se testa H15 (mortasatrice di One)
elseif EMC.HEAD == 'H15' then
error( 'Error : Mortiser not yet managed')
end
end
---------------------------------------------------------------------
-------------------------- Testa utilizzata -------------------------
function GetHeadSet( sHead)
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' or sHead == 'H15' then
if sHead == 'H11' or sHead == 'H12' or sHead == 'H13' or sHead == 'H15' or sHead == 'H17' then
return 1
elseif sHead == 'H19' then
return 11
elseif sHead == 'H21' or sHead == 'H22' or sHead == 'H23' then
return 2
elseif sHead == 'H29' then
return 21
else
return 0
end
@@ -847,6 +890,7 @@ function GetHeadTCSet( sHead, sTcPos)
return 0
end
end
---------------------------------------------------------------------
-- Funzione che restituisce l'altezza del pezzo in lavorazione
function GetRawHeight()
@@ -866,12 +910,18 @@ function HeadIsChainSaw( sHead)
return ( sHead == 'H13' or sHead == 'H15')
end
---------------------------------------------------------------------
-- Funzione che riconosce testa per tastatore
function HeadIsProbe( sHead)
return ( sHead == 'H19' or sHead == 'H29')
end
---------------------------------------------------------------------
-- Funzione che calcola la posizione Home di Z per la sega a catena dal valore dell'asse virtuale
function GetChainSawZHomeFromVirtualAxis( dPosA)
-- se A=0 -> T101 -> HomeZ = -400
if abs( dPosA) < 0.1 then
return ParkCSaw0Z1
return ParkCSawZ1
-- altrimenti A=-90 -> T102 o A=90 -> T104 -> HomeZ = -100
else
return ParkCSawZ1
@@ -929,7 +979,7 @@ end
-- Funzione per impostare spia stato morsa carrello Y1
function SetPY1Light( bClosed)
if not PY1LightId then return end
EgtSetColor( PY1LightId, EgtIf( bClosed, 'RED', 'LIME'))
EgtSetColor( PY1LightId, EgtIf( bClosed, 'RED', 'LIME'))
if bClosed then
EgtSetInfo( PY1LightId, 'On', '1')
else
BIN
View File
Binary file not shown.
+28 -19
View File
@@ -7,18 +7,20 @@
[Sawing]
[Milling]
0=d,MaxElev,0
0=l,MaxElev,0
1=d,OutRaw,0
2=d,SideElev,0
2=l,SideElev,0
3=d,TrimExt,0
4=sr,VtFaceUse,0,0,0
4=s,VtFaceUse,0,0,0
5=s,EdgesFaceUse,0
[Pocketing]
0=d,MaxElev,0
0=l,MaxElev,0
1=b,Open,0
2=d,OpenMinSave,0
2=d,OpenMinSafe,0
3=d,OpenOutRaw,0
4=d,MaxOptSize,0
4=l,MaxOptSize,0
5=b,AdjustFeed,1
[Mortising]
0=d,MaxElev,0
@@ -30,21 +32,28 @@
[SawFinishing]
[GenMachining]
0=l,LinTol,0.1
1=l,MaxLen,2
2=s,Type,ZigZag
3=d,SideAng,90
4=l,Step,10
5=l,OffsProj,0
6=l,LiTang,0
7=l,LiOrth,0
8=l,LiElev,0
9=l,LoTang,0
10=l,LoOrth,0
11=l,LoElev,0
12=b,DirFromGuide,1
[SurfRoughing]
0=l,MaxElev,1000
1=b,PlaneZ,0
[SurfFinishing]
0=b,SkipMaxDown,1
[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
+23 -1
View File
@@ -29,8 +29,30 @@ local GS = {}
-- Configurazione posizioni (con o senza TC2)
local PositionTable = {}
-- se secondo toolchanger
if EgtGetTcPosId( 'T12') then
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H12", Group = "G1"},
{Pos = "Pos2", TcPos = "T3", Head = "H11", Group = "G1"},
{Pos = "Pos3", TcPos = "T4", Head = "H11", Group = "G1"},
{Pos = "Pos4", TcPos = "T5", Head = "H11", Group = "G1"},
{Pos = "Pos5", TcPos = "T6", Head = "H11", Group = "G1"},
{Pos = "Pos6", TcPos = "T7", Head = "H11", Group = "G1"},
{Pos = "Pos7", TcPos = "T8", Head = "H11", Group = "G1"},
{Pos = "Pos8", TcPos = "T9", Head = "H11", Group = "G1"},
{Pos = "Pos9", TcPos = "T10", Head = "H11", Group = "G1"},
{Pos = "Pos10", TcPos = "T11", Head = "H11", Group = "G2"},
{Pos = "Pos11", TcPos = "T12", Head = "H11", Group = "G2"},
{Pos = "Pos12", TcPos = "T13", Head = "H11", Group = "G2"},
{Pos = "Pos13", TcPos = "T14", Head = "H11", Group = "G2"},
{Pos = "Pos14", TcPos = "T15", Head = "H11", Group = "G2"},
{Pos = "Pos15", TcPos = "T16", Head = "H11", Group = "G2"},
{Pos = "Pos16", TcPos = "T17", Head = "H11", Group = "G2"},
{Pos = "Pos17", TcPos = "T18", Head = "H11", Group = "G2"},
{Pos = "Pos18", TcPos = "T19", Head = "H11", Group = "G2"},
{Pos = "Pos19", TcPos = "T20", Head = "H11", Group = "G2"},
{Pos = "Pos20", TcPos = "T101", Head = "H13", Group = "G3"}}
-- se Progress
if EgtGetTcPosId( 'T11') then
elseif EgtGetTcPosId( 'T11') then
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H11", Group = "G1"},
{Pos = "Pos2", TcPos = "T2", Head = "H11", Group = "G1"},
{Pos = "Pos3", TcPos = "T3", Head = "H11", Group = "G1"},
Binary file not shown.
+111
View File
@@ -1,5 +1,116 @@
==== Common_ONE-PF Update Log ====
Versione 3.1g1 (07/07/2026)
- (ALL) Prima versione con gestione nuovi link (no tastatore)
- Gestione lavorazioni in doppio
- Preselezione utensile gestibile da parametri TS3
- Gestione Drilling e Pocketing NT
Versione 3.1f5 (26/06/2026)
- (SIM-GEN) Se tasca con motosega in faccia sopra e pezzo alto, si ruota in sicurezza.
Versione 3.1f4 (17/06/2026)
- (MLDE-GEN) Corretta preselezione in caso di testa in lavoro troppo vicina a quella che sta preselezionando. Da aggiungere in MLDE parametri 'Limit_T1_Presel_T2' e 'Limit_T2_Presel_T1'
Versione 3.1f3 (08/06/2026)
- (GEN) M77 viene ora eseguita, prima era commentata.
Versione 3.1f2 (05/06/2026)
- (MLDE-GEN) Aggiunti parametri di limite asse X per decidere se fare preselezione su altra testa. Serve modifica MLDE
Versione 3.1f1 (03/06/2026)
- (NGE-MLDE-GEN-SIM) Versione unificata con predisposizione per gestione tastatori. Serve modificare anche la macchina, per ora gestione completa solo su PFrl.
Versione 3.1c2 (17/03/2026)
- (SIM-GEN) Aggiunta OnSpecialApplyMachining per calcolare i carrelli da subito
- Aggiungendo OnSpecialApplyMachining, ora la OnSpecialGetPrevMachiningOffset lavora correttamente. ATT: MIN_MACH -> 3.1b2
Versione 3.1c1 (04/03/2026)
- (GEN) Corretta chiamata di una variabile insesistente in caso di ONE
- (SIM) Allineata simulazione a generazione
Versione 3.1b1 (20/02/2026)
- (GEN) Aggiunta funzione ToolPreSelection() per la preselezione utensile. Ticket#2789
- (GEN) Funzione rinominata in ToolPreSelectionSingleHead(), ora utilizza funzione in MLDE per capire se è motosega
Versione 3.1a1 (16/01/2026)
- (SIM-GEN) Aggiunto controllo che evita collisioni durante lo svincolo in Z della sega a catena nelle funzioni ExecMoveZMax() e EmitZMax(). Ticket#2767
- (SIM-GEN) Piccola correzione modifiche fatte in precedenza
Versione 2.7l1 (18/12/2025)
- (SIM-GEN) Aggiunto controllo post movimenti ausiliari dell' EMC.PREVOFFSX nella funzione OnSpecialGetPrevMachiningOffset(). Ticket#2727
- (SIM-GEN) Divisione movimento B in approccio se > 90°. Ticket#2754
- (SIM) Aggiunta funzione CheckClamping
Versione 2.7k3 (28/11/2025)
- (GEN) Prima di andare allo scarico, si aggiunge movimento intermedio dove si aspetta che rulli scarico siano arrivati in posizione. Ticket#2716
Versione 2.7k2 (20/11/2025)
- (SIM) Aggiornata risoluzione VMillTol in funzione dello spessore lama
Versione 2.7k1 (05/11/2025)
- (SIM-GEN) Corretto calcolo per decidere se serve aprire i rulli
- (GEN) Aggiunta tolleranza in creazione piano di lavoro inclinato
- (SIM) Allo scarico si resetta Y2DELTA. Ticket#2687
Versione 2.7j3 (23/10/2025)
- (SIM) Corretta posizione parcheggio in caso di testa 1 su magazzino 2. Ticket#2660
Versione 2.7j2 (21/10/2025)
- (GEN) Se SPLIT con pinza 5, corretto salvataggio posizione pinza 2. Ticket#2654
Versione 2.7j1 (08/10/2025)
- (GEN) Salvataggio posizione Z su lavorazione precedente, sbagliava in caso di separazione. Ticket#2637
Versione 2.7i1 (10/09/2025)
- (SIM-GEN) Piccole correzioni per gestire secondo TC su ONE. Ticket#2563
- (SIM-GEN) Gestione aggregato BH completato. Ticket#2482
- (EST) Stima tempi considerando accelerazioni
- (SIM-GEN) Se fase start o restart, si aggiorna la posizione in X dell'asse per calcolare il link corretto
- (GEN) Piccola correzione risalita ZMAX dopo RELOAD del pezzo. Generazione allineata a simulazione.
Versione 2.7h2 (28/08/2025)
- (GEN) Migliorata gestione spegnimento utensile e disattivazione piano
- (SIM-GEN) Corretto nome variabile e altre piccole modifiche per Progress
Versione 2.7h1 (20/08/2025)
- (SIM-GEN) Non si chiudono i rulli se tagli o pretagli di testa e coda
- (SIM) Corretto movimento pinza 5 in caso di riposizionamento pinza 1
- (GEN) Corretta quota assoluta posizione testa trave in caso di pinza 5 e testa rimasta bassa
- (GEN) Se ultima lavorazione pezzo precedente ha stesso utensile della prima lavorazione pezzo successivo, la speed resta accesa
Versione 2.7g4 (23/07/2025)
- (SIM-GEN) Aggiunto parametro configurabile da TS3 per massima sporgenza trave in coda per pinza 5. Ticket#2538
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) 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
Versione 2.7d1 (16/04/2025)
- (SIM) Distanza di collisione portata a 3mm, qualità VMILL ridotta a 4mm. Ticket#2395
Versione 2.7c3 (25/03/2025)
- (GEN) Corretto movimento approccio alla lavorazione se utensile lama montata su magazzino 2. Ticket#2361
Versione 2.7c2 (12/03/2025)
- (SIM-GEN) Migliorato calcolo posizione barra dopo split. Tiene in considerazione ingombro lavorazioni pezzo. Ticket#2321
- (GEN) Aggiunta commenti HEADER e FOOTER per comunicazione con linea o altre macchine, da parte di Essetre.
- (SIm-GEN) Migliorato movimento approccio al pezzo con lama. Allineamento simulazione-generazione che facevano due movimenti leggermente diversi. Ticket#2335
Versione 2.7c1 (05/03/2025)
- (GEN) Corretto movimento in home utensile precedente. Ticket#2324
+2 -2
View File
@@ -3,8 +3,8 @@
local InfoCommon_STD_PP = {
NAME = 'Common_ONE-PF', -- nome script PP standard
VERSION = '2.7c1', -- versione script
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
VERSION = '3.1g1', -- versione script
MIN_MACH_VER_PP_COMMON = '3.1f1' -- versione minima kernel
}
return InfoCommon_STD_PP