Aggiunta gestione nuova topologia, già riconosciuta, ma mai gestita nelle strategie: Bevel-2-Blind

This commit is contained in:
andrea.villa
2025-09-08 13:26:14 +02:00
parent 3836764c51
commit f84f0a6569
9 changed files with 112 additions and 34 deletions
+42 -9
View File
@@ -110,8 +110,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
end
---------------------------------------------------------------------
-- Feature : Front Slot (0-17)
@@ -128,8 +130,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
end
---------------------------------------------------------------------
-- Feature : Birds Mouth (0-20)
@@ -138,6 +142,19 @@ local function GetStrategies_Essetre( Proc)
---------------------------------------------------------------------
-- Feature : Hip or Valley Rafter Notch (0-25)
elseif ID.IsHipValleyRafterNotch( Proc) then
if Proc.Topology.sName == 'RafterNotch-5-Through' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Groove-3-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0003'}, { sStrategyId = 'STR0004'}}
elseif Proc.Topology.sName == 'Groove-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
end
---------------------------------------------------------------------
-- Feature : Ridge Lap (1-30)
elseif ID.IsRidgeLap( Proc) then
@@ -147,10 +164,12 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Cut-1-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0005'}}
end
---------------------------------------------------------------------
-- Feature : Lap Joint (0-30)
@@ -167,8 +186,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
end
---------------------------------------------------------------------
-- Feature : Notch/Rabbet (0-32)
@@ -185,8 +206,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
end
---------------------------------------------------------------------
-- Feature : Block Haus (0-33)
@@ -209,8 +232,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
end
---------------------------------------------------------------------
-- Feature : French Ridge Lap (1-35)
@@ -239,8 +264,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
end
---------------------------------------------------------------------
-- Feature : Drilling (0-40)
@@ -265,8 +292,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Pocket-Round' or Proc.Topology.sName == 'Pocket-Round-Front' or Proc.Topology.sName == 'Pocket-Round-Through' then
Strategies = { { sStrategyId = 'STR0008'}}
end
@@ -285,8 +314,10 @@ local function GetStrategies_Essetre( Proc)
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-3-Blind' then
Strategies = { { sStrategyId = 'STR0002'}}
elseif Proc.Topology.sName == 'Bevel-2-Blind' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Rabbet-2-Through' then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
elseif Proc.Topology.sName == 'Pocket-Round' or Proc.Topology.sName == 'Pocket-Round-Front' or Proc.Topology.sName == 'Pocket-Round-Through' then
Strategies = { { sStrategyId = 'STR0008'}}
end
@@ -311,9 +342,11 @@ local function GetStrategies_Essetre( Proc)
---------------------------------------------------------------------
-- Feature : Marking (0-60)
elseif ID.IsMarking( Proc) then
Strategies = { { sStrategyId = 'STR0014'}}
---------------------------------------------------------------------
-- Feature : Text (0-61)
elseif ID.IsText( Proc) then
Strategies = { { sStrategyId = 'STR0014'}}
---------------------------------------------------------------------
-- Feature : Scarf Simple (1-70)
elseif ID.IsScarfSimple( Proc) then
+40 -10
View File
@@ -73,8 +73,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}
]
},
@@ -101,8 +104,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}
]
},
@@ -133,8 +139,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}
]
},
@@ -152,8 +161,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Cut-1-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" } ]
@@ -183,8 +195,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}
]
},
@@ -211,8 +226,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}
]
},
@@ -249,8 +267,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}
]
},
@@ -317,8 +338,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
}
]
},
@@ -365,8 +389,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Pocket-Round",
"StrategyList" : [ { "sStrategyId": "STR0008" } ]
@@ -402,8 +429,11 @@
{ "sName": "Bevel-3-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" } ]
},
{ "sName": "Bevel-2-Blind",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010" } ]
},
{ "sName": "Rabbet-2-Through",
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0010"} ]
"StrategyList" : [ { "sStrategyId": "STR0002" }, { "sStrategyId": "STR0005" }, { "sStrategyId": "STR0010"} ]
},
{ "sName": "Pocket-Round",
"StrategyList" : [ { "sStrategyId": "STR0008" } ]
+1 -1
View File
@@ -367,7 +367,7 @@ function STR0001.Make( bAddMachining, Proc, Part, CustomParameters)
local ptIni = EgtSP( Proc.FeatureInfo.idAddAuxGeom, GDB_RT.GLOB)
local ptFin = EgtEP( Proc.FeatureInfo.idAddAuxGeom, GDB_RT.GLOB)
-- se entrambi i punti non sono sul limite pezzo
if not( BeamLib.IsPointOnBoxLimit( ptIni, Part.b3Part) and BeamLib.IsPointOnBoxLimit( ptFin, Part.b3Part)) then
if not( BeamLib.IsPointOnBoxLimit( ptIni, Part.b3Part) or BeamLib.IsPointOnBoxLimit( ptFin, Part.b3Part)) then
-- cerco utensile
local ToolSearchParameters = {}
local FinishMach = {}
+10 -7
View File
@@ -34,6 +34,7 @@ local function IsTopologyOk( Proc)
Proc.Topology.sName == 'Groove-3-Blind' or
Proc.Topology.sName == 'Bevel-3-Blind' or
Proc.Topology.sName == 'Rabbet-2-Through' or
Proc.Topology.sName == 'Bevel-2-Blind' or
Proc.Topology.sName == 'DoubleBevel-2-Through' or
Proc.Topology.sName == 'VGroove-2-Through' or
Proc.Topology.sName == 'Cut-1-Through' or
@@ -138,6 +139,7 @@ local function GetBestPocketingStrategy( Proc)
ToolSearchParameters.sType = 'MILL_NOTIP'
ToolSearchParameters.dMaxToolDiameter = Strategy.Parameters.dMaxCornerRadius * 2
elseif Proc.Topology.sName == 'Rabbet-2-Through'
or Proc.Topology.sName == 'Bevel-2-Blind'
or Proc.Topology.sName == 'DoubleBevel-2-Through'
or Proc.Topology.sName == 'VGroove-2-Through'
or Proc.Topology.sName == 'Cut-1-Through'
@@ -178,7 +180,8 @@ local function GetBestPocketingStrategy( Proc)
-- caso speciale 'Rabbet-2-Through' seconda faccia principale
Milling = {}
Milling.bIsApplicable = false
if Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'DoubleBevel-2-Through' or Proc.Topology.sName == 'VGroove-2-Through' then
if Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or
Proc.Topology.sName == 'DoubleBevel-2-Through' or Proc.Topology.sName == 'VGroove-2-Through' then
ToolSearchParameters.dElevation = Proc.MainFaces.BottomFaces[2].dElevation
ToolSearchParameters.vtToolDirection = Proc.MainFaces.BottomFaces[2].vtN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sPocketingList, 'Pocketing')
@@ -217,7 +220,7 @@ local function GetBestPocketingStrategy( Proc)
Milling.idFaceToMachine = Proc.MainFaces.LongFaces[1].id
Milling.idProc = Proc.id
Milling.dElevation = Proc.MainFaces.LongFaces[1].dElevation
elseif Proc.MainFaces.TunnelAddedFaces then -- 'Tunnel-4-Through', 'Groove-3-Through', 'Rabbet-2-Through', 'VGroove-2-Through'
elseif Proc.MainFaces.TunnelAddedFaces then -- 'Tunnel-4-Through', 'Groove-3-Through', 'Rabbet-2-Through', 'VGroove-2-Through', 'Bevel-2-Blind'
-- se lavoro di fianco, devo comunque rispettare il raggio massimo
ToolSearchParameters.dMaxToolDiameter = min( ToolSearchParameters.dMaxToolDiameter, Strategy.Parameters.dMaxCornerRadius * 2)
ToolSearchParameters.dElevation = ( Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation * 2) + BeamData.MILL_OVERLAP
@@ -249,7 +252,7 @@ local function GetBestPocketingStrategy( Proc)
and Proc.Topology.sName ~= 'Groove-4-Blind'
and Proc.Topology.sName ~= 'Bevel-3-Blind' then
if Proc.MainFaces.TunnelAddedFaces then -- Tunnel-4-Through, Groove-3-Through, Rabbet-2-Through, VGroove-2-Through
if Proc.MainFaces.TunnelAddedFaces then -- Tunnel-4-Through, Groove-3-Through, Rabbet-2-Through, VGroove-2-Through, 'Bevel-2-Blind'
-- se lavoro di fianco, devo comunque rispettare il raggio massimo
ToolSearchParameters.dMaxToolDiameter = min( ToolSearchParameters.dMaxToolDiameter, Strategy.Parameters.dMaxCornerRadius * 2)
ToolSearchParameters.dElevation = ( Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation * 2) + BeamData.MILL_OVERLAP
@@ -304,7 +307,7 @@ local function GetBestPocketingStrategy( Proc)
end
return Machining
-- caso speciale 'Rabbet-2-Through' che ha la seconda faccia come se fosse una seconda bottom
elseif ( Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'VGroove-2-Through' )
elseif ( Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' )
and Machining[2].bIsApplicable and Machining[2].ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL then
Machining.sTypeMachining = 'Bottom2'
Strategy.Result.sStatus = 'Completed'
@@ -319,7 +322,7 @@ local function GetBestPocketingStrategy( Proc)
elseif Machining[3].bIsApplicable and Machining[3].ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL then
Machining.sTypeMachining = 'Side1'
-- TODO setto non completo perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'VGroove-2-Through' then
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.sStatus = 'Not-Completed'
else
Strategy.Result.sStatus = 'Completed'
@@ -340,7 +343,7 @@ local function GetBestPocketingStrategy( Proc)
elseif Machining[4].bIsApplicable and Machining[4].ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL then
Machining.sTypeMachining = 'Side2'
-- TODO setto non completo perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'VGroove-2-Through' then
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.sStatus = 'Not-Completed'
else
Strategy.Result.sStatus = 'Completed'
@@ -362,7 +365,7 @@ local function GetBestPocketingStrategy( Proc)
Machining[3].ToolInfo.dResidualDepth + Machining[4].ToolInfo.dResidualDepth < (Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation * 2) + BeamData.MILL_OVERLAP then
Machining.sTypeMachining = 'Side1-Side2'
-- TODO setto non completo perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'VGroove-2-Through' then
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.sStatus = 'Not-Completed'
else
Strategy.Result.sStatus = 'Completed'
+1 -1
View File
@@ -102,7 +102,7 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters)
local dFeatureMaxNotClampableLengthHead, dFeatureMaxNotClampableLengthTail = FeatureLib.GetFeatureMaxNotClampableLengths( Proc, Part)
local bFeatureHindersClamping = FeatureLib.IsMachiningLong( max( dFeatureMaxNotClampableLengthHead, dFeatureMaxNotClampableLengthTail), 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')) 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))
-- lavorazione con codolo
if ( Proc.nFct > 2 and bIsFeatureLong)
+7 -4
View File
@@ -97,8 +97,12 @@ function GetMortiseStrategy( Proc, Part)
Machining.Milling.bIsApplicable = true
-- calcolo numero passate necessarie
if Proc.FeatureInfo.dMortiseMaxDist > TOOLS[Machining.Milling.ToolInfo.nToolIndex].dDiameter * 1.5 then
Machining.nMillingPathsNeeded = ceil( ( Proc.FeatureInfo.dMortiseMaxDist / 2) / ( TOOLS[Machining.Milling.ToolInfo.nToolIndex].dSideStep * 1.5))
if Proc.FeatureInfo.dMortiseMaxDist > TOOLS[Machining.Milling.ToolInfo.nToolIndex].dDiameter * 1.9 then
local dToolDiam = TOOLS[Machining.Milling.ToolInfo.nToolIndex].dDiameter
local sSideStep = TOOLS[Machining.Milling.ToolInfo.nToolIndex].dSideStep
Machining.nMillingPathsNeeded = 1 + ceil( ( Proc.FeatureInfo.dMortiseMaxDist - dToolDiam * 1.9) / ( sSideStep * 2))
-- suddivido step in base al numero passate da fare
Machining.Milling.dRealSideStep = ( ( Proc.FeatureInfo.dMortiseMaxDist / 2) - dToolDiam) / (Machining.nMillingPathsNeeded - 1)
else
Machining.nMillingPathsNeeded = 1
end
@@ -440,8 +444,7 @@ function STR0007.Make( bAddMachining, Proc, Part, CustomParameters)
AuxiliaryData.Clones[nIndexClones].dRadialOffset = Strategy.Parameters.dOverMatOnRadius
else
-- suddivido step in base al numero passate da fare
local dRealSideStep = floor( ( Proc.FeatureInfo.dMortiseMaxDist - TOOLS[Strategy.Machining.Milling.ToolInfo.nToolIndex].dDiameter) / Strategy.Machining.nMillingPathsNeeded)
AuxiliaryData.Clones[nIndexClones].dRadialOffset = ( i - 1) * dRealSideStep
AuxiliaryData.Clones[nIndexClones].dRadialOffset = ( i - 1) * Strategy.Machining.Milling.dRealSideStep
end
end
+1 -1
View File
@@ -215,7 +215,7 @@ function STR0010.Make( bAddMachining, Proc, Part, CustomParameters)
end
-- si lavora seconda BottomFace
if Proc.Topology.sFamily == 'DoubleBevel' or Proc.Topology.sName == 'Rabbet-2-Through' then
if Proc.Topology.sFamily == 'DoubleBevel' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' then
local dAngleBetweenFaces = Proc.AdjacencyMatrix[1][2]
-- se convesso o concavo maggiore di angolo retto
if dAngleBetweenFaces >= -91 then
+9
View File
@@ -5,6 +5,15 @@ STR0002 = Topologia tipo LapJoint. Svuotatura con fresa
STR0003 = Topologia tipo LapJoint. Lama + motosega
STR0004 = Topologia tipo LapJoint. Motosega
STR0005 = 1, 2 o 3 facce. Lama con taglio singolo o cubetti. Se richiesto o necessario codolo.
STR0006 = Tenone. Lama + fresa
STR0007 = Mortasa a coda di rondine e mortasa frontale a coda di rondine
STR0008 = Svuotatura tasca
STR0009 = Fresatura di fianco (tipo arco)
STR0010 = Fresatura perpendicolare (tipo cut, longcut)
STR0011 = Foratura
STR0012 = RidgeLap
STR0013 = Foratura con fresa (svuotatura)
STR0014 = Incisione con fresa/penna (Mark/text)
[Strategies]
; Processing , Gruppo , Topologia , Strategie
+1 -1
View File
@@ -952,7 +952,7 @@ function BLADETOWASTE.Make( ProcOrId, Part, OptionalParameters)
-- controlli preventivi
if Proc.nFct > 2 then
error( 'BladeToWaste : max 2 faces supported')
elseif Proc.Topology and ( Proc.Topology.sName == 'Rabbet-2-Through') then
elseif Proc.Topology and ( Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind') then
-- ricerca lato in comune
local nCommonEdge
for i = 1, #Proc.Faces[1].Edges do