Instructions to use libMask on your system: Windows - download & install "Cygwin", and install "g++" and "make", which is done from within the Cygwin Installer as so: Run the intaller Find the package called Devel: gcc-g++: C++ compiler and click on "skip" once to set it to install- it should show the file size, and have automatically selected any dependencies. also install Devel: make Open Cygwin - this gives you the Terminal Window you'll compile your mask from. Mac - use /Applications/Utilities/Terminal.app - use the default shell (usually bash). Everything else is already installed. If not, try installing "X Code" from the Mac OS Install DVD. Linux - use your favourite Terminal - use bash if possible 1st, cd into the "libmask" directory (on mac, type "cd " and then drag the libmask folder onto the Terminal window) and then type make clean - this removes any old compilation files and then type make - this compiles all objects for your particular system. Your project should be in a subfolder next to the libmask folder, ie. libmask folder & all associated files are located in: /Users/demis/MaskPlates/libmask and your project is in /Users/demis/MaskPlates/MyMask/TestMask.cc edit your project's MakeFile to reflect the correct basename, ie. if your .cc C++ code file is called "TestMask_v1.cc" then you use "TestMask_v1.cif" in the MakeFile "cd" into your project's folder, and type make you should get a .CIF file reflecting your program, and you should see any terminal output generated by your program (including compilation errors) -- Demis ----------------- Additional notes: ----------------- See the folder "Example Real Usage with External Lib and Text Output" for a good example. ---- Creating custom functions: If you create your own functions for laying out some sort of bizarre structure, please store it in the folder "libMask_UCSB_includes" as a .cc file. In your main program, simply use #include and it will find the functions in the UCSB_includes folder. Please see the "Example External Lib Usage/ExtTest.cc" as an example of how to do this. This makes our codes much more portable between users, and your functions may even be used by others after you graduate! The LibMask manual does include a lot of the basic functions, but there are some undocumented functions/variables (like cp.x, cp.y, cp.z, cp.a) that you can see if you open up some of Xaveer's .cc files, in the libMask folder. ---- Outputting useful data to Excel spreadsheet: you can have your C program output useful info during compilation (such as waveguide lengths, notes during loops etc.) by using the following in your C program: fprintf( stderr , "stuff to say" ); Of course you can output variables like this, in the standard printf way. A particularly useful way to use this is to output tab-delimited data, via: fprintf( stderr , "1st 3 waveguide lengths = \t %f \t %f \t %f \n", Length1, Length2 , Length3 ); where \t = Tab, %f = Floating-point number, each one referring to the Length variables in order. \n = NewLine That will allow you to output text to the terminal, so you can monitor the progress of your program as it compiles. To get that into Excel, you compile the program using make 2> TextFile.txt and all the fprintf output will be redirected to the file TextFile.txt (the number 2 indicates to redirect stderr only) and you can then open this tab-delimited file in Excel, where you can perform calculations etc. ---- An alternative text-layout font is included, which is designed to be more lift-off friendly (ie. the holes in an "8" are able to lift-off etc.) To use this font, simply change the FontPath to say "deplof.plf" instead of "caps.plf" ----