Hi James,
Grazing incidence in sequential mode can be tricky. There are two gotchas to look out for.
1. At grazing incidence, the rule that thicknesses change signs after reflection does not (always) hold, as the direction of the light is unchanged.
2. With conic surfaces, there are always two intercepts for the ray to make with the surface, one real and the other virtual. OpticStudio gets the right choice in almost all cases, but sometimes at Grazing Incidence you need to use the Alternate version of the surface to force it to choose the other intercept.
My favorite trick withthese kind of systems is to build them in Non-sequential first, so you know what the right answer is, and then use that to guide my sequential build
As a quick follow-up, the attached paper is very helpful. The example it uses demonstrates both the points above:
1. Note the sign does not change after the second mirror.
2. Note the use of the Alternate surface.
Some time ago, we improved the ray tracing to Standard surfaces at grazing incidence, and I believe that the current code should not need the use of the Alternate surface any longer, but it's always useful to keep it in mind. If you build an NS model there's no need for this, as it ALWAYS finds the physically meaningful intercept. There is also a Wolter object in NS mode that makes the setup of Wolter mirrors much easier.
Hope that helps,
_ Mark