当前位置: 首页>>代码示例>>C#>>正文


C# Database.SaveAs方法代码示例

本文整理汇总了C#中Database.SaveAs方法的典型用法代码示例。如果您正苦于以下问题:C# Database.SaveAs方法的具体用法?C# Database.SaveAs怎么用?C# Database.SaveAs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Database的用法示例。


在下文中一共展示了Database.SaveAs方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DrawAndSaveAs

        public void DrawAndSaveAs()
        {
            if (File.Exists(filePath))
            { throw new Exception("已经存在temp.dwg,请保证已经删除"); }

            using (Database db = new Database())
            using (Transaction acTrans = db.TransactionManager.StartTransaction())
            {
                BlockTable bt = (BlockTable)acTrans.GetObject(db.BlockTableId, OpenMode.ForRead);
                BlockTableRecord btr = (BlockTableRecord)acTrans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);

                Solid3d solid = new Solid3d();
                solid.CreateBox(width, depth, height);

                //Move the block to the left-behind origin
                solid.TransformBy(Matrix3d.Displacement(new Vector3d(width / 2, -depth / 2, height / 2)));

                btr.AppendEntity(solid);
                acTrans.AddNewlyCreatedDBObject(solid, true);

                acTrans.Commit();

                db.SaveAs(filePath, DwgVersion.Newest);
            }
        }
开发者ID:komelio,项目名称:Dimeng.LinkToMicrocad,代码行数:25,代码来源:BlockDrawer.cs

示例2: CloseAndDelete

        public void CloseAndDelete(List<PanelAKR> panelsToDelete)
        {
            string file = dbLib.Filename;
            try
            {
                dbLib.Dispose();
            }
            catch { }
            File.Delete(file);

            // Удаление блоков
            if (panelsToDelete != null && panelsToDelete.Count > 0)
            {
                // Сделать копию библиотеки
                PanelLibrarySaveService.BackUpLibPanelsFile();

                using (ProgressMeter progress = new ProgressMeter())
                {
                    progress.SetLimit(panelsToDelete.Count);
                    progress.Start($"Удаление {panelsToDelete.Count} панелей из библиотеки...");

                    using (var db = new Database(false, true))
                    {
                        db.ReadDwgFile(PanelLibrarySaveService.LibPanelsFilePath, FileShare.None, true, "");
                        db.CloseInput(true);

                        using (var t = db.TransactionManager.StartTransaction())
                        {
                            var bt = db.BlockTableId.GetObject(OpenMode.ForRead) as BlockTable;

                            foreach (var item in panelsToDelete)
                            {
                                if (bt.Has(item.BlName))
                                {
                                    var idPanelAkr = bt[item.BlName];
                                    var dbo = idPanelAkr.GetObject(OpenMode.ForWrite);
                                    try
                                    {
                                        dbo.Erase();
                                        progress.MeterProgress();
                                    }
                                    catch { };
                                }
                            }
                            t.Commit();
                        }
                        db.SaveAs(PanelLibrarySaveService.LibPanelsFilePath, DwgVersion.Current);
                    }
                    Logger.Log.Error ($"Удалены панели АКР из библиотеки - {panelsToDelete.Count}шт.: {string.Join(", ",panelsToDelete)}");
                    progress.Stop();
                }
            }
        }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:53,代码来源:LibraryEditor.cs

