What’s New in UniPlot 4.0.0

This page describes the changes made to UniPlot 4.0.0 since version 3.6.x.

Important changes to UniPlot 4

  • UniPlot 4.x can be used with Windows 98, Windows Me, Windows NT 4.0, Windows 2000 and Windows XP.
  • UniPlot 4.x cannot be used with Windows 95.
  • UniPlot 4.x and UniPlot 3.x can be used on the same computer parallely . More information about using UniPlot 4 and 3 is covered in the next chapter.
  • The file format (.IPW) has been changed in UniPlot 4. UniPlot 4 can read all former UniPlot file formats, but older UniPlot versions cannot read the UniPlot 4 file format.
  • A new license key is necessary for UniPlot 4.0. The 3.x license key is invalid for UniPlot4.x. If you have purchased UniPlot 3.x or an update to 3.x after October 1, 2002 you can receive a new license key free of charge. Please send an e-mail with your current license key. If you purchased your license or your update before October 1, 2002 will would be happy to send you a quote for an update.

New Features


UniPlot 4.0 can create 3D surface plots of multiple datasets in one diagram. See UniPlot:3DView for more information about the new plot type.


Table Object

Under UniPlot 3.x tables were created by multiple text and line objects. UniPlot 4.0 offers a table object to make it easier to create legends and text fields (see Table Objects).


Features of the table object:

  • Undo/Redo, Clipboard support.
  • Insert/Delete columns and rows.
  • Merge Cells.
  • Settings for individual fill color, font, border.
  • Settings for individual font and the alignment.
  • Number and date format.
  • Rotating cell text.
  • Named cells.
  • Field functions in cells.

Filter functions for x/y datasets

New to UniPlot 4.0 a XY dataset can have one or more filter functions. A filter function calculates the output data that is displayed on the plot from its input data, eg. a spline curve. The filter functions are saved with the dataset. The filter functions are recalculated if the original data is modified.

UniPlot comes with a number of filter functions. For a list of functions see:ref:filter-functions-for-xy-datasets.



The bubble diameter and color can be set to be proportional to the z-variable. (see Data=>3D-Dataset=>Scatter Plot.)


Improved Command: Data=>Dataset List

The command Data=>Dataset List now displays all datasets of the active page. So far only the datasets of the selected diagram were listed.

Embedding picture files

Picture files can be embedded into a UniPlot document. Embedded pictures are saved in the IPW document.

Two new picture formats are now supported: PNG and GIF (see Edit=>Insert Graphic).

Document Password Protection

To control access to information in UniPlot documents set a password that is required to open or modify the document. To set the password for a document choose Tools=>Protect Document. If you have high security needs however you should protect your documents with a different tool.

Background Page

For documents with multiple pages one page can be selected as the background page. The background page will only be displayed, it cannot be edited unless if the background page is active. To select a background page choose Page=>Select Master Page from the page context menu. To open this menu right click outside the page frame.

Data Browser

The data browser has been enhanced by new functions to load datasets. Besides the available functions to load 1D-, 2D- and 3D datasets, the following commands have been added:

  • Add File: The function adds one or more datasets to a page. One dataset must be selected in the page to retrieve the data source. The function finds all datasets in the page which were loaded from the same data source. The function creates copies and loads the data from the open NC file. Example: Two datasets (Torque and power versus speed) have been loaded from a data file Test1.nc. The function will add two datasets (Torque and power versus speed) from the open NC file.
  • Replace File: The function replaces the data of all datasets of one data source given by the selected dataset.
  • Text: Create Header Table: Creates a table with placeholders for the selected global attributes.
  • Text: Load Placeholder text: Loads attribute values for all placeholders in the active page..
  • 2D Cycle: Splits a signal into cycles and creates a separate dataset for each cycle.

More New Features

  • Error Bars for xy datasets
  • New Editor for UniScript files.
  • New Expat version 1.95.5 (see Overview XML).
  • New sqlite version 2.8.6 (see Overview SQLite).
  • New pcre version 4.2 (see regsplit).
  • UniScript: The length of constant strings is no longer limited to 255 characters.
  • UniScript: The size of UniScript functions and script files is no longer limited.

