Was ist neu in UniPlot 4.1.2

Auf dieser Seite werden die Änderungen von UniPlot 4.1.2 gegenüber UniPlot 4.1.1 beschrieben.

Erweiterungen

  • Neue Funktion zum kompakten Speichern von IPW-Dateien (Datei=>Schließen und kompakt speichern).
  • DocSave: Neuer Parameter bAddToMRU. Über diesen Parameter kann der Eintrag der Datei in die Liste der zuletzt geöffneten Dateien (Recent-File-List) verhindert werden.
  • UniScript-Debugger: Tooltips beim Debugging von UniScript-Objekten verbessert.
  • Es können nur einzelne Eigenschaften von Datensatzstilen über den Extras=>Datensatz-Stile bearbeiten-Dialog ein- und ausgeschaltet werden. Bisher musste dazu die Stil-Datei mit einem Editor bearbeitet werden.
  • Die Dialoge Daten=>3D-Datensatz=>Iso-Werte und Daten=>3D-Datensatz=>Isolinien wurden erweitert. Es können nun auch Isolinienwerte eingegeben werden, die im Kennfeld nicht vorhanden sind. Eine neue Funktion zur Berechnung der Isolinienstufung sowie eine neue Funktion zur Beschriftung der Isolinien wurde zugefügt.

Neue UniScript-Funktionen

  Neue Funktionen in UniPlot 4.1.2
OnImportUpdateNCFile OnImportUpdateNCFile wird aufgerufen, wenn der Anwender eine Datendatei importiert.
XYZGetIsoAreas XYZGetIsoAreas gibt die Flächen der Isolinien zurück (als Anteil in Prozent zur Gesamtfäche des Kennfeldes).
XYZGetIsoValuesScaleType XYZGetIsoValuesScaleType liefert Informationen über die Ermittlung der Isolinienwerte (Autoskalierung, Typ, Anzahl der Autowerte).
XYZGetLabelFormatType XYZGetLabelFormatType erfragt, wie die Nachkommastellen für Isolinien-Label bestimmt werden (manuell oder automatisch).
XYZGetLabelTypeIsolines XYZGetLabelTypeIsolines erfragt wie die Isolinien beschriftet werden.
XYZSetIsoValues XYZSetIsoValues legt die Werte der Isolinien fest.
XYZSetIsoValuesScaleType XYZSetIsoValuesScaleType legt fest, wie die Isolinienwerte bestimmt werden.
XYZSetLabelFormatType XYZSetLabelFormatType legt fest, wie die Nachkommastellen für Isolinien-Label bestimmt werden (manuell oder automatisch).
XYZSetLabelTypeIsolines XYZSetLabelTypeIsolines legt fest, wie die Isolinien beschriftet werden.
strmatchi strmatchi liefert einen Vektor mit den Indizes der Stringmatrixelemente, die ein bestimmtes Muster enthalten.

Geänderte UniScript-Funktionen

  Geänderte Funktionen in UniPlot 4.1.2
DocSave DocSave speichert ein Dokument.
RoundDown Veraltete Funktion, ersetzt durch fround.
RoundUp Veraltete Funktion, ersetzt durch fround.
ST_complement ST_complement berechnet das Komplement von a in b, das sind die Elemente von b, die nicht in a sind oder 0 (real) oder „“ (string).
XYZDeleteIsoValues XYZDeleteIsoValues löscht Isolinienwerte.
XYZGetAutoScaleValues XYZGetAutoScaleValues liefert einen Vektor mit Isolinienwerten.
XYZSetFillColors XYZSetFillColors setzt die Farben für das Füllen der Flächen zwischen den Isolinien bzw. für den Farbverlauf der 3D-Oberfläche.
XYZSetProps XYZSetProps setzt Eigenschaften eines x/y/z-Datensatzes.
int int schneidet die Nachkommastellen einer reellen Zahl durch Umwandlung in eine 32-Bit Ganzzahl ab.
profiler_stop profiler_stop beendet den mit profiler_start gestarteten Profiler-Lauf.

Fehlerkorrekturen

Die folgenden Fehler wurden korrigiert:

  • (ID543) Im Hilfe-Index wurde bei UniScript-Schlüsslwörtern (if, else, for, …) nicht auf die richtigen Seiten verwiesen.

  • (ID537) Der FEVIS-Import-Filter war fehlerhaft.

  • (ID532) Es konnten einige VS100-Dateien (MDF-Dateien) nicht importiert werden.

  • (ID533) Es tritt eine Speicherzugriffsverlezung tritt auf, wenn man in einer for-Schleife den Variablen-Typ ändert.

    def test_for()
    {
        for (i in 1:1000) {
            i = "a"
        }
    }
    
  • (ID535) Rechte Maustaste auf OLE-Objekt (z. B. Excel-Tabelle) öffnete einen falschen Eigenschaften-Dialog.

  • (ID553) Wurde mit der Maus ein 2D-Datensatz angeklickt wurde in einigen Fällen ein anderer 2D-Datensatz markiert.

  • (ID558) Die Funktion XYZGetIsoAreas führte zu einer Speicherzugriffsverletzung, wenn im Datensatz keine Isolinien vorhanden waren. Die Funktion war bisher nicht dokumentiert.

  • (ID571) Die Funktionen FS_GetFreeSpace und FS_GetTotalSpace gaben nur für Laufwerke < 2 GB korrekte Werte aus.

  • (ID588) UniScript: Die Funktion obj_keys hatte einen Fehler:

    obj = [.1,2,3]; obj_keys(obj, 0, 10) // funktionierte nicht
    obj = [.1,2,3]; obj.keys(0, 10)  // Abhilfe
    
  • (ID590) Die Funktion obj_save speicherte Variant-Matrizen und Werte mit negativen Schlüsseln fehlerhaft.

    o = [. 1 = [1, "1"]]
    obj_save(o, "d:/test.xml") // => a[1] wurde nicht gespeichert
    
    o = [. -1 = 2] // negative Keys
    obj_save(o, "d:/test.xml") // Fehler
    
  • (ID591) Bei der der Speicherfreigabe (garbage collection) konnte es bei Listen zu einer Speicherzugriffsverletzung kommen.

    list = [.];
    t = list;
    for (i in 1:100000) {
        t.val = i;
        t.next = [.];
        t = t.next;
    }
    t = list = 0; gc();
    
  • (ID610) Die dokumentierte Funktion RemoveDirectory fehlte.

id-800000