DataBeam :
- modificata gestione pezzi piccoli da vista (ora grezzo più lungo anche con pezzi più lunghi) - modificata scelta per attacco tg o perpendicolare con lama - per taglio doppio aggiunta gestione nessun limite direzione da sotto per testa da sotto - con testa da sotto su mortasa a coda di rondine aggiunto controllo possibilità di salita in Z (variabile macchina BD.DH_MAX_TOP) - in fessure verticali su pezzi alti, verifica affondamento lama tenendo conto dell'altezza del pezzo.
This commit is contained in:
+10
-4
@@ -1,5 +1,6 @@
|
||||
-- FacesBySaw.lua by Egaltech s.r.l. 2021/06/15
|
||||
-- FacesBySaw.lua by Egaltech s.r.l. 2021/08/31
|
||||
-- Gestione taglio con lama di feature con una, due o tre facce
|
||||
-- 2021/08/31 DS Aggiunta gestione nessun limite direzione da sotto per testa da sotto.
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
local FacesBySaw = {}
|
||||
@@ -101,6 +102,11 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType,
|
||||
if dAngT < -91 and dAngT > -179 then
|
||||
dCutExtra = - dSawThick / tan( 180 + dAngT)
|
||||
end
|
||||
-- sistemo direzione limite da sotto (con testa da sotto limite Vz Down Up messo a -2 per non farlo mai intervenire)
|
||||
local dNzLimDwnUp
|
||||
if bDownHead then
|
||||
dNzLimDwnUp = - 2
|
||||
end
|
||||
-- verifico se necessari tagli supplementari
|
||||
local vCuts = DC.GetDice( EgtGetParent( Proc.Id), b3Solid, ptC[nUpInd], vtN[nUpInd], false, ptC[nOtInd], vtN[nOtInd])
|
||||
--DC.PrintOrderCut( vCuts)
|
||||
@@ -131,7 +137,7 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType,
|
||||
if not BD.C_SIMM and BD.MAX_HEIGHT_ROT_B_ABOVE and b3Raw:getDimZ() > BD.MAX_HEIGHT_ROT_B_ABOVE and vtOrthO:getZ() > 0.866 and j == #vCuts[i] then
|
||||
dAccEnd = - ( dSawDiam / 2 + BD.CUT_SIC)
|
||||
end
|
||||
local bOk, sErr = BL.MakeOneFaceBySaw( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthO, nil, dCutExtra, BD.CUT_SIC, 0, 0, dAccEnd, nil, b3Raw)
|
||||
local bOk, sErr = BL.MakeOneFaceBySaw( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthO, dNzLimDwnUp, dCutExtra, BD.CUT_SIC, 0, 0, dAccEnd, nil, b3Raw)
|
||||
if not bOk then
|
||||
return bOk, sErr
|
||||
end
|
||||
@@ -145,10 +151,10 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType,
|
||||
nUpInd, nOtInd = nOtInd, nUpInd
|
||||
end
|
||||
-- lavoro la prima faccia
|
||||
local bOk, sErr = BL.MakeOneFaceBySaw( Proc.Id, nOtInd-1, sCutting, dSawDiam, vtRef[nOtInd], nil, dCutExtra, BD.CUT_SIC, 0, 0, 0, nil, b3Raw)
|
||||
local bOk, sErr = BL.MakeOneFaceBySaw( Proc.Id, nOtInd-1, sCutting, dSawDiam, vtRef[nOtInd], dNzLimDwnUp, dCutExtra, BD.CUT_SIC, 0, 0, 0, nil, b3Raw)
|
||||
if not bOk then return bOk, sErr end
|
||||
-- lavoro seconda faccia
|
||||
bOk, sErr = BL.MakeOneFaceBySaw( Proc.Id, nUpInd-1, sCutting, dSawDiam, vtRef[nUpInd], nil, dCutExtra, BD.CUT_SIC, 0, 0, 0, nil, b3Raw)
|
||||
bOk, sErr = BL.MakeOneFaceBySaw( Proc.Id, nUpInd-1, sCutting, dSawDiam, vtRef[nUpInd], dNzLimDwnUp, dCutExtra, BD.CUT_SIC, 0, 0, 0, nil, b3Raw)
|
||||
if not bOk then
|
||||
return bOk, sErr
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user