- Aggiunta ricerca utensile anche per UUID

- In BCS piccola modifica in caso di TAG "Cutting"
- Aggiunto parametro sStrategyName a TAILCUT e HEADCUT
This commit is contained in:
andrea.villa
2025-10-01 13:25:18 +02:00
parent cbb6e11515
commit 1a14d156cf
4 changed files with 33 additions and 13 deletions
+25 -11
View File
@@ -244,12 +244,24 @@ end
-------------------------------------------------------------------------------------------------------------
-- funzione per verifica se l'utensile è presente tra gli utensili disponibili per la strategia
local function IsToolInAvailableToolList( AvailableToolList, sToolName)
local function IsToolInAvailableToolList( AvailableToolList, sTool)
local bToolFound = false
-- si cerca utensile con UUID se presente
for nIndex = 1, #AvailableToolList do
if sToolName == AvailableToolList[nIndex].sName then
bToolFound = true
break
if AvailableToolList[nIndex].sUUID then
if sTool.sUUID == AvailableToolList[nIndex].sUUID then
bToolFound = true
break
end
end
end
-- se non trovato con UUID, allora ci cerca per nome
for nIndex = 1, #AvailableToolList do
if AvailableToolList[nIndex].sName then
if sTool.sName == AvailableToolList[nIndex].sName then
bToolFound = true
break
end
end
end
return bToolFound
@@ -270,7 +282,7 @@ function MachiningLib.FindMill( Proc, ToolSearchParameters)
if ToolSearchParameters.sName and ToolSearchParameters.sName ~= TOOLS[i].sName then
bIsToolCompatible = false
-- se c'è una lista di utensili disponibili, si verifica che l'utensile attuale sia tra quelli
elseif ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i].sName) then
elseif ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i]) then
bIsToolCompatible = false
-- si cercano solo frese standard. Se utensile disegnato manualmente, si setta subito che è incompatibile
elseif TOOLS[i].bIsProfiledTool then
@@ -417,7 +429,7 @@ function MachiningLib.FindBlade( Proc, ToolSearchParameters)
end
-- se c'è una lista di utensili disponibili, si verifica che l'utensile attuale sia tra quelli
if ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i].sName) then
if ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i]) then
bIsToolCompatible = false
end
@@ -494,7 +506,7 @@ function MachiningLib.FindDrill( Proc, ToolSearchParameters)
elseif ToolSearchParameters.sName and ToolSearchParameters.sName ~= TOOLS[i].sName then
bIsToolCompatible = false
-- se c'è una lista di utensili disponibili, si verifica che l'utensile attuale sia tra quelli
elseif ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i].sName) then
elseif ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i]) then
bIsToolCompatible = false
-- controlli standard
elseif TOOLS[i].dDiameter > ToolSearchParameters.dMaxToolDiameter then
@@ -627,7 +639,7 @@ function MachiningLib.FindChainSaw( Proc, ToolSearchParameters)
end
-- se c'è una lista di utensili disponibili, si verifica che l'utensile attuale sia tra quelli
if ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i].sName) then
if ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( ToolSearchParameters.AvailableToolList, TOOLS[i]) then
bIsToolCompatible = false
end
@@ -687,9 +699,11 @@ function MachiningLib.GetAvailableToolList( Proc, sToolList, sType)
-- se arriva da JSON o NGE
else
if sToolList and #sToolList > 0 then
local List = EgtSplitString( sToolList)
for i = 1, #List do
table.insert( ToolList, { sName = List[i]})
-- Lista definita come: "UUID_1,Nome_1;UUID_2,Nome_2;UUID_3,Nome_3"
local Tool = EgtSplitString( sToolList, ';')
for i = 1, #Tool do
local ToolData = EgtSplitString( Tool[i])
table.insert( ToolList, { sUUID = ToolData[1], sName = ToolData[2]} )
end
-- se non ci sono utensili forzati, annullo lista per cercare tra tutti quelli disponibili in modo automatico
else