Got a question?
Can't find the answer you need? Ask your peers!
- 2,344 Topics
- 6,458 Replies
I would like to perform image simulation by first generating a USAF 1951 3-bar target on a curved object surface concave toward the entrance pupil, rather than on a flat surface object. Has anyone tried that before? How to do it?Thanks, Mike
Dear Community,I am working on the design of an off-axis parabola (OAP), the purpose of OPA is to collimate the light coming in the form of the cone from a laser diode to 10 mm beam width. At the first try I did the design by setting the entrance pupil dia 10 mm and focuses it by using an OAP for a particular F# (so that I can get the laser cone angle in OAP image space). 2nd try I did in the opposite way, defining the source as an "object cone angle" and decentering it by changing VDX value in field data editor, for collimation I am using the same OAP. By doing this collimation is achieved but beam width is not same as previous design beam width i.e. 10 mm.Where I am missing?Zemax design files are attached for reference.Thank You.
Hello, Very new to using zemax so please do let me know if I am missing on providing any key details associated with my question. I am interested in utilizing the Thorlabs OAP zemax file (attached). I tried ray tracing in sequential mode by simply placing a paraxial lens in front of the OAP surface which worked fine. The next thing I am stuck with is ray tracing two OAP. I know this requires a coordinate breaks for decentering and tilting. But I have a few questions (or rather confused about using zemax): How to define local coordinate of individual OAPs ? Because by decentering/tilting one OAP and second one is moving too. How can I move the source (object) such that it is at 90deg to the OAP surface ?
I’m modelling a double-pass system, which can be simplified to the Knowledgebase help tutorial at this link. The tutorial only covers element tolerances, but I’m interested in modelling surface tolerances. In particular, the Surface Irregularity tolerance - I see no way to have ZEMAX “pick up” the same random perturbation onto the surface from the first pass onto the second pass of that surface. Similarly, I suspect TIND (index tolerance) is also applied separately despite double pass. For decenter and tilt, I’ve figured out this can be approximated by “lumping together” the element and surface tolerances together. If there are two 0.1mm decenter tolerances, one on the lens surface, and on on the alignment of the lens, then the combined tolerance is 0.1*sqrt(2) mm. What would you suggest I do for the TEZI/ TIND tolerances?
From the OpticStudio manual under Defining Initial Polarization: “No matter which method is selected, the transmission results for unpolarized light will be unaffected because any two orthogonal rays may be traced to compute transmission.”Does this mean that I can use POLDEFINE 1, 0, 0, 0 followed by a POLTRACE and then POLDEFINE 0, 1, 0, 0 followed by another POLTRACE and average those results to get an average transmission at a given wavelength?
Hi, I’m trying to make a NSC 2D plot where I sweep the incidence angle of light going into a cuboid sample and use the NSRA operand to determine the path length. This is an example using a 2 degree incidence angle:However, there are some instances where the NSRA operand gives an error (‘Geometry error. Run the NSC Ray Trace tool for more information.’) I think the issue might be when the incidence light and output light are collinear with each other (so they overlap, essentially) but I might also be wrong. An example of this is when the incidence light is 0 degrees.What happens then is when I try to make a NSC 2D plot, there are certain step counts that are invalid, causing the whole graph to give an error:Is there a way to ignore these instances when making the 2D plot?
Hi, My optical system is a fixed pressurized optic so I need to simulate the space between lenses with nitrogen gas. Can I define a background material that is not air, but nitrogen? Is there any catalog for this type of gas? Thanks in advance.
I am wondering how to set the QE (or coating) of the detector in the stray light analysis. In the real world, the efficiency of the detector/ (QE) is not 100%, which means part of the lights will be reflected by the surface of the detector. For this reason, I need to set the coating of the detector with like 80%. Could you provide some suggestions on how to do that properly? (Currently, what I do is insert a thin film just in front of the detector with 80% transmission. I am not sure if this is the right way I should do it.)
I need to attach a lens object to the face of a CPC with variable thickness for optimization. I have the z-position for the other face of the CPC and the thickness is variable. The z position of the lens should be the z-position of the CPC + thickness. How can I enter this in the Component Editor properties? I will also need to set the Clear and Edge of the lens to be the same as the CPC front face which I think is the radial aperture plus length times the tangent of the angle. Is there an easier way to measure this and how is this input into the component editor? Thanks,Niel
Hello,So I’ve been trying to optimise the processing speed for a macro where I test a large number of configurations. I initially did the usual-maximising # of cores, reduced analysis rays to minimum viable (about 1000, which is enough for total power)), but the process was still very long. So then I re-checked the raytrace and somehow...fewer cores was faster? By a good order of magnitude. I am intensely confused by this result.From googling a little, it might be an issue that shifting data between cores is more time-consuming than the individual processes. And with a larger amount of rays (10^6), multicore seems to be substantially faster. The result I’ve observed is confusing however.
My colleague and I have written a new section in the Help File on the BatchRayTrace interfaces available in the ZOS-API, so I thought I would mention it on the Forum :) In short, instead of tracing the rays one at a time, an array of all the rays is passed to OpticStudio at a single time, OpticStudio traces all the rays and passes the entire array back to the Programming software. This method is called IBatchRayTrace. It is a bit more complex to program than performing a single ray trace, but it traces numerous rays at the same time through OpticStudio’s multithreading capability. The new section may be found in the Tracing Large Number of Rays section: The Programming Tab > About the ZOS-API > Tracing Large Numbers of Rays (About the ZOS-API) Happy coding! Best, Ali
Hi Hui Chen ‘I do a tolerance run for an afocal optical system, I would like to know how much the centroid move or deviates from the center . I was thinking of to use merit function criteria with operand CENR: X & Y instead the footprint data. Thank you for your reference
I’ve noticed that if I have a prescription with all coatings on all surfaces with the “Use Layer Multiplier And Offsets” box checked and then execute a Monte Carlo (MC) analysis--in this case just on all coating layer thicknesses via TCMU--all the aforementioned boxed on all surfaces are unchecked and, in order to perform a transmission analysis, I have to check on the boxes again (in the MC files). This is rather cumbersome. Is there a way--via a macro command--to turn on layer multipliers? Or can future OS versions leave whatever’s “checked” in a “checked” state when the MC files get created?
After optimizing a lens, my RMS vs Wavelength analysis window showed nothing on the Graph tab, just X and Y axes going from 0 to 1. When switched to the Classic tab, I get some red text stating 'ZGF file has ZERO bytes'. The letter 's' in bytes is cut off at the edge of the window so I thought there may be more to the message, but resizing the window just resizes the text and it's always cutting off the 's'. I searched the help documetation for ZGF file and got zero hits.
Hi Zemax engineers:I got error info. when I used Physical Optics function in mixed mode.Zemax Error Message is displayed as follows:the physical optics propagation requires rays be used to trace through non-sequential component surfaces, see the program documentation. How can I avoid this kind of error？ Thanks.
Hello, I have two optical elements which the distance between both need to be really precise. How can I do a tolerance analysis over that distance? Should I make consider one object the reference and do the tolerance analysis for that particular object? Thank you, Narciso
Hi everyone, On September 15th 2020, Zemax released OpticStudio 20.3, and the release notes announced exiting major speed improvements for both Sequential and Non-Sequential mode. I wanted to clarify and provide examples that highlight those speed improvements. -Sequential mode optimization, here is a system we typically use for training, and you can see a 3x improvement (file attached ‘’optSpeedTest’’). What we have improved is the multithreading of our Damped Least Square optimization algorithm, so the speed improvement can be observed over complete optimizations, not just raytracing speed. -In Non-Sequential raytracing through CAD objects is now faster using the new ACIS libraries. Using the ‘’white LED phosphor.zmx’’ in the sample files, without ignoring the CAD, I get a 4x improvement. I hope that this will prove useful. PS: my config is: Processor: Intel(R) Core(TM) i9-8950HK CPU @ 2.