Compare commits

..

2 Commits

12 changed files with 19 additions and 186 deletions
+8 -1
View File
@@ -1174,6 +1174,9 @@ local function CalculateStrategies( vProcSingleRot, Part)
-- eseguo la strategia solo come calcolo fattibilità e voto. Non si applicano le lavorazioni. Si passa la Proc e i parametri personalizzati -- eseguo la strategia solo come calcolo fattibilità e voto. Non si applicano le lavorazioni. Si passa la Proc e i parametri personalizzati
_, Proc.AvailableStrategies[nIndexCurrentStrategy].Result = CurrentStrategy.Script.Make( false, Proc, Part, Proc.AvailableStrategies[nIndexCurrentStrategy]) _, Proc.AvailableStrategies[nIndexCurrentStrategy].Result = CurrentStrategy.Script.Make( false, Proc, Part, Proc.AvailableStrategies[nIndexCurrentStrategy])
-- pulizia eventuali geometrie aggiutive create dalla strategia
EgtEmptyGroup( Part.idTempGroup)
-- se taglio di testa o coda sostitutivo non applicabile si ripristina l'originale -- se taglio di testa o coda sostitutivo non applicabile si ripristina l'originale
if Proc.AvailableStrategies[nIndexCurrentStrategy].Result.sStatus ~= 'Completed' then if Proc.AvailableStrategies[nIndexCurrentStrategy].Result.sStatus ~= 'Completed' then
if ID.IsHeadCut( Proc) and not Proc.bIsOriginalHeadcut then if ID.IsHeadCut( Proc) and not Proc.bIsOriginalHeadcut then
@@ -1431,6 +1434,8 @@ local function CalculateMachinings( vProc, Part, nInitialRotation)
local StrategyScript = require( StrategyScriptName) local StrategyScript = require( StrategyScriptName)
-- eseguo la strategia e si applicano le lavorazioni. Si passa la Proc e i parametri personalizzati -- eseguo la strategia e si applicano le lavorazioni. Si passa la Proc e i parametri personalizzati
local _, Result = StrategyScript.Make( true, Proc, Part, Proc.ChosenStrategy) local _, Result = StrategyScript.Make( true, Proc, Part, Proc.ChosenStrategy)
-- pulizia eventuali geometrie aggiutive create dalla strategia
EgtEmptyGroup( Part.idTempGroup)
-- per i tagli di testa e coda, che non hanno girato nel CalculateStrategies, si devono settare i risultati -- per i tagli di testa e coda, che non hanno girato nel CalculateStrategies, si devono settare i risultati
if ( ID.IsHeadCut( Proc) or ID.IsTailCut( Proc)) and not Proc.ChosenStrategy.Result then if ( ID.IsHeadCut( Proc) or ID.IsTailCut( Proc)) and not Proc.ChosenStrategy.Result then
Proc.ChosenStrategy.Result = Result Proc.ChosenStrategy.Result = Result
@@ -2388,6 +2393,8 @@ function BeamExec.ProcessAlternatives( PARTS)
local HeadCut = PROCESSINGS[nPart].Rotation[nRotHeadCut+nOffsetIndex][MatrixResult.nIndexHeadCutInVProc] local HeadCut = PROCESSINGS[nPart].Rotation[nRotHeadCut+nOffsetIndex][MatrixResult.nIndexHeadCutInVProc]
local TailCut = PROCESSINGS[nPart].Rotation[nRotSplitCut+nOffsetIndex][MatrixResult.nIndexTailCutInVProc] local TailCut = PROCESSINGS[nPart].Rotation[nRotSplitCut+nOffsetIndex][MatrixResult.nIndexTailCutInVProc]
local HeadCutOnFirstRotation = PROCESSINGS[nPart].Rotation[1+nOffsetIndex][MatrixResult.nIndexHeadCutInVProc]
local TailCutOnFirstRotation = PROCESSINGS[nPart].Rotation[1+nOffsetIndex][MatrixResult.nIndexTailCutInVProc]
-- setto nella Proc l'indice rotazione nella quale deve essere lavorata -- setto nella Proc l'indice rotazione nella quale deve essere lavorata
HeadCut.nIndexRotation = nRotHeadCut HeadCut.nIndexRotation = nRotHeadCut
@@ -2429,7 +2436,7 @@ function BeamExec.ProcessAlternatives( PARTS)
-- aggiornamento info testa/coda per Nesting -- aggiornamento info testa/coda per Nesting
local nRotation = BeamLib.ConvertBitIndexToRotationIndex( BestCombination.sBitIndexCombination) local nRotation = BeamLib.ConvertBitIndexToRotationIndex( BestCombination.sBitIndexCombination)
local sBitIndexCombinationWithInvert = BestCombination.sBitIndexCombination .. EgtIf( BestCombination.bPartInCombiIsInverted, '_INV', '') local sBitIndexCombinationWithInvert = BestCombination.sBitIndexCombination .. EgtIf( BestCombination.bPartInCombiIsInverted, '_INV', '')
local HeadcutInfo, TailcutInfo = GetHeadTailInfoForNesting( HeadCut, TailCut, PARTS[nPart]) local HeadcutInfo, TailcutInfo = GetHeadTailInfoForNesting( HeadCutOnFirstRotation, TailCutOnFirstRotation, PARTS[nPart])
if HeadcutInfo then if HeadcutInfo then
-- offset e vettori vanno adeguati alla rotazione attuale (inversione è già corretta) -- offset e vettori vanno adeguati alla rotazione attuale (inversione è già corretta)
BeamLib.RotateTableFromIndexInPlace( HeadcutInfo.OffsetX, nRotation) BeamLib.RotateTableFromIndexInPlace( HeadcutInfo.OffsetX, nRotation)
+1 -1
View File
@@ -764,7 +764,7 @@ function BeamLib.LoadCustomParametersInStrategy( Proc, Part, CustomParameters, D
if DefaultStrategyParamList.ParameterList[i].sType == 'b' then if DefaultStrategyParamList.ParameterList[i].sType == 'b' then
UpdatedParameters[DefaultStrategyParamList.ParameterList[i].sName] = xParameterValue == 'true' or xParameterValue == '1' or xParameterValue == true UpdatedParameters[DefaultStrategyParamList.ParameterList[i].sName] = xParameterValue == 'true' or xParameterValue == '1' or xParameterValue == true
elseif DefaultStrategyParamList.ParameterList[i].sType == 'd' then elseif DefaultStrategyParamList.ParameterList[i].sType == 'd' then
if #DefaultStrategyParamList.ParameterList[i].sValue > 0 or #xParameterValue > 0 then if #DefaultStrategyParamList.ParameterList[i].sValue > 0 then
UpdatedParameters[DefaultStrategyParamList.ParameterList[i].sName] = tonumber( xParameterValue) UpdatedParameters[DefaultStrategyParamList.ParameterList[i].sName] = tonumber( xParameterValue)
-- stringa vuota equivale a non passare alcun valore (deciderà la strategia) -- stringa vuota equivale a non passare alcun valore (deciderà la strategia)
else else
-3
View File
@@ -209,9 +209,6 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part)
Machinings[nCurrentMachiningIndex].nFeatureSegment = j Machinings[nCurrentMachiningIndex].nFeatureSegment = j
Machinings[nCurrentMachiningIndex].dLengthToMachine = Machinings[nCurrentMachiningIndex].dEdgeLength + Machinings[nCurrentMachiningIndex].LeadIn.dStartAddLength + Machinings[nCurrentMachiningIndex].LeadOut.dEndAddLength Machinings[nCurrentMachiningIndex].dLengthToMachine = Machinings[nCurrentMachiningIndex].dEdgeLength + Machinings[nCurrentMachiningIndex].LeadIn.dStartAddLength + Machinings[nCurrentMachiningIndex].LeadOut.dEndAddLength
Machinings[nCurrentMachiningIndex].dTimeToMachine = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Machinings[nCurrentMachiningIndex], Part) Machinings[nCurrentMachiningIndex].dTimeToMachine = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Machinings[nCurrentMachiningIndex], Part)
Machinings[nCurrentMachiningIndex].bIsFirstSegment = ( j == 1)
Machinings[nCurrentMachiningIndex].bIsLastSegment = ( j == nParts)
Machinings[nCurrentMachiningIndex].bIsMachiningSplitted = true
end end
-- anche le lavorazioni non splittate necessitano del segmento assegnato -- anche le lavorazioni non splittate necessitano del segmento assegnato
else else
-4
View File
@@ -319,8 +319,4 @@
1000316=Autocam will apply a machining on the theoretical zero, to avoid collision if the theoretical piece length doesn't correspond to the real length 1000316=Autocam will apply a machining on the theoretical zero, to avoid collision if the theoretical piece length doesn't correspond to the real length
1000317=Finish with mill 1000317=Finish with mill
1000318=Use a mill to finish the surface if split with chain saw 1000318=Use a mill to finish the surface if split with chain saw
1000319=Allow multiple short strips
1000320=Allow multiple short strips
1000321=Length limit to drop the waste
1000322=If Cutting Strategy is set on AUTO, up to this length the software drop the waste, otherwise it'll keep attached
// ----- End ----- // ----- End -----
-4
View File
@@ -319,8 +319,4 @@
1000316=Autocam applicherà una lavorazione sullo zero teorico per evitare collisioni se la lunghezza teorica del pezzo non corrisponde alla lunghezza reale 1000316=Autocam applicherà una lavorazione sullo zero teorico per evitare collisioni se la lunghezza teorica del pezzo non corrisponde alla lunghezza reale
1000317=Finisci con la fresa 1000317=Finisci con la fresa
1000318=Utilizza una fresa per rifinire la superficie se tagliata con la sega a catena 1000318=Utilizza una fresa per rifinire la superficie se tagliata con la sega a catena
1000319=Permettere codoli multipli
1000320=Permettere codoli multipli
1000321=Lunghezza limite fino alla quale lo scarto viene staccato
1000322=Se la strategia di taglio è impostata su AUTO, fino a questa lunghezza il software stacca gli scarti, altrimenti li mantiene attaccati
// ----- End ----- // ----- End -----
-4
View File
@@ -319,8 +319,4 @@
1000316=Autocam past een bewerking toe op het theoretische nulpunt om botsingen te voorkomen als de theoretische lengte niet overeenkomt met de werkelijke lengte 1000316=Autocam past een bewerking toe op het theoretische nulpunt om botsingen te voorkomen als de theoretische lengte niet overeenkomt met de werkelijke lengte
1000317=Afwerken met frees 1000317=Afwerken met frees
1000318=Gebruik een frees om het oppervlak na te bewerken als dit met de kettingzaag is gespleten 1000318=Gebruik een frees om het oppervlak na te bewerken als dit met de kettingzaag is gespleten
1000319=Sta meerdere korte verbindingsstrips toe
1000320=Sta meerdere korte verbindingsstrips toe
1000321=Maximale lengte voor het uitwerpen van het reststuk
1000322=Als de snijstrategie op AUTO staat, wordt het reststuk tot deze maximale lengte automatisch uitgeworpen; bij grotere lengtes blijft het reststuk aan het werkstuk bevestigd.
// ----- End ----- // ----- End -----
-40
View File
@@ -108,10 +108,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -155,10 +151,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -204,10 +196,6 @@
{ "sName": "Rabbet-2-Through", { "sName": "Rabbet-2-Through",
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
} }
] ]
}, },
@@ -236,10 +224,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -287,10 +271,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -334,10 +314,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -392,10 +368,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -483,10 +455,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -552,10 +520,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -611,10 +575,6 @@
"sImage": "ConfigStrategy\\Rabbet-2-Through.png", "sImage": "ConfigStrategy\\Rabbet-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}, },
{ "sName": "VGroove-2-Through",
"sImage": "ConfigStrategy\\VGroove-2-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through", { "sName": "Cut-1-Through",
"sImage": "ConfigStrategy\\Cut-1-Through.png", "sImage": "ConfigStrategy\\Cut-1-Through.png",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ] "StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
-24
View File
@@ -100,18 +100,6 @@
} }
] ]
}, },
{
"sName": "dLengthLimitToDropWaste",
"sNameNge": "LEN_DROP_WASTE",
"sValue": "",
"sDescriptionShort": "Length limit to drop the waste",
"sDescriptionLong": "If Cutting Strategy is set on AUTO, up to this length the software drop the waste, otherwise it'll keep attached",
"idDescriptionShortMsg": 1000321,
"idDescriptionLongMsg": 1000322,
"sType": "d",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{ {
"sName": "bDisableDicing", "sName": "bDisableDicing",
"sNameNge": "DISABLE_DICING", "sNameNge": "DISABLE_DICING",
@@ -148,18 +136,6 @@
"sMessageId": " ", "sMessageId": " ",
"sMinUserLevel": "1" "sMinUserLevel": "1"
}, },
{
"sName": "bAllowPerpendicularStrip",
"sNameNge": "ALLOW_PERPENDICULAR_STRIP",
"sValue": "false",
"sDescriptionShort": "Allow multiple short strips",
"sDescriptionLong": "Allow multiple short strips",
"idDescriptionShortMsg": 1000319,
"idDescriptionLongMsg": 1000320,
"sType": "b",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{ {
"sName": "bFinishWithMill", "sName": "bFinishWithMill",
"sNameNge": "ALLOW_FINISH_MILL", "sNameNge": "ALLOW_FINISH_MILL",
+2 -8
View File
@@ -100,8 +100,8 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
-- considerazioni necessarie a determinare se lavorare con codolo oppure no -- considerazioni necessarie a determinare se lavorare con codolo oppure no
local bKeepWasteAttached = ( Strategy.Parameters.sCuttingStrategy == 'KEEP_WASTE_ATTACHED') local bKeepWasteAttached = ( Strategy.Parameters.sCuttingStrategy == 'KEEP_WASTE_ATTACHED')
local bDropWaste = ( Strategy.Parameters.sCuttingStrategy == 'DROP_WASTE') local bDropWaste = ( Strategy.Parameters.sCuttingStrategy == 'DROP_WASTE')
local bFeatureHindersClamping = MachiningLib.IsFeatureHinderingClamping( Proc, Part) local bFeatureHindersClamping = MachiningLib.IsFeatureHinderingClamping( Proc, Part)
local dLengthLimitToDropWaste = Strategy.Parameters.dLengthLimitToDropWaste
local bIsFeatureLong = FeatureLib.IsMachiningLong( Proc.b3Box:getDimX(), Part, { dMaxSegmentLength = BeamData.LONGCUT_ENDLEN}) local bIsFeatureLong = FeatureLib.IsMachiningLong( Proc.b3Box:getDimX(), Part, { dMaxSegmentLength = BeamData.LONGCUT_ENDLEN})
local bIsTwoFacesCommonEdgeTooLong = ( ( Proc.Topology and ( Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind')) and IsTwoFacesCommonEdgeTooLong( Proc, Part)) local bIsTwoFacesCommonEdgeTooLong = ( ( Proc.Topology and ( Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind')) and IsTwoFacesCommonEdgeTooLong( Proc, Part))
@@ -109,16 +109,10 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
-- lavorazione con codolo -- lavorazione con codolo
if ( Proc.nFct > 2 and bIsFeatureLong) if ( Proc.nFct > 2 and bIsFeatureLong)
or ( bFeatureHindersClamping and not bDropWaste) or ( bFeatureHindersClamping and not bDropWaste)
or ( dLengthLimitToDropWaste and Proc.b3Box:getDimX() > dLengthLimitToDropWaste)
or bKeepWasteAttached then or bKeepWasteAttached then
local BladeKeepWasteResult local BladeKeepWasteResult
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail, local OptionalParameters = { dExtendAfterTail = dExtendAfterTail, dStripWidth = Strategy.Parameters.dStripWidth, bForced = bKeepWasteAttached}
dStripWidth = Strategy.Parameters.dStripWidth,
bAllowPerpendicularStrip = Strategy.Parameters.bAllowPerpendicularStrip,
bFinishWithMill = Strategy.Parameters.bFinishWithMill,
bForced = bKeepWasteAttached
}
AuxiliaryData.bIgnoreNotClampableLength = true AuxiliaryData.bIgnoreNotClampableLength = true
Blade.Result, BladeKeepWasteResult = BladeKeepWaste.Make( Proc, Part, OptionalParameters) Blade.Result, BladeKeepWasteResult = BladeKeepWaste.Make( Proc, Part, OptionalParameters)
dTimeToMachine = BladeKeepWasteResult.dTimeToMachine dTimeToMachine = BladeKeepWasteResult.dTimeToMachine
-36
View File
@@ -51,18 +51,6 @@
} }
] ]
}, },
{
"sName": "dLengthLimitToDropWaste",
"sNameNge": "LEN_DROP_WASTE",
"sValue": "",
"sDescriptionShort": "Length limit to drop the waste",
"sDescriptionLong": "If Cutting Strategy is set on AUTO, up to this length the software drop the waste, otherwise it'll keep attached",
"idDescriptionShortMsg": 1000321,
"idDescriptionLongMsg": 1000322,
"sType": "d",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{ {
"sName": "sCanDamageNextPiece", "sName": "sCanDamageNextPiece",
"sNameNge": "DAMAGE_NEXT_PIECE", "sNameNge": "DAMAGE_NEXT_PIECE",
@@ -137,30 +125,6 @@
} }
] ]
}, },
{
"sName": "dStripWidth",
"sNameNge": "STRIP_WIDTH",
"sValue": "5",
"sDescriptionShort": "Strip width",
"sDescriptionLong": "In case the waste is still kept attached, this is the wigth dimension of the strip",
"idDescriptionShortMsg": 1000129,
"idDescriptionLongMsg": 1000130,
"sType": "d",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{
"sName": "bAllowPerpendicularStrip",
"sNameNge": "ALLOW_PERPENDICULAR_STRIP",
"sValue": "false",
"sDescriptionShort": "Allow multiple short strips",
"sDescriptionLong": "Allow multiple short strips",
"idDescriptionShortMsg": 1000319,
"idDescriptionLongMsg": 1000320,
"sType": "b",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{ {
"sName": "dMaxWasteLength", "sName": "dMaxWasteLength",
"sSource": "GEN_dMaxWasteLength", "sSource": "GEN_dMaxWasteLength",
+5 -9
View File
@@ -95,17 +95,13 @@ function STR0012.Make( bAddMachining, Proc, Part, CustomParameters)
local bKeepWasteAttached = ( Strategy.Parameters.sCuttingStrategy == 'KEEP_WASTE_ATTACHED') local bKeepWasteAttached = ( Strategy.Parameters.sCuttingStrategy == 'KEEP_WASTE_ATTACHED')
local bDropWaste = ( Strategy.Parameters.sCuttingStrategy == 'DROP_WASTE') local bDropWaste = ( Strategy.Parameters.sCuttingStrategy == 'DROP_WASTE')
local bFeatureHindersClamping = MachiningLib.IsFeatureHinderingClamping( NewProc, Part) local bFeatureHindersClamping = MachiningLib.IsFeatureHinderingClamping( NewProc, Part)
local dLengthLimitToDropWaste = Strategy.Parameters.dLengthLimitToDropWaste
-- lavorazione con codolo -- lavorazione con codolo
if ( bFeatureHindersClamping and not bDropWaste) if ( bFeatureHindersClamping and not bDropWaste)
or ( dLengthLimitToDropWaste and Proc.b3Box:getDimX() > dLengthLimitToDropWaste)
or bKeepWasteAttached then or bKeepWasteAttached then
local BladeKeepWasteResult local BladeKeepWasteResult
local OptionalParameters = { bAllowPerpendicularStrip = Strategy.Parameters.bAllowPerpendicularStrip, local OptionalParameters = { dExtendAfterTail = dExtendAfterTail, dStripWidth = 5, bFinishWithMill = false}
dStripWidth = Strategy.Parameters.dStripWidth,
dExtendAfterTail = dExtendAfterTail, bFinishWithMill = false}
AuxiliaryData.bIgnoreNotClampableLength = true AuxiliaryData.bIgnoreNotClampableLength = true
TwoFaces.Result, BladeKeepWasteResult = BladeKeepWaste.Make( NewProc, Part, OptionalParameters) TwoFaces.Result, BladeKeepWasteResult = BladeKeepWaste.Make( NewProc, Part, OptionalParameters)
dTimeToMachine = BladeKeepWasteResult.dTimeToMachine dTimeToMachine = BladeKeepWasteResult.dTimeToMachine
@@ -117,10 +113,10 @@ function STR0012.Make( bAddMachining, Proc, Part, CustomParameters)
else else
local BladeToWasteResult local BladeToWasteResult
local OptionalParameters = { dMaxWasteVolume = Strategy.Parameters.dMaxWasteVolume, local OptionalParameters = { dMaxWasteVolume = Strategy.Parameters.dMaxWasteVolume,
dMaxWasteLength = Strategy.Parameters.dMaxWasteLength, dMaxWasteLength = Strategy.Parameters.dMaxWasteLength,
bSaveAddedGeometries = bAddMachining, bSaveAddedGeometries = bAddMachining,
dExtendAfterTail = dExtendAfterTail, dExtendAfterTail = dExtendAfterTail,
bReduceBladePath = Strategy.Parameters.bReduceBladePath bReduceBladePath = Strategy.Parameters.bReduceBladePath
} }
AuxiliaryData.bIgnoreNotClampableLength = false AuxiliaryData.bIgnoreNotClampableLength = false
TwoFaces.Result, BladeToWasteResult = BladeToWaste.Make( NewProc, Part, OptionalParameters) TwoFaces.Result, BladeToWasteResult = BladeToWaste.Make( NewProc, Part, OptionalParameters)
+3 -52
View File
@@ -146,12 +146,10 @@ local function MakeBottomFace( Proc, Part, BottomFace, EdgeToMachine, Parameters
local dExtendAfterTail = Parameters.dExtendAfterTail local dExtendAfterTail = Parameters.dExtendAfterTail
local nToolIndex = Parameters.nToolIndex local nToolIndex = Parameters.nToolIndex
local dStripWidth = Parameters.dStripWidth local dStripWidth = Parameters.dStripWidth
local bAllowPerpendicularStrip = Parameters.bAllowPerpendicularStrip
local OtherBottomFace = Parameters.OtherBottomFace local OtherBottomFace = Parameters.OtherBottomFace
local dDepthToMachine = EdgeToMachine.dElevation / 2 - dStripWidth / 2 local dDepthToMachine = EdgeToMachine.dElevation / 2 - dStripWidth / 2
local OptionalParametersFaceByBlade1 = { dDepthToMachine = dDepthToMachine, bIsSplitFeature = bIsSplitFeature, local OptionalParametersFaceByBlade1 = { dDepthToMachine = dDepthToMachine, bIsSplitFeature = bIsSplitFeature, dExtendAfterTail = dExtendAfterTail, nToolIndex = nToolIndex}
dExtendAfterTail = dExtendAfterTail, nToolIndex = nToolIndex}
local EdgeToMachineOpposite = BeamLib.FindEdgeBestOrientedAsDirection( BottomFace.Edges, -EdgeToMachine.vtN) local EdgeToMachineOpposite = BeamLib.FindEdgeBestOrientedAsDirection( BottomFace.Edges, -EdgeToMachine.vtN)
-- primo lato -- primo lato
@@ -177,15 +175,8 @@ local function MakeBottomFace( Proc, Part, BottomFace, EdgeToMachine, Parameters
if OtherBottomFace and ( EdgeToMachine.idAdjacentFace == OtherBottomFace.id) then if OtherBottomFace and ( EdgeToMachine.idAdjacentFace == OtherBottomFace.id) then
dStripWidth = TOOLS[Cutting2.nToolIndex].dThickness + 2 * dStripWidth dStripWidth = TOOLS[Cutting2.nToolIndex].dThickness + 2 * dStripWidth
end end
-- se richiesto, si calcola il codolo verticale dDepthToMachine = min( TOOLS[Cutting2.nToolIndex].dMaxMaterial, EdgeToMachine.dElevation - dStripWidth)
if bAllowPerpendicularStrip and FeatureLib.IsMachiningLong( Cutting1.dEdgeLength, Part) then
dDepthToMachine = TOOLS[Cutting2.nToolIndex].dMaxMaterial - 10
else
dDepthToMachine = min( TOOLS[Cutting2.nToolIndex].dMaxMaterial, EdgeToMachine.dElevation - dStripWidth)
end
OptionalParametersFaceByBlade2.dDepthToMachine = dDepthToMachine OptionalParametersFaceByBlade2.dDepthToMachine = dDepthToMachine
OptionalParametersFaceByBlade2.bAllowPerpendicularStrip = bAllowPerpendicularStrip
Cutting2 = FaceByBlade.Make( Proc, Part, BottomFace, EdgeToMachine, OptionalParametersFaceByBlade2) Cutting2 = FaceByBlade.Make( Proc, Part, BottomFace, EdgeToMachine, OptionalParametersFaceByBlade2)
Cutting2.nInternalSortingPriority = 2 Cutting2.nInternalSortingPriority = 2
@@ -198,15 +189,8 @@ local function MakeBottomFace( Proc, Part, BottomFace, EdgeToMachine, Parameters
if OtherBottomFace and ( EdgeToMachine.idAdjacentFace == OtherBottomFace.id) then if OtherBottomFace and ( EdgeToMachine.idAdjacentFace == OtherBottomFace.id) then
dStripWidth = TOOLS[Cutting1.nToolIndex].dThickness + 2 * dStripWidth dStripWidth = TOOLS[Cutting1.nToolIndex].dThickness + 2 * dStripWidth
end end
-- se richiesto, si calcola il codolo verticale dDepthToMachine = min( TOOLS[Cutting1.nToolIndex].dMaxMaterial, EdgeToMachine.dElevation - dStripWidth)
if bAllowPerpendicularStrip and FeatureLib.IsMachiningLong( Cutting2.dEdgeLength, Part) then
dDepthToMachine = TOOLS[Cutting1.nToolIndex].dMaxMaterial - 10
else
dDepthToMachine = min( TOOLS[Cutting1.nToolIndex].dMaxMaterial, EdgeToMachine.dElevation - dStripWidth)
end
OptionalParametersFaceByBlade1.dDepthToMachine = dDepthToMachine OptionalParametersFaceByBlade1.dDepthToMachine = dDepthToMachine
OptionalParametersFaceByBlade1.bAllowPerpendicularStrip = bAllowPerpendicularStrip
Cutting1 = FaceByBlade.Make( Proc, Part, BottomFace, EdgeToMachine, OptionalParametersFaceByBlade1) Cutting1 = FaceByBlade.Make( Proc, Part, BottomFace, EdgeToMachine, OptionalParametersFaceByBlade1)
Cutting1.nInternalSortingPriority = 2 Cutting1.nInternalSortingPriority = 2
@@ -266,7 +250,6 @@ function BLADEKEEPWASTE.Make( Proc, Part, OptionalParameters)
local bFinishWithMill = ( OptionalParameters.bFinishWithMill ~= false) local bFinishWithMill = ( OptionalParameters.bFinishWithMill ~= false)
local dMillingOffsetFromSide = OptionalParameters.dMillingOffsetFromSide or 1 local dMillingOffsetFromSide = OptionalParameters.dMillingOffsetFromSide or 1
local dStripWidth = OptionalParameters.dStripWidth or 5 local dStripWidth = OptionalParameters.dStripWidth or 5
local bAllowPerpendicularStrip = OptionalParameters.bAllowPerpendicularStrip or false
local bForced = OptionalParameters.bForced or false local bForced = OptionalParameters.bForced or false
-- volume della feature -- volume della feature
@@ -313,7 +296,6 @@ function BLADEKEEPWASTE.Make( Proc, Part, OptionalParameters)
dExtendAfterTail = dExtendAfterTail, dExtendAfterTail = dExtendAfterTail,
nToolIndex = nToolIndex, nToolIndex = nToolIndex,
dStripWidth = dStripWidth, dStripWidth = dStripWidth,
bAllowPerpendicularStrip = bAllowPerpendicularStrip,
OtherBottomFace = BottomFace2 OtherBottomFace = BottomFace2
} }
local Cuttings1 = MakeBottomFace( Proc, Part, BottomFace1, BottomEdgeToMachine1, Parameters1) local Cuttings1 = MakeBottomFace( Proc, Part, BottomFace1, BottomEdgeToMachine1, Parameters1)
@@ -445,37 +427,6 @@ function BLADEKEEPWASTE.Make( Proc, Part, OptionalParameters)
Machinings = MachiningLib.GetSplitMachinings( Machinings, FeatureSplittingPoints, Part) Machinings = MachiningLib.GetSplitMachinings( Machinings, FeatureSplittingPoints, Part)
end end
-- se codoli perpendicolari, si accorciano LeadIn/LeadOut
if bAllowPerpendicularStrip then
for j = 1, #Machinings do
if Machinings[j].bIsMachiningSplitted then
-- se primo spezzone
if Machinings[j].bIsFirstSegment then
if MachiningLib.StartsLeftSide( Machinings[j]) then
Machinings[j].LeadIn.dStartAddLength = Machinings[j].LeadIn.dStartAddLength - Machinings[j].dToolMarkLength - dStripWidth
Machinings[j].LeadOut.dEndAddLength = Machinings[j].LeadOut.dEndAddLength - dStripWidth
else
Machinings[j].LeadOut.dEndAddLength = Machinings[j].LeadOut.dEndAddLength - Machinings[j].dToolMarkLength - dStripWidth
Machinings[j].LeadIn.dStartAddLength = Machinings[j].LeadIn.dStartAddLength - dStripWidth
end
-- se ultimo spezzone
elseif Machinings[j].bIsLastSegment then
if MachiningLib.StartsLeftSide( Machinings[j]) then
Machinings[j].LeadOut.dEndAddLength = Machinings[j].LeadOut.dEndAddLength - Machinings[j].dToolMarkLength - dStripWidth
Machinings[j].LeadIn.dStartAddLength = Machinings[j].LeadIn.dStartAddLength - dStripWidth
else
Machinings[j].LeadIn.dStartAddLength = Machinings[j].LeadIn.dStartAddLength - Machinings[j].dToolMarkLength - dStripWidth
Machinings[j].LeadOut.dEndAddLength = Machinings[j].LeadOut.dEndAddLength - dStripWidth
end
-- se spezzoni centrali
else
Machinings[j].LeadIn.dStartAddLength = Machinings[j].LeadIn.dStartAddLength - Machinings[j].dToolMarkLength - dStripWidth
Machinings[j].LeadOut.dEndAddLength = Machinings[j].LeadOut.dEndAddLength - Machinings[j].dToolMarkLength - dStripWidth
end
end
end
end
-- ordinamento -- ordinamento
table.sort( Machinings, SortMachiningsBySegment) table.sort( Machinings, SortMachiningsBySegment)