Skip to main content

Zemax OpticStudio ZOS-API 2026 R1

Namespace ZOSAPI::Tools

Last update: 13.03.2026

Definition:

Usage (see Example 15 for a full sample)

C#

            // remove all variables and add a F# solve on last surface radius
            ILensDataEditor TheLDE = TheSystem.LDE;
            IOpticalSystemTools tools = TheSystem.Tools;
            tools.RemoveAllVariables();
            ILDERow Surface_Last = TheLDE.GetSurfaceAt(TheLDE.NumberOfSurfaces - 2);
            ISolveData Solver = Surface_Last.RadiusCell.CreateSolveType(ZOSAPI.Editors.SolveType.FNumber);
            Solver._S_FNumber.FNumber = 3.1415;
            Surface_Last.RadiusCell.SetSolveData(Solver);
            SampleFile = System.IO.Path.Combine(TheApplication.SamplesDir, @"API\CS\e15_Seq_Optimization\OptimizedFile1.zos");
            TheSystem.SaveAs(SampleFile);

C++

    // remove all variables and add a F# solve on last surface radius
    ILensDataEditorPtr TheLDE = TheSystem->LDE;
    //IOpticalSystemTools
    IOpticalSystemToolsPtr tools = TheSystem->Tools;
    tools->RemoveAllVariables();
    ILDERowPtr Surface_Last = TheLDE->GetSurfaceAt(TheLDE->NumberOfSurfaces - 2);
    ISolveDataPtr Solver = Surface_Last->RadiusCell->CreateSolveType(SolveType::SolveType_FNumber);
    Solver->_S_FNumber->FNumber = 3.1415;
    Surface_Last->RadiusCell->SetSolveData(Solver);
    SampleFile = _bstr_t(TheApplication->SamplesDir) + "\\API\\\Seq_Optimization\\\OptimizedFile1.zos";
    TheSystem->SaveAs(SampleFile);

Matlab

    % remove all variables and add a F# solve on last surface radius
    TheLDE = TheSystem.LDE;
    tools = TheSystem.Tools;
    tools.RemoveAllVariables();
    Surface_Last = TheLDE.GetSurfaceAt(TheLDE.NumberOfSurfaces - 2);
    Solver = Surface_Last.RadiusCell.CreateSolveType(ZOSAPI.Editors.SolveType.FNumber);
    Solver.S_FNumber_.FNumber = 3.1415;
    Surface_Last.RadiusCell.SetSolveData(Solver);
    SampleFile = System.String.Concat(TheApplication.SamplesDir, '\API\Matlab\e15_Seq_Optimization\OptimizedFile1.zos');
    TheSystem.SaveAs(SampleFile);

Python

    # remove all variables and add a F# solve on last surface radius
    TheLDE = TheSystem.LDE
    #IOpticalSystemTools
    tools = TheSystem.Tools
    tools.RemoveAllVariables()
    Surface_Last = TheLDE.GetSurfaceAt(TheLDE.NumberOfSurfaces - 2)
    Solver = Surface_Last.RadiusCell.CreateSolveType(ZOSAPI.Editors.SolveType.FNumber)
    Solver._S_FNumber.FNumber = 3.1415
    Surface_Last.RadiusCell.SetSolveData(Solver)
    SampleFile = TheApplication.SamplesDir + '\\API\\Python\\e15_Seq_Optimization\\OptimizedFile1.zos'
    TheSystem.SaveAs(SampleFile)

Child namespaces

Classes

Enumeration types

Enumeration type RayPatternOption

Definition:

enum RayPatternOption {
  XyFan = 0,
  XFan = 1,
  YFan = 2,
  ChiefAndRing = 3,
  List = 4,
  Grid = 6,
  ChiefAndMarginals = 8
}

Enumerator XyFan

Enumerator XFan

Enumerator YFan

Enumerator ChiefAndRing

Enumerator List

Enumerator Grid

Enumerator ChiefAndMarginals

Enumeration type CriticalRayType

Definition:

enum CriticalRayType {
  Chief = 0,
  Marginal = 1,
  Grid = 2,
  Ring = 3,
  Y_Fan = 4,
  X_Fan = 5,
  XY_Fan = 6,
  List = 7
}

Enumerator Chief

Enumerator Marginal

Enumerator Grid

Enumerator Ring

Enumerator Y_Fan

Enumerator X_Fan

Enumerator XY_Fan

Enumerator List

Enumeration type MaterialFormulas

Definition:

enum MaterialFormulas {
  Schott = 1,
  Sellmeier1 = 2,
  Herzberger = 3,
  Sellmeier2 = 4,
  Conrady = 5,
  Sellmeier3 = 6,
  Handbook1 = 7,
  Handbook2 = 8,
  Sellmeier4 = 9,
  Extended = 10,
  Sellmeier5 = 11,
  Extended2 = 12,
  Extended3 = 13
}

Enumerator Schott

Enumerator Sellmeier1

Enumerator Herzberger

Enumerator Sellmeier2

Enumerator Conrady

Enumerator Sellmeier3

Enumerator Handbook1

Enumerator Handbook2

Enumerator Sellmeier4

Enumerator Extended

Enumerator Sellmeier5

Enumerator Extended2

Enumerator Extended3

Enumeration type MaterialStatuses

Definition:

enum MaterialStatuses {
  Standard = 0,
  Preferred = 1,
  Obsolete = 2,
  Special = 3,
  Melt = 4
}

Enumerator Standard

Enumerator Preferred

Enumerator Obsolete

Enumerator Special

Enumerator Melt

Enumeration type VertexOrder

Definition:

enum VertexOrder {
  First,
  Second,
  Third
}

Enumerator First

Enumerator Second

Enumerator Third

Enumeration type HPCEnvironments

Definition:

enum HPCEnvironments {
  OnPremise = 0,
  AWSKubernetes,
  AzureKubernetes
}

Enumerator OnPremise

Enumerator AWSKubernetes

Enumerator AzureKubernetes

Enumeration type HPCNodeSize

Definition:

enum HPCNodeSize {
  Default = 0,
  Tiny = 1,
  Small = 2,
  Medium = 3,
  Large = 4,
  XLarge = 5
}

Enumerator Default

Enumerator Tiny

Enumerator Small

Enumerator Medium

Enumerator Large

Enumerator XLarge

Enumeration type HPCRunState

Definition:

enum HPCRunState {
  NotRunning = 0,
  Initializing,
  ClusterAllocating,
  UploadingData,
  Queued,
  RunStarting,
  WaitingForResults,
  Complete
}

Enumerator NotRunning

Enumerator Initializing

Enumerator ClusterAllocating

Enumerator UploadingData

Enumerator Queued

Enumerator RunStarting

Enumerator WaitingForResults

Enumerator Complete

Enumeration type RunStatus

Definition:

enum RunStatus {
  Completed,
  FailedToStart,
  TimedOut,
  InvalidTimeout
}

Enumerator Completed

The tool completed running.

Enumerator FailedToStart

The tool either failed to start, or a wait was requested on a tool that was not already running.

Enumerator TimedOut

The time out value was exceeded; note that the tool will continue running.

Enumerator InvalidTimeout

An invalid timeout value was specified.

Connect with Ansys