Prima bozza gestione aggregato foratore multiplo
This commit is contained in:
+2
-1
@@ -73,7 +73,8 @@ local BeamData = {
|
|||||||
ADVANCE_TAIL_OFFS = 5, -- accorciamento taglio di coda avanzato (minimo 1)
|
ADVANCE_TAIL_OFFS = 5, -- accorciamento taglio di coda avanzato (minimo 1)
|
||||||
DOUBLE_HEAD_DOVETAIL = true, -- flag abilitazione lavorazione mortase a coda di rondine in doppio
|
DOUBLE_HEAD_DOVETAIL = true, -- flag abilitazione lavorazione mortase a coda di rondine in doppio
|
||||||
DOUBLE_HEAD_MORTISE = true, -- flag abilitazione lavorazione mortase in doppio
|
DOUBLE_HEAD_MORTISE = true, -- flag abilitazione lavorazione mortase in doppio
|
||||||
DOUBLE_HEAD_DRILLING = true -- flag abilitazione forature in doppio
|
DOUBLE_HEAD_DRILLING = true, -- flag abilitazione forature in doppio
|
||||||
|
USE_MULTI_DRILL = false, -- flag abilitazione gruppo a forare
|
||||||
}
|
}
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
4=Pocket_H2
|
4=Pocket_H2
|
||||||
5=Predrill
|
5=Predrill
|
||||||
6=Predrill_H2
|
6=Predrill_H2
|
||||||
|
7=MultiDrill
|
||||||
|
|
||||||
[Milling]
|
[Milling]
|
||||||
1=Prof
|
1=Prof
|
||||||
|
|||||||
+87
-8
@@ -483,6 +483,19 @@ function OnSimulToolSelect( dPosA)
|
|||||||
-- Imposto visualizzazione
|
-- Imposto visualizzazione
|
||||||
EgtSetMode( EgtGetHeadId( EMT.HEAD) or GDB_ID.NULL, GDB_MD.STD)
|
EgtSetMode( EgtGetHeadId( EMT.HEAD) or GDB_ID.NULL, GDB_MD.STD)
|
||||||
end
|
end
|
||||||
|
-- se aggregato foratura multipla, imposto subito angolo scelto per asse virtuale A
|
||||||
|
if EMT.HEAD == 'H14' then
|
||||||
|
-- valore dell'asse virtuale
|
||||||
|
dPosA = dPosA or GetNextMultiDrillVirtualAxis( EMT.MCHID)
|
||||||
|
-- imposto il valore di A
|
||||||
|
EgtSetAxisPos( 'A1', dPosA)
|
||||||
|
-- imposto home dell'asse C1 (A1=0 -> T121, A1=90 -> T124)
|
||||||
|
local MyParkCSawC1 = GetMultiDrillCHomeFromVirtualAxis( dPosA, EMT.TTOTLEN)
|
||||||
|
EmtModifyAxisHome( 'C1', MyParkCSawC1)
|
||||||
|
EgtSetAxisPos( 'C1', MyParkCSawC1)
|
||||||
|
-- Imposto visualizzazione
|
||||||
|
EgtSetMode( EgtGetHeadId( EMT.HEAD) or GDB_ID.NULL, GDB_MD.STD)
|
||||||
|
end
|
||||||
-- se lama su aggregato da sotto, imposto subito angolo scelto per asse virtuale A
|
-- se lama su aggregato da sotto, imposto subito angolo scelto per asse virtuale A
|
||||||
if EMT.HEAD == 'H22' then
|
if EMT.HEAD == 'H22' then
|
||||||
-- se c'era un altro utensile, imposto subito asse virtuale
|
-- se c'era un altro utensile, imposto subito asse virtuale
|
||||||
@@ -528,7 +541,7 @@ end
|
|||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function OnSimulToolDeselect( dPrevA)
|
function OnSimulToolDeselect( dPrevA)
|
||||||
-- se prossimo utensile non cambia e non è sega a catena o lama su rinvio da sotto, esco
|
-- se prossimo utensile non cambia e non è sega a catena o lama su rinvio da sotto, esco
|
||||||
if ( EMT.NEXTTOOL == EMT.PREVTOOL_H1 or EMT.NEXTTOOL == EMT.PREVTOOL_H2) and EMT.NEXTHEAD ~= 'H13' and ( EMT.NEXTHEAD ~= 'H22' or not dPrevA) then return end
|
if ( EMT.NEXTTOOL == EMT.PREVTOOL_H1 or EMT.NEXTTOOL == EMT.PREVTOOL_H2) and ( EMT.NEXTHEAD ~= 'H13' or EMT.NEXTHEAD ~= 'H14') and ( EMT.NEXTHEAD ~= 'H22' or not dPrevA) then return end
|
||||||
-- deposito utensile
|
-- deposito utensile
|
||||||
EgtOutText( 'Tool change in progress...')
|
EgtOutText( 'Tool change in progress...')
|
||||||
-- recupero il gruppo attuale e il successivo
|
-- recupero il gruppo attuale e il successivo
|
||||||
@@ -591,12 +604,23 @@ function OnSimulToolDeselect( dPrevA)
|
|||||||
end
|
end
|
||||||
SimulMoveAxes( 'B1', ParkCSawB1, MCH_SIM_STEP.RAPROT, 'C1', ParkC1, MCH_SIM_STEP.RAPROT)
|
SimulMoveAxes( 'B1', ParkCSawB1, MCH_SIM_STEP.RAPROT, 'C1', ParkC1, MCH_SIM_STEP.RAPROT)
|
||||||
SimulMoveAxis( 'X1', ParkCSawX1, MCH_SIM_STEP.RAPID)
|
SimulMoveAxis( 'X1', ParkCSawX1, MCH_SIM_STEP.RAPID)
|
||||||
|
-- deposito utensile aggregato foratore multiplo
|
||||||
|
elseif EMT.PREVHEAD_H1 == 'H14' then
|
||||||
|
-- simulo movimento
|
||||||
|
local ParkC1 = EgtGetAxisHomePos( 'C1')
|
||||||
|
if dPrevA then
|
||||||
|
ParkC1 = GetMultiDrillCHomeFromVirtualAxis( dPrevA)
|
||||||
|
end
|
||||||
|
-- simulo movimento
|
||||||
|
SimulMoveAxes( 'B1', ParkMultiDrillB1, MCH_SIM_STEP.RAPROT, 'C1', ParkC1, MCH_SIM_STEP.RAPROT)
|
||||||
|
SimulMoveAxis( 'X1', ParkMultiDrillX1, MCH_SIM_STEP.RAPID)
|
||||||
-- deposito utensile seconda lama
|
-- deposito utensile seconda lama
|
||||||
elseif EMT.PREVHEAD_H1 == 'H16' then
|
elseif EMT.PREVHEAD_H1 == 'H16' then
|
||||||
-- simulo movimento
|
-- simulo movimento
|
||||||
SimulMoveAxes( 'B1', ParkB1, MCH_SIM_STEP.RAPROT, 'C1', ParkC1, MCH_SIM_STEP.RAPROT)
|
SimulMoveAxes( 'B1', ParkB1, MCH_SIM_STEP.RAPROT, 'C1', ParkC1, MCH_SIM_STEP.RAPROT)
|
||||||
SimulMoveAxis( 'X1', ParkTc2X1, MCH_SIM_STEP.RAPID)
|
SimulMoveAxis( 'X1', ParkTc2X1, MCH_SIM_STEP.RAPID)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- breve pausa
|
-- breve pausa
|
||||||
EgtPause( 100)
|
EgtPause( 100)
|
||||||
-- visualizzo utensile su TcPos
|
-- visualizzo utensile su TcPos
|
||||||
@@ -633,6 +657,11 @@ function OnSimulToolDeselect( dPrevA)
|
|||||||
-- simulo movimento
|
-- simulo movimento
|
||||||
SimulMoveAxes( 'B1', ParkCSawB1, MCH_SIM_STEP.RAPROT, 'C1', EgtGetAxisHomePos( 'C1'), MCH_SIM_STEP.RAPROT)
|
SimulMoveAxes( 'B1', ParkCSawB1, MCH_SIM_STEP.RAPROT, 'C1', EgtGetAxisHomePos( 'C1'), MCH_SIM_STEP.RAPROT)
|
||||||
SimulMoveAxes( 'X1', ParkCSawX1, MCH_SIM_STEP.RAPID, 'Z1', ParkCSawZ1, MCH_SIM_STEP.RAPID)
|
SimulMoveAxes( 'X1', ParkCSawX1, MCH_SIM_STEP.RAPID, 'Z1', ParkCSawZ1, MCH_SIM_STEP.RAPID)
|
||||||
|
-- prendo utensile sega a catena
|
||||||
|
elseif EMT.NEXTHEAD == 'H14' then
|
||||||
|
-- simulo movimento
|
||||||
|
SimulMoveAxes( 'B1', ParkMultiDrillB1, MCH_SIM_STEP.RAPROT, 'C1', EgtGetAxisHomePos( 'C1'), MCH_SIM_STEP.RAPROT)
|
||||||
|
SimulMoveAxes( 'X1', ParkMultiDrillX1, MCH_SIM_STEP.RAPID, 'Z1', ParkMultiDrillZ1, MCH_SIM_STEP.RAPID)
|
||||||
-- prendo utensile seconda lama
|
-- prendo utensile seconda lama
|
||||||
elseif EMT.NEXTHEAD == 'H16' then
|
elseif EMT.NEXTHEAD == 'H16' then
|
||||||
-- simulo movimento
|
-- simulo movimento
|
||||||
@@ -656,8 +685,22 @@ end
|
|||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function OnSimulMachiningStart()
|
function OnSimulMachiningStart()
|
||||||
-- se lavorazione attuale e precedente con sega a catena con angolo A diverso, devo scaricare e ricaricare
|
-- se lavorazione è con gruppo a forare, abilito le altre punte alla lavorazione del VMILL
|
||||||
if EMT.HEAD == 'H13' and EMT.HEAD == EMT.PREVHEAD_H1 then
|
if EMT.HEAD == 'H14' then
|
||||||
|
local OtherTools = EgtGetToolsInCurrSetupPos( 'T121')
|
||||||
|
if OtherTools and #OtherTools > 1 then
|
||||||
|
for i = 1, #OtherTools do
|
||||||
|
if OtherTools[i] ~= '' and OtherTools[i] ~= EMT.TOOL then
|
||||||
|
EmtAddToolForVmill( OtherTools[i], 'H14', i, EMT.VMILL)
|
||||||
|
-- dichiaro utensile per verifica collisioni
|
||||||
|
local nInd = 1011
|
||||||
|
AddToolToCollisionObj( OtherTools[i], 'H14', i, nInd, true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- se lavorazione attuale e precedente con sega a catena o aggregato foratore multiplo e con angolo A diverso, devo scaricare e ricaricare
|
||||||
|
if ( EMT.HEAD == 'H13' or EMT.HEAD == 'H14') and EMT.HEAD == EMT.PREVHEAD_H1 then
|
||||||
local dPrevA = EgtGetAxisPos( 'A1')
|
local dPrevA = EgtGetAxisPos( 'A1')
|
||||||
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
|
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
|
||||||
local dPosA = tonumber( sVal:sub( 4))
|
local dPosA = tonumber( sVal:sub( 4))
|
||||||
@@ -1972,11 +2015,20 @@ end
|
|||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function ShowToolInTcPos( sTcPos, bShow)
|
function ShowToolInTcPos( sTcPos, bShow)
|
||||||
-- recupero il gruppo dell'utensile
|
-- recupero identificativo della posizione sul TC
|
||||||
local TcExitId = EgtGetFirstNameInGroup( EgtGetTcPosId( sTcPos or '') or GDB_ID.NULL, 'T1')
|
local TcPosId = EgtGetTcPosId( sTcPos or '')
|
||||||
if not TcExitId then return end
|
if not TcPosId then return end
|
||||||
-- imposto lo stato di visualizzazione
|
-- ciclo sulle possibili uscite
|
||||||
EgtSetStatus( TcExitId, EgtIf( bShow, GDB_ST.ON, GDB_ST.OFF))
|
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
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
@@ -2503,6 +2555,33 @@ function GetNextChainSawingVirtualAxis( MchId)
|
|||||||
-- la imposto come lavorazione corrente
|
-- la imposto come lavorazione corrente
|
||||||
EgtSetCurrMachining( NextMchId)
|
EgtSetCurrMachining( NextMchId)
|
||||||
-- recupero il valore dell'asse virtuale bloccato A
|
-- recupero il valore dell'asse virtuale bloccato A
|
||||||
|
local dPosA = GetCurrMultiDrillVirtualAxis()
|
||||||
|
-- ripristino la lavorazione corrente
|
||||||
|
if MchId then
|
||||||
|
EgtSetCurrMachining( MchId)
|
||||||
|
end
|
||||||
|
return dPosA
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
function GetNextMultiDrillVirtualAxis( MchId)
|
||||||
|
-- recupero la lavorazione successiva
|
||||||
|
local NextMchId
|
||||||
|
if MchId then
|
||||||
|
NextMchId = EgtGetNextActiveOperation( MchId)
|
||||||
|
else
|
||||||
|
NextMchId = EgtGetFirstActiveOperation()
|
||||||
|
end
|
||||||
|
while NextMchId and EgtGetOperationType( NextMchId) == MCH_OY.DISP do
|
||||||
|
NextMchId = EgtGetNextActiveOperation( NextMchId)
|
||||||
|
end
|
||||||
|
-- verifico sia un taglio con sega a catena
|
||||||
|
if EgtGetOperationType( NextMchId) ~= MCH_OY.DRILLING then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
-- la imposto come lavorazione corrente
|
||||||
|
EgtSetCurrMachining( NextMchId)
|
||||||
|
-- recupero il valore dell'asse virtuale bloccato A
|
||||||
local dPosA = GetCurrChainSawingVirtualAxis()
|
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||||
-- ripristino la lavorazione corrente
|
-- ripristino la lavorazione corrente
|
||||||
if MchId then
|
if MchId then
|
||||||
|
|||||||
@@ -97,10 +97,10 @@ ParkCSaw0Z1 = -400
|
|||||||
ParkCSawC1 = -90
|
ParkCSawC1 = -90
|
||||||
ParkCSaw0C1 = 0
|
ParkCSaw0C1 = 0
|
||||||
ParkCSawB1 = 0
|
ParkCSawB1 = 0
|
||||||
MinLengthLongCSaw = 580 -- gestione speciale per motosega molto lunga. Lunghezza al di sopra della quale e' considerata motosega lunga
|
MinLengthLongCSaw = 580 -- gestione speciale per motosega molto lunga. Lunghezza al di sopra della quale e' considerata motosega lunga
|
||||||
ParkLongCSawZ1 = -50 -- gestione speciale per motosega molto lunga. Parcheggio asse Z
|
ParkLongCSawZ1 = -50 -- gestione speciale per motosega molto lunga. Parcheggio asse Z
|
||||||
ParkLongCSawC1 = 0 -- gestione speciale per motosega molto lunga. Parcheggio asse C
|
ParkLongCSawC1 = 0 -- gestione speciale per motosega molto lunga. Parcheggio asse C
|
||||||
ParkLongCSawB1 = -90 -- gestione speciale per motosega molto lunga. Parcheggio asse B
|
ParkLongCSawB1 = -90 -- gestione speciale per motosega molto lunga. Parcheggio asse B
|
||||||
LongTool = 390
|
LongTool = 390
|
||||||
MinLongTc1C1 = -91
|
MinLongTc1C1 = -91
|
||||||
MaxLongTc1C1 = 91
|
MaxLongTc1C1 = 91
|
||||||
@@ -110,6 +110,11 @@ MaxLongTc2C1 = -89
|
|||||||
ParkLongTc2C1 = -180
|
ParkLongTc2C1 = -180
|
||||||
ParkLongB1 = 0
|
ParkLongB1 = 0
|
||||||
MinZ1ToChangeH2 = -1400
|
MinZ1ToChangeH2 = -1400
|
||||||
|
ParkMultiDrillX1 = ParkCSawX1 -- 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
|
||||||
|
ParkMultiDrillZ1 = 0 -- posizione parcheggio asse Z per aggregato forature multiplo
|
||||||
MinZ3 = -1550
|
MinZ3 = -1550
|
||||||
MaxZ3 = 0
|
MaxZ3 = 0
|
||||||
MinX3 = 0
|
MinX3 = 0
|
||||||
@@ -1153,6 +1158,17 @@ function OnSetHead()
|
|||||||
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA, EMC.TOTLEN))
|
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA, EMC.TOTLEN))
|
||||||
EmtModifyAxisHome( 'B1', EgtIf( EMC.TOTLEN < MinLengthLongCSaw, ParkCSawB1, ParkLongCSawB1))
|
EmtModifyAxisHome( 'B1', EgtIf( EMC.TOTLEN < MinLengthLongCSaw, ParkCSawB1, ParkLongCSawB1))
|
||||||
EmtModifyAxisDirection( 'B1', X_AX())
|
EmtModifyAxisDirection( 'B1', X_AX())
|
||||||
|
-- se testa H14 (aggregato forature multiplo)
|
||||||
|
elseif EMC.HEAD == 'H14' then
|
||||||
|
-- recupero il valore dell'asse virtuale bloccato A
|
||||||
|
local MultiDrillPosA = GetCurrMultiDrillVirtualAxis()
|
||||||
|
EmtModifyAxisHome( 'X1', ParkMultiDrillX1)
|
||||||
|
EmtModifyAxisHome( 'Z1', ParkMultiDrillZ1)
|
||||||
|
EmtModifyAxisStroke( 'Z1', {MinZ1, MaxZ1})
|
||||||
|
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
||||||
|
EmtModifyAxisHome( 'C1', GetMultiDrillCHomeFromVirtualAxis( MultiDrillPosA, EMC.TOTLEN))
|
||||||
|
EmtModifyAxisHome( 'B1', EgtIf( EMC.TOTLEN < MinLengthLongCSaw, ParkCSawB1, ParkLongCSawB1))
|
||||||
|
EmtModifyAxisDirection( 'B1', X_AX())
|
||||||
-- se testa H16 ( seconda lama)
|
-- se testa H16 ( seconda lama)
|
||||||
elseif EMC.HEAD == 'H16' then
|
elseif EMC.HEAD == 'H16' then
|
||||||
EmtModifyAxisHome( 'X1', ParkTc2X1)
|
EmtModifyAxisHome( 'X1', ParkTc2X1)
|
||||||
@@ -1286,6 +1302,8 @@ function HeadIsChainSaw( sHead)
|
|||||||
return ( sHead == 'H13' or sHead == 'H15')
|
return ( sHead == 'H13' or sHead == 'H15')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
--- FUNZIONI PER MOTOSEGA -------------------------------------------
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function GetCurrChainSawingVirtualAxis()
|
function GetCurrChainSawingVirtualAxis()
|
||||||
-- recupero il valore dell'asse virtuale bloccato A
|
-- recupero il valore dell'asse virtuale bloccato A
|
||||||
@@ -1349,6 +1367,37 @@ function GetSawCHomeFromVirtualAxis( dPosA)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
--- FUNZIONI PER AGGREGATO FORATORE MULTIPLO ------------------------
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
function GetCurrMultiDrillVirtualAxis()
|
||||||
|
-- recupero il valore dell'asse virtuale bloccato A
|
||||||
|
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
|
||||||
|
if not sVal or sVal == '' then
|
||||||
|
if EMC then
|
||||||
|
sVal = EMC.BLOCKEDAXIS or 'A1=0'
|
||||||
|
else
|
||||||
|
sVal = 'A1=0'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local dPosA = tonumber( sVal:sub( 4)) or 0
|
||||||
|
return dPosA
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- Funzione che calcola l'angolo Home di C per l'aggregato foratore mutliplo dal valore dell'asse virtuale
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
function GetMultiDrillCHomeFromVirtualAxis( dPosA)
|
||||||
|
-- se A1=0 -> T121 -> HomeC = 0
|
||||||
|
if abs( dPosA) < 0.1 then
|
||||||
|
return ParkMultiDrill0C1
|
||||||
|
-- altrimenti A1=90 -> T124 -> HomeC = -90
|
||||||
|
else
|
||||||
|
return ParkMultiDrillC1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Funzione che ritorna ZExtra partendo dalla testa e dall'angolo verticale
|
-- Funzione che ritorna ZExtra partendo dalla testa e dall'angolo verticale
|
||||||
function GetZExtra( sHead, dAngV)
|
function GetZExtra( sHead, dAngV)
|
||||||
@@ -1378,6 +1427,19 @@ function GetZExtra( sHead, dAngV)
|
|||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
-- se aggregato foratore multiplo
|
||||||
|
elseif sHead == 'H14' then
|
||||||
|
if abs( dAngV) < 30.1 then
|
||||||
|
return 400
|
||||||
|
elseif abs( dAngV) < 45.1 then
|
||||||
|
return 300
|
||||||
|
elseif abs( dAngV) < 60.1 then
|
||||||
|
return 200
|
||||||
|
elseif abs( dAngV) < 90.1 then
|
||||||
|
return 10
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
end
|
||||||
-- altri casi
|
-- altri casi
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
[Drill]
|
[Drill]
|
||||||
1=Drill
|
1=Drill
|
||||||
2=Pocket
|
2=Pocket
|
||||||
|
3=MultiDrill
|
||||||
|
|
||||||
[Milling]
|
[Milling]
|
||||||
1=FreeContour
|
1=FreeContour
|
||||||
|
|||||||
Reference in New Issue
Block a user