FilmStar BASIC is a VBA (Microsoft Visual Basic for Applications)
language implemented in all FilmStar programs.
With the addition of BASIC, FilmStar provides an environment for
the rapid and cost-effective development of user-specific solutions. These range
from automatic optimization, f-number analysis (as illustrated below), output of
curved reflectors, tolerancing, quality control, etc.
An important example of the power of FilmStar BASIC is found in
On the Reliability of Inverse
Synthesis in Optical Coatings. If you're ready to advance beyond the
limitations of point-and-click thin film software, you'll find there is no
substitute for FilmStar.
BASIC IDE (Program Editor)
F-number Dialog Box
User Dialog Editor
IDE (Integrated Development
The screen shot at the left (click to enlarge) shows how the BASIC IDE appears
within FilmStar. The IDE holds up to nine windows, making it easy to cut and
This particular program, fnum32.bas (included with FilmStar
DESIGN), performs cone angle calculations by repeatedly averaging over
series of angles. By NOT being 'hard-wired' into FilmStar DESIGN, users can
modify the code to account for angular light distribution, etc.
The Enter values dialog was implemented with the
visual User Dialog editor. In this editor users click on the desired
Windows object (button,
label, etc.) and drag it into place. Upon exiting the dialog, the code shown
below is automatically pasted into the IDE.
Begin Dialog UserDialog 372, 94, "Enter values"
Text 27, 23, 73, 13, "&F Number"
Text 20, 58, 81, 13, "&Resolution"
TextBox 105, 20, 80, 18, .FnumText
TextBox 105, 55, 80, 18, .ResText
OKButton 250, 19, 88, 21
CancelButton 250, 54, 88, 21
Automatic Graph Creation
Integration with FilmStar Modules
FilmStar BASIC is integrated with other
FilmStar modules: FSPlot Module, Workbook, Report Generator and FilmStar
Database. In this simple example, FilmStar BASIC uses the FSPlot Module
to display color shifts as a function of incident angle.
For i = 1 To 6
Angle = 15 * (i - 1)
PlotLegend(i) = CStr(Angle) & "°"
Graph Automation Video
BASIC Language Help
FilmStar Extensions Help
In addition to its well- documented set of language instructions, which will be familiar to anyone who has
programmed in some version of BASIC, FilmStar BASIC adds special commands, keywords, and
subroutines. These are documented in on-line help as well as in the BASIC object
Macro of Macros
Data Entry Dialog
Running BASIC Programs
It is not necessary to run programs from the BASIC IDE. Once a
program is developed it can be run as a macro assigned to keys <Shift+F1>
As illustrated here, a Macro of Macros allows far
more than the six programs assigned to shortcut keys.
The Optics Quality Control dialog illustrates compelling reasons to understand and implement FilmStar BASIC
programs. Complex QC sequences can be reduced to step-by-step procedures, thereby reducing
training costs and enabling coating facilities to sincerely comply with ISO-9001 requirements.
Ocean Optics Server
Integration with External Programs
FilmStar BASIC lets users add calculation or data acquisition modules.
As an example FilmStar includes an ActiveX server for data
acquisition from Ocean Optics spectrometers. The server can run in stand-alone
mode for testing or automatically from DESIGN and MEASURE.
FilmStar BASIC can also communicate with DLLs (dynamic linked
libraries) developed in various Windows languages. Excel and other 32-bit Windows applications can utilize FilmStar's ActiveX interface.
As illustrated by Bar-code Reader, 16-bit software can be integrated with
FilmStar via DDE (dynamic data exchange).
Included FilmStar BASIC Programs (partial list)
- AddNoise.bas...adds noise to calculated spectra. Useful for simulating
spectrophotometer output and for testing reverse engineering algorithms
- Bandwidth.bas...computes center wavelength, bandwidth, etc. for
- BandwidthPlot.bas...like the above, but automatically plots results
- Calculate in Excel.bas...demonstrates the use of MS Excel
- CamsDesign.bas...import designs from obsolete CAMS thin film
- CaryWin.bas...import/convert Varian Cary spectral data format to
- CrystalList.bas...convert design thickness to crystal monitor
thickness (adjusted for tooling factors for different chambers)
- DbEdit.bas...DAO (Data Access Objects) alternative to built-in
FilmStar Database for keeping track of designs and spectra
- Fnum32.bas...effect of incident cone
angle on thin film calculations
- Gaussian.bas...effect of non-ideal monochromatic light source
- IndexSolve.bas...solve for index of refraction using R,T data at
multiple angles and polarizations
- LayCalc.bas...generates repeated plots where a layer is varied in thickness from a minimum to maximum value
- Maxtek DCM-220.bas...convert thin film designs to Maxtek DCM-220 Process Info (*.prc) files
- Review_Word97.bas...automatically generates graphical reports
in MS Word
- Shmdzu.bas...import/convert Shimadzu spectral data format to
- Zemax.bas...creates/updates coating files for Zemax optical design program