/// <summary> /// Write SketchUp Model. /// This node writes surfaces and cures into a SketchUp model. /// </summary> /// <param name="path">Path to SketchUp file</param> /// <param name="surfaces">Surface Geometries</param> /// <param name="curves">Curve Geometries</param> public static void WriteModel(string path, List <Autodesk.DesignScript.Geometry.Surface> surfaces = null, List <Autodesk.DesignScript.Geometry.Curve> curves = null) { SketchUpNET.SketchUp skp = new SketchUpNET.SketchUp(); skp.Surfaces = new List <Surface>(); skp.Edges = new List <Edge>(); skp.Curves = new List <Curve>(); if (curves != null) { foreach (Autodesk.DesignScript.Geometry.Curve curve in curves) { if (curve.GetType() == typeof(Autodesk.DesignScript.Geometry.Line)) { Autodesk.DesignScript.Geometry.Line line = (Autodesk.DesignScript.Geometry.Line)curve; skp.Edges.Add(line.ToSKPGeo()); } else { Curve skpcurve = new Curve(); skpcurve.Edges = new List <Edge>(); foreach (Autodesk.DesignScript.Geometry.Curve tesselated in curve.ApproximateWithArcAndLineSegments()) { Edge e = new Edge(tesselated.StartPoint.ToSKPGeo(), tesselated.EndPoint.ToSKPGeo(), ""); skpcurve.Edges.Add(e); } skp.Curves.Add(skpcurve); } } } if (surfaces != null) { foreach (Autodesk.DesignScript.Geometry.Surface surface in surfaces) { skp.Surfaces.Add(surface.ToSKPGeo()); } } if (System.IO.File.Exists(path)) { skp.AppendToModel(path); } else { skp.WriteNewModel(path); } }
public static void WriteModel(string path, List <GH_Surface> surfaces = null, List <GH_Curve> curves = null, bool append = false) { SketchUpNET.SketchUp skp = new SketchUpNET.SketchUp(); skp.Surfaces = new List <Surface>(); skp.Edges = new List <Edge>(); skp.Curves = new List <Curve>(); if (curves != null) { foreach (var c in curves) { var curve = c.Value; if (curve.IsLinear()) { var line = new SketchUpNET.Edge(curve.PointAt(0).ToSkpGeo(), curve.PointAt(1.0).ToSkpGeo(), DefaultLayer); skp.Edges.Add(line); } else { skp.Curves.Add(curve.ToSkpGeo()); } } } if (surfaces != null) { foreach (var surface in surfaces) { skp.Surfaces.Add(surface.Value.ToSkpGeo()); } } if (System.IO.File.Exists(path) && append) { skp.AppendToModel(path); } else { skp.WriteNewModel(path); } }
/// <summary> /// Write SketchUp Model /// </summary> /// <param name="path">Path to SketchUp file</param> public static void WriteModel(string path, List<Autodesk.DesignScript.Geometry.Surface> surfaces = null, List<Autodesk.DesignScript.Geometry.Curve> curves = null) { SketchUpNET.SketchUp skp = new SketchUpNET.SketchUp(); skp.Surfaces = new List<Surface>(); skp.Edges = new List<Edge>(); skp.Curves = new List<Curve>(); if (curves != null) foreach (Autodesk.DesignScript.Geometry.Curve curve in curves) { if (curve.GetType() == typeof(Autodesk.DesignScript.Geometry.Line)) { Autodesk.DesignScript.Geometry.Line line = (Autodesk.DesignScript.Geometry.Line)curve; skp.Edges.Add(line.ToSKPGeo()); } else { Curve skpcurve = new Curve(); skpcurve.Edges = new List<Edge>(); foreach (Autodesk.DesignScript.Geometry.Curve tesselated in curve.ApproximateWithArcAndLineSegments()) { Edge e = new Edge(tesselated.StartPoint.ToSKPGeo(), tesselated.EndPoint.ToSKPGeo()); skpcurve.Edges.Add(e); } skp.Curves.Add(skpcurve); } } if (surfaces != null) foreach (Autodesk.DesignScript.Geometry.Surface surface in surfaces) skp.Surfaces.Add(surface.ToSKPGeo()); if (System.IO.File.Exists(path)) skp.AppendToModel(path); else skp.WriteNewModel(path); }