Browse our Products

Aspose.3D for Python via .NET 24.8 Release Notes

Improvements and Changes

KeySummaryCategory
THREEDNET-1576Expose internal axis system utilities to user.Task
THREEDNET-1579Implement full XZ stream supportTask
THREEDNET-1578JT version 9.5 metadataImprovement
THREEDNET-1580Add PMI support for JT 9 formatImprovement
THREEDNET-1575Converted GLB Model RotationBug fixing
THREEDNET-1577Error “cannot open this file” for 3mf fileBug fixing

API changes

Added class aspose.threed.formats.JtLoadOptions

The new added JtLoadOptions allows you to instruct Aspose.3D to parse JT file’s meta data and save it as standard Aspose.3D’s properties.

Sample code

    opt = JtLoadOptions()
    opt.load_properties = True
    s = Scene.from_file("test.jt", opt)
    
    for prop in s.root_node.child_nodes[0].properties:
        print(f"{prop.name} = {prop.value}")

Added members to class aspose.threed.AxisSystem:

        def transform_to(self, target_system : aspose.threed.AxisSystem) -> aspose.threed.utilities.Matrix4:
                ...

        @classmethod
        def from_asset_info(clz, asset_info : aspose.threed.AssetInfo) -> aspose.threed.AxisSystem:
                ...

Sample code

The new added method allows you to create a transformation matrix to convert vector from one axis system to another axis system.

    scene = Scene.from_file("test.fbx")
    # Create a new axis sytem with up vector to +Y axis and front to +X axis.
    target = AxisSystem(CoordinateSystem.LEFT_HANDED, Axis.Y_AXIS, Axis.X_AXIS)
    # Create a transform matrix from scene's current axis sytem to our custom axis sytem
    transform = AxisSystem.from_asset_info(scene.assetInfo).transform_to(target)
    # Apply the transform to all geometries in the scene.
    PolygonModifier.apply_transform(scene.root_node, transform)

Added members to class aspose.threed.Entities.PolygonModifier:

        @classmethod
        def apply_transform(clz, node : aspose.threed.Node, transform : aspose.threed.utilities.Matrix4) -> None:
                ...

This new method allows you to apply a matrix to all control points of all descendent geometries.

Sample code

    scene = Scene.from_file("test.fbx")
    # Create a new axis sytem with up vector to +Y axis and front to +X axis.
    target = AxisSystem(CoordinateSystem.LEFT_HANDED, Axis.Y_AXIS, Axis.X_AXIS)
    # Create a transform matrix from scene's current axis sytem to our custom axis sytem
    transform = AxisSystem.from_asset_info(scene.assetInfo).transform_to(target)
    # Apply the transform to all geometries in the scene.
    PolygonModifier.apply_transform(scene.root_node, transform)