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