Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cce6a8654c | |||
| 7d0a0388f8 | |||
| c1d868cb43 | |||
| eb6587f5f8 | |||
| 4fb25dcf52 |
@@ -2,6 +2,9 @@
|
||||
[General]
|
||||
Material=Wood
|
||||
|
||||
[PartProgram]
|
||||
Extension=.mpr
|
||||
|
||||
[Tools]
|
||||
Drillbit=1
|
||||
Sawblade=1
|
||||
@@ -15,6 +18,7 @@ ChiselMaker=MakeChisel.lua
|
||||
|
||||
[ToolHolder]
|
||||
H11.1=HSK-F63_MillWeld12.nge
|
||||
H21.1=HSK-F63_Std.nge
|
||||
|
||||
[Machinings]
|
||||
Drilling=1
|
||||
@@ -50,7 +54,7 @@ H21=6601
|
||||
H22=6612
|
||||
|
||||
[SetUp]
|
||||
Default=Std
|
||||
Default=
|
||||
|
||||
[VMill]
|
||||
Enable=1
|
||||
|
||||
+20
-19
@@ -1,14 +1,15 @@
|
||||
-- Descrizione macchina Masterwood TF600KST 2025/04/10
|
||||
-- Descrizione macchina Masterwood TF600KST 2025/04/16
|
||||
-- by EgalWare s.r.l.
|
||||
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.7d2'
|
||||
MIN_MACH_VER = '2.7a1'
|
||||
PP_VER = '2.7d3'
|
||||
MIN_MACH_VER = '2.7d2'
|
||||
|
||||
-- DATI MACCHINA --
|
||||
NumericalControl = 'woodWOP'
|
||||
COLL_SAFE_DIST = 3
|
||||
|
||||
-- DATI TAVOLA --
|
||||
TabX = 0
|
||||
@@ -196,7 +197,7 @@ EmtHead {
|
||||
TDir20 = -X_AX(),
|
||||
Pos21 = MDRILLTOP[21].Pos,
|
||||
TDir21 = -X_AX(),
|
||||
ADir = X_AX(),
|
||||
ADir = VectorFromPolar( 1, 45),
|
||||
Geo = 'H12_HEAD/GEO',
|
||||
Aux = {'H12_HEAD/SOLID', 'H12_HEAD/SOL_T1', 'H12_HEAD/SOL_T2', 'H12_HEAD/SOL_T3', 'H12_HEAD/SOL_T4', 'H12_HEAD/SOL_T5',
|
||||
'H12_HEAD/SOL_T6', 'H12_HEAD/SOL_T7', 'H12_HEAD/SOL_T8', 'H12_HEAD/SOL_T9', 'H12_HEAD/SOL_T10', 'H12_HEAD/SOL_T11',
|
||||
@@ -210,7 +211,7 @@ EmtAxis {
|
||||
Dir = Z_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = Z21AxisStroke,
|
||||
Home = 650,
|
||||
Home = -650,
|
||||
Geo = 'Z21_AXIS/GEO',
|
||||
Aux = 'Z21_AXIS/SOLID'}
|
||||
local H21Id = EmtHead {
|
||||
@@ -231,7 +232,7 @@ EmtAxis {
|
||||
Dir = Z_AX(),
|
||||
Pos = Point3d( 0, 0, 0),
|
||||
Stroke = Z22AxisStroke,
|
||||
Home = 400,
|
||||
Home = -400,
|
||||
Geo = 'Z22_AXIS/GEO',
|
||||
Aux = 'Z22_AXIS/SOLID'}
|
||||
local H22Id = EmtHead {
|
||||
@@ -239,7 +240,7 @@ local H22Id = EmtHead {
|
||||
Parent = 'Z22',
|
||||
HSet = 'H22',
|
||||
Type = MCH_HT.MULTI,
|
||||
SelType = MCH_SLT.ONEEXIT, -- MCH_SLT.MULTIEXITS,
|
||||
SelType = MCH_SLT.MULTIEXITS,
|
||||
ExitNbr = 9,
|
||||
Pos1 = MDRILLBOTT[1].Pos,
|
||||
TDir1 = -Z_AX(),
|
||||
@@ -294,26 +295,23 @@ end
|
||||
---------------------------------------------------------------------
|
||||
function OnActivateDrillingUnit()
|
||||
|
||||
-- assegno dati testa
|
||||
local nHeadId = EMC.HEADID
|
||||
|
||||
-- sistemo dati uscite attive
|
||||
local vbExit = {}
|
||||
for i = 1, #( EMC.DRACEX or {}) do
|
||||
vbExit[EMC.DRACEX[i]] = true
|
||||
end
|
||||
|
||||
if EMC.HEADID == EgtGetHeadId( 'H12') then
|
||||
if EgtGetName( EMC.HEADID) == 'H12' then
|
||||
-- ciclo su tutte le uscite della testa
|
||||
for nExit = 1, #MDRILLTOP do
|
||||
-- eventuale gemello
|
||||
local nTwin = MDRILLTOP[nExit].Tw or 0
|
||||
-- nome e identificativo della geometria dell'uscita
|
||||
local sExit = 'T' .. EgtNumToString( nExit, 0)
|
||||
local nExitId = EgtGetFirstNameInGroup( nHeadId, sExit)
|
||||
local nExitId = EgtGetFirstNameInGroup( EMC.HEADID, sExit)
|
||||
-- recupero la geometria associata all'uscita
|
||||
local sStem = 'SOL_' .. sExit
|
||||
local nStemId = EgtGetFirstNameInGroup( nHeadId, sStem)
|
||||
local nStemId = EgtGetFirstNameInGroup( EMC.HEADID, sStem)
|
||||
-- determino la posizione
|
||||
local dPos = EgtIf( vbExit[nExit] or vbExit[nTwin], 0, MDRILLTOP[nExit].St)
|
||||
-- eseguo posizionamento
|
||||
@@ -324,24 +322,24 @@ function OnActivateDrillingUnit()
|
||||
end
|
||||
end
|
||||
|
||||
if EMC.HEADID == EgtGetHeadId( 'H22') then
|
||||
if EgtGetName( EMC.HEADID) == 'H22' then
|
||||
-- ciclo su tutte le uscite della testa
|
||||
for nExit = 1, #MDRILLBOTT do
|
||||
-- eventuale gemello
|
||||
local nTwin = MDRILLBOTT[nExit].Tw or 0
|
||||
-- nome e identificativo della geometria dell'uscita
|
||||
local sExit = 'T' .. EgtNumToString( nExit, 0)
|
||||
local nExitId = EgtGetFirstNameInGroup( nHeadId, sExit)
|
||||
local nExitId = EgtGetFirstNameInGroup( EMC.HEADID, sExit)
|
||||
-- recupero la geometria associata all'uscita
|
||||
local sStem = 'SOL_' .. sExit
|
||||
local nStemId = EgtGetFirstNameInGroup( nHeadId, sStem)
|
||||
local nStemId = EgtGetFirstNameInGroup( EMC.HEADID, sStem)
|
||||
-- determino la posizione
|
||||
local dPos = EgtIf( vbExit[nExit] or vbExit[nTwin], 0, MDRILLBOTT[nExit].St)
|
||||
-- eseguo posizionamento
|
||||
if nStemId then
|
||||
MoveGroup( nStemId, Z_AX(), dPos)
|
||||
MoveGroup( nStemId, -Z_AX(), dPos)
|
||||
end
|
||||
MoveGroup( nExitId, Z_AX(), dPos)
|
||||
MoveGroup( nExitId, -Z_AX(), dPos)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -349,11 +347,14 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSetHead()
|
||||
-- disabilito uscite del gruppo a forare da sopra (gestito con multiselezione)
|
||||
EMC.HEADID = EgtGetHeadId( 'H12')
|
||||
EMC.DRACEX = nil
|
||||
OnActivateDrillingUnit()
|
||||
-- gestisco uscite del gruppo a forare da sotto (gestito con selezione singola)
|
||||
EMC.HEADID = EgtGetHeadId( 'H22')
|
||||
EMC.ACTIVE = ( EMC.HEAD == 'H22')
|
||||
EMC.DRACEX = EgtIf( EMC.HEAD == 'H22', { EMC.EXIT}, nil)
|
||||
OnActivateDrillingUnit()
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-- Processore macchina Masterwood-TF600KST 2025/03/30
|
||||
-- Processore macchina Masterwood-TF600KST 2025/04/16
|
||||
-- by EgalWare s.r.l.
|
||||
--
|
||||
-- Intestazioni
|
||||
@@ -25,20 +25,6 @@ function OnSimulStart()
|
||||
if not EMT.VER or EMT.VER < MIN_MACH_VER then
|
||||
EmtSetLastError( 1200, 'A newer version of the program is required (minimum EgtMachKernel '..MIN_MACH_VER..')')
|
||||
end
|
||||
-- Carico gli utensili sulle barre portautensili
|
||||
local vTcPos = EgtGetAllTcPosNames()
|
||||
if vTcPos then
|
||||
for i = 1, #vTcPos do
|
||||
local vTools = EgtGetToolsInCurrSetupPos( vTcPos[i])
|
||||
for j = 1, #( vTools or {}) do
|
||||
if vTools[j] ~= '' then
|
||||
EgtLoadTool( vTcPos[i], j, vTools[j])
|
||||
end
|
||||
end
|
||||
ShowToolInTcPos( vTcPos[i], true)
|
||||
end
|
||||
end
|
||||
|
||||
-- Se reset o home, esco
|
||||
if EMT.SIM1ST then return end
|
||||
-- Creo o svuoto gruppo per copia finale degli oggetti virtual milling
|
||||
@@ -150,7 +136,6 @@ function OnSimulDispositionStart()
|
||||
end
|
||||
EgtLoadTool( 'H11', 1, EMT.TOOL_1)
|
||||
EMT.TCPOS_1 = GetToolTcPos( EMT.TOOL_1)
|
||||
ShowToolInTcPos( EMT.TCPOS_1, false)
|
||||
EMT.LOAD = true
|
||||
-- Se vero inizio e abilitato creo gli Zmap
|
||||
EMT.VMILL = {}
|
||||
@@ -270,8 +255,6 @@ function OnSimulToolSelect()
|
||||
-- carico utensile, con breve pausa
|
||||
EgtPause( 100)
|
||||
EgtOutText( '')
|
||||
-- lo nascondo sul portautensili
|
||||
ShowToolInTcPos( EMT.TCPOS, false)
|
||||
-- se attivo Vmill
|
||||
if EMT.VMILL then
|
||||
EmtSetToolForVmill( EMT.TOOL, EMT.HEAD, EMT.EXIT, EMT.VMILL)
|
||||
@@ -302,10 +285,6 @@ function OnSimulToolDeselect()
|
||||
if EMT.HEAD == 'H11' then
|
||||
SimulMoveAxis( 'Z1', 650, MCH_SIM_STEP.RAPID)
|
||||
SimulMoveAxes( 'Y', 2000, MCH_SIM_STEP.RAPID, 'A', 0, MCH_SIM_STEP.RAPROT, 'C', 0, MCH_SIM_STEP.RAPROT)
|
||||
-- visualizzo utensile su TcPos
|
||||
ShowToolInTcPos( EMT.PREVTCPOS, true)
|
||||
-- nascondo l'utensile sulla testa
|
||||
EgtSetMode( EgtGetHeadId( EMT.PREVHEAD or '') or GDB_ID.NULL, GDB_MD.HIDDEN)
|
||||
elseif EMT.NEXTHEAD == 'H11' then
|
||||
SimulMoveAxis( 'Z2', 400, MCH_SIM_STEP.RAPID)
|
||||
SimulMoveAxis( 'Y', 2000, MCH_SIM_STEP.RAPID)
|
||||
@@ -331,9 +310,10 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulPathStart()
|
||||
if EMT.HEAD == 'H21' then
|
||||
-- speciale per gruppi a forare
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H22' then
|
||||
-- attivazione uscite
|
||||
EMC = { HEADID = EgtGetHeadId( 'H21'), DRACEX = EMT.DRACEX}
|
||||
EMC = { HEADID = EgtGetHeadId( EMT.HEAD), DRACEX = EMT.DRACEX}
|
||||
OnActivateDrillingUnit()
|
||||
EMC = nil
|
||||
-- impostazione utensili aggiuntivi per Vmill
|
||||
@@ -348,10 +328,6 @@ function OnSimulPathStart()
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif EMT.HEAD == 'H22' then
|
||||
-- attivazione testa
|
||||
EMC = { HEADID = EgtGetHeadId( 'H22'), ACTIVE = true}
|
||||
--OnActivateAngTransm()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -464,24 +440,6 @@ function FindFirstToolOnHead( sH1)
|
||||
return sTool, nTlen
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function ShowToolInTcPos( sTcPos, bShow)
|
||||
-- recupero identificativo della posizione sul TC
|
||||
local TcPosId = EgtGetTcPosId( sTcPos or '')
|
||||
if not TcPosId then return end
|
||||
-- ciclo sulle possibili uscite
|
||||
for i = 1, 100 do
|
||||
-- recupero il gruppo dell'utensile
|
||||
local TcExitId = EgtGetFirstNameInGroup( TcPosId, 'T'..tostring( i))
|
||||
if not TcExitId then break end
|
||||
-- imposto lo stato di visualizzazione
|
||||
EgtSetStatus( TcExitId, EgtIf( bShow, GDB_ST.ON, GDB_ST.OFF))
|
||||
end
|
||||
-- recupero eventuale gruppo ausiliario da visualizzare/nascondere
|
||||
local TcHSId = EgtGetFirstNameInGroup( TcPosId, sTcPos..'_HS')
|
||||
if TcHSId then EgtSetStatus( TcHSId, EgtIf( bShow, GDB_ST.ON, GDB_ST.OFF)) end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function GetDefaultToolName()
|
||||
local DefTcPos = 'T1'
|
||||
|
||||
Binary file not shown.
+12
-13
@@ -1,4 +1,4 @@
|
||||
-- Processore generico Masterwood woodWOP 2025/04/01
|
||||
-- Processore generico Masterwood woodWOP 2025/04/15
|
||||
-- by EgalWare s.r.l.
|
||||
--
|
||||
-- Intestazioni
|
||||
@@ -7,7 +7,7 @@ EgtEnableDebug( false)
|
||||
|
||||
|
||||
-- Variabili di modulo
|
||||
local MLE_INFO = 'Egalware-CAM5-HwW-V2.7d1'
|
||||
local MLE_INFO = 'Egalware-CAM5-MwW-V2.7d1'
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnStart()
|
||||
@@ -20,10 +20,7 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnEnd()
|
||||
-- Chiusura file altri processi (qui si passa sempre, anche in caso di errore)
|
||||
local sNewPath = EgtChangePathExtension( EMT.FILE, '.mpr')
|
||||
EgtEraseFile( sNewPath)
|
||||
EgtRenameFile( EMT.FILE, sNewPath)
|
||||
-- Estensione impostata nel file INI di macchina
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -59,7 +56,7 @@ function OnDispositionEnd()
|
||||
if EMT.PHASE == 1 then
|
||||
-- Header
|
||||
EmtOutput( '[H')
|
||||
EmtOutput( 'VERSION="4.0 Alpha" \\' .. MLE_INFO .. '\\')
|
||||
EmtOutput( 'VERSION="4.0 Alpha" \\' .. MLE_INFO .. ' ' .. os.date( '%Y.%m.%d-%H:%M:%S', os.time()) .. '\\')
|
||||
EmtOutput( 'HP="1"')
|
||||
EmtOutput( 'IN="0"')
|
||||
EmtOutput( 'GX="0"')
|
||||
@@ -291,6 +288,8 @@ function OnPathStart()
|
||||
EmtResetPrev()
|
||||
EMT.IPLGL = false
|
||||
EMT.IPLGLFR = nil
|
||||
-- Verifico se lavorazione da sotto
|
||||
EMT.FROMBELOW = AreSameVectorApprox( Vector3d( EMT.EXTR), -Z_AX())
|
||||
-- Se fresatura o svuotatura
|
||||
if EMT.MCHTYPE == MCH_MY.MILLING or EMT.MCHTYPE == MCH_MY.POCKETING then
|
||||
-- Inizio percorso di lavorazione
|
||||
@@ -431,12 +430,12 @@ function CalcInterpPlane()
|
||||
EMT.IPLGLFR = nil
|
||||
-- Recupero vettore direzione utensile
|
||||
local vtE = Vector3d( EMT.EXTR)
|
||||
-- a seconda del piano di interpolazione Solo standard Homag 00, A0, B0, C0, D0)
|
||||
if vtE:isSmall() or AreSameVectorApprox( vtE, Z_AX()) then
|
||||
-- a seconda del piano di interpolazione (solo standard Homag 00, A0, B0, C0, D0)
|
||||
if vtE:isSmall() or AreSameVectorApprox( vtE, Z_AX()) or EMT.FROMBELOW then
|
||||
local ptS = Point3d( EMT.PP)
|
||||
EMT.IPLGLFR = Frame3d( ptS, vtE)
|
||||
EMT.IPLGLFR = Frame3d( ptS, Z_AX())
|
||||
EMT.KO = '00'
|
||||
elseif AreSameVectorApprox( vtE, - Y_AX()) then
|
||||
elseif AreSameVectorApprox( vtE, -Y_AX()) then
|
||||
local ptS = Point3d( EMT.PP)
|
||||
EMT.IPLGLFR = Frame3d( ptS, vtE)
|
||||
EMT.KO = 'A0'
|
||||
@@ -448,7 +447,7 @@ function CalcInterpPlane()
|
||||
local ptS = Point3d( EMT.PP) + Vector3d( EMT.LP, EMT.WP, 0)
|
||||
EMT.IPLGLFR = Frame3d( ptS, vtE)
|
||||
EMT.KO = 'C0'
|
||||
elseif AreSameVectorApprox( vtE, - X_AX()) then
|
||||
elseif AreSameVectorApprox( vtE, -X_AX()) then
|
||||
local ptS = Point3d( EMT.PP) + Vector3d( 0, EMT.WP, 0)
|
||||
EMT.IPLGLFR = Frame3d( ptS, vtE)
|
||||
EMT.KO = 'D0'
|
||||
@@ -487,7 +486,7 @@ end
|
||||
---------------------------------------------------------------------
|
||||
function EmitMilling()
|
||||
PostOutput( '')
|
||||
PostOutput( '<105 \\Konturfraesen\\')
|
||||
PostOutput( EgtIf( EMT.FROMBELOW, '<113 \\Unterflurfraesen\\', '<105 \\Konturfraesen\\'))
|
||||
PostOutput( 'EA="' .. tostring( EMT.CTR) .. ':0"')
|
||||
PostOutput( 'MDA="SEN"')
|
||||
PostOutput( 'RK="NOWRK"')
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user