Desenho DGN
Desenhando o Formato DGN Como Parte do DWG
Aspose.CAD para Java permite que desenvolvedores exportem um arquivo DWG com sobreposição DGN incorporada. A seguir está o código que demonstra como acessar a sobreposição DGN dentro de um arquivo DWG ao exportar o arquivo DWG.
// Input and Output file paths | |
String dataDir = Utils.getDataDir(ExportDGNAsPartofDWG.class) + "ExportingDGN/"; | |
// Input and Output file paths | |
String fileName = dataDir + "BlockRefDgn.dwg"; | |
String outPath = dataDir +"BlockRefDgn.dwg.pdf"; | |
// Create an instance of PdfOptions class as we are exporting the DWG file to PDF format | |
com.aspose.cad.imageoptions.PdfOptions exportOptions = new com.aspose.cad.imageoptions.PdfOptions(); | |
// Load any existing DWG file as image and convert it to CadImage type | |
com.aspose.cad.fileformats.cad.CadImage cadImage = (com.aspose.cad.fileformats.cad.CadImage) com.aspose.cad.Image.load(fileName); | |
// Go through each entity inside the DWG file | |
for (com.aspose.cad.fileformats.cad.cadobjects.CadBaseEntity baseEntity : cadImage.getEntities()) | |
{ | |
// Check if entity is an image definition | |
if (baseEntity.getTypeName() == com.aspose.cad.fileformats.cad.cadconsts.CadEntityTypeName.DGNUNDERLAY) | |
{ | |
com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay dgnFile = (com.aspose.cad.fileformats.cad.cadobjects.CadDgnUnderlay)baseEntity; | |
// Get external reference to object | |
System.out.println(dgnFile.getUnderlayPath()); | |
} | |
} | |
// Define settings for CadRasterizationOptions object | |
com.aspose.cad.imageoptions.CadRasterizationOptions vectorRasterizationOptions = new com.aspose.cad.imageoptions.CadRasterizationOptions(); | |
vectorRasterizationOptions.setPageWidth(1600); | |
vectorRasterizationOptions.setPageHeight(1600); | |
vectorRasterizationOptions.setLayouts(new String[] { "Model" }); | |
vectorRasterizationOptions.setAutomaticLayoutsScaling(false); | |
vectorRasterizationOptions.setNoScaling(true); | |
vectorRasterizationOptions.setBackgroundColor(com.aspose.cad.Color.getBlack()); | |
vectorRasterizationOptions.setDrawType(com.aspose.cad.fileformats.cad.CadDrawTypeMode.UseObjectColor); | |
// Set Vector Rasterization Options | |
exportOptions.setVectorRasterizationOptions(vectorRasterizationOptions); | |
// Export the DWG to PDF by calling Save method | |
cadImage.save(outPath, exportOptions); | |
Suporte a entidades 3D para DGN v7
A API Aspose.CAD para Java introduziu a funcionalidade para carregar um arquivo DGN do AutoCAD e suportar entidades 3D para DGN v7. A classe CadImage serve a esse propósito. Cada imagem DGN suporta 9 visualizações predefinidas. Elas são enumeradas de 1 a 9. Se a visualização não estiver definida na exportação, para formatos de saída de várias páginas (como PDF) todas as visualizações serão exportadas, cada uma em uma página separada. Entidades 3D são suportadas no formato de arquivo DGN, assim como 2D. VectorRasterizationOptions.TypeOfEntities não é mais utilizado para o formato DGN (tanto 2D quanto 3D são suportados simultaneamente).
Código de exemplo para visualizar os elementos DGN suportados.
String fileName = dataDir + "Nikon_D90_Camera.dgn"; | |
String outFile = dataDir + "Nikon_D90_Camera.dgn"; | |
DgnImage objImage = (DgnImage)com.aspose.cad.Image.load(fileName); | |
PdfOptions options = new PdfOptions(); | |
CadRasterizationOptions vectorOptions = new CadRasterizationOptions(); | |
vectorOptions.setPageWidth(1500); | |
vectorOptions.setPageHeight(1500); | |
vectorOptions.setAutomaticLayoutsScaling(true); | |
vectorOptions.setBackgroundColor(Color.getBlack()); | |
vectorOptions.setLayouts(new String[] { "1", "2", "3", "9" });//only export 4 (1,2,3 and 9) views | |
options.setVectorRasterizationOptions(vectorOptions); | |
objImage.save(outFile, options); | |
// Input and Output file paths | |
String fileName = "BlockRefDgn.dwg"; | |
String outPath = "BlockRefDgn.dwg.pdf"; | |
DgnImage dgnImage = (DgnImage)Image.load(dataDir); | |
{ | |
for (DgnDrawingElementBase element : dgnImage.getElements()) | |
{ | |
switch (element.getMetadata().getType()) | |
{ | |
case DgnElementType.Line: | |
case DgnElementType.Ellipse: | |
case DgnElementType.Curve: | |
case DgnElementType.BSplineCurveHeader: | |
case DgnElementType.Arc: | |
case DgnElementType.Shape: | |
case DgnElementType.PolyLine: | |
case DgnElementType.TextNode: | |
case DgnElementType.Text: | |
case DgnElementType.ComplexShapeHeader: | |
case DgnElementType.ComplexChainHeader: | |
{ | |
//previously supported entities, now supported also for 3D | |
break; | |
} | |
case DgnElementType.SolidHeader3D: | |
case DgnElementType.Cone: | |
case DgnElementType.CellHeader: | |
{ | |
//supported 3D entities | |
break; | |
} | |
} |