This page contains revision history for the WMLib API libraries.
The WMLib API was updated with several functions to query and modify reference devices. The new functions are documented in the PDF file which is included in the release.
Added a sample WWF and a sample SEMI-E142 file to the release.
The core viewing library code was updated to cache the selected devices before rendering to the view. This multi-layer approach eliminates the flickering which occurred when large numbers of devices were selected and the view was redrawn (for example, using the shift key).
Various minor big fixes in the library and demo project. For example, preventing the NULL bin from being mapped to a non-NULL bin resulting in no NULL bin being defined.
The demo VB project was ported to C# and C++ (MFC). The release now contains three sample executables, and three source code projects in each of the three programming languages the library supports. We now have a release which can be tested by any company needing to develop wafer map library and viewing capabilities in C++, C# or VB .NET.
Added Support for reading and writing WWF map files.
A wafer map can now be synthesized from several input parameters. The user specifies a wafer diameter and a step size (equal to the device size) Based on these two input parameters an array is generated. Devices completely inside the wafer are assigned to one bin code; devices completely outside the wafer edge to another bin code and devices that cross the the wafer margin are assigned yet another bin code.
This is achieved using the two new API functions:
newDB - to create a new empty map database
addWaferMap - to populate that empty map database with an array of devices based on the wafer diameter and the device height and width.
Version 1.23 now supports reading and writing of the SEMI E-142 map file format. As E142 is a very extensive specification we are not supporting all of the various hierarchies and layouts that are possible. For example, we only support a single map file per E142 file and only support a single layout per E142 file. However these limitations are not usually an issue as other map formats have such constraints built in.
These functions were ported from the C++ API to .NET WMLib:
int getHeaderValueCount(int& count) const;
int getHeaderLabelValue(int index, char* label, char* value, int length) const;
int setHeaderValue(const char* label, const char* value);
void stringToUnits(const char* s, WMCLib::Units& units) const;
double convertUnits(WMCLib::Units source, WMCLib::Units target) const;
int formatToAbsolute(int forX, int forY, int& absX, int& absY, bool outputDB = true) const;
int absoluteToFormat(int absX, int absY, int& forX, int& forY, bool outputDB = true) const;
void stringToBinQuality(const char* s, WMCLib::BinQuality& quality) const;
void getLicenseStatus(char* status, int statusLength) const;
Specific functions ported to .NET WMView:
Display Rendering Functions
void displayDeviceOutlines(bool display);
void displayDeviceLabels(bool display);
Display Style Functions
void setBackgroundColor(WMCView::Color color0;
void setSelectionColor(int styleItem, WMCView::Color color);
bool selectRange(WMCView::SelectMode selectMode, WMCView::Coordinates coordinates, int x1, int y1, int x2, int y2, bool clear = true);
void windowToAbsoluteCoordinates(int x, int y, int& col, int& row) const;
Project Files and Source Code
The WMDemoVB project was updated to demonstrate some of these functions.
getBinFormatCount getBinFormat setBinFormat getNullBinValue getBinCount getBinValue mapBin
getBinIndex getBinDescription setBinDescription getBinQuality setBinQuality addBin getColCount getRowCount
getArrayExtents getArrayBinIndex setArrayBinIndex fillArrayBinIndex getDeviceCount addNullBins deleteNullBins binQualityToString
The above functions have been added to the documentation PDF file shipped with this release.
The WMDemoVB project now includes features that demonstrate:
This version has minor API naming convention changes and adds .NET functionality for the following functions:
Get/set wafer size
Get flat and angle
Get/set device size
Get/set step size
The demo VB project has also been updated to demonstrate this functionality.
The changes in this version are the introduction of a common namespace called ACS across the C++ and .NET versions. This simplifies the class naming and make the two libraries more consistent.Additional API Functions ported from C++ to .NET
More of the C++ API functions have been ported to .NET. The sample VB .NET project which ships with the package has been updated and now also demonstrates:
Converting to a different wafer map format
Saving to a wafer map format
Rotating the wafer map
Function description in PDF documentation updated to include syntax for C++, VB and C#.
1. We would normally call this v0.02 but in order to synchronize the API libraries with the underlying libraries which are much more mature, we are using the revision of the underlying libraries as the starting point for the WMAPI libraries.
2. WMAPI is 64 bit only. Artwork does not develop new products in 32 bits.
3. WMAPI requires .NET v4.7. If your machine does not yet include this version of .NET, please download it from Microsoft using this link:
4. WMAPI requires the MS 2015 64 bit Redistibutables. If your machine does not already have these installed, you can download/install them from this page on the Microsoft web site:
5. This version of WMAPI does not yet support C#. Only VB.NET.
6. A number of wafer map formats are not yet available for this version of WMAPI including SEMI E-142 and WWF. Support for these formats is under development.