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:
Dario Sassi
2020-03-06 14:46:04 +00:00
parent 901ba42814
commit b7d8db32b0
8 changed files with 256 additions and 56 deletions
+6 -6
View File
@@ -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