FRED Version 15.90.1 Released!
FRED Version 15.90.1 Released!
Photon Engineering, LLC is pleased to announce the release of FRED 15.90.1, which is now available for download. This is a major version release which offers new features designed to make optical system engineering in FRED even more usable, diverse, and efficient.
New Features Summary
GUI Updates
The libraries used to implement FRED’s graphical user interface have been upgraded and allow a number of new options for interface style and behavior. Please note that due to changes in the way the libraries store information about the interface customization, you may want to reset your interface preferences after installing version 15.90.1. The generic preferences found on the Tools > Preferences menu in FRED are not affected by the new GUI changes. Interface and generic preferences for older versions of FRED, which may be installed on the same computer, are also unaffected by the new GUI changes. Some of the new features of the GUI upgrade include:
- Interface styles can be changed to give the GUI multiple different looks similar to Office 2013, Windows 7, Visual Studio, and others.
- The behavior of tabbed windows (FRED documents, script documents, and charts) can be put into one of three different modes that have different behaviors and organization capabilities. Tabs themselves can be further customized with a new palette of options that change the color, tab cycling behavior, shape, etc.
- In the object tree, the keyword and description column ordering can be swapped.
- Tabbed windows can be viewed in a new full screen mode, while the output window can be put into an auto-hide mode.
- A new interface for customizing the toolbars, menu behavior and keyboard shortcuts has been implemented.
CAD Update Speed
The algorithm for updating NURB surfaces (CAD imported objects) has been greatly improved and will result in faster update times for systems that contain imported CAD objects.
Catalog Lens Import Reversal
The catalog lens import dialog now contains an option for reversing an element upon import. This feature addresses certain aspects of the local coordinate systems of lens elements that can be difficult to work with if the user needs to manually reverse the lens after import. Parameters have been added to the Cylinder Lens element primitive and the Hemisphere Solid element primitive to support lens catalog import reversal.
Mie Surface Particulate Scatter Model PAC
The percent area coverage value for the Surface Particle (Mie) Scatter model type is now printed to the output window when a detailed report is performed on the scatter model. The command, GetMieScatterPercentAreaCoverage, performs the same PAC calculation in the scripting language.
Lens Import Upgrades
FRED’s lens import feature has been enhanced to use a new aperture curve collection algorithm that processes curve logic in a manner more consistent with CodeV and also recognizes the paraxial surface type in Zemax files. The Aperture Curve Collection type now has three different logic processing algorithm options.
Extended Script Type Optimization Variable
A new user-defined script type variable has been added that passes in new parameters indicating the variable index, subindex, lower limit and upper limit values. This can be useful when the user has multiple script type variables that contain duplicate code operating on the parameter values.
Coherent Source Power Scaling
Additional controls on the coherence tab of detailed source models have been added that allow the user new flexibility with regard to how coherent sources scale ray fluxes to achieve the requested source power.
Scripting Commands
The script commands below have either been modified or added for this release.
T_TARGETEDRAY
The T_TARGETED raytrace structure has a new targetType member that can be set to either “position” or “direction”. This allows the TargetedRay function to target rays for a specific final position or final direction.
GetFirstFilteredRay
Many scripts contain a loop over the ray buffer to identify rays with specific characteristics (ex. rays on a given surface) and then extract information about those rays. When the ray buffer is large and the rays of interest are relatively few in number, the loop structure using GetFirstRay and GetNextRay can be inefficient and time consuming. A new command, GetFirstFilteredRay has been added that takes a T_RAYFILTEROP array as an argument. Subsequent calls to GetNextRay will use the filter supplied to the call to GetFirstFilteredRay until either GetFirstFilteredRay or GetFirstRay is called.
GetLastFilteredRay
Many scripts contain a loop over the ray buffer to identify rays with specific characteristics (ex. rays on a given surface) and then extract information about those rays. When the ray buffer is large and the rays of interest are relatively few in number, the typical loop structure using GetLastRay and GetPreviousRay can be inefficient and time consuming. A new command, GetLastFilteredRay has been added that takes a T_RAYFILTEROP array as an argument. Subsequent calls to GetPreviousRay will use the filter supplied to the call to GetLastFilteredRay until either GetLastFilteredRay or GetLastRay is called.
CopyFilteredRaysBufferToBuffer
Many scripts contain a loop over the ray buffer to identify rays with specific characteristics (ex. rays on a given surface) and then extract information about those rays. Some scripts are structured to leverage multiple ray buffers by creating a custom ray buffer that contains only rays known to be of interest. In this way, the efficiency of analyses can be improved by virtue of the fact that all rays in the buffer are known to be contributors to the result.
AddFilteredRaysFromCurrentBufferToNewBuffer
Many scripts contain a loop over the ray buffer to identify rays with specific characteristics (ex. rays on a given surface) and then extract information about those rays. Some scripts are structured to leverage multiple ray buffers by creating a custom ray buffer that contains only rays known to be of interest. In this way, the efficiency of analyses can be improved by virtue of the fact that all rays in the buffer are known to be contributors to the result.
GetApertureCurveAlgorithm
This function supports the new aperture curve collection algorithm options described previously.
SetApertureCurveAlgorithm
This subroutine supports the new aperture curve collection algorithm options described previously.
SetNurbCurve
The SetNURBCurve script command has been modified to preserve the previous Umin/Umax values of the NURB curb when possible. The allowed parameter range defined by Umin/Umax is determined by the knot vector. So if the command changes the knot vector in such a way as to restrict the range, the Umin/Umax values may be adjusted to stay within the allowable range. This places somewhat more burden on the user to ensure and verify the Umin/Umax values are set as desired.
SetSourceCoherentGridScale
This command supports the new coherent source power scaling options described previously.
GetSourceCoherentGridScale
This command supports the new coherent source power scaling options described previously.
GetMieScatterPercentAreaCoverage
This command supports the new Percent Area Coverage calculation built into the detailed report of the Surface Particle (Mie) Scatter Model type.
ARNDisplayInChartTriplet
This command displays an ARN in a chart window and returns the chart objects for the 3D plot and the two 2D plots. With the plot objects, the user can customize all aspects of the chart displays programmatically.
Get2DChart
Retrieves the 2D chart object from an open chart window. With the chart object, the user can customize all aspects of the display programmatically.
Get3DChartTriplet
Retrieves the 3D chart object and two 2D chart objects from an open chart window. With the chart objects, the user can customize all aspects of the chart displays.
Miscellaneous Upgrades and Bug Fixes
In addition to the major new improvements described above, this release contains many smaller feature additions and bug fixes. Please refer to the developer Release Notes found on the Help menu inside FRED.
A complete list of the new FRED 15.90.1 features can be found in the developer release notes, accessible from the Help menu after installation.