2c77277c85
- in BLADEKEEPWASTE migliorie e correzioni; manca ancora la pulitura con fresa - in FACEBYBLADE rimossa dimensione minima lato maggiore del diametro lama. Si può avere un accorciamento massimo pari alla lunghezza lato
53 lines
2.1 KiB
Lua
53 lines
2.1 KiB
Lua
-- Strategia: FACEBYBLADE
|
|
-- Descrizione
|
|
-- Strategia di base per la lavorazione delle facce con lama
|
|
|
|
-- carico librerie
|
|
local FaceByBlade = require( 'FACEBYBLADE')
|
|
|
|
-- Tabella per definizione modulo
|
|
local ANTISPLINTONFACE = {}
|
|
|
|
-------------------------------------------------------------------------------------------------------------
|
|
function ANTISPLINTONFACE.Make( Proc, Part, Face, OptionalParameters)
|
|
local Machinings = {}
|
|
|
|
-- parametri opzionali
|
|
if not OptionalParameters then
|
|
OptionalParameters = {}
|
|
end
|
|
local bIsSplitFeature = OptionalParameters.bIsSplitFeature or false
|
|
local dExtendAfterTail = OptionalParameters.dExtendAfterTail or 10000
|
|
local nInternalSortingPriority = OptionalParameters.nInternalSortingPriority or 1
|
|
local dResultWeight = OptionalParameters.dResultWeight or 0.15
|
|
local bIgnoreGrainDirection = OptionalParameters.bIgnoreGrainDirection or false
|
|
|
|
local ClosingFacesAgainstGrain1 = {}
|
|
for i = 1, #Face.Edges do
|
|
local CurrentFace = Proc.Faces[Face.Edges[i].idAdjacentFace + 1]
|
|
if ( not Face.Edges[i].bIsOpen) and ( ( abs( CurrentFace.vtN:getX()) > 0.707) or bIgnoreGrainDirection) then
|
|
table.insert( ClosingFacesAgainstGrain1, CurrentFace)
|
|
end
|
|
end
|
|
for i = 1, #ClosingFacesAgainstGrain1 do
|
|
local EdgeToMachine = {}
|
|
for j = 1, #ClosingFacesAgainstGrain1[i].Edges do
|
|
if ClosingFacesAgainstGrain1[i].Edges[j].idAdjacentFace == Face.id then
|
|
EdgeToMachine = ClosingFacesAgainstGrain1[i].Edges[j]
|
|
break
|
|
end
|
|
end
|
|
local Cutting = {}
|
|
local OptionalParametersFaceByBlade = { bIsSplitFeature = bIsSplitFeature, dExtendAfterTail = dExtendAfterTail}
|
|
Cutting = FaceByBlade.Make( Proc, Part, ClosingFacesAgainstGrain1[i], EdgeToMachine, OptionalParametersFaceByBlade)
|
|
Cutting.nInternalSortingPriority = nInternalSortingPriority
|
|
Cutting.dResultWeight = dResultWeight
|
|
table.insert( Machinings, Cutting)
|
|
end
|
|
|
|
return Machinings
|
|
end
|
|
|
|
-------------------------------------------------------------------------------------------------------------
|
|
|
|
return ANTISPLINTONFACE |