Beispiel #1
0
        public static List <ObjectId> AddTextFill(Polyline boundary, string text, double interval, double rotation = 0)
        {
            var scale = EntityManager.GetGlobalScaleFactor();

            interval *= scale;
            var extents   = boundary.GeometricExtents;
            var tjExtents = new Dreambuild.Geometry.Extent2D(extents.MinPoint.X, extents.MinPoint.Y, extents.MaxPoint.X, extents.MaxPoint.Y);
            var pts       = tjExtents.GetHexGrid(interval, 0.5).Select(p => new Point3d(p.X, p.Y, 0)).Where(p => boundary.IsPointIn(p) && boundary.GetDistToPoint(p) > interval / 2).ToList();

            if (pts.Count == 0)
            {
                pts.Add(boundary.GetCenter());
            }
            var dts = pts.Take(1000).Select(p =>
            {
                return(NoDraw.Text(text, 2.5 * scale, p, rotation));
            }).ToArray();

            return(dts.AddToCurrentSpace().ToList());
        }
Beispiel #2
0
        public static List <ObjectId> AddFill(Polyline boundary, string block, double interval)
        {
            var scale = EntityManager.GetGlobalScaleFactor();

            interval *= scale;
            var extents   = boundary.GeometricExtents; // IsExtentsIn(), GetBlockExtents()
            var tjExtents = new Dreambuild.Geometry.Extent2D(extents.MinPoint.X, extents.MinPoint.Y, extents.MaxPoint.X, extents.MaxPoint.Y);
            var pts       = tjExtents.GetHexGrid(interval, 0.5).Select(p => new Point3d(p.X, p.Y, 0)).Where(p => boundary.IsPointIn(p) && boundary.GetDistToPoint(p) > interval / 2).ToList();

            if (pts.Count == 0)
            {
                pts.Add(boundary.GetCenter());
            }
            var bId = DbHelper.GetBlockId(block);
            var brs = pts.Take(1000).Select(p =>
            {
                return(NoDraw.Insert(bId, p, 0, scale));
            }).ToArray();

            return(brs.AddToCurrentSpace().ToList());
        }