Aggiunta gestione motosega opzionale

This commit is contained in:
andrea.villa
2025-07-02 08:23:23 +02:00
parent 0092645537
commit b67d181ccd
4 changed files with 72 additions and 38 deletions
+10 -3
View File
@@ -12,6 +12,10 @@ local TEST_USE = false
-- *** GENERATION ***
---------------------------------------------------------------------
function OnStart()
-- controllo versione programma
if not EMT.VER or EMT.VER < '2.5d1' then
EmtSetLastError( 1200, 'A newer version of the program is required (minimum EgtMachKernel 2.5d1)')
end
EMT.USETO1 = false -- abilitazione uso origine tavola
EMT.MODAL = true -- abilitazione emissione modale
EMT.INCHES = false -- unità di misura mm/inches
@@ -107,8 +111,9 @@ function OnToolData()
EmtOutput( sOut)
-- emissione dati sega a catena
elseif EMT.HEAD == 'H3' then
local sData = ' P2=' .. EmtLenToString( ChSawLen, 3) .. ' P3=' .. EmtLenToString( EMT.TLEN, 3) ..
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( ChSawLen, 3)
if EMT.TDIST and abs( EMT.TDIST) < 0.1 then EMT.TDIST = nil end
local sData = ' P2=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3) .. ' P3=' .. EmtLenToString( EMT.TLEN, 3) ..
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3)
EmtOutput( 'M992 P1=101' .. sData)
EmtOutput( 'M992 P1=102' .. sData)
EmtOutput( 'M992 P1=103' .. sData)
@@ -201,6 +206,8 @@ function OnToolSelect()
EMT.TTOTDIAM = EgtTdbGetCurrToolParam( MCH_TP.TOTDIAM)
EMT.TLEN = EgtTdbGetCurrToolParam( MCH_TP.LEN)
EMT.TTOTLEN = EgtTdbGetCurrToolParam( MCH_TP.TOTLEN)
if MCH_TP.DIST then EMT.TDIST = EgtTdbGetCurrToolParam( MCH_TP.DIST) end
if EMT.TDIST and abs( EMT.TDIST) < 0.1 then EMT.TDIST = nil end
end
end
@@ -546,7 +553,7 @@ function MyAdjustLinearAxes()
local vtTool = EgtGetCalcToolDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
vtE = vtTool * Len - Z_AX() * LenRef
elseif EMT.HEAD == 'H3' then
local Len = ChSawLen + MillOffs
local Len = ( EMT.TDIST or ChSawLen) + MillOffs
local LenRef = MillOffs
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
vtE = vtAux * Len - Z_AX() * LenRef
+55 -32
View File
@@ -6,8 +6,8 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.6i1'
PP_NVER = '2.6.9.1'
PP_VER = '2.7g1'
PP_NVER = '2.7.7.1'
-- Parametri macchina
NumericalControl = 'TPA' -- NUM o TPA
@@ -43,6 +43,7 @@ DeltaTabX = 590.0
DeltaTabY = -3960.0
DeltaTabZ = -686.0 + MillOffs -- -593.5
CoeffVM = 0.75
EstimationRapidMultiplier = 1
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-Wall_XS0017.data"
@@ -73,6 +74,7 @@ if EgtExistsFile( sData) then
if MchOffs.ZERO_Y then DeltaTabX = -MchOffs.ZERO_Y end
if MchOffs.ZERO_X then DeltaTabY = MchOffs.ZERO_X - DimTabY end
if MchOffs.ZERO_Z then DeltaTabZ = MchOffs.ZERO_Z + MillOffs end
ChainSaw = ( MchOffs.CHAIN_SAW or 0)
Nail11 = ( MchOffs.NAIL11 or 0)
if Nail11 ~= 0 and MchOffs.ZERO_Y and MchOffs.ZERO_NAIL11_Y then Nail11DeltaX = - ( MchOffs.ZERO_Y - MchOffs.ZERO_NAIL11_Y) end
if Nail11 ~= 0 and MchOffs.ZERO_X and MchOffs.ZERO_NAIL11_X then Nail11DeltaY = ( MchOffs.ZERO_X - MchOffs.ZERO_NAIL11_X) end
@@ -84,6 +86,7 @@ if EgtExistsFile( sData) then
if MchOffs.OFFSET_ZERO3_Y then Orig3DeltaX = -MchOffs.OFFSET_ZERO3_Y end
if MchOffs.OFFSET_ZERO3_X then Orig3DeltaY = MchOffs.OFFSET_ZERO3_X end
if MchOffs.OFFSET_ZERO3_Z then Orig3DeltaZ = MchOffs.OFFSET_ZERO3_Z end
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
end
end
@@ -225,29 +228,31 @@ local H2Id = EmtHead {
Geo = 'H2_HEAD/GEO'}
EgtSetInfo( H2Id, 'Gearbox', 1)
-- Sega a catena
--EmtAxis {
-- Name = 'A1',
-- Parent = 'B1',
-- Token = '**',
-- Type = MCH_AT.ROTARY,
-- Dir = Z_AX(),
-- Pos = Point3d( 0, 0, 0),
-- Stroke = { 0, 270},
-- Home = 180,
-- Geo = 'A1_AXIS/GEO'}
--local H3Id = EmtHead {
-- Name = 'H3',
-- Parent = 'A1',
-- HSet = 'H1',
-- Type = MCH_HT.STD,
-- Pos = Point3d( 0, 0, -ChSawLen),
-- TDir = Y_AX(),
-- ADir = Z_AX(),
-- Rot1W = 0.1,
-- SolCh = MCH_SCC.ADIR_NEAR,
-- OthColl = {'B1/SOLID', 'C1/SOLID'},
-- Geo = 'H3_HEAD/GEO'}
-- EgtSetInfo( H3Id, 'ZSAFEDELTA', 60)
if ChainSaw ~= 0 then
EmtAxis {
Name = 'A1',
Parent = 'B',
Token = '**',
Type = MCH_AT.ROTARY,
Dir = Z_AX(),
Pos = Point3d( 0, 0, 0),
Stroke = { 0, 270},
Home = 180,
Geo = 'A_AXIS/GEO'}
local H3Id = EmtHead {
Name = 'H3',
Parent = 'A1',
HSet = 'H1',
Type = MCH_HT.STD,
Pos = Point3d( 0, 0, -ChSawLen),
TDir = -X_AX(),
ADir = Z_AX(),
Rot1W = 0.1,
SolCh = MCH_SCC.ADIR_NEAR,
OthColl = {'B/SOLID', 'C/SOLID'},
Geo = 'H3_HEAD/GEO'}
EgtSetInfo( H3Id, 'ZSAFEDELTA', 60)
end
-- ToolChanger
local ptTc1 = Point3d( -192.0 + ( DeltaTabX - 590.0), -2957.9 + ( DeltaTabY + 3960.0), -815.5 + ( DeltaTabZ + 593.5))
local ptTc = ptTc1 + 22 * Z_AX()
@@ -300,13 +305,23 @@ EmtTcPos {
TDir = Z_AX(),
ADir = X_AX(),
Geo = 'BASE/T7'}
EmtTcPos {
Name = 'T8',
Parent = 'Base',
Pos = ptTc + 1800 * Y_AX(),
TDir = Z_AX(),
ADir = X_AX(),
Geo = 'BASE/T8'}
if ChainSaw ~= 0 then
EmtTcPos {
Name = 'T8',
Parent = 'Base',
Pos = ptTc + 1800 * Y_AX() - ChSawLen * Z_AX(),
TDir = -X_AX(),
ADir = Z_AX(),
Geo = 'BASE/T8CS'}
else
EmtTcPos {
Name = 'T8',
Parent = 'Base',
Pos = ptTc + 1800 * Y_AX(),
TDir = Z_AX(),
ADir = X_AX(),
Geo = 'BASE/T8'}
end
---------------------------------------------------------------------
-- Funzioni richiamate per modificare i dati macchina in casi particolari
@@ -340,6 +355,14 @@ function OnSetHead()
EmtModifyAxisHome( 'B', 90)
EgtResetAxisPos( 'B')
else
if EMC.HEAD == 'H3' then
-- aggiustamenti per distanza da naso mandrino
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)
end
EmtModifyAxisHome( 'B', 0)
end
end
Binary file not shown.
+7 -3
View File
@@ -27,6 +27,11 @@ local POS = "Pos"
-- Geom Set
local GS = {}
-- Flag presenza sega a catena e chiodatrici/graffettatrici
local bChainSaw = ( EgtGetHeadId( 'H3') ~= nil)
local bNail11 = ( EgtGetHeadId( 'H11') ~= nil)
local bNail12 = ( EgtGetHeadId( 'H12') ~= nil)
-- Configurazione posizioni
local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H2", Group = "G1"},
{Pos = "Pos2", TcPos = "T2", Head = "H1", Group = "G1"},
@@ -35,9 +40,8 @@ local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H2", Group = "G1"},
{Pos = "Pos5", TcPos = "T5", Head = "H1", Group = "G1"},
{Pos = "Pos6", TcPos = "T6", Head = "H1", Group = "G1"},
{Pos = "Pos7", TcPos = "T7", Head = "H1", Group = "G1"},
{Pos = "Pos8", TcPos = "T8", Head = "H1", Group = "G1"}}
local bNail11 = ( EgtGetHeadId( 'H11') ~= nil)
local bNail12 = ( EgtGetHeadId( 'H12') ~= nil)
{Pos = "Pos8", TcPos = "T8", Head = EgtIf( bChainSaw, "H3", "H1"), Group = EgtIf( bChainSaw, "G3", "G1")}}
if bNail11 then
table.insert( PositionTable, {Pos = "Pos9", TcPos = "T11", Head = "H11", Group = "G2"})
end