Экспорт CAD

Экспорт 3D изображений AutoCAD в PDF

Aspose.CAD позволяет экспортировать 3D изображения AutoCAD в PDF. Пожалуйста, используйте TypeOfEntities.Entities3D в ImageOptions.CadRasterizationOptions, чтобы указать, что вы хотите экспортировать 3D сущности. Следующий пример кода загружает 3D файл AutoCAD и экспортирует его в PDF. После преобразования файла в PDF, вы можете открыть его с помощью вашего любимого PDF-Viewera.

Пример кода ниже показывает, как экспортировать 3D изображения AutoCAD в PDF.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
// The path to the resource directory.
String dataDir = Utils.getDataDir(Export3DAutoCADImagesToPDF.class) + "ExportingCAD/";
String srcFile = dataDir + "conic_pyramid.dxf";
Image cadImage = Image.load(srcFile);
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(500);
rasterizationOptions.setPageHeight(500);
rasterizationOptions.setTypeOfEntities(TypeOfEntities.Entities3D);
rasterizationOptions.setLayouts(new String[] {"Model"});
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(dataDir + "Export3DImagestoPDF_out_.pdf", pdfOptions);

Экспорт макетов CAD в PDF

Aspose.CAD для Java позволяет экспортировать макеты CAD в PDF. Метод save класса CadImage можно использовать для экспорта макетов в формат PDF. Следующий пример кода загружает файл CAD и экспортирует его “Model” макет в PDF. После преобразования файла в PDF, вы можете открыть его с помощью вашего любимого PDF-Viewera.

Вот пример кода.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportCADLayoutsToPDF.class) + "ExportingCAD/";
String srcFile = dataDir + "conic_pyramid.dxf";
// Create an instance of CadImage class and load the file.
Image cadImage = Image.load(srcFile);
// Create an instance of CadRasterizationOptions class
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Set the Entities type property to Entities3D.
rasterizationOptions.setTypeOfEntities(TypeOfEntities.Entities3D);
rasterizationOptions.setScaleMethod(ScaleType.GrowToFit);
rasterizationOptions.setContentAsBitmap(true);
// Set Layouts
rasterizationOptions.setLayouts(new String[] {"Model"});
// Create an instance of PDF options class
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Set Graphics options
rasterizationOptions.getGraphicsOptions().setSmoothingMode(SmoothingMode.HighQuality);
rasterizationOptions.getGraphicsOptions().setTextRenderingHint(TextRenderingHint.AntiAliasGridFit);
rasterizationOptions.getGraphicsOptions().setInterpolationMode(InterpolationMode.HighQualityBicubic);
// Export to PDF by calling the Save method
cadImage.save(dataDir + "CADLayoutsToPDF_out_.pdf", pdfOptions);

Поддержка настройки пера в экспорте

Aspose.CAD для Java позволяет добавлять параметры пера в свойства экспорта CAD. С помощью rasterizationOptions мы можем задать параметры свойств пера.

Ниже приведен пример кода для достижения указанных требований.

String dataDir = Utils.getDataDir(PenSupportInExport.class) + "CADConversion/";
String srcFile = dataDir + "conic_pyramid.dxf";
CadImage cadImage = ((CadImage)(Image.load(srcFile)));
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(cadImage.getWidth() * 100);
rasterizationOptions.setPageHeight(cadImage.getHeight() * 100);
PdfOptions pdfOptions = new PdfOptions();
// Here user can change default start cap and end cap of pens when exporting CadImage object to
// image. It can be using for all image formats: pdf, png, bmp, gif, jpeg2000, jpeg, psd, tiff, wmf.
// If user doesn't use PenOptions, system will use its own default pens (different in defferent places).
PenOptions penOts = new PenOptions();
penOts.setStartCap(LineCap.Flat);
penOts.setEndCap(LineCap.Flat);
//rasterizationOptions.setPenOptions(penOts);
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save((dataDir+"9LHATT-A56_generated.pdf"),pdfOptions);

Декомпозиция объекта вставки CAD

Aspose.CAD для Java позволяет декомпозировать объекты CAD и обрабатывать отдельные сущности внутри вставки. Ниже приведен пример кода для достижения указанных требований.

String srcFile = dataDir + "conic_pyramid.dxf";
CadImage cadImage =(CadImage) Image.load(srcFile);
try
{
for (int i=0; i<cadImage.getEntities().length;i++)
{
if (cadImage.getEntities()[i].getTypeName() == CadEntityTypeName.INSERT)
{
CadBlockEntity block =
(CadBlockEntity)cadImage.getBlockEntities().get_Item(((CadInsertObject)cadImage.getEntities()[i]).getName());
for (CadBaseEntity blockChild : block.getEntities())
{
// process entities
}
}
}
}
finally
{
cadImage.dispose();
}