Please note UniScript-Libraries (see saveiclib) and Extension-DLLs (see loadlib) created for UniPlot 3.x need to be rebuild for UniPlot 4.x.

Using UniPlot 3 and UniPlot 4 on the same computer

  • The file format (.IPW) has been changed in UniPlot 4. UniPlot 4 can read all former UniPlot file formats, but older UniPlot versions cannot read the UniPlot 4 file format. Some safety have been built in to prevent problems with the new format:
  • If you open a UniPlot 3 file with UniPlot 4 you will be warned if you want to save this file with UniPlot 4. You can save the file under a different name to make sure that the original file can continue to be opened by UniPlot 3.
  • If you try to open a UniPlot 4 file with UniPlot 3 you will get a message box that this file has been created by a newer version. The file can then be opened by the current UniPlot Viewer. Viewer 4 is installed with UniPlot 3.6.7 and 3.6.8.

New and altered UniScript Functions

  New Functions in UniPlot 4.0.0
ADDIN_AddToUI ADDIN_AddToUI adds a function to the UniPlot user interface.
DocGetProtectionComment DocGetProtectionComment retrieves the comment that is displayed when a password protected document is opened.
DocGetProtectionFlags DocGetProtectionFlags returns the protection flag.
DocIsReadOnly DocIsReadOnly checks if the read-only flag is set.
DocSetProtectionFlags DocSetProtectionFlags sets the password, the comment and the protection flag.
DocSetReadOnly DocSetReadOnly sets the read-only flag.
EdFind EdFind finds a string in an editor.
EdFindReplace EdFindReplace replaces a string in an editor.
EdFoldAll EdFoldAll
EdGetCurrentPos EdGetCurrentPos returns the cursor position in characters from the beginning of the file.
EdGetCursorPos EdGetCursorPos returns the cursor position in column/row coordinates.
EdGetLineFromPos EdGetLineFromPos returns the line number for the given position.
EdGetMarginType EdGetMarginType
EdGetPosFromLine EdGetPosFromLine returns the position of the given line. The position is the number of characters from the beginning of the file.
EdGetWnd EdGetWnd returns the window handle
EdGotoPos EdGotoPos sets the cursor to the given position
EdIsReadOnly EdIsReadOnly checks if the read-only flag is set.
EdSetMarginType EdSetMarginType
EdSetReadOnly EdSetReadOnly sets the read-only flag.
EdToggleFolding EdToggleFolding
GetProfileSection GetProfileSection returns all keys with their values of the specified section in the form key=value.
GetProfileSectionNames GetProfileSectionNames returns a string vector with the section names.
GridLoadCallback_xxx GridLoadCallback_xxx is called when the user presses the Load button in the data browser.
GridLoadEnableCallback_xxx GridLoadEnableCallback_xxx
ImageIsFrame ImageIsFrame checks if the picture frame is visible.
ImageMirror ImageMirror reflects the image vertically.
ImageRotate90 ImageRotate90 rotates the image by 90 degrees clockwise or counterclockwise.
ImageSaveAs ImageSaveAs saves the picture in its orignal format as a file.
ImageShowFrame ImageShowFrame shows or hides the frame of the picture.
NC_DlgGetFileName The NC_DlgGetFileName function returns the NC file name of the currently open file in the NC file browser.
OLESavePicture OLESavePicture saves one OLE object in a file.
PageSetBackgroundPageName PageSetBackgroundPageName selects the page given by its name to be displayed in the background. The page must belong to the same document.
PageSetForegroundPageName PageSetForegroundPageName selects the page given by its name to be displayed in the foreground. The page must belong to the same document.
RemoveDirectory RemoveDirectory deletes an existing directory. The directory must be empty, and it must not be the current working directory or the root directory.
SynEdFind Is replaced by EdFindReplace.
SynEdFindText Is replaced by EdFind.
SynEdFoldAll Is replaced by EdFoldAll.
SynEdGetMarginType Is replaced by EdGetMarginType.
SynEdSetMarginType Is replaced by EdSetMarginType
SynEdToggleFolding Is replaced by EdToggleFolding.
TYAddData TYAddData adds data to a y/t dataset (1D dataset).
TYSetData TYSetData sets the coordinates of a y/t datasets (1D-dataset).
TableAddBrush TableAddBrush adds a new bush (fill color) to the brush list.
TableAddFont TableAddFont adds a font to font list of a table object.
TableAddFormat TableAddFormat adds a format string and cell type to a table object.
TableAddPen TableAddPen adds a pen to the list of pens of the specified table object.
TableCreate TableCreate create a new table object.
TableDeleteColumn TableDeleteColumn deletes a table column.
TableDeleteRow TableDeleteRow removes the specified row from the table
TableDestroy TableDestroy destroys the given table object and frees any memory the object occupied.
TableGetAlign TableGetAlign retrieves the text alignment for all cells or a range of cells.
TableGetAttrib TableGetAttrib returns a matrix of cell attributes.
TableGetBorderPenIndex TableGetBorderPenIndex
TableGetBrushIndex TableGetBrushIndex returns a matrix with the brush indices.
TableGetBrushList TableGetBrushList returns a matrix with 3 columns. Each row specifies a color used in the table.
TableGetColumnWidth TableGetColumnWidth returns a vector with column width in centimeters.
TableGetEdgeDistance TableGetEdgeDistance returns the distance between the text and the left cell edge.
TableGetFontIndex TableGetFontIndex returns a vector of font indices.
TableGetFontList TableGetFontList returns a vector with font handles.
TableGetFormatIndex TableGetFormatIndex returns a matrix with the format indices.
TableGetFormatList TableGetFormatList returns a string matrix with two columns with cell format information.
TableGetName TableGetName returns a matrix of cell names.
TableGetPenList TableGetPenList returns a vector with pen handles. A pen is used to draw the cell border line.
TableGetRowHeight TableGetRowHeight returns a vector with row heights in centimeters.
TableGetSelection TableGetSelection returns the current selection.
TableGetSize TableGetSize returns the number of rows and columns.
TableGetText TableGetText returns a matrix of cell text.
TableGetTextAngle TableGetTextAngle returns the text directions of all cells or a selection of cells.
TableGetTextExt TableGetTextExt returns the width and height of cell text.
TableInsertColumn TableInsertColumn inserts a new column of cells to the specified table.
TableInsertRow TableInsertRow inserts a new row of cells to the specified table.
TableIsCellMerged TableIsCellMerged returns TRUE (1) if the specified cell belongs to a merged cell.
TableIsPlaceholderDialogUsed TableIsPlaceholderDialogUsed
TableMergeCells TableMergeCells specifies which neighbouring cells are merged.
TableRedo TableRedo
TableSetAlign TableSetAlign sets the text alignment for all cells or a range of cells.
TableSetAttrib TableSetAttrib sets the cell attributes.
TableSetBorderPenIndex TableSetBorderPenIndex sets the pen index that is used to draw the border. Every cell is enclosed by 4 border lines.
TableSetBrushIndex TableSetBrushIndex sets the brush indices.
TableSetColumnWidth TableSetColumnWidth sets the column width in centimeters.
TableSetEdgeDistance TableSetEdgeDistance sets the distance between the text and the cell edge.
TableSetFontIndex TableSetFontIndex sets the font index.
TableSetFormatIndex TableSetFormatIndex sets the format indices.
TableSetName TableSetName sets the cell name.
TableSetRowHeight TableSetRowHeight sets the row height in centimeters.
TableSetSelection TableSetSelection sets the selection.
TableSetText TableSetText sets the cell text.
TableSetTextAngle TableSetTextAngle sets the text direction of all cells or a selection of cells.
TableUnMergeCell TableUnMergeCell splits a merged cell.
TableUndoEnd TableUndoEnd
TableUndoStart TableUndoStart
TableUsePlaceholderDialog TableUsePlaceholderDialog spedifies the dialog box which will be displayed if the table is double-clicked.
XYGetErrorbarConfig XYGetErrorbarConfig returns the error bar settings.
XYGetFilterFunctions XYGetFilterFunctions returns a scalar string with filter functions.
XYGetGetOrgDataFlag XYGetGetOrgDataFlag returns the flag set with XYSetGetOrgDataFlag.
XYGetScaleOffset XYGetScaleOffset gets the scaling for the x- and y coordinates of the given dataset.
XYIsFilterUsed XYIsFilterUsed checks if the original data or the filtered data is displayed.
XYIsMarkerOrgData XYIsMarkerOrgData checks if the marker are displayed for the original data points or the filtered data points.
XYIsMonoton XYIsMonoton returns TRUE (1) if the x-coordinates are strictly monoton increasing.
XYSetData XYSetData sets the xy-coordinates of a dataset.
XYSetErrorbarConfig XYSetErrorbarConfig sets the error bar settings.
XYSetFilterFunctions XYSetFilterFunctions sets one or more filter functions for a 2D dataset.
XYSetGetOrgDataFlag XYSetGetOrgDataFlag specifies if the XYGetData function returns the original data or the filtered data.
XYSetScaleOffset XYSetScaleOffset sets the scaling for the x- and y-coordinates of the given dataset.
XYShowMarkerOrgData XYShowMarkerOrgData specifies if the dataset markers are displayed for the original data or the filtered data.
XYUpdate The XYUpdate functions recalculates the filter functions of a 2D dataset.
XYUseFilter XYUseFilter specifies if the filter functions are used to calculate the output data.
XYZGetBubbleAttribute XYZGetBubbleAttribute returns the bubble plot settings.
XYZGetBubbleScaleValues XYZGetBubbleSize returns the bubble scaling values.
XYZGetBubbleSize XYZGetBubbleSize returns the bubble diameter in centimeters.
XYZIsBubbleVisible XYZIsBubbleVisible indicates whether the bubbles are visible.
XYZSetBubbleAttribute XYZSetBubbleAttribute sets the bubble plot attributes.
XYZSetBubbleScaleValues XYZSetBubbleScaleValues sets the scale values to calculate the bubble size.
XYZSetBubbleSize XYZSetBubbleSize sets the bubble size in centimeters.
XYZShowBubble XYZShowBubble shows or hides bubbles marking the original position of the data points. The bubble size and fill color can depend on the Z-Value.
mem _mem returns the size of used memory allocated by UniScript.
base64_decode base64_decode decodes a string that had been encoded using the base64_encode function.
base64_encode base64_encode encodes data into the base64 format
binary_decode Is replaced by base64_encode.
binary_encode Is replaced by base64_encode.
eval eval evaluates the string given as UniScript code.
eval_file eval_file loads a file with UniScript program code.
evalp evalp evaluates UniScript program code.
evalp_file evalp_file loads a file with UniScript program code.
get_prototype get_prototype returns the prototype string of a UniScript function.
nc_filename nc_filename returns the file name for a given ncid.
nc_varcopy nc_varcopy copies the data of a variable from one NC file to another NC file. The variable must exist in both files and must have the same number of points.
profiler_start profiler_start starts the profiler. The profiler can be used for analyzing the run-time behavior and performance of programs.
profiler_stop profiler_stop stops the profiler that has been started with the profiler_start function. The profiler can be used for analyzing the run-time behavior and performance of programs.
  Altered Functions in UniPlot 4.0.0
