DataBeam :
- modifiche a DiceCut per uso generale di dNzLimDwnUp = BL.GetNzLimDownUp... - modifiche a fori per angolo limite da BeamData e diametro portautensile da utensile - migliorie a profili - aggiunta possibilità di pulitura spigolo su L020.
This commit is contained in:
+6
-6
@@ -129,7 +129,7 @@ end
|
||||
-- vtO: il versore dei piani ortogonali
|
||||
-- dOffsetEff: offset della distanza dal punto centrale
|
||||
-- Verifica se l'asse X del box costruito sopra la superficie è più grande di un certo offset
|
||||
local function GetOrtoCutCenter( FacetId, ptC, vtN, vtO, dOffsetEff)
|
||||
local function GetOrtoCutCenter( FacetId, ptC, vtN, vtO, dOffsetEff, dNzLimDwnUp)
|
||||
local FrameLocal = Frame3d( EgtSurfTmFacetCenter( FacetId, 0, GDB_ID.ROOT))
|
||||
EgtSetGridFrame(FrameLocal)
|
||||
local IdAuxLocal = EgtGroup(EgtGetParent( FacetId), FrameLocal)
|
||||
@@ -148,7 +148,7 @@ local function GetOrtoCutCenter( FacetId, ptC, vtN, vtO, dOffsetEff)
|
||||
local dWidth = Box:getDimY()
|
||||
|
||||
-- se faccia con un lato piccolo e non diretta troppo verso il basso, non servono dice
|
||||
if ( dLen < dOffsetEff + 1.0 or dWidth < dOffsetEff + 1.0) and vtN:getZ() > -0.5 then
|
||||
if ( dLen < dOffsetEff + 1.0 or dWidth < dOffsetEff + 1.0) and vtN:getZ() > dNzLimDwnUp then
|
||||
return nil, nil, nil
|
||||
end
|
||||
|
||||
@@ -255,7 +255,7 @@ end
|
||||
-- OffsetP: offset della distanza dal punto centrale
|
||||
-- BBoxRawPart: il grezzo della barra
|
||||
-- Verifica se l'asse X del box costruito sopra le 2 facce è più piccolo di un certo offset e quindi la faccia O è superflua
|
||||
local function VerifyFirstOrthoCut( CutTable, OffsetP, BBoxRawPart)
|
||||
local function VerifyFirstOrthoCut( CutTable, OffsetP, BBoxRawPart, dNzLimDwnUp)
|
||||
|
||||
if not CutTable[1] or not CutTable[2] then return end
|
||||
|
||||
@@ -285,7 +285,7 @@ local function VerifyFirstOrthoCut( CutTable, OffsetP, BBoxRawPart)
|
||||
-- lunghezza totale faccia
|
||||
local dLongSize = x1 + x2
|
||||
-- se faccia piccola e non orientata verso il basso, elimino ortogonale e unisco le due parti
|
||||
if dLongSize <= OffsetP + 1.0 and vtN1:getZ() > -0.5 then
|
||||
if dLongSize <= OffsetP + 1.0 and vtN1:getZ() > dNzLimDwnUp then
|
||||
local nParent = EgtGetParent( Cut1Id)
|
||||
local SurfId = EgtSurfTmBySewing( nParent, { Cut1Id, Cut2Id})
|
||||
EgtSetColor( SurfId, Color3d( FUCHSIA(), 60))
|
||||
@@ -482,7 +482,7 @@ function DiceCut.GetDice( nParent, BBoxRawPart, ptCPlanes, vtNPlanes, bGetOrtoPl
|
||||
-- CopyPlane: 0 => crea la prima faccia direttamente sul punto passato
|
||||
-- CopyPlane: 1 => crea la prima faccia e tutte le altre con l'offset passato
|
||||
-- CopyPlane: 0.5 => crea la prima faccia a metà offset e tutte le altre con l'offest intero
|
||||
local OffsetRel, CopyPlane, dCenOffs, ptCStart = GetOrtoCutCenter( TabellaTmSurfP[PlnInd], ptCInner, vtNInner, vtO, OffsetO)
|
||||
local OffsetRel, CopyPlane, dCenOffs, ptCStart = GetOrtoCutCenter( TabellaTmSurfP[PlnInd], ptCInner, vtNInner, vtO, OffsetO, dNzLimDwnUp)
|
||||
|
||||
if OffsetRel and CopyPlane and dCenOffs then
|
||||
ptCInner = ptCInner + dCenOffs * vtO
|
||||
@@ -531,7 +531,7 @@ function DiceCut.GetDice( nParent, BBoxRawPart, ptCPlanes, vtNPlanes, bGetOrtoPl
|
||||
|
||||
-- Se esiste la superficie limitante (nFacet == 2) verifica se il taglio più esterno è superfluo e quindi viene eliminato
|
||||
if not bGetOrtoPlanes then
|
||||
VerifyFirstOrthoCut( UltimateTable, originalOffsetP, BBoxRawPart)
|
||||
VerifyFirstOrthoCut( UltimateTable, originalOffsetP, BBoxRawPart, dNzLimDwnUp)
|
||||
end
|
||||
|
||||
return UltimateTable
|
||||
|
||||
Reference in New Issue
Block a user