- Gli assi dei bancaletti si chiamano ora con "PL"
- Aggiunto descrizione cambio utensile in MLDE
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
/Tools
|
||||
/Machinings
|
||||
/SetUp
|
||||
/Beam/Ts3Data.bak
|
||||
/Beam/CutData.lua
|
||||
/Beam/DrillData.lua
|
||||
/Beam/MillingData.lua
|
||||
/Beam/PocketingData.lua
|
||||
/Beam/SawingData.lua
|
||||
/Beam/Ts3Data.lua
|
||||
/Wall/Ts3Data.bak
|
||||
/Wall/CutData.lua
|
||||
/Wall/DrillData.lua
|
||||
/Wall/MillingData.lua
|
||||
/Wall/PocketingData.lua
|
||||
/Wall/SawingData.lua
|
||||
/Wall/Ts3Data.lua
|
||||
@@ -30,9 +30,9 @@ function OnProgramStart()
|
||||
-- acquisizione nome attrezzaggio
|
||||
local sSetupName = EgtGetInfo( EgtGetCurrSetup() or GDB_ID.NULL, 'Name') or ' '
|
||||
-- Intestazione processo 1
|
||||
EmtOutput( EgtIf( EMT.INFO, '; '..EMT.INFO, ';Program Start'))
|
||||
EmtOutput( ';'.. MLE_INFO)
|
||||
EmtOutput( ';'.. 'ToolingSetUp:'..sSetupName)
|
||||
EmtOutput( EgtIf( EMT.INFO, '( '..EMT.INFO, ';Program Start'))
|
||||
EmtOutput( '( '.. MLE_INFO)
|
||||
EmtOutput( '( '.. 'ToolingSetUp:'..sSetupName)
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
+265
-63
@@ -10,9 +10,50 @@ NumericalControl = 'TECNOS'
|
||||
TabX = 362.0064
|
||||
TabY = -1734.5386
|
||||
TabZ = -456.0497
|
||||
-- DATI TESTE --
|
||||
-- DATI BANCALETTI --
|
||||
-- DATI SOTTOPEZZI --
|
||||
|
||||
----------------------------------------------------
|
||||
-------------------- CORSE ASSI --------------------
|
||||
----------------------------------------------------
|
||||
XAxisStroke = {-9999, 9999}
|
||||
YAxisStroke = {-9999, 9999}
|
||||
ZAxisStroke = {-9999, 9999}
|
||||
CAxisStroke = {-270, 270}
|
||||
AAxisStroke = {-110, 110}
|
||||
|
||||
----------------------------------------------------
|
||||
-------------------- DATI TESTE --------------------
|
||||
----------------------------------------------------
|
||||
-- testa 5 assi
|
||||
H11Pos = Vector3d( 0, 0, 0)
|
||||
-- gruppo forare
|
||||
H21Pos = H11Pos + Vector3d( -114.005, 522.001, 390.95)
|
||||
-- teste gruppo forare
|
||||
H2101 = H21Pos + Vector3d( 0, 0, 0)
|
||||
H2102 = H21Pos + Vector3d( 32, 0, 0)
|
||||
H2103 = H21Pos + Vector3d( 64, 0, 0)
|
||||
H2104 = H21Pos + Vector3d( 96, 0, 0)
|
||||
H2105 = H21Pos + Vector3d( 128, 0, 0)
|
||||
H2106 = H21Pos + Vector3d( 160, 0, 0)
|
||||
H2107 = H21Pos + Vector3d( 192, 0, 0)
|
||||
H2108 = H21Pos + Vector3d( 0, 64, 0)
|
||||
H2109 = H21Pos + Vector3d( 0, 96, 0)
|
||||
H2110 = H21Pos + Vector3d( 0, 128, 0)
|
||||
H2111 = H21Pos + Vector3d( 0, 160, 0)
|
||||
H2131 = H21Pos + Vector3d( -32, 32, -51.2)
|
||||
H2133 = H21Pos + Vector3d( -32, -32, -51.2)
|
||||
H2135 = H21Pos + Vector3d( 224, 64, -51.2)
|
||||
H2136 = H21Pos + Vector3d( 224, 96, -51.2)
|
||||
H2137 = H21Pos + Vector3d( 160, 64, -51.2)
|
||||
H2138 = H21Pos + Vector3d( 160, 96, -51.2)
|
||||
-- lametta su gruppo a forare
|
||||
H2150 = H21Pos + Vector3d( 192, 192.5, -8.2)
|
||||
----------------------------------------------------
|
||||
----------------- DATI BANCALETTI ------------------
|
||||
----------------------------------------------------
|
||||
|
||||
----------------------------------------------------
|
||||
----------------- DATI SOTTOPEZZI-------------------
|
||||
----------------------------------------------------
|
||||
|
||||
----------------------------------------------------------------------
|
||||
EmtGeneral {
|
||||
@@ -34,7 +75,7 @@ EmtAxis {
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {-3600, 0},
|
||||
Stroke = XAxisStroke,
|
||||
Home = 0,
|
||||
Geo = 'X_AXIS/GEO',
|
||||
Aux = { 'X_AXIS/SOLID', 'X_AXIS/TCR'}}
|
||||
@@ -45,7 +86,7 @@ EmtAxis {
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = Y_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {-1660, 70},
|
||||
Stroke = YAxisStroke,
|
||||
Home = 0,
|
||||
Geo = 'Y_AXIS/GEO',
|
||||
Aux = 'Y_AXIS/SOLID'}
|
||||
@@ -56,7 +97,7 @@ EmtAxis {
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = Z_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {-850.9, 200},
|
||||
Stroke = ZAxisStroke,
|
||||
Home = 0,
|
||||
Geo = 'Z1_AXIS/GEO',
|
||||
Aux = 'Z1_AXIS/SOLID'}
|
||||
@@ -67,7 +108,7 @@ EmtAxis {
|
||||
Type = MCH_AT.ROTARY,
|
||||
Dir = Z_AX(),
|
||||
Pos = Point3d(0, 0, 379),
|
||||
Stroke = {-321, 321},
|
||||
Stroke = CAxisStroke,
|
||||
Home = 0,
|
||||
Geo = 'C_AXIS/GEO',
|
||||
Aux = 'C_AXIS/SOLID'}
|
||||
@@ -78,7 +119,7 @@ EmtAxis {
|
||||
Type = MCH_AT.ROTARY,
|
||||
Dir = -X_AX(),
|
||||
Pos = Point3d( -86.5, 0, 135),
|
||||
Stroke = {-110, 110},
|
||||
Stroke = AAxisStroke,
|
||||
Home = 0,
|
||||
Geo = 'A_AXIS/GEO',
|
||||
Aux = 'A_AXIS/SOLID'}
|
||||
@@ -87,7 +128,7 @@ EmtHead {
|
||||
Parent = 'A',
|
||||
HSet = 'H11',
|
||||
Type = MCH_HT.STD,
|
||||
Pos = Point3d( 0, 0, 0),
|
||||
Pos = H11Pos,
|
||||
TDir = Z_AX(),
|
||||
ADir = -X_AX(),
|
||||
SolCh = MCH_SCC.ADIR_ZP,
|
||||
@@ -99,11 +140,172 @@ EmtAxis {
|
||||
Token = 'Z',
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = Z_AX(),
|
||||
Pos = Point3d(0,0,0),
|
||||
Pos = Point3d( 0, 0, 0),
|
||||
Stroke = {-850.9, 200},
|
||||
Home = 0,
|
||||
Geo = 'Z2_AXIS/GEO',
|
||||
Aux = 'Z2_AXIS/SOLID'}
|
||||
EmtHead {
|
||||
Name = 'H21',
|
||||
Parent = 'Z2',
|
||||
HSet = 'H21',
|
||||
Type = MCH_HT.MULTI,
|
||||
ExitNbr = 18,
|
||||
Pos1 = H2101,
|
||||
TDir1 = Z_AX(),
|
||||
Pos2 = H2102,
|
||||
TDir2 = Z_AX(),
|
||||
Pos3 = H2103,
|
||||
TDir3 = Z_AX(),
|
||||
Pos4 = H2104,
|
||||
TDir4 = Z_AX(),
|
||||
Pos5 = H2105,
|
||||
TDir5 = Z_AX(),
|
||||
Pos6 = H2106,
|
||||
TDir6 = Z_AX(),
|
||||
Pos7 = H2107,
|
||||
TDir7 = Z_AX(),
|
||||
Pos8 = H2108,
|
||||
TDir8 = Z_AX(),
|
||||
Pos9 = H2109,
|
||||
TDir9 = Z_AX(),
|
||||
Pos10 = H2110,
|
||||
TDir10 = Z_AX(),
|
||||
Pos11 = H2111,
|
||||
TDir11 = Z_AX(),
|
||||
Pos12 = H2131,
|
||||
TDir12 = -Y_AX(),
|
||||
Pos13 = H2133,
|
||||
TDir13 = Y_AX(),
|
||||
Pos14 = H2135,
|
||||
TDir14 = -X_AX(),
|
||||
Pos15 = H2136,
|
||||
TDir15 = -X_AX(),
|
||||
Pos16 = H2137,
|
||||
TDir16 = X_AX(),
|
||||
Pos17 = H2138,
|
||||
TDir17 = X_AX(),
|
||||
Pos18 = H2150,
|
||||
TDir18 = -Y_AX(),
|
||||
Geo = 'H21_HEAD/GEO',
|
||||
Aux = {'H21_HEAD/SOLID', 'H21_HEAD/SOL_T1', 'H21_HEAD/SOL_T2', 'H21_HEAD/SOL_T3', 'H21_HEAD/SOL_T4', 'H21_HEAD/SOL_T5',
|
||||
'H21_HEAD/SOL_T6', 'H21_HEAD/SOL_T7', 'H21_HEAD/SOL_T8', 'H21_HEAD/SOL_T9', 'H21_HEAD/SOL_T10', 'H21_HEAD/SOL_T11',
|
||||
'H21_HEAD/SOL_T31', 'H21_HEAD/SOL_T35', 'H21_HEAD/SOL_T36', 'H21_HEAD/SOL_T50'}}
|
||||
|
||||
-- Tool Changer
|
||||
local ptTcR = Point3d( 75, 434.95, -410)
|
||||
EmtTcPos {
|
||||
Name = 'T1',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, 22.5 * 4),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T1'}
|
||||
EmtTcPos {
|
||||
Name = 'T2',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, 22.5 * 3),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T2'}
|
||||
EmtTcPos {
|
||||
Name = 'T3',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, 22.5 * 2),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T3'}
|
||||
EmtTcPos {
|
||||
Name = 'T4',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, 22.5 * 1),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T4'}
|
||||
EmtTcPos {
|
||||
Name = 'T5',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, 0),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T5'}
|
||||
EmtTcPos {
|
||||
Name = 'T6',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 1),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T6'}
|
||||
EmtTcPos {
|
||||
Name = 'T7',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 2),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T7'}
|
||||
EmtTcPos {
|
||||
Name = 'T8',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 3),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T8'}
|
||||
EmtTcPos {
|
||||
Name = 'T9',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 4),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T9'}
|
||||
EmtTcPos {
|
||||
Name = 'T10',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 5),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T10'}
|
||||
EmtTcPos {
|
||||
Name = 'T11',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 6),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T11'}
|
||||
EmtTcPos {
|
||||
Name = 'T12',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 7),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T12'}
|
||||
EmtTcPos {
|
||||
Name = 'T13',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 8),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T13'}
|
||||
EmtTcPos {
|
||||
Name = 'T14',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 9),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T14'}
|
||||
EmtTcPos {
|
||||
Name = 'T15',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 10),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T15'}
|
||||
EmtTcPos {
|
||||
Name = 'T16',
|
||||
Parent = 'X',
|
||||
Pos = ptTcR + VectorFromSpherical( 266, 90, -22.5 * 11),
|
||||
TDir = Z_AX(),
|
||||
ADir = X_AX(),
|
||||
Geo = 'X_AXIS/T16'}
|
||||
|
||||
-- Tavola
|
||||
EmtTable {
|
||||
@@ -114,95 +316,95 @@ EmtTable {
|
||||
Geo = 'TABLE/GEO',
|
||||
Aux = 'TABLE/SOLID'}
|
||||
-- bancaletti
|
||||
local T1Id = EmtAxis {
|
||||
Name = 'T1',
|
||||
local PL1Id = EmtAxis {
|
||||
Name = 'PL1',
|
||||
Parent = 'Tab',
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {0, 2000},
|
||||
Home = 0,
|
||||
Geo = 'T1_AXIS/GEO',
|
||||
Aux = 'T1_AXIS/SOLID'}
|
||||
EgtSetInfo( T1Id, 'MDist', 10)
|
||||
EgtSetInfo( T1Id, 'PDist', 130)
|
||||
EgtSetInfo( T1Id, 'Next', 'T2')
|
||||
EgtMove( T1Id, Vector3d( 0, 0, 0), GDB_RT.GLOB)
|
||||
local T2Id = EmtAxis {
|
||||
Name = 'T2',
|
||||
Geo = 'PL1_AXIS/GEO',
|
||||
Aux = 'PL1_AXIS/SOLID'}
|
||||
EgtSetInfo( PL1Id, 'MDist', 10)
|
||||
EgtSetInfo( PL1Id, 'PDist', 130)
|
||||
EgtSetInfo( PL1Id, 'Next', 'PL2')
|
||||
EgtMove( PL1Id, Vector3d( 0, 0, 0), GDB_RT.GLOB)
|
||||
local PL2Id = EmtAxis {
|
||||
Name = 'PL2',
|
||||
Parent = 'Tab',
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {200, 2100},
|
||||
Home = 200,
|
||||
Geo = 'T2_AXIS/GEO',
|
||||
Aux = 'T2_AXIS/SOLID'}
|
||||
EgtSetInfo( T2Id, 'MDist', 10)
|
||||
EgtSetInfo( T2Id, 'PDist', 130)
|
||||
EgtSetInfo( T2Id, 'Prev', 'T1')
|
||||
EgtSetInfo( T2Id, 'Next', 'T3')
|
||||
EgtMove( T2Id, Vector3d( -200, 0, 0), GDB_RT.GLOB)
|
||||
local T3Id = EmtAxis {
|
||||
Name = 'T3',
|
||||
Geo = 'PL2_AXIS/GEO',
|
||||
Aux = 'PL2_AXIS/SOLID'}
|
||||
EgtSetInfo( PL2Id, 'MDist', 10)
|
||||
EgtSetInfo( PL2Id, 'PDist', 130)
|
||||
EgtSetInfo( PL2Id, 'Prev', 'PL1')
|
||||
EgtSetInfo( PL2Id, 'Next', 'PL3')
|
||||
EgtMove( PL2Id, Vector3d( -200, 0, 0), GDB_RT.GLOB)
|
||||
local PL3Id = EmtAxis {
|
||||
Name = 'PL3',
|
||||
Parent = 'Tab',
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {400, 2200},
|
||||
Home = 400,
|
||||
Geo = 'T3_AXIS/GEO',
|
||||
Aux = 'T3_AXIS/SOLID'}
|
||||
EgtSetInfo( T3Id, 'MDist', 10)
|
||||
EgtSetInfo( T3Id, 'PDist', 130)
|
||||
EgtSetInfo( T3Id, 'Prev', 'T2')
|
||||
EgtSetInfo( T3Id, 'Next', 'T4')
|
||||
EgtMove( T3Id, Vector3d( -400, 0, 0), GDB_RT.GLOB)
|
||||
local T4Id = EmtAxis {
|
||||
Name = 'T4',
|
||||
Geo = 'PL3_AXIS/GEO',
|
||||
Aux = 'PL3_AXIS/SOLID'}
|
||||
EgtSetInfo( PL3Id, 'MDist', 10)
|
||||
EgtSetInfo( PL3Id, 'PDist', 130)
|
||||
EgtSetInfo( PL3Id, 'Prev', 'PL2')
|
||||
EgtSetInfo( PL3Id, 'Next', 'PL4')
|
||||
EgtMove( PL3Id, Vector3d( -400, 0, 0), GDB_RT.GLOB)
|
||||
local PL4Id = EmtAxis {
|
||||
Name = 'PL4',
|
||||
Parent = 'Tab',
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {800, 2600},
|
||||
Home = 2600,
|
||||
Geo = 'T4_AXIS/GEO',
|
||||
Aux = 'T4_AXIS/SOLID'}
|
||||
EgtSetInfo( T4Id, 'MDist', 10)
|
||||
EgtSetInfo( T4Id, 'PDist', 130)
|
||||
EgtSetInfo( T4Id, 'Prev', 'T3')
|
||||
EgtSetInfo( T4Id, 'Next', 'T5')
|
||||
EgtMove( T4Id, Vector3d( -2600, 0, 0), GDB_RT.GLOB)
|
||||
local T5Id = EmtAxis {
|
||||
Name = 'T5',
|
||||
Geo = 'PL4_AXIS/GEO',
|
||||
Aux = 'PL4_AXIS/SOLID'}
|
||||
EgtSetInfo( PL4Id, 'MDist', 10)
|
||||
EgtSetInfo( PL4Id, 'PDist', 130)
|
||||
EgtSetInfo( PL4Id, 'Prev', 'PL3')
|
||||
EgtSetInfo( PL4Id, 'Next', 'PL5')
|
||||
EgtMove( PL4Id, Vector3d( -2600, 0, 0), GDB_RT.GLOB)
|
||||
local PL5Id = EmtAxis {
|
||||
Name = 'PL5',
|
||||
Parent = 'Tab',
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {900, 2800},
|
||||
Home = 2800,
|
||||
Geo = 'T5_AXIS/GEO',
|
||||
Aux = 'T5_AXIS/SOLID'}
|
||||
EgtSetInfo( T5Id, 'MDist', 10)
|
||||
EgtSetInfo( T5Id, 'PDist', 130)
|
||||
EgtSetInfo( T5Id, 'Prev', 'T4')
|
||||
EgtSetInfo( T5Id, 'Next', 'T6')
|
||||
EgtMove( T5Id, Vector3d( -2800, 0, 0), GDB_RT.GLOB)
|
||||
local T6Id = EmtAxis {
|
||||
Name = 'T6',
|
||||
Geo = 'PL5_AXIS/GEO',
|
||||
Aux = 'PL5_AXIS/SOLID'}
|
||||
EgtSetInfo( PL5Id, 'MDist', 10)
|
||||
EgtSetInfo( PL5Id, 'PDist', 130)
|
||||
EgtSetInfo( PL5Id, 'Prev', 'PL4')
|
||||
EgtSetInfo( PL5Id, 'Next', 'PL6')
|
||||
EgtMove( PL5Id, Vector3d( -2800, 0, 0), GDB_RT.GLOB)
|
||||
local PL6Id = EmtAxis {
|
||||
Name = 'PL6',
|
||||
Parent = 'Tab',
|
||||
Type = MCH_AT.LINEAR,
|
||||
Dir = X_AX(),
|
||||
Pos = Point3d(0, 0, 0),
|
||||
Stroke = {1000, 3000},
|
||||
Home = 3000,
|
||||
Geo = 'T6_AXIS/GEO',
|
||||
Aux = 'T6_AXIS/SOLID'}
|
||||
EgtSetInfo( T6Id, 'MDist', 10)
|
||||
EgtSetInfo( T6Id, 'PDist', 130)
|
||||
EgtSetInfo( T6Id, 'Prev', 'T5')
|
||||
EgtMove( T6Id, Vector3d( -3000, 0, 0), GDB_RT.GLOB)
|
||||
|
||||
Geo = 'PL6_AXIS/GEO',
|
||||
Aux = 'PL6_AXIS/SOLID'}
|
||||
EgtSetInfo( PL6Id, 'MDist', 10)
|
||||
EgtSetInfo( PL6Id, 'PDist', 130)
|
||||
EgtSetInfo( PL6Id, 'Prev', 'PL5')
|
||||
EgtMove( PL6Id, Vector3d( -3000, 0, 0), GDB_RT.GLOB)
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- Funzioni richiamate per modificare i dati macchina in casi particolari
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
+4
-202
@@ -18,11 +18,6 @@ end
|
||||
---------------------------------------------------------------------
|
||||
-- *** SIMULATION ***
|
||||
---------------------------------------------------------------------
|
||||
local bSimuToolChange = false
|
||||
local nUnloadTool
|
||||
local nCountChangeT = 0
|
||||
local TChangePos = {}
|
||||
local nTmaxCone = 8
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulStart()
|
||||
@@ -42,17 +37,12 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulEnd()
|
||||
ExecUnloading()
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulDispositionStart()
|
||||
EMT.OPEISDISP = true
|
||||
nTmaxCone = 8
|
||||
if EMT.SIM1ST then
|
||||
TChangePos[1] = 1
|
||||
TChangePos[2] = 0
|
||||
end
|
||||
-- nascondo lavorazioni che risulterebbero in posizione diversa dai pezzi
|
||||
local nMchId = EgtGetNextOperation( EgtGetPhaseDisposition( EMT.PHASE))
|
||||
while nMchId do
|
||||
@@ -60,15 +50,10 @@ function OnSimulDispositionStart()
|
||||
EgtSetOperationStatus( nMchId, false)
|
||||
nMchId = EgtGetNextOperation( nMchId)
|
||||
end
|
||||
if EMT.SIM1ST then
|
||||
-- visualizzo tutti i coni del magazzino
|
||||
ShowHideCone( 1, nTmaxCone, true)
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulDispositionEnd()
|
||||
|
||||
-- Se prima disposizione
|
||||
if EMT.PHASE == 1 then
|
||||
-- Se vero inizio e abilitato creo gli Zmap
|
||||
@@ -110,30 +95,6 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulToolSelect()
|
||||
|
||||
-- se cambia testa va al cambio utensile
|
||||
if ( EMT.TCPOS ~= EMT.PREVTCPOS) then
|
||||
-- se ho scaricato il mandrino principale o ancora non carico
|
||||
if nUnloadTool ~= 2 or not EMT.PREVTCPOS then
|
||||
-- nascondo la testa attuale per non farla visualizzare nel movimento di cambio
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN)
|
||||
end
|
||||
SimuToolChange( EgtGetHeadId( EMT.HEAD), 1, EMT.TCPOS, nTmaxCone) -- carico l'utensile
|
||||
else -- se stesse posizioni
|
||||
if nUnloadTool == 0 then -- se ho scaricato il madrino per lunghezza eccessiva
|
||||
EgtSetMode( EgtGetHeadId( EMT.HEAD), GDB_MD.HIDDEN) -- nascondo la testa
|
||||
SimuToolChange( EgtGetHeadId( EMT.HEAD), 1, EMT.TCPOS, nTmaxCone) -- carico l'utensile
|
||||
else
|
||||
-- se la testa non è stata scaricata la mostro
|
||||
local nHeadId = EgtGetHeadId( EMT.HEAD)
|
||||
EgtSetMode( nHeadId, GDB_MD.STD)
|
||||
end
|
||||
end
|
||||
-- aquisisco lunghezza utensile
|
||||
if EMT.TOOL ~= '' then
|
||||
EMT.TOTLENGTH = EgtTdbGetCurrToolParam(MCH_TP.TOTLEN)
|
||||
end
|
||||
|
||||
-- se attivo Vmill
|
||||
if EMT.VMILL then
|
||||
SetToolForVmill( EMT.TOOL, EMT.HEAD, EMT.EXIT, EMT.VMILL)
|
||||
@@ -142,51 +103,7 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulToolDeselect()
|
||||
-- se testa utilizzata non è gruppo a forare
|
||||
if EMT.HEAD ~= 'H43' and EMT.HEAD ~= 'H45' then
|
||||
-- se cambia posizione attivo il cambio utensile
|
||||
if EMT.TCPOS ~= EMT.NEXTTCPOS then -- se cambio utensile
|
||||
local nHeadId = EgtGetHeadId( EMT.HEAD)
|
||||
-- se prossima testa è a forare o tastatore verifico se scaricare o no l'utensile
|
||||
if EMT.NEXTHEAD == 'H43' or EMT.NEXTHEAD == 'H45' then
|
||||
-- se teste rinvio le scarico comunque
|
||||
if EMT.HEAD == 'H12' or EMT.HEAD == 'H13' or EMT.HEAD == 'H14' or EMT.HEAD == 'H15' then
|
||||
SimuToolChange( nHeadId, 2, EMT.TCPOS, nTmaxCone)
|
||||
else
|
||||
-- ricavo la lunghezza utensile
|
||||
EMT.TOTLENGTH = EgtTdbGetCurrToolParam(MCH_TP.TOTLEN)
|
||||
-- se maggiore della lunghezza consentita scarico la testa
|
||||
if (EMT.TOTLENGTH and EMT.TOTLENGTH > nMaxLenTool) or EMT.NEXTHEAD == 'H45' then -- ori 156
|
||||
nUnloadTool = 2
|
||||
SimuToolChange( nHeadId, 2, EMT.TCPOS, nTmaxCone)
|
||||
else -- altrimenti mantengo l'utensile sul mandrino
|
||||
nUnloadTool = 2
|
||||
-- in questo caso almeno un caricamento utensile è stato fatto
|
||||
if nCountChangeT == 0 then nCountChangeT = 1 end
|
||||
EMT.UNHIDEHEAD = EMT.HEAD
|
||||
end
|
||||
end
|
||||
else -- atrimenti prossima testa non gruppo a forare
|
||||
SimuToolChange( nHeadId, 0, EMT.TCPOS, nTmaxCone) -- scarico utensile
|
||||
end
|
||||
end
|
||||
EMT.PREVTCPOS = EMT.TCPOS
|
||||
-- altrimenti testa a forare
|
||||
else
|
||||
-- se testa succesiva non è gruppo a forare e posizioni differenti scarico utensile
|
||||
if EMT.NEXTTCPOS ~= 'T43' and EMT.PREVTCPOS and EMT.PREVTCPOS ~= EMT.NEXTTCPOS then
|
||||
if nUnloadTool and nUnloadTool ~= 0 then
|
||||
-- rialzo slitta della testa H43
|
||||
MoveHead( EgtGetHeadId( EMT.HEAD), Z_AX(), 200)
|
||||
if nUnloadTool == 2 then
|
||||
SimuToolChange( EgtGetHeadId( EMT.UNHIDEHEAD), 0, EMT.PREVTCPOS, nTmaxCone)
|
||||
else
|
||||
SimuToolChange( EgtGetHeadId( EMT.PREVHEAD), 0, EMT.PREVTCPOS, nTmaxCone)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
EMT.PREVHEAD = EMT.HEAD
|
||||
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -242,121 +159,6 @@ end
|
||||
function OnSimulMoveEnd()
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function SimuToolChange( nHeadId, nShowHead, sPos, nMaxCone)
|
||||
if not bSimuToolChange then
|
||||
SimulMoveAxes( 'Y', 0.0, 100, 'C', 0, 100, 'B', 0, 100)
|
||||
if nShowHead == 0 or nShowHead == 2 then
|
||||
if nHeadId then EgtSetMode( nHeadId, GDB_MD.HIDDEN) end
|
||||
elseif nShowHead == 1 then
|
||||
if nHeadId then EgtSetMode( nHeadId, GDB_MD.STD) end
|
||||
end
|
||||
else
|
||||
if nShowHead == 0 or nShowHead == 2 then
|
||||
if nUnloadTool ~= 0 then -- scarico utensile
|
||||
SimulMoveAxes( 'Y', 0.0, 100, 'C', 0.0, 100, 'B', 0.0, 100)
|
||||
SimulMoveAxis( 'Z', -100.000, 10)
|
||||
SimulMoveCharger( sPos, (nMaxCone-1), 90)
|
||||
SimulMoveAxis( 'Z', 0.0, 10)
|
||||
if nHeadId then EgtSetMode( nHeadId, GDB_MD.HIDDEN) end
|
||||
SimulChangeCone( sPos, true)
|
||||
SimulMoveAxis( 'Z', -100, 10)
|
||||
else
|
||||
SimulMoveAxis( 'Z', 0, 10)
|
||||
end
|
||||
nUnloadTool = 0
|
||||
elseif nShowHead == 1 then -- carico utensile
|
||||
SimulMoveAxes( 'Y', 0.0, 100, 'C', 0.0, 100, 'B', 0.0, 100)
|
||||
SimulMoveAxis( 'Z', 0.0, 10)
|
||||
SimulMoveCharger( sPos, (nMaxCone-1), 0)
|
||||
SimulMoveAxis( 'Z', -100, 10)
|
||||
if nHeadId then EgtSetMode( nHeadId, GDB_MD.STD) end
|
||||
SimulChangeCone( sPos, false)
|
||||
SimulMoveAxis( 'B', 0.0, 10)
|
||||
nUnloadTool = 1
|
||||
else
|
||||
SimulMoveAxes( 'Y', 0.0, 100, 'C', 0.0, 100, 'B', 0.0, 100)
|
||||
nUnloadTool = 2
|
||||
end
|
||||
if nShowHead ~= 0 then
|
||||
SimulMoveAxis( 'Y', 0.0, 10)
|
||||
SimulMoveAxis( 'Z', 0, 10)
|
||||
end
|
||||
end
|
||||
nCountChangeT = nCountChangeT + 1
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function HideAllmainHeads()
|
||||
EgtSetMode( EgtGetHeadId( 'H11'), GDB_MD.HIDDEN) -- nascondo la testa
|
||||
EgtSetMode( EgtGetHeadId( 'H12'), GDB_MD.HIDDEN) -- nascondo la testa
|
||||
EgtSetMode( EgtGetHeadId( 'H13'), GDB_MD.HIDDEN) -- nascondo la testa
|
||||
EgtSetMode( EgtGetHeadId( 'H14'), GDB_MD.HIDDEN) -- nascondo la testa
|
||||
EgtSetMode( EgtGetHeadId( 'H15'), GDB_MD.HIDDEN) -- nascondo la testa
|
||||
nCountChangeT = 1
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function ShowHideCone( nPosIni, nPosEnd, bShowCone)
|
||||
|
||||
if nPosIni and nPosEnd then
|
||||
-- imposto flag visualizzazione
|
||||
local nMode = EgtIf( bShowCone, GDB_MD.STD, GDB_MD.HIDDEN)
|
||||
-- trovo Id cartella solid
|
||||
local nIdSolidTc = EgtGetFirstNameInGroup( EgtGetAxisId( 'TC'), 'SOLID')
|
||||
-- ciclo sui coni
|
||||
for nPos = nPosIni, nPosEnd do
|
||||
-- trovo Id cono
|
||||
local sConeName = 'CONE_'.. EgtNumToString( ( nPos + 100), 0)
|
||||
local nIdCone = EgtGetFirstNameInGroup( nIdSolidTc, sConeName)
|
||||
if nIdCone then
|
||||
EgtSetMode( nIdCone, nMode)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function SimulChangeCone( sPos, bShowCone)
|
||||
if sPos then
|
||||
local sPosT = sPos:sub(2)
|
||||
local nPosT = tonumber(sPosT)
|
||||
ShowHideCone( nPosT, nPosT, bShowCone)
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function SimulMoveCharger( sPos, nMaxPos, nOldvalue)
|
||||
|
||||
if sPos then
|
||||
|
||||
local sPosT = sPos:sub(2)
|
||||
local nPosT = tonumber(sPosT)
|
||||
local nVer = 1
|
||||
local nMovStep = 0
|
||||
|
||||
nStep = nPosT - TChangePos[1]
|
||||
|
||||
if abs(nStep) <= 0 then -- se numero di passi è a ritornare
|
||||
nVer = -1
|
||||
nMovStep = abs(nStep) * ( 595 / nMaxPos) * nVer
|
||||
else -- altrimenti numero passi è oltre la metà giro
|
||||
nVer = 1
|
||||
nMovStep = abs(nStep) * ( 595 / nMaxPos) * nVer
|
||||
end
|
||||
TChangePos[1] = nPosT
|
||||
TChangePos[2] = TChangePos[2] + nMovStep
|
||||
if abs(nMovStep) > 0 then
|
||||
SimulMoveAxis( 'Y', TChangePos[2], 10)
|
||||
SimulMoveAxis( 'B', 90.0, 10)
|
||||
SimulMoveAxes( 'TC', 100, 7)
|
||||
end
|
||||
else
|
||||
SimulMoveAxis( 'Y', nOldvalue, 10)
|
||||
SimulMoveAxes( 'TC', 0, 7)
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function MoveHead( nGrpId, vtVers, dPos, bLoc)
|
||||
local dVal = EgtGetInfo( nGrpId or GDB_ID.NULL, 'Val')
|
||||
@@ -435,9 +237,9 @@ function OnEstimProgramStart()
|
||||
-- imposto inizio movimenti da Home
|
||||
EMT.L1 = EgtGetAxisHomePos( 'X')
|
||||
EMT.L2 = EgtGetAxisHomePos( 'Y')
|
||||
EMT.L3 = EgtGetAxisHomePos( 'Z')
|
||||
EMT.L3 = EgtGetAxisHomePos( 'Z1')
|
||||
EMT.R1 = EgtGetAxisHomePos( 'C')
|
||||
EMT.R2 = EgtGetAxisHomePos( 'B')
|
||||
EMT.R2 = EgtGetAxisHomePos( 'A')
|
||||
-- aggiorno valori come precedenti
|
||||
EmtUpdatePrev()
|
||||
-- totalizzatori tempi e lunghezze
|
||||
|
||||
@@ -14,32 +14,6 @@ Egm = require( 'EmtGenMachining')
|
||||
---------------------------------------------------------------------
|
||||
-- *** OnSpecialMoveZup ***
|
||||
---------------------------------------------------------------------
|
||||
function OnSpecialMoveZup()
|
||||
|
||||
--EgtOutLog( 'OnSpecialMoveZup : ' .. EMC.HEAD .. '.' .. tostring( EMC.EXIT))
|
||||
|
||||
-- Inizializzo codice di errore
|
||||
EMC.ERR = 1
|
||||
|
||||
-- recupero Z1 home
|
||||
local dZmax = EgtGetAxisHomePos( 'Z')
|
||||
|
||||
-- se testa 5 assi e utensile sdraiato molto alto
|
||||
if EMC.R2 and EMC.TDIR[3] < 0.79 and EMC.L3 > dZmax - 200 then
|
||||
-- sistemo asse rotante
|
||||
EMC.R2 = EgtIf( ( EMC.R2 > 0), 37.5, - 37.5)
|
||||
-- ricalcolo versore utensile
|
||||
EMC.TDIR = EgtGetCalcToolDirFromAngles( EMC.R1, EMC.R2)
|
||||
-- dichiaro modificato
|
||||
EMC.MODIF = true
|
||||
else
|
||||
EMC.MODIF = false
|
||||
end
|
||||
|
||||
EMC.ERR = 0
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** OnSpecialApplyDisposition & OnPostApplyMachining ***
|
||||
---------------------------------------------------------------------
|
||||
|
||||
Binary file not shown.
+13
-158
@@ -1,5 +1,5 @@
|
||||
-- 2024/10/10 10:00:00
|
||||
-- Disposition Init for Cms-PK_PL machine
|
||||
-- Disposition Init for Masterwood_Project265 machine
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EgtBase')
|
||||
@@ -13,7 +13,7 @@ local ColA = Color3d( 255, 165, 0, 30)
|
||||
--------------------------------------------------------------------------------
|
||||
-- * Verifica esistenza MachGroup *
|
||||
if not EgtGetCurrMachGroup() then
|
||||
local sErr = 'InitDisp for Cms-PK_PL : missing CurrMachGroup'
|
||||
local sErr = 'InitDisp for Masterwood_Project265 : missing CurrMachGroup'
|
||||
EgtOutLog( sErr)
|
||||
EgtOutText( sErr)
|
||||
DISP.ERR = 1
|
||||
@@ -42,7 +42,7 @@ local b3Part = EgtGetBBoxGlob( Pz or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||
local b3Solid = EgtGetBBoxGlob( Ls or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||
-- Se pezzo vuoto, non devo fare alcunchè
|
||||
if b3Part:isEmpty() then
|
||||
local sErr = 'InitDisp for Cms-PK_PL : empty part'
|
||||
local sErr = 'InitDisp for Masterwood_Project265 : empty part'
|
||||
EgtOutLog( sErr)
|
||||
EgtOutText( sErr)
|
||||
DISP.ERR = 2
|
||||
@@ -99,7 +99,7 @@ else
|
||||
end
|
||||
end
|
||||
if not nRaw then
|
||||
local sErr = 'InitDisp for Cms-PK_PL : error defining raw part'
|
||||
local sErr = 'InitDisp for Masterwood_Project265 : error defining raw part'
|
||||
EgtOutLog( sErr)
|
||||
EgtOutText( sErr)
|
||||
DISP.ERR = 3
|
||||
@@ -109,28 +109,28 @@ local b3Raw = EgtGetRawPartBBox( nRaw)
|
||||
local bVac = ( b3Raw:getDimY() >= 120)
|
||||
local vtOffs, nCorn
|
||||
if sRefY == 'B' and sRefX == 'L' then
|
||||
vtOffs = Vector3d( 0, 0, 30)
|
||||
vtOffs = Vector3d( 0, 0, 0)
|
||||
nCorn = MCH_CR.BL
|
||||
elseif sRefY == 'B' and sRefX == 'R' then
|
||||
vtOffs = Vector3d( 1700, 0, 30)
|
||||
vtOffs = Vector3d( 1700, 0, 0)
|
||||
nCorn = MCH_CR.BR
|
||||
elseif sRefY == 'M' and sRefX == 'L' then
|
||||
vtOffs = Vector3d( 0, 675-10, 30)
|
||||
vtOffs = Vector3d( 0, 675-10, 0)
|
||||
nCorn = MCH_CR.TL
|
||||
elseif sRefY == 'M' and sRefX == 'R' then
|
||||
vtOffs = Vector3d( 1700, 675-10, 30)
|
||||
vtOffs = Vector3d( 1700, 675-10, 0)
|
||||
nCorn = MCH_CR.TR
|
||||
elseif sRefY == 'N' and sRefX == 'L' then
|
||||
vtOffs = Vector3d( 0, 675+10, 30)
|
||||
vtOffs = Vector3d( 0, 675+10, 0)
|
||||
nCorn = MCH_CR.BL
|
||||
elseif sRefY == 'N' and sRefX == 'R' then
|
||||
vtOffs = Vector3d( 1700, 675+10, 30)
|
||||
vtOffs = Vector3d( 1700, 675+10, 0)
|
||||
nCorn = MCH_CR.BR
|
||||
elseif sRefY == 'T' and sRefX == 'L' then
|
||||
vtOffs = Vector3d( 0, 1350, 30)
|
||||
vtOffs = Vector3d( 0, 1350, 0)
|
||||
nCorn = MCH_CR.TL
|
||||
elseif sRefY == 'T' and sRefX == 'R' then
|
||||
vtOffs = Vector3d( 1700, 1350, 30)
|
||||
vtOffs = Vector3d( 1700, 1350, 0)
|
||||
nCorn = MCH_CR.TR
|
||||
end
|
||||
if not bVac then
|
||||
@@ -141,156 +141,11 @@ if not bVac then
|
||||
end
|
||||
end
|
||||
if not EgtMoveToCornerRawPart( nRaw, vtOffs, nCorn) then
|
||||
local sErr = 'InitDisp for Cms-PK_PL : error positioning raw part on table'
|
||||
local sErr = 'InitDisp for Masterwood_Project265 : error positioning raw part on table'
|
||||
EgtOutLog( sErr)
|
||||
EgtOutText( sErr)
|
||||
DISP.ERR = 4
|
||||
return
|
||||
end
|
||||
|
||||
-- Posizionamento dei piani di lavoro, carrelli e ventose
|
||||
local DIMT_X = 120
|
||||
local OFFS_MIN_T = 200
|
||||
local DIMV_Y = 100
|
||||
local OFFS_MIN_V = 120
|
||||
local SAFE_DIST = dSafeDist + dOverMatXY
|
||||
b3Raw = EgtGetRawPartBBox( nRaw)
|
||||
b3Raw:toLoc( frTab)
|
||||
-- barre (4)
|
||||
local vbT = { false, false, false, false}
|
||||
local vsNamT = { 'T1', 'T2', 'T3', 'T4'}
|
||||
local vdPosT = { EgtGetAxisHomePos( 'T1'), EgtGetAxisHomePos( 'T2'), EgtGetAxisHomePos( 'T3'), EgtGetAxisHomePos( 'T4')}
|
||||
if b3Raw:getDimX() < 300 then
|
||||
if sRefX == 'L' then
|
||||
vbT[1] = true
|
||||
vdPosT[1] = b3Raw:getCenter():getX() - DIMT_X / 2
|
||||
else
|
||||
vbT[4] = true
|
||||
vdPosT[2] = vdPosT[1] + OFFS_MIN_T
|
||||
vdPosT[3] = vdPosT[2] + OFFS_MIN_T
|
||||
vdPosT[4] = b3Raw:getCenter():getX() - DIMT_X / 2
|
||||
end
|
||||
elseif b3Raw:getDimX() < 650 then
|
||||
if sRefX == 'L' then
|
||||
vbT[1] = true ; vbT[2] = true
|
||||
vdPosT[1] = b3Raw:getMin():getX() + SAFE_DIST
|
||||
vdPosT[2] = b3Raw:getMax():getX() - SAFE_DIST - DIMT_X
|
||||
else
|
||||
vbT[3] = true ; vbT[4] = true
|
||||
vdPosT[2] = vdPosT[1] + OFFS_MIN_T
|
||||
vdPosT[3] = b3Raw:getMin():getX() + SAFE_DIST
|
||||
vdPosT[4] = b3Raw:getMax():getX() - SAFE_DIST - DIMT_X
|
||||
end
|
||||
elseif b3Raw:getDimX() < 1000 then
|
||||
if sRefX == 'L' then
|
||||
vbT[1] = true ; vbT[2] = true ; vbT[3] = true
|
||||
vdPosT[1] = b3Raw:getMin():getX() + SAFE_DIST
|
||||
vdPosT[3] = b3Raw:getMax():getX() - SAFE_DIST - DIMT_X
|
||||
vdPosT[2] = ( vdPosT[1] + vdPosT[3]) / 2
|
||||
else
|
||||
vbT[2] = true ; vbT[3] = true ; vbT[4] = true
|
||||
vdPosT[2] = b3Raw:getMin():getX() + SAFE_DIST
|
||||
vdPosT[4] = b3Raw:getMax():getX() - SAFE_DIST - DIMT_X
|
||||
vdPosT[3] = ( vdPosT[2] + vdPosT[4]) / 2
|
||||
end
|
||||
else
|
||||
vbT[1] = true ; vbT[2] = true ; vbT[3] = true ; vbT[4] = true
|
||||
vdPosT[1] = b3Raw:getMin():getX() + SAFE_DIST
|
||||
vdPosT[4] = b3Raw:getMax():getX() - SAFE_DIST - DIMT_X
|
||||
vdPosT[2] = 0.666 * vdPosT[1] + 0.334 * vdPosT[4]
|
||||
vdPosT[3] = 0.334 * vdPosT[1] + 0.666 * vdPosT[4]
|
||||
end
|
||||
for i = 1, #vbT do
|
||||
EgtMoveDispAxis( vsNamT[i], vdPosT[i])
|
||||
end
|
||||
-- carrelli per ventose o morse (3)
|
||||
local vbV = { false, false, false}
|
||||
local vdPosV = { EgtGetAxisHomePos( 'T11'), EgtGetAxisHomePos( 'T12'), EgtGetAxisHomePos( 'T13')}
|
||||
if not bVac then
|
||||
if sRefY == 'B' then
|
||||
vbV[1] = true
|
||||
vdPosV[1] = b3Raw:getMin():getY() - DIMV_Y / 2 - 10
|
||||
elseif sRefY == 'M' then
|
||||
vbV[2] = true
|
||||
vdPosV[2] = b3Raw:getMax():getY() - DIMV_Y / 2 + 10
|
||||
elseif sRefY == 'N' then
|
||||
vbV[2] = true
|
||||
vdPosV[2] = b3Raw:getMin():getY() - DIMV_Y / 2 - 10
|
||||
elseif sRefY == 'T' then
|
||||
vbV[3] = true
|
||||
vdPosV[2] = vdPosV[1] + OFFS_MIN_V
|
||||
vdPosV[3] = b3Raw:getMax():getY() - DIMV_Y / 2 + 10
|
||||
end
|
||||
elseif b3Raw:getDimY() < 260 then
|
||||
if b3Raw:getMin():getY() < 675 then
|
||||
vbV[1] = true
|
||||
vdPosV[1] = b3Raw:getCenter():getY() - DIMV_Y / 2
|
||||
else
|
||||
vbV[3] = true
|
||||
vdPosV[2] = vdPosV[1] + OFFS_MIN_V
|
||||
vdPosV[3] = b3Raw:getCenter():getY() - DIMV_Y / 2
|
||||
end
|
||||
elseif b3Raw:getDimY() < 450 then
|
||||
if b3Raw:getMin():getY() < 675 then
|
||||
vbV[1] = true ; vbV[2] = true
|
||||
vdPosV[1] = b3Raw:getMin():getY() + SAFE_DIST
|
||||
vdPosV[2] = b3Raw:getMax():getY() - SAFE_DIST - DIMV_Y
|
||||
else
|
||||
vbV[2] = true ; vbV[3] = true
|
||||
vdPosV[2] = b3Raw:getMin():getY() + SAFE_DIST
|
||||
vdPosV[3] = b3Raw:getMax():getY() - SAFE_DIST - DIMV_Y
|
||||
end
|
||||
else
|
||||
vbV[1] = true ; vbV[2] = true ; vbV[3] = true
|
||||
vdPosV[1] = b3Raw:getMin():getY() + SAFE_DIST
|
||||
vdPosV[3] = b3Raw:getMax():getY() - SAFE_DIST - DIMV_Y
|
||||
vdPosV[2] = ( vdPosV[1] + vdPosV[3]) / 2
|
||||
end
|
||||
for i = 1, #vbT do
|
||||
if vbT[i] then
|
||||
for j = 1, #vbV do
|
||||
local sVac = vsNamT[ i] .. tostring( j)
|
||||
EgtMoveDispAxis( sVac, vdPosV[j])
|
||||
end
|
||||
end
|
||||
end
|
||||
-- ventose o morse
|
||||
for i = 1, #vbT do
|
||||
if vbT[i] then
|
||||
local dPosX = vdPosT[i] + DIMT_X / 2
|
||||
for j = 1, #vbV do
|
||||
if vbV[j] then
|
||||
if bVac then
|
||||
EgtAddFixture( 'Vac120x100H30', Point3d( dPosX, vdPosV[j] + DIMV_Y / 2, 0))
|
||||
else
|
||||
EgtAddFixture( 'ViseH30', Point3d( dPosX, vdPosV[j] + DIMV_Y / 2, 0), 0, b3Raw:getDimZ())
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- riferimenti
|
||||
local dRefX = EgtIf( sRefX == 'L', -10, 1710)
|
||||
if sRefY == 'B' then
|
||||
EgtAddFixture( 'RefD20', Point3d( dRefX, 100, 0))
|
||||
for i = 1, #vbT do
|
||||
if bVac and vbT[i] then EgtAddFixture( 'RefD20', Point3d( vdPosT[i] + DIMT_X / 2, -10, 0)) end
|
||||
end
|
||||
elseif sRefY == 'M' then
|
||||
EgtAddFixture( 'RefD20', Point3d( dRefX, 675-110, 0))
|
||||
for i = 1, #vbT do
|
||||
if bVac and vbT[i] then EgtAddFixture( 'RefD20', Point3d( vdPosT[i] + DIMT_X / 2, 675, 0)) end
|
||||
end
|
||||
elseif sRefY == 'N' then
|
||||
EgtAddFixture( 'RefD20', Point3d( dRefX, 675+110, 0))
|
||||
for i = 1, #vbT do
|
||||
if bVac and vbT[i] then EgtAddFixture( 'RefD20', Point3d( vdPosT[i] + DIMT_X / 2, 675, 0)) end
|
||||
end
|
||||
elseif sRefY == 'T' then
|
||||
EgtAddFixture( 'RefD20', Point3d( dRefX, 1350-100, 0))
|
||||
for i = 1, #vbT do
|
||||
if bVac and vbT[i] then EgtAddFixture( 'RefD20', Point3d( vdPosT[i] + DIMT_X / 2, 1350+10, 0)) end
|
||||
end
|
||||
end
|
||||
|
||||
DISP.ERR = 0
|
||||
|
||||
+10
-2
@@ -37,7 +37,7 @@ local INVALIDPOS = ""
|
||||
local POS = "Pos"
|
||||
|
||||
-- Geom Set
|
||||
local GS = {{'H11','H12','H13','H14','H15'}}
|
||||
local GS = {}
|
||||
|
||||
-- Configurazione posizioni
|
||||
local PositionTable={{Pos = "Pos1", TcPos = "T01", Head = "H11", Group = "G1"},
|
||||
@@ -48,7 +48,15 @@ local PositionTable={{Pos = "Pos1", TcPos = "T01", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos6", TcPos = "T06", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos7", TcPos = "T07", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos8", TcPos = "T08", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos9", TcPos = "T17", Head = "H11", Group = "G2"}}
|
||||
{Pos = "Pos9", TcPos = "T09", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos10", TcPos = "T10", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos11", TcPos = "T11", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos12", TcPos = "T12", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos13", TcPos = "T13", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos14", TcPos = "T14", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos15", TcPos = "T15", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos16", TcPos = "T16", Head = "H11", Group = "G1"},
|
||||
{Pos = "Pos17", TcPos = "T81", Head = "H21", Group = "G2"}}
|
||||
|
||||
local UsePositionHead = false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user