How to explode a CAD assembly

OpticStudio provides users with the ability to model complex geometry objects in Non-Sequential Mode. When the program's built-in objects are not able to generate the necessary geometry for an accurate analysis of your system, then a CAD part may be loaded into OpticStudio. This article explains how to explode a CAD assembly after it's been imported into OpticStudio.

Authored By Sanjay Gangadhara


Article Attachments


When an assembly is loaded into OpticStudio as a single object, then the entire assembly may only be given one set of volumetric properties. In addition, there may be a limit on the surface properties as well, since the total number of unique faces available to an object is limited to 51.

Users who need each part of their assembly to be represented with an individual object may consider returning to the assembly and loading each component into OpticStudio separately. However, this requires the original CAD program and detailed information regarding the position and orientation of each part inside the assembly. 

Luckily, OpticStudio can explode the assembly into its constituent parts. In this article, we will provide an example of that process. 

Loading the CAD assembly

In this example, we’ll open up an assembly file obtained from the free CAD distribution website GrabCad ( This file is included as an attachment to this article. In the case where the original assembly was actually created in Creo or Autodesk Inventor, it could be loaded into OpticStudio using the appropriate PartLink object (see the article entitled “Using the OpticStudio Dynamic CAD Link"). However, to illustrate use of the Explode CAD tool, the assembly was saved to a STEP file.

The assembly file chosen for this example represents the structural housing for an LED light source (image taken after opening the assembly in a CAD system):


To load this assembly into OpticStudio, we first need to place the CAD file in the appropriate folder. The default folder for CAD files is "{Zemax}\Objects\CAD Files\." Once the assembly file is in the correct folder, we select the CAD Part: STEP/IGES/SAT option from the list of dynamic CAD links as the object type in Non-Sequential Mode:

Once this selection is made, a prompt will appear that allows us to choose the file for the LED housing model, which is called "cree xlamp_xp_e.step":

Note that if a file of the type selected is not in the default folder, then an error will appear, and the object will remain Null. Once OK is selected from the bottom of the object properties dialog box, the part will load.

Exploding the assembly

To explode the assembly into its constituent parts, select the CAD button in the Non-Sequential Component Editor (NSCE) toolbar. The button produces a drop down menu with different options that correspond to the various CAD files that may be loaded into OpticStudio. The file we have is a STEP, so we will make that selection:

Another prompt will appear, allowing us to choose the file and explode. Within this prompt, we may first select Get Part Count to get an idea of the number of objects that will be created as a part of the explode. If we are satisfied with the number, then we select Explode. For now, we will check Delete Parent Object.

The output without the parent object should look like:

Note that each of the constituent parts is written to a file in the Zemax Object Format (.zof) and then loaded into OpticStudio via the initial CAD assembly file. The position and orientation for each of the constituent parts is referenced to the parent assembly via the Ref Object flag.

Had we retained the parent object, the NSCE output would look like:

While the parent assembly remains in the NSCE, this object will be ignored by rays:

In addition, the parent assembly object will not be drawn:

Thus, with respect to the original assembly, the constituent parts remain the only meaningful objects in the system while the original CAD object serves purely as a reference. In both cases, the position and orientation of each of the constituent parts is referenced to that of the initial assembly; however, when the parent object is deleted, it will be replaced by a Null object. 

The main advantage of deleting the assembly object after explosion is that the OpticStudio file will require less memory, which may be an issue if the initial assembly is large and memory intensive. However, if the parent assembly is subsequently modified in the CAD program in which it was created, those modifications will not be acknowledged by OpticStudio if the parent assembly is deleted after explosion, because in this case information about the parent assembly will be lost. Therefore, even if the parent assembly is ignored by rays inside of OpticStudio, keeping this file in the OpticStudio NSCE ensures that any changes made to the assembly in the creating program are subsequently read in the next time you open your OpticStudio file containing the exploded assembly.

Constituent properties

Once the assembly has been exploded, different properties may be assigned to the constituent components. For example, we may choose to define the LED die (object #8) as reflective, and place a thin-film coating representative of the semi-conductor material that this die is made of (see the article entitled “How to Add Coating and Scattering Functions to Non-Sequential Objects”).

In reality, the physical properties of the various components in the LED housing may be very complicated. For example, light may be scattered from each of these objects via complex surface scattering distributions. If the scatter distribution for each object can be measured the data can be directly incorporated into OpticStudio via the BSDF scatter model. For more information on this model, see the article entitled “How to Use Tabular BSDF Data to Define the Surface Scattering Distribution.”

That being said, in many cases LED vendors will provide measurements of their sources via ray files, and those data correspond to the light distribution as measured outside of the housing. If you are able to obtain this data, then it would only be necessary to accurately characterize the properties of the housing if you were concerned about emitted light being reflected back towards the housing.

Accurate characteristics would also be needed if you could not obtain measurement data for the LED, and wished to determine the source distribution through simulation in OpticStudio. For example, a reasonable approximation might be to model the LED source via the Source Rectangle object placed within the dome. We would then need to assign physical properties (volumetric materials, thin-film coatings, scattering distributions) to each of the components in the system. With the assembly file exploded, this is now all possible.


Was this article helpful?
2 out of 2 found this helpful



Article is closed for comments.