// ----------------------------------------------------------------------------------------- // // Copyright (c) 2021 CNC Software, LLC // // // sdk@Mastercam.com // // // Create two points, draw a line between them and prompt the user to select the mid-point // of the line... // // ----------------------------------------------------------------------------------------- // 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 Mastercam.IO; // using Mastercam.BasicGeometry; // using Mastercam.Curves; #endregion // instantiate var app = new App(); // Execute the script app.Run(); #region Classes /// /// Defines our top level App class /// public class App { #region Public Methods /// /// Main entry point to script /// public void Run() { FileManager.New(); // Create 2 points PointGeometry pt1 = new PointGeometry(); PointGeometry pt2 = new PointGeometry(1, 1, 0); pt2.Color = 12; pt1.Commit(); pt2.Commit(); // Create a line between the points LineGeometry line1 = new LineGeometry(pt1.Data, pt2.Data); line1.Commit(); // Ask user to select mid point of our line AskForGeometry(); SelectionManager.UnselectAllGeometry(); GraphicsManager.ClearColors(new Mastercam.Database.Types.GroupSelectionMask(true)); GraphicsManager.Repaint(true); } #endregion #region Private Methods /// /// Prompt user to select a line /// private void AskForGeometry() { var geometry = SelectionManager.AskForGeometry("Select Line", new Mastercam.Database.Types.GeometryMask(false, true, false, false, false, false, false, false)); if (geometry != null) { DialogManager.OK($"Line on level: {geometry.Level}", "Mastercam"); } else { DialogManager.OK("No geometry selected", "Mastercam"); } } #endregion } #endregion