- in MachiningLib -> GetSplitMachinings correzione al calcolo FeatureSegment nel caso di lavorazione non spezzata
This commit is contained in:
+36
-30
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user