示例3: CreateBtrPanelFromBase

        public void CreateBtrPanelFromBase(int i, string[] marks)
        {
            // Тест создания определения блока панели по описанию в xml базе.
             PanelBase panelBase;

             string testFile = @"c:\temp\test\АКР\Base\Tests\CreateBlockPanelTest\TestCreatePanels.dwg";
             //File.Copy(@"c:\Autodesk\AutoCAD\Pik\Settings\Template\АР\АР.dwt", testFile, true);

             using (var db = new Database(false, true))
             {
            db.ReadDwgFile(testFile, FileOpenMode.OpenForReadAndAllShare, false, "");
            db.CloseInput(true);
            using (AcadLib.WorkingDatabaseSwitcher dbSwitcher = new AcadLib.WorkingDatabaseSwitcher(db))
            {
               baseService.ClearPanelsAkrFromDrawing(db);
               baseService.InitToCreationPanels(db);

               Point3d pt = Point3d.Origin;
               List<ObjectId> idsBtrPanels = new List<ObjectId>();

               // Создание определениц блоков панелей
               foreach (var mark in marks)
               {
                  Panel panelXml = baseService.GetPanelXml(mark);
                  panelBase = new PanelBase(panelXml, baseService);
                  panelBase.CreateBlock();

                  if (!panelBase.IdBtrPanel.IsNull)
                  {
                     idsBtrPanels.Add(panelBase.IdBtrPanel);
                  }
               }

               // Вставка вхождениц блоков панелей в модель
               using (var t = db.TransactionManager.StartTransaction())
               {
                  foreach (var idBtrPanel in idsBtrPanels)
                  {
                     var blRefPanel = new BlockReference(pt, idBtrPanel);
                     var ms = db.CurrentSpaceId.GetObject(OpenMode.ForWrite) as BlockTableRecord;
                     ms.AppendEntity(blRefPanel);
                     t.AddNewlyCreatedDBObject(blRefPanel, true);
                     pt = new Point3d(0, pt.Y + 10000, 0);
                  }
                  t.Commit();
               }
            }
            db.SaveAs(testFile, DwgVersion.Current);
             }
        }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:50,代码来源:BaseServiceTests.cs

示例4: GetAllPlanesTest

        public void GetAllPlanesTest()
        {
            List<FloorArchitect> floorsAr;
             string testFile = @"c:\temp\test\АКР\Base\Tests\Тест-ПостроениеФасада.dwg";

             using (var db = new Database(false, true))
             {
            db.ReadDwgFile(testFile, FileOpenMode.OpenForReadAndAllShare, false, "");
            db.CloseInput(true);
            using (AcadLib.WorkingDatabaseSwitcher dbSwitcher = new AcadLib.WorkingDatabaseSwitcher(db))
            {
               BaseService baseService = new BaseService();
               baseService.InitToCreationPanels(db);

               floorsAr = FloorArchitect.GetAllPlanes(db, baseService);
            }
            db.SaveAs(@"c:\temp\test\АКР\Base\Tests\Тест-ПостроениеФасада-WindowMarks.dwg", DwgVersion.Current);
             }

             Assert.AreEqual(floorsAr.Count, 2);
        }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:21,代码来源:FloorArchitectTests.cs

示例5: RedefineBlockInFile

        private void RedefineBlockInFile(Editor ed, Database db, List<RedefineBlock> blocksRedefine,
                                    List<RedefineBlock> renameBlocks, FileInfo file, 
                                    ref int countFilesRedefined, ref int countFilesWithoutBlock)
        {
            List<Error> errors = new List<Error>();
            using (Database dbExt = new Database(false, true))
            {
                dbExt.ReadDwgFile(file.FullName, FileShare.ReadWrite, false, "");
                dbExt.CloseInput(true);

                countFilesRedefined = renameAndRedefBlocksInDb(blocksRedefine, renameBlocks, file, countFilesRedefined, errors, dbExt);

                dbExt.SaveAs(file.FullName, DwgVersion.Current);
            }
            if (errors.Count != 0)
                Inspector.Errors.AddRange(errors);
        }
开发者ID:vildar82,项目名称:RedefineBlockInFolder,代码行数:17,代码来源:Commands.cs

示例6: Contents


