    

 ## On this page

  

 

 # Example 21 - Matlab 

 Last update: 19.09.2025 

# <a class="anchor" id="ex21_s4"></a>Matlab

function [ r ] = MATLABStandalone_White_LED_Phosphor( args )

 

if ~exist('args', 'var')

 args = [];

end

 

% Initialize the OpticStudio connection

TheApplication = InitConnection();

if isempty(TheApplication)

 % failed to initialize a connection

 r = [];

else

 try

 r = BeginApplication(TheApplication, args);

 CleanupConnection(TheApplication);

 catch err

 CleanupConnection(TheApplication);

 rethrow(err);

 end

end

end

 

 

function [r] = BeginApplication(TheApplication, args)

 

import [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).*;

 

 % creates a new API directory

 apiPath = System.String.Concat(TheApplication.SamplesDir, '\API\Matlab');

 if (exist(char(apiPath)) == 0) mkdir(char(apiPath)); end;

 

 % Load a sample file

 TheSystem = TheApplication.PrimarySystem;

 

 %! [e21s01_m]

 % Create a new non-sequential file

 TheSystem.New(false);

 TheSystem.MakeNonSequential();

 % Add new catalog MISC

 TheSystem.SystemData.MaterialCatalogs.AddCatalog('MISC');

 % Set Wave \#1 to 0.47 micron

 TheSystem.[SystemData](namespace_z_o_s_a_p_i_1_1_system_data.xhtml).Wavelengths.GetWavelength(1).Wavelength = 0.47;

 % Use lumens as the source unit

 TheSystem.SystemData.Units.SourceUnits = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[SystemData](namespace_z_o_s_a_p_i_1_1_system_data.xhtml).ZemaxSourceUnits.Lumens;

 %! [e21s01_m]

 

 %! [e21s02_m]

 % Add 4 more objects

 TheNCE = TheSystem.NCE;

 TheNCE.AddObject();

 TheNCE.AddObject();

 TheNCE.AddObject();

 TheNCE.AddObject();

 %! [e21s02_m]

 

 %! [e21s03_m]

 % Set 1st object as a Source File

 Object_1 = TheNCE.GetObjectAt(1);

 Typeset_SourceFile = Object_1.GetObjectTypeSettings([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectType.SourceFile);

 Typeset_SourceFile.FileName1 = 'RAYFILE\_LB\_T67C\_100K\_190608\_ZEMAX.DAT';

 Object_1.ChangeType(Typeset_SourceFile);

 Object_1.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par1).IntegerValue = 5;

 Object_1.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par2).IntegerValue = 1000;

 Object_1.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par3).DoubleValue = 2.485572;

 Object_1.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par8).DoubleValue = 0.47;

 Object_1.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par9).DoubleValue = 0.47;

 %! [e21s03_m]

 

 %! [e21s04_m]

 % Edit source data of object 1

 % SourcesData includes all the settings in Object Properties &gt; Sources

 Object_1.SourcesData.PrePropagation = -0.2;

 Object_1.SourcesData.ArrayType = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ArrayMode.Rectangular;

 Object_1.SourcesData.ArrayNumberX = 5;

 Object_1.SourcesData.ArrayNumberY = 5;

 %! [e21s04_m]

 

 %! [e21s05_m]

 % Set 2nd object as CAD Part: STEP/IGES/SAT

 Object_2 = TheNCE.GetObjectAt(2);

 Typeset_CADPartSTEPIGESSAT = Object_2.GetObjectTypeSettings([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectType.CADPartSTEPIGESSAT);

 Typeset_CADPartSTEPIGESSAT.FileName1 = 'LB\_T67C\_190608\_GEOMETRY.STEP';

 Object_2.ChangeType(Typeset_CADPartSTEPIGESSAT);

 %! [e21s05_m]

 

 %! [e21s06_m]

 % Set Rays Ignore Object = Always for object 2

 % TypeData includes all settings in Object Properties &gt; Type

 Object_2.TypeData.RaysIgnoreObject = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).RaysIgnoreObjectType.Always;

 %! [e21s06_m]

 

 %! [e21s07_m]

 % Set 3rd object as Cylinder Volume

 Object_3 = TheNCE.GetObjectAt(3);

 Typeset_CylinderVolume = Object_3.GetObjectTypeSettings([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectType.CylinderVolume);

 Object_3.ChangeType(Typeset_CylinderVolume);

 % Set positions, material and parameters

 Object_3.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.ZPosition).DoubleValue = 0.8;

 Object_3.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Material).Value = 'PMMA';

 Object_3.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par1).DoubleValue = 1.2;

 Object_3.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par2).DoubleValue = 0.1;

 Object_3.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par3).DoubleValue = 1.2;

 %! [e21s07_m]

 

 %! [e21s08_m]

 % Make Face 1 of object 3 has Lambertian scattering properties

 % To set scatter properties, you need to first create "ScatteringSettings" by "CreateScatterModelSettings()" method.

 % And then assign is to object 3 by ChangeScatterModelSettings().

 ScatType_Lam = Object_3.CoatScatterData.GetFaceData(1).CreateScatterModelSettings([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectScatteringTypes.Lambertian);

 ScatType_Lam.S_Lambertian_.ScatterFraction = 1;

 Object_3.CoatScatterData.GetFaceData(1).ChangeScatterModelSettings(ScatType_Lam);

 Object_3.CoatScatterData.GetFaceData(1).NumberOfRays = 1;

 %! [e21s08_m]

 

 %! [e21s09_m]

 % Make object 3 a volume scattering material

 % VolumePhysicsData includes all settings in Object Properties &gt; VolumePhysics.

 % Use Photoluminescence model

 Object_3.VolumePhysicsData.Model = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).VolumePhysicsModelType.PhotoluminescenceModel;

 Photo_setting = Object_3.VolumePhysicsData.ModelSettings.S_PhotoluminescenceModel_;

 % Use Standard algorithm

 Photo_setting.BasicAlgorithm = false;

 % Set absorption, emission and quantum yield files

 Photo_setting.AbsorptionFile = '\_sample\_3.ZAS';

 Photo_setting.EmissionFile = '\_sample\_3.ZES';

 Photo_setting.QuantumYield = '\_sample\_3.ZQE';

 % Set efficiency spectrum to quantum yield

 Photo_setting.EfficiencySpectrum = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).EfficiencySpectrumType.QuantumYield;

 % Set photoluminescence parameters

 Photo_setting.ExtinctionCoefficient = 1E+05;

 Photo_setting.ExtinctionWavelength = 0.47;

 Photo_setting.PLDensity = 3.1E+17;

 % Disable Mie Model

 Photo_setting.ConsiderMieScattering = false;

 %! [e21s09_m]

 

 %! [e21s10_m]

 % Set 4th object as Standard Lens

 Object_4 = TheNCE.GetObjectAt(4);

 Typeset_StandardLens = Object_4.GetObjectTypeSettings([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectType.StandardLens);

 Object_4.ChangeType(Typeset_StandardLens);

 % Set positions

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.ZPosition).DoubleValue = 0.9;

 % To set solve for any cell, you need to first create a "ISolveData" by "CreateSolveType()" method.

 % And then assign it to the cell.

 Solve_ObjPick = Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Material).CreateSolveType([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).SolveType.ObjectPickup);

 Solve_ObjPick.S_ObjectPickup_.Object = 3;

 % Set parameters

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Material).SetSolveData(Solve_ObjPick);

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par3).DoubleValue = 1.2;

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par4).DoubleValue = 1.2;

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par5).DoubleValue = 1.2;

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par6).DoubleValue = -1.2;

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par8).DoubleValue = 1.2;

 Object_4.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par9).DoubleValue = 1.2;

 %! [e21s10_m]

 

 %! [e21s11_m]

 % Set 5th object as Detector Color

 Object_5 = TheNCE.GetObjectAt(5);

 Typeset_DetectorColor = Object_5.GetObjectTypeSettings([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectType.DetectorColor);

 Object_5.ChangeType(Typeset_DetectorColor);

 % Set positions, material and parameters

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.ZPosition).DoubleValue = 7;

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Material).Value = 'ABSORB';

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par1).DoubleValue = 5;

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par2).DoubleValue = 5;

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par3).IntegerValue = 150;

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par4).IntegerValue = 150;

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par6).IntegerValue = 4;

 Object_5.GetObjectCell([ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml).[NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml).ObjectColumn.Par7).IntegerValue = 3;

 %! [e21s11_m]

 

 %! [e21s12_m]

 % Open NSC Ray Trace tool and turn on Scatter NSC Rays and Ignore Errors

 RayTraceControl = TheSystem.Tools.OpenNSCRayTrace();

 RayTraceControl.SplitNSCRays = false;

 RayTraceControl.ScatterNSCRays = true;

 RayTraceControl.UsePolarization = false;

 RayTraceControl.IgnoreErrors = true;

 RayTraceControl.SaveRays = false;

 

 % Trace rays and report the progress when it's running.

 % Note that, instead an RunAndWaitCompletion(), Run() is used so that

 % the code will just go on without waiting the tracing finishs.

 % We will check the progress of tracing by a while loop.

 % You can check the properties "Progress", which is percentage integer data (1-100)

 

 fprintf('Starting Tracing... \n');

 RayTraceControl.ClearDetectors(0);

 RayTraceControl.Run();

 n = 0;

 while (RayTraceControl.Progress ~= 100)

 pause(1);

 fprintf(repmat('\b',1,n));

 msg = char(System.String.Concat(num2str(RayTraceControl.Progress), '%%'));

 fprintf(msg);

 n = numel(msg) - 1;

 end

 RayTraceControl.Close();

 fprintf('\nFinished!\n');

 %! \[e21s12\_m\]

 

 %! \[e21s13\_m\]

 % Open two detector viewers for showing results in angle space and position space

 % Note that not all analyses have a specific settings interface.

 TheAnalysis = TheSystem.Analyses;

 Det1 = TheAnalysis.New\_DetectorViewer();

 Det\_Set1 = Det1.GetSettings();

 Det\_Set1.ShowAs = ZOSAPI.Analysis.DetectorViewerShowAsTypes.TrueColor;

 Det\_Set1.Smoothing = 3;

 Det1.ApplyAndWaitForCompletion();

 

 Det2 = TheAnalysis.New\_DetectorViewer();

 Det\_Set2 = Det2.GetSettings();

 Det\_Set2.ShowAs = ZOSAPI.Analysis.DetectorViewerShowAsTypes.TrueColor;

 Det\_Set2.Smoothing = 3;

 Det\_Set2.DataType = ZOSAPI.Analysis.DetectorViewerShowDataTypes.AngleSpace;

 Det2.ApplyAndWaitForCompletion();

 %! \[e21s13\_m\]

 

 TheSystem.SaveAs(System.String.Concat(TheApplication.SamplesDir, '\API\Matlab\e21_White_LED_Phosphor.zos'));

 

 r = \[\];

