Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9a1da7d5d7 | |||
| 3843cf5e8c | |||
| 94f86eae81 | |||
| c16b1931a9 | |||
| cf9c2ebbb6 | |||
| e9aaede78c | |||
| 874e9f73d7 | |||
| 7940f26f50 | |||
| f59b55e723 | |||
| 421b8dd8a5 | |||
| 5db826e614 | |||
| 7f8f17f358 | |||
| 7e8bc31bc0 | |||
| 4b6a090a91 | |||
| 5b072281f4 | |||
| bd7c69ac0a | |||
| 5734560db2 | |||
| 912dd11c64 | |||
| 5fe8e8caf0 | |||
| 43518c80ff | |||
| 9585b06976 | |||
| 7351e269c9 | |||
| c431363005 |
@@ -18,9 +18,7 @@ Active=1
|
||||
[ToolHolder]
|
||||
H1.1=Standard.nge
|
||||
H1.1:MILL_NOTIP=MillNoTip.nge
|
||||
H1.1:SAW_FLAT=SawOnH1.nge
|
||||
H2.1=SawOnAT.nge
|
||||
H3.1=ChainSaw.nge
|
||||
H12.1=Saw.nge
|
||||
|
||||
[Machinings]
|
||||
Drilling=1
|
||||
@@ -45,9 +43,11 @@ ExitScript=ExitMach.lua
|
||||
; 5 axis head
|
||||
H1=6608
|
||||
; 5 axis saw
|
||||
H2=6615
|
||||
; Chainsaw
|
||||
H3=6616
|
||||
H12=6615
|
||||
; Nail
|
||||
H21=6630
|
||||
H22=6630
|
||||
H23=6630
|
||||
|
||||
[SetUp]
|
||||
Default=Standard
|
||||
|
||||
+80
-68
@@ -8,7 +8,8 @@ require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
if not EmtModifyHeadAuxDirection then error( 'A newer version of the program is required (minimum 2.3j5)') end
|
||||
|
||||
PP_VER = '3.1d1_DEV2'
|
||||
PP_VER = '3.1d2'
|
||||
PP_NVER = '3.1.4.2'
|
||||
PP_NVER = '2.7.4.1'
|
||||
|
||||
-- Parametri macchina
|
||||
@@ -25,7 +26,7 @@ MinC1 = -275.0
|
||||
MaxC1 = 275.0
|
||||
PosSpecC1 = 34
|
||||
MillOffs = 170
|
||||
ChSawLen = 96.0
|
||||
ChSawLen = 0.0
|
||||
ParkC1 = 0
|
||||
ParkB1 = 0
|
||||
ParkSawC1 = -90
|
||||
@@ -34,30 +35,32 @@ MinX2 = 1047.0
|
||||
MaxX2 = 6080.0
|
||||
MinZ2 = -770.0
|
||||
MaxZ2 = 0.0
|
||||
SawDeltaX = 33.65
|
||||
SawDeltaY = 210.0
|
||||
SawDeltaZ = -133.0
|
||||
SawOffs = 115.5
|
||||
Nail11DeltaX = 318.0 -- Distanza da Mandrino a Graffettatrice H21
|
||||
Nail11DeltaY = -111.5
|
||||
SawOffsX = 110.0
|
||||
SawOffsY = 0
|
||||
SawOffsZ = -150.3
|
||||
SawC1Offs = 0
|
||||
SawB1Offs = 0
|
||||
SawOffs = 0.0
|
||||
Nail11DeltaX = -277.0 -- Distanza da Mandrino a Graffettatrice H21
|
||||
Nail11DeltaY = -112.5
|
||||
Nail11DeltaZ = -421.6497
|
||||
Nail12DeltaX = 315.8125 -- Distanza da Mandrino a Graffettatrice H22
|
||||
Nail12DeltaY = 136.1311
|
||||
Nail12DeltaX = -279.1874 -- Distanza da Mandrino a Graffettatrice H22
|
||||
Nail12DeltaY = 135.1311
|
||||
Nail12DeltaZ = -421.6497
|
||||
Nail13DeltaX = -277.0 -- Distanza da Mandrino a Graffettatrice H23
|
||||
Nail13DeltaY = -111.5
|
||||
Nail13DeltaX = 318.0 -- Distanza da Mandrino a Graffettatrice H23
|
||||
Nail13DeltaY = -112.5
|
||||
Nail13DeltaZ = -421.6497
|
||||
Nail14DeltaX = 0 -- Distanza da Mandrino a Graffettatrice H24 (non esiste su questa macchina)
|
||||
Nail14DeltaY = 0
|
||||
Nail14DeltaZ = 0
|
||||
Orig2DeltaX = 0 -- Origine angolo tavola 2
|
||||
Orig2DeltaY = -3500
|
||||
Orig2DeltaY = 0
|
||||
Orig2DeltaZ = 0
|
||||
Orig3DeltaX = 33383 -- Origine angolo tavola 2
|
||||
Orig3DeltaX = 0 -- Origine angolo tavola 2
|
||||
Orig3DeltaY = 0
|
||||
Orig3DeltaZ = 0
|
||||
Orig4DeltaX = 33383 -- Origine angolo tavola 2
|
||||
Orig4DeltaY = -3500
|
||||
Orig4DeltaX = 0 -- Origine angolo tavola 2
|
||||
Orig4DeltaY = 0
|
||||
Orig4DeltaZ = 0
|
||||
Orig5DeltaX = 27000 -- Origine angolo tavola 2
|
||||
Orig5DeltaY = 0
|
||||
@@ -68,9 +71,12 @@ Orig6DeltaZ = 0
|
||||
DimTabX = 33383.0--31200.0 -- Dimensione tavola
|
||||
DimTabY = 3500.0
|
||||
DeltaTabX = -34391.9582---34200.00 -- Distanza da Mandrino a origine principale angolo tavola.
|
||||
DeltaTabY = 1291.0--1289.00
|
||||
DeltaTabY = 1290.0--1289.00
|
||||
DeltaTabZ = -1227.6497
|
||||
CoeffVM = 0.5
|
||||
OffsetH12X = 110
|
||||
OffsetH12Z = 150
|
||||
ParkYScrapRemove = nil
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90480023_XS-MW.data"
|
||||
@@ -109,23 +115,27 @@ if EgtExistsFile( sData) then
|
||||
SawOffs = MchOffs.PIVOT_SAW or SawOffs
|
||||
if MchOffs.OFFSET_ZERO3_Y then DimTabX = - MchOffs.OFFSET_ZERO3_Y end
|
||||
if MchOffs.OFFSET_ZERO2_X then DimTabY = - MchOffs.OFFSET_ZERO2_X end
|
||||
if MchOffs.ZERO_Y_MILL then DeltaTabX = -MchOffs.ZERO_Y_MILL end
|
||||
if MchOffs.ZERO_X_MILL then DeltaTabY = MchOffs.ZERO_X_MILL or DeltaTabY end
|
||||
if MchOffs.ZERO_Y_MILL then DeltaTabX = MchOffs.ZERO_Y_MILL end
|
||||
if MchOffs.ZERO_X_MILL then DeltaTabY = - MchOffs.ZERO_X_MILL or DeltaTabY end
|
||||
if MchOffs.ZERO_Z_MILL then DeltaTabZ = MchOffs.ZERO_Z_MILL or DeltaTabZ end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_Y_SAW then SawDeltaX = - ( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_Y_SAW) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_X_SAW then SawDeltaY = ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_X_SAW) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_Y_SAW then SawDeltaX = ( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_Y_SAW) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_X_SAW then SawDeltaY = - ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_X_SAW) end
|
||||
if MchOffs.ZERO_Z_MILL and MchOffs.ZERO_Z_SAW then SawDeltaZ = ( MchOffs.ZERO_Z_MILL - MchOffs.ZERO_Z_SAW) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL11_Y then Nail11DeltaX = -( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL11_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL11_X then Nail11DeltaY = ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL11_X) end
|
||||
if Machine.SAWOFFSX then SawOffsX = Machine.SAWOFFSX end
|
||||
if Machine.SAWOFFSZ then SawOffsZ = Machine.SAWOFFSZ end
|
||||
if Machine.OFFSETCLAMAT1 then SawC1Offs= Machine.OFFSETCLAMAT1 end
|
||||
if Machine.OFFSETBLAMAT1 then SawB1Offs= Machine.OFFSETBLAMAT1 end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL11_Y then Nail11DeltaX = ( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL11_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL11_X then Nail11DeltaY = - ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL11_X) end
|
||||
if MchOffs.ZERO_Z_MILL and MchOffs.ZERO_NAIL11_Z then Nail11DeltaZ = ( MchOffs.ZERO_Z_MILL - MchOffs.ZERO_NAIL11_Z) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL12_Y then Nail12DeltaX = -( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL12_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL12_X then Nail12DeltaY = ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL12_X) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL12_Y then Nail12DeltaX = ( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL12_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL12_X then Nail12DeltaY = - ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL12_X) end
|
||||
if MchOffs.ZERO_Z_MILL and MchOffs.ZERO_NAIL12_Z then Nail12DeltaZ = ( MchOffs.ZERO_Z_MILL - MchOffs.ZERO_NAIL12_Z) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL13_Y then Nail13DeltaX = -( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL13_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL13_X then Nail13DeltaY = ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL13_X) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL13_Y then Nail13DeltaX = ( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL13_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL13_X then Nail13DeltaY = - ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL13_X) end
|
||||
if MchOffs.ZERO_Z_MILL and MchOffs.ZERO_NAIL13_Z then Nail13DeltaZ = ( MchOffs.ZERO_Z_MILL - MchOffs.ZERO_NAIL13_Z) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL14_Y then Nail14DeltaX = -( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL14_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL14_X then Nail14DeltaY = ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL14_X) end
|
||||
if MchOffs.ZERO_Y_MILL and MchOffs.ZERO_NAIL14_Y then Nail14DeltaX = ( MchOffs.ZERO_Y_MILL - MchOffs.ZERO_NAIL14_Y) end
|
||||
if MchOffs.ZERO_X_MILL and MchOffs.ZERO_NAIL14_X then Nail14DeltaY = - ( MchOffs.ZERO_X_MILL - MchOffs.ZERO_NAIL14_X) end
|
||||
if MchOffs.ZERO_Z_MILL and MchOffs.ZERO_NAIL14_Z then Nail14DeltaZ = ( MchOffs.ZERO_Z_MILL - MchOffs.ZERO_NAIL14_Z) end
|
||||
if MchOffs.OFFSET_ZERO2_Y then Orig2DeltaX = -MchOffs.OFFSET_ZERO2_Y end
|
||||
if MchOffs.OFFSET_ZERO2_X then Orig2DeltaY = MchOffs.OFFSET_ZERO2_X end
|
||||
@@ -142,22 +152,19 @@ if EgtExistsFile( sData) then
|
||||
if MchOffs.OFFSET_ZERO6_Y then Orig6DeltaX = -MchOffs.OFFSET_ZERO6_Y end
|
||||
if MchOffs.OFFSET_ZERO6_X then Orig6DeltaY = MchOffs.OFFSET_ZERO6_X end
|
||||
if MchOffs.OFFSET_ZERO6_Z then Orig6DeltaZ = MchOffs.OFFSET_ZERO6_Z end
|
||||
if MchOffs.PARK_Y_SCRAP_REMOVE then ParkYScrapRemove = MchOffs.PARK_Y_SCRAP_REMOVE end
|
||||
end
|
||||
end
|
||||
|
||||
-- Spostamenti della lama rispetto al disegno
|
||||
local SawOffsX = SawDeltaX - 33.65
|
||||
local SawOffsY = SawDeltaY - 210.0
|
||||
local SawOffsZ = SawDeltaZ + 133.0
|
||||
-- Spostamenti delle chiodatrici rispetto al disegno
|
||||
local Nail11OffsX = Nail11DeltaX - 318.0
|
||||
local Nail11OffsY = Nail11DeltaY + 111.5
|
||||
local Nail11OffsX = Nail11DeltaX + 277.0
|
||||
local Nail11OffsY = Nail11DeltaY + 112.5
|
||||
local Nail11OffsZ = Nail11DeltaZ + 421.6497
|
||||
local Nail12OffsX = Nail12DeltaX - 315.8125
|
||||
local Nail12OffsY = Nail12DeltaY - 136.1311
|
||||
local Nail12OffsX = Nail12DeltaX + 279.1874
|
||||
local Nail12OffsY = Nail12DeltaY - 135.1311
|
||||
local Nail12OffsZ = Nail12DeltaZ + 421.6497
|
||||
local Nail13OffsX = Nail13DeltaX + 277.0
|
||||
local Nail13OffsY = Nail13DeltaY + 111.5
|
||||
local Nail13OffsX = Nail13DeltaX - 318.0
|
||||
local Nail13OffsY = Nail13DeltaY + 112.5
|
||||
local Nail13OffsZ = Nail13DeltaZ + 421.6497
|
||||
|
||||
EmtGeneral {
|
||||
@@ -172,7 +179,7 @@ local BaseId = EmtBase {
|
||||
Geo='BASE/GEO',
|
||||
Aux={'BASE/LOAD', 'BASE/MOD01', 'BASE/MOD02', 'BASE/MOD03', 'BASE/MOD04', 'BASE/MOD05', 'BASE/MOD06', 'BASE/MOD07',
|
||||
'BASE/MOD08', 'BASE/MOD09', 'BASE/MOD10', 'BASE/MOD11', 'BASE/MOD12', 'BASE/MOD13', 'BASE/MOD14', 'BASE/REF', 'BASE/COLLISION', 'BASE/UNLOAD'}}
|
||||
local vtMove = Vector3d( DeltaTabX + 34391.9582, DeltaTabY - 1291.0, DeltaTabZ + 1227.6497 )
|
||||
local vtMove = Vector3d( DeltaTabX + 34391.9582, DeltaTabY - 1290.0, DeltaTabZ + 1227.6497 )
|
||||
EgtMove( BaseId, vtMove, GDB_RT.GLOB)
|
||||
-- Tavola
|
||||
EmtTable {
|
||||
@@ -226,7 +233,7 @@ EmtAxis {
|
||||
Token = 'C',
|
||||
Type = MCH_AT.ROTARY,
|
||||
Dir = Z_AX(),
|
||||
Pos = Point3d( 0, 1, 485.5966),
|
||||
Pos = Point3d( 0, 0, 485.5966),
|
||||
Stroke = {MinC1, MaxC1},
|
||||
Home = 0,
|
||||
Geo = 'C1_AXIS/GEO',
|
||||
@@ -236,7 +243,7 @@ EmtAxis {
|
||||
Parent = 'C1',
|
||||
Token = 'B',
|
||||
Type = MCH_AT.ROTARY,
|
||||
Dir = -Y_AX(),
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d( 0, 0, MillOffs),--( 0, 52.5966, MillOffs),
|
||||
Stroke = {MinB1, MaxB1},
|
||||
Home = 0,
|
||||
@@ -254,6 +261,18 @@ EmtHead {
|
||||
Rot1W = 0.1,
|
||||
OthColl = {'B1/SOLID', 'C1/SOLID'},
|
||||
Geo = 'H1_HEAD/GEO'}
|
||||
-- Testa Lama
|
||||
EmtHead {
|
||||
Name = 'H12',
|
||||
Parent = 'B1',
|
||||
HSet = 'H1',
|
||||
Type = MCH_HT.STD,
|
||||
Pos = Point3d( -SawOffsX, SawOffsY, SawOffsZ),
|
||||
TDir = Vector3d( 0, sin( SawB1Offs), cos( SawB1Offs)),
|
||||
ADir = X_AX(),
|
||||
Rot1W = 0.1,
|
||||
OthColl = {'B1/SOLID', 'C1/SOLID'},
|
||||
Geo = 'H12_HEAD/GEO'}
|
||||
-- Sega a catena
|
||||
EmtAxis {
|
||||
Name = 'A1',
|
||||
@@ -265,7 +284,6 @@ EmtAxis {
|
||||
Stroke = { 0, 270},
|
||||
Home = 180,
|
||||
Geo = 'A1_AXIS/GEO'}
|
||||
|
||||
-- Carro 2
|
||||
local X2Id = EmtAxis {
|
||||
Name = 'X2',
|
||||
@@ -278,7 +296,7 @@ local X2Id = EmtAxis {
|
||||
Home = MaxX2,
|
||||
Geo = 'X2_AXIS/GEO',
|
||||
Aux = {'X2_AXIS/SOLID'}}
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), Vector3d( SawOffsX, SawOffsY, 0), GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), Vector3d( Nail11OffsX, Nail11OffsY, 0), GDB_RT.GLOB)
|
||||
local Z2Id = EmtAxis {
|
||||
Name = 'Z2',
|
||||
Parent = 'X2',
|
||||
@@ -291,7 +309,7 @@ local Z2Id = EmtAxis {
|
||||
Home = 0,
|
||||
Geo = 'Z2_AXIS/GEO',
|
||||
Aux = {'Z2_AXIS/SOLID'}}
|
||||
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'SOLID'), Vector3d( SawOffsX, SawOffsY, SawOffsZ), GDB_RT.GLOB)
|
||||
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'SOLID'), Vector3d( Nail11OffsX, Nail11OffsY, Nail11OffsZ), GDB_RT.GLOB)
|
||||
|
||||
local H21Id = EmtHead {
|
||||
Name = 'H21',
|
||||
@@ -324,56 +342,56 @@ local H23Id = EmtHead {
|
||||
Aux = {'H23_HEAD/SOLID'}}
|
||||
EgtMove( EgtGetFirstNameInGroup( H23Id, 'SOLID'), Vector3d( Nail13OffsX, Nail13OffsY, Nail13OffsZ), GDB_RT.GLOB)
|
||||
-- ToolChanger
|
||||
local ptTcA = Point3d( -600.1772, 334, -592.1636)
|
||||
local ptTcA = Point3d( -600.1772, 333, -592.1636)
|
||||
EmtTcPos {
|
||||
Name = 'T1',
|
||||
Parent = 'Y',
|
||||
Pos = ptTcA,
|
||||
TDir = Y_AX(),
|
||||
ADir = -X_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'Y_AXIS/TA1'}
|
||||
EmtTcPos {
|
||||
Name = 'T2',
|
||||
Parent = 'Y',
|
||||
Pos = ptTcA - 102.5 * Z_AX(),
|
||||
TDir = Y_AX(),
|
||||
ADir = -X_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'Y_AXIS/TA2'}
|
||||
EmtTcPos {
|
||||
Name = 'T3',
|
||||
Parent = 'Y',
|
||||
Pos = ptTcA - 205 * Z_AX(),
|
||||
TDir = Y_AX(),
|
||||
ADir = -X_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'Y_AXIS/TA3'}
|
||||
EmtTcPos {
|
||||
Name = 'T4',
|
||||
Parent = 'Y',
|
||||
Pos = ptTcA - 307.5 * Z_AX(),
|
||||
TDir = Y_AX(),
|
||||
ADir = -X_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'Y_AXIS/TA4'}
|
||||
EmtTcPos {
|
||||
Name = 'T5',
|
||||
Parent = 'Y',
|
||||
Pos = ptTcA - 410 * Z_AX(),
|
||||
TDir = Y_AX(),
|
||||
ADir = -X_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'Y_AXIS/TA5'}
|
||||
EmtTcPos {
|
||||
Name = 'T6',
|
||||
Parent = 'Y',
|
||||
Pos = ptTcA - 512.5 * Z_AX(),
|
||||
TDir = Y_AX(),
|
||||
ADir = -X_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'Y_AXIS/TA6'}
|
||||
EmtTcPos {
|
||||
Name = 'T7',
|
||||
Name = 'T8',
|
||||
Parent = 'Y',
|
||||
Pos = ptTcA - 717.5 * Z_AX(),
|
||||
Pos = ptTcA - 717.5 * Z_AX() + Vector3d( -OffsetH12X, -OffsetH12Z, 0),
|
||||
TDir = Y_AX(),
|
||||
ADir = -X_AX(),
|
||||
Geo = 'Y_AXIS/TA7'}
|
||||
ADir = X_AX(),
|
||||
Geo = 'Y_AXIS/TA8'}
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- Funzioni richiamate per modificare i dati macchina in casi particolari
|
||||
@@ -393,19 +411,8 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSetHead()
|
||||
-- se sega a catena
|
||||
if EMC.HEAD == 'H3' then
|
||||
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
|
||||
local CSawPosA = EgtGetVal( sVal, 'A1', 'd') or 180
|
||||
EmtModifyAxisHome( 'X1', ( MinX1 + MaxX1) / 2)
|
||||
EmtModifyAxisHome( 'Z1', GetChainSawZHomeFromVirtualAxis( CSawPosA))
|
||||
EmtModifyAxisStroke( 'C1', { MinC1, MaxC1})
|
||||
EmtModifyAxisStroke( 'B1', { -0.1, MaxB1})
|
||||
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA))
|
||||
EmtModifyAxisHome( 'B1', 0)
|
||||
EmtModifyAxisHome( 'A1', CSawPosA)
|
||||
-- se lama su testa 5 assi
|
||||
elseif EMC.HEAD == 'H1' and EMC.TOTDIAM > 600 then
|
||||
if EMC.HEAD == 'H1' and EMC.TOTDIAM > 600 then
|
||||
EmtModifyAxisHome( 'Z1', -150)
|
||||
EmtModifyAxisStroke( 'C1', { -180.1, 0.1})
|
||||
EmtModifyAxisStroke( 'B1', { -90, 0})
|
||||
@@ -426,6 +433,11 @@ function OnSetHead()
|
||||
EmtModifyAxisHome( 'C1', ParkC1)
|
||||
EmtModifyHeadAuxDirection( 'H1', Y_AX())
|
||||
end
|
||||
elseif EMC.HEAD == 'H12' then
|
||||
EmtModifyAxisHome( 'Z1', -150)
|
||||
EmtModifyAxisHome( 'C1', ParkC1)
|
||||
EmtModifyAxisHome( 'B1', ParkB1)
|
||||
EmtModifyAxisDirection( 'B1', Vector3d( cos( SawC1Offs), -sin( SawC1Offs), 0))
|
||||
else
|
||||
EmtModifyAxisStroke( 'B1', { MinB1, MaxB1})
|
||||
EmtModifyAxisHome( 'C1', ParkC1)
|
||||
|
||||
+96
-87
@@ -39,7 +39,11 @@ end
|
||||
function OnProgramStart()
|
||||
-- Info da gruppo BtlInfo
|
||||
local BtlInfoId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL
|
||||
EMT.ORIG = EgtGetInfo( BtlInfoId, 'REFPOS', 'i') or 1
|
||||
EMT.ORIG = EgtGetInfo( BtlInfoId, 'REFPOS', 'i') or 1
|
||||
-- CASO SPECIALE: questa macchina utilizza origine 3 anche se viene passata origine 1 da TS3
|
||||
if EMT.ORIG == 1 then
|
||||
EMT.ORIG = 3
|
||||
end
|
||||
-- Intestazioni
|
||||
if not TEST_USE then
|
||||
local BtlInfoId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL
|
||||
@@ -56,37 +60,13 @@ function OnProgramStart()
|
||||
end
|
||||
EmtOutput( '('.. MLE_INFO..')')
|
||||
-- Parametri macchina
|
||||
local sOut = 'L151='..EgtNumToString( DeltaTabY + DimTabY - Nail11DeltaY, 2)..'\n'..
|
||||
'L152='..EgtNumToString( -DeltaTabX + Nail11DeltaX, 2)..'\n'..
|
||||
'L153='..EgtNumToString( DeltaTabZ - Nail11DeltaZ, 2)..'\n'..
|
||||
'L154='..EgtNumToString( DeltaTabY + DimTabY - Nail12DeltaY, 2)..'\n'..
|
||||
'L155='..EgtNumToString( -DeltaTabX + Nail12DeltaX, 2)..'\n'..
|
||||
'L156='..EgtNumToString( DeltaTabZ - Nail12DeltaZ, 2)..'\n'..
|
||||
'L157='..EgtNumToString( DeltaTabY + DimTabY - Nail13DeltaY, 2)..'\n'..
|
||||
'L158='..EgtNumToString( -DeltaTabX + Nail13DeltaX, 2)..'\n'..
|
||||
'L159='..EgtNumToString( DeltaTabZ - Nail13DeltaZ, 2)..'\n'..
|
||||
'L160='..EgtNumToString( DeltaTabY + DimTabY - Nail14DeltaY, 2)..'\n'..
|
||||
'L161='..EgtNumToString( -DeltaTabX + Nail14DeltaX, 2)..'\n'..
|
||||
'L162='..EgtNumToString( DeltaTabZ - Nail14DeltaZ, 2)..'\n'..
|
||||
'L163='..EgtNumToString( Orig2DeltaY, 2)..'\n'..
|
||||
'L164='..EgtNumToString( -Orig2DeltaX, 2)..'\n'..
|
||||
'L165='..EgtNumToString( Orig2DeltaZ, 2)..'\n'..
|
||||
'L166='..EgtNumToString( Orig3DeltaY, 2)..'\n'..
|
||||
'L167='..EgtNumToString( -Orig3DeltaX, 2)..'\n'..
|
||||
'L168='..EgtNumToString( Orig3DeltaZ, 2)..'\n'..
|
||||
'L169='..EgtNumToString( Orig4DeltaY, 2)..'\n'..
|
||||
'L170='..EgtNumToString( -Orig4DeltaX, 2)..'\n'..
|
||||
'L171='..EgtNumToString( Orig4DeltaZ, 2)..'\n'..
|
||||
'L172='..EgtNumToString( Orig5DeltaY, 2)..'\n'..
|
||||
'L173='..EgtNumToString( -Orig5DeltaX, 2)..'\n'..
|
||||
'L174='..EgtNumToString( Orig5DeltaZ, 2)..'\n'..
|
||||
'L175='..EgtNumToString( Orig6DeltaY, 2)..'\n'..
|
||||
'L176='..EgtNumToString( -Orig6DeltaX, 2)..'\n'..
|
||||
'L177='..EgtNumToString( Orig6DeltaZ, 2)..'\n'..
|
||||
'G114'..' EA'..EgtNumToString( DeltaTabY + DimTabY - SawDeltaY, 2)..' EB'..EgtNumToString( -DeltaTabX + SawDeltaX, 2)..
|
||||
' EC'..EgtNumToString( DeltaTabZ - SawDeltaZ, 2)..' ED'..EgtNumToString( 0, 2)..' EE'..EgtNumToString( SawOffs, 2)..
|
||||
' EF'..EgtNumToString( DeltaTabY + DimTabY, 2)..' EG'..EgtNumToString( -DeltaTabX, 2)..
|
||||
' EH'..EgtNumToString( DeltaTabZ, 2)..' EI'..EgtNumToString( MillOffs, 2)
|
||||
local sOut = 'G114'..' EA'..EgtNumToString( -DeltaTabY, 2)..' EB'..EgtNumToString( DeltaTabX, 2)..
|
||||
' EC'..EgtNumToString( DeltaTabZ, 2)..' ED'..EgtNumToString( MillOffs, 2)..
|
||||
' EE'..EgtNumToString( Nail11DeltaY - DeltaTabY, 2, 2)..' EF'..EgtNumToString( DeltaTabX - Nail11DeltaX, 2)..' EG'..EgtNumToString( DeltaTabZ - Nail11DeltaZ, 2)..
|
||||
' EH'..EgtNumToString( Nail12DeltaY - DeltaTabY, 2, 2)..' EI'..EgtNumToString( DeltaTabX - Nail12DeltaX, 2)..' EL'..EgtNumToString( DeltaTabZ - Nail12DeltaZ, 2)..
|
||||
' EM'..EgtNumToString( Nail13DeltaY - DeltaTabY, 2, 2)..' EN'..EgtNumToString( DeltaTabX - Nail13DeltaX, 2)..' EO'..EgtNumToString( DeltaTabZ - Nail13DeltaZ, 2)..
|
||||
' EP'..EgtNumToString( Nail14DeltaY - DeltaTabY, 2, 2)..' EQ'..EgtNumToString( DeltaTabX - Nail14DeltaX, 2)..' ER'..EgtNumToString( DeltaTabZ - Nail14DeltaZ, 2)
|
||||
|
||||
EmtOutput( sOut)
|
||||
-- Indice lavorazione
|
||||
EMT.CNT = 0
|
||||
@@ -118,7 +98,7 @@ function OnProgramEnd()
|
||||
EmtOutput( 'M05 E80000=1')
|
||||
-- Tipo di scarico
|
||||
if not TEST_USE then
|
||||
EmtOutput( 'M27 E30057=1')
|
||||
EmtOutput( 'M27 E30057=0')
|
||||
end
|
||||
-- Se modalità test, termino il programma
|
||||
if TEST_USE then
|
||||
@@ -156,10 +136,16 @@ function OnDispositionEnd()
|
||||
' E30051='..EgtNumToString( 1000 * b3Raw:getDimX(), 0)..
|
||||
' E30052='..EgtNumToString( 1000 * b3Raw:getDimZ(), 0))
|
||||
EMT.ST = b3Raw:getDimZ()
|
||||
-- Scelta origine
|
||||
EmtOutput( 'M26 E30054='..EgtNumToString( EMT.ORIG, 0))
|
||||
|
||||
-- Comando per gestione carico. Se LOAD90 attivo, bisogna scrivere 4, che significa di attivare il laser posto sul ponte, che cerca lo zero del pannello
|
||||
-- N.B.: si utilizza LOAD90 perchè è un parametro che già leggiamo e che sulle WALL non viene utilizzato
|
||||
local BtlInfoId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or EgtGetCurrMachGroup() or GDB_ID.NULL
|
||||
local nLoad90 = EgtGetInfo( BtlInfoId, 'LOAD90', 'i') or 0
|
||||
if nLoad90 > 0 then nLoad90 = 4 else nLoad90 = 1 end
|
||||
EmtOutput( 'M26 E30054='..EgtNumToString( nLoad90, 0))
|
||||
-- Posizione cuffia
|
||||
local dHCuff = b3Raw:getDimZ() + 32
|
||||
local dHeightSubPiece = EMT.RAWPOS[3] or 0
|
||||
local dHCuff = dHeightSubPiece + b3Raw:getDimZ() + 32
|
||||
EmtOutput( 'E30039=' .. EgtNumToString( dHCuff * 1000, 0))
|
||||
-- Eventuale salto a lavorazione in corso
|
||||
EmtOutput( 'G79 NE80000')
|
||||
@@ -251,11 +237,19 @@ end
|
||||
function OnPathEnd()
|
||||
if IsNailingHead( EMT.HEAD) then
|
||||
local dStep = GetValNotes( EgtGetMachiningParam( MCH_MP.USERNOTES), 'Par', 'd') or 100
|
||||
local dSafeZ = max( EgtGetMachiningParam( MCH_MP.STARTPOS), 10) or 20
|
||||
local dSafeZ = EMT.NAIL_START_L3 + ( max( EgtGetMachiningParam( MCH_MP.STARTPOS), 10) or 20)
|
||||
--local dSafeZ = EgtMdbGetGeneralParam( MCH_GP.SAFEZ)
|
||||
if EMT.HEAD == 'H21' or EMT.HEAD == 'H22' or EMT.HEAD == 'H23' then
|
||||
local nNextOperationId = EgtGetNextActiveOperation( EMT.MCHID)
|
||||
if nNextOperationId then
|
||||
EgtSetCurrMachining( nNextOperationId)
|
||||
EMT.NEXTTOOL = EgtGetMachiningParam( MCH_MP.TOOL)
|
||||
EgtSetCurrMachining( EMT.MCHID)
|
||||
end
|
||||
local sZMax = ''
|
||||
if EMT.TOOL ~= EMT.NEXTTOOL then sZMax = ' EB1' end
|
||||
EmtOutput( 'G124 X'..EmtLenToString( EMT.NAIL_START_L1, 3)..' Y'..EmtLenToString( EMT.NAIL_START_L2, 3)..' Z'..EmtLenToString( EMT.NAIL_START_L3, 3)..
|
||||
' B'..EmtLenToString( EMT.NAIL_END_L1, 3)..' C'..EmtLenToString( EMT.NAIL_END_L2, 3)..' EA'..EmtLenToString( dStep, 3)..' EB1'..
|
||||
' B'..EmtLenToString( EMT.NAIL_END_L1, 3)..' C'..EmtLenToString( EMT.NAIL_END_L2, 3)..' EA'..EmtLenToString( dStep, 3).. sZMax..
|
||||
' W'..EmtLenToString( dSafeZ, 3)..EMT.NAIL_END)
|
||||
else
|
||||
local sExtra = ''
|
||||
@@ -320,7 +314,7 @@ function OnRapid()
|
||||
if EMT.SCRAPFIRST then
|
||||
EMT.SCRAPFIRST = false
|
||||
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
|
||||
local ParkY = min( -( b3Raw:getMin():getX() - 2000), -MinY)
|
||||
local ParkY = ParkYScrapRemove or min( -( b3Raw:getMin():getX() - 2000), MinY)
|
||||
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
|
||||
end
|
||||
-- pre-posizionamento
|
||||
@@ -332,8 +326,8 @@ function OnRapid()
|
||||
local sEE = GetEE()
|
||||
local sEF = GetEF()
|
||||
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
|
||||
local sEL = ' EL' .. EmtLenToString( ChSawLen, 3)
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
|
||||
local sEL = ' EL' .. GetEL()
|
||||
local sER = ' ER' .. EmtLenToString( EMT.TLEN, 3)
|
||||
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
|
||||
EmtOutput( sOut)
|
||||
@@ -344,7 +338,7 @@ function OnRapid()
|
||||
EMT.SCRAPFIRST = false
|
||||
-- pausa per rimozione sfridi
|
||||
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
|
||||
local ParkY = min( -( b3Raw:getMin():getX() - 2000), -MinY)
|
||||
local ParkY = ParkYScrapRemove or min( -( b3Raw:getMin():getX() - 2000), MinY)
|
||||
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
|
||||
end
|
||||
end
|
||||
@@ -352,12 +346,12 @@ function OnRapid()
|
||||
EmtResetPrev()
|
||||
local sOut = 'G101' .. EmtGetAxis( 'L1') .. EmtGetAxis( 'L2') .. EmtGetAxis( 'L3') ..
|
||||
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1')
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H3' or ( EMT.HEAD == 'H14' and not EMT.DOUBLE) then
|
||||
sOut = sOut .. ' U' .. EmtLenToString( MinX2, 3) .. ' W0 V0 A0'
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H12' or EMT.HEAD == 'H3' or ( EMT.HEAD == 'H14' and not EMT.DOUBLE) then
|
||||
sOut = sOut .. ' U' .. EmtLenToString( -MaxX2, 3) .. ' W0 V0 A0'
|
||||
elseif EMT.HEAD == 'H14' then
|
||||
sOut = sOut .. ' U' .. EmtLenToString( EMT.L2 - EMT.DELTA, 3) .. ' W0 V0 A0'
|
||||
elseif EMT.HEAD == 'H2' or EMT.HEAD == 'H21' or EMT.HEAD == 'H22' or EMT.HEAD == 'H23' then
|
||||
sOut = sOut .. ' U' .. EmtLenToString( MaxX1, 3) .. ' W0 V0 A0'
|
||||
sOut = sOut .. ' U' .. EmtLenToString( -MinX1, 3) .. ' W0 V0 A0'
|
||||
else
|
||||
EmtSetLastError( 1211, "Unknown Head : " .. EMT.HEAD)
|
||||
end
|
||||
@@ -366,8 +360,8 @@ function OnRapid()
|
||||
local sEE = GetEE()
|
||||
local sEF = GetEF()
|
||||
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
|
||||
local sEL = ' EL' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TLEN, ChSawLen), 3)
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
|
||||
local sEL = ' EL' .. GetEL()
|
||||
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
|
||||
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
|
||||
EmtOutput( sOut)
|
||||
@@ -394,8 +388,8 @@ function OnRapid()
|
||||
local sEE = GetEE()
|
||||
local sEF = ' EF20000'
|
||||
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
|
||||
local sEL = ' EL' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TLEN, ChSawLen), 3)
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
|
||||
local sEL = ' EL' .. GetEL()
|
||||
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
|
||||
if not IsNailingHead( EMT.HEAD) then
|
||||
EmtOutput( 'G102'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EmtGetAxis('R2')..EmtGetAxis('R1')..EMT.IPLGLSTR..sET..sEU..sEE..sEF..sEM..sES..sEL..sER)
|
||||
@@ -434,17 +428,17 @@ function OnRapid()
|
||||
MyAdjustLinearAxes()
|
||||
EmtAdjustRotaryAxes()
|
||||
-- se fresa o punta su testa 1 raddrizzo l'utensile in risalita
|
||||
if EMT.HEAD == 'H1' and EMT.TCPOS ~= 'T201' and EMT.TCPOS ~= 'T202' and EMT.TCPOS ~= 'T203' then
|
||||
if ( EMT.HEAD == 'H1' or EMT.HEAD == 'H12') and EMT.TCPOS ~= 'T201' and EMT.TCPOS ~= 'T202' and EMT.TCPOS ~= 'T203' then
|
||||
local sOut = 'G101' .. EmtGetAxis( 'L1') .. EmtGetAxis( 'L2') .. EmtGetAxis( 'L3') ..
|
||||
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') ..
|
||||
' U' .. EmtLenToString( MinX2, 3) .. ' W0 V0 A0'
|
||||
' U' .. EmtLenToString( -MaxX2, 3) .. ' W0 V0 A0'
|
||||
local sET = GetET()
|
||||
local sEU = GetEU()
|
||||
local sEE = GetEE()
|
||||
local sEF = GetEF()
|
||||
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
|
||||
local sEL = ' EL' .. EmtLenToString( EMT.TLEN, 3)
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
|
||||
local sEL = ' EL' .. GetEL()
|
||||
local sER = ' ER' .. EmtLenToString( EMT.TDIAM / 2, 3)
|
||||
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
|
||||
EmtOutput( sOut)
|
||||
@@ -452,19 +446,19 @@ function OnRapid()
|
||||
elseif EMT.HEAD == 'H3' then
|
||||
local sOut = 'G101' .. EmtGetAxis( 'L1') .. EmtGetAxis( 'L2') .. EmtGetAxis( 'L3') ..
|
||||
EmtGetAxis( 'R2') .. EmtGetAxis( 'R1') ..
|
||||
' U' .. EmtLenToString( MinX2, 3) .. ' W0 V0 A0'
|
||||
' U' .. EmtLenToString( -MaxX2, 3) .. ' W0 V0 A0'
|
||||
local sET = GetET()
|
||||
local sEU = GetEU()
|
||||
local sEE = GetEE()
|
||||
local sEF = GetEF()
|
||||
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
|
||||
local sEL = ' EL' .. EmtLenToString( EMT.TLEN, 3)
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
|
||||
local sEL = ' EL' .. GetEL()
|
||||
local sER = ' ER' .. EmtLenToString( EMT.TDIAM / 2, 3)
|
||||
sOut = sOut .. sET .. sEU .. sEE .. sEF .. sEM .. sES .. sEL .. sER
|
||||
EmtOutput( sOut)
|
||||
sOut = 'G101' .. ' X' .. EmtLenToString( ( MinX1 + MaxX1) / 2, 3)..
|
||||
' U' .. EmtLenToString( MinX2, 3) .. ' W0 V0 A0'
|
||||
' U' .. EmtLenToString( -MaxX2, 3) .. ' W0 V0 A0'
|
||||
EmtOutput( sOut)
|
||||
end
|
||||
-- dichiarazione risalita a Zmax
|
||||
@@ -512,8 +506,8 @@ function OnLinear()
|
||||
local sEE = GetEE()
|
||||
local sEF = ' EF20000'
|
||||
local sEM = ' EM'..EgtIf( EMT.S > 0, '3', '4')
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S), 0)
|
||||
local sEL = ' EL' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TLEN, ChSawLen), 3)
|
||||
local sES = ' ES'..EgtNumToString( abs( EMT.S) * EgtIf( EMT.HEAD ~= 'H12', 1, 1.65), 0)
|
||||
local sEL = ' EL' .. GetEL()
|
||||
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
|
||||
if not IsNailingHead( EMT.HEAD) then
|
||||
EmtOutput( 'G102'..EmtGetAxis('L1')..EmtGetAxis('L2')..EmtGetAxis('L3')..EmtGetAxis('R2')..EmtGetAxis('R1')..EMT.IPLGLSTR..sET..sEU..sEE..sEF..sEM..sES..sEL..sER)
|
||||
@@ -616,11 +610,11 @@ function MyAdjustLinearAxes()
|
||||
if EMT.REFLOC then
|
||||
local vtDelta = V_NULL()
|
||||
local vtE = V_NULL()
|
||||
if EMT.HEAD == 'H1' then
|
||||
local Len = EMT.TLEN + MillOffs
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H12' then
|
||||
local dAddLen = EgtIf( EMT.HEAD == 'H12', -SawOffsZ, 0)
|
||||
local Len = EMT.TLEN + dAddLen + MillOffs
|
||||
local LenRef = MillOffs
|
||||
local vtTool = EgtGetCalcToolDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
|
||||
vtE = vtTool * Len - Z_AX() * LenRef
|
||||
vtE = Vector3d( EMT.TDIR) * Len - Z_AX() * LenRef
|
||||
elseif EMT.HEAD == 'H2' then
|
||||
vtDelta = -Vector3d( SawDeltaX, SawDeltaY, SawDeltaZ)
|
||||
elseif EMT.HEAD == 'H3' then
|
||||
@@ -667,61 +661,64 @@ function CalcInterpPlane()
|
||||
local ptS = Point3d( xS, yS, zS)
|
||||
-- calcolo per piano generico
|
||||
local vtE
|
||||
if EMT.HEAD == 'H1' then
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H12' then
|
||||
vtE = EgtGetCalcToolDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
|
||||
elseif EMT.HEAD == 'H3' then
|
||||
vtE = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
|
||||
else
|
||||
vtE = Z_AX()
|
||||
end
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H3' then
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H12' or EMT.HEAD == 'H3' then
|
||||
EMT.IPLGLFR = Frame3d( ptS, vtE)
|
||||
else
|
||||
EMT.IPLGLFR = Frame3d( ptS, Y_AX(), -X_AX(), Z_AX())
|
||||
EMT.IPLGLFR = Frame3d( ptS, -Y_AX(), X_AX(), Z_AX())
|
||||
end
|
||||
--EmtOutput( 'IPLGLFR='..tostring(EMT.IPLGLFR))
|
||||
local _, dAngV, dAngO = SphericalFromVector( vtE)
|
||||
local dAngO2 = EmtGetAngO2( EMT.IPLGLFR:getVersZ(), EMT.IPLGLFR:getVersX(), dAngV, dAngO)
|
||||
dAngO = dAngO - 90
|
||||
while dAngO < 0 do
|
||||
dAngO = dAngO + 90
|
||||
while dAngO - GEO.EPS_ANG_SMALL < 0 do
|
||||
dAngO = dAngO + 360
|
||||
end
|
||||
while dAngO + GEO.EPS_ANG_SMALL > 360 do
|
||||
dAngO = dAngO - 360
|
||||
end
|
||||
-- se rotazione solo attorno alla C allora si mette come rotazione finale
|
||||
if abs( dAngV) < GEO.EPS_ANG_SMALL then
|
||||
dAngO2 = dAngO2 + dAngO
|
||||
while dAngO2 >= 360 do
|
||||
dAngO2 = dAngO2 - 360
|
||||
end
|
||||
dAngO = 0
|
||||
dAngO = 0
|
||||
end
|
||||
local xOut = yS - DeltaTabY - DimTabY
|
||||
local yOut = - ( xS - DeltaTabX)
|
||||
|
||||
local xOut = - ( yS - DeltaTabY)
|
||||
local yOut = xS - DeltaTabX - DimTabX
|
||||
local zOut = zS
|
||||
if EMT.ORIG == 2 then
|
||||
xOut = yS - DeltaTabY
|
||||
yOut = - ( xS - DeltaTabX)
|
||||
xOut = - ( yS - DeltaTabY - DimTabY)
|
||||
yOut = xS - DeltaTabX - DimTabX
|
||||
elseif EMT.ORIG == 3 then
|
||||
xOut = yS - DeltaTabY - DimTabY
|
||||
yOut = - ( xS - DeltaTabX - DimTabX)
|
||||
xOut = - ( yS - DeltaTabY)
|
||||
yOut = xS - DeltaTabX
|
||||
elseif EMT.ORIG == 4 then
|
||||
xOut = yS - DeltaTabY
|
||||
yOut = - ( xS - DeltaTabX - DimTabX)
|
||||
elseif EMT.ORIG == 5 then
|
||||
xOut = yS - DeltaTabY - DimTabY
|
||||
yOut = - ( xS - DeltaTabX - Orig5DeltaX)
|
||||
elseif EMT.ORIG == 6 then
|
||||
xOut = yS - DeltaTabY
|
||||
yOut = - ( xS - DeltaTabX - Orig5DeltaX)
|
||||
xOut = - ( yS - DeltaTabY - DimTabY)
|
||||
yOut = xS - DeltaTabX
|
||||
end
|
||||
|
||||
if IsNailingHead( EMT.HEAD) then
|
||||
EMT.IPLGLSTR = ' EX'..EmtLenToString( xOut)..' EY'..EmtLenToString( yOut)..' EZ'..EmtLenToString( zOut)
|
||||
else
|
||||
EMT.IPLGLSTR = ' EX'..EmtLenToString( xOut)..' EY'..EmtLenToString( yOut)..' EZ'..EmtLenToString( zOut)..
|
||||
' EA0'..' EB'..EgtNumToString( dAngV)..' EC'..EgtNumToString( dAngO)..' ED'..EgtNumToString( dAngO2)
|
||||
end
|
||||
EMT.IPLGLSTR = ' EX'..EmtLenToString( xOut)..' EY'..EmtLenToString( yOut)..' EZ'..EmtLenToString( zOut)..
|
||||
' EA0'..' EB'..EgtNumToString( dAngV)..' EC'..EgtNumToString( dAngO)..' ED'..EgtNumToString( dAngO2)
|
||||
EMT.IPLGL = true
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function GetET()
|
||||
local sET
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H3' then
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H12' or EMT.HEAD == 'H3' then
|
||||
sET = ' ET2'
|
||||
elseif EMT.HEAD == 'H2' then
|
||||
sET = ' ET1'
|
||||
@@ -738,7 +735,7 @@ end
|
||||
---------------------------------------------------------------------
|
||||
function GetEU()
|
||||
local sEU
|
||||
if EMT.HEAD == 'H1' then
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H12' then
|
||||
sEU = ' EU'..string.sub( EMT.TCPOS, 2)
|
||||
elseif EMT.HEAD == 'H2' then
|
||||
sEU = ' EU0'
|
||||
@@ -770,6 +767,18 @@ function GetEF()
|
||||
return ' EF60000'
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function GetEL()
|
||||
local dToolLen = EMT.TLEN
|
||||
if EMT.HEAD == 'H12' then
|
||||
dToolLen = dToolLen - SawOffsZ
|
||||
elseif EMT.HEAD == 'H3' then
|
||||
dToolLen = ChSawLen
|
||||
end
|
||||
return EgtNumToString( dToolLen, 3)
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function EmitCount()
|
||||
EMT.CNT = EMT.CNT + 1
|
||||
|
||||
+16
-3
@@ -228,7 +228,7 @@ function OnSimulToolSelect()
|
||||
EMT.TOOLTYPE = EgtTdbGetCurrToolParam( MCH_TP.TYPE)
|
||||
EMT.TOOLTOTLEN = EgtTdbGetCurrToolParam( MCH_TP.TOTLEN)
|
||||
-- se non lama su rinvio o graffettatrici, carico utensile
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H3' then
|
||||
if EMT.HEAD == 'H1' or EMT.HEAD == 'H12' or EMT.HEAD == 'H3' then
|
||||
-- se sega a catena, imposto subito angolo scelto per asse virtuale A
|
||||
if EMT.HEAD == 'H3' then
|
||||
-- recupero la lavorazione successiva
|
||||
@@ -306,8 +306,15 @@ function OnSimulToolDeselect()
|
||||
EMT.TOOL_1 = nil
|
||||
EMT.TCPOS_1 = nil
|
||||
end
|
||||
-- se testa attuale è lama devo depositarla
|
||||
if EMT.HEAD == 'H12' then
|
||||
ShowToolInTcPos( EMT.TCPOS_1, true)
|
||||
EgtUnloadTool( 'H12', 1)
|
||||
EMT.TOOL_1 = nil
|
||||
EMT.TCPOS_1 = nil
|
||||
end
|
||||
-- deposito utensile se non lama su rinvio o graffettatrici
|
||||
if ( EMT.NEXTHEAD == 'H1' or EMT.NEXTHEAD == 'H3') and ( EMT.HEAD == 'H1' or EMT.HEAD == 'H3') then
|
||||
if ( EMT.NEXTHEAD == 'H1' or EMT.NEXTHEAD == 'H12' or EMT.NEXTHEAD == 'H3') and ( EMT.HEAD == 'H1' or EMT.HEAD == 'H12' or EMT.HEAD == 'H3') then
|
||||
if EMT.NEXTTOOL ~= EMT.TOOL_1 then
|
||||
EgtOutText( 'Tool change in progress...')
|
||||
-- simulo movimento
|
||||
@@ -647,11 +654,17 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function ShowToolInTcPos( sTcPos, bShow)
|
||||
-- recupero identificativo della posizione sul TC
|
||||
local TcPosId = EgtGetTcPosId( sTcPos or '')
|
||||
if not TcPosId then return end
|
||||
-- recupero il gruppo dell'utensile
|
||||
local TcExitId = EgtGetFirstNameInGroup( EgtGetTcPosId( sTcPos or '') or GDB_ID.NULL, 'T1')
|
||||
local TcExitId = EgtGetFirstNameInGroup( TcPosId or GDB_ID.NULL, 'T1')
|
||||
if not TcExitId then return end
|
||||
-- imposto lo stato di visualizzazione
|
||||
EgtSetStatus( TcExitId, EgtIf( bShow, GDB_ST.ON, GDB_ST.OFF))
|
||||
-- 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
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
+9
-1
@@ -47,8 +47,16 @@ function OnSpecialMoveZup()
|
||||
EMC.R2 = R2New
|
||||
EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2, EMC.R3)
|
||||
end
|
||||
-- Se altrimenti Lama normale
|
||||
elseif EMC.HEAD == 'H12' then
|
||||
if EMC.L3 > -300 then
|
||||
EMC.R1 = EgtGetAxisHomePos( 'C1')
|
||||
EMC.R2 = EgtGetAxisHomePos( 'B1')
|
||||
EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2)
|
||||
EMC.MODIF = true
|
||||
end
|
||||
-- se altre teste
|
||||
elseif EMC.HEAD == 'H14' or EMC.HEAD == 'H2' or EMC.HEAD == 'H21' or EMC.HEAD == 'H22' or EMC.HEAD == 'H23' then
|
||||
elseif EMC.HEAD == 'H14' or EMC.HEAD == 'H12' or EMC.HEAD == 'H21' or EMC.HEAD == 'H22' or EMC.HEAD == 'H23' then
|
||||
-- non è necessaria una gestione speciale
|
||||
-- altrimenti errore
|
||||
else
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,50 @@
|
||||
; Commento per evitare BOM con UTF-8
|
||||
;Index = Type, Description, Default Value
|
||||
; Type : b=boolean, d=double, l=lenght, s=string
|
||||
|
||||
[Drilling]
|
||||
|
||||
[Sawing]
|
||||
|
||||
[Milling]
|
||||
0=d,MaxElev,0
|
||||
1=d,OutRaw,0
|
||||
2=d,SideElev,0
|
||||
3=d,TrimExt,0
|
||||
4=sr,VtFaceUse,0,0,0
|
||||
|
||||
[Pocketing]
|
||||
0=d,MaxElev,0
|
||||
1=b,Open,0
|
||||
2=d,OpenMinSave,0
|
||||
3=d,OpenOutRaw,0
|
||||
4=d,MaxOptSize,0
|
||||
|
||||
[Mortising]
|
||||
0=d,MaxElev,0
|
||||
|
||||
[Chiseling]
|
||||
|
||||
[SawRoughing]
|
||||
|
||||
[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]
|
||||
|
||||
[SurfFinishing]
|
||||
0=b,SkipMaxDown,1
|
||||
+1
-1
@@ -34,7 +34,7 @@ local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H1", Group = "G1"},
|
||||
{Pos = "Pos4", TcPos = "T4", Head = "H1", 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 = "Pos7", TcPos = "T8", Head = "H12", Group = "G1"},
|
||||
{Pos = "Pos8", TcPos = "T11", Head = "H21", Group = "G2"},
|
||||
{Pos = "Pos9", TcPos = "T12", Head = "H22", Group = "G2"},
|
||||
{Pos = "Pos10", TcPos = "T13", Head = "H23", Group = "G2"}}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
; Commento per evitare BOM con UTF-8
|
||||
; Index, Type, Description, Value
|
||||
; Index = 0,1,..,n
|
||||
; Type : d=double, l=lenght, s=string, b=boolean, dr=double recalc, sr= string recalc, lr=lenght recalc, br=boolean recalc, th=toolholder
|
||||
; Description : STEP, SIDESTEP, ...
|
||||
|
||||
[DRILL_STD]
|
||||
0=th,TH,
|
||||
1=d,STEP
|
||||
2=s,DOUBLE
|
||||
|
||||
[SAW_STD]
|
||||
0=th,TH,
|
||||
1=d,STEP
|
||||
2=d,SIDESTEP
|
||||
3=b,LONGCUT
|
||||
|
||||
[SAW_FLAT]
|
||||
0=th,TH,
|
||||
1=d,STEP
|
||||
2=d,SIDESTEP
|
||||
3=b,LONGCUT
|
||||
|
||||
[MILL_STD]
|
||||
0=th,TH,
|
||||
1=d,STEP
|
||||
2=d,SIDESTEP
|
||||
3=d,SIDEDEPTH
|
||||
4=s,DOUBLE
|
||||
|
||||
[MILL_NOTIP]
|
||||
0=th,TH,
|
||||
1=d,STEP
|
||||
2=d,SIDESTEP
|
||||
3=d,SIDEDEPTH
|
||||
4=s,DOUBLE
|
||||
|
||||
[MORTISE_STD]
|
||||
0=b,MORTISE
|
||||
1=d,STEP
|
||||
2=d,SIDESTEP
|
||||
+12
-104
@@ -28,12 +28,12 @@ local WallData = {
|
||||
MILL_OVERLAP = 5, -- sovrapposizione tra due mezze fresature
|
||||
MAX_CLEAN_CRN30 = 60, -- massimo spessore per pulitura angolo con fresa 30deg
|
||||
MAX_CLEAN_CRN60 = 150, -- massimo spessore per pulitura angolo con fresa 60deg
|
||||
MILL_MAX_DEPTH_AS_MAT = true, -- massimo affondamento frese uguale ad altezza tagliente (max materiale)
|
||||
T14_T12_DOUBLE = true, -- abilita chiodatura in doppio con teste T14 e T12
|
||||
MILL_MAX_DEPTH_AS_MAT = false, -- massimo affondamento frese uguale ad altezza tagliente (max materiale)
|
||||
RAWCOL = { 255, 160, 32, 30}, -- colore del grezzo
|
||||
SIMUL_VIEW_DIR = 3, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
|
||||
ORIG_CORNER = 'TL', -- posizione origine (TL,BL,TR,BR,TM,BM)
|
||||
MID_REF = 27000, -- posizione X dell'origine intermedia
|
||||
DEFAULT_RAW_NO_EXTRA_WIDTH = true,
|
||||
SIMUL_VIEW_DIR = 4, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
|
||||
ORIG_CORNER = 'BL', -- posizione origine (TL,BL,TR,BR,TM,BM)
|
||||
RAWPART_ROT = 180,
|
||||
USE_POSY = true -- utilizzare POSY di BTL (spostamento sullo spessore per pareti a layer)
|
||||
}
|
||||
|
||||
@@ -57,117 +57,25 @@ if EgtExistsFile( sData) then
|
||||
WallData.MAX_WIDTH = Machine.Trave.XMAX or BeamData.MAX_WIDTH
|
||||
WallData.MAX_HEIGHT = Machine.Trave.ZMAX or BeamData.MAX_HEIGHT
|
||||
end
|
||||
if Machine.Offsets then
|
||||
WallData.MID_REF = -Machine.Offsets.OFFSET_ZERO5_Y
|
||||
WallData.T14_T12_DOUBLE = ( Machine.Offsets.T14_T12_DOUBLE == 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function GetOrigCorner( RefPos)
|
||||
if RefPos == 1 then
|
||||
return 'TL'
|
||||
elseif RefPos == 2 then
|
||||
return 'BL'
|
||||
elseif RefPos == 3 then
|
||||
return 'TR'
|
||||
elseif RefPos == 4 then
|
||||
return 'BR'
|
||||
elseif RefPos == 5 then
|
||||
return 'TM'
|
||||
elseif RefPos == 6 then
|
||||
return 'BM'
|
||||
else
|
||||
elseif RefPos == 2 then
|
||||
return 'TL'
|
||||
elseif RefPos == 3 then
|
||||
return 'BL'
|
||||
elseif RefPos == 4 then
|
||||
return 'TL'
|
||||
else
|
||||
return 'BL'
|
||||
end
|
||||
end
|
||||
WallData.GetOrigCorner = GetOrigCorner
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function VerifyFeatureForDouble( Proc)
|
||||
-- deve essere attiva
|
||||
if Proc.Flg == 0 then return 0 end
|
||||
-- non deve essere già associata
|
||||
if Proc.Double then return 0 end
|
||||
-- deve essere contorno libero
|
||||
if not ( ( Proc.Grp == 0 or Proc.Grp == 3 or Proc.Grp == 4) and ( Proc.Prc == 250)) then return 0 end
|
||||
-- non deve essere una svuotatura
|
||||
if EgtGetInfo( Proc.Id, 'PCKT', 'i') == 1 then return 0 end
|
||||
-- deve richiedere utensili opportuni
|
||||
local nTool = EgtGetInfo( Proc.Id, 'CNT_DATA', 'i')
|
||||
if nTool ~= 12 and nTool ~= 14 then return 0 end
|
||||
-- deve avere una curva ausiliaria associata
|
||||
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
|
||||
if not AuxId then return 0 end
|
||||
AuxId = AuxId + Proc.Id
|
||||
-- questa curva deve essere una retta orientata come gli assi X o Y
|
||||
if Proc.Box:getDimY() > 1 and Proc.Box:getDimX() > 1 then return 0 end
|
||||
local ptS = EgtSP( AuxId, GDB_ID.ROOT)
|
||||
local ptE = EgtEP( AuxId, GDB_ID.ROOT)
|
||||
-- va bene se diretta come l'asse X
|
||||
if abs( ptS:getY() - ptE:getY()) < 1 then
|
||||
if ptS:getX() <ptE:getX() then
|
||||
return 1, ptS, ptE
|
||||
else
|
||||
return 1, ptE, ptS
|
||||
end
|
||||
end
|
||||
-- va bene se diretta come l'asse Y
|
||||
if abs( ptS:getX() - ptE:getX()) < 1 then
|
||||
return 2, ptS, ptE
|
||||
end
|
||||
-- non va bene
|
||||
return 0
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function FindFeaturesInDouble( vProc, b3Raw)
|
||||
if not WallData.T14_T12_DOUBLE then return end
|
||||
local MIN_INTERAX = 1350
|
||||
local MIN_EXTRA_Y = 400
|
||||
for i = 1, #vProc do
|
||||
local Proc = vProc[i]
|
||||
local nType, ptS, ptE = VerifyFeatureForDouble( Proc)
|
||||
-- se linea lungo X
|
||||
if nType == 1 then
|
||||
for j = i + 1, #vProc do
|
||||
local OtherProc = vProc[j]
|
||||
local nOtherType, ptOtherS, ptOtherE = VerifyFeatureForDouble( OtherProc)
|
||||
if nOtherType == 1 and abs( ptS:getX() - ptOtherS:getX()) < 1 and abs( ptE:getX() - ptOtherE:getX()) < 1 then
|
||||
-- verifico l'interasse come distanza tra i due inizi
|
||||
local dDeltaY = ptS:getY() - ptOtherS:getY()
|
||||
if dDeltaY >= MIN_INTERAX then
|
||||
Proc.Double = 1
|
||||
Proc.Delta = dDeltaY
|
||||
EgtSetInfo( Proc.Id, 'CNT_DATA', '14')
|
||||
OtherProc.Flg = 0
|
||||
OtherProc.Double = -1
|
||||
break
|
||||
elseif dDeltaY <= -MIN_INTERAX then
|
||||
OtherProc.Double = 1
|
||||
OtherProc.Delta = -dDeltaY
|
||||
EgtSetInfo( OtherProc.Id, 'CNT_DATA', '14')
|
||||
Proc.Flg = 0
|
||||
Proc.Double = -1
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- se altrimenti linea lungo Y
|
||||
elseif nType == 2 then
|
||||
local dLen = ptS:getY() - ptE:getY()
|
||||
if abs( dLen) >= MIN_INTERAX + MIN_EXTRA_Y then
|
||||
Proc.Double = 2
|
||||
Proc.Delta = max( abs( dLen) / 2, MIN_INTERAX) * EgtIf( dLen > 0, 1, -1)
|
||||
Proc.DblAcc = abs( dLen) - abs( Proc.Delta)
|
||||
EgtSetInfo( Proc.Id, 'CNT_DATA', '14')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
WallData.FindFeaturesInDouble = FindFeaturesInDouble
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function GetSawHeadSide( dSpeed, sHead)
|
||||
if sHead == 'H2' then
|
||||
|
||||
Reference in New Issue
Block a user