//.........这里部分代码省略.........
             // Но на первом листе содержания первые 5 строк заняты (обложка, тит, общие данные, наруж стен панели, том1).
             //_dbFacade = HostApplicationServices.WorkingDatabase;
             using (_dbContent = new Database(false, true))
             {
            _dbContent.ReadDwgFile(fileContent, FileShare.ReadWrite, false, "");
            _dbContent.CloseInput(true);

            using (new AcadLib.WorkingDatabaseSwitcher(_dbContent))
            {
               // Замена блока рамки из чертежа фасада, если он есть
               _album.AlbumInfo?.Frame?.ChangeBlockFrame(_dbContent, false);
               _album?.AlbumInfo?.CoverTitle?.ChangeCoverAndTitle(_dbContent);

               using (var t = _dbContent.TransactionManager.StartTransaction())
               {
                  int curContentLayoutNum = _countSheetsBeforContent+1;
                  Table tableContent;
                  BlockReference blRefStamp;
                  CopyContentSheet(t, curContentLayoutNum, out tableContent, out blRefStamp);
                  // Определение кол-ва марок АР
                  int countMarkArs = CalcMarksArNumber(_sheetsMarkSB);
                  // Определение кол-ва листов содержания (только для панелей без учета лтстов обложек и тп.)
                  _countContentSheets = CalcSheetsContentNumber(tableContent.Rows.Count, countMarkArs) + _album.StartOptions.NumberAddSheetContent;
                  // Заполнение штампа на первом листе содержания
                  FillingStampContent(blRefStamp, curContentLayoutNum- _countSheetsBeforContent, t);
                  // текущая строка для записи листа
                  int row = _firstRowInTableForSheets;

                  // На первом листе содержания заполняем строки для Обложки, Тит, Общ дан, НСП, Том1.
                  tableContent.Cells[row, 2].TextString = 1.ToString();
                  tableContent.Cells[row, 2].Alignment = CellAlignment.MiddleCenter;
                  tableContent.Cells[row++, 1].TextString = "Обложка";

                  tableContent.Cells[row, 2].TextString = 2.ToString();
                  tableContent.Cells[row, 2].Alignment = CellAlignment.MiddleCenter;
                  tableContent.Cells[row++, 1].TextString = "Титульный лист";

                  tableContent.Cells[row, 1].TextString = "Общие данные. Ведомость комплекта чертежей";
                  tableContent.Cells[row, 2].TextString = _countContentSheets > 1 ? "3-" + (3 + _countContentSheets - 1).ToString() : "3";
                  tableContent.Cells[row, 2].Alignment = CellAlignment.MiddleCenter;
                  row++;
                  tableContent.Cells[row++, 1].TextString = "Наружные стеновые панели";
                  tableContent.Cells[row++, 1].TextString = "ТОМ";

                  int curSheetArNum;
                  if (_album.StartOptions.NumberFirstSheet == 0)
                  {
                     curSheetArNum = _countContentSheets + _countSheetsBeforContent;// номер для первого листа Марки АР
                  }
                  else
                  {
                     curSheetArNum = _album.StartOptions.NumberFirstSheet - 1;
                  }

                  ProgressMeter progressMeter = new ProgressMeter();
                  progressMeter.SetLimit(_sheetsMarkSB.Count);
                  progressMeter.Start("Создание содержания ");

                  foreach (var sheetMarkSB in _sheetsMarkSB)
                  {
                     progressMeter.MeterProgress();
                     foreach (var sheetMarkAR in sheetMarkSB.SheetsMarkAR)
                     {
                        tableContent.Cells[row, 1].TextString = sheetMarkAR.MarkArFullName + ". Раскладка плитки на фасаде";
                        sheetMarkAR.SheetNumber = ++curSheetArNum;
                        tableContent.Cells[row, 2].TextString = curSheetArNum.ToString();
                        tableContent.Cells[row, 2].Alignment = CellAlignment.MiddleCenter;
                        row++;
                        CheckEndOfTable(t, ref curContentLayoutNum, ref tableContent, ref blRefStamp, ref row);

                        tableContent.Cells[row, 1].TextString = sheetMarkAR.MarkArFullName + ". Раскладка плитки в форме";
                        tableContent.Cells[row, 2].TextString = curSheetArNum.ToString() + ".1";
                        sheetMarkAR.SheetNumberInForm = curSheetArNum.ToString() + ".1";
                        tableContent.Cells[row, 2].Alignment = CellAlignment.MiddleCenter;
                        row++;
                        CheckEndOfTable(t, ref curContentLayoutNum, ref tableContent, ref blRefStamp, ref row);
                     }
                  }
                  progressMeter.Stop();

                  //Удаление пустых строк в таблице содержания
                  if (tableContent.Rows.Count > row + 1)
                  {
                     tableContent.DeleteRows(row, tableContent.Rows.Count - row);
                  }

                  // Удаление последнего листа содержания (пустой копии)
                  HostApplicationServices.WorkingDatabase = _dbContent;
                  LayoutManager lm = LayoutManager.Current;
                  //lm.CurrentLayout = getLayoutContentName(_countSheetsBeforContent + 1);
                  //string layoutNameToDel = (_countSheetsBeforContent + (++_countContentSheets)).ToString("00") + "_" + Settings.Default.SheetTemplateLayoutNameForContent;
                  lm.DeleteLayout(Settings.Default.SheetTemplateLayoutNameForContent);

                  t.Commit();
               }
               //HostApplicationServices.WorkingDatabase = _dbFacade;
            }
            _dbContent.SaveAs(fileContent, DwgVersion.Current);
             }
        }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:101,代码来源:SheetsContent.cs

