Bug in Layout, Layout 3D and Shaded Modeling

  • 9 July 2022
  • 4 replies

Userlevel 4
Badge +3

This has been a bug in Zemax for going on decades now.  

Say I have a lens with three lenses between object and image.  I view it with Layout, Layout 3D and/or Shaded Model.  It draws fine.

I then insert a new surface right after the object.  Invariably, the lens viewing routines do not recognize this surface and now begin plotting at surface 2.  The new surface 1 is totally ignored.  I have to go back to layout settings and update the surface range to see the new surface.

Why?  This is such a simple thing to ask of Zemax lens viewing routines, to always plot all surfaces in the LDE.  Why does this continue to be a bug?


Best answer by Mark.Nicholson 9 July 2022, 17:51

View original

4 replies

Userlevel 6
Badge +3

It’s not a bug, it’s a feature!

When you have an analysis looking at surface n, and you add a surface prior to it, the analysis feature automatically updates to look at surface n+1. That keeps analysis features locked on their intended target as you add/remove surfaces.

All the layouts are doing is what any feature does when looking at a surface…updating to keep the desired surface in view.

What could be added is a feature in layouts to show ‘All’ surfaces.

  • Mark
Userlevel 4
Badge +3

Hi Mark, the rest of the analysis features should stay on target as you say.  But that doesn’t make sense and apply to lens drawing features.  We are always wanting and needing any lens drawing to show us the whole lens represented in the LDE at any time (unless a subset of surfaces is deliberately selected).  Could you champion this for us?  Set up a poll for us to vote?


Userlevel 6
Badge +3

This just came up again as my reply got promoted to ‘best answer’, but I do think Mike has a point. The layout plots all show from surface a to b, user selected and these renumber as described as surfaces are added or deleted. Imagine a radio button that selects ALL if selected and gives the existing start/stop if not. If ALL is selected, then

IF (object thickness == infinity) start_surface =1

ELSE start_surface =0

DRAW2D (or whatever) start_surface, NSUR()

This would then draw all surfaces no matter how many were added or deleted.


Userlevel 2

Please add my +1 vote to Mark’s idea for an “ALL” surfaces settings. (that does not get reset automatically and arbitrarily by OpticStudio!)

It would speed up my work when I forget about the default “feature” that has also bothered Mike.Jones...since I often find myself wondering (duh!) what happened to the layout window especially when inserting a lens from the Lens Catalog.

-- Greg