Technical Issues - FilmStar News 2015 Other editions: 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017
DDE (dynamic data
exchange) is a protocol for transferring data and commands.
As previously discussed,
it's an easy way to export FilmStar data to Excel. Users who need to
compute properties (min, max, average, etc.) over an angle range
can utilize DDE export in contour mode (DESIGN 2.61.3362), as in the
highpass
example shown below. Auto Export is enabled.
BASIC is not required but can be used to automate operations.Where to put the data?
Specify export region with
DDE data transfer can be automated with BASIC DataExport and DataImport.
Example (S-P difference): set Sub Main ' DDE example FilmStar DESIGN <-> MS Excel ' Range: 450-750 x 2 nm (151 points), 0-60 x 2° (31 points) Pol = "P": Calculate DataExport "Excel|Sheet1", "R1C1:R152C32" Pol = "S": Calculate DataExport "Excel|Sheet2", "R1C1:R152C32" DataImport "Excel|Sheet3", "R1C1:R152C32" ' Run Excel VBA Sub ClearCells via DDE k& = DDEInitiate("Excel", "DDETest.xls") DDEExecute k&, "[RUN(""ClearCells"")]" DDETerminate k& End Sub
If more than one Excel workbook is
open, add its name in brackets,
You have Windows 7
64-bit but need to run legacy 16-bit software in conjunction with
MEASURE (Scantraq). You've installed
Windows XP Mode but can't get your Lambda 9 or 983 to work via
serial interface. Windows 7 has assigned COM3 to your USB serial
adaptor, but the setting doesn't work in XP Mode. What to do?
Note: This topic assumes familiarity with User Index Functions and FilmStar BASIC. Consider dielectrics
(k<<n) where n is known and k is to be determined by transmittance
measurements. In the case of an uncoated substrate we can simply utilize FilmStar INDEX. In determining k values for films there are two
options for n: 1. function, 2. dispersion table.
A=9.636555 B=-7.655485 C=2.252716E-3
D=1.367822E-2 E=-4.760015is automatically converted ton=9.636555-7.655485*WM^(1.367822*10^-2)+2.252716*10^-3*WM^(-4.760015)and, after verification, copied to the clipboard for pasting as a User Index Function
2. Note: This example sets UserIndex values in c:\Winfilm\Config\Design1.ini. We suggest that you rename section UserIndex to UserIndexBak in case you need to recover previous User Functions.
What happens when a
coating is non-uniform? To get a quick idea, consider a 2% step: half the coating at 100% design thickness and
half at 98% thickness. The calculation is performed by the
easily modified BASIC code below.
A BBAR coating is hardly affected. In the case of a highpass, the cut-on slope is degraded, but the filter might still meet specifications. Now consider the spectrum of a thick single layer (n=2.4) utilized in refractive index determination. Fitting the green spectrum obviously leads to severely incorrect n and k values. The thicker the film the stronger the effect, as can easily be determined by any FilmStar user.
This unusual situation was reported by
a prospective user. One would expect that 2% variation is more
typical of an entire coating run than a single optic. Possibly the
test part is mounted in the chamber in such a way as to create
thickness fall-off at the edges? In that case the test optic should be
masked when measured so that only the uniform center is utilized.
The determination of
dispersion in oxides depends on
the material following known functions such as Cauchy. But when no
such functions apply, we are forced to determine n,k point-by-point,
a more challenging task. There are two FilmStar possibilities:
DESIGN with Sub IndexSolve or program INDEX.
TIP: A1_Gedanken.faw
utilizes By looking harder with FSPlot's zoom function we finally discover the minor differences shown below. But realistically a 0.02% difference is well within measurement uncertainty.
INDEX includes two algorithms: DLS and
NOL. In the above case DLS fails for 258A but works for 73A. NOL
works when correct limits are set for n and k variation. In NOL_BAD, n was allowed to vary from 0 to 6 instead of 1 to 6. INDEX DLS results were similar to using Sub IndexSolve.bas in DESIGN at
one angle. Option Explicit DefInt I-N DefSng A-H, O-Z ' Adjust standard deviation in next line Const StdDev = .002 Sub Main Dim j, k, nData, ydata(), yd() On Error Resume Next CalcPlot ' Calculate and show plot ydata = Spectrum_Y ' Get spectrum nData = UBound(ydata, 1) CalcRandSeed 1 ' Same random numbers For j = 1 To nData ydata(j, 1) = ydata(j, 1) + StdDev * RndNorm ' Refl ydata(j, 2) = ydata(j, 2) + StdDev * RndNorm ' Trns If ydata(j, 1) < 0 Then ydata(j, 1) = 0 If ydata(j, 2) < 0 Then ydata(j, 2) = 0 If ydata(j, 1) > 1 Then ydata(j, 1) = 1 If ydata(j, 2) > 1 Then ydata(j, 2) = 1 Next j Spectrum_Y = ydata AxesDraw: Replot: Busy False: DataCopy AppActivate "FilmStar INDEX" SendKeys "{F11}", True ' Paste spectrum in INDEX End Sub This topic requires further development, but it is apparent that n,k solutions require some thought. |