示例7: Export

        /// <summary>
        /// Экспорт фасада для АР
        /// </summary>
        public void Export()
        {
            // Список панелей для экспорта
            SelectPanels = new SelectionBlocks();
            SelectPanels.SelectBlRefsInModel(false);
            if (SelectPanels.IdsBlRefPanelSb.Count > 0)
            {
                Inspector.AddError("В текущем чертеже в Модели не должно быть панелей Марки СБ (только Марки АР).", icon: System.Drawing.SystemIcons.Error);
                return;
            }
            if (SelectPanels.IdsBlRefPanelAr.Count == 0)
            {
                Inspector.AddError("Не найдены панели Марки АР в Моделе текущего чертежа.", icon: System.Drawing.SystemIcons.Error);
                return;
            }

            // Определить файл в который экспортировать фасад
            _fileExport = new FileExport();
            _fileExport.DefineFile();

            // определение фасадов (вокруг панелей АКР)
            var facades = Facade.GetFacades(SelectPanels.FacadeBlRefs);

            // Определение экспортируемых панелей и фасадов
            CPS = new ConvertPanelService(this);
            CPS.DefinePanels(facades);

            using (var dbExport = new Database(!_fileExport.IsExistsFileExport, true))
            {
                if (_fileExport.IsExistsFileExport)
                {
                    // удалить старые панели из файла экспорта
                    try
                    {
                        dbExport.ReadDwgFile(_fileExport.FileExportFacade.FullName, FileShare.Read, true, "");
                    }
                    catch (Exception ex)
                    {
                        // файл занят.
                        warningMessageBusyFileExportFacade(ex, _fileExport.FileExportFacade.FullName);
                        throw;
                    }
                    // сделать копию файла
                    _fileExport.Backup();
                    dbExport.CloseInput(true);
                    deletePanels(dbExport);
                }
                dbExport.CloseInput(true);
                CPS.DbExport = dbExport;

                // Копирование панелей АР в экспортный файл
                copyPanelToExportFile(dbExport);

                // Переопределение блока плитки из файла шаблона блоков для Экспорта фасадов.
                redefineBlockTile(dbExport);

                using (AcadLib.WorkingDatabaseSwitcher switchDb = new AcadLib.WorkingDatabaseSwitcher(dbExport))
                {
                    using (var t = dbExport.TransactionManager.StartTransaction())
                    {
                        // Преобразования определений блоков
                        CPS.ConvertBtr();

                        // Преобразования торцов фасадов
                        CPS.ConvertEnds();

                        t.Commit();
                    }
                }
                CPS.Purge();

                dbExport.SaveAs(_fileExport.FileExportFacade.FullName, DwgVersion.Current);
            }
        }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:77,代码来源:ExportFacadeService.cs

