diff --git a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs index 10bc5b0..cf8ed49 100644 --- a/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs +++ b/OSCADSharp/OSCADSharp.ConsoleTests/Program.cs @@ -15,18 +15,17 @@ namespace OSCADSharp.ConsoleTests { var obj = new Cube(5, 10, 20) + new Sphere(10).Translate(-10, 5, 0); - //var pos = obj.Position(); - //var cyl1 = new Cylinder(1, 100, true).Translate(pos); - //var cyl2 = new Cylinder(1, 100, true).Rotate(0, 90, 0).Translate(pos); - //var cyl3 = new Cylinder(1, 100, true).Rotate(90, 0, 0).Translate(pos); - //var axisHelper = cyl1.Union(cyl2, cyl3).Color("Red"); + var pos = obj.Position(); + var cyl1 = new Cylinder(1, 100, true).Translate(pos); + var cyl2 = new Cylinder(1, 100, true).Rotate(0, 90, 0).Translate(pos); + var cyl3 = new Cylinder(1, 100, true).Rotate(90, 0, 0).Translate(pos); + var axisHelper = cyl1.Union(cyl2, cyl3).Color("Red"); var topCorner = new Sphere().Translate(obj.Bounds().TopRight); var botCorner = new Sphere().Translate(obj.Bounds().BottomLeft); - string script = (obj + topCorner + botCorner).ToString(); - - File.WriteAllLines("test.scad", new string[] { script.ToString() }); + (obj + topCorner + botCorner + axisHelper).ToFile("test.scad"); + //Console.ReadKey(); } } diff --git a/OSCADSharp/OSCADSharp/OSCADObject.cs b/OSCADSharp/OSCADSharp/OSCADObject.cs index 7bfe919..fdbede2 100644 --- a/OSCADSharp/OSCADSharp/OSCADObject.cs +++ b/OSCADSharp/OSCADSharp/OSCADObject.cs @@ -3,6 +3,7 @@ using OSCADSharp.Spatial; using OSCADSharp.Transforms; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -313,6 +314,21 @@ namespace OSCADSharp return finalObject; } + /// + /// Writes the script for this OSCADObject to the file specified + /// + /// Path for the file to write. Including filename and (optionally) file extension + public void ToFile(string filePath) + { + string path = filePath; + + if (!path.EndsWith(".scad")) + { + path += ".scad"; + } + + File.WriteAllLines(path, new string[] { this.ToString() }); + } #endregion #region Operators