引发不能保存的问题比较多,比如实体打开未关闭、使用了非法的标注样式等等。
下面有段测试代码,希望对你有帮助。
- ///
- /// 保存dwg文件
- ///
- /// 要保存的实体
- public void AddEntity(Entity entity)
- {
- Document doc = AcadApp.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- using (Transaction trans = db.TransactionManager.StartTransaction()) {
- BlockTable bt = (trans.GetObject(db.BlockTableId, OpenMode.ForWrite)) as BlockTable;
- BlockTableRecord btr = (trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite)) as BlockTableRecord;
-
- ObjectId objectId = btr.AppendEntity(entity);
- trans.AddNewlyCreatedDBObject(entity, true);
- trans.Commit();
- trans.Dispose();
- }
- db.SaveAs(@"../../../../test.DWG", DwgVersion.Current);
- }
- [CommandMethod("AddArc")]
- public void AddArc()
- {
- Arc arc = new Arc(new Point3d(100, 200, 300), 50, 60, 30);
- AddEntity(arc);
- }
|