Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d1c014e20c | |||
| 92a924dde1 | |||
| d033fee929 | |||
| 1070910b8c | |||
| 306b5b6dff | |||
| d2a6d7e75c | |||
| 6309092689 | |||
| 2ec0d8162e | |||
| 60919c595d | |||
| 0638e3c6f3 | |||
| de80902a86 | |||
| 9fbd4a5156 | |||
| 6bd2e5ffb4 | |||
| f89129d2e8 | |||
| e0e2f630d2 | |||
| 1664513c8f | |||
| c701d4132f | |||
| a9052c1d72 | |||
| 593fdcfc24 | |||
| b9c8921cb2 | |||
| b3bb386ec7 | |||
| c69f80a903 | |||
| d8de7467b0 | |||
| 42c043fcd7 |
+10
-3
@@ -51,6 +51,7 @@
|
|||||||
-- 2022/09/26 In ClassifyTopology aggiunto passaggio del parametro nRawId
|
-- 2022/09/26 In ClassifyTopology aggiunto passaggio del parametro nRawId
|
||||||
-- 2023/10/24 Aggiunta scrittura parametro BARLEN nelle info del mach group
|
-- 2023/10/24 Aggiunta scrittura parametro BARLEN nelle info del mach group
|
||||||
-- 2023/11/08 Aggiunta gestione processi Variant.
|
-- 2023/11/08 Aggiunta gestione processi Variant.
|
||||||
|
-- 2023/11/30 Migliorato il calcolo elevazione con l'utilizzo della nuova funzione EgtSurfTmFacetElevationInBBox.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local BeamExec = {}
|
local BeamExec = {}
|
||||||
@@ -301,12 +302,18 @@ local function CollectFeatures( PartId, b3Raw, dCurrOvmH, dCurrOvmT)
|
|||||||
end
|
end
|
||||||
Proc.Box = EgtGetBBoxGlob( ProcId, GDB_BB.STANDARD)
|
Proc.Box = EgtGetBBoxGlob( ProcId, GDB_BB.STANDARD)
|
||||||
if b3Raw then
|
if b3Raw then
|
||||||
|
local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( PartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||||
-- recupero l'elenco delle facce della parte interessate dalla feature
|
-- recupero l'elenco delle facce della parte interessate dalla feature
|
||||||
Proc.AffectedFaces = BL.GetProcessAffectedFaces( Proc)
|
Proc.AffectedFaces = BL.GetProcessAffectedFaces( Proc)
|
||||||
-- recupero informazioni sulle facce della feature
|
-- recupero informazioni sulle facce della feature
|
||||||
Proc.Face = {}
|
if not Proc.Face then
|
||||||
for i = 1, Proc.Fct do
|
Proc.Face = {}
|
||||||
Proc.Face[i] = { Id = i - 1, VtN = EgtSurfTmFacetNormVersor( Proc.Id, i - 1, GDB_ID.ROOT ), Elevation = BL.GetFaceElevation( Proc.Id, i - 1, PartId)}
|
for i = 1, Proc.Fct do
|
||||||
|
Proc.Face[i] = { Id = i - 1, VtN = EgtSurfTmFacetNormVersor( Proc.Id, i - 1, GDB_ID.ROOT )}
|
||||||
|
if Proc.Fct < 10 then
|
||||||
|
Proc.Face[i].Elevation = EgtSurfTmFacetElevationInBBox( Proc.Id, i - 1, b3Solid, true, GDB_ID.ROOT)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if Proc.Box and not Proc.Box:isEmpty() then
|
if Proc.Box and not Proc.Box:isEmpty() then
|
||||||
|
|||||||
+17
-47
@@ -26,6 +26,7 @@
|
|||||||
-- 2023/09/25 In GetFaceWithMostAdj aggiunta verifica sottosquadro anche per facce non adiacenti.
|
-- 2023/09/25 In GetFaceWithMostAdj aggiunta verifica sottosquadro anche per facce non adiacenti.
|
||||||
-- 2023/09/26 In GetFaceWithMostAdj gestito primo parametro anche come Proc; gestito caso strip con facce tutte in sottosquadro.
|
-- 2023/09/26 In GetFaceWithMostAdj gestito primo parametro anche come Proc; gestito caso strip con facce tutte in sottosquadro.
|
||||||
-- 2023/09/26 Spostata qui funzione IsFeatureCuttingEntireSection da BeamExec.
|
-- 2023/09/26 Spostata qui funzione IsFeatureCuttingEntireSection da BeamExec.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation. Se l'elevazione è già calcolata la recupera da Proc, altrimenti la calcola al momento.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local BeamLib = {}
|
local BeamLib = {}
|
||||||
@@ -440,54 +441,22 @@ function BeamLib.GetBoxFaceNorm( b3Box, ptP, vtV)
|
|||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function BeamLib.GetFaceElevation( nSurfId, nFac, nPartId)
|
function BeamLib.GetFaceElevation( procOrProcId, nFacet, b3Solid)
|
||||||
-- centro e normale della faccia
|
local Proc, nProcId
|
||||||
local ptC, vtN = EgtSurfTmFacetCenter( nSurfId, nFac, GDB_ID.ROOT)
|
if type( procOrProcId) == "table" then
|
||||||
if not ptC or not vtN then return 0 end
|
Proc = procOrProcId
|
||||||
-- riferimento OCS della faccia per ricavare elevazione rispetto alla faccia della superficie
|
nProcId = Proc.Id
|
||||||
local frOCS = Frame3d( ptC, vtN)
|
else
|
||||||
local b3Box = EgtGetBBoxRef( nSurfId, GDB_BB.STANDARD, frOCS)
|
nProcId = procOrProcId
|
||||||
local dElev = b3Box:getMax():getZ()
|
end
|
||||||
-- se definito identificativo di pezzo
|
local dElevation
|
||||||
if nPartId then
|
if not Proc or not Proc.Face or not Proc.Face[nFacet + 1].Elevation then
|
||||||
-- se superficie con più facce
|
dElevation = EgtSurfTmFacetElevationInBBox( nProcId, nFacet, b3Solid, true, GDB_ID.ROOT)
|
||||||
if EgtSurfTmFacetCount( nSurfId) > 1 then
|
else
|
||||||
-- determino elevazione del centro faccia rispetto al box del pezzo
|
dElevation = Proc.Face[nFacet + 1].Elevation
|
||||||
local _, dCenElev = BeamLib.GetPointDirDepth( nPartId, ptC, vtN)
|
|
||||||
if dCenElev and dCenElev > dElev then
|
|
||||||
dElev = dCenElev
|
|
||||||
end
|
|
||||||
-- altrimenti superficie ad una sola faccia
|
|
||||||
else
|
|
||||||
-- determino elevazione box del pezzo rispetto alla faccia
|
|
||||||
local b3Solid = EgtGetBBoxRef( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD, frOCS)
|
|
||||||
local dSolidElev = b3Solid:getMax():getZ()
|
|
||||||
if b3Solid and dSolidElev > dElev then
|
|
||||||
dElev = dSolidElev
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
return dElev
|
|
||||||
end
|
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
return dElevation
|
||||||
function BeamLib.GetOtherFaceElevation( nSurfId, nOtherSurfId, nOtherFac, nPartId)
|
|
||||||
-- centro e normale della faccia
|
|
||||||
local ptC, vtN = EgtSurfTmFacetCenter( nOtherSurfId, nOtherFac, GDB_ID.ROOT)
|
|
||||||
if not ptC or not vtN then return 0 end
|
|
||||||
-- riferimento OCS della faccia per ricavare elevazione rispetto alla faccia della superficie
|
|
||||||
local frOCS = Frame3d( ptC, vtN)
|
|
||||||
local b3Box = EgtGetBBoxRef( nSurfId, GDB_BB.STANDARD, frOCS)
|
|
||||||
local dElev = b3Box:getMax():getZ()
|
|
||||||
-- se definito identificativo di pezzo
|
|
||||||
if nPartId then
|
|
||||||
-- determino elevazione del centro faccia rispetto al box del pezzo
|
|
||||||
local _, dCenElev = BeamLib.GetPointDirDepth( nPartId, ptC, vtN)
|
|
||||||
if dCenElev and dCenElev > dElev then
|
|
||||||
dElev = dCenElev
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return dElev
|
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
@@ -515,6 +484,7 @@ end
|
|||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function BeamLib.GetFaceWithMostAdj( Proc, nPartId, bCompare3Fc, dCosSideAng)
|
function BeamLib.GetFaceWithMostAdj( Proc, nPartId, bCompare3Fc, dCosSideAng)
|
||||||
local nSurfId = Proc.Id
|
local nSurfId = Proc.Id
|
||||||
|
local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||||
-- verifica che la superficie non sia chiusa e quindi non lavorabile
|
-- verifica che la superficie non sia chiusa e quindi non lavorabile
|
||||||
if EgtSurfIsClosed( nSurfId) then
|
if EgtSurfIsClosed( nSurfId) then
|
||||||
return
|
return
|
||||||
@@ -645,7 +615,7 @@ function BeamLib.GetFaceWithMostAdj( Proc, nPartId, bCompare3Fc, dCosSideAng)
|
|||||||
local dMinElev, dMinElev2 = GEO.INFINITO, GEO.INFINITO
|
local dMinElev, dMinElev2 = GEO.INFINITO, GEO.INFINITO
|
||||||
local dtElev = {}
|
local dtElev = {}
|
||||||
for i = 1, #nFacInd do
|
for i = 1, #nFacInd do
|
||||||
local dElev = BeamLib.GetFaceElevation( nSurfId, nFacInd[i], nPartId)
|
local dElev = BeamLib.GetFaceElevation( Proc, nFacInd[i], b3Solid)
|
||||||
table.insert( dtElev, dElev)
|
table.insert( dtElev, dElev)
|
||||||
if dElev < dMinElev then
|
if dElev < dMinElev then
|
||||||
if dMinElev < dMinElev2 then
|
if dMinElev < dMinElev2 then
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
-- FaceByPocket.lua by Egaltech s.r.l. 2023/04/04
|
-- FaceByPocket.lua by Egaltech s.r.l. 2023/04/04
|
||||||
-- Gestione svuotatura di feature con una faccia
|
-- Gestione svuotatura di feature con una faccia
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local FaceByPocket = {}
|
local FaceByPocket = {}
|
||||||
@@ -78,7 +79,7 @@ function FaceByPocket.Make( Proc, nSurfId, nFacet, sPocketing, nPartId, b3Solid,
|
|||||||
end
|
end
|
||||||
-- dati della faccia
|
-- dati della faccia
|
||||||
local ptC, vtN = EgtSurfTmFacetCenter( nSurfId, nFacet, GDB_ID.ROOT)
|
local ptC, vtN = EgtSurfTmFacetCenter( nSurfId, nFacet, GDB_ID.ROOT)
|
||||||
local dElev = BL.GetFaceElevation( nSurfId, nFacet, nPartId)
|
local dElev = BL.GetFaceElevation( nSurfId, nFacet, b3Solid)
|
||||||
-- determino numero e valore degli step di lavorazione
|
-- determino numero e valore degli step di lavorazione
|
||||||
local nSurfStep = ceil( dElev / dMaxDepth)
|
local nSurfStep = ceil( dElev / dMaxDepth)
|
||||||
local dSurfStep = dElev / nSurfStep
|
local dSurfStep = dElev / nSurfStep
|
||||||
|
|||||||
+41
-3
@@ -1,4 +1,4 @@
|
|||||||
-- FacesBySaw.lua by Egaltech s.r.l. 2023/09/26
|
-- FacesBySaw.lua by Egaltech s.r.l. 2023/11/28
|
||||||
-- Gestione taglio con lama di feature con una o due facce
|
-- Gestione taglio con lama di feature con una o due facce
|
||||||
-- 2021/01/06 Cambiato limite per attacco Tg con lama e CalcLeadInOutGeom rinominata in CalcLeadInOutPerpGeom.
|
-- 2021/01/06 Cambiato limite per attacco Tg con lama e CalcLeadInOutGeom rinominata in CalcLeadInOutPerpGeom.
|
||||||
-- 2021/02/03 In taglio lama si accettano anche due lati con deviazione minore di 20deg.
|
-- 2021/02/03 In taglio lama si accettano anche due lati con deviazione minore di 20deg.
|
||||||
@@ -20,6 +20,8 @@
|
|||||||
-- 2023/09/26 Piccola modifica per Turn su bInvert di MakeOne.
|
-- 2023/09/26 Piccola modifica per Turn su bInvert di MakeOne.
|
||||||
-- 2023/10/24 In MakeOne migliorata gestione taglio con percorso bilinea. Aggiunta funzione GetNameSolidFaceIncludingLine.
|
-- 2023/10/24 In MakeOne migliorata gestione taglio con percorso bilinea. Aggiunta funzione GetNameSolidFaceIncludingLine.
|
||||||
-- 2023/11/14 In MakeOne migliorato calcolo scelta soluzione per macchina TURN
|
-- 2023/11/14 In MakeOne migliorato calcolo scelta soluzione per macchina TURN
|
||||||
|
-- 2023/11/28 In MakeTwo raffinamento calcolo vtRef per casi dubbi.
|
||||||
|
-- 2023/12/06 In CalcLeadInOutPerpGeom gestito caso in cui la geometria della feature esce dal grezzo.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local FacesBySaw = {}
|
local FacesBySaw = {}
|
||||||
@@ -191,6 +193,7 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
nOrthoOpposite = Par5
|
nOrthoOpposite = Par5
|
||||||
vtOrthO = BL.GetVersRef( Par5)
|
vtOrthO = BL.GetVersRef( Par5)
|
||||||
end
|
end
|
||||||
|
EgtOutLog( 'VtOrthO='..tostring( vtOrthO)..' FaceUse='..tostring( nOrthoOpposite), 1)
|
||||||
-- verifico se testa da sotto oppure se lavorazione sotto con testa da sopra
|
-- verifico se testa da sotto oppure se lavorazione sotto con testa da sopra
|
||||||
if not dVzLimDwnUp then dVzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN, vtOrthO) end
|
if not dVzLimDwnUp then dVzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN, vtOrthO) end
|
||||||
local bDownHead = ( dVzLimDwnUp and dVzLimDwnUp < - 1.5)
|
local bDownHead = ( dVzLimDwnUp and dVzLimDwnUp < - 1.5)
|
||||||
@@ -485,14 +488,14 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType,
|
|||||||
vtRef[1] = vtN[1] ^ vtTg
|
vtRef[1] = vtN[1] ^ vtTg
|
||||||
if vtRef[1] * vtN[2] < 0 then vtRef[1] = - vtRef[1] end
|
if vtRef[1] * vtN[2] < 0 then vtRef[1] = - vtRef[1] end
|
||||||
vtRef[1]:normalize()
|
vtRef[1]:normalize()
|
||||||
if abs( vtTg:getZ()) < 0.708 and abs( vtRef[1]:getZ()) < 0.577 and abs( abs( vtRef[1]:getX()) - abs( vtRef[1]:getY())) < 0.1 then
|
if abs( vtTg:getZ()) < 0.708 and abs( vtRef[1]:getZ()) < 0.577 and abs( abs( vtRef[1]:getX()) - abs( vtRef[1]:getY())) < 0.05 then
|
||||||
vtRef[1] = ptC[1] - ptM
|
vtRef[1] = ptC[1] - ptM
|
||||||
vtRef[1]:normalize()
|
vtRef[1]:normalize()
|
||||||
end
|
end
|
||||||
vtRef[2] = vtN[2] ^ vtTg
|
vtRef[2] = vtN[2] ^ vtTg
|
||||||
if vtRef[2] * vtN[1] < 0 then vtRef[2] = - vtRef[2] end
|
if vtRef[2] * vtN[1] < 0 then vtRef[2] = - vtRef[2] end
|
||||||
vtRef[2]:normalize()
|
vtRef[2]:normalize()
|
||||||
if abs( vtTg:getZ()) < 0.708 and abs( vtRef[2]:getZ()) < 0.577 and abs( abs( vtRef[2]:getX()) - abs( vtRef[2]:getY())) < 0.1 then
|
if abs( vtTg:getZ()) < 0.708 and abs( vtRef[2]:getZ()) < 0.577 and abs( abs( vtRef[2]:getX()) - abs( vtRef[2]:getY())) < 0.05 then
|
||||||
vtRef[2] = ptC[2] - ptM
|
vtRef[2] = ptC[2] - ptM
|
||||||
vtRef[2]:normalize()
|
vtRef[2]:normalize()
|
||||||
end
|
end
|
||||||
@@ -549,6 +552,7 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType,
|
|||||||
local vCuts = DC.GetDice( nAddGrpId, b3Solid, ptC[nUpInd], vtN[nUpInd], false, ptC[nOtInd], vtN[nOtInd])
|
local vCuts = DC.GetDice( nAddGrpId, b3Solid, ptC[nUpInd], vtN[nUpInd], false, ptC[nOtInd], vtN[nOtInd])
|
||||||
--DC.PrintOrderCut( vCuts)
|
--DC.PrintOrderCut( vCuts)
|
||||||
if #vCuts > 0 then
|
if #vCuts > 0 then
|
||||||
|
EgtOutLog( 'FacesBySaw.MakeTwo', 4)
|
||||||
-- sistemo posizione nel DB, nome e info
|
-- sistemo posizione nel DB, nome e info
|
||||||
for i = 1, #vCuts do
|
for i = 1, #vCuts do
|
||||||
for j = 1, #vCuts[i] do
|
for j = 1, #vCuts[i] do
|
||||||
@@ -712,6 +716,40 @@ function FacesBySaw.CalcLeadInOutPerpGeom( ptP1, ptP2, vtV1, vtV2, vtN, dRad, vt
|
|||||||
-- Spostamento punti per effetto dell'extra o della deficienza di taglio
|
-- Spostamento punti per effetto dell'extra o della deficienza di taglio
|
||||||
ptP1 = ptP1 + vtX * ( EgtIf( bRight, - dCutExtra, dCutExtra))
|
ptP1 = ptP1 + vtX * ( EgtIf( bRight, - dCutExtra, dCutExtra))
|
||||||
ptP2 = ptP2 + vtX * ( EgtIf( bRight, - dCutExtra, dCutExtra))
|
ptP2 = ptP2 + vtX * ( EgtIf( bRight, - dCutExtra, dCutExtra))
|
||||||
|
-- Spostamento punti se fuori dal pezzo: si riportano sul bordo del grezzo
|
||||||
|
local dDeltaMovePt1, dDeltaMovePt2 = 0, 0
|
||||||
|
local dPt1X, dPt1Y, dPt1Z = ptP1:getX(), ptP1:getY(), ptP1:getZ()
|
||||||
|
local dPt2X, dPt2Y, dPt2Z = ptP2:getX(), ptP2:getY(), ptP2:getZ()
|
||||||
|
local dBoxMinX, dBoxMinY, dBoxMinZ = b3Box:getMin():getX(), b3Box:getMin():getY(), b3Box:getMin():getZ()
|
||||||
|
local dBoxMaxX, dBoxMaxY, dBoxMaxZ = b3Box:getMax():getX(), b3Box:getMax():getY(), b3Box:getMax():getZ()
|
||||||
|
if dPt1X < dBoxMinX then
|
||||||
|
dDeltaMovePt1 = dBoxMinX - dPt1X
|
||||||
|
elseif dPt1X > dBoxMaxX then
|
||||||
|
dDeltaMovePt1 = dBoxMaxX - dPt1X
|
||||||
|
elseif dPt1Y < dBoxMinY then
|
||||||
|
dDeltaMovePt1 = dBoxMinY - dPt1Y
|
||||||
|
elseif dPt1Y > dBoxMaxY then
|
||||||
|
dDeltaMovePt1 = dBoxMaxY - dPt1Y
|
||||||
|
elseif dPt1Z < dBoxMinZ then
|
||||||
|
dDeltaMovePt1 = dBoxMinZ - dPt1Z
|
||||||
|
elseif dPt1Z > dBoxMaxZ then
|
||||||
|
dDeltaMovePt1 = dBoxMaxZ - dPt1Z
|
||||||
|
end
|
||||||
|
if dPt2X < dBoxMinX then
|
||||||
|
dDeltaMovePt2 = dPt2X - dBoxMinX
|
||||||
|
elseif dPt2X > dBoxMaxX then
|
||||||
|
dDeltaMovePt2 = dPt2X - dBoxMaxX
|
||||||
|
elseif dPt2Y < dBoxMinY then
|
||||||
|
dDeltaMovePt2 = dPt2Y - dBoxMinY
|
||||||
|
elseif dPt2Y > dBoxMaxY then
|
||||||
|
dDeltaMovePt2 = dPt2Y - dBoxMaxY
|
||||||
|
elseif dPt2Z < dBoxMinZ then
|
||||||
|
dDeltaMovePt2 = dPt2Z - dBoxMinZ
|
||||||
|
elseif dPt2Z > dBoxMaxZ then
|
||||||
|
dDeltaMovePt2 = dPt2Z - dBoxMaxZ
|
||||||
|
end
|
||||||
|
ptP1 = ptP1 + vtTg * dDeltaMovePt1
|
||||||
|
ptP2 = ptP2 + vtTg * dDeltaMovePt2
|
||||||
-- Non va considerata l'uscita dalla faccia sotto, pertanto va abbassata
|
-- Non va considerata l'uscita dalla faccia sotto, pertanto va abbassata
|
||||||
-- 2021/02/26 Abilito anche uscita sotto
|
-- 2021/02/26 Abilito anche uscita sotto
|
||||||
local b3MyBox = BBox3d( b3Box) ; --b3MyBox:Add( b3MyBox:getMin() - 1000 * Z_AX())
|
local b3MyBox = BBox3d( b3Box) ; --b3MyBox:Add( b3MyBox:getMin() - 1000 * Z_AX())
|
||||||
|
|||||||
+15
-2
@@ -23,6 +23,7 @@
|
|||||||
-- 2023/08/01 In caso di pezzi alti su macchina tipo PF i tagli doppi di lato non vengono usati, si usa il metodo standard.
|
-- 2023/08/01 In caso di pezzi alti su macchina tipo PF i tagli doppi di lato non vengono usati, si usa il metodo standard.
|
||||||
-- 2023/09/12 In MakeFromTop abbassato a 590 mm il limite per convertire in LongCut.
|
-- 2023/09/12 In MakeFromTop abbassato a 590 mm il limite per convertire in LongCut.
|
||||||
-- 2023/10/27 In MakeFromTop corretto massimo materiale in caso di lavorazione da sotto.
|
-- 2023/10/27 In MakeFromTop corretto massimo materiale in caso di lavorazione da sotto.
|
||||||
|
-- 2023/12/07 Correzione in Classify in scelta ribaltamento trave quando si è in condizioni downUp.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessCut = {}
|
local ProcessCut = {}
|
||||||
@@ -67,10 +68,22 @@ function ProcessCut.Classify( Proc, b3Raw)
|
|||||||
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw)
|
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw)
|
||||||
local bDownCut = ( vtN:getZ() <= dNzLimDwnUp)
|
local bDownCut = ( vtN:getZ() <= dNzLimDwnUp)
|
||||||
if bDownCut then
|
if bDownCut then
|
||||||
|
-- recupero i dati della lama
|
||||||
|
local sCutType = EgtIf( Proc.Head, 'HeadSide', 'TailSide')
|
||||||
|
local sCutting = ML.FindCutting( sCutType, true, false)
|
||||||
|
local dMaxDepth = 0
|
||||||
|
local dMaxMat = 0
|
||||||
|
if EgtMdbSetCurrMachining( sCutting) then
|
||||||
|
local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID)
|
||||||
|
if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then
|
||||||
|
dMaxDepth = EgtTdbGetCurrToolMaxDepth() or dMaxDepth
|
||||||
|
dMaxMat = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) or dMaxMat
|
||||||
|
end
|
||||||
|
end
|
||||||
-- calcolo l'ingombro orizzontale della faccia
|
-- calcolo l'ingombro orizzontale della faccia
|
||||||
local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, 0)
|
local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, 0)
|
||||||
-- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli)
|
-- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli oppure se tipo PF, taglio inclinato in Y e non taglio singolo orizzontale)
|
||||||
if DimH > 2 * BD.MAX_DIM_DICE then
|
if DimH > 2 * BD.MAX_DIM_DICE or ( BD.C_SIMM and abs( vtN:getY()) > 0.1 and dMaxMat < DimH + BD.CUT_EXTRA) then
|
||||||
return true, true
|
return true, true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
-- Gestione calcolo doppi tagli di lama per Travi
|
-- Gestione calcolo doppi tagli di lama per Travi
|
||||||
-- 2022/08/29 Implementata la fresatura dal lato per tagli problematici per PF1250.
|
-- 2022/08/29 Implementata la fresatura dal lato per tagli problematici per PF1250.
|
||||||
-- 2023/03/22 Eliminata SetOpenSide locale, si usa quella di libreria.
|
-- 2023/03/22 Eliminata SetOpenSide locale, si usa quella di libreria.
|
||||||
|
-- 2023/12/07 Correzione in Classify in scelta ribaltamento trave quando si è in condizioni downUp
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessDoubleCut = {}
|
local ProcessDoubleCut = {}
|
||||||
@@ -54,10 +55,22 @@ function ProcessDoubleCut.Classify( Proc, b3Raw)
|
|||||||
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN)
|
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN)
|
||||||
local bDownCut = ( vtN:getZ() <= dNzLimDwnUp)
|
local bDownCut = ( vtN:getZ() <= dNzLimDwnUp)
|
||||||
if bDownCut then
|
if bDownCut then
|
||||||
|
-- recupero i dati della lama
|
||||||
|
local sCutType = EgtIf( Proc.Head, 'HeadSide', 'TailSide')
|
||||||
|
local sCutting = ML.FindCutting( sCutType, true, false)
|
||||||
|
local dMaxDepth = 0
|
||||||
|
local dMaxMat = 0
|
||||||
|
if EgtMdbSetCurrMachining( sCutting) then
|
||||||
|
local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID)
|
||||||
|
if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then
|
||||||
|
dMaxDepth = EgtTdbGetCurrToolMaxDepth() or dMaxDepth
|
||||||
|
dMaxMat = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) or dMaxMat
|
||||||
|
end
|
||||||
|
end
|
||||||
-- calcolo l'ingombro orizzontale della faccia
|
-- calcolo l'ingombro orizzontale della faccia
|
||||||
local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, nFac)
|
local _, DimH = BL.GetFaceHvRefDim( Proc.Id, nFac)
|
||||||
-- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli)
|
-- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli oppure se tipo PF, taglio inclinato in Y e non taglio singolo orizzontale)
|
||||||
if DimH > 2 * BD.MAX_DIM_DICE then
|
if DimH > 2 * BD.MAX_DIM_DICE or ( BD.C_SIMM and abs( vtN:getY()) > 0.1 and dMaxMat < DimH + BD.CUT_EXTRA) then
|
||||||
return true, true
|
return true, true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+21
-16
@@ -84,6 +84,9 @@
|
|||||||
-- 2023/11/03 Aggiunta MakeStaircaseStep per lavorazione con fresa + lama di gradini scala. Smusso opzionale.
|
-- 2023/11/03 Aggiunta MakeStaircaseStep per lavorazione con fresa + lama di gradini scala. Smusso opzionale.
|
||||||
-- 2023/11/06 In MakeStaircaseStep gestito ritorno.
|
-- 2023/11/06 In MakeStaircaseStep gestito ritorno.
|
||||||
-- 2023/11/06 Migliorie per lavorazione con AngularTransmission con FAST.
|
-- 2023/11/06 Migliorie per lavorazione con AngularTransmission con FAST.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
-- 2023/12/01 In MakeMoreFaces, nelle OpenPocket, ammesso utensile con diametro fino a 3 volte la dimensione della tasca (era 2).
|
||||||
|
-- 2023/12/06 In VerifySideMillAsSaw, se SIDEDEPTH non definita, viene calcolata.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessLapJoint = {}
|
local ProcessLapJoint = {}
|
||||||
@@ -547,12 +550,14 @@ local function VerifySideMillAsSaw( Proc, nAddGrpId, vtN, dDiam, dFacElev)
|
|||||||
local dToolDiamOnSide = 0
|
local dToolDiamOnSide = 0
|
||||||
local dThickMillOnSide = 0
|
local dThickMillOnSide = 0
|
||||||
local dMaxDepthOnSide = 0
|
local dMaxDepthOnSide = 0
|
||||||
|
local dTDiamStem = 50
|
||||||
if EgtMdbSetCurrMachining( sMillingOnSide) then
|
if EgtMdbSetCurrMachining( sMillingOnSide) then
|
||||||
local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID)
|
local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID)
|
||||||
if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then
|
if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then
|
||||||
dToolDiamOnSide = EgtTdbGetCurrToolParam( MCH_TP.DIAM) or dToolDiamOnSide
|
dToolDiamOnSide = EgtTdbGetCurrToolParam( MCH_TP.DIAM) or dToolDiamOnSide
|
||||||
dThickMillOnSide = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) or dThickMillOnSide
|
dThickMillOnSide = EgtTdbGetCurrToolParam( MCH_TP.MAXMAT) or dThickMillOnSide
|
||||||
dMaxDepthOnSide = EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or dMaxDepthOnSide
|
dTDiamStem = EgtTdbGetCurrToolParam( MCH_TP.STEMDIAM) or dTDiamStem
|
||||||
|
dMaxDepthOnSide = min( EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or 999, 0.5 * ( dToolDiamOnSide - dTDiamStem)) or dMaxDepthOnSide
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local bSpecialMillOnSide = ( dDiam > dThickMillOnSide - 10 * GEO.EPS_SMALL and dFacElev < dMaxDepthOnSide + 10 * GEO.EPS_SMALL)
|
local bSpecialMillOnSide = ( dDiam > dThickMillOnSide - 10 * GEO.EPS_SMALL and dFacElev < dMaxDepthOnSide + 10 * GEO.EPS_SMALL)
|
||||||
@@ -1589,7 +1594,7 @@ local function MakeRoundCleanContour( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
-- distanza di sicurezza per evitare collisioni
|
-- distanza di sicurezza per evitare collisioni
|
||||||
dCollSic = BL.CalcCollisionSafety( vtN1)
|
dCollSic = BL.CalcCollisionSafety( vtN1)
|
||||||
-- elevazione massima della faccia
|
-- elevazione massima della faccia
|
||||||
dMaxElev = BL.GetFaceElevation( Proc.Id, nFacInd, nPartId)
|
dMaxElev = BL.GetFaceElevation( Proc, nFacInd, b3Solid)
|
||||||
-- ciclo tutta la tabella
|
-- ciclo tutta la tabella
|
||||||
local tPaths = {}
|
local tPaths = {}
|
||||||
local ptIniPath
|
local ptIniPath
|
||||||
@@ -1634,7 +1639,7 @@ local function MakeRoundCleanContour( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
-- distanza di sicurezza per evitare collisioni
|
-- distanza di sicurezza per evitare collisioni
|
||||||
dCollSic = BL.CalcCollisionSafety( vtOrtho)
|
dCollSic = BL.CalcCollisionSafety( vtOrtho)
|
||||||
-- calcolo elevazione dalla faccia trasversale aggiunta
|
-- calcolo elevazione dalla faccia trasversale aggiunta
|
||||||
local dSurfIntElev = BL.GetOtherFaceElevation( Proc.Id, nSurfInt, 0)
|
local dSurfIntElev = BL.GetFaceElevation( nSurfInt, 0, b3Solid)
|
||||||
if bDoubleSide then
|
if bDoubleSide then
|
||||||
dMaxElev = dSurfIntElev
|
dMaxElev = dSurfIntElev
|
||||||
else
|
else
|
||||||
@@ -1645,13 +1650,13 @@ local function MakeRoundCleanContour( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
-- se non è possibile svuotare completamente da una sola parte
|
-- se non è possibile svuotare completamente da una sola parte
|
||||||
if dTMaxDepth <= ( dMaxElev + BD.CUT_EXTRA + dCollSic) then
|
if dTMaxDepth <= ( dMaxElev + BD.CUT_EXTRA + dCollSic) then
|
||||||
bDoubleSide = true
|
bDoubleSide = true
|
||||||
dMaxElev = BL.GetOtherFaceElevation( Proc.Id, nSurfInt, 0)
|
dMaxElev = BL.GetFaceElevation( nSurfInt, 0, b3Solid)
|
||||||
else
|
else
|
||||||
dExtraDepth = dMaxElev - BL.GetOtherFaceElevation( Proc.Id, nSurfInt, 0)
|
dExtraDepth = dMaxElev - BL.GetFaceElevation( nSurfInt, 0, b3Solid)
|
||||||
end
|
end
|
||||||
-- altrimenti non è stata fatta completamente calcolo la distanza tra faccia aggiunta e profondità superficie
|
-- altrimenti non è stata fatta completamente calcolo la distanza tra faccia aggiunta e profondità superficie
|
||||||
else
|
else
|
||||||
dExtraDepth = dMaxElev - BL.GetOtherFaceElevation( Proc.Id, nSurfInt, 0)
|
dExtraDepth = dMaxElev - BL.GetFaceElevation( nSurfInt, 0, b3Solid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- normale alla faccia aggiunta
|
-- normale alla faccia aggiunta
|
||||||
@@ -4240,7 +4245,7 @@ local function ManageAntiSplintByMill( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
dCheckDepth = 0.5 * dDepth
|
dCheckDepth = 0.5 * dDepth
|
||||||
else
|
else
|
||||||
if not nPathInt then
|
if not nPathInt then
|
||||||
dCheckDepth = BL.GetFaceElevation( Proc.Id, nFacInd)
|
dCheckDepth = BL.GetFaceElevation( Proc, nFacInd, b3Solid)
|
||||||
else
|
else
|
||||||
dCheckDepth = dDepth
|
dCheckDepth = dDepth
|
||||||
end
|
end
|
||||||
@@ -4289,7 +4294,7 @@ local function ManageAntiSplintByMill( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
end
|
end
|
||||||
local ptIniPath
|
local ptIniPath
|
||||||
local nMaxLen = 0
|
local nMaxLen = 0
|
||||||
dMaxElevMaster = BL.GetFaceElevation( Proc.Id, nFacInd)
|
dMaxElevMaster = BL.GetFaceElevation( Proc, nFacInd, b3Solid)
|
||||||
-- ciclo tutta la tabella
|
-- ciclo tutta la tabella
|
||||||
for i = 1, #tFacAdjMain do
|
for i = 1, #tFacAdjMain do
|
||||||
-- le 2 facce di contatto devono essere perpendicolari o non sottosquadra rispetto alla faccia di fondo
|
-- le 2 facce di contatto devono essere perpendicolari o non sottosquadra rispetto alla faccia di fondo
|
||||||
@@ -4348,13 +4353,13 @@ local function ManageAntiSplintByMill( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
-- se non è possibile svuotare completamente da una sola parte
|
-- se non è possibile svuotare completamente da una sola parte
|
||||||
if dMaxDepth <= ( dMaxElevMaster + BD.CUT_EXTRA + dCollSic) then
|
if dMaxDepth <= ( dMaxElevMaster + BD.CUT_EXTRA + dCollSic) then
|
||||||
bDoubleSide = true
|
bDoubleSide = true
|
||||||
dMaxElevMaster = BL.GetOtherFaceElevation( Proc.Id, nSurfInt, 0)
|
dMaxElevMaster = BL.GetFaceElevation( nSurfInt, 0, b3Solid)
|
||||||
else
|
else
|
||||||
dExtraDepth = dMaxElevMaster - BL.GetOtherFaceElevation( Proc.Id, nSurfInt, 0)
|
dExtraDepth = dMaxElevMaster - BL.GetFaceElevation( nSurfInt, 0, b3Solid)
|
||||||
end
|
end
|
||||||
-- altrimenti non è stata fatta completamente calcolo la distanza tra faccia aggiunta e profondità superficie
|
-- altrimenti non è stata fatta completamente calcolo la distanza tra faccia aggiunta e profondità superficie
|
||||||
else
|
else
|
||||||
dExtraDepth = dMaxElevMaster - BL.GetOtherFaceElevation( Proc.Id, nSurfInt, 0)
|
dExtraDepth = dMaxElevMaster - BL.GetFaceElevation( nSurfInt, 0, b3Solid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
vtN1 = Vector3d(vtOrtho)
|
vtN1 = Vector3d(vtOrtho)
|
||||||
@@ -4897,7 +4902,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|||||||
return false, sErr
|
return false, sErr
|
||||||
end
|
end
|
||||||
nFacInd = nFacAdj
|
nFacInd = nFacAdj
|
||||||
dFacElev = BL.GetFaceElevation( Proc.Id, nFacInd)
|
dFacElev = BL.GetFaceElevation( Proc, nFacInd, b3Solid)
|
||||||
ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd, GDB_ID.ROOT)
|
ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd, GDB_ID.ROOT)
|
||||||
rfFac, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT)
|
rfFac, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT)
|
||||||
end
|
end
|
||||||
@@ -4935,7 +4940,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|||||||
-- per rifinire gli angoli premio utensile diam 25 o da BD
|
-- per rifinire gli angoli premio utensile diam 25 o da BD
|
||||||
dDiam = min( 2 * dDiam + 10 * GEO.EPS_SMALL, BD.MAXDIAM_POCK_CORNER)
|
dDiam = min( 2 * dDiam + 10 * GEO.EPS_SMALL, BD.MAXDIAM_POCK_CORNER)
|
||||||
else
|
else
|
||||||
dDiam = 2 * dDiam
|
dDiam = 3 * dDiam
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
sMchFindBackUp = sMchFind
|
sMchFindBackUp = sMchFind
|
||||||
@@ -5159,7 +5164,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|||||||
local tvtNx = {}
|
local tvtNx = {}
|
||||||
tvtNx[2] = vtN
|
tvtNx[2] = vtN
|
||||||
local ptPs = ptC
|
local ptPs = ptC
|
||||||
dFacElev = BL.GetFaceElevation( Proc.Id, nFacInd)
|
dFacElev = BL.GetFaceElevation( Proc, nFacInd, b3Solid)
|
||||||
dCollSic = BL.CalcCollisionSafety( tvtNx[2])
|
dCollSic = BL.CalcCollisionSafety( tvtNx[2])
|
||||||
local dMachDepth = dFacElev + dCollSic
|
local dMachDepth = dFacElev + dCollSic
|
||||||
local frFacRec, dFacDim1, dFacDim2 = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT)
|
local frFacRec, dFacDim1, dFacDim2 = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT)
|
||||||
@@ -5181,7 +5186,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|||||||
end
|
end
|
||||||
vAdj[i] = nCount
|
vAdj[i] = nCount
|
||||||
if vAdj[i] == Proc.Fct - 1 and i ~= nFacInd + 1 then
|
if vAdj[i] == Proc.Fct - 1 and i ~= nFacInd + 1 then
|
||||||
dV = BL.GetFaceElevation( Proc.Id, i - 1)
|
dV = BL.GetFaceElevation( Proc, i - 1, b3Solid)
|
||||||
vtN2 = EgtSurfTmFacetNormVersor( Proc.Id, i - 1, GDB_ID.ROOT)
|
vtN2 = EgtSurfTmFacetNormVersor( Proc.Id, i - 1, GDB_ID.ROOT)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
-- 2023/08/01 Ammesso uso lama da sotto fino a N +3deg in verticale.
|
-- 2023/08/01 Ammesso uso lama da sotto fino a N +3deg in verticale.
|
||||||
-- 2023/09/26 Modificata chiamata a GetFaceWithMostAdj.
|
-- 2023/09/26 Modificata chiamata a GetFaceWithMostAdj.
|
||||||
-- 2023/10/24 Migliorata spezzatura taglio passante con due spezzoni
|
-- 2023/10/24 Migliorata spezzatura taglio passante con due spezzoni
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessLongCut = {}
|
local ProcessLongCut = {}
|
||||||
@@ -959,7 +960,7 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus
|
|||||||
if bForceUseBladeOnNotThruFace and ( bLimXmin or bLimXmax) then
|
if bForceUseBladeOnNotThruFace and ( bLimXmin or bLimXmax) then
|
||||||
local nCountMilHead = 0
|
local nCountMilHead = 0
|
||||||
-- determino la massima elevazione
|
-- determino la massima elevazione
|
||||||
local dElev = BL.GetFaceElevation( Proc.Id, 0, nPartId)
|
local dElev = BL.GetFaceElevation( Proc, 0, b3Solid)
|
||||||
-- recupero la lavorazione
|
-- recupero la lavorazione
|
||||||
local sMilling = ML.FindMilling( 'Long2Cut_H2', dElev, nil, nil, nil, not bCanUseUnderBlade, bCanUseUnderBlade)
|
local sMilling = ML.FindMilling( 'Long2Cut_H2', dElev, nil, nil, nil, not bCanUseUnderBlade, bCanUseUnderBlade)
|
||||||
if not sMilling then
|
if not sMilling then
|
||||||
@@ -1209,7 +1210,7 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus
|
|||||||
-- se non è sotto e non uso fresa di fianco: lavorazione Long2Cut
|
-- se non è sotto e non uso fresa di fianco: lavorazione Long2Cut
|
||||||
elseif ( nSide ~= - 1 or BD.DOWN_HEAD) and nUseMillOnSide == 0 then
|
elseif ( nSide ~= - 1 or BD.DOWN_HEAD) and nUseMillOnSide == 0 then
|
||||||
-- determino la massima elevazione
|
-- determino la massima elevazione
|
||||||
local dElev = BL.GetFaceElevation( Proc.Id, 0, nPartId)
|
local dElev = BL.GetFaceElevation( Proc, 0, b3Solid)
|
||||||
-- recupero la lavorazione
|
-- recupero la lavorazione
|
||||||
local bDownHead = ( nSide == - 1)
|
local bDownHead = ( nSide == - 1)
|
||||||
sMchType = EgtIf( bDownHead, 'Long2Cut_H2', 'Long2Cut')
|
sMchType = EgtIf( bDownHead, 'Long2Cut_H2', 'Long2Cut')
|
||||||
@@ -1553,7 +1554,7 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus
|
|||||||
local dDistToEnd = dToolDiam / 2
|
local dDistToEnd = dToolDiam / 2
|
||||||
local dDistToEndDn = dToolDiamDn / 2
|
local dDistToEndDn = dToolDiamDn / 2
|
||||||
-- calcolo l'elevazione della faccia principale
|
-- calcolo l'elevazione della faccia principale
|
||||||
local dFacElev = BL.GetFaceElevation( Proc.Id, 0, nPartId)
|
local dFacElev = BL.GetFaceElevation( Proc, 0, b3Solid)
|
||||||
-- se fresa di fianco o da sotto calcolo quanto l'utensile può andare vicino all'estremo con l'elevazione della faccia minore del raggio utensile
|
-- se fresa di fianco o da sotto calcolo quanto l'utensile può andare vicino all'estremo con l'elevazione della faccia minore del raggio utensile
|
||||||
if ( nUseMillOnSide <= 1 or nSide == -1) and dFacElev < dToolDiam / 2 then
|
if ( nUseMillOnSide <= 1 or nSide == -1) and dFacElev < dToolDiam / 2 then
|
||||||
dDistToEnd = sqrt( dFacElev * ( dToolDiam - dFacElev))
|
dDistToEnd = sqrt( dFacElev * ( dToolDiam - dFacElev))
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
-- 2023/10/24 Migliorata spezzatura taglio passante con due spezzoni
|
-- 2023/10/24 Migliorata spezzatura taglio passante con due spezzoni
|
||||||
-- 2023/10/25 Se effettivamente un taglio longitudinale e lama non taglia completamente, limito la lavorazione. Altrimenti esco.
|
-- 2023/10/25 Se effettivamente un taglio longitudinale e lama non taglia completamente, limito la lavorazione. Altrimenti esco.
|
||||||
-- 2023/11/24 Aggiunta Q05 per utilizzo lama anche in feature cieche conme per LongCut.
|
-- 2023/11/24 Aggiunta Q05 per utilizzo lama anche in feature cieche conme per LongCut.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessLong2Cut = {}
|
local ProcessLong2Cut = {}
|
||||||
@@ -903,8 +904,8 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster
|
|||||||
if bForceUseBladeOnNotThruFace then
|
if bForceUseBladeOnNotThruFace then
|
||||||
-- determino la massima elevazione
|
-- determino la massima elevazione
|
||||||
local dElev = 0
|
local dElev = 0
|
||||||
local dFacElev1 = EgtSurfTmFacetElevationInBBox( Proc.Id, tFaceLong[1], b3Solid, GDB_ID.ROOT)
|
local dFacElev1 = BL.GetFaceElevation( Proc, tFaceLong[1], b3Solid)
|
||||||
local dFacElev2 = EgtSurfTmFacetElevationInBBox( Proc.Id, tFaceLong[2], b3Solid, GDB_ID.ROOT)
|
local dFacElev2 = BL.GetFaceElevation( Proc, tFaceLong[2], b3Solid)
|
||||||
dElev = max( dFacElev1, dFacElev2)
|
dElev = max( dFacElev1, dFacElev2)
|
||||||
-- recupero la lavorazione
|
-- recupero la lavorazione
|
||||||
local sMilling
|
local sMilling
|
||||||
@@ -1079,8 +1080,8 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster
|
|||||||
elseif ( nSide ~= -1 or BD.DOWN_HEAD or BD.TURN) and nUseMillOnSide == 0 then
|
elseif ( nSide ~= -1 or BD.DOWN_HEAD or BD.TURN) and nUseMillOnSide == 0 then
|
||||||
-- determino la massima elevazione
|
-- determino la massima elevazione
|
||||||
local dElev = 0
|
local dElev = 0
|
||||||
local dFacElev1 = EgtSurfTmFacetElevationInBBox( Proc.Id, tFaceLong[1], b3Solid, GDB_ID.ROOT)
|
local dFacElev1 = BL.GetFaceElevation( Proc, tFaceLong[1], b3Solid)
|
||||||
local dFacElev2 = EgtSurfTmFacetElevationInBBox( Proc.Id, tFaceLong[2], b3Solid, GDB_ID.ROOT)
|
local dFacElev2 = BL.GetFaceElevation( Proc, tFaceLong[2], b3Solid)
|
||||||
-- se facce concave e a 90 gradi, prendo l'elevazione minima
|
-- se facce concave e a 90 gradi, prendo l'elevazione minima
|
||||||
if bOrtho then
|
if bOrtho then
|
||||||
dElev = min( dFacElev1, dFacElev2)
|
dElev = min( dFacElev1, dFacElev2)
|
||||||
@@ -1450,8 +1451,8 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster
|
|||||||
local dDistToEnd = dToolDiam / 2
|
local dDistToEnd = dToolDiam / 2
|
||||||
local dDistToEndDn = dToolDiamDn / 2
|
local dDistToEndDn = dToolDiamDn / 2
|
||||||
-- calcolo l'elevazione della faccia principale
|
-- calcolo l'elevazione della faccia principale
|
||||||
local dFacElev1 = BL.GetFaceElevation( Proc.Id, tFaceLong[vOrd[1]], nPartId)
|
local dFacElev1 = BL.GetFaceElevation( Proc, tFaceLong[vOrd[1]], b3Solid)
|
||||||
local dFacElev2 = BL.GetFaceElevation( Proc.Id, tFaceLong[vOrd[2]], nPartId)
|
local dFacElev2 = BL.GetFaceElevation( Proc, tFaceLong[vOrd[2]], b3Solid)
|
||||||
-- se fresa di fianco o da sotto calcolo quanto l'utensile può andare vicino al limite se l'elevazione della faccia è minore del raggio utensile
|
-- se fresa di fianco o da sotto calcolo quanto l'utensile può andare vicino al limite se l'elevazione della faccia è minore del raggio utensile
|
||||||
if nUseMillOnSide <= 1 or nSide == -1 then
|
if nUseMillOnSide <= 1 or nSide == -1 then
|
||||||
local dFacElev = max( dFacElev1, dFacElev2)
|
local dFacElev = max( dFacElev1, dFacElev2)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
-- 2022/05/24 Aggiunta fresatura da sotto su macchine con testa da sotto.
|
-- 2022/05/24 Aggiunta fresatura da sotto su macchine con testa da sotto.
|
||||||
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
||||||
-- 2022/11/03 Correzione per riconoscimento testa da sotto su fresatura.
|
-- 2022/11/03 Correzione per riconoscimento testa da sotto su fresatura.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessProfCamb = {}
|
local ProcessProfCamb = {}
|
||||||
@@ -285,7 +286,7 @@ function ProcessProfCamb.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
-- aggiungo piano di sgrossatura e lo lavoro
|
-- aggiungo piano di sgrossatura e lo lavoro
|
||||||
local ptStart, vtNP = GetSawCutData( AuxId, vtNF)
|
local ptStart, vtNP = GetSawCutData( AuxId, vtNF)
|
||||||
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
||||||
if AddId and BL.GetFaceElevation( AddId, 0, nPartId) > 20.0 then
|
if AddId and BL.GetFaceElevation( AddId, 0, b3Solid) > 20.0 then
|
||||||
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
||||||
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
||||||
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
||||||
-- 2023/05/25 Sistemazione SCC per TURN.
|
-- 2023/05/25 Sistemazione SCC per TURN.
|
||||||
-- 2023/07/31 Correzione e semplificazione di ModifySideInvertLead per invert.
|
-- 2023/07/31 Correzione e semplificazione di ModifySideInvertLead per invert.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessProfConcave = {}
|
local ProcessProfConcave = {}
|
||||||
@@ -289,7 +290,7 @@ function ProcessProfConcave.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
-- aggiungo piano di sgrossatura e lo lavoro
|
-- aggiungo piano di sgrossatura e lo lavoro
|
||||||
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
||||||
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
||||||
if AddId and BL.GetFaceElevation( AddId, 0, nPartId) > 20.0 then
|
if AddId and BL.GetFaceElevation( AddId, 0, b3Solid) > 20.0 then
|
||||||
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
||||||
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
||||||
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
||||||
-- 2023/05/25 Sistemazione SCC per TURN.
|
-- 2023/05/25 Sistemazione SCC per TURN.
|
||||||
-- 2023/07/31 Correzione e semplificazione di ModifySideInvertLead per invert.
|
-- 2023/07/31 Correzione e semplificazione di ModifySideInvertLead per invert.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessProfConvex = {}
|
local ProcessProfConvex = {}
|
||||||
@@ -289,7 +290,7 @@ function ProcessProfConvex.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
-- aggiungo piano di sgrossatura e lo lavoro
|
-- aggiungo piano di sgrossatura e lo lavoro
|
||||||
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
||||||
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
||||||
if AddId and BL.GetFaceElevation( AddId, 0, nPartId) > 20.0 then
|
if AddId and BL.GetFaceElevation( AddId, 0, b3Solid) > 20.0 then
|
||||||
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
||||||
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
||||||
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
-- 2022/02/02 Aggiunta funzione OnlyChamfer.
|
-- 2022/02/02 Aggiunta funzione OnlyChamfer.
|
||||||
-- 2022/05/24 Aggiunta fresatura da sotto su macchine con testa da sotto.
|
-- 2022/05/24 Aggiunta fresatura da sotto su macchine con testa da sotto.
|
||||||
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessProfFront = {}
|
local ProcessProfFront = {}
|
||||||
@@ -236,7 +237,7 @@ function ProcessProfFront.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
-- aggiungo piano di sgrossatura e lo lavoro
|
-- aggiungo piano di sgrossatura e lo lavoro
|
||||||
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
||||||
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
||||||
if AddId and BL.GetFaceElevation( AddId, 0, nPartId) > 20.0 then
|
if AddId and BL.GetFaceElevation( AddId, 0, b3Solid) > 20.0 then
|
||||||
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
||||||
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
||||||
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
-- 2022/05/24 Aggiunta fresatura da sotto su macchine con testa da sotto.
|
-- 2022/05/24 Aggiunta fresatura da sotto su macchine con testa da sotto.
|
||||||
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
-- 2022/05/28 Aggiunto calcolo svuotatura da modulo di libreria.
|
||||||
-- 2023/07/31 Correzione e semplificazione di ModifySideInvertLead per invert.
|
-- 2023/07/31 Correzione e semplificazione di ModifySideInvertLead per invert.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessProfHead = {}
|
local ProcessProfHead = {}
|
||||||
@@ -271,7 +272,7 @@ function ProcessProfHead.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
-- aggiungo piano di sgrossatura e lo lavoro
|
-- aggiungo piano di sgrossatura e lo lavoro
|
||||||
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
local ptStart, vtNP = GetSawCutData( AuxId, vtN)
|
||||||
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
local AddId = EgtSurfTmPlaneInBBox( nAddGrpId, ptStart, vtNP, b3Solid, GDB_RT.GLOB)
|
||||||
if AddId and BL.GetFaceElevation( AddId, 0, nPartId) > 20.0 then
|
if AddId and BL.GetFaceElevation( AddId, 0, b3Solid) > 20.0 then
|
||||||
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
EgtSetName( AddId, 'AddCut_' .. tostring( Proc.Id))
|
||||||
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
|
||||||
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
-- se macchina PF o ONE e profilo sopra davanti e pezzo alto applico svuotatura
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
-- ProcessVariant.lua by Egaltech s.r.l. 2023/11/08
|
-- ProcessVariant.lua by Egaltech s.r.l. 2023/11/08
|
||||||
-- Gestione calcolo Feature Custom (Variant) per Travi
|
-- Gestione calcolo Feature Custom (Variant) per Travi
|
||||||
-- 2023/11/08 Creazione modulo.
|
-- 2023/11/08 Creazione modulo.
|
||||||
|
-- 2023/11/30 Calcolo elevazione velocizzato e centralizzato tramite la funzione GetFaceElevation.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessVariant = {}
|
local ProcessVariant = {}
|
||||||
@@ -72,6 +73,7 @@ end
|
|||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Applicazione della lavorazione
|
-- Applicazione della lavorazione
|
||||||
local function MakePocket( Proc, nRawId, b3Raw, nPartId)
|
local function MakePocket( Proc, nRawId, b3Raw, nPartId)
|
||||||
|
local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||||
-- recupero gli indici delle facce da lavorare
|
-- recupero gli indici delle facce da lavorare
|
||||||
local vFace = EgtGetInfo( Proc.Id, 'Faces', 'vi')
|
local vFace = EgtGetInfo( Proc.Id, 'Faces', 'vi')
|
||||||
if not vFace or #vFace == 0 then
|
if not vFace or #vFace == 0 then
|
||||||
@@ -83,7 +85,7 @@ local function MakePocket( Proc, nRawId, b3Raw, nPartId)
|
|||||||
local dTotDepth = 0
|
local dTotDepth = 0
|
||||||
local vDepth = {}
|
local vDepth = {}
|
||||||
for i = 1, #vFace do
|
for i = 1, #vFace do
|
||||||
vDepth[i] = BL.GetFaceElevation( Proc.Id, vFace[1], nPartId)
|
vDepth[i] = BL.GetFaceElevation( Proc, vFace[1], b3Solid)
|
||||||
dTotDepth = max( dTotDepth, vDepth[i])
|
dTotDepth = max( dTotDepth, vDepth[i])
|
||||||
end
|
end
|
||||||
local vtN = EgtSurfTmFacetNormVersor( Proc.Id, vFace[1], GDB_ID.ROOT)
|
local vtN = EgtSurfTmFacetNormVersor( Proc.Id, vFace[1], GDB_ID.ROOT)
|
||||||
|
|||||||
+19
-11
@@ -1,37 +1,45 @@
|
|||||||
==== Beam Update Log ====
|
==== Beam Update Log ====
|
||||||
|
|
||||||
|
Versione 2.5l1 /01/12/2023)
|
||||||
|
- Added : in LongDoubleCut aggiunta Q05 per utilizzo lama anche in feature cieche conme per LongCut
|
||||||
|
- Modif : Migliorato e velocizzato il calcolo elevazione (EgtSurfTmFacetElevationInBBox)
|
||||||
|
- Fixed : in MakeTwo di FacesBySaw raffinamento calcolo vtRef per casi dubbi.
|
||||||
|
|
||||||
|
Versione 2.5k3 (28/11/2023)
|
||||||
|
- Added : in Long2Cut gestite lavorazioni lama con Q05 come in LongCut.
|
||||||
|
|
||||||
Versione 2.5k2 (06/11/2023)
|
Versione 2.5k2 (06/11/2023)
|
||||||
- Added : in LapJoint, per L020, gestita lavorazione speciale gradino scala con fresatura + lama, attivata con Q09.
|
- Added : in LapJoint, per L020, gestita lavorazione speciale gradino scala con fresatura + lama, attivata con Q09
|
||||||
- Fixed : in ProcessSplit si imposta l'ingombro asse C correttamente anche per teste con asse rotante C con un solo braccio
|
- Fixed : in ProcessSplit si imposta l'ingombro asse C correttamente anche per teste con asse rotante C con un solo braccio.
|
||||||
|
|
||||||
Versione 2.5k1 (02/11/2023)
|
Versione 2.5k1 (02/11/2023)
|
||||||
- Modif : in LapJoint gestito caso groove due facce >90° con fresa, se forzato da parametro Q
|
- Modif : in LapJoint gestito caso groove due facce >90° con fresa, se forzato da parametro Q
|
||||||
- Modif : in LongCut e LongDoubleCut migliorata spezzatura taglio passante con due spezzoni
|
- Modif : in LongCut e LongDoubleCut migliorata spezzatura taglio passante con due spezzoni
|
||||||
- Modif : nei tagli di lama migliorata gestione con percorso bilinea
|
- Modif : nei tagli di lama migliorata gestione con percorso bilinea
|
||||||
- Modif : in LapJoint 2 facce longitudinali si usa taglio di lama solo se si taglia completamente, altrimenti fresa
|
- Modif : in LapJoint 2 facce longitudinali si usa taglio di lama solo se si taglia completamente, altrimenti fresa.
|
||||||
|
|
||||||
Versione 2.5j1 (23/10/2023)
|
Versione 2.5j1 (23/10/2023)
|
||||||
- Added : in Process (lancio da EgtCAM5 quindi uso praticamente solo interno) aggiunta possibilità di tenere ordine pezzi in barra come da selezione
|
- Added : in Process (lancio da EgtCAM5 quindi uso praticamente solo interno) aggiunta possibilità di tenere ordine pezzi in barra come da selezione
|
||||||
- Fixed : piccola correzione a Classify di FeatureTopology per casi senza geometria
|
|
||||||
- Fixed : in HeadCut e Split corretto calcolo allungamenti/accorciamenti per evitare lunghezze del percorso negative
|
|
||||||
- Fixed : in Lapjoint -> MakePocket aggiunto messaggio in caso si rovini il pezzo successivo
|
|
||||||
- Modif : in Topology aggiunti casi al check solo direzione principale
|
- Modif : in Topology aggiunti casi al check solo direzione principale
|
||||||
- Modif : nella ricerca lavorazione da usare controllo di utensile attivo sostituito con controllo utensile presente nel setup corrente
|
- Modif : nella ricerca lavorazione da usare controllo di utensile attivo sostituito con controllo utensile presente nel setup corrente
|
||||||
|
- Fixed : piccola correzione a Classify di FeatureTopology per casi senza geometria
|
||||||
|
- Fixed : in HeadCut e Split corretto calcolo allungamenti/accorciamenti per evitare lunghezze del percorso negative
|
||||||
|
- Fixed : in Lapjoint -> MakePocket aggiunto messaggio in caso si rovini il pezzo successivo.
|
||||||
|
|
||||||
Versione 2.5i2 (27/09/2023)
|
Versione 2.5i2 (27/09/2023)
|
||||||
- Added : aggiunto riconoscimento sottosquadro da facce non adiacenti
|
- Added : aggiunto riconoscimento sottosquadro da facce non adiacenti
|
||||||
|
- Modif : in lavorazione tenoni per Turn si assegna SCC per privilegiare accesso dal lato corto della trave.
|
||||||
- Fixed : in LapJoint corretto caso tunnel lungo non lavorato correttamente
|
- Fixed : in LapJoint corretto caso tunnel lungo non lavorato correttamente
|
||||||
- Fixed : in foratura quando errore in applicazione lavorazione si inverte e riprova solo se singola su foro aperto
|
- Fixed : in foratura quando errore in applicazione lavorazione si inverte e riprova solo se singola su foro aperto
|
||||||
- Modif : in lavorazione tenoni per Turn si assegna SCC per privilegiare accesso dal lato corto della trave.
|
|
||||||
|
|
||||||
Versione 2.5i1 (12/09/2023)
|
Versione 2.5i1 (12/09/2023)
|
||||||
- Fixed : in LapJoint gestito correttamente il ritorno nil di GetUShapeWidth [Ticket #1354]
|
- Modif : in Cut abbassato a 590 mm il limite per convertire in LongCut [Ticket #1448]
|
||||||
- Modif : in Cut abbassato a 590 mm il limite per convertire in LongCut [Ticket #1448].
|
- Fixed : in LapJoint gestito correttamente il ritorno nil di GetUShapeWidth [Ticket #1354].
|
||||||
|
|
||||||
Versione 2.5h2 (11/08/2023)
|
Versione 2.5h2 (11/08/2023)
|
||||||
|
- Modif : in LapJoint e Mortise modificata posizione braccio per FAST quando vicino alla coda della trave
|
||||||
- Fixed : corrette forature con aggregato quando lato aperto
|
- Fixed : corrette forature con aggregato quando lato aperto
|
||||||
- Fixed : in RidgeLap corretto ingombro lavorazione in testa e coda quando rivolta verso il basso
|
- Fixed : in RidgeLap corretto ingombro lavorazione in testa e coda quando rivolta verso il basso.
|
||||||
- Modif : in LapJoint e Mortise modificata posizione braccio per FAST quando vicino alla coda della trave.
|
|
||||||
|
|
||||||
Versione 2.5h1 (07/08/2023)
|
Versione 2.5h1 (07/08/2023)
|
||||||
- Fixed : tagli doppi di lato non effettuati se macchina tipo PF e pezzo alto [Ticket #1400]
|
- Fixed : tagli doppi di lato non effettuati se macchina tipo PF e pezzo alto [Ticket #1400]
|
||||||
|
|||||||
+2
-2
@@ -2,5 +2,5 @@
|
|||||||
-- Gestione della versione di Beam
|
-- Gestione della versione di Beam
|
||||||
|
|
||||||
NAME = 'Beam'
|
NAME = 'Beam'
|
||||||
VERSION = '2.5k4'
|
VERSION = '2.5l1'
|
||||||
MIN_EXE = '2.5c1'
|
MIN_EXE = '2.5l1'
|
||||||
|
|||||||
Reference in New Issue
Block a user