- in BLADETOWASTE si passano i dati corretti alla DiceCut; manca calcolo lavorazioni su facce con relativo calcolo vtToolDirection ad ogni faccia
- in DiceCut aggiunta condizione, al momento commentata, per usare la dimensione cubetto ridotta in caso di faccia quasi verticale senza componenti in Y
This commit is contained in:
@@ -153,6 +153,7 @@ local function GetOrtoCutCenter( FacetId, ptC, vtN, vtO, dOffsetEff, dNzLimDownU
|
||||
local dWidth = Box:getDimY()
|
||||
|
||||
-- se faccia non troppo lunga, con un lato piccolo e non diretta troppo verso il basso, non servono dice
|
||||
-- TODO si può eliminare questo test dato che vengono verificate già volume e dimensione del cubetto??
|
||||
local dMaxLen = BeamData.MAX_LEN_DICE or 600
|
||||
if dLen < dMaxLen and dWidth < dMaxLen and
|
||||
( dLen < dOffsetEff + 1.0 or dWidth < dOffsetEff + 1.0) and vtN:getZ() > dNzLimDownUp then
|
||||
@@ -421,6 +422,8 @@ function DiceCut.GetDice( Part, Face1, Face2, OptionalParameters)
|
||||
local dOffsetParallel = OptionalParameters.dOffsetParallel or BeamData.MAX_DIM_DICE
|
||||
-- distanza tra piani ortogonali
|
||||
local dOffsetOrthogonal = OptionalParameters.dOffsetOrthogonal or BeamData.MAX_DIM_DICE
|
||||
-- distanza ridotta tra piani ortogonali - usato in tagli orizzontali con affondamento verticale
|
||||
local dOffsetOrthogonalReduced = OptionalParameters.dOffsetOrthogonalReduced or BeamData.MAX_DIM_HTCUT
|
||||
-- numero massimo piani paralleli
|
||||
local nStepParallel = OptionalParameters.nStepParallel or 100
|
||||
-- numero massimo piani perpendicolari
|
||||
@@ -442,6 +445,12 @@ function DiceCut.GetDice( Part, Face1, Face2, OptionalParameters)
|
||||
dElevO = DistanzaMassima( nAddGrpId, ptCSubordinateFace, vtNSubordinateFace, ptCMainFace, vtNMainFace, b3BoxDicing, TBoxPoint)
|
||||
end
|
||||
|
||||
-- TODO parte sotto da aggiungere???? se sì va passata anche la dimensione cubetto ridotta dOffsetOrthogonalReduced
|
||||
-- se non c'è testa da sotto e normali senza componenti in Y con faccia quasi verticale e trave non alta, uso per offset i limiti dei tagli di testa e coda
|
||||
-- if not BD.TURN and not BD.DOWN_HEAD and abs( vtNPlanes:getY()) < 0.1 and vtNPlanes:getZ() < 0.7071 and ( not vtNBond or abs( vtNBond:getY()) < 0.1) and BBoxRawPart:getDimZ() < BD.MIN_DIM_HBEAM then
|
||||
-- dOffsetOrthogonal = dOffsetOrthogonalReduced
|
||||
-- end
|
||||
|
||||
-- aggiungo piccolo extra agli offset
|
||||
dOffsetParallel = dOffsetParallel + 10 * GEO.EPS_SMALL
|
||||
dOffsetOrthogonal = dOffsetOrthogonal + 10 * GEO.EPS_SMALL
|
||||
|
||||
@@ -179,8 +179,23 @@ function BLADETOWASTE.Make( ProcOrId, Part, OptionalParameters)
|
||||
nToolIndex = GetBestBladeForDicing( Proc, Part, Face1, OptionalParameters)
|
||||
end
|
||||
|
||||
-- se non trovata lama la lavorazione non è fattibile
|
||||
if not nToolIndex then
|
||||
return Result, dCompletionPercentage
|
||||
end
|
||||
|
||||
-- calcolo dimensione cubetto e eventuale cubetto ridotto (tagli orizzontali con affondamento verticale)
|
||||
local dDiceDimension = min( TOOLS[nToolIndex].dMaxMaterial, BeamData.MAX_DIM_DICE)
|
||||
local dDiceDimensionReduced = dDiceDimension
|
||||
if TOOLS[nToolIndex].SetupInfo.dMaxMatDecrease then
|
||||
dDiceDimensionReduced = min( dDiceDimension, dDiceDimension - TOOLS[nToolIndex].SetupInfo.dMaxMatDecrease)
|
||||
end
|
||||
|
||||
-- calcolo cubetti
|
||||
local OptionalParametersDiceCut = {}
|
||||
OptionalParametersDiceCut.dOffsetParallel = dDiceDimension
|
||||
OptionalParametersDiceCut.dOffsetOrthogonal = dDiceDimension
|
||||
OptionalParameters.dOffsetOrthogonalReduced = dDiceDimensionReduced
|
||||
local vCuts = DiceCut.GetDice( Part, Face1, Face2, OptionalParametersDiceCut)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user