- in tutte le strategie, tutte le chiamate a funzioni interne AddMachiningAllSteps o a MachiningLib.AddNewMachining sostituite con chiamate a funzione AddMachinings in MachiningLib

- in FACEBYBLADE  e FACEBYCHAINSAW contemplata opzione bDisableHorizontalSteps e bDisableVerticalSteps, rispettivamente, per non creare i cloni orizzontali / verticali
This commit is contained in:
luca.mazzoleni
2025-03-12 15:19:27 +01:00
parent a7759e3b37
commit dcefd35cc9
13 changed files with 85 additions and 166 deletions
+41 -1
View File
@@ -464,7 +464,7 @@ end
-------------------------------------------------------------------------------------------------------------
-- salva in lista globale la lavorazione appena calcolata
function MachiningLib.AddNewMachining( ProcToAdd, MachiningToAdd, AuxiliaryDataToAdd)
local function AddNewMachining( ProcToAdd, MachiningToAdd, AuxiliaryDataToAdd)
-- Controllo parametri obbligatori
if not MachiningToAdd.nType or not MachiningToAdd.nToolIndex or not MachiningToAdd.Geometry or not ProcToAdd.id then
return false
@@ -525,6 +525,46 @@ function MachiningLib.AddNewMachining( ProcToAdd, MachiningToAdd, AuxiliaryDataT
return true
end
-------------------------------------------------------------------------------------------------------------
function MachiningLib.AddMachinings( Proc, Machining, AuxiliaryData)
local bMachiningAdded = false
if Machining.CloneStepsHorizontal and Machining.CloneStepsHorizontal.nCount > 1 then
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffset = Machining.dRadialOffset
local dOriginalLeadInPerpDistance = Machining.LeadIn.dPerpDistance
local dOriginalLeadOutPerpDistance = Machining.LeadOut.dPerpDistance
for i = 1, Machining.CloneStepsHorizontal.nCount do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].LeadIn = {}
AuxiliaryData.Clones[i].LeadOut = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Machining.CloneStepsHorizontal.dStep * ( Machining.CloneStepsHorizontal.nCount - i)
-- update distanza perpendicolare attacco per contemplare l'offset applicato
AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset
AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset
end
elseif Machining.CloneStepsVertical and Machining.CloneStepsVertical.nCount > 1 then
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffsetMortising = Machining.dRadialOffset
for i = Machining.CloneStepsVertical.nCount, 1, -1 do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffsetMortising + Machining.CloneStepsVertical.dStep * ( i - 1)
end
end
bMachiningAdded = AddNewMachining( Proc, Machining, AuxiliaryData)
return bMachiningAdded
end
-------------------------------------------------------------------------------------------------------------
-- funzione per aggiungere una nuova lavorazione
function MachiningLib.AddOperations( vProc, Part, sRotation)
+12 -6
View File
@@ -241,26 +241,28 @@ function HEADCUT.Make( bAddMachining, Proc, Part, CustomParameters)
if Strategy.SplitStrategy.sTypeMachining == 'BladeSideSingle' then
OptionalParameters = {}
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.bDisableHorizontalSteps = true
-- TODO gestire lavorazione a cubetti
local EdgeToMachine = GetEdgeToMachine( Proc, -Y_AX())
Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
Splitting.sStage = 'Head'
MachiningLib.AddNewMachining( Proc, Splitting, AuxiliaryData)
MachiningLib.AddMachinings( Proc, Splitting, AuxiliaryData)
----------------------------------------------------------------------------------
elseif Strategy.SplitStrategy.sTypeMachining == 'BladeSideDouble' then
-- Taglio lato frontale
OptionalParameters = {}
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.dDepthToMachine = Part.dWidth / 2 + BeamData.CUT_EXTRA_MIN
OptionalParameters.bDisableHorizontalSteps = true
-- TODO gestire lavorazione a cubetti
local EdgeToMachine = GetEdgeToMachine( Proc, -Y_AX())
Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
Splitting.sStage = 'Head'
MachiningLib.AddNewMachining( Proc, Splitting, AuxiliaryData)
MachiningLib.AddMachinings( Proc, Splitting, AuxiliaryData)
-- Taglio lato dietro
OptionalParameters = {}
@@ -268,25 +270,27 @@ function HEADCUT.Make( bAddMachining, Proc, Part, CustomParameters)
AuxiliaryData = {}
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.dDepthToMachine = Part.dWidth / 2 + BeamData.CUT_EXTRA_MIN
OptionalParameters.bDisableHorizontalSteps = true
-- TODO gestire lavorazione a cubetti
EdgeToMachine = GetEdgeToMachine( Proc, Y_AX())
Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
Splitting.sStage = 'Head'
MachiningLib.AddNewMachining( Proc, Splitting, AuxiliaryData)
MachiningLib.AddMachinings( Proc, Splitting, AuxiliaryData)
----------------------------------------------------------------------------------
elseif Strategy.SplitStrategy.sTypeMachining == 'BladeHorizontalSingle' then
OptionalParameters = {}
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.dDepthToMachine = Part.dHeight + BeamData.CUT_EXTRA
OptionalParameters.bDisableHorizontalSteps = true
-- TODO gestire lavorazione a cubetti
local EdgeToMachine = GetEdgeToMachine( Proc, Z_AX())
Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
Splitting.sStage = 'Head'
MachiningLib.AddNewMachining( Proc, Splitting, AuxiliaryData)
MachiningLib.AddMachinings( Proc, Splitting, AuxiliaryData)
----------------------------------------------------------------------------------
elseif Strategy.SplitStrategy.sTypeMachining == 'BladeHorizontalDouble' then
-- Taglio lato frontale
@@ -294,13 +298,14 @@ function HEADCUT.Make( bAddMachining, Proc, Part, CustomParameters)
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
local dExtraMaxMat = ( Strategy.SplitStrategy[1].ToolInfo.dMaxMatBladeFromTop + Strategy.SplitStrategy[2].ToolInfo.dMaxMatBladeFromDown - Part.dHeight - BeamData.CUT_EXTRA_MIN) / 2
OptionalParameters.dDepthToMachine = Strategy.SplitStrategy[1].ToolInfo.dMaxMatBladeFromTop - dExtraMaxMat
OptionalParameters.bDisableHorizontalSteps = true
-- TODO gestire lavorazione a cubetti
local EdgeToMachine = GetEdgeToMachine( Proc, Z_AX())
Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
Splitting.sStage = 'Head'
MachiningLib.AddNewMachining( Proc, Splitting, AuxiliaryData)
MachiningLib.AddMachinings( Proc, Splitting, AuxiliaryData)
-- Taglio lato dietro
OptionalParameters = {}
@@ -308,13 +313,14 @@ function HEADCUT.Make( bAddMachining, Proc, Part, CustomParameters)
AuxiliaryData = {}
OptionalParameters.nToolIndex = Strategy.SplitStrategy[2].ToolInfo.nToolIndex
OptionalParameters.dDepthToMachine = Strategy.SplitStrategy[2].ToolInfo.dMaxMatBladeFromDown - dExtraMaxMat
OptionalParameters.bDisableHorizontalSteps = true
-- TODO gestire lavorazione a cubetti
EdgeToMachine = GetEdgeToMachine( Proc, -Z_AX())
Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
Splitting.sStage = 'Head'
MachiningLib.AddNewMachining( Proc, Splitting, AuxiliaryData)
MachiningLib.AddMachinings( Proc, Splitting, AuxiliaryData)
----------------------------------------------------------------------------------
elseif Strategy.SplitStrategy.sTypeMachining == 'ChainSawHorizontal' then
; -- TODO
+3 -28
View File
@@ -15,31 +15,6 @@ local BladeToWaste = require('BLADETOWASTE')
local STR0001 = {}
local Strategy = {}
-------------------------------------------------------------------------------------------------------------
function AddMachiningAllSteps( Proc, Cutting, AuxiliaryData)
local bMachiningAdded = false
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffset = Cutting.dRadialOffset
local dOriginalLeadInPerpDistance = Cutting.LeadIn.dPerpDistance
local dOriginalLeadOutPerpDistance = Cutting.LeadOut.dPerpDistance
for i = 1, Cutting.CloneStepsHorizontal.nCount do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].LeadIn = {}
AuxiliaryData.Clones[i].LeadOut = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Cutting.CloneStepsHorizontal.dStep * ( Cutting.CloneStepsHorizontal.nCount - i)
-- update distanza perpendicolare attacco per contemplare l'offset applicato
AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - Cutting.dRadialOffset
AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - Cutting.dRadialOffset
end
bMachiningAdded = MachiningLib.AddNewMachining( Proc, Cutting, AuxiliaryData)
return bMachiningAdded
end
-------------------------------------------------------------------------------------------------------------
function GetTenonStrategy( Proc, Part)
local Machining = {}
@@ -275,7 +250,7 @@ function STR0001.Make( bAddMachining, Proc, Part, CustomParameters)
if Proc.AffectedFaces.bLeft and Strategy.bCanMoveAfterSplit then
Strategy.Machining.Cutting.sStage = 'AfterTail'
end
bAreAllMachiningsAdded = MachiningLib.AddNewMachining( Proc, Strategy.Machining.Cutting)
bAreAllMachiningsAdded = MachiningLib.AddMachinings( Proc, Strategy.Machining.Cutting)
-- taglio di lama
else
@@ -284,7 +259,7 @@ function STR0001.Make( bAddMachining, Proc, Part, CustomParameters)
if Proc.AffectedFaces.bLeft and Strategy.bCanMoveAfterSplit then
Strategy.Machining.Cutting[i].sStage = 'AfterTail'
end
local bIsMachiningAdded = AddMachiningAllSteps( Proc, Strategy.Machining.Cutting[i])
local bIsMachiningAdded = MachiningLib.AddMachinings( Proc, Strategy.Machining.Cutting[i])
if not bIsMachiningAdded then
bAreAllMachiningsAdded = false
end
@@ -348,7 +323,7 @@ function STR0001.Make( bAddMachining, Proc, Part, CustomParameters)
end
-- aggiunge lavorazione
bAreAllMachiningsAdded = MachiningLib.AddNewMachining( Proc, Strategy.Machining.Milling, AuxiliaryData)
bAreAllMachiningsAdded = MachiningLib.AddMachinings( Proc, Strategy.Machining.Milling, AuxiliaryData)
end
end
end
+2 -2
View File
@@ -468,7 +468,7 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters)
if Proc.AffectedFaces.bLeft then
Pocketing.sStage = 'AfterTail'
end
bAreAllMachiningsAdded = MachiningLib.AddNewMachining( Proc, Pocketing)
bAreAllMachiningsAdded = MachiningLib.AddMachinings( Proc, Pocketing)
else
-- TODO controllare parametro danneggiamento ammesso per decidere se spostare dopo taglio seprazione
-- se è aperta sulla coda, dico che deve essere fatta dopo la separazione
@@ -485,7 +485,7 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters)
end
if vtNSplitFace and AreSameVectorApprox( vtNSplitFace * EgtIf( Pocketing.bToolInvert, -1, 1), Strategy.Machining[j].vtFaceNormal) then
Pocketing.Geometry = {{ nIdTm, k - 1}}
bAreAllMachiningsAdded = bAreAllMachiningsAdded and MachiningLib.AddNewMachining( Proc, Pocketing)
bAreAllMachiningsAdded = bAreAllMachiningsAdded and MachiningLib.AddMachinings( Proc, Pocketing)
break
end
end
+1 -50
View File
@@ -170,13 +170,7 @@ local function AddMachinings( Proc, Machinings, bAddMachining)
nIsApplicableCount = nIsApplicableCount + 1
if bAddMachining then
local bIsMachiningAdded
if TOOLS[ Machinings[i].nToolIndex].sFamily == 'SAWBLADE' then
Blade.AddMachiningAllSteps( Proc, Machinings[i])
elseif TOOLS[ Machinings[i].nToolIndex].sFamily == 'MORTISE' then
Chainsaw.AddMachiningAllSteps( Proc, Machinings[i])
else
error( 'AddMachinings : tool type not supported')
end
bIsMachiningAdded = MachiningLib.AddMachinings( Proc, Machinings[i])
if not bIsMachiningAdded then
bAreAllMachiningsAdded = false
end
@@ -194,54 +188,11 @@ function Blade.AddResult( Cutting)
end
function Blade.AddMachiningAllSteps( Proc, Cutting, AuxiliaryData)
local bMachiningAdded = false
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffset = Cutting.dRadialOffset
local dOriginalLeadInPerpDistance = Cutting.LeadIn.dPerpDistance
local dOriginalLeadOutPerpDistance = Cutting.LeadOut.dPerpDistance
for i = 1, Cutting.CloneStepsHorizontal.nCount do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].LeadIn = {}
AuxiliaryData.Clones[i].LeadOut = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Cutting.CloneStepsHorizontal.dStep * ( Cutting.CloneStepsHorizontal.nCount - i)
-- update distanza perpendicolare attacco per contemplare l'offset applicato
AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset
AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset
end
bMachiningAdded = MachiningLib.AddNewMachining( Proc, Cutting, AuxiliaryData)
return bMachiningAdded
end
function Chainsaw.AddResult( Mortising)
AddResult( Mortising, Chainsaw.Result)
end
function Chainsaw.AddMachiningAllSteps( Proc, Mortising, AuxiliaryData)
local bMachiningAdded = false
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffsetMortising = Mortising.dRadialOffset
for i = Mortising.CloneStepsVertical.nCount, 1, -1 do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffsetMortising + Mortising.CloneStepsVertical.dStep * ( i - 1)
end
bMachiningAdded = MachiningLib.AddNewMachining( Proc, Mortising, AuxiliaryData)
return bMachiningAdded
end
function STR0003.Make( bAddMachining, Proc, Part, CustomParameters)
-- carico parametri da default e li aggiorno con quelli passati dal chiamante (potrebbero non essere congruenti)
local StrategyLib = {}
+1 -19
View File
@@ -113,24 +113,6 @@ function Chainsaw.AddResult( Mortising)
end
function Chainsaw.AddMachiningAllSteps( Proc, Mortising, AuxiliaryData)
local bMachiningAdded = false
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffsetMortising = Mortising.dRadialOffset
for i = Mortising.CloneStepsVertical.nCount, 1, -1 do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffsetMortising + Mortising.CloneStepsVertical.dStep * ( i - 1)
end
bMachiningAdded = MachiningLib.AddNewMachining( Proc, Mortising, AuxiliaryData)
return bMachiningAdded
end
function STR0004.Make( bAddMachining, Proc, Part, CustomParameters)
-- carico parametri da default e li aggiorno con quelli passati dal chiamante (potrebbero non essere congruenti)
local StrategyLib = {}
@@ -275,7 +257,7 @@ function STR0004.Make( bAddMachining, Proc, Part, CustomParameters)
if Chainsaw.Result.Sorted[i].bIsApplicable then
nIsApplicableCount = nIsApplicableCount + 1
if bAddMachining then
local bIsMachiningAdded = Chainsaw.AddMachiningAllSteps( Proc, Chainsaw.Result.Sorted[i])
local bIsMachiningAdded = MachiningLib.AddMachinings( Proc, Chainsaw.Result.Sorted[i])
if not bIsMachiningAdded then
bAreAllMachiningsAdded = false
end
+1 -26
View File
@@ -87,31 +87,6 @@ function Blade.AddResult( Cutting)
end
function Blade.AddMachiningAllSteps( Proc, Cutting, AuxiliaryData)
local bMachiningAdded = false
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffset = Cutting.dRadialOffset
local dOriginalLeadInPerpDistance = Cutting.LeadIn.dPerpDistance
local dOriginalLeadOutPerpDistance = Cutting.LeadOut.dPerpDistance
for i = 1, Cutting.CloneStepsHorizontal.nCount do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].LeadIn = {}
AuxiliaryData.Clones[i].LeadOut = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Cutting.CloneStepsHorizontal.dStep * ( Cutting.CloneStepsHorizontal.nCount - i)
-- update distanza perpendicolare attacco per contemplare l'offset applicato
AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset
AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + dOriginalRadialOffset
end
bMachiningAdded = MachiningLib.AddNewMachining( Proc, Cutting, AuxiliaryData)
return bMachiningAdded
end
function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
-- carico parametri da default e li aggiorno con quelli passati dal chiamante (potrebbero non essere congruenti)
local StrategyLib = {}
@@ -244,7 +219,7 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
if Blade.Result.Sorted[i].bIsApplicable then
nIsApplicableCount = nIsApplicableCount + 1
if bAddMachining then
local bIsMachiningAdded = Blade.AddMachiningAllSteps( Proc, Blade.Result.Sorted[i])
local bIsMachiningAdded = MachiningLib.AddMachinings( Proc, Blade.Result.Sorted[i])
if not bIsMachiningAdded then
bAreAllMachiningsAdded = false
end
+3 -28
View File
@@ -16,31 +16,6 @@ local FaceByBlade = require('FACEBYBLADE')
local STR0006 = {}
local Strategy = {}
-------------------------------------------------------------------------------------------------------------
function AddMachiningAllSteps( Proc, Cutting, AuxiliaryData)
local bMachiningAdded = false
if not AuxiliaryData then
AuxiliaryData = {}
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffset = Cutting.dRadialOffset
local dOriginalLeadInPerpDistance = Cutting.LeadIn.dPerpDistance
local dOriginalLeadOutPerpDistance = Cutting.LeadOut.dPerpDistance
for i = 1, Cutting.CloneStepsHorizontal.nCount do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].LeadIn = {}
AuxiliaryData.Clones[i].LeadOut = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Cutting.CloneStepsHorizontal.dStep * ( Cutting.CloneStepsHorizontal.nCount - i)
-- update distanza perpendicolare attacco per contemplare l'offset applicato
AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - Cutting.dRadialOffset
AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - Cutting.dRadialOffset
end
bMachiningAdded = MachiningLib.AddNewMachining( Proc, Cutting, AuxiliaryData)
return bMachiningAdded
end
-------------------------------------------------------------------------------------------------------------
function GetTenonStrategy( Proc, Part)
local Machining = {}
@@ -230,7 +205,7 @@ function STR0006.Make( bAddMachining, Proc, Part, CustomParameters)
if Proc.AffectedFaces.bLeft and Strategy.bCanMoveAfterSplit then
Strategy.Machining.Cutting.sStage = 'AfterTail'
end
bAreAllMachiningsAdded = MachiningLib.AddNewMachining( Proc, Strategy.Machining.Cutting)
bAreAllMachiningsAdded = MachiningLib.AddMachinings( Proc, Strategy.Machining.Cutting)
-- taglio di lama
else
@@ -240,7 +215,7 @@ function STR0006.Make( bAddMachining, Proc, Part, CustomParameters)
if Proc.AffectedFaces.bLeft and Strategy.bCanMoveAfterSplit then
Strategy.Machining.Cutting[i].sStage = 'AfterTail'
end
local bIsMachiningAdded = AddMachiningAllSteps( Proc, Strategy.Machining.Cutting[i])
local bIsMachiningAdded = MachiningLib.AddMachinings( Proc, Strategy.Machining.Cutting[i])
if not bIsMachiningAdded then
bAreAllMachiningsAdded = false
end
@@ -304,7 +279,7 @@ function STR0006.Make( bAddMachining, Proc, Part, CustomParameters)
end
-- aggiunge lavorazione
bAreAllMachiningsAdded = MachiningLib.AddNewMachining( Proc, Strategy.Machining.Milling, AuxiliaryData)
bAreAllMachiningsAdded = MachiningLib.AddMachinings( Proc, Strategy.Machining.Milling, AuxiliaryData)
end
end
end
+1 -1
View File
@@ -92,7 +92,7 @@ function TAILCUT.Make( bAddMachining, Proc, Part, CustomParameters)
-- aggiungo lavorazioni trovate alla lista generale
for i = 1, #MachiningsToAdd do
MachiningsToAdd[i].Splitting.sStage = 'Tail'
MachiningLib.AddNewMachining( Proc, MachiningsToAdd[i].Splitting, MachiningsToAdd[i].AuxiliaryData)
MachiningLib.AddMachinings( Proc, MachiningsToAdd[i].Splitting, MachiningsToAdd[i].AuxiliaryData)
end
return bAreAllMachiningsAdded, Strategy.Result
+7 -3
View File
@@ -356,7 +356,7 @@ function BLADETOWASTE.Make( ProcOrId, Part, OptionalParameters)
-- TODO qui si deve entrare anche se lo spessore lama è maggiore dell'elevazione delle faccia
if Proc.nFct == 1 and ( FeatureInfo.bIsFeatureSmall or bDropWholeWaste) then
Machinings, Result = CutWholeWaste( Proc, Part, OptionalParameters)
if Result.sStatus == 'Completed' or ( bDropWholeWaste and Result.sStatus == 'Not-Completed') then
if Result.sStatus == 'Completed' or ( bDropWholeWaste and Result.sStatus ~= 'Not-Applicable') then
return Machinings, Result
end
end
@@ -473,7 +473,10 @@ function BLADETOWASTE.Make( ProcOrId, Part, OptionalParameters)
local ProcTrimesh = FeatureLib.GetProcFromTrimesh( vCuts[i][j], Part)
local EdgeToMachine = BeamLib.FindEdgeBestOrientedAsDirection( Edges, vtToolDirectionNew)
local dDepthToMachine = EdgeToMachine.dElevation + BeamData.CUT_EXTRA
local OptionalParametersFaceByBlade = { dDepthToMachine = dDepthToMachine, nToolIndex = nToolIndex}
local OptionalParametersFaceByBlade = { dDepthToMachine = dDepthToMachine,
nToolIndex = nToolIndex,
bDisableHorizontalSteps = true
}
Cutting = FaceByBlade.Make( ProcTrimesh, Part, FaceToMachine, EdgeToMachine, OptionalParametersFaceByBlade)
if Cutting.bIsApplicable then
table.insert( Machinings, Cutting)
@@ -506,7 +509,8 @@ function BLADETOWASTE.Make( ProcOrId, Part, OptionalParameters)
local dDepthToMachine = EdgeToMachine.dElevation + dExtraCut
local OptionalParametersFaceByBlade = { dDepthToMachine = dDepthToMachine,
nToolIndex = nToolIndex,
EdgeToMachineAlternative = EdgeToMachineAlternative
EdgeToMachineAlternative = EdgeToMachineAlternative,
bDisableHorizontalSteps = true
}
Cutting = FaceByBlade.Make( ProcTrimesh, Part, FaceToMachine, EdgeToMachine, OptionalParametersFaceByBlade)
if Cutting.bIsApplicable then
+2 -1
View File
@@ -108,6 +108,7 @@ function FACEBYBLADE.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPar
local dDepthToMachine = OptionalParameters.dDepthToMachine or EdgeToMachine.dElevation
local bIsSplitFeature = OptionalParameters.bIsSplitFeature or false
local bOppositeToolDirection = OptionalParameters.bOppositeToolDirection or false
local bDisableHorizontalSteps = OptionalParameters.bDisableHorizontalSteps or false
local sDepth = OptionalParameters.sDepth or 0
local nToolIndex = OptionalParameters.nToolIndex
local dLongitudinalOffset = OptionalParameters.dLongitudinalOffset or 0
@@ -270,7 +271,7 @@ function FACEBYBLADE.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPar
Cutting.LeadIn, Cutting.LeadOut = CalculateLeadInOut( Cutting, EdgeToMachine)
-- eventuale step orizzontale
Cutting.CloneStepsHorizontal = {}
if TOOLS[Cutting.nToolIndex].dSideStep then
if not bDisableHorizontalSteps and TOOLS[Cutting.nToolIndex].dSideStep then
Cutting.CloneStepsHorizontal = MachiningLib.GetMachiningSteps( Cutting.dDepthToMachine, TOOLS[Cutting.nToolIndex].dSideStep)
else
Cutting.CloneStepsHorizontal.nCount = 1
+5 -1
View File
@@ -71,6 +71,7 @@ function FACEBYCHAINSAW.Make( Proc, Part, FaceToMachine, EdgeToMachine, Optional
local dPocketHeight = OptionalParameters.dPocketHeight or 0
local bIsSplitFeature = OptionalParameters.bIsSplitFeature or false
local bOppositeToolDirection = OptionalParameters.bOppositeToolDirection or false
local bDisableVerticalSteps = OptionalParameters.bDisableVerticalSteps or false
local sDepth = OptionalParameters.sDepth or 'TH'
-- lunghezze e punti caratteristici della lavorazione e del lato lavorato
@@ -215,7 +216,10 @@ function FACEBYCHAINSAW.Make( Proc, Part, FaceToMachine, EdgeToMachine, Optional
-- approccio e retrazione
Mortising.LeadIn, Mortising.LeadOut = CalculateLeadInOut( Mortising, EdgeToMachine, sSideToMachine, dLengthToMachine)
-- eventuale step verticale
Mortising.CloneStepsVertical = MachiningLib.GetMachiningSteps( dPocketHeight, TOOLS[Mortising.nToolIndex].dThickness)
Mortising.CloneStepsVertical = {}
if not bDisableVerticalSteps then
Mortising.CloneStepsVertical = MachiningLib.GetMachiningSteps( dPocketHeight, TOOLS[Mortising.nToolIndex].dThickness)
end
-- geometria
Mortising.Geometry = {{Proc.id, FaceToMachine.id}}
-- nome operazione
+6
View File
@@ -206,6 +206,7 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
OptionalParameters.bDisableHorizontalSteps = true
Machining.AuxiliaryData.bIsSplitOrCut = true
@@ -224,6 +225,7 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Part.dWidth / 2 + BeamData.CUT_EXTRA_MIN
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Presplit;', 'Precut;')
OptionalParameters.bDisableHorizontalSteps = true
local EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, -Y_AX())
Machining.Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
@@ -238,6 +240,7 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Part.dWidth / 2 + BeamData.CUT_EXTRA_MIN
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
OptionalParameters.bDisableHorizontalSteps = true
Machining.AuxiliaryData.bIsSplitOrCut = true
@@ -254,6 +257,7 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Part.dHeight + BeamData.CUT_EXTRA
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
OptionalParameters.bDisableHorizontalSteps = true
Machining.AuxiliaryData.bIsSplitOrCut = true
@@ -272,6 +276,7 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
local dExtraMaxMat = ( Strategy.SplitStrategy[1].ToolInfo.dMaxMatBladeFromTop + Strategy.SplitStrategy[2].ToolInfo.dMaxMatBladeFromDown - Part.dHeight - BeamData.CUT_EXTRA_MIN) / 2
OptionalParameters.dDepthToMachine = Strategy.SplitStrategy[1].ToolInfo.dMaxMatBladeFromTop - dExtraMaxMat
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Presplit;', 'Precut;')
OptionalParameters.bDisableHorizontalSteps = true
local EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, Z_AX())
@@ -287,6 +292,7 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Strategy.SplitStrategy[2].ToolInfo.dMaxMatBladeFromDown - dExtraMaxMat
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
OptionalParameters.bDisableHorizontalSteps = true
Machining.AuxiliaryData.bIsSplitOrCut = true