Поддержка прокси-сущностей ACAD

Aspose.CAD для Java позволяет читать и экспортировать сущности ACAD_PROXY_ENTITY. Ниже приведен пример кода для достижения указанных требований.

String dataDir = Utils.getDataDir(PenSupportInExport.class) + "CADConversion/";
String srcFile = dataDir + "conic_pyramid.dxf";
CadImage cadImage = ((CadImage)(Image.load(srcFile)));
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(cadImage.getWidth() * 100);
rasterizationOptions.setPageHeight(cadImage.getHeight() * 100);
PdfOptions pdfOptions = new PdfOptions();
// Here user can change default start cap and end cap of pens when exporting CadImage object to
// image. It can be using for all image formats: pdf, png, bmp, gif, jpeg2000, jpeg, psd, tiff, wmf.
// If user doesn't use PenOptions, system will use its own default pens (different in defferent places).
PenOptions penOts = new PenOptions();
penOts.setStartCap(LineCap.Flat);
penOts.setEndCap(LineCap.Flat);
//rasterizationOptions.setPenOptions(penOts);
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save((dataDir+"9LHATT-A56_generated.pdf"),pdfOptions);

Интеграция формата IGES

Aspose.CAD для Java позволяет читать и экспортировать формат IGES. Ниже приведен пример кода для достижения указанных требований.

String dataDir = Utils.getDataDir(ExportIGEStoPDF.class) + "IGESDrawings/";
String PLTPathToFile = dataDir + "figa2.igs";
Image image = Image.load(PLTPathToFile);
//Setting PDF Options
PdfOptions pdfOptions = new PdfOptions();
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
cadRasterizationOptions.setPageHeight(1000);
cadRasterizationOptions.setPageWidth(1000);
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
//Saving to PDF
image.save(dataDir+"figa2.pdf", pdfOptions);

Поддержка моделей сеток

Aspose.CAD для Java позволяет реализовывать и подсчитывать модели сеток, такие как ребра, вершины и грани, которые используют полигональное представление. Ниже приведен пример кода для достижения указанных требований.

String srcFile = dataDir + "meshes.dwg";
// com.aspose.cad. objImage = com.aspose.cad.CImage.load(srcFile);
CadImage cadImage =(CadImage) com.aspose.cad.Image.load(srcFile);
try
{
for (CadBaseEntity entity : cadImage.getEntities())
{
if (entity instanceof CadPolyFaceMesh)
{
CadPolyFaceMesh asFaceMesh= (CadPolyFaceMesh)entity;
if (asFaceMesh != null)
{
System.out.println("Vetexes count: " + asFaceMesh.getMeshMVertexCount());
}
}
else if (entity instanceof CadPolygonMesh)
{
CadPolygonMesh asPolygonMesh= (CadPolygonMesh)entity;
if (asPolygonMesh != null)
{
System.out.println("Vetexes count: " + asPolygonMesh.getMeshMVertexCount());
}
}
}
}
finally
{
cadImage.dispose();
}

Установка пользовательской точки зрения

Aspose.CAD для Java позволяет установить пользовательскую точку зрения для макета модели. Используя vectorRasterizationOptions, вы можете установить пользовательскую точку зрения. Пример кода ниже показывает, как установить пользовательскую точку зрения.

String dataDir = Utils.getDataDir(FreePointOfView.class) + "CADConversion/";
// Path to source file
String sourceFilePath = dataDir+"conic_pyramid.dxf";
// Load a CAD drawing in an instance of Image
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(sourceFilePath);
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setPageHeight(1500);
cadRasterizationOptions.setPageWidth(1500);
// Create an instance of JpegOptions class
com.aspose.cad.imageoptions.JpegOptions options = new com.aspose.cad.imageoptions.JpegOptions();
options.setVectorRasterizationOptions(cadRasterizationOptions);
float xAngle = 10; //Angle of rotation along the X axis
float yAngle = 30; //Angle of rotation along the Y axis
float zAngle = 40; //Angle of rotation along the Z axis
ObserverPoint obvPoint = new ObserverPoint(xAngle,yAngle,zAngle);
cadRasterizationOptions.setObserverPoint(obvPoint);
options.setVectorRasterizationOptions(cadRasterizationOptions);
//Saving to Image
objImage.save(dataDir+"FreePointOfView_out.jpeg", options);