示例8: TestDynBlSec

        public void TestDynBlSec()
        {
            string testFile = @"c:\temp\test\АКР\Base\Tests\TestDynBlSec.dwg";

             using (var db = new Database(false, true))
             {
            db.ReadDwgFile(testFile, FileOpenMode.OpenForReadAndAllShare, false, "");
            db.CloseInput(true);
            using (AcadLib.WorkingDatabaseSwitcher dbSwitcher = new AcadLib.WorkingDatabaseSwitcher(db))
            {
               ObjectId idBtrPanel;
               ObjectId idBtrMs;

               using (var t = db.TransactionManager.StartTransaction())
               {
                  BlockTableRecord ms;
                  BlockTableRecord btrPanel;
                  ObjectId idBtrSec;
                  BlockTableRecord btrDim;

                  using (var bt = db.BlockTableId.GetObject(OpenMode.ForWrite) as BlockTable)
                  {
                     ms = bt[BlockTableRecord.ModelSpace].GetObject(OpenMode.ForWrite) as BlockTableRecord;
                     idBtrMs = ms.Id;
                     idBtrSec = bt["Test"];

                     btrPanel = new BlockTableRecord();
                     btrPanel.Name = "Panel";
                     idBtrPanel = bt.Add(btrPanel);
                     t.AddNewlyCreatedDBObject(btrPanel, true);

                     btrDim = new BlockTableRecord();
                     btrDim.Name = "Dim";
                     bt.Add(btrDim);
                     t.AddNewlyCreatedDBObject(btrDim, true);
                  }

                  BlockReference blRefDim = new BlockReference(Point3d.Origin, btrDim.Id);
                  btrPanel.AppendEntity(blRefDim);
                  t.AddNewlyCreatedDBObject(blRefDim, true);

                  BlockReference blRef = new BlockReference(Point3d.Origin, idBtrSec);
                  btrDim.AppendEntity(blRef);
                  t.AddNewlyCreatedDBObject(blRef, true);
                  setDynParam(blRef);

                  t.Commit();
               }
               using (var t = db.TransactionManager.StartTransaction())
               {
                  var ms = idBtrMs.GetObject(OpenMode.ForWrite) as BlockTableRecord;
                  BlockReference blRefPanel = new BlockReference(Point3d.Origin, idBtrPanel);
                  ms.AppendEntity(blRefPanel);
                  t.AddNewlyCreatedDBObject(blRefPanel, true);

                  t.Commit();
               }
            }
            string saveFile = @"c:\temp\test\АКР\Base\Tests\TestDynBlSec-TestSaved.dwg";
            db.SaveAs(saveFile, DwgVersion.Current);
             }
        }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:62,代码来源:TestDynBlockSec.cs

示例9: DrawAndSaveAs2

        public void DrawAndSaveAs2(Product product, IWorkbookSet bookSet)
        {
            if (File.Exists(filePath))
            { throw new Exception("已经存在temp.dwg,请保证已经删除"); }

            //TODO:Not here
            product.Parts.ForEach(it => it.CalculateLocationInfo(Point3d.Origin, 0));

            using (Database db = new Database())
            using (Transaction acTrans = db.TransactionManager.StartTransaction())
            {
                BlockTable bt = (BlockTable)acTrans.GetObject(db.BlockTableId, OpenMode.ForRead);
                BlockTableRecord btr = (BlockTableRecord)acTrans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);

                foreach (var part in product.Parts)
                {
                    Solid3d panel = new Solid3d();
                    panel.CreateBox(part.Length, part.Width, part.Thickness);

                    panel.TransformBy(Matrix3d.Rotation(part.XRotation * Math.PI / 180, Vector3d.XAxis, Point3d.Origin));
                    panel.TransformBy(Matrix3d.Rotation(part.YRotation * Math.PI / 180, Vector3d.YAxis, Point3d.Origin));
                    panel.TransformBy(Matrix3d.Rotation(part.ZRotation * Math.PI / 180, Vector3d.ZAxis, Point3d.Origin));

                    var moveVector = new Vector3d();
                    panel.TransformBy(Matrix3d.Displacement(part.CenterVector));

                    btr.AppendEntity(panel);
                    acTrans.AddNewlyCreatedDBObject(panel, true);
                }

                acTrans.Commit();

                db.SaveAs(filePath, DwgVersion.Newest);
            }
        }
开发者ID:komelio,项目名称:Dimeng.LinkToMicrocad,代码行数:35,代码来源:BlockDrawer.cs


注:本文中的Database.SaveAs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。