Contenido principal

SurfaceAsphericTolerance

R2026b

Tolerance for surface aspheric coefficient

Since R2026b

    Description

    Add-On Required: This feature requires the Optical Design and Simulation Library for Image Processing Toolbox add-on.

    A SurfaceAsphericTolerance object defines a tolerance for an aspheric coefficient of one or more surfaces of an optical system for use in sensitivity and Monte Carlo tolerance analysis.

    Creation

    Description

    tol = optics.tolerance.SurfaceAsphericTolerance(value,coeffIdx) creates a tolerance with the specified value for the aspheric coefficient at index coeffIdx. The tolerance applies to all top-level aspheric surfaces in an optical system, skipping spherical surfaces.

    tol = optics.tolerance.SurfaceAsphericTolerance(value,coeffIdx,TargetIndex=targetIdx) applies the tolerance to only the surfaces specified by targetIdx.

    example

    Input Arguments

    expand all

    Tolerance value, specified as a numeric scalar or a 1-by-2 numeric vector of the form [min max].

    • Scalar — Specifies a percentage tolerance relative to the nominal value. Percentage tolerances have no effect when the nominal value is zero.

    • 1-by-2 vector — Specifies an offset tolerance range [min max] relative to the nominal value.

    Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Aspheric coefficient index to which to apply the tolerance, specified as a positive integer.

    Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Surface indices to target, specified as a vector of positive integers. By default, the tolerance applies to all top-level surfaces. Tolerancing for surfaces of nested components is not supported.

    Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Properties

    expand all

    This property is read-only.

    Property to which the tolerance applies, represented as "Aspheric".

    Target surface indices, represented as a vector of positive integers. An empty value means the tolerance applies to all top-level surfaces.

    Aspheric coefficient index, represented as a positive integer.

    Data Types: double

    Tolerance range, represented as a 1-by-2 numeric vector of the form [min max]. When you specify value as a scalar, this is of the form [-value +value].

    This property is read-only.

    Tolerance interpretation type, represented as "Percentage" when you specify value as a scalar, or "Absolute" when you specify value as a 1-by-2 vector.

    Object Functions

    applyApply tolerance perturbation to optical system

    Examples

    collapse all

    Import an optical system into the workspace.

    opsys = zmximport("PhotographicLens.zmx");

    Define a surface aspheric tolerance ranging from -0.4 to 0.4 for the 5th aspheric coefficient for the 3rd top-level surface.

    tol = optics.tolerance.SurfaceAsphericTolerance(0.4,5,TargetIndex=3)
    tol = 
      SurfaceAsphericTolerance with properties:
    
          TargetProperty: "Aspheric"
             TargetIndex: 3
        CoefficientIndex: 5
          ToleranceRange: [-0.4000 0.4000]
           ToleranceType: "Percentage"
    
    

    Apply the tolerance to the optical system.

    newopsys = apply(tol,opsys);

    Version History

    Introduced in R2026b