Browse our Products

Aspose.CAD for Java 1.1.0 Release notes

We are pleased to announce the release of Aspose.CAD 1.1.0 for Java. The following is a list of changes in this version of Aspose.CAD.

Features and Improvements

KeySummaryCategory
CADJAVA-48Find or search text in the DWG fileNew Feature
CADJAVA-47Support to retrieve block attribute values from within a dwg and its external referencesNew Feature
CADJAVA-42Support for DGN file format for possible conversion to PDF & raster image formatsNew Feature
CADJAVA-46Cad export to Bmp fails with out of memory exceptionEnhancement
CADJAVA-44Unable to access Face3D Objects in DXF file [.Net]Enhancement
CADJAVA-40Update Java packaging to conform to Aspose guidelinesEnhancement

Usage examples:

CADJAVA-42 Support for DGN file format for possible conversion to PDF & raster image formats

 String file = "Nikon_D90_Camera.dgn";

InputStream stream = new FileInputStream(file);

Image image = Image.load(stream);

DgnImage dgnImage = (DgnImage)image;

int version = dgnImage.getVersion();

CADJAVA-42 Support for DGN file format for possible conversion to PDF & raster image formats

 String file = "Nikon_D90_Camera.dgn";

Boolean isDgnV7 = Image.getFileFormat(file) == FileFormat.DgnV7;

CADJAVA-42 Support for DGN file format for possible conversion to PDF & raster image formats

 String file = "Nikon_D90_Camera.dgn";

InputStream stream = new FileInputStream(file);

Image image = Image.load(stream);

DgnImage dgnImage = (DgnImage)image;

for (DgnDrawingElementBase element : dgnImage.getElements())

{

    System.out.println(element.getMetadata().getColor());

    System.out.println(element.getMetadata().getLineStyle());

    System.out.println(element.getMetadata().getType());

}

CADJAVA-42 Support for DGN file format for possible conversion to PDF & raster image formats

 String file = "Nikon_D90_Camera.dgn");

        String outFile = "Nikon_D90_Camera.pdf";

        InputStream stream = new FileInputStream(file);

        Image image = Image.load(stream);

        OutputStream outStream = new FileOutputStream(outFile);

        PdfOptions options = new PdfOptions();

        DgnRasterizationOptions rasterizationOptions = new DgnRasterizationOptions();

        rasterizationOptions.setPageWidth(600);

        rasterizationOptions.setPageHeight(300);

        rasterizationOptions.setCenterDrawing(true);

        rasterizationOptions.setAutomaticLayoutsScaling(false);

        options.setVectorRasterizationOptions(rasterizationOptions);

        image.save(outStream, options);

CADJAVA-42 Support for DGN file format for possible conversion to PDF & raster image formats

 String file = "Nikon_D90_Camera.dgn";

        String outFile = "Nikon_D90_Camera.pdf";

        InputStream stream = new FileInputStream(file);

        Image image = Image.load(stream);

        OutputStream outStream = new FileOutputStream(outFile);

        JpegOptions options = new JpegOptions();

        DgnRasterizationOptions rasterizationOptions = new DgnRasterizationOptions();

        rasterizationOptions.setPageWidth(600);

        rasterizationOptions.setPageHeight(300);

        rasterizationOptions.setCenterDrawing(true);

        rasterizationOptions.setAutomaticLayoutsScaling(false);

        options.setVectorRasterizationOptions(rasterizationOptions);

        image.save(outStream, options);

