Navigation: Scripting Reference Manual > Functions & Subroutines > SetZernikeSurfIthAsphCoef

 

SetZernikeSurfIthAsphCoef

 

Contact Us: fredsupport@photonengr.com

 

Description

This subroutine sets the I'th aspheric coefficient of a given Zernike surface.

 

Syntax

SetZernikeSurfIthAsphCoef n, indx, coef

 

Parameters

n As Long

Node number of the Zernike surface being modified.

 

indx As Long

The index of the aspheric coefficient whose value is being set (base 1).  Index values range from 1 to 8.

 

coef As Double

The new value of the aspheric coefficient at the given index.

 

 

Example

The following example creates a Zernike surface as the child of an existing custom element.  Once the surface has been created, the base surface parameters, interpretation flag and aspheric coefficients are specified.

 

Sub Main( )

 

    ' parent entity for the surface

    Dim parent_node As Long

    parent_node = FindFullName( "Geometry.Elem" )

 

    ' initialize and create surface

    Dim tEnt As T_ENTITY

    InitEntity( tEnt )

    tEnt.parent = parent_node

 

    Dim semiX As Double, semiY As Double

    semiX = 2

    semiY = 2

 

    Dim surf_node As Long

    Dim coefs(5) As Double

    coefs(0) = 0.001

    coefs(1) = 0.002

    coefs(3) = 0.003

    coefs(4) = 0.004

    coefs(5) = 0.005

    surf_node = AddZernikeSurf( tEnt, semiX, semiY, coefs() )

 

    ' set base surface parameters

    Dim b_curv As Double, b_con As Double, dAng As Double, dXoffset As Double, dYoffset As Double

    b_curv = 0.02 : b_con = -1

    dAng = 5 : dXoffset = 1 : dYoffset = 2

    SetZernikeSurfBaseConic( surf_node, b_curv, b_con )

    SetZernikeSurfOffaxisAngle(surf_node, dAng)

    SetZernikeSurfOffsets(surf_node, dXoffset, dYoffset)

 

    ' set zernike coefficient interpretation

    SetZernikeSurfCoefInterpretation( surf_node, True, 0.5 )

 

    ' set aspheric coefficients

    Dim num_coefs As Long

    num_coefs = 4

    Dim cur_coef As Long

    Dim sf As Double

    sf = 1e-5

    For cur_coef = 1 To num_coefs

        SetZernikeSurfIthAsphCoef( surf_node, cur_coef, (2*Rnd()-1)*sf )

    Next cur_coef

 

    Update

 

End Sub

 

 

See Also

Zernike Surface Script Commands

 

 

 

 

 

Copyright © Photon Engineering, LLC