Solved

Hide raytrace rays between certain objects in the NSC 3D Layout?


Userlevel 2
Badge

Hi, 

after/during running a raytrace, is there a way to hide the rays that go from one object to another?

I very much need these rays to be in the Path Analysis but would much prefer not to see this subset of rays in the NSC 3D Editor as they obscure everything else in the system. 

To give some context, there’s a source rectangle that needs to be quite a bit larger than the field of primary reflectors and detectors. I put a “ground plane” detector roughly the same size as the source rectangle behind everything else and I need to determine how much energy is hitting this “ground plane” detector. The problem for the NSC 3D Editor is there’s to many of these rays hitting the “ground plane” and I can’t see the details of the light hitting the other objects in the system.

 

Thanks!

icon

Best answer by MichaelH 14 May 2022, 00:55

View original

8 replies

Userlevel 6
Badge +2

Hi Josh,

Since you want to hide all the rays hitting a certain object in the NSC 3D Layout, you can simply use a filter string with “H” for hitting the object and the exclamation point (!) negate/exclude those rays.  If the “ground plane” is object 2, then the Filter String for the NSC 3D Layout would be:

!H2

In general though, you cannot hide segments of a ray, you can only hide the entire ray itself (children rays upon splitting can be considered a new “ray” for most Filter Strings).  If you want to hide a segment of a ray (i.e., if a ray hits objects A-B-C-D and you want to hide segments between B-C), you will need to parse the ZRD via the API, remove the undesired segments, and then treat downstream segments as a new ray.  In the A-B-C-D example, you would terminate the ray after it hits A-B and then create a new ray with the XYZ/LMN values for the C-D segment.  This is non-trivial and I would suggest sticking to Filter Strings as much as possible. 

Userlevel 2
Badge

Thanks Michael, 

that works perfect! No need to deal with segments, the whole ray is enough. 

Thanks again,

Josh

Userlevel 2
Badge

Follow up question - how can I hide all the rays that only go between two objects. I’m not looking to exclude those “segments” of a ray, just the complete rays that start at one object and end at another. I would still like to see complete rays that start at the same object and end at the same object, but also reflect off other objects on the way.

Userlevel 2
Badge

Hi, 

is there an easy way to hide ALL the rays, so I can just see the objects?

Thanks!

Userlevel 2
Badge

Turns out it’s “#0”, which is display no rays :)

Userlevel 3
Badge +1

I don’t believe #0 is a valid filter string, and as such results in no rays being shown. You can enter any string of characters that does not evaluate to a defined filter string flag to hide all rays. This behavior is not explicitly stated in the help file, but from practice seems to be true. 

Userlevel 2
Badge

Thanks Sean, helpful response!

Userlevel 7
Badge +3

If you don’t want to see any rays, just set Layout Rays on the Source object to zero

Reply