CADJAVA-42 Support for DGN file format for possible conversion to PDF & raster image formats

 String file = "scheme.dgn";

        InputStream stream = new FileInputStream(file);

            Image image = Image.load(stream);

            DgnImage dgnImage = (DgnImage)image;

            for (DgnDrawingElementBase element : dgnImage.getElements())

            {

                DgnPolyLineElement asDgnPolyLineElement = element instanceof DgnPolyLineElement ? (DgnPolyLineElement)element : null;

                if (asDgnPolyLineElement != null)

                {

                    // Element of 'DgnPolyLineElement' type

                    continue;

                }

                DgnShapeElement asDgnShapeElement = element instanceof DgnShapeElement ? (DgnShapeElement)element : null;

                if (asDgnShapeElement != null)

                {

                    // Element of 'DgnShapeElement' type

                    continue;

                }

                DgnSplinePoleElement asDgnSplinePoleElement = element instanceof DgnSplinePoleElement ? (DgnSplinePoleElement)element : null;

                if (asDgnSplinePoleElement != null)

                {

                    // Element of 'DgnSplinePoleElement' type

                    continue;

                }

                Dgn3DSurfaceElement asDgn3DSurfaceElement = element instanceof Dgn3DSurfaceElement ? (Dgn3DSurfaceElement)element : null;

                if (asDgn3DSurfaceElement != null)

                {

                    // Element of 'Dgn3DSurfaceElement' type

                    continue;

                }

                DgnArcElement asDgnArcElement = element instanceof DgnArcElement ? (DgnArcElement)element : null;

                if (asDgnArcElement != null)

                {

                    // Element of 'DgnArcElement' type

                    continue;

                }

                DgnBSplineCurveElement asDgnBSplineCurveElement = element instanceof DgnBSplineCurveElement ? (DgnBSplineCurveElement)element : null;

                if (asDgnBSplineCurveElement != null)

                {

                    // Element of 'DgnBSplineCurveElement' type

                    continue;

                }

                DgnCellHeaderElement asDgnCellHeaderElement = element instanceof DgnCellHeaderElement ? (DgnCellHeaderElement)element : null;

                if (asDgnCellHeaderElement != null)

                {

                    // Element of 'DgnCellHeaderElement' type

                    continue;

                }

                DgnCompoundElement asDgnCompoundElement = element instanceof DgnCompoundElement ? (DgnCompoundElement)element : null;

                if (asDgnCompoundElement != null)

                {

                    // Element of 'DgnCompoundElement' type

                    continue;

                }

                DgnConeElement asDgnConeElement = element instanceof DgnConeElement ? (DgnConeElement)element : null;

                if (asDgnConeElement != null)

                {

                    // Element of 'DgnConeElement' type

                    continue;

                }

                DgnCurveLineElement asDgnCurveLineElement = element instanceof DgnCurveLineElement ? (DgnCurveLineElement)element : null;

                if (asDgnCurveLineElement != null)

                {

                    // Element of 'DgnCurveLineElement' type

                    continue;

                }

                DgnEllipseElement asDgnEllipseElement = element instanceof DgnEllipseElement ? (DgnEllipseElement)element : null;

                if (asDgnEllipseElement != null)

                {

                    // Element of 'DgnEllipseElement' type

                    continue;

                }

                DgnLineElement asDgnLineElement = element instanceof DgnLineElement ? (DgnLineElement)element : null;

                if (asDgnLineElement != null)

                {

                    // Element of 'DgnLineElement' type

                    continue;

                }

                DgnMultiTextElement asDgnMultiTextElement = element instanceof DgnMultiTextElement ? (DgnMultiTextElement)element : null;

                if (asDgnMultiTextElement != null)

                {

                    // Element of 'DgnMultiTextElement' type

                    continue;

                }

                DgnSurfaceElement asDgnSurfaceElement = element instanceof DgnSurfaceElement ? (DgnSurfaceElement)element : null;

                if (asDgnSurfaceElement != null)

                {

                    // Element of 'DgnSurfaceElement' type

                    continue;

                }

                DgnTextElement asDgnTextElement = element instanceof DgnTextElement ? (DgnTextElement)element : null;

                if (asDgnTextElement != null)

                {

                    // Element of 'DgnTextElement' type

                    continue;

                }

            }

CADJAVA-48 Find or search text in the DWG file

         // search for text in the file

        for (CadBaseEntity entity : cadImage.getEntities()) {

            // please, note: we iterate through CadText entities here, but some other entities

            // may contain text also, e.g. CadMText and others

            if (entity.getClass() == CadText.class) {

                CadText text = (CadText)entity;

                System.out.println(text.getDefaultValue());

            }

        }

        // search for text on specific layout - DWG case

