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()); }