CouderMask - Couder Mask Program

This program calculates and prints Couder masks used in Foucault testing of telescope mirrors. The Foucault test analysis program, Tex, also calculates and prints Couder masks, but it outputs a Postscript file. Windows systems do not usually come with Postscript capability installed. A freeware program called Ghostscript will allow a Windows system to print these files, but I thought a native program would be better. In addition, I hope to incorporate the results of Nils Olof Carlin's theoretical work on Couder masks and make this program more flexible.

I have to give credit to Nils Olof Carlin for the theory and math behind the calculation of Couder masks as used in CouderMask. Nils has a webpage describing the theory and offering a numeric on-line javascript mask zone calculator at I lifted the key equations for calculating the zones and zone centers directly from this page and it's Javascript. Thank you Nils.

CouderMask is written in Visual Basic 5 and compiled for Windows 9x, NT4.0 and higher running on Pentium class or higher Intel or Intel clone computers. Contains a complete Windows setup package for CouderMask. Unzip this file into a convenient (preferrably empty) folder and run Setup.exe. This is version 1.1.0 The .zip file is 2,025,976 bytes long, and contains 20 files. The largest portion of the files are Visual Basic runtime files. If you already have programs written with Visual Basic 5 installed on your computer, much of this will not be needed, and will not be installed.

couderma.exe Also contains a complete Windows setup package for CouderMask. couderma.exe is a self-extracting executable file prepared with the freeware 7-zip program. It is a nit smaller than, and does not require an auxillary program such as WinZip to uncompress. Simply download and execute couderma.exe, telling it to put the uncompressed files into a temporary folder. Then run Setup.exe from that folder. couderma.exe is 1,982,022 bytes long.

If you already have a previous version of CouderMask installed, you can probably get by with replacing only the executable file, CouderMask.exe. It is available separately as a .zip file This .zip file contains both the executable and readme.txt. The .zip file is 115,327 bytes long. The help files have some material added for version 1.1.0, but if you have been using the program successfully, you probably don't need the new material. The help files are not included in

CouderMask uses a freeware printer control called SwiftPrint. SwiftPrint in turn uses subroutines from the Microsoft Foundation Classes library version 4.2 (MFC). Many programs use MFC subroutines, however, at least as of Windows 98, the MFC routines are not usually included with a normal Windows installation. Your system may already have them as a result of installing another program. If your system does not have them, you will see errors when you try to install InvRon. The errors will refer to swiftprint.ocx. Try the installation first. There is a good chance your computer has the mfc subroutines since many application programs now use them. If you get the installation errors, then try installing the mfc files from one of the sources below.

You can download the necessary files from various sites. Here are two:

Once you have installed the MFC files, you can delete the .zip files and the setup files.

With the MFC files installed, rerun the InvRon Setup.exe to get SwiftPrint properly installed.


Version 1.1.0 adds optional alignment marks to the masks and fixes the printer options so they actually work. Note that (for reasons beyond my control) CouderMask changes the Windows default printer when you select a printer. CouderMask will prompt you to restore the default printer when it exits, and will give you a printer selection dialog box to aid the process.

Version 1.0.1 allows printing of very large Couder Masks. I do not know what the upper limit is. I know 1 meter works. You will need access to a large printer, of the sort used by engineers, draftsmen, etc. to produce the modern equivalent of blueprints. I made the one meter mask with a HP designjet 1055cm plus, set to a paper size of ANSI E. The top and bottom of the mirror outline are cut off on the E size page, but all the zones are there with room to spare. If you can program the printer for a custom paper size longer than the E size, you should be able to print the zone pattern for a considerably larger mirror.

Things Yet To Do

For some reason, the printer drawing routines won't work correctly with my Epson Color 600 printer driver when the long dimension of the paper is more than about 12 inches.

Add alignment marks to all masks, not just to the ones that are spread across multiple pages.

CouderMask is licensed under the GNU General Public License. This obligates me to make the source code available. If you really want to see the code, warts and all, please e-mail me.

If you have problems, questions or suggestions, please contact me at

Copyright © 2002 Mark D. Holm

The following list of words and phrases is for the benefit of search engines that ignore the META keywords tag.

Couder mask, zonal mask, zone mask, Couder, Foucault, Texerau, Carlin, zone, ATM, mirror, test, telescope, paraboloid, parabola, paraboloidal, figure, program, Windows