本帖最后由 作者 于 2009-9-26 22:11:39 编辑
多谢斑竹,我这就试试!多谢多谢! 试验之后,出现错误 operDb = new Database(false, true);//新建操作数据库 if (fileType == "DWG")//分为DWG,DXF分类打开图形数据库 { operDb.ReadDwgFile(operFilePath, FileOpenMode.OpenForReadAndWriteNoShare, true, ""); } else { operDb.DxfIn(operFilePath, null); } using(Transaction operTrans=operDb.TransactionManager.StartTransaction()) { //新建块定义,外部参照 BlockTable operBlk; operBlk = (BlockTable)operTrans.GetObject(operDb.BlockTableId, OpenMode.ForWrite); BlockTableRecord operRec = new BlockTableRecord(); operRec.PathName = framePath; operRec.Origin = new Point3d(0, 0, 0); operBlk.Add(operRec); operTrans.AddNewlyCreatedDBObject(operRec, true); //新建圆 BlockTableRecord btr = (BlockTableRecord)operTrans.GetObject(operBlk[BlockTableRecord.ModelSpace], OpenMode.ForWrite); Circle acCirc = new Circle(); acCirc.SetDatabaseDefaults(); acCirc.Center = new Point3d(2, 3, 0); acCirc.Radius = 400; btr.AppendEntity(acCirc); operTrans.AddNewlyCreatedDBObject(acCirc, true); operTrans.Commit(); } operDb.SaveAs(operFilePath, null); 执行到保存这一句是CAD弹出消息框,说保存错误。但程序继续执行完成,打开修改后的图形,圆已经加入,但外部参照没有加入,而全选就出错,退出CAD。 将保存改成operDb.SaveAs(operFilePath,DwgVersion.AC1015);则程序运行到这一句出现异常,无法继续。 不知如何处理?还有我的外部参照有什么问题吗?应该如何添加呢? |