What’s New in UniPlot 4.1.2

This page describes the changes made to UniPlot 4.1.2 since version 4.1.1.


  • New function to save IPW files in compact form (File=>Close (Save Compact)).
  • DocSave: New Parameter bAddToMRU. This parameter can be used to avoid that the file name is added to the list of recently used files.
  • UniScript-Debugger: New improved tool tips for UniScript objects.
  • Dataset Style: A selection of properties for a dataset style can be specified in the Tools=>Dataset Style Configuration dialog box. Example: To create a style that will only set the curve style to a solid line style, create a dataset style with only the curve-style property enabled and all other properties disabled.
  • New features have been added to the Data=>3D-Dataset=>Z-Values and Data=>3D-Dataset=>Isolines dialog boxes. A autoscale function and a new function to create isoline labels have been added.

New UniScript Functions

  New Functions in UniPlot 4.1.2
OnImportUpdateNCFile OnImportUpdateNCFile will be invoked by the frame work, when the user imports a datafile.
XYZGetIsoAreas XYZGetIsoAreas returns the area between the isolines as a percent value of the complete map.
XYZGetIsoValuesScaleType XYZGetIsoValuesScaleType returns information about the autoscaling of isoline values (Autoscale On/Off, Type, Number of values).
XYZGetLabelFormatType XYZGetLabelFormatType returns a value that specifies how the decimal places of isoline labels are created (manually or automatically).
XYZGetLabelTypeIsolines XYZGetLabelTypeIsolines returns the isoline label settings.
XYZSetIsoValues XYZSetIsoValues sets the isoline values.
XYZSetIsoValuesScaleType XYZSetIsoValuesScaleType specifies how the isoline values are calculated (atuomatically or manually).
XYZSetLabelFormatType XYZSetLabelFormatType specifies how the decimal places of isoline values are calculated (manually or automatically).
XYZSetLabelTypeIsolines XYZSetLabelTypeIsolines specifies how the isoline labels are placed in the dataset.
strmatchi strmatchi returns a vector of indices of those matrix elements which match the given pattern.

Modified UniScript Functions

  Changed Functions in UniPlot 4.1.2
DocSave DocSave saves a document to disk.
RoundDown Is replaced by fround.
RoundUp Is replaced by fround.
ST_complement Compute the complement of a in b (the elements of b that are not in a).
XYZDeleteIsoValues XYZDeleteIsoValues deletes isoline values.
XYZGetAutoScaleValues XYZGetAutoScaleValues returns a vector with automatically calculated isoline values.
XYZSetFillColors XYZSetFillColors sets the fill color for areas between isolines (i.e. to the color grade of the 3D surface).
XYZSetProps XYZSetProps sets the dataset properties of a 3D dataset.
int int returns the 32-bit integer part of a real number.
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.

Bug Fixes

The following bugs have been fixed:

  • (ID543) The help index for UniScript key words (if, else, for, ...) did not direct to the right pages.

  • (ID537) The FEVIS-Import-Filter had a bug.

  • (ID532) Some MDF files (VS100 /INCA) could not be imported.

  • (ID533) If a variable type was changed in a for loop a memory access violation occurred.

    def test_for()
        for (i in 1:1000) {
            i = "a"
  • (ID535) The incorrect property dialog box was opened when the user right clicked on an OLE object (e.g. Excel Sheet).

  • (ID553) Sometimes when a dataset was clicked a different dataset was marked.

  • (ID558) The XYZGetIsoAreas function caused a memory access violation when no isolines were specified for a 3D dataset. The documentation for this function was missing.

  • (ID571) The FS_GetFreeSpace and FS_GetTotalSpace function returned valid values only for drives with a capacity of less than 2GB.

  • (ID588) UniScript: The obj_keys function had an error:

obj = [.1,2,3]; obj_keys(obj, 0, 10) // did not work
obj = [.1,2,3]; obj.keys(0, 10)      // Did work
  • (ID590) The obj_save function did not save Variant matrices and negative keys correctly.

    o = [. 1 = [1, "1"]]
    obj_save(o, "d:/test.xml") // => a[1] was missing in the file
    o = [. -1 = 2] // negative Keys
    obj_save(o, "d:/test.xml") // error
  • (ID591) During the deallocates (garbage collection) of a list object, a memory access violation could occur.

    list = [.];
    t = list;
    for (i in 1:100000) {
        t.val = i;
        t.next = [.];
        t = t.next;
    t = list = 0; gc();
  • (ID610) The documentation of the RemoveDirectory was missing.