Compare commits

..

5 Commits

+26 -6
View File
@@ -3408,7 +3408,9 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd,
bGoFromHead = false
-- continuo di testa se fessura con tre facce o non è tunnel
else
bGoFromHead = (( bIs3Faces and dMaxElev) or not bOrthoFaces)
bGoFromHead = (( bIs3Faces and ( dMaxElev
or ( Proc.Topology == 'Groove' and Proc.IsThrough and (Proc.AffectedFaces.Left or Proc.AffectedFaces.Right) and not Proc.IsParallel)))
or not bOrthoFaces)
end
end
-- se continuo a lavorare di testa
@@ -3473,17 +3475,35 @@ local function MakeByChainOrSaw( Proc, nPhase, nRawId, nPartId, nFacInd,
-- imposto offset radiale
local dOffs = ( i - 1) * dStep
EgtSetMachiningParam( MCH_MP.OFFSR, dOffs)
local bElevAdj
local dToolEntryAngle, _, _, dTanToolEntryAngle = GetToolEntryAngle( Proc, rfFac:getVersZ())
-- se necessario, avverto limitazione dell'affondamento
if dElev > dMaxDepth + 10 * GEO.EPS_SMALL then
EgtSetMachiningParam( MCH_MP.DEPTH, dMaxDepth)
sWarn = 'Warning in LapJoint : elevation (' .. EgtNumToString( dElev, 1) .. ') bigger than max tool depth (' .. EgtNumToString( dMaxDepth, 1) .. ')'
EgtOutLog( sWarn)
if dElev > dMaxDepth + 10 * GEO.EPS_SMALL then
if Proc.Fct == 3 and Proc.Topology == 'Groove' and Proc.IsThrough and (Proc.AffectedFaces.Left or Proc.AffectedFaces.Right) and not Proc.IsParallel then
local Edges = BL.GetEdgesInfo( Proc, Proc.Face[nFacAdj+1])
local dWorkEdgeWidth
for i = 1, #Edges do
if Edges[i].AdjacentFaceId == nFacInd then
dWorkEdgeWidth = Edges[i].Length
break
end
end
local dDeltaDepth = dWorkEdgeWidth * cos( dToolEntryAngle)
bElevAdj = true
EgtSetMachiningParam( MCH_MP.DEPTH, dMaxDepth - dDeltaDepth)
else
EgtSetMachiningParam( MCH_MP.DEPTH, dMaxDepth)
sWarn = 'Warning in LapJoint : elevation (' .. EgtNumToString( dElev, 1) .. ') bigger than max tool depth (' .. EgtNumToString( dMaxDepth, 1) .. ')'
EgtOutLog( sWarn)
end
--local dDepth = dMaxDepth - dElev
--EgtSetMachiningParam( MCH_MP.DEPTH_STR, 'TH '..EgtNumToString( dDepth, 1))
end
-- imposto massima elevazione
local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or ''
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dElev, 2))
local dElevAdj = EgtIf( bElevAdj, dElev / sin( dToolEntryAngle), dElev)
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dElevAdj, 2))
EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes)
-- eseguo
if not ML.ApplyMachining( true, false) then