Tolerancing and Reference Objects in Non-Sequential Mode

  • 20 January 2020
  • 6 replies
  • 169 views

Userlevel 1
If tolerance the position of an non-sequential object that is the reference object for a second object, is the position of both objects changed together in the tolerancing analysis?



I'm asking because I need to tolerance the position of a module that consists of several objects, and I'm not sure how to do it in Non-Sequential Mode

6 replies

Userlevel 2
Badge +1
Hi Georg, 



Good question, and the answer is, yes, the position of both objects will change. I've attached a simple sample file that demonstrates this. In this case, the position of the second lens is referenced to the first lens vertex. When the first lens position is changed during the tolerance analysis, the second lens position also shifts (as seen in the attached Monte Carlo file). 



In your system, do you need to tolerance the positions of each object individually? If so, I'd recommend that you use the Modify Reference Object tool to refer the appropriate objects to the Global Coordinate Reference before you run the tolerance analysis. This will ensure that the selected objects can shift independently from one another. 







Let me know if you have any other questions!



Cheers,

Nick
Userlevel 1
Thanks,



that how I assumed it would work, I just couldn't find anything in the manual about it.



 
I've also had this question recently and I've discovered some issues.



Issue #1: The "Modify Reference Object" button has a bug in it.  It is supposed to change reference frames for an object without moving it, but that is not the case.  IF the reference object is changed, the object shifts.  I've notified Zemax of this issue, and they are documenting the problem.



Issue #2: The OpticStudio phone support told me the exact opposite answer to Nicholas Herringer's above response.  I was told on the phone today that objects will move independently of each other during tolerancing, even if they are referenced to each other.  I believe Nicholas' post above because of his attached code.



So my conclusion is that until Zemax fixes their "Modify Reference Object Button", one cannot run a tolerancing analysis on a design with positional references to other objects.
Userlevel 2
Badge +1
Hi Timothy, 



Thanks for adding onto this thread. Regarding your Issue #2, I can confirm that the information provided in my above response is correct. I'll discuss this with the engineer who handled your case this morning. I apologize for any confusion here. 



Regarding your Issue #1, are you saying that you've seen behavior where an object physically moves within the 3D space when you change the Reference Object using the Modify Reference Object tool? I've tried to replicate this behavior, but I haven't been able to do so. For example, in the attached system (which is admittedly very simple), if I use Modify Reference Object to change the Reference Object for Object 4 to "Global Coordinates," there is no change in the physical geometry of the system; that is, neither Object 4 nor Object 5 (which is referenced to Object 4) move, despite Object 4's Y and Z Position values changing.



Let me know if I'm misinterpreting the issue here, and I can adjust my response, as appropriate. If my interpretation is correct, though, perhaps I need a more complex example to demonstrate the issue. Do you have a shareable example of this? If the file you discussed with our support team does this, let me know, and I can dive into it offline. 



Thanks, 

Nick
Userlevel 6
Badge +4
I can see one possible source of confusion on issue #2. A group of objects referenced to a reference object can be moved as a group by moving the reference object, which includes moving the group during tolerancing. However, individual objects within the group can also be moved with respect to the reference. For example, lenses mounted in a cell can be toleranced for cell movement by tolerance perturbations to the reference. At the same time, element positions within the cell can be toleranced by perturbing them individually. 
Hi Nicholas,



I've received some clarification on issue #1 from my Zemax support engineer. Pasted below is his clarification

--------------------------------- (Begin Response)

I’ve found the source of the problem. It is a known bug, and I’ve added your case to the file. Specifically, the problem is the multi-configuration you are using. The multi-configuration option creates some kind of ambiguity in the software, which OpticStudio handles by just resetting the coordinates themselves. This is obviously wrong (hence the bug), but it should either be fixed, throw a warning when a user tries it, or at least be in the help pages as something not to do. I suspect that when your colleague starting seeing the same thing, it wasn’t from a new version but rather from starting to use multiple configurations of his own.


For now, if it is feasible, you can switch to a single configuration. Note that it’s not just having two or more configurations that is the problem, but rather than the properties are defined in the MC editor. Even having one configuration will cause this problem if it defines the values in question.


However, it also is worth repeating that your current set-up should not create tolerancing problems with the reference objects.

------------------------- (End Response)

So it looks like when I define certain parameters within the multi-configuration framework, I am not able to use Optic Studio's ability to change to global coordinates.  I will switch to a single configuration for now to get around this problem.



Regarding Issue #2, I think David's above response is touching on the correct point, but I should clarify my exact problem.  Let's say I have "Object 2", which is a lens, referenced to "Object 1", which is another lens.  If I begin a tolerancing analysis where I start to move Object 1, I'll inherently start moving Object 2 for every movement of Object 1.  I think this will give me different results, and therefore incorrect results, compared to the case where both Objects 1 and 2 are referenced to the global coordinate system.  Please clarify if I'm interpreting this incorrectly.



For now, this point is a bit moot, because I can just switch out of multi-configuration mode and start using the "Modify Reference Object" button properly.



Thanks for the help!


Reply