- in MachiningLib -> FindMachining si considera ottimizzazione teste solo per macchine tipo PF e non più per macchine tipo PF1250
- in SawPlusChain varie migliorie
This commit is contained in:
@@ -4681,6 +4681,7 @@ function SawPlusChain.GetTunnelFaces( Proc)
|
||||
if TunnelAddedFaces.MiddleFaceTm.Height > TunnelAddedFaces.MiddleFaceTm.Width then
|
||||
TunnelAddedFaces.MiddleFaceTm.Height, TunnelAddedFaces.MiddleFaceTm.Width = TunnelAddedFaces.MiddleFaceTm.Width, TunnelAddedFaces.MiddleFaceTm.Height
|
||||
end
|
||||
TunnelAddedFaces.MiddleFaceTm.Type = 'Tunnel'
|
||||
|
||||
return TunnelAddedFaces
|
||||
end
|
||||
@@ -4712,6 +4713,7 @@ function SawPlusChain.GetBottomFace( Proc)
|
||||
end
|
||||
|
||||
BottomFace.Id = nBottomFace
|
||||
BottomFace.Type = 'Bottom'
|
||||
BottomFace.Width = Proc.Face[nBottomFace + 1].Width
|
||||
BottomFace.Height = Proc.Face[nBottomFace + 1].Height
|
||||
BottomFace.Elevation = Proc.Face[nBottomFace + 1].Elevation
|
||||
@@ -4725,6 +4727,7 @@ end
|
||||
|
||||
|
||||
function SawPlusChain.GetLongFace( Proc)
|
||||
local LongFace = {}
|
||||
if not Proc.MainFaces.BottomFace or not Proc.MainFaces.BottomFace.Id then
|
||||
Proc.MainFaces.BottomFace = SawPlusChain.GetBottomFace( Proc)
|
||||
end
|
||||
@@ -4746,10 +4749,10 @@ function SawPlusChain.GetLongFace( Proc)
|
||||
end
|
||||
|
||||
-- si sceglie la più grande (tunnel) o quella adiacente sul lato lungo
|
||||
local LongFace = {}
|
||||
LongFace.Id = FacesToAnalyze[1].Id
|
||||
for i = 1, Proc.Fct do
|
||||
if LongFace.Id == Proc.Face[i].Id then
|
||||
LongFace.Type = 'Long'
|
||||
LongFace.Width = Proc.Face[i].Width
|
||||
LongFace.Height = Proc.Face[i].Height
|
||||
LongFace.Elevation = Proc.Face[i].Elevation
|
||||
@@ -4760,8 +4763,6 @@ function SawPlusChain.GetLongFace( Proc)
|
||||
end
|
||||
end
|
||||
|
||||
LongFace.Edges = SawPlusChain.GetLongFaceEdges( Proc, LongFace)
|
||||
|
||||
return LongFace
|
||||
end
|
||||
|
||||
@@ -4799,6 +4800,7 @@ function SawPlusChain.GetSideFaces( Proc)
|
||||
( bIsLongFaceTheLargest and i > 2) then
|
||||
table.insert( SideFaces, FacesToAnalyze[i])
|
||||
SideFaces[#SideFaces].Id = FacesToAnalyze[i].Id
|
||||
SideFaces[#SideFaces].Type = 'Side'
|
||||
SideFaces[#SideFaces].Width = Proc.Face[FacesToAnalyze[i].Id + 1].Width
|
||||
SideFaces[#SideFaces].Height = Proc.Face[FacesToAnalyze[i].Id + 1].Height
|
||||
SideFaces[#SideFaces].Elevation = Proc.Face[FacesToAnalyze[i].Id + 1].Elevation
|
||||
@@ -4813,6 +4815,51 @@ function SawPlusChain.GetSideFaces( Proc)
|
||||
end
|
||||
|
||||
|
||||
function SawPlusChain.GetBottomFaceEdges( Proc, Face)
|
||||
local Edges = {}
|
||||
Edges.SideEdges = {}
|
||||
Edges.LongEdges = {}
|
||||
|
||||
local nFaceType, vEdges = EgtSurfTmGetFacetOutlineInfo( Proc.Id, Face.Id, GDB_ID.ROOT)
|
||||
if nFaceType < 1 then
|
||||
for j = 1, #vEdges do
|
||||
local nPreviousEdgeIndex = j - 1
|
||||
if j == 1 then
|
||||
nPreviousEdgeIndex = #vEdges
|
||||
end
|
||||
local nNextEdgeIndex = j + 1
|
||||
if j == #vEdges then
|
||||
nNextEdgeIndex = 1
|
||||
end
|
||||
|
||||
local CurrentEdge = {}
|
||||
CurrentEdge.AdjacentFaceId = vEdges[j].Adj
|
||||
CurrentEdge.ToolDirection = Vector3d( vEdges[j].Norm)
|
||||
CurrentEdge.Length = vEdges[j].Len
|
||||
CurrentEdge.Elevation = vEdges[j].Elev
|
||||
CurrentEdge.IsOpen = vEdges[j].Open
|
||||
CurrentEdge.IsStartOpen = ( vEdges[nPreviousEdgeIndex].Open)
|
||||
CurrentEdge.IsEndOpen = ( vEdges[nNextEdgeIndex].Open)
|
||||
|
||||
if CurrentEdge.AdjacentFaceId == Proc.MainFaces.LongFace.Id then
|
||||
table.insert( Edges.LongEdges, CurrentEdge)
|
||||
Edges.LongEdges[#Edges.LongEdges].Type = 'Long'
|
||||
elseif vEdges[nNextEdgeIndex].Adj == Proc.MainFaces.LongFace.Id or vEdges[nPreviousEdgeIndex].Adj == Proc.MainFaces.LongFace.Id then
|
||||
table.insert( Edges.SideEdges, CurrentEdge)
|
||||
Edges.SideEdges[#Edges.SideEdges].Type = 'Side'
|
||||
else
|
||||
table.insert( Edges.LongEdges, CurrentEdge)
|
||||
Edges.LongEdges[#Edges.LongEdges].Type = 'Long'
|
||||
end
|
||||
end
|
||||
else
|
||||
error( 'Face with closed hole')
|
||||
end
|
||||
|
||||
return Edges
|
||||
end
|
||||
|
||||
|
||||
function SawPlusChain.GetLongFaceEdges( Proc, Face)
|
||||
local Edges = {}
|
||||
Edges.SideEdges = {}
|
||||
@@ -4857,6 +4904,7 @@ function SawPlusChain.GetLongFaceEdges( Proc, Face)
|
||||
Edges.SideEdges.EndEdge.Type = 'Side'
|
||||
else
|
||||
table.insert( Edges.OppositeEdges, CurrentEdge)
|
||||
Edges.OppositeEdges[#Edges.OppositeEdges].Type = 'Opposite'
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -5084,7 +5132,11 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc, FaceToMachine, Edg
|
||||
if Proc.Topology == 'Tunnel' then
|
||||
dPocketHeight = Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Height
|
||||
else
|
||||
dPocketHeight = Proc.MainFaces.BottomFace.Height
|
||||
if FaceToMachine.Type == 'Long' then
|
||||
dPocketHeight = Proc.MainFaces.BottomFace.Edges.SideEdges[1].Length
|
||||
elseif FaceToMachine.Type == 'Side' then
|
||||
dPocketHeight = Proc.MainFaces.BottomFace.Edges.LongEdges[1].Length
|
||||
end
|
||||
end
|
||||
|
||||
-- ricerca lavorazione
|
||||
@@ -5254,8 +5306,11 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc, FaceToMachine
|
||||
if Proc.Topology == 'Tunnel' then
|
||||
dPocketHeight = Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Height
|
||||
else
|
||||
-- TODO qui non va bene, sostituire con la lunghezza del lato della BottomFace corrispondente alla faccia lavorata
|
||||
dPocketHeight = Proc.MainFaces.BottomFace.Height
|
||||
if FaceToMachine.Type == 'Long' then
|
||||
dPocketHeight = Proc.MainFaces.BottomFace.Edges.SideEdges[1].Length
|
||||
elseif FaceToMachine.Type == 'Side' then
|
||||
dPocketHeight = Proc.MainFaces.BottomFace.Edges.LongEdges[1].Length
|
||||
end
|
||||
end
|
||||
|
||||
-- ricerca lavorazione
|
||||
@@ -5447,7 +5502,10 @@ function SawPlusChain.Make( bOnlySaw, Proc, nRawId)
|
||||
Proc.MainFaces.SideFaces = SawPlusChain.GetSideFaces( Proc)
|
||||
if Proc.Topology == 'Tunnel' then
|
||||
Proc.MainFaces.TunnelAddedFaces = SawPlusChain.GetTunnelFaces( Proc)
|
||||
else
|
||||
Proc.MainFaces.BottomFace.Edges = SawPlusChain.GetBottomFaceEdges( Proc, Proc.MainFaces.BottomFace)
|
||||
end
|
||||
Proc.MainFaces.LongFace.Edges = SawPlusChain.GetLongFaceEdges( Proc, Proc.MainFaces.LongFace)
|
||||
|
||||
-- lama
|
||||
-- lavorazione di lama - fondo della tasca o fino a massimo materiale se tunnel
|
||||
|
||||
Reference in New Issue
Block a user