Interface ZOSAPI::Editors::IEditorCell
Last update: 13.03.2026
Definition:
Interface used to get and set data for a specific cell in an editor. This interface can be accessed via:
IEditorRow
ILDERow
INCERow
Members
- Col
- CreateSolveType
- DataType
- DoubleValue
- FillAvailableSolveTypes
- GetAvailableSolveTypes
- GetNumberOfSolveTypes
- GetSolveData
- Header
- IntegerValue
- IsActive
- IsReadOnly
- IsSolveTypeSupported
- MakeSolveFixed
- MakeSolveVariable
- Row
- SetSolveData
- Solve
- Value
Properties
Property Row
Definition:
IEditorRow ZOSAPI.Editors.IEditorCell.Row
Gets the parent row for this cell.
The row.
Return type: IEditorRow
Property Col
Definition:
int ZOSAPI.Editors.IEditorCell.Col
Gets the column index for this cell.
The cell column index.
Return type: int
Property IsActive
Definition:
bool ZOSAPI.Editors.IEditorCell.IsActive
Gets a value indicating whether this cell is currently active (i.e. in use by the current system).
true if this instance is active; otherwise, false.
Return type: bool
Property IsReadOnly
Definition:
bool ZOSAPI.Editors.IEditorCell.IsReadOnly
Gets a value indicating whether this cell can be modified.
true if this instance is read only; otherwise, false.
Return type: bool
Property Header
Definition:
string ZOSAPI.Editors.IEditorCell.Header
Gets the column header for this cell.
The cell header.
Return type: string
Property DataType
Definition:
CellDataType ZOSAPI.Editors.IEditorCell.DataType
Gets the data type of this cell.
The type of this cell.
Return type: CellDataType
Property IntegerValue
Definition:
int ZOSAPI.Editors.IEditorCell.IntegerValue
Gets or sets the integer value of this cell. Note that if DataType is not CellDataType.Integer, attempting to get or set a value in this way will result in an exception.
Usage (see Example 21 for a full sample)
C#
// Set 1st object as a Source File
INCERow Object_1 = TheNCE.GetObjectAt(1);
IObjectTypeSettings Typeset_SourceFile = Object_1.GetObjectTypeSettings(ObjectType.SourceFile);
Typeset_SourceFile.FileName1 = "RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT";
Object_1.ChangeType(Typeset_SourceFile);
Object_1.GetObjectCell(ObjectColumn.Par1).IntegerValue = 5;
Object_1.GetObjectCell(ObjectColumn.Par2).IntegerValue = 1000;
Object_1.GetObjectCell(ObjectColumn.Par3).DoubleValue = 2.485572;
Object_1.GetObjectCell(ObjectColumn.Par8).DoubleValue = 0.47;
Object_1.GetObjectCell(ObjectColumn.Par9).DoubleValue = 0.47;
C++
// Set 1st object as a Source File
INCERowPtr Object_1 = TheNCE->GetObjectAt(1);
IObjectTypeSettingsPtr Typeset_SourceFile = Object_1->GetObjectTypeSettings(ObjectType_SourceFile);
Typeset_SourceFile->FileName1 = "RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT";
Object_1->ChangeType(Typeset_SourceFile);
Object_1->GetObjectCell(ObjectColumn_Par1)->IntegerValue = 5;
Object_1->GetObjectCell(ObjectColumn_Par2)->IntegerValue = 1000;
Object_1->GetObjectCell(ObjectColumn_Par3)->DoubleValue = 2.485572;
Object_1->GetObjectCell(ObjectColumn_Par8)->DoubleValue = 0.47;
Object_1->GetObjectCell(ObjectColumn_Par9)->DoubleValue = 0.47;
Matlab
% Set 1st object as a Source File
Object_1 = TheNCE.GetObjectAt(1);
Typeset_SourceFile = Object_1.GetObjectTypeSettings(ZOSAPI.Editors.NCE.ObjectType.SourceFile);
Typeset_SourceFile.FileName1 = 'RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT';
Object_1.ChangeType(Typeset_SourceFile);
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par1).IntegerValue = 5;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par2).IntegerValue = 1000;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par3).DoubleValue = 2.485572;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par8).DoubleValue = 0.47;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par9).DoubleValue = 0.47;
Python
# Set 1st object as a Source File
Object_1 = TheNCE.GetObjectAt(1)
Typeset_SourceFile = Object_1.GetObjectTypeSettings(ZOSAPI.Editors.NCE.ObjectType.SourceFile)
Typeset_SourceFile.FileName1 = 'RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT'
Object_1.ChangeType(Typeset_SourceFile)
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par1).IntegerValue = 5
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par2).IntegerValue = 1000
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par3).DoubleValue = 2.485572
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par8).DoubleValue = 0.47
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par9).DoubleValue = 0.47
The integer value.
Exceptions:
- ArgumentException:
Return type: int
Property DoubleValue
Definition:
double ZOSAPI.Editors.IEditorCell.DoubleValue
Gets or sets the double precision value of this cell. Note that if DataType is not CellDataType.Double, attempting to get or set a value in this way will result in an exception.
Usage (see Example 21 for a full sample)
C#
// Set 1st object as a Source File
INCERow Object_1 = TheNCE.GetObjectAt(1);
IObjectTypeSettings Typeset_SourceFile = Object_1.GetObjectTypeSettings(ObjectType.SourceFile);
Typeset_SourceFile.FileName1 = "RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT";
Object_1.ChangeType(Typeset_SourceFile);
Object_1.GetObjectCell(ObjectColumn.Par1).IntegerValue = 5;
Object_1.GetObjectCell(ObjectColumn.Par2).IntegerValue = 1000;
Object_1.GetObjectCell(ObjectColumn.Par3).DoubleValue = 2.485572;
Object_1.GetObjectCell(ObjectColumn.Par8).DoubleValue = 0.47;
Object_1.GetObjectCell(ObjectColumn.Par9).DoubleValue = 0.47;
C++
// Set 1st object as a Source File
INCERowPtr Object_1 = TheNCE->GetObjectAt(1);
IObjectTypeSettingsPtr Typeset_SourceFile = Object_1->GetObjectTypeSettings(ObjectType_SourceFile);
Typeset_SourceFile->FileName1 = "RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT";
Object_1->ChangeType(Typeset_SourceFile);
Object_1->GetObjectCell(ObjectColumn_Par1)->IntegerValue = 5;
Object_1->GetObjectCell(ObjectColumn_Par2)->IntegerValue = 1000;
Object_1->GetObjectCell(ObjectColumn_Par3)->DoubleValue = 2.485572;
Object_1->GetObjectCell(ObjectColumn_Par8)->DoubleValue = 0.47;
Object_1->GetObjectCell(ObjectColumn_Par9)->DoubleValue = 0.47;
Matlab
% Set 1st object as a Source File
Object_1 = TheNCE.GetObjectAt(1);
Typeset_SourceFile = Object_1.GetObjectTypeSettings(ZOSAPI.Editors.NCE.ObjectType.SourceFile);
Typeset_SourceFile.FileName1 = 'RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT';
Object_1.ChangeType(Typeset_SourceFile);
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par1).IntegerValue = 5;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par2).IntegerValue = 1000;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par3).DoubleValue = 2.485572;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par8).DoubleValue = 0.47;
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par9).DoubleValue = 0.47;
Python
# Set 1st object as a Source File
Object_1 = TheNCE.GetObjectAt(1)
Typeset_SourceFile = Object_1.GetObjectTypeSettings(ZOSAPI.Editors.NCE.ObjectType.SourceFile)
Typeset_SourceFile.FileName1 = 'RAYFILE_LB_T67C_100K_190608_ZEMAX.DAT'
Object_1.ChangeType(Typeset_SourceFile)
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par1).IntegerValue = 5
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par2).IntegerValue = 1000
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par3).DoubleValue = 2.485572
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par8).DoubleValue = 0.47
Object_1.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par9).DoubleValue = 0.47
The double precision value.
Exceptions:
- ArgumentException:
Return type: double
Property Value
Definition:
string ZOSAPI.Editors.IEditorCell.Value
Gets or sets the value of this cell. Note that this method can be used regardless of the DataType.
Usage (see Example 21 for a full sample)
C#
// Set 3rd object as Cylinder Volume
INCERow Object_3 = TheNCE.GetObjectAt(3);
IObjectTypeSettings Typeset_CylinderVolume = Object_3.GetObjectTypeSettings(ObjectType.CylinderVolume);
Object_3.ChangeType(Typeset_CylinderVolume);
// Set positions, material and parameters
Object_3.GetObjectCell(ObjectColumn.ZPosition).DoubleValue = 0.8;
Object_3.GetObjectCell(ObjectColumn.Material).Value = "PMMA";
Object_3.GetObjectCell(ObjectColumn.Par1).DoubleValue = 1.2;
Object_3.GetObjectCell(ObjectColumn.Par2).DoubleValue = 0.1;
Object_3.GetObjectCell(ObjectColumn.Par3).DoubleValue = 1.2;
C++
// Set 3rd object as Cylinder Volume
INCERowPtr Object_3 = TheNCE->GetObjectAt(3);
IObjectTypeSettingsPtr Typeset_CylinderVolume = Object_3->GetObjectTypeSettings(ObjectType_CylinderVolume);
Object_3->ChangeType(Typeset_CylinderVolume);
// Set positions, material and parameters
Object_3->GetObjectCell(ObjectColumn_ZPosition)->DoubleValue = 0.8;
Object_3->GetObjectCell(ObjectColumn_Material)->Value = "PMMA";
Object_3->GetObjectCell(ObjectColumn_Par1)->DoubleValue = 1.2;
Object_3->GetObjectCell(ObjectColumn_Par2)->DoubleValue = 0.1;
Object_3->GetObjectCell(ObjectColumn_Par3)->DoubleValue = 1.2;
Matlab
% Set 3rd object as Cylinder Volume
Object_3 = TheNCE.GetObjectAt(3);
Typeset_CylinderVolume = Object_3.GetObjectTypeSettings(ZOSAPI.Editors.NCE.ObjectType.CylinderVolume);
Object_3.ChangeType(Typeset_CylinderVolume);
% Set positions, material and parameters
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.ZPosition).DoubleValue = 0.8;
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Material).Value = 'PMMA';
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par1).DoubleValue = 1.2;
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par2).DoubleValue = 0.1;
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par3).DoubleValue = 1.2;
Python
# Set 3rd object as Cylinder Volume
Object_3 = TheNCE.GetObjectAt(3)
Typeset_CylinderVolume = Object_3.GetObjectTypeSettings(ZOSAPI.Editors.NCE.ObjectType.CylinderVolume)
Object_3.ChangeType(Typeset_CylinderVolume)
# Set positions, material and parameters
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.ZPosition).DoubleValue = 0.8
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Material).Value = 'PMMA'
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par1).DoubleValue = 1.2
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par2).DoubleValue = 0.1
Object_3.GetObjectCell(ZOSAPI.Editors.NCE.ObjectColumn.Par3).DoubleValue = 1.2
The cell value.
Return type: string
Property Solve
Definition:
SolveType ZOSAPI.Editors.IEditorCell.Solve
Gets the type of the current solve.
The solve.
Return type: SolveType
Public functions
Function GetSolveData
ISolveData ZOSAPI.Editors.IEditorCell.GetSolveData()
Gets the current solve data. Use CreateSolveType to retrieve an interface that can be used to change the solve type. Note that the solve will not be updated until SetSolveData is called with the new settings.
Returns:
Return type: ISolveData
Function GetNumberOfSolveTypes
int ZOSAPI.Editors.IEditorCell.GetNumberOfSolveTypes()
Gets the number of solve types allowed for this specific editor cell.
Returns:
Return type: int
Function IsSolveTypeSupported
bool ZOSAPI.Editors.IEditorCell.IsSolveTypeSupported(SolveType st)
Determines whether the specified solve type is supported by this specific cell.
Parameters:
- st: The solve type.
Returns:
true if the input solve type can be used; otherwise false.
Parameters:
- SolveType st
Return type: bool
Function GetAvailableSolveTypes
SolveType[] ZOSAPI.Editors.IEditorCell.GetAvailableSolveTypes()
Gets the available solve types for this cell.
Returns:
Return type: SolveType[]
Function FillAvailableSolveTypes
void ZOSAPI.Editors.IEditorCell.FillAvailableSolveTypes(int Length, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)][In, Out]SolveType[] solves)
Alternate method of retrieving available cell types, accessible via COM.
Parameters:
- Length: The length of the input array (must be equal to GetNumberOfSolveTypes.
- solves: The solve type array to fill. Note that this must be allocated before calling this method.
Parameters:
- int Length
- [In, Out] SolveType[] solves
Return type: void
Function CreateSolveType
ISolveData ZOSAPI.Editors.IEditorCell.CreateSolveType(SolveType type)
Creates the solve type settings for the specified solve type. Note that SetSolveData must be used to actually update the system with the solve settings.
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)
Parameters:
- type: The solve type.
Returns:
Parameters:
- SolveType type
Return type: ISolveData
Function SetSolveData
SolveStatus ZOSAPI.Editors.IEditorCell.SetSolveData(ISolveData Data)
Updates the system with the new solve type settings (see also CreateSolveType and GetSolveData).
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)
Parameters:
- Data: The new solve settings.
Returns:
A value indicating whether or not changing the solve settings was successful.
Parameters:
- ISolveData Data
Return type: SolveStatus
Function MakeSolveVariable
bool ZOSAPI.Editors.IEditorCell.MakeSolveVariable()
Sets the solve type to SolveType.Variable.
Usage (see Example 15 for a full sample)
C#
//Thickness 2, 5, 6, 9, and 11 variable
Surface2.ThicknessCell.MakeSolveVariable();
Surface5.ThicknessCell.MakeSolveVariable();
Surface6.ThicknessCell.MakeSolveVariable();
Surface9.ThicknessCell.MakeSolveVariable();
Surface11.ThicknessCell.MakeSolveVariable();
C++
// Thickness 2, 5, 6, 9, and 11 variable
Surface2->ThicknessCell->MakeSolveVariable();
Surface5->ThicknessCell->MakeSolveVariable();
Surface6->ThicknessCell->MakeSolveVariable();
Surface9->ThicknessCell->MakeSolveVariable();
Surface11->ThicknessCell->MakeSolveVariable();
Matlab
%Thickness 2, 5, 6, 9, and 11 variable
Surface2.ThicknessCell.MakeSolveVariable();
Surface5.ThicknessCell.MakeSolveVariable();
Surface6.ThicknessCell.MakeSolveVariable();
Surface9.ThicknessCell.MakeSolveVariable();
Surface11.ThicknessCell.MakeSolveVariable();
Python
# Thickness 2, 5, 6, 9, and 11 variable
Surface2.ThicknessCell.MakeSolveVariable()
Surface5.ThicknessCell.MakeSolveVariable()
Surface6.ThicknessCell.MakeSolveVariable()
Surface9.ThicknessCell.MakeSolveVariable()
Surface11.ThicknessCell.MakeSolveVariable()
Returns:
true if the change succeeded; otherwise, false
Return type: bool
Function MakeSolveFixed
bool ZOSAPI.Editors.IEditorCell.MakeSolveFixed()
Sets the solve type to SolveType.Fixed.
Returns:
true if the change succeeded; otherwise, false
Return type: bool