- in MachiningLib -> GetSplitMachinings correzione al calcolo FeatureSegment nel caso di lavorazione non spezzata

This commit is contained in:
luca.mazzoleni
2024-12-23 18:25:30 +01:00
parent e126e3f389
commit 8c39c6a94f
3 changed files with 40 additions and 33 deletions
+36 -30
View File
@@ -1334,38 +1334,44 @@ function BeamExec.ProcessMachinings( PROCESSINGS, PARTS)
-- esegue le strategie migliori che ha precedentemente scelto e salva le lavorazioni nella lista globale
MACHININGS = CalculateMachinings( vProc, PARTS[nPart])
-- TODO riordinare lavorazioni ottimizzando cambio utensile/spezzone ecc..., mantenendo dipendenze definite prima
MACHININGS = MachiningLib.PrepareMachiningsForSorting( PARTS[nPart])
-- TODO - rimuovere o mettere in Log
-- local MachiningPropertiesBeforeSorting = {}
-- for i =1, #MACHININGS do
-- MachiningPropertiesBeforeSorting[i] = {}
-- MachiningPropertiesBeforeSorting[i] = {
-- ptCenter = MACHININGS[i].Machining.ptCenter,
-- nStage = MACHININGS[i].Machining.nStage,
-- nPartSegment = MACHININGS[i].Machining.nPartSegment,
-- sToolFamily = TOOLS[ MACHININGS[i].Machining.nToolIndex].sFamily,
-- dToolPerformanceIndex = TOOLS[ MACHININGS[i].Machining.nToolIndex].dPerformanceIndex,
-- sToolName = TOOLS[ MACHININGS[i].Machining.nToolIndex].sName,
-- vtToolDirection = MACHININGS[i].Machining.vtToolDirection
-- }
-- end
--TODO - rimuovere o mettere in Log, serve solo per test
-- TEST
local MachiningPropertiesBeforeSorting = {}
for i =1, #MACHININGS do
MachiningPropertiesBeforeSorting[i] = {}
MachiningPropertiesBeforeSorting[i] = {
ptCenter = MACHININGS[i].Machining.ptCenter,
nStage = MACHININGS[i].Machining.nStage,
nPartSegment = MACHININGS[i].Machining.nPartSegment,
sToolFamily = TOOLS[ MACHININGS[i].Machining.nToolIndex].sFamily,
dToolPerformanceIndex = TOOLS[ MACHININGS[i].Machining.nToolIndex].dPerformanceIndex,
sToolName = TOOLS[ MACHININGS[i].Machining.nToolIndex].sName,
vtToolDirection = MACHININGS[i].Machining.vtToolDirection
}
end
-- fine TEST
-- TODO completare ordinamento. Mancano le dipendenze.
MACHININGS = BeamLib.StableSort( MACHININGS, MachiningLib.CompareMachinings)
-- TODO - rimuovere o mettere in Log
-- local MachiningPropertiesAfterSorting = {}
-- for i =1, #MACHININGS do
-- MachiningPropertiesAfterSorting[i] = {}
-- MachiningPropertiesAfterSorting[i] = {
-- ptCenter = MACHININGS[i].Machining.ptCenter,
-- nStage = MACHININGS[i].Machining.nStage,
-- nPartSegment = MACHININGS[i].Machining.nPartSegment,
-- sToolFamily = TOOLS[ MACHININGS[i].Machining.nToolIndex].sFamily,
-- dToolPerformanceIndex = TOOLS[ MACHININGS[i].Machining.nToolIndex].dPerformanceIndex,
-- sToolName = TOOLS[ MACHININGS[i].Machining.nToolIndex].sName,
-- vtToolDirection = MACHININGS[i].Machining.vtToolDirection
-- }
-- end
--TODO - rimuovere o mettere in Log, serve solo per test
-- TEST
local MachiningPropertiesAfterSorting = {}
for i =1, #MACHININGS do
MachiningPropertiesAfterSorting[i] = {}
MachiningPropertiesAfterSorting[i] = {
ptCenter = MACHININGS[i].Machining.ptCenter,
nStage = MACHININGS[i].Machining.nStage,
nPartSegment = MACHININGS[i].Machining.nPartSegment,
sToolFamily = TOOLS[ MACHININGS[i].Machining.nToolIndex].sFamily,
dToolPerformanceIndex = TOOLS[ MACHININGS[i].Machining.nToolIndex].dPerformanceIndex,
sToolName = TOOLS[ MACHININGS[i].Machining.nToolIndex].sName,
vtToolDirection = MACHININGS[i].Machining.vtToolDirection
}
end
-- fine TEST
-- aggiungo la fase, se non è la prima
if nOrd == 1 then
+3 -2
View File
@@ -171,10 +171,11 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part )
local dPreviousSplitX = dEdgeMaxX
if j ~= 1 then
dPreviousSplitX = SplittingPoints[j - 1]:getX()
elseif j ~= nParts then
end
if j ~= nParts then
dNextSplitX = SplittingPoints[j]:getX()
end
if ( dEdgeMinX - dLeftAddLength) > dNextSplitX - 10 * GEO.EPS_SMALL and ( dEdgeMaxX + dRightAddLength) < dPreviousSplitX + 10 * GEO.EPS_SMALL then
if ( dEdgeMinX - dLeftAddLength) > dNextSplitX - 10 * GEO.EPS_SMALL and ( dEdgeMinX - dLeftAddLength) < dPreviousSplitX + 10 * GEO.EPS_SMALL then
Machinings[i].nFeatureSegment = j
Machinings[i].ptCenter = Point3d( dNextSplitX + ( dPreviousSplitX - dNextSplitX) / 2, 0, 0)
end
+1 -1
View File
@@ -156,7 +156,7 @@ function STR0004.Make( bAddMachining, Proc, Part, CustomParameters)
-- calcolo lavorazioni
local Mortising = {}
OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
if Proc.Topology.sName == 'Groove-4-Blind' or Proc.Topology.sName == 'Pocket-5-Blind' then
-- si lavora tutto il fondo
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}