La scelta utensile contempla la lista parziale passata alle funzioni Find(Tool)
This commit is contained in:
@@ -229,7 +229,20 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part)
|
||||
return Machinings
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- funzione per cercare utensile tipo FRESA con certe caratteristiche
|
||||
local function IsToolInAvailableToolList( sToolName, AvailableToolList)
|
||||
local ToolFound = false
|
||||
for nIndex = 1, #AvailableToolList do
|
||||
if sToolName == AvailableToolList[nIndex].sName then
|
||||
ToolFound = true
|
||||
break
|
||||
end
|
||||
end
|
||||
return ToolFound
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- funzione per cercare utensile tipo FRESA con certe caratteristiche
|
||||
-- TODO qui vtToolDirection è in realtà vtN
|
||||
function MachiningLib.FindMill( Proc, ToolSearchParameters)
|
||||
@@ -243,6 +256,9 @@ function MachiningLib.FindMill( Proc, ToolSearchParameters)
|
||||
-- se viene passato il nome, tutti gli altri sono incompatibili
|
||||
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( TOOLS[i].sName, ToolSearchParameters.AvailableToolList) then
|
||||
bIsToolCompatible = false
|
||||
-- si cercano solo frese standard. Se utensile disegnato manualmente, si setta subito che è incompatibile
|
||||
elseif TOOLS[i].bIsProfiledTool then
|
||||
bIsToolCompatible = false
|
||||
@@ -376,6 +392,11 @@ function MachiningLib.FindBlade( Proc, ToolSearchParameters)
|
||||
bIsToolCompatible = false
|
||||
end
|
||||
|
||||
-- se c'è una lista di utensili disponibili, si verifica che l'utensile attuale sia tra quelli
|
||||
if ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( TOOLS[i].sName, ToolSearchParameters.AvailableToolList) then
|
||||
bIsToolCompatible = false
|
||||
end
|
||||
|
||||
if bIsToolCompatible then
|
||||
-- TODO gestire accorciamento massimo materiale per inclinazione
|
||||
local dCurrentResidualDepth = ToolSearchParameters.dElevation - TOOLS[i].dMaxDepth
|
||||
@@ -441,6 +462,9 @@ function MachiningLib.FindDrill( Proc, ToolSearchParameters)
|
||||
-- se viene passato il nome, tutti gli altri sono incompatibili
|
||||
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( TOOLS[i].sName, ToolSearchParameters.AvailableToolList) then
|
||||
bIsToolCompatible = false
|
||||
-- controlli standard
|
||||
elseif TOOLS[i].dDiameter > ToolSearchParameters.dMaxToolDiameter then
|
||||
bIsToolCompatible = false
|
||||
@@ -564,6 +588,11 @@ function MachiningLib.FindChainSaw( Proc, ToolSearchParameters)
|
||||
end
|
||||
end
|
||||
|
||||
-- se c'è una lista di utensili disponibili, si verifica che l'utensile attuale sia tra quelli
|
||||
if ToolSearchParameters.AvailableToolList and not IsToolInAvailableToolList( TOOLS[i].sName, ToolSearchParameters.AvailableToolList) then
|
||||
bIsToolCompatible = false
|
||||
end
|
||||
|
||||
-- TODO nei confronti tra valori gestire tolleranze
|
||||
if bIsToolCompatible then
|
||||
if ToolSearchParameters.dElevation > 10 * GEO.EPS_SMALL and ToolSearchParameters.bExtendWithCornerRadius then
|
||||
|
||||
Reference in New Issue
Block a user