// -----------------------------------------------------------------------------------------
//
// Copyright (c) 2021 CNC Software, LLC
//
//
// sdk@mastercam.com
//
//
// Moves all geometry to a level
//
// -----------------------------------------------------------------------------------------
// Assemblies Import for External Editor
#region Assemblies Import
// NOTE: Update paths to reference your Mastercam 2023 path
// #r "C:\Program Files\Mastercam 2023\Mastercam\NETHook3_0.dll"
#endregion
// Using for External Editor
#region Namespace Import
// using System.Linq;
// using Mastercam.IO;
// using Mastercam.Support;
#endregion
// instantiate
var app = new App();
// Execute the script
app.Run();
#region Classes
///
/// Defines our top level App class
///
public class App
{
///
/// Main entry point to script
///
public void Run()
{
RunScript(100);
}
#region private methods
/// moves all geometry to the specified level
private void RunScript(int level)
{
// NOTE: file needs to be open and contain geometry
if (!SearchManager.IsAnyGeometry())
{
DialogManager.OK("No geometry in current file.", "Mastercam");
return;
}
// get all geometry
var geometry = SearchManager.GetGeometry().ToList();
// using System.Linq
geometry.ForEach(
g =>
{
if (g.Level != level)
{
g.Level = level;
g.Commit();
}
});
// force an update to reflect the changes
LevelsManager.RefreshLevelsManager();
}
#endregion
}
#endregion