DocCreate DocCreate creates a new document or opens an existing document. The document can contain pages with diagrams. The document will be displayed in a window.
GetExceptionInfo GetExceptionInfo returns the current exception information vector.
GetTickCount GetTickCount returns the number of milliseconds that have elapsed since UniPlot was started.
GetUserDirectory GetUserDirectory returns the UniPlot user directory.
ImageCreate ImageCreate creates a picture object.
ImageGetLinkType ImageGetLinkType returns the link type.
MnGetStrings MnGetStrings returns the menu item strings of the specified menu.
PageSaveAsBitmap PageSaveAsBitmap creates a bitmap (.BMP) or JPEG (.JPG) file from the given page.
TYCreate TYCreate creates a new y/t datasets (1D dataset).
TYSetMinAndDelta TYSetMinAndDelta sets the minimum value x-min and the distance delta between 2 x-coordinates.
XYAddData The XYAddData function adds data to an existing dataset.
XYIsSpline XYIsSpline determines whether the data points are connected by a spline.
XYIsTYDataset XYIsTYDataset determines whether the dataset is a 1D dataset (yt-dataset).
XYSetSpline XYSetSpline determines if the data points should be connected with a spline or a polygon.
poly_hull poly_hull calculates the convex hull in the x/y plane.
tic tic retrieves the number of milliseconds that have elapsed since UniPlot was started.