Description Retrieves the off axis angle for a given Zernike surface.
Syntax Angle = GetZernikeSurfYOffaxisAngle ( n )
Parameters Angle (Double) Returned value for the off axis angle for the surface.
n As Long Node number of the Zernike surface.
Example The following script retrieves all information from a Zernike surface and prints a formatted summary of that information to the output window.
Sub Main()
' node of the zernike surface Dim surf_node As Long surf_node = FindFullName( "Geometry.Elem.Z Surf" )
' retrieve zernike specific information Dim tEnt As T_ENTITY Dim semiX As Double, semiY As Double, coefs() As Double GetZernikeSurf( surf_node, tEnt, semiX, semiY, coefs() )
' retrieve base surface information Dim b_curv As Double, b_con As Double GetZernikeSurfBaseConic surf_node, b_curv, b_con Dim OffAxisAngle As Double, Xoffset As Double, Yoffset As Double OffAxisAngle = GetZernikeSurfOffaxisAngle(surf_node) Xoffset = GetZernikeSurfXoffset(surf_node) Yoffset = GetZernikeSurfYoffset(surf_node)
' retrieve aspheric term information Dim asph_count As Long, cur_asph As Long asph_count = GetZernikeSurfAsphCoefCount( surf_node ) If asph_count <> 0 Then Dim asph() As Double, s_asph() As String ReDim asph( asph_count-1 ) : ReDim s_asph( asph_count-1 ) For cur_asph = 1 To asph_count
asph( cur_asph-1 ) = GetZernikeSurfIthAsphCoef( surf_node, cur_asph ) s_asph( cur_asph-1 ) = GetZernikeSurfIthAsphTermText( cur_asph )
Next End If
' retrieve zernike term information Dim wvl_flag As Boolean Dim wl As Double GetZernikeSurfCoefInterpretation( surf_node, wvl_flag, wl ) Dim coef_count As Long, cur_coef As Long coef_count = GetZernikeSurfCoefCount( surf_node ) If coef_count <> 0 Then Dim z_coefs() As Double, s_coefs() As String ReDim z_coefs( coef_count-1 ) : ReDim s_coefs( coef_count-1 ) For cur_coef = 0 To coef_count-1
z_coefs( cur_coef ) = GetZernikeSurfIthCoef( surf_node, cur_coef ) s_coefs( cur_coef ) = GetZernikeSurfIthTermText( cur_coef )
Next End If
' finally...print everything to the output window Print "Name: " & GetName( surf_node ) Print "Base Curvature: " & b_curv Print "Base Conic: " & b_con Print "Off Axis Angle: " & OffAxisAngle Print "X Offset: " & Xoffset Print "Y Offset: " & Yoffset If asph_count > 0 Then Print "Aspheric Terms: " Print Chr(9) & "Term" & Chr(9) & "Value" & Chr(9) & "Form" For cur_asph = 1 To asph_count Print Chr(9) & cur_asph & Chr(9) & asph( cur_asph-1 ) & Chr(9) & s_asph( cur_asph-1 ) Next Else Print "Aspheric Terms: None" End If If wvl_flag Then Print "Zernike in waves: " & wvl_flag & " (" & wl & ")" Else Print "Zernike in waves: " & wvl_flag End If If coef_count > 0 Then Print "Zernike Terms: " Print Chr(9) & "Term" & Chr(9) & "Value" & Chr(9) & "Form" For cur_coef = 0 To coef_count-1 Print Chr(9) & cur_coef & Chr(9) & z_coefs( cur_coef ) & Chr(9) & s_coefs( cur_coef ) Next Else Print "Zernike Terms: None" End If
End Sub
See Also Zernike Surface Script Commands
|