DXF Чертежи

Экспорт DXF чертежей в PDF

Aspose.CAD предоставляет возможность загружать объекты чертежей AutoCAD DXF и отображать их в формате PDF. Подход к конвертации DXF в PDF работает следующим образом:

  1. Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
  2. Создайте объект класса CadRasterizationOptions и установите свойства PageHeight и PageWidth.
  3. Создайте объект класса PdfOptions и установите свойство VectorRasterizationOptions.
  4. Вызовите Image.Save, передавая объект PdfOptions в качестве второго параметра.

Пример кода ниже демонстрирует, как конвертировать файл с использованием настроек по умолчанию.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.BackgroundColor = Aspose.CAD.Color.White;
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "conic_pyramid_out.pdf";
//Export the DXF to PDF
image.Save(MyDir, pdfOptions);
}

Поддерживаемые форматы

На данный момент мы полностью поддерживаем форматы файлов AutoCAD DXF 2010. Предыдущие версии DXF не гарантируются как 100% действительные. Мы планируем включить больше форматов и функций в будущих версиях Aspose.CAD.

Поддерживаемые объекты

На данный момент мы поддерживаем все широко распространенные 2D объекты и их основные стандартные параметры, как показано ниже:

  1. Выравненное измерение
  2. Угловое измерение
  3. Дуга
  4. Атрибут
  5. Ссылка на блок
  6. Окружность
  7. Измерение диаметра
  8. Элипс
  9. Штриховка
  10. Линия
  11. Многострочный текст
  12. Ординатное измерение
  13. Точка
  14. Полилиния
  15. Радиальное измерение
  16. Луч
  17. Поворотное измерение
  18. Таблица
  19. Текст
  20. Х-лайн

Управление памятью

Свойство ExactReallocateOnly класса Cache может быть использовано для управления перераспределением памяти. Перераспределение, скорее всего, произойдет для предварительно выделенных кэшей. Это может случиться, когда система понимает, что выделенного пространства недостаточно.

  • Если ExactReallocateOnly установлено на значение по умолчанию, False, пространство перераспределяется на то же средство.
  • Когда выставлено True, перераспределение не может превышать максимальное заданное пространство. В этом случае существующий выделенный в памяти кэш (который требует перераспределения) освобождается, и дополнительное пространство выделяется на диске.

Экспорт специфического слоя DXF чертежей в PDF

Этот подход работает следующим образом:

  1. Откройте файл чертежа DXF с использованием метода фабрики Image.Load.
  2. Создайте экземпляр CadRasterizationOptions и укажите свойства PageWidth и PageHeight.
  3. Добавьте слои в объект CadRasterizationOptions.
  4. Создайте экземпляр PdfOptions и установите его свойство VectorRasterizationOptions.
  5. Вызовите метод Image.Save и передайте объект PdfOptions в качестве второго параметра.

Пример кода ниже демонстрирует, как конвертировать специфический слой DXF в PDF.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Add desired layers
rasterizationOptions.Layers = new string[] { "LayerA" };
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "conic_pyramid_layer_out.pdf";
//Export the DXF to PDF
image.Save(MyDir, pdfOptions);
}

Отрисовка PDF файлов как части DXF чертежей

Этот подход работает следующим образом:

  1. Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
  2. Создайте объект класса CadRasterizationOptions и загрузите PDF файлы.
  3. Установите свойства PageHeight и PageWidth.
  4. Вызовите Image.Save и сохраните файл.

Пример кода ниже демонстрирует, как отрисовать PDF файлы как часть DXF чертежей.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Specify desired layout name
rasterizationOptions.Layouts = new string[] { "Model" };
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "conic_pyramid_layout_out.pdf";
//Export the DXF to PDF
image.Save(MyDir, pdfOptions);
}

Экспорт встроенного подложки DGN для формата DXF

Aspose.CAD предоставляет возможность загружать файлы AutoCAD DXF и экспортировать встроенные подложки DGN для формата DXF.

Пример кода ниже демонстрирует, как достичь указанных требований.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath))
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.Layouts = new[] { "Model" };
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
cadImage.Save(MyDir + "conic_pyramid.pdf", pdfOptions);
}

Поддержка сохранения DXF файлов

Aspose.CAD предоставляет возможность загружать файлы AutoCAD DXF, вносить изменения в них и снова сохранять их как файлы DXF.

Пример кода ниже демонстрирует, как достичь указанных требований.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath))
{
// any entities updates
cadImage.Save(MyDir+"conic.dxf");
}

Экспорт DXF в WMF

Этот подход работает следующим образом:

  1. Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
  2. Создайте объект класса CadRasterizationOptions и загрузите PDF файлы.
  3. Установите свойства PageHeight и PageWidth.
  4. Вызовите Image.Save и сохраните файл.
// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (var image = Image.Load("NRB-GRID-BLOCK-MD-PROVALVDK-241000-162000-45400.dgn"))
{
var vectorOptions = new CadRasterizationOptions();
vectorOptions.AutomaticLayoutsScaling = true;
vectorOptions.BackgroundColor = Color.Black;
vectorOptions.PageWidth = 500;
vectorOptions.PageHeight = 500;
WmfOptions wmfOptions = new WmfOptions()
{
VectorRasterizationOptions = vectorOptions
};
image.Save("NRB-GRID-BLOCK-MD-PROVALVDK-241000-162000-45400.dgn.wmf", wmfOptions);
}

Экспорт специфического макета DXF в PDF

