diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index 4d7179b..43ba678 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -153,7 +153,7 @@ function BeamExec.GetToolsFromDB() elseif sToolFamily == 'SAWBLADE' then Tool.bIsUsedForLongCut = EgtGetValInNotes( Tool.sUserNotes, 'LONGCUT') == 1 or false -- false coem valore di default Tool.dStep = EgtGetValInNotes( Tool.sUserNotes, 'STEP') or Tool.dThickness -- se non settato nell'utensile, considero lo spessore lama - Tool.dSideStep = EgtGetValInNotes( Tool.sUserNotes, 'SIDESTEP') or floor( Tool.dDiameter / 4) -- se non settato nell'utensile, considero un quarto del diametro + Tool.dSideStep = EgtGetValInNotes( Tool.sUserNotes, 'SIDESTEP') or Tool.dMaxMaterial -- se non settato nell'utensile, considero un quarto del diametro -- recupero parametri propri delle motoseghe elseif sToolFamily == 'MORTISE' then Tool.dDistance = EgtTdbGetCurrToolParam( MCH_TP.DIST) or 90 -- 90mm dimensione standard aggregato catena @@ -513,8 +513,7 @@ local function CollectFeatures( Part) end -- se topologia feature riconosciuta, oppure da non calcolare perchè il riconoscimento topologico è basato sulla feature stessa if Proc.Topology.sName ~= 'NOT_IMPLEMENTED' then - -- TODO Funzione 'GetMainFaces' da scrivere - Proc.MainFaces = FaceData.GetMainFaces( Proc) + Proc.MainFaces = FaceData.GetMainFaces( Proc, Part) -- se la processing ha una strategia forzata, riporto tutto nella proc local vForcedStrategy = GetFeatureForcedStrategy( Proc) if vForcedStrategy then @@ -809,7 +808,7 @@ local function OrderFeatures( vProc) local bComp2 = CompareFeatures( vProcToSort[j], vProcToSort[i]) if bComp1 == bComp2 then bCompTest = false - EgtOutLog( string.format( ' ProcId : %d vs %d --> ERROR', vProcToSort[i].Id, vProcToSort[j].Id)) + EgtOutLog( string.format( ' ProcId : %d vs %d --> ERROR', vProcToSort[i].id, vProcToSort[j].id)) end end end diff --git a/LuaLibs/FaceData.lua b/LuaLibs/FaceData.lua index b21b029..82f17e2 100644 --- a/LuaLibs/FaceData.lua +++ b/LuaLibs/FaceData.lua @@ -101,7 +101,6 @@ function FaceData.GetFacesInfo( Proc, Part) EgtOutLog( '---Faces START---') local Faces = {} - local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( Proc.idPart, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD) local vAdj if Proc.AdjacencyMatrix then vAdj = Proc.AdjacencyMatrix @@ -126,7 +125,7 @@ function FaceData.GetFacesInfo( Proc, Part) -- altezza OCS faccia Faces[i].dHeight = dFaceHeight -- elevazione calcolata rispetto al box della parte - Faces[i].dElevation = EgtSurfTmFacetElevationInBBox( Proc.id, i - 1, b3Solid, true, GDB_ID.ROOT) + Faces[i].dElevation = EgtSurfTmFacetElevationInBBox( Proc.id, i - 1, Part.b3Solid, true, GDB_ID.ROOT) -- TODO qui sarebbe meglio l'area vera e non quella del rettangolo minimo local _, dLongEdgeDimension, dShortEdgeDimension = EgtSurfTmFacetMinAreaRectangle( Proc.id, i - 1, GDB_ID.ROOT) Faces[i].dArea = dShortEdgeDimension * dLongEdgeDimension @@ -160,13 +159,10 @@ end ------------------------------------------------------------------------------------------------------------- -- TODO valutare refactoring per mettere i calcoli del tunnel in una funzione --- TODO valutare se restituire anche altre informazioni oltre alle facce (es: box); magari metterle in funzione a parte chiamata allo stesso livello della GetMainFAces -local function GetTunnelFaces( Proc) +-- TODO valutare se restituire anche altre informazioni oltre alle facce (es: box); magari metterle in funzione a parte chiamata allo stesso livello della GetMainFaces +local function GetTunnelFaces( Proc, Part) local TunnelAddedFaces = {} - -- TODO scrivere il box della parte nella Proc o fare funzione per recuperarlo - local b3Part = EgtGetBBoxGlob( EgtGetFirstNameInGroup( Proc.idPart, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD) - if not ( Proc.Topology.bIsThrough and Proc.Topology.bAllRightAngles and Proc.nFct < 5) then error( 'GetTunnelFaces : Topology not implemented') end @@ -190,13 +186,18 @@ local function GetTunnelFaces( Proc) -- faccia centrale, si crea larga come la parte e poi si trimma TunnelAddedFaces.MiddleFaceTm = {} - TunnelAddedFaces.MiddleFaceTm.id = EgtSurfTmPlaneInBBox( nAddGrpId, ptTunnelCenter, vtTunnelDirection, b3Part, GDB_ID.ROOT) + TunnelAddedFaces.MiddleFaceTm.id = EgtSurfTmPlaneInBBox( nAddGrpId, ptTunnelCenter, vtTunnelDirection, Part.b3Solid, GDB_ID.ROOT) -- TODO se non si riesce a costruire la faccia bisogna dare errore o semplicemente non ritornarla?? for i = 1, Proc.nFct do EgtCutSurfTmPlane( TunnelAddedFaces.MiddleFaceTm.id, Proc.Faces[i].ptCenter, -Proc.Faces[i].vtN, false, GDB_ID.ROOT) end + -- TODO c'è un modo più elegante per raccogliere le informazioni delle facce aggiunte TunnelAddedFaces.MiddleFaceTm.Type = 'Tunnel' - -- TODO aggiungere anche informazioni Edges tunnel?? + TunnelAddedFaces.MiddleFaceTm.nFct = 1 + TunnelAddedFaces.MiddleFaceTm.Faces = FaceData.GetFacesInfo( TunnelAddedFaces.MiddleFaceTm, Part) + if TunnelAddedFaces.MiddleFaceTm.Faces[1].dHeight > TunnelAddedFaces.MiddleFaceTm.Faces[1].dWidth then + TunnelAddedFaces.MiddleFaceTm.Faces[1].dHeight, TunnelAddedFaces.MiddleFaceTm.Faces[1].dWidth = TunnelAddedFaces.MiddleFaceTm.Faces[1].dWidth, TunnelAddedFaces.MiddleFaceTm.Faces[1].dHeight + end return TunnelAddedFaces end @@ -237,14 +238,16 @@ local function GetBottomFace( Proc) BottomFace.MainEdges.LongEdges = {} BottomFace.MainEdges.SideEdges = {} - local EdgesSortedByGreatestLength = {} + local ClosedEdgesSortedByGreatestLength = {} for i = 1, #BottomFace.Edges do - EdgesSortedByGreatestLength[i] = {} - EdgesSortedByGreatestLength[i].nIndex = i - EdgesSortedByGreatestLength[i].dLength = BottomFace.Edges[i].Len + if not BottomFace.Edges[i].Open then + table.insert( ClosedEdgesSortedByGreatestLength, {}) + ClosedEdgesSortedByGreatestLength[#ClosedEdgesSortedByGreatestLength].nIndex = i + ClosedEdgesSortedByGreatestLength[#ClosedEdgesSortedByGreatestLength].dLength = BottomFace.Edges[i].Len + end end - table.sort( EdgesSortedByGreatestLength, function (a, b) return a.dLength > b.dLength end) - local nFirstLongEdgeIndex = EdgesSortedByGreatestLength[1].nIndex + table.sort( ClosedEdgesSortedByGreatestLength, function (a, b) return a.dLength > b.dLength end) + local nFirstLongEdgeIndex = ClosedEdgesSortedByGreatestLength[1].nIndex for i = 1, #BottomFace.Edges do local nPreviousEdgeIndex = i - 1 @@ -407,7 +410,7 @@ end ------------------------------------------------------------------------------------------------------------- -- recupero facce principali della feature, in base alla topologia -function FaceData.GetMainFaces( Proc) +function FaceData.GetMainFaces( Proc, Part) EgtOutLog( '---MainFaces START---') local MainFaces = {} @@ -416,7 +419,7 @@ function FaceData.GetMainFaces( Proc) if Proc.Topology.sFamily == 'Rabbet' or Proc.Topology.sFamily == 'VGroove' or Proc.Topology.sFamily == 'Groove' or Proc.Topology.sFamily == 'Pocket' or Proc.Topology.sFamily == 'Tunnel' then if Proc.Topology.bIsThrough and Proc.Topology.bAllRightAngles and Proc.nFct < 5 then - MainFaces.TunnelAddedFaces = GetTunnelFaces( Proc) + MainFaces.TunnelAddedFaces = GetTunnelFaces( Proc, Part) end MainFaces.BottomFace = GetBottomFace( Proc) diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index ff84c26..ee3f01e 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -302,14 +302,14 @@ function MachiningLib.AddNewMachining( Machining) if TOOLS[Machining.nToolIndex].sFamily == 'SAWBLADE' then Machining.sTypeName = 'Cut_' else - Machining.sTypeName = 'Milling_' + Machining.sTypeName = 'Mill_' end -- Pocketing elseif Machining.nType == MCH_MY.POCKETING then - Machining.sTypeName = 'Pocketing_' + Machining.sTypeName = 'Pocket_' -- Mortising elseif Machining.nType == MCH_MY.MORTISING then - Machining.sTypeName = 'Mortising_' + Machining.sTypeName = 'ChSaw_' end -- se nome non definito, assegno alla lavorazioen un nome standard diff --git a/Strategies/STR0002/STR0002.lua b/Strategies/STR0002/STR0002.lua index b2cb567..81cb065 100644 --- a/Strategies/STR0002/STR0002.lua +++ b/Strategies/STR0002/STR0002.lua @@ -64,6 +64,11 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters) ToolSearchParameters.sType = 'MILL_STD' ToolSearchParameters.sMillShape = 'STANDARD' ToolSearchParameters.dMaxToolDiameter = min( Strategy.Parameters.dMaxCornerRadius * 2, Proc.MainFaces.BottomFace.dHeight, Proc.MainFaces.BottomFace.dWidth) + -- TODO serve parametro bAllowNoTip o simile + if Proc.Topology.sName == 'Groove-3-Through' then + ToolSearchParameters.dMaxToolDiameter = min( Proc.MainFaces.BottomFace.dHeight, Proc.MainFaces.BottomFace.dWidth) + ToolSearchParameters.sType = 'MILL_NOTIP' + end ToolSearchParameters.dElevation = Proc.MainFaces.BottomFace.dElevation ToolSearchParameters.vtToolDir = Proc.MainFaces.BottomFace.vtN diff --git a/Strategies/STR0003/STR0003.lua b/Strategies/STR0003/STR0003.lua index 56fd3ab..36ada8a 100644 --- a/Strategies/STR0003/STR0003.lua +++ b/Strategies/STR0003/STR0003.lua @@ -18,10 +18,11 @@ local Chainsaw = {} ------------------------------------------------------------------------------------------------------------- local function IsTopologyOk( Proc) - if Proc.Topology.sName == 'Pocket-5-Blind' or - Proc.Topology.sName == 'Groove-3-Through' or - Proc.Topology.sName == 'Groove-4-Blind' or - Proc.Topology.sName == 'Tunnel-4-Through' then + if Proc.Topology.bAllRightAngles and + ( Proc.Topology.sName == 'Pocket-5-Blind' or + Proc.Topology.sName == 'Groove-3-Through' or + Proc.Topology.sName == 'Groove-4-Blind' or + Proc.Topology.sName == 'Tunnel-4-Through') then return true else @@ -34,7 +35,7 @@ local function GetCompletionPercentage( Proc, Result) local dNotMachinedArea = 0 local dCompletionPercentage = 0 - if Proc.Topology.sName == 'Tunnel' then + if Proc.Topology.sFamily == 'Tunnel' then dNotMachinedArea = Proc.MainFaces.LongFaces[1].MainEdges.OppositeEdges[1].dLength * ( Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[1].dLength - Result[1].dDepthMachined - Result[2].dDepthMachined) else if #Result == 1 then @@ -231,7 +232,7 @@ function Blade.CalculateMachiningParameters( Proc, FaceToMachine, EdgeToMachine) local dPocketHeight = 0 if Proc.Topology.sFamily == 'Tunnel' then - dPocketHeight = Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.dHeight + dPocketHeight = Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dHeight else if FaceToMachine.Type == 'Long' then dPocketHeight = Proc.MainFaces.BottomFace.MainEdges.SideEdges[1].dLength @@ -308,13 +309,13 @@ function Blade.CalculateMachiningParameters( Proc, FaceToMachine, EdgeToMachine) end else Cutting.dDepthToMachine = TOOLS[Cutting.nToolIndex].dMaxDepth - 1 - dResidualDepth = EdgeToMachine.dElevation - Cutting.dDepthToMachine + dResidualDepth = abs( EdgeToMachine.dElevation) - Cutting.dDepthToMachine if EdgeToMachine.dElevation > -10 * GEO.EPS_SMALL then Cutting.dRadialOffset = EdgeToMachine.dElevation - Cutting.dDepthToMachine else Cutting.dRadialOffset = -Cutting.dDepthToMachine end - if EdgeToMachine.dElevation > -10 * GEO.EPS_SMALL and Strategy.Parameters.bApplyOnlyBlade then + if EdgeToMachine.dElevation > -10 * GEO.EPS_SMALL and not Strategy.Parameters.bFinishWithChainSaw then Cutting.sMessage = 'Feature '.. Proc.idFeature .. ' : sawblade elevation (' .. EgtNumToString( EdgeToMachine.dElevation, 1) .. ') bigger than max tool depth (' .. EgtNumToString( Cutting.dDepthToMachine, 1) .. ')' EgtOutLog( Cutting.sMessage) end @@ -404,6 +405,7 @@ end function Chainsaw.CalculateMachiningParameters( Proc, FaceToMachine, EdgeToMachine) local Mortising = {} Mortising.bCanApply = true + Mortising.dDepthToMachine = 0 Mortising.sMessage = '' Mortising.idProc = Proc.id -- OneSide | OneSideAndExtend | BothSides | BothSidesAndExtend @@ -516,7 +518,7 @@ function Chainsaw.CalculateMachiningParameters( Proc, FaceToMachine, EdgeToMachi end else Mortising.dDepthToMachine = TOOLS[Mortising.nToolIndex].dMaxMat - 1 - dResidualDepth = EdgeToMachine.dElevation - Mortising.dDepthToMachine + dResidualDepth = abs( EdgeToMachine.dElevation) - Mortising.dDepthToMachine if EdgeToMachine.dElevation > -10 * GEO.EPS_SMALL then Mortising.dLongitudinalOffset = EdgeToMachine.dElevation - Mortising.dDepthToMachine else @@ -609,7 +611,7 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) if not IsTopologyOk( Proc) then local sErr = 'Feature '.. Proc.idFeature .. ' : strategy ' .. Strategy.sName .. ' not implemented' EgtOutLog( sErr) - return false, sErr + return false, Strategy.Result end -- se tasca su faccia sotto la strategia non è applicabile (la sega a catena in generale non può lavorare da sotto) @@ -617,7 +619,7 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) if Proc.AffectedFaces.Bottom and ( Proc.Fct > 3 or not Proc.AffectedFaces.Top) then local sErr = 'Feature '.. Proc.idFeature .. ' : strategy ' .. Strategy.sName .. ' not applicable - pocket on bottom face' EgtOutLog( sErr) - return false, sErr + return false, Strategy.Result end -- lama @@ -626,10 +628,8 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) local Cutting = {} if Proc.Topology.sFamily == 'Tunnel' then Cutting, dResidualDepth = Blade.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.OppositeEdges[1]) - Blade.Result[#Blade.Result].sType = 'Tunnel' else Cutting, dResidualDepth = Blade.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge) - Blade.Result[#Blade.Result].sType = 'Bottom' end Blade.Result[#Blade.Result].bCanApply = Cutting.bCanApply Blade.Result[#Blade.Result].sMessage = Cutting.sMessage @@ -642,7 +642,6 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) if Proc.Topology.sFamily == 'Tunnel' then Cutting, dResidualDepth = Blade.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.OppositeEdges[2]) table.insert( Blade.Result, {}) - Blade.Result[#Blade.Result].sType = 'Tunnel' Blade.Result[#Blade.Result].bCanApply = Cutting.bCanApply Blade.Result[#Blade.Result].sMessage = Cutting.sMessage Blade.Result[#Blade.Result].dDepthMachined = Cutting.dDepthToMachine @@ -653,10 +652,9 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) -- se la lama non è arrivata sul fondo e c'è almeno un lato aperto va lavorato if dResidualDepth > 10 * GEO.EPS_SMALL then -- eventuale lavorazione di lama - lato della tasca da cui inizia la lavorazione - if Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.IsStartOpen then + if Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.bIsStartOpen then Cutting, dResidualDepth = Blade.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[1]) table.insert( Blade.Result, {}) - Blade.Result[#Blade.Result].sType = 'Side' Blade.Result[#Blade.Result].bCanApply = Cutting.bCanApply Blade.Result[#Blade.Result].sMessage = Cutting.sMessage Blade.Result[#Blade.Result].dDepthMachined = Cutting.dDepthToMachine @@ -665,10 +663,9 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) end end -- eventuale lavorazione di lama - lato della tasca in cui finisce la lavorazione - if Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.IsEndOpen then - Cutting, dResidualDepth = Blade.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces, Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[2]) + if Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.bIsEndOpen then + Cutting, dResidualDepth = Blade.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[2]) table.insert( Blade.Result, {}) - Blade.Result[#Blade.Result].sType = 'Side' Blade.Result[#Blade.Result].bCanApply = Cutting.bCanApply Blade.Result[#Blade.Result].sMessage = Cutting.sMessage Blade.Result[#Blade.Result].dDepthMachined = Cutting.dDepthToMachine @@ -678,16 +675,21 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) end -- la lama è arrivata sul fondo e tasca passante, non servono ulteriori lavorazioni elseif #( Proc.MainFaces.SideFaces) == 0 then - Strategy.Parameters.bApplyOnlyBlade = true + Strategy.Parameters.bFinishWithChainSaw = false + Strategy.Parameters.bNotCompleteWithBladeRadius = false end end - if Strategy.Parameters.bApplyOnlyBlade then - local bAreAllApplyOk + if not Strategy.Parameters.bFinishWithChainSaw then + local nCanApplyCount = 0 local nApplyOkCount = 0 + local bAreAllApplyOk local dCompletionPercentage = 0 for i = 1, #Blade.Result do Strategy.Result.sInfo = Strategy.Result.sInfo .. '\n' .. Blade.Result[i].sMessage .. '\n' .. ( Blade.Result[i].sApplyMessage or '') + if Blade.Result[i].bCanApply then + nCanApplyCount = nCanApplyCount + 1 + end if Blade.Result[i].bIsApplyOk then nApplyOkCount = nApplyOkCount + 1 end @@ -695,11 +697,11 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) if bAddMachining then bAreAllApplyOk = ( nApplyOkCount == #Blade.Result) end - if not Strategy.Parameters.bContinueOnFailedApply and ( bAreAllApplyOk == false) then + if nCanApplyCount == 0 then Strategy.Result.sStatus = 'Not-Applicable' else dCompletionPercentage = GetCompletionPercentage( Proc, Blade.Result) - if dCompletionPercentage > 99 + 10 * GEO.EPS_SMALL then + if not Strategy.Parameters.bNotCompleteWithBladeRadius and ( ( nCanApplyCount == #Blade.Result) and dCompletionPercentage > 99 + 10 * GEO.EPS_SMALL) then Strategy.Result.sStatus = 'Completed' else Strategy.Result.sStatus = 'Not-Completed' @@ -707,7 +709,7 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) end Strategy.Result.nCompletionIndex = FeatureData.GetFeatureCompletionIndex( dCompletionPercentage) Strategy.Result.nQuality = FeatureData.GetFeatureQuality( 'Blade') - Strategy.Result.dMRR = MachiningLib.GetToolMRR( TOOLS[Cutting.nToolIndex].dThickness, TOOLS[Cutting.nToolIndex].dSideStep, TOOLS[Cutting.nToolIndex].Feeds.dFeed) + Strategy.Result.dMRR = MachiningLib.GetToolMRR( TOOLS[Cutting.nToolIndex].dThickness, min( TOOLS[Cutting.nToolIndex].dSideStep, Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[1].dLength), TOOLS[Cutting.nToolIndex].Feeds.dFeed) return bAreAllApplyOk, Strategy.Result end @@ -740,7 +742,7 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) -- se la sega a catena non è arrivata sul fondo e c'è almeno un lato aperto va lavorato if Mortising.LongitudinalOffset > 10 * GEO.EPS_SMALL then -- eventuale lavorazione di sega a catena - lato della tasca da cui inizia la lavorazione - if Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.IsStartOpen then + if Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.bIsStartOpen then Mortising = Chainsaw.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[1]) bIsMortisingOk = false if bAddMachining and Mortising.bCanApply then @@ -751,7 +753,7 @@ function STR0003.Make( bAddMachining, Proc, Part, CustomParameters) end end -- eventuale lavorazione di sega a catena - lato della tasca in cui finisce la lavorazione - if Proc.MainFaces.LongFace[1].MainEdges.BottomEdge.IsEndOpen then + if Proc.MainFaces.LongFace[1].MainEdges.BottomEdge.bIsEndOpen then Mortising = Chainsaw.CalculateMachiningParameters( Proc, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].Edges.SideEdges[2]) bIsMortisingOk = false if bAddMachining and Mortising.bCanApply then diff --git a/Strategies/STR0003/STR0003Config.lua b/Strategies/STR0003/STR0003Config.lua index c357384..fb8d6e3 100644 --- a/Strategies/STR0003/STR0003Config.lua +++ b/Strategies/STR0003/STR0003Config.lua @@ -3,9 +3,10 @@ local STR0003Data = { sStrategyId = 'STR0003', Parameters = { - { sName = 'bApplyOnlyBlade', sValue = 'true', sDescriptionShort = 'Blade only', sDescriptionLong = 'Machining with blade only and avoid chainsaw', sType = 'b', sMessageId = '', sMinUserLevel = '1'}, + { sName = 'bFinishWithChainSaw', sValue = 'false', sDescriptionShort = 'Blade only', sDescriptionLong = 'Machining with blade only and avoid chainsaw', sType = 'b', sMessageId = '', sMinUserLevel = '1'}, { sName = 'bForceLongcutBlade', sValue = 'false', sDescriptionShort = 'Force ripping blade', sDescriptionLong = 'Force the use of ripping blade, designed for cuts parallel to the grain', sType = 'b', sMessageId = '', sMinUserLevel = '1'}, - { sName = 'bContinueOnFailedApply', sValue = 'true', sDescriptionShort = 'Continue to next machining on failed apply', sDescriptionLong = 'If one machining of the strategy fails to apply continue with the others', sType = 'b', sMessageId = '', sMinUserLevel = '9'} + { sName = 'bContinueOnFailedApply', sValue = 'true', sDescriptionShort = 'Continue to next machining on failed apply', sDescriptionLong = 'If one machining of the strategy fails to apply continue with the others', sType = 'b', sMessageId = '', sMinUserLevel = '9'}, + { sName = 'bNotCompleteWithBladeRadius', sValue = 'true', sDescriptionShort = '', sDescriptionLong = '', sType = 'b', sMessageId = '', sMinUserLevel = '1'} } }