Výkres formátu DGN

Kreslení formátu DGN jako součást DWG

Aspose.CAD pro Javu umožňuje vývojářům exportovat soubor DWG s vloženým podkladem DGN uvnitř. Následující kód ukazuje, jak přistupovat k podkladu DGN uvnitř souboru DWG během exportu souboru 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);

Podpora 3D prvků pro DGN v7

API Aspose.CAD pro Javu zavedlo funkci načítání souboru DGN AutoCAD a podporu 3D prvků pro DGN v7. Třída CadImage plní tuto úlohu. Každý obraz DGN podporuje 9 předdefinovaných zobrazení. Jsou vyjmenovány od 1 do 9. Pokud není zobrazení definováno při exportu, pro formáty s více stránkami (jako PDF) budou exportována všechna zobrazení, každé na samostatné stránce. 3D prvky jsou podporovány ve formátu souboru DGN, stejně jako 2D. Typ prvků VectorRasterizationOptions.TypeOfEntities se pro formát DGN (2D i 3D jsou podporovány současně) již nepoužívá.

Ukázkový kód pro prohlížení podporovaných prvků DGN.

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;
}
}