This page summarizes the changes and fixes to QckBool and its underlying library (qisbool and the new QisboolM64)
A new release of QckBool now called QckBoolQm64 to reflect the fact that it is based on QisMBool and is fully 64 bit. The use of the multi-threaded QisMBLib and the associated QisMBool library mean that the Boolean operations can take much more advantage of powerful multi-core workstations.New GUI
The user interface has been completely re-written using Tcl/Tk both on Windows and on Linux. This enables us to offer the same user interface on both platforms and to more efficiently update the GUI as needed.
This version uses Artwork's new Windows installer which does not "hang" due to interference from other running programs.Updated Boolean Libraries
Update the Boolean libraries to the latest in-house versions. This corrects a recently reported bug.Additional Libraries updated to 64 bit
The following internal libraries are 64 bit:
Does not permit use of Disk Serial Number as license ID ...
Qckbool didn't handle correctly a situation when an XOR is done between two layers where one of the layers was empty. This has been fixed and now Qckbool.
Qckbool didn't handle correctly a file during an XOR operation. This has been fixed.Latest Boolean engine
Qckbool includes the latest boolean engine which includes all the upgrades done in the last 14 months.
Qckbool didn't support working directory with more than 128 characters. Qckbool now supports long path name.Latest Boolean engine
Qckbool includes the latest boolean engine which includes all the upgrades done in the last 14 months.
There were two improvements that had to do with fine sizing and acute angles.
Fine sizing has been revised so as not to miter acute angles.
Both Fine sizing and Gross (Orthogonal) sizing have been improved by removing certain pre sizing steps to prevent generating illegal polygons.
Added butting edge polygon format in Windows version.
Added butting edge and Leonov polygon format in Solaris and Linux version.
The button which indicates to add the layer increment to each of the layers was doing this when it was off. It now works this way when it is on instead of off.Qckbool more compatible with Qckvu
Structure and layer selection done in Qckbool is now reflected in the Qckvu viewer.Qckbool job file menu
Selecting from a recent job file menu item resulted in failure of setting button sensitivity of next job button.Viewing with layer Remap
Jobs other than one were only mapping layer number zero. This has now been fixed.PG Compatible
This setting is required to work with Butting Edge Polygon Format.
Polygon validation is applied after boolean processing.
PG compatible setting will not work with incremental boolean xor processing.
Fixed data drop problem for Benchmark. The problem had to do with short segments (below 10nm) which were
processed at 6 places of acuracy by the engine and then scaled back to 3 places of accuracy which is the GDSII
Fixed data drop problem for Benchmark file 6000_text.gds. The problem had to do with cells that were inserted with scale of 0.02.
Updated Flex and added USB licensing.
Qckbool and Qckvu - Structure and layer selection done in Qckbool is now reflected in the
Last operand input folder is now remembered.
First Linux release and major speed improvement in the Union and XOR functions.
Major update to the Solaris version over the last version 1.06. Major speed improvement in the Union and XOR functions.
This version supports Flexlm licensing - Node locked and Floating.
Compatibility with UNIX Version
QckBool was updated to include all the UNIX features.
In the settings, you can choose polygon output format, per job. User can opt to select any one of mutually exclusive formats ( cutlines, embedded level, Leonov).
Renaming top cell
Previous version created an output file with the a fixed name for the top cell. Now the user can control the name of the top cell in the output file.
Compatibility with QCKVU 1.90
QckBool can start QCKVU instead of GDSVU for customers who owns the QCKVU product. QCKVU is our high speed GDSII viewer for very large files.
Horizontal scroll bar added in file merge tool to allow a user to see the entire file name.
QckBool allows the user to create a job file where the user can create multiple tasks for QckBool on the same file with different functions/layers each time. At the same time the user can set multiple boolean tasks between two files. Each task will be saved under a user defined GDSII file output.
GDSII File Merge
QckBool allows the user to merge several GDSII files into one output file. The user can define the topcell of the output file. The input GDSII file names we will be inserted as cells in the output file. Each GDSII file merged can be inserted with an offset to the output file.
View both GDSII Files in Binary Mode
QckBool allows the user to view both input GDSII files in Binary mode. The files will be viewed one on top of the other using GDSVU/W.
Manual and Online Help
New PDF manual and online help are now available for QckBool 1.08.
Translator from ISS's LTL format to QckBool
LTL2BOOL is designed to facilitate the use of Artwork's QckBool tools by translating an LTL script file into a Batch file that runs the necessary components that make up QckBool.
These files can be used to automate a series of Boolean operations on different layers of a GDSII file and collect the results into another GDSII file.
This version also allows the user to use optimization and keep temporary files.
There is an addition to the LTL language that allows the user to perform an image reversal.
Added ability to save and load all settings corresponding to a number of jobs defined in the application's session.
Added "File Merge" tool to allow merging of any set of GDS files. It can be launched from the "Tools|File Merge..." menu item.
Boolean engine output can be appended to log files. Launch the "Global Settings" dialog box by selecting the "Preferences|Global Settings..." menu item and set the "Keep All Logs" check box to do this.
Select "Help|Help..." to display help.
Operands are now viewed with correct display of currently selected structures and layers.
Altered appearance of dialog to look similiar to unix version.
Bug fix for batch file generation
The shell failed to generate a good batch file when its target directory contained space characters. This has now been fixed. Reported by Stuart Fuller from Bookham.
Added 2 new offset settings for large offset values, and for offseting data with acute angles.
REVISED "Options Settings" DIALOG BOX
Changed "Cut Lines" control for "Embedding Level" control. The new control means the opposite of what the older one meant.
Prevent user from running embedding level without joining partition windows.
Progress used to be shown on a job to job basis. The shell now communicates which job is to be run out of the total count.
Added CPU count detection to run booleanizer in multithreaded mode.
This allows a user to define an expression involving several operations
and layers for a single output.
A user can enter the expression manually into the "First Set" edit box or hit the "First Set" button to use the "Sequential Operations" dialog box to form the expression.
This tool was added to provide the user the ability to perform boolean and other kinds of functions on or between sets of polygons contained in layers. The following explains the usage of this tool. 1)Use "Tools|QckBool..." menu item to launch "QckBool" dialog box. 2)Set "QckBool" dialog box settings wherever necessary: a)Select desired "Boolean Operation" (Binary or Unary). BINARY OPS are: 1. Union 2. And 3. XOR 4. Minus These work beween two sets of polygons. UNARY OPS are: 1. Union 2. And 3. Non Insersection 4. Clipping 5. Image Reversal These work on set of polygons. The last two require window extents. b)Define "Polygon Set(s)" by specifying layers. This can be done manually by entering existing layer numbers seperated by comma or space. It can also be done by hitting the "First Set" button and selecting layers from the "Select Layers" dialog box and hitting the "Second Set" button when the boolean operation selected is a binary operation. c)"Sizing" specifies how much to grow the polygons. If set to 0.0, the polygons will not be grown. d)"Smoothing" edit box specifies which line segments to take out. Any segments smaller than the length specified are taken out. This works with the "Sizing" control and was created to avoid the apearance of spikes when sizing. e)"Max Points edit box specifies the maximum numner of vertices a polygon can have after an operation is performed. If a polygon is formed, after booleanization, with a vertex count exceeding the value specified in the edit box, that polygon will be cut into smaller polygons which are less than or equal to that value. If zero is specified, the polygons are not cut. f)"Output Grid" defines the data precision of the output. g)"Layer Output" setting controls which layer the booleanized polygons will appear in. h)"Cut Lines" check box controls whether or not to output booleanized polygons with cut lines. If not set, the cut lines are replaced by interior polygons drawn on another layer different from the target layer. Otherwise booleanized polygons may appear with cutlines. i)"View Result" will cause the first result to be displayed and the subsequent ones to appear in the "Recent File List" of the viewer, the filenames added at the end of the "File" menu. Note that there can be multiple results generated from the same usage of the tool if more than one job has been defined. See step 3 below. j)"Batch Mode On" will cause the tool to generate a batch file for the jobs defined instead of executing them upon hitting OK. See step 3 below. k)"Layers..." brings up the "Layer Table" dialog box. l)"Output" is the name of the GDS file that will be generated. 3)Hit the "New Job" button to define the next job and go back to step 2 or continue to step 4. Note that you can use "Prev Job" and "Next Job" buttons to review or edit jobs that are already defined. "Remove Job" will remove the job currently displayed. 4)Hit OK and the tool will either generate the result(s) or create a batch file.
The plotter configuration is no longer file based. The plotter settings, however, can be imported from a file by hitting the "Import..." button from the "Plotter Configuration" dialog box. The settings can also be copied into a file by hitting the "Export..." button from the "Plotter Configuration" dialog box. (i.e. there is no longer any dependence on a file called c:\plot.cfg)
Added Booleanizing and Sizing tool
This tool was added to booleanize and or size the polygons in the current GDS file displayed by the viewer. When executed, a user specified GDS file will be generated with and then automatically displayed by the viewer. Note that all nonzero width paths are converted to polygons.
The output generated will have the following characteristics: 1)It will be flat data. 2)The booleanized polygons will appear in a user specified layer. 3)The polygons from the original GDS file may appear in another user specified layer if the user sets the sizing to do so. The following explains the usage of this tool. 1)Use "Tools|Execute Sizing..." menu item to launch "Execute Sizing" dialog box. 2)Set "Execute Sizing" dialog box settings wherever necessary: a)"Sizing" specifies how much to grow the polygons. If set to 0.0, the polygons will not be grown. b)"Target Layer" setting controls which layer the booleanized polygons will appear in. c)"Duplicate Layer" check box controls whether or not to pass the pre-booleanized polygons along to the output. d)"Duplicate Layer" edit box specifies which layer the pre-booleanized polygons will appear in. e)"No Cut Lines" check box controls whether or not to output booleanized polygons with cut lines. If set, the cut lines are replaced by interior polygons drawn on another layer different from the target layer. Otherwise booleanized polygons may appear with cutlines. Note that the "Duplicate Layer" controls are disabled when "No Cut Lines" check box is set. f)"Smoothing" edit box specifies which line segments to take out. Any segments smaller than the length specified are taken out. This works with the "Sizing" control and was created to avoid the apearance of spikes when sizing. g)"Output File Name" is the name of the GDS file that will be generated. 3)Hit OK and the tool will generate a GDS file which will then be automatically loaded into the viewer.
The viewer now allows a user to see the fill pattern(s) of boundaries zoomed into whose vertices or edges are completely outside the viewing window.
Saves Plot Window Coordinates..
When you perform a plot window the coordinates of the window are now saved and can be used again without the need to re-enter them. Also if you use the mouse to define the window those coordinates are saved - thus it is much easier to make multiple plots with the same window coordinates.
Adjusted Bounding Box output
The Postscript Level I driver (vector) will use given LIMITS extent as the "bounding box" output.
Changed the way Paths are Plotted
The Postscript Level I (vector) driver used to support path width different outline and filling colors without round end path extension. This feature is now disabled so that round end path extension is plotted.
Added Structure and Layer List to the command line
As more companies want to launch GDSVU from another program, we've enhanced the ability to control GDSVU from the command line.
-struct:<STRUCTURE_NAME>This command line option enables one to specify which structure to display. Prior to this GDSVU opened up and the user had to enter the structure from the dialog box.
-laysdisp:<FIRST_LAYER,SECOND_LAYER,...LASTLAYER>enables the calling program to specify which layers are to be displayed.
The following is an example of its usage:
gdsvu.exe demo1.gds -struct:QE -laysdisp:0,1,2,3,8,10
To use this feature:
1) Select the Info|Text|String... menu item.
2) Enter the string or substring to search for in the "Text String Query" dialog box.
3) Use the Tab key to cycle through all the occurrences of the strings.
Viewer no longer supports Windows 3.1
When the compiler was updated to Visual C++ 5.0 all support for Windows 3.1 was lost.
BUG FIX: Crash if Top Structure had "|" in name.
The viewer would crash whe trying to load such a file. This has now been fixed.
The color to which it's highlighted can be configured in the color selection dialog box launched from the new menuitem, "File|Preferences|Highlight Color...". The default color is gray, RGB(128,128,128) where color range for Red, Green, Blue is [0-255].
Highlighting is off by default since this alters the appearance of the display of the drawing. To turn it on, select either "File|Preferences|Highlight Query" or "Settings|Highlight Query" menuitems.
ZOOMING AND PANNING IN AND OUT WHILE QUERYING
This is a new functionality that's been introduced. A user selects any query event, and during this mode, he/she is allowed to zoom out, pan, go to the home view, etc, and remain in query mode, An example of how this feature can be applied is illustrated in the following example:
Notice that steps three and four were done only once. Before this change, either of those events would have cancelled the query mode and the viewer would have remained in the event chosen until the user escaped from it. Now, once step two is done, those kind of events cancel themselves out upon completion and restore the measure mode.
Fixed Misc Extact Errors
The message that reports
"Cfg write error -- Cannot plot in opaque mode."was mistakingly appearing during DXF extraction. It didn't affect the output and only happened if no plot.cfg file has been created. This message will no longer appear here.
The mode that controls the fill/outline state of extraction was not set in a given session until the "Extract Settings" dialog box was launched from the "Tools|Extract Setup..." menuitem. It is now initialized in the beginning of the session.
Color mapping is provided which maps the predominant color of a layer's fill style to the corresponding DXF layer number. This was done since in GDSVU layers are mostly distinguished by their fill styles rather the their outline color.
New Keycodes may be Needed
KEYCODES SUPPORTED HAVE BEEN CHANGED
Translator key strings (such as ASM 3500) used to enable a license of GDSVU. This is no longer true due to conflicts (An open GDSVU program would then tie up the translator in floating mode....)
A separate keystring is now always required for GDSVU.
Fixed a Nasty Memory Leak!
GDSVU did not release memory used for each screen redraw. Enough panning and zooming would eventually exhaust the computer's memory. Reported by Kent Lottis, Loptics, Inc.
Fixed Plotting Bug for Paths with Round End
Paths with round ends were incorrectly plotted as having flush ends. This was fixed.
Added LIBNAME into the "Library Info" Dialog
The user can see the "Library Name" at the beginning of the text displayed in the "Lib. Info." dialog box.
Large GDSII files with more than 45000 structure references were generating a memory fault in the gscan module. This has been fixed.
Updated LSERV to 4.0 for Y2K
Added support for the LSERV 4.0 license manager. This will enable two important improvements:
LSERV 4.0 can be served from Windows 95 machines
LSERV 4.0 fixes the year 2000 date bug....
We're now using the Install Shield installation. This is a much more
sophisticated install including wizards that automatically detect and
install MFC DLL's, WinG, Sentinel Key Driver, Hostid detection and the
Paths displayed in outline mode will retain their width in appearance
without filling the inside of them. Previously in outline mode only
the centerline of the path was displayed.
Requested by Steve DB
Added Support for GDSII Box
GDSII Box entities were being dropped! They are not converted internally
to be the equivalent of a boundary.
Reported by LSI Photomask
Faster Map File Loads on Win 3.1
The MAP file is similar to a Windows .ini file but holds more than
1000 lines (data for each layer) and loaded very slowly on slower
machines (especially noticeable in Windows 3.1). We replaced the
canned Microsoft .ini reading code with our own faster code. Result:
a map file that previously required 18 seconds to load on a 486/66
running Windows 3.1 now loads in less than two seconds.
Requested by Bosch
Bug Fix: Temporary File not Cleaned Up
Whenever GDSVU application was opened and closed without loading a GDSII file, a temporary file was left behind containing layer settings information under certain preference conditions. This has been fixed.
Bug Fix: Junk on Screen under Windows 3.1
This problem started in v1.42 when the background color functionality,
the one which allows a user to define the screen color, was restored.
Some garbage in the windows was displayed upon starting up GDSVU although
it did disappear once a file was loaded. This is fixed.
Reported by Bosch and Franz Furst
Changed appearance and replaced combo box control to an edit box. The edit box makes sure that only values [1-20] are entered. This makes it a little cleaner and simpler to use.
Added Path Display as Fill to the Preferences Pull Down
A user can now control the default display of paths upon start up.
Requested by SteveDB of Artwork who hates it when his paths display as solid and wanted GDSVU/W to always display paths as "outline".
We also modified the settings menu for display path as outline|solid. This now only affects the current session.
Grid Spacing Warning no longer displayed at each redraw
A warning message, "Grid spacing too small. No grid drawn.", use to
appear after each window redraw. This message appears if the value set
int the "Grid Spacing" edit box of the "Snap Settings" dialog box, is
too small. Now the message will appear at most one time after the
value has been changed. Editor's Note: thank God, I don't
need to be reminded a thousand times....
We've been able to speed up GDSVU on typical files by a factor of 10X (and on some very complex files up to 50X) by adding a pixel threshold display filter. For more details on how we actually accomplished this see the press release fastview.htm and see the detailed explanation display.htm.
The pixel threshold can be set from two different locations:
Adjustments made here are in effect upon the start up of GDSVU.
Settings | Display Filter....
Adjustments made here affect the current session only. Settings
Display only entities larger than XXX pixels.
Any entity that would be smaller than the specified number of pixels is ignored. The valid range is from 1-20 pixels.
When checked, this enables the pixel threshold filter.
Display Structure Extent Boxes
When checked, this draws a box around the structure extents. It is useful when your chip would otherwise "disappear" due to the fact that most entities are filtered out.
Four additional variations of Postscript level 2 are now output. These are "bitmapped" PS, not vector data but they now produce plots exactly as the other raster plotter drivers do.
PostScript II HP BW - same as above but monochrome.
PostScript II Color - creates a Postscript level 2 file but does not prepend or append any control strings. These can be added in the advanced setup dialog.
PostScript II BW - same as above but monochome.
This version displays an hourglass after the Plotting Completed dialog box goes away. There is some delay due to writing the plot file to disk after the dialog box disapears and the new hourglass will indicate to the user that his machine is not locked up.
Associating Destination Plotter with plot.cfg
Previously if one had definined multiple plot.cfg files each with a different Windows printer one also had to change the destination printer manually when loading the new setup.
Now the destination printer is stored in the .cfg file so loading a new setup will update the destination printer automatically.
Requested by Bosch
Fixed TIFF DPI Header Value
Fixed a bug where if the TIFF DPI had more than three digits (999) the DPI value placed into the TIFF header was corrupted.
Requested by Electroprint A/S
Note: This fix was in response to a problem BOSCH was experiencing when plotting with European formats A4 to A0.
New driver for HP870 and HP 1200C Deskjet Printers
We've created a new CYM driver that will support the 1200C deskjet. It may need some testing since we don't have this printer in house.
(GDSVU ONLY) gdsvurpt.t$t ==> gdsvurpt.t_t gdsvurpt.d$d ==> gdsvurpt.d_d (VU2D ONLY) vu2drpt.t$t ==> vu2drpt.t_t vu2drpt.d$d ==> vu2drpt.d_d
Zoom and Pan Speed Improvement!
A very significant increase in zooming and panning speed has been made. The more complex the GDSII file the larger the improvement. The improvement was made by efficiently determining which structure branches could be ignored when writing to the screen.
File loading Speeded UP!
A significant improvement has been made on loading large complex GDSII files. The program must process each structure definition and insertion. The method of comparing the names has been greatly speeded up by using a hash table. The more structure definitions and insertions the more noticeable the improvement.
Info Query Speeded Up
The same improvements to zoom and pan speed now apply to Info queries. We also show progress bar when searching a large database and enable the user to cancel a query.
Line Type Dialog Box
We've added linetype definitions to the line color dialog box. This is to make GDSVU interface and plotting compatible with the GDSPLOT program. GDSVU will not display the actual linetype (uses only solid) but the information is there for plotting purposes.
Context Sensitive Help
We've implemented context sensitive help - previous versions had only a single limited help file.
The Magic program (and certain others) output GDSII arrays differently than one would expect based on the Calma GDSII documentation. In order to make GDSVU properly display AREFs generated by magic an option has been added.
From the Settings - Menu pulldown check "Magic Compatible"
SUPPORT SPACES IN FILENAMES AND STRUCTURE NAMES
GDSVU/W now supports spaces inside of structure names and GDSII file names.
FIXED CONTACT LAYER DISPLAY BUG
All boundaries contained in a contact layer (fill type 16,17,18) must have 5 vertices or they will not be filled. Note: a simple square has 5 vertices since the first and last point are included in the count.
USE OF GDSPLOT ENGINE FOR PLOTTING
If GDSVU/W is used in conjunction with GDSPLOT the gdsplot engine will be used for plotting.
2) On Windows 3.1, independent structure dependency displays didn't appear in the Dependency dialog box launched from the structure dialog box.
3) On Windows 3.1, needed to reinitialize the WinG bitmap to define pallete changed after a background color change was requested.
2) Auto rotate option added for plot page orientation in the "Page Setup" dialog box launched from the "Page Setup..." menu item under the "Plot" pulldown menu. Note this only works when scale=FIT; not for fixed scale factor.
3) Nesting level control has been added under the "Settings" pulldown menu. User can now determine how many levels of hierarchy to display.
4) 0 width paths can be highlighted by setting the menu item "Highlight 0 width path on/off" under "Settings" pulldown. This feature is useful when running DXF2GDS and searching for 0 width paths generated by any errors in the DXF file.
5) Path display control (Solid/Fill) has been added under "Settings" pulldown.
6) Percentage readout of drawing is provided in status bar.
7) Name of current layer map file appears in title of layer table.
8) Structure selection dialog box allows pasting or typing of structure name, and it also has a button to display a structure report of the last valid structure appearing in the edit box. The information in this report provides the extents and element counts of the structure and its children.
9) A layer report of the active layers can be launched from the "Info" pulldown menu's menuitem "Layer Report...This is primarily useful for recording your layer fill settings.
10)Unix type layer map files can also be read by GDSVU/W (previous versions could not) but will be saved in the new Windows compatible format should a user save the layer settings from the "Layer Table" dialog box.
11) Fill pattern color changes optimized in filling routine. This speeds up the display when many different fill patterns are used.
12) Progress bar now displayed during plotting.
2) Fill pattern button displays adapted to WinG.
3) Info querying highlighting by traversing through undefined references was incorrectly highlighting the wrong references.
4) Changes to layer settings after the "Apply" button was hit failed to generate a necessary redraw.
8) Temporary working directory path was not initialized if it wasn't in registry or program ini file.
2) Increased data block sizes in database to increase loading speed.