Этот подход работает следующим образом:

  1. Откройте файл чертежа DXF с использованием метода фабрики Image.Load.
  2. Создайте экземпляр CadRasterizationOptions и укажите свойства PageWidth и PageHeight.
  3. Укажите предполагаемое имя(я) макета с использованием свойства CadRasterizationOptions.Layouts.
  4. Создайте экземпляр PdfOptions и установите его свойство VectorRasterizationOptions.
  5. Экспортируйте чертеж в PDF, вызвав метод Image.Save и передав объект PdfOptions в качестве второго параметра.

Пример кода ниже демонстрирует, как конвертировать специфический макет DXF в PDF.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Specify desired layout name
rasterizationOptions.Layouts = new string[] { "Model" };
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "conic_pyramid_layout_out.pdf";
//Export the DXF to PDF
image.Save(MyDir, pdfOptions);
}

Поддержка обрезки блоков

Aspose.CAD предоставляет возможность обрезки блоков. Подход обрезки блоков работает следующим образом:

  1. Загрузите файл чертежа DXF с использованием метода фабрики Image.Load.
  2. Создайте объект класса CadRasterizationOptions и загрузите PDF файлы.
  3. Установите необходимые свойства CadRasterizationOptions.
  4. Вызовите Image.Save, передав объект PdfOptions во втором параметре, и сохраните файл.

Пример кода ниже демонстрирует, как работает обрезка блоков.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-.NET
// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string inputFile = MyDir + "SLS-CW-CD-CE001-R01_blockClip.dxf";
string outputFile = MyDir + "SLS-CW-CD-CE001-R01_blockClip.pdf";
using (CadImage cadImage = (CadImage)Image.Load(inputFile))
{
var rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions
{
BackgroundColor = Aspose.CAD.Color.White,
DrawType = Aspose.CAD.FileFormats.Cad.CadDrawTypeMode.UseObjectColor,
PageWidth = 1200,
PageHeight = 1600,
Margins = new Margins
{
Top = 5,
Right = 30,
Bottom = 5,
Left = 30
},
Layouts = new string[] { "Model" }
};
PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions
{
VectorRasterizationOptions = rasterizationOptions
};
cadImage.Save(outputFile, pdfOptions);

Экспорт изображений в DXF

С помощью Aspose.CAD вы можете экспортировать изображения в формат DXF. С помощью этого подхода вы можете выполнить следующие действия:

  1. Установить новый шрифт
  2. Скрыть объекты
  3. Обновить текст

Следующий фрагмент кода показывает, как выполнить перечисленные выше действия.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
foreach (var file in new DirectoryInfo(MyDir).EnumerateFiles("*.dxf"))
{
// ****************************
// Set new font per document
// ****************************
using (var cadImage = (CadImage)Image.Load(file.FullName))
{
// Iterate over the items of CadStyleTableObject
foreach (CadStyleTableObject style in cadImage.Styles)
{
// Set font name
style.PrimaryFontName = "Broadway";
}
cadImage.Save(file.FullName + "_font.dxf");
}
// ****************************
// Hide all "straight" lines
// ****************************
using (var cadImage = (CadImage)Image.Load(file.FullName))
{
foreach (var entity in cadImage.Entities)
{
// Make lines invisible
if (entity.TypeName == CadEntityTypeName.LINE)
{
entity.Visible = 0;
}
}
cadImage.Save(file.FullName + "_lines.dxf");
}
// ****************************
// Manipulations with text
// ****************************
using (var cadImage = (CadImage)Image.Load(file.FullName))
{
foreach (var entity in cadImage.Entities)
{
if (entity.TypeName == CadEntityTypeName.TEXT)
{
((CadText)entity).DefaultValue = "New text here!!! :)";
break;
}
}
cadImage.Save(file.FullName + "_text.dxf");
}
}

Экспорт специфического слоя DXF чертежей в изображение

Этот подход работает следующим образом:

  1. Откройте файл чертежа DXF с использованием метода фабрики Image.Load.
  2. Создайте экземпляр CadRasterizationOptions и укажите свойства PageWidth и PageHeight.
  3. Добавьте слои в объект CadRasterizationOptions.
  4. Создайте экземпляр JpegOptions и установите его свойство VectorRasterizationOptions.
  5. Экспортируйте чертеж в PDF с помощью метода Image.Save.

Пример кода ниже демонстрирует, как конвертировать специфический слой DXF в изображение.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DXFDrawings();
string sourceFilePath = MyDir + "for_layers_test.dwf";
using (var image = (Aspose.CAD.FileFormats.Cad.CadImage)Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions
var rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
// Set image width & height
rasterizationOptions.PageWidth = 500;
rasterizationOptions.PageHeight = 500;
// Set the drawing to render at the center of image
// rasterizationOptions.CenterDrawing = true;
// Get the layers in an instance of CadLayersDictionary
var layersList = image.Layers;
// Iterate over the layers
foreach (var layerName in layersList.GetLayersNames())
{
// Display layer name for tracking
Console.WriteLine("Start with " + layerName);
// Add the layer name to the CadRasterizationOptions's layer list
rasterizationOptions.Layers = new string[] { "LayerA" };
// Create an instance of JpegOptions (or any ImageOptions for raster formats)
var options = new Aspose.CAD.ImageOptions.JpegOptions();
// Set VectorRasterizationOptions property to the instance of CadRasterizationOptions
options.VectorRasterizationOptions = rasterizationOptions;
//Export each layer to Jpeg format
image.Save(layerName + "_out.jpg", options);
}
}