Solved

Invalid aperture parameters on obj when convert sequential data to non sequential data


Userlevel 2

Hi zemax community,

 I am trying to convert sequential data to non-sequential data, but error happens.

Things I want to do:

  Convert the sequential data wedge prism (data attached) to non sequential data

Problem:

  Invalid aperture parameters on surface 1 object4 (show as below)

Guess:

   I think it is  coordinate break that cause the problem. The coordinate break is to make the 2nd surface of prism to return to the global coordinate but has broken the 1st surface and 2nd surface of prism.

 

My question is

  1. is it my guess is right?
  2. how to convert the sequential prism data to non sequential data?

 

thank you 

 

Yang

 

 

 

icon

Best answer by David.Nguyen 1 July 2022, 14:44

View original

3 replies

Userlevel 7
Badge +2

Hi Yang,

 

I’ve had issues like this in the past, also with coordinate breaks, but I can’t find an example anymore. So, I’m curious to hear what people have to say about your file.

There’s one thing I can suggest though. If you look at your file after conversion, you will see that OpticStudio (OS) has converted the slanted face to a Grid Sag Surface. Now, it could be that if you manage to get rid of the error during conversion, then the slanted face gets converted to a different object, but I doubt it. So, assuming OS would still convert your slanted face to a Grid Sag Surface, this is quite inefficient in terms of raytracing. For such a well determined object as your lens, you will be much better off re-designing it ussing the rules described in this article.

For example, you could create a Cylinder Volume as the base shape for your lens, and then use a Rectangular Volume to remove (or kind of “etch”) a part of the Cylinder Volume to create the slanted face. If you look at my screenshot below, try to imagine what would be left if the magenta volume was removed from the green cylinder:

Using a Boolean Native, we can do exactly that:

And raytracing through a boolean native will be much faster than a grid sag. As a matter of fact, you don’t even need the boolean native if you are interested in raytracing speed (I let you read the aforementioned article for more details).

I have also attached this file to my reply for your reference.

I hope this helps, and take care,

 

David

Userlevel 2

Hi Yang,

 

I’ve had issues like this in the past, also with coordinate breaks, but I can’t find an example anymore. So, I’m curious to hear what people have to say about your file.

There’s one thing I can suggest though. If you look at your file after conversion, you will see that OpticStudio (OS) has converted the slanted face to a Grid Sag Surface. Now, it could be that if you manage to get rid of the error during conversion, then the slanted face gets converted to a different object, but I doubt it. So, assuming OS would still convert your slanted face to a Grid Sag Surface, this is quite inefficient in terms of raytracing. For such a well determined object as your lens, you will be much better off re-designing it ussing the rules described in this article.

For example, you could create a Cylinder Volume as the base shape for your lens, and then use a Rectangular Volume to remove (or kind of “etch”) a part of the Cylinder Volume to create the slanted face. If you look at my screenshot below, try to imagine what would be left if the magenta volume was removed from the green cylinder:

Using a Boolean Native, we can do exactly that:

And raytracing through a boolean native will be much faster than a grid sag. As a matter of fact, you don’t even need the boolean native if you are interested in raytracing speed (I let you read the aforementioned article for more details).

I have also attached this file to my reply for your reference.

I hope this helps, and take care,

 

David

 

Hi David

 Thanks for your comment and suggestion.

 

Yes, I got the  Grid Sag Surface. (no idea about what it is though)after trying to convert the wedge prism to non-sequential data mode. 

Currently, it seems to make the Boolean data is the only solution to this problem, hmmm. I will try it out. 

And what troubles me most is that, the angle of the prism is a variable in sequential mode,

that means I have to make various type of it :-). …

I will still search the final solution to this problem and will let you know when I get it.

 

Best regards

Yang

 

Userlevel 7
Badge +2

Hi Yang,

 

For your reference, a Grid Sag Surface is a collection of sags (Z) at evenly distributed X and Y coordinates. Those values are typically saved into a text file. Those kind of surfaces are typically used for irregular surfaces, that can’t be easily described by an equation. They might require a certain sampling to get good raytracing accuracy, hence the raytracing efficient concern.

Also, in my example, you can still set the prism angle as a variable. Simply use the magenta volume Tilt About X as a variable instead.

Even if the object isn’t displayed (is greyed out), the variable still gets optimized. Try modifying this field manually.

I hope this helps.

Take care,

 

David

Reply