// ----------------------------------------------------------------------------------------- // // Copyright (c) 2021 CNC Software, LLC // // // sdk@Mastercam.com // // // Creates a bolt circle pattern. // // ----------------------------------------------------------------------------------------- // 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; // using Mastercam.IO; // 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 Private Fields #endregion #region Constructor #endregion #region Public Methods /// /// Main entry point to script /// public void Run() { // clear screen FileManager.New(); // call the function CreateBoltCircle(); } #endregion #region Private Methods /// /// Creates a bolt circle /// private void CreateBoltCircle() { // set up some values var patternRadius = 10.00; var holeDiameter = 1.00; var numberOfHoles = 6; var angle = 0.0; // incremental angle in radians var angleIncrement = Math.PI * 2 / numberOfHoles; // clear screen FileManager.New(); for (int i = 0; i < numberOfHoles; i++) { // define a starting circle var circle = new ArcGeometry(); circle.Data.Radius = holeDiameter / 2; circle.Data.StartAngleDegrees = 0.0; circle.Data.EndAngleDegrees = 360.00; circle.Data.CenterPoint.x = patternRadius * Math.Cos(angle); circle.Data.CenterPoint.y = patternRadius * Math.Sin(angle); circle.Data.CenterPoint.z = 0; angle += angleIncrement; if (!circle.Commit()) { DialogManager.Error("Failed to create circle geometry", "CreateBoltCircle"); return; } } GraphicsManager.FitScreen(); } #endregion } #endregion