Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        /// <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);
        }