Prima versione funzionante gestione aggregato foratore multiplo

This commit is contained in:
andrea.villa
2024-11-29 12:06:03 +01:00
parent faf60d9f5b
commit a33f5af749
4 changed files with 36 additions and 9 deletions
+26
View File
@@ -128,6 +128,8 @@ function OnToolData()
dAddLen = -SawOffsZ
elseif EMT.HEAD == 'H16' then
dAddLen = -Saw2OffsZ
elseif EMT.HEAD == 'H14' then
dAddLen = 206 -- dimensione aggregato
end
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( dAddLen + EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( dAddLen + EMT.TTOTLEN, 3)
@@ -406,6 +408,13 @@ function OnMachiningStart()
-- imposto home dell'asse C1 (A=0 -> T101, A=90 -> T104)
local MyParkCSawC1 = GetChainSawCHomeFromVirtualAxis( dPosA, EMT.TTOTLEN)
EmtModifyAxisHome( 'C1', MyParkCSawC1)
-- aggregato foratura multipla, aggiusto subito angolo scelto per asse virtuale A
elseif EMT.HEAD == 'H14' then
-- valore dell'asse virtuale
dPosA = GetCurrMultiDrillVirtualAxis()
-- imposto home dell'asse C1 (A=0 -> T121, A=90 -> T124)
local MyParkMultiDrillC1 = GetMultiDrillCHomeFromVirtualAxis( dPosA, EMT.TTOTLEN)
EmtModifyAxisHome( 'C1', MyParkMultiDrillC1)
-- se lama su aggregato testa sotto, aggiusto subito angolo scelto per asse virtuale A
elseif EMT.HEAD == 'H22' then
-- valore dell'asse virtuale
@@ -757,6 +766,9 @@ function OnRapid()
-- se sega a catena
if EMT.HEAD == 'H13' then
EmitMoveDataHead( 1, { X=-ParkCSawX1, Z=HomeZ1, B=HomeR2, C=HomeR1, TRad=dTRad, TLen=dTLen, S=Speed})
-- aggregato foratore multiplo
elseif EMT.HEAD == 'H14' then
EmitMoveDataHead( 1, { X=-ParkMultiDrillX1, Z=HomeZ1, B=HomeR2, C=HomeR1, TRad=dTRad, TLen=dTLen, S=Speed})
-- utensili standard
else
-- utensili lunghi
@@ -2311,6 +2323,20 @@ function AdjustTcPos( bLen3, sTcPos, dAxR3)
EmtSetLastError( 1210, 'Chain saw orientation not allowed')
end
end
if sPos == '121' then
if not dAxR3 then dAxR3 = EMT.R3 end
if abs( dAxR3 - 0) < 0.1 then
sPos = '121'
elseif abs( dAxR3 - 270) < 0.1 then
sPos = '122'
elseif abs( dAxR3 - 180) < 0.1 then
sPos = '123'
elseif abs( dAxR3 - 90) < 0.1 then
sPos = '124'
else
EmtSetLastError( 1210, 'MultiDrill orientation not allowed')
end
end
if sPos == '201' then
if not dAxR3 then dAxR3 = EMT.R3 end
if abs( dAxR3 - 0) < 0.1 then
+2
View File
@@ -463,6 +463,8 @@ function OnSimulToolSelect( dPosA)
end
if EMT.HEAD == 'H12' or EMT.HEAD == 'H16' then
EgtSetAxisPos( 'Z1', MaxZ1Blade)
else
EgtSetAxisPos( 'Z1', MaxZ1)
end
EgtResetAxisPos( 'C1')
EgtResetAxisPos( 'B1')
+8 -9
View File
@@ -5,7 +5,7 @@
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.6k2_DEV2'
PP_VER = '2.6k2_DEV3'
PP_NVER = '2.6.11.2'
MIN_MACH_VER = '2.5k1'
MACH_NAME = 'Essetre-PF1500MAXrl-3T'
@@ -87,7 +87,7 @@ MinB1b = -119
MaxB1b = 119
ParkX1 = 4850
ParkTc2X1 = 4850
ParkTc1X1 = 650
ParkTc1X1 = 800
ParkZ1 = -525
ParkC1 = -90
ParkB1 = -90
@@ -110,7 +110,7 @@ MaxLongTc2C1 = -89
ParkLongTc2C1 = -180
ParkLongB1 = 0
MinZ1ToChangeH2 = -1400
ParkMultiDrillX1 = ParkCSawX1 -- posizione parcheggio asse X per aggregato forature multiplo
ParkMultiDrillX1 = 1800 -- posizione parcheggio asse X per aggregato forature multiplo
ParkMultiDrillC1 = 0 -- posizione parcheggio asse C per aggregato forature multiplo
ParkMultiDrill0C1 = -90 -- posizione parcheggio asse C per aggregato forature multiplo
ParkMultiDrillB1 = 0 -- posizione parcheggio asse B per aggregato forature multiplo
@@ -291,7 +291,6 @@ if EgtExistsFile( sDataBeam) then
ParkV2 = MinV2
ParkY2 = ParkV2 - MinDeltaYV
UnloadSmT = UnloadT - 300
MaxZ1Blade = min( MaxZ1Blade, -100)
ParkX1 = EgtClamp( ParkX1, MinX1, MaxX1)
ParkTc1X1 = EgtClamp( ParkTc1X1, MinX1, MaxX1)
ParkZ1 = EgtClamp( ParkZ1, MinZ1, MaxZ1)
@@ -766,7 +765,7 @@ EmtTable {
Geo = 'TABLE/GEO',
Aux = 'TABLE/SOLID'}
-- *** ToolChanger ***
local ptTc1 = Point3d( 150, 501, -221 + ( DeltaTabZ - DeltaRulliTraveZ + 55))
local ptTc1 = Point3d( 150, 501, -221)
local vtDt1 = Vector3d( 0, 0, - 102.5)
EmtTcPos {
Name = 'T1',
@@ -861,7 +860,7 @@ EmtTcPos {
Geo = 'BASE/T13'}
if Tc2Active then
local ptTc2 = Point3d( 150, 5168.75, -221 + ( DeltaTabZ - DeltaRulliTraveZ + 55))
local ptTc2 = Point3d( 150, 5168.75, -221)
local vtDt2 = Vector3d( 0, 0, - 102.5)
EmtTcPos {
Name = 'T21',
@@ -934,7 +933,7 @@ if Tc2Active then
ADir = X_AX(),
Geo = 'BASE/T30'}
end
local ptTc3 = Point3d( 600, 1181, -200.8 + ( DeltaTabZ - DeltaRulliTraveZ + 55))
local ptTc3 = Point3d( 600, 1181, -150.8)
EmtTcPos {
Name = 'T101',
Parent = 'Base',
@@ -942,7 +941,7 @@ EmtTcPos {
TDir = -X_AX(),
ADir = Z_AX(),
Geo = 'BASE/T101'}
local ptTc4 = Point3d( 750, 1561, -200.8 + ( DeltaTabZ - DeltaRulliTraveZ + 55))
local ptTc4 = Point3d( 750, 1561, -150.8)
EmtTcPos {
Name = 'T111',
Parent = 'Base',
@@ -950,7 +949,7 @@ EmtTcPos {
TDir = -X_AX(),
ADir = Z_AX(),
Geo = 'BASE/T111'}
local ptTc5 = Point3d( 750, 1961, -321 + ( DeltaTabZ - DeltaRulliTraveZ + 55))
local ptTc5 = Point3d( 750, 1961, -321)
EmtTcPos {
Name = 'T121',
Parent = 'Base',
Binary file not shown.