a40cc026c9
- in ANTISPLINTONFACE piccole modifiche
55 lines
2.1 KiB
Lua
55 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 bMachineAllClosedEdges = OptionalParameters.bMachineAllClosedEdges or false
|
|
|
|
local ClosingFacesAgainstGrain = {}
|
|
for i = 1, #Face.Edges do
|
|
local CurrentFace = Proc.Faces[Face.Edges[i].idAdjacentFace + 1]
|
|
if ( not Face.Edges[i].bIsOpen) and ( Face.Edges[i].bIsStartOpen or Face.Edges[i].bIsEndOpen or bMachineAllClosedEdges) then
|
|
table.insert( ClosingFacesAgainstGrain, CurrentFace)
|
|
end
|
|
end
|
|
for i = 1, #ClosingFacesAgainstGrain do
|
|
local EdgeToMachine = {}
|
|
for j = 1, #ClosingFacesAgainstGrain[i].Edges do
|
|
if ClosingFacesAgainstGrain[i].Edges[j].idAdjacentFace == Face.id then
|
|
EdgeToMachine = ClosingFacesAgainstGrain[i].Edges[j]
|
|
break
|
|
end
|
|
end
|
|
|
|
local Cutting = {}
|
|
local OptionalParametersFaceByBlade = { bIsSplitFeature = bIsSplitFeature, dExtendAfterTail = dExtendAfterTail}
|
|
Cutting = FaceByBlade.Make( Proc, Part, ClosingFacesAgainstGrain[i], EdgeToMachine, OptionalParametersFaceByBlade)
|
|
|
|
Cutting.nInternalSortingPriority = nInternalSortingPriority
|
|
Cutting.dResultWeight = dResultWeight
|
|
table.insert( Machinings, Cutting)
|
|
end
|
|
|
|
return Machinings
|
|
end
|
|
|
|
-------------------------------------------------------------------------------------------------------------
|
|
|
|
return ANTISPLINTONFACE |