//        // get all layout names and link each layout with corresponding block with entities

//        CadLayoutDictionary layouts = cadImage.getLayouts();

//        String[] layoutNames = new String[layouts.size()];

//        int i = 0;

//        for (CadLayout layout : layouts.getValues())

//        {

//            layoutNames[i++] = layout.getLayoutName();

//            System.out.println("Layout " + layout.getLayoutName() + " is found");

//

//            // find block, applicable for DWG only

//            CadBlockTableObject blockTableObjectReference = null;

//            for (CadBlockTableObject tableObject : cadImage.getBlocksTables())

//            {

//                if (String.CASE_INSENSITIVE_ORDER.compare(tableObject.getHardPointerToLayout(), layout.getObjectHandle()) == 0)

//                {

//                    blockTableObjectReference = tableObject;

//                    break;

//                }

//            }

//

//            // Collection cadBlockEntity.Entities contains information about all entities on specific layout

//            // if this collection has no elements it means layout is a copy of Model layout and contains the same entities

//            CadBlockEntity cadBlockEntity = cadImage.getBlockEntities().get_Item(blockTableObjectReference.getBlockName());

//        }

        // search for text on specific layout - DXF case

        //// get all layout names and separate entities between layouts by their soft owners

        CadLayoutDictionary layoutsDxf = cadImage.getLayouts();

        String[] layoutDxfNames = new String[layoutsDxf.size()];

        int j = 0;

        HashMap<String, ArrayList<CadBaseEntity>> entitiesOnLayouts = new HashMap<String, ArrayList<CadBaseEntity>>();

        for (CadLayout layout : layoutsDxf.getValues())

        {

            layoutDxfNames[j++] = layout.getLayoutName();

            System.out.println("Layout " + layout.getLayoutName() + " is found");

            entitiesOnLayouts.put(layout.getBlockTableRecordHandle(), new ArrayList<CadBaseEntity>());

        }

        for (CadBaseEntity entity : cadImage.getEntities())

        {

            entitiesOnLayouts.get(entity.getSoftOwner()).add(entity);

        }

        // export to pdf

        CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();

        rasterizationOptions.setPageWidth(1600);

        rasterizationOptions.setPageHeight(1600);

        rasterizationOptions.setAutomaticLayoutsScaling(true);

        rasterizationOptions.setCenterDrawing(true);

        // please, note: if cadBlockEntity collection mentioned above (for dwg) for selected layout or

        // entitiesOnLayouts collection by layout's BlockTableRecordHandle (for dxf) is empty

        // - export result file will be empty and you should draw Model layout instead

        rasterizationOptions.setLayouts(new String[] { "Layout1" });

        PdfOptions pdfOptions = new PdfOptions();

        pdfOptions.setVectorRasterizationOptions(rasterizationOptions);

        cadImage.save(outPath, pdfOptions);

CADJAVA-47 Support to retrieve block attribute values from within a dwg and its external references

 String fileName = "BlockRef.dwg";

CadImage image = (CadImage)Image.load(fileName);

boolean isExternalReferenceFoundCorrectly = ".\\Drawing1.dwg".equals(image.getBlockEntities().get_Item("Drawing1").getXRefPathName());

CADJAVA-44 Unable to access Face3D Objects in DXF file

 CadImage cadImage = (CadImage)Image.load("d101_20151112_v3.00t.dxf");

        for (CadBaseEntity baseEntity : cadImage.getEntities())

        {

            if (baseEntity.getClass() == Cad3DFace.class)

            {

                Cad3DFace cad3DFace = (Cad3DFace)baseEntity;

                // these properies should be available here

                //cad3DFace.getFirstCorner()

                //cad3DFace.getThirdCorner()

                //cad3DFace.getSecondCorner()

                //cad3DFace.getFourthCorner()

            }

        }