Tutte le strategie standard tengono ora in considerazione le liste MachData con TAG per scelta utensile (per Essetre). Prima versione, da completare!

!!TODO : fare lo stesso anche nelle strategie di base quando si cercano utensili
This commit is contained in:
andrea.villa
2025-09-01 13:30:16 +02:00
parent 8e960954ef
commit 7eff64d3bb
13 changed files with 116 additions and 1 deletions
+1 -1
View File
@@ -559,7 +559,7 @@ local function GetTools_Essetre( Proc, sMachiningCategory)
local PocketingData = dofile( sMachDir .. '\\Beam\\PocketingData.lua')
-- si cercano TAG esclusivi
if ID.IsMortise( Proc) then
TagList = { 'Mortise', 'Mortise'}
TagList = { 'Mortise'}
else
TagList = { 'Pocket', 'OpenPocket'}
end
+22
View File
@@ -106,6 +106,28 @@
"sMessageId": ""
}
]
},
{
"sName": "sPocketingList",
"sNameNge": "POCK_DTTENON_SURF_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the tenon cut surface",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{
"sName": "sMillingList",
"sNameNge": "DOVETAIL_TOOL_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the dovetail tenon",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
}
]
}
+3
View File
@@ -72,6 +72,7 @@ local function GetTenonStrategy( Proc, Part)
ToolSearchParameters.dElevation = EgtSurfTmFacetElevationInBBox( Strategy.idTenonCutPlane, 0, Part.b3Part, true, GDB_ID.ROOT)
ToolSearchParameters.vtToolDirection = Proc.FeatureInfo.vtTenonN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sPocketingList, 'Pocketing')
Machining.Cutting.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
-- TODO anche il test sul ResidualDepth va tolto
@@ -109,6 +110,7 @@ local function GetTenonStrategy( Proc, Part)
ToolSearchParameters.dElevation = Proc.FeatureInfo.dTenonLength
ToolSearchParameters.vtToolDirection = Proc.FeatureInfo.vtTenonN
ToolSearchParameters.sMillShape = 'DOVETAIL'
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Milling')
Machining.Milling.ToolInfo = {}
Machining.Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Machining.Milling.ToolInfo.nToolIndex then
@@ -192,6 +194,7 @@ local function GetTenonStrategy( Proc, Part)
ToolSearchParameters = {}
ToolSearchParameters.dElevation = Proc.FeatureInfo.dTenonLength
ToolSearchParameters.vtToolDirection = Proc.vtTenonN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Milling')
Machining.Pocketing.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Machining.Pocketing.ToolInfo.nToolIndex then
Machining.Pocketing.bIsApplicable = true
+11
View File
@@ -31,6 +31,17 @@
"sType": "d",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{
"sName": "sPocketingList",
"sNameNge": "POCK_LAPJOINT",
"sValue": "",
"sDescriptionShort": "Available mill to pocket the feature",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
}
]
}
+4
View File
@@ -151,6 +151,7 @@ local function GetBestPocketingStrategy( Proc)
if Proc.Topology.sName ~= 'Tunnel-4-Through' then
ToolSearchParameters.dElevation = Proc.MainFaces.BottomFaces[1].dElevation
ToolSearchParameters.vtToolDirection = Proc.MainFaces.BottomFaces[1].vtN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sPocketingList, 'Pocketing')
Milling.idFaceToMachine = Proc.MainFaces.BottomFaces[1].id
Milling.idProc = Proc.id
Milling.vtFaceNormal = Proc.MainFaces.BottomFaces[1].vtN
@@ -176,6 +177,7 @@ local function GetBestPocketingStrategy( Proc)
if Proc.Topology.sName == 'Rabbet-2-Through' 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')
Milling.vtFaceNormal = Proc.MainFaces.BottomFaces[2].vtN
Milling.idFaceToMachine = Proc.MainFaces.BottomFaces[2].id
Milling.idProc = Proc.id
@@ -222,6 +224,7 @@ local function GetBestPocketingStrategy( Proc)
Milling.dElevation = ( Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation * 2) + BeamData.MILL_OVERLAP
Milling.bMachAppliedToTunnelFace = true
end
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sPocketingList, 'Pocketing')
Milling.ToolInfo = {}
Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Milling.ToolInfo.nToolIndex then
@@ -260,6 +263,7 @@ local function GetBestPocketingStrategy( Proc)
Milling.idProc = Proc.id
Milling.dElevation = Proc.MainFaces.SideFaces[1].dElevation
end
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sPocketingList, 'Pocketing')
Milling.ToolInfo = {}
Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Milling.ToolInfo.nToolIndex then
+11
View File
@@ -96,6 +96,17 @@
"sMessageId": ""
}
]
},
{
"sName": "sMillingList",
"sNameNge": "TENON_TOOL_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the tenon",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
}
]
}
+1
View File
@@ -67,6 +67,7 @@ local function GetTenonStrategy( Proc, Part)
ToolSearchParameters.dElevation = Proc.FeatureInfo.dTenonLength
ToolSearchParameters.vtToolDirection = Proc.FeatureInfo.vtTenonN
ToolSearchParameters.sMillShape = 'STANDARD'
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Milling')
Machining.Milling.ToolInfo = {}
Machining.Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Machining.Milling.ToolInfo.nToolIndex then
+22
View File
@@ -116,6 +116,28 @@
"sMessageId": ""
}
]
},
{
"sName": "sPocketingList",
"sNameNge": "POCK_MORTISE_SURF_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the mortise cut surface",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{
"sName": "sMillingList",
"sNameNge": "DOVETAIL_TOOL_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the dovetail mortise",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
}
]
}
+2
View File
@@ -71,6 +71,7 @@ function GetMortiseStrategy( Proc, Part)
ToolSearchParameters = {}
ToolSearchParameters.dElevation = 0
ToolSearchParameters.vtToolDirection = Proc.FeatureInfo.vtMortiseN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sPocketingList, 'Pocketing')
Machining.Cutting.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Machining.Cutting.ToolInfo.nToolIndex then
Machining.Cutting.bIsApplicable = true
@@ -90,6 +91,7 @@ function GetMortiseStrategy( Proc, Part)
ToolSearchParameters.vtToolDirection = Proc.FeatureInfo.vtMortiseN
ToolSearchParameters.sMillShape = 'DOVETAIL'
Machining.Milling.ToolInfo = {}
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Milling')
Machining.Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Machining.Milling.ToolInfo.nToolIndex then
Machining.Milling.bIsApplicable = true
+22
View File
@@ -86,6 +86,28 @@
"sMessageId": ""
}
]
},
{
"sName": "sPocketingList",
"sNameNge": "POCK_MORTISE_SURF_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the mortise cut surface",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{
"sName": "sMillingList",
"sNameNge": "MORTISE_TOOL_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the mortise",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
}
]
}
+3
View File
@@ -84,6 +84,7 @@ local function GetBestPocketingStrategy( Proc, Part)
ToolSearchParameters = {}
ToolSearchParameters.dElevation = 0
ToolSearchParameters.vtToolDirection = Proc.FeatureInfo.vtMortiseN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sPocketingList, 'Pocketing')
ToolSearchParameters.sMillShape = 'STANDARD'
Machining.Cutting.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
if Machining.Cutting.ToolInfo.nToolIndex then
@@ -114,6 +115,7 @@ local function GetBestPocketingStrategy( Proc, Part)
ToolSearchParameters.dMaxToolDiameter = Proc.FeatureInfo.dMortiseMinRadius * 2
ToolSearchParameters.dElevation = Proc.FeatureInfo.dMortiseDepth + EgtIf( Proc.Topology.sName == 'Pocket-Round-Through', BeamData.CUT_EXTRA, 0)
ToolSearchParameters.vtToolDirection = Proc.FeatureInfo.vtMortiseN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Pocketing')
Milling.ToolInfo = {}
-- si cerca prima utensile per lavorare in accordo con normale mortasa
Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
@@ -135,6 +137,7 @@ local function GetBestPocketingStrategy( Proc, Part)
ToolSearchParameters.dMaxToolDiameter = Proc.FeatureInfo.dMortiseMinRadius * 2
ToolSearchParameters.dElevation = Proc.FeatureInfo.dMortiseDepth + BeamData.CUT_EXTRA
ToolSearchParameters.vtToolDirection = -Proc.FeatureInfo.vtMortiseN
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Pocketing')
Milling.ToolInfo = {}
-- si cerca prima utensile per lavorare in accordo con normale mortasa
Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
+11
View File
@@ -41,6 +41,17 @@
"sType": "d",
"sMessageId": " ",
"sMinUserLevel": "1"
},
{
"sName": "sMillingList",
"sNameNge": "PROFILE_TOOL_LIST",
"sValue": "",
"sDescriptionShort": "Available mill to machine the profile",
"sDescriptionLong": "",
"sType": "tool",
"sSubType": "Mill",
"sMessageId": " ",
"sMinUserLevel": "1"
}
]
}
+3
View File
@@ -65,6 +65,7 @@ local function GetArcStrategy( Proc, Part)
ToolSearchParameters.sMillShape = 'STANDARD'
ToolSearchParameters.dElevation = EgtIf( bExecStrip, ( dDepth - dDimStrip) / 2, dDepth + BeamData.MILL_OVERLAP)
ToolSearchParameters.vtToolDirection = EgtIf( bToolInvert, -vtExtr, vtExtr)
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Milling')
Milling.ToolInfo = {}
Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
-- se posso lavorare in una passata, ma utensile trovato non completa la lavorazione,
@@ -99,6 +100,7 @@ local function GetArcStrategy( Proc, Part)
ToolSearchParameters.sMillShape = 'STANDARD'
ToolSearchParameters.dElevation = dDepth + BeamData.MILL_OVERLAP
ToolSearchParameters.vtToolDirection = EgtIf( bToolInvert, -vtExtr, vtExtr)
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Milling')
Milling.ToolInfo = {}
Milling.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)
-- si cerca utensile 2
@@ -108,6 +110,7 @@ local function GetArcStrategy( Proc, Part)
ToolSearchParameters.sMillShape = 'STANDARD'
ToolSearchParameters.dElevation = dDepth + BeamData.MILL_OVERLAP
ToolSearchParameters.vtToolDirection = EgtIf( bToolInvert, vtExtr, -vtExtr)
ToolSearchParameters.AvailableToolList = MachiningLib.GetAvailableToolList( Proc, Strategy.Parameters.sMillingList, 'Milling')
Milling2.ToolInfo = {}
Milling2.ToolInfo = MachiningLib.FindMill( Proc, ToolSearchParameters)