/// <summary> /// 偏移实体 /// </summary> /// <param name="id">实体的ObjectId</param> /// <param name="dis">偏移距离</param> /// <returns>返回偏移后的实体Id集合</returns> public static ObjectIdCollection Offset(this ObjectId id, double dis) { ObjectIdCollection ids = new ObjectIdCollection(); Curve cur = id.GetObject(OpenMode.ForWrite) as Curve; if (cur != null) { try { //获取偏移的对象集合 DBObjectCollection offsetCurves = cur.GetOffsetCurves(dis); //将对象集合类型转换为实体类的数组,以方便加入实体的操作 Entity[] offsetEnts = new Entity[offsetCurves.Count]; offsetCurves.CopyTo(offsetEnts, 0); //将偏移的对象加入到数据库 ids = id.Database.AddToModelSpace(offsetEnts); } catch { Application.ShowAlertDialog("无法偏移!"); } } else { Application.ShowAlertDialog("无法偏移!"); } return(ids);//返回偏移后的实体Id集合 }
/// <summary> /// 偏移实体 /// </summary> /// <param name="ent">实体</param> /// <param name="dis">偏移距离</param> /// <returns>返回偏移后的实体集合</returns> public static DBObjectCollection Offset(this Entity ent, double dis) { DBObjectCollection offsetCurves = new DBObjectCollection(); Curve cur = ent as Curve; if (cur != null) { try { offsetCurves = cur.GetOffsetCurves(dis); Entity[] offsetEnts = new Entity[offsetCurves.Count]; offsetCurves.CopyTo(offsetEnts, 0); } catch { Application.ShowAlertDialog("无法偏移!"); } } else { Application.ShowAlertDialog("无法偏移!"); } return(offsetCurves); }