end

 

function app = InitConnection()

 

import System.Reflection.\*;

 

% Find the installed version of OpticStudio.

zemaxData = winqueryreg('HKEY_CURRENT_USER', 'Software\Zemax', 'ZemaxRoot');

NetHelper = strcat(zemaxData, '\ZOS-API\Libraries\ZOSAPI_NetHelper.dll');

% Note -- uncomment the following line to use a custom NetHelper path

% NetHelper = 'C:\Users\Documents\Zemax\ZOS-API\Libraries\ZOSAPI_NetHelper.dll';

NET.addAssembly(NetHelper);

 

success = ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize();

% Note -- uncomment the following line to use a custom initialization path

% success = ZOSAPI_NetHelper.ZOSAPI_Initializer.Initialize('C:\Program Files\OpticStudio\');

if success == 1

 LogMessage(strcat('Found OpticStudio at: ', char(ZOSAPI_NetHelper.ZOSAPI_Initializer.GetZemaxDirectory())));

else

 app = [];

 return;

end

 

% Now load the ZOS-API assemblies

NET.addAssembly(AssemblyName('ZOSAPI_Interfaces'));

NET.addAssembly(AssemblyName('ZOSAPI'));

 

% Create the initial connection class

TheConnection = [ZOSAPI](namespace_z_o_s_a_p_i.xhtml).[ZOSAPI\_Connection](class_z_o_s_a_p_i_1_1_z_o_s_a_p_i___connection.xhtml)();

 

% Attempt to create a Standalone connection

 

% NOTE - if this fails with a message like 'Unable to load one or more of

% the requested types', it is usually caused by try to connect to a 32-bit

% version of OpticStudio from a 64-bit version of MATLAB (or vice-versa).

% This is an issue with how MATLAB interfaces with .NET, and the only

% current workaround is to use 32- or 64-bit versions of both applications.

app = TheConnection.CreateNewApplication();

if isempty(app)

 HandleError('An unknown connection error occurred!');

end

if ~app.IsValidLicenseForAPI

 HandleError('License check failed!');

 app = [];

end

 

end

 

function LogMessage(msg)

disp(msg);

end

 

function HandleError(error)

ME = MXException(error);

throw(ME);

end

 

function CleanupConnection(TheApplication)

% Note - this will close down the connection.

 

% If you want to keep the application open, you should skip this step

% and store the instance somewhere instead.

TheApplication.CloseApplication();

end

 

 

[ZOSAPI.ZOSAPI\_Connection](class_z_o_s_a_p_i_1_1_z_o_s_a_p_i___connection.xhtml)

**Definition:** ZemaxService.cs:198



[ZOSAPI.Editors.NCE](namespace_z_o_s_a_p_i_1_1_editors_1_1_n_c_e.xhtml)

**Definition:** InterfacesNCE.cs:19



[ZOSAPI.Editors](namespace_z_o_s_a_p_i_1_1_editors.xhtml)

**Definition:** InterfacesEditors.cs:12



[ZOSAPI.SystemData](namespace_z_o_s_a_p_i_1_1_system_data.xhtml)

**Definition:** InterfacesSE.cs:11



[ZOSAPI](namespace_z_o_s_a_p_i.xhtml)

The ZOSAPI namespace contains classes for initially connecting to zemax. See also ZOSAPI_Connection,...

**Definition:** IAS_FieldCurvatureAndDistortion.cs:5