DGN Малюнок
Малювання формату DGN як частини DWG
Aspose.CAD для Java дозволяє розробникам експортувати файл DWG з вбудованим DGN підкладкою. Нижче наведено код, що демонструє, як отримати доступ до DGN підкладки всередині файлу DWG під час експорту файлу 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); | |
Підтримка 3D об’єктів для DGN v7
Aspose.CAD для Java API впровадив функціональність для завантаження файлу DGN AutoCAD і підтримує 3D об’єкти для DGN v7. Клас CadImage виконує цю мету. Кожен DGN малюнок підтримує 9 заздалегідь визначених виглядів. Вони перераховані від 1 до 9. Якщо вид не визначений під час експорту, для формату виходу з кількома сторінками (наприклад, PDF) всі вигляди будуть експортовані, кожен на окремій сторінці. 3D об’єкти підтримуються у форматі файлу DGN, так само як і 2D. VectorRasterizationOptions.TypeOfEntities більше не використовується для формату DGN (обидва 2D і 3D підтримуються одночасно).
Приклад коду, щоб переглянути підтримувані елементи 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; | |
} | |
} |