- in BLADETOWASTE primo implemento di lavorazione a cubetti, non funzionante
This commit is contained in:
@@ -297,6 +297,7 @@ end
|
||||
-- funzione per cercare utensile tipo LAMA con certe caratteristiche
|
||||
-- TODO da completare
|
||||
-- TODO il FindBlade dovrà restituire di utilizzare sempre la lama sopra se l'angolo lo permette, ma avendo un'altezza massima (da macchina) oltre cui il DownUp non sarà fattibile (evita collisioni tra asse e pezzo)
|
||||
-- TODO bisogna leggere vtToolDirection in arrivo e confrontarlo con il SetupInfo
|
||||
function MachiningLib.FindBlade( Proc, ToolSearchParameters)
|
||||
local ToolInfo = {}
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
dExtendAfterTail = 10000
|
||||
end
|
||||
|
||||
-- considerazione necessarie a determinare se lasciare il legno attaccato oppure no
|
||||
-- considerazioni necessarie a determinare se lavorare con codolo oppure no
|
||||
local dFeatureMaxNotClampableLengthHead, dFeatureMaxNotClampableLengthTail = FeatureLib.GetFeatureMaxNotClampableLengths( Proc, Part)
|
||||
local bLeaveWasteAttached = Strategy.Parameters.sCuttingStrategy == 'LEAVE_WASTE_ATTACHED'
|
||||
local bFeatureHindersClamping = FeatureLib.IsMachiningLong( max( dFeatureMaxNotClampableLengthHead, dFeatureMaxNotClampableLengthTail), Part, { dMaxSegmentLength = BeamData.LONGCUT_ENDLEN})
|
||||
@@ -195,8 +195,6 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
dMRRBlade = ( dMRRBlade1 + dMRRBlade2) / 2
|
||||
|
||||
dCompletionPercentage = Cutting2.dCompletionPercentage
|
||||
|
||||
-- se la lavorazione con codolo fallisce o non è possibile si proseguirà a quella con cubetti
|
||||
end
|
||||
|
||||
-- lavorazione a cubetti / taglio singolo
|
||||
@@ -222,7 +220,7 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
Strategy.Result.sInfo = Strategy.Result.sInfo .. '\n' .. Blade.Result.Sorted[i].sMessage
|
||||
end
|
||||
end
|
||||
-- TODO calcolo migliore area lavorata; se ho il codolo ha senso l'incompleta? se incompleta con codolo faccio i cubetti??
|
||||
-- TODO migliorare calcolo area lavorata; se ho il codolo ha senso l'incompleta? se incompleta con codolo faccio i cubetti??
|
||||
if nIsApplicableCount > 0 then
|
||||
if dCompletionPercentage > 100 - 10 * GEO.EPS_SMALL then
|
||||
Strategy.Result.sStatus = 'Completed'
|
||||
|
||||
@@ -9,8 +9,10 @@ require( 'EgtBase')
|
||||
|
||||
-- Carico i dati globali
|
||||
local BeamData = require( 'BeamData')
|
||||
local BeamLib = require( 'BeamLib')
|
||||
local FeatureLib = require( 'FeatureLib')
|
||||
local MachiningLib = require( 'MachiningLib')
|
||||
local DiceCut = require( 'DiceCut')
|
||||
-- strategie di base
|
||||
local FaceByBlade = require('FACEBYBLADE')
|
||||
|
||||
@@ -22,6 +24,15 @@ function BLADETOWASTE.Make( Proc, Part, OptionalParameters)
|
||||
local Result = {}
|
||||
local dCompletionPercentage = 0
|
||||
|
||||
-- controlli preventivi
|
||||
if Proc.nFct > 2 then
|
||||
error( 'BladeToWaste : max 2 faces supported')
|
||||
elseif Proc.nFct == 2 then
|
||||
if Proc.AdjacencyMatrix[1][2] > 10 * GEO.EPS_SMALL or Proc.AdjacencyMatrix[1][2] < -91 then
|
||||
error( 'BladeToWaste : angle between faces must be concave and >= 90deg')
|
||||
end
|
||||
end
|
||||
|
||||
-- parametri opzionali e default
|
||||
local nToolIndex = OptionalParameters.nToolIndex
|
||||
local bDropWholeWaste = OptionalParameters.bDropWholeWaste or false
|
||||
@@ -71,6 +82,26 @@ function BLADETOWASTE.Make( Proc, Part, OptionalParameters)
|
||||
return Result, dCompletionPercentage
|
||||
end
|
||||
|
||||
-- lavorazione con cubetti
|
||||
-- se due facce, la faccia principale è la più grande
|
||||
local Face1 = Proc.Faces[1]
|
||||
local Face2 = {}
|
||||
if Proc.nFct == 2 then
|
||||
Face2 = Proc.Faces[2]
|
||||
end
|
||||
-- direzione migliore di lavoro, per la ricerca utensile
|
||||
local _, dCutH, dCutV = BeamLib.GetFaceHvRefDim( Proc.Id, 0, Part.b3Raw)
|
||||
-- ricerca utensile
|
||||
local ToolSearchParameters = {}
|
||||
ToolSearchParameters.vtToolDirection = EdgeToMachine.vtN
|
||||
ToolSearchParameters.bAllowTopHead = true
|
||||
-- TODO bisognerà implementare anche la lama da sotto
|
||||
ToolSearchParameters.bAllowBottomHead = false
|
||||
ToolSearchParameters.bForceLongcutBlade = false
|
||||
ToolInfo = MachiningLib.FindBlade( Proc, ToolSearchParameters)
|
||||
nToolIndex = ToolInfo.nToolIndex
|
||||
|
||||
local vCuts = DiceCut.GetDice( Part, Face1, Face2, OptionalParameters)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user