How to avoid ray error when placing source inside Boolean object
I created a TIR lens by creating two objects (one big aspheric lens and a smaller cylinder volume) and forming Boolean subtraction A-B to make void hole through the lens. This is typical shape of TIR lens for LED.
Problem here is that Zemax makes error when ray source placed too close the lens in the region of aspheric lens volume although it’s where it is cut off by the cylinder volume. Normally we disable base elements of Boolean object. It works only if the ray source is placed outside the base lens volume. Is there any way to get around this issue in Zemax?
Page 1 / 1
@jsung
I did not fully understand the issue. A file would have been helpful. If you don’t want to have the base objects (that are part of the boolean operation) disabled. You could use the Inside Of column of the Non-Sequential Component Editor.
This part of the Help File is relevant:
But perhaps I didn’t understand the problem correctly. Please consider uploading a file if I’m missing your point.
Take care,
David
David,
I guess I didn’t describe my problem clearly. I do want to disable the parent objects for Boolean in ray trace because that parent object volume should be air inside the hole of lens.
I should have said Zemax thinks the ray source starts in the lens medium of parent object instead of air while I intend that to start in air hole of Boolean object. Yes, I tried the “insode of” method referring to the Boolean object lens but that doesn’t seem to solve this problem.
I should have included this screen shot above.so here it is.
This is what happens if the ray source placed closer to the Boolean TIR lens, where it’s inside the parent object used to trim the left side of TIR lens. Zemax thinks it starts inside the lens volume of PMMA instead of air. Using “inside of” doesn’t make difference.
@jsung
Ok, now I’m able to reproduce the issue. If you change to Boolean CAD, it seems to fix the problem (at least for me). Can you confirm? It looks like a bug with Boolean Native, but not quite sure yet.
Here I’m showing two configurations, only difference is Boolean Native (top) vs Boolean CAD (bottom):
I’m attaching my file for reference.
Take care,
David
My work colleague said he also experienced the same issue with Boolean objects not disabling the parent object totally even though it was set so in Zemax.
His recommendation was to use pre-propagation method in the source to make sure ray starts well outside the parent object volume. This trick seems to work for me. But the original question seems like bug in Zemax. I’m on the latest 2024 R2.02
@jsung
I remembered a discussion on the Community where @Jeff.Wilde pointed out this section of the Help File:
I managed to correct my file above by having the Source Inside Of the Boolean Native (and not the parent object).
Therefore, I don’t think this is a bug anymore.
Hope this helps and take care,
David
To me it still seems like a bug. This is my screen shot of NSC editor. In my case it’s three elements Boolean native. Here the source is placed inside the parent cylinder volume objects and it’s refracting in the air before the TIR lens! Inside of Boolean native is used but it doesn’t make difference here.
But if I move the source point to Z=-1 in object line 6 then the source rays don’t refract in the air before the TIR lens as it should.
@jsung
Try to move the parents objects away by adding a Y shift for example.
Take care,
David
I moved the parent objects away in +Y direction but still having the same issue,
Attached this example here.
@jsung
You are right, it still looks like a bug.
Take care,
David
Hi @jsung & @David.Nguyen
I took a quick look at the sample file and this is what I find, starting with the source point located on the boundary of the boolean native object:
However, by moving the source point slightly away from the object boundary (toward the interior of the boolean native object) the ray trace seems to be working as desired.
So there does not appear to be a bug in this case, unless I’m missing something...
Regards,
Jeff
@Jeff.Wilde
You are right, but Z Position = -1.0 for the Source Point correspond to the location of a boundary of a Parent object (2 and 3). In the screenshot below I’ve removed the Y Position offset of the parent objects.
Another problem occurs at Z Position = 0.0 of the Source Point, which is the boundary of parent object 1. There, the first air-lens interface is ignored.
Since the parent objects were moved away. Do you still expect to have this boundary issues, particularly with object 2 and 3?
Take care,
David
@David.Nguyen
Since we only have the user help documentation to guide us, it’s hard to know exactly what the ray tracing details are. However, the documentation does say:
From the examples in this thread, it appears that source points should not be placed directly on parent object boundaries (i.e., the parent objects as recreated by the Boolean Native object). Maybe someone on the Zemax team can verify and/or provide more clarification.
Regards,
Jeff
@Jeff.Wilde
Now I also think you are right. Somehow in my mind there was the base asphere (1) and what is removed from it (2 and 3). And I thought only 1 mattered in terms of positioning. Thanks for correcting me.
Take care,
David
So I get that we cannot place ray source at the boundary of parent objects used to for Boolean native even if parent objects were moved away or disabled. I wish Zemax team is aware of the issue and works on the fix.