ECMAScript Methode Math.pow(x,y)

Bitte benutzen Sie dieses Forum für Fragen, Kommentare und Probleme im Zusammenhang mit QCAD Professional

Moderators: andrew, Husky

Forum rules

Immer Betriebssystem und QCAD Version angeben.

Zeichnungsdateien und Bildschirmfotos beifügen.

Eine Frage pro Topic.

Post Reply
Ferdi
Full Member
Posts: 71
Joined: Tue Apr 15, 2008 5:42 pm
Location: Near Munich

ECMAScript Methode Math.pow(x,y)

Post by Ferdi » Mon Sep 07, 2015 11:41 am

QCAD 3.10.0 Pro
Windows 7 Pro 64bit

Die ECMAScript Methode Math.pow(x,y) zeigt bei Eingabe in ein Wertefeld der Werkzeugoptionen den Fehler Math.pow is not a number bzw. pow is not a number an.

Wird eine der kommenden Versionen von QCAD die wesentlich erweiterten Math.-Eigenschaften und -Methoden von ECMASCript 2015 (ES6) zur Verfügung stellen?

Grüße,
Ferdi

User avatar
andrew
Site Admin
Posts: 9063
Joined: Fri Mar 30, 2007 6:07 am

Re: ECMAScript Methode Math.pow(x,y)

Post by andrew » Mon Sep 07, 2015 12:49 pm

Ferdi wrote:Die ECMAScript Methode Math.pow(x,y) zeigt bei Eingabe in ein Wertefeld der Werkzeugoptionen den Fehler Math.pow is not a number bzw. pow is not a number an.
Funktionen mit zwei Parametern werden zur Zeit nicht unterstützt. Das hat mit Lokalisierung zu tun (manche Länder verwenden Komma ',' als Dezimalzeichen, wodurch z.B. "Math.pow(2,5, 2)" eingegeben würde, was nicht mehr eindeutig interpretiert werden kann.
Wird eine der kommenden Versionen von QCAD die wesentlich erweiterten Math.-Eigenschaften und -Methoden von ECMASCript 2015 (ES6) zur Verfügung stellen?
Eher nicht (das hängt von der Qt Skriptschnittstelle ab). Welche Funktionen werden konkret vermisst?

Ferdi
Full Member
Posts: 71
Joined: Tue Apr 15, 2008 5:42 pm
Location: Near Munich

Re: ECMAScript Methode Math.pow(x,y)

Post by Ferdi » Mon Sep 07, 2015 2:35 pm

Danke für die schnelle und einleuchtende Antwort.
Welche Funktionen werden konkret vermisst?
Für die Erstellung von logarithmischen Teilungen (Skalen) wäre die Funktion Log10(x) sehr hilfreich. Der Umweg über eine Tabelle aus LibreOffice Calc bzw. Excel ist dafür etwas umständlich.

Grüße,
Ferdi
Last edited by Ferdi on Sat Sep 12, 2015 4:26 pm, edited 1 time in total.

User avatar
andrew
Site Admin
Posts: 9063
Joined: Fri Mar 30, 2007 6:07 am

Re: ECMAScript Methode Math.pow(x,y)

Post by andrew » Mon Sep 07, 2015 3:28 pm

Eine Möglichkeit für log10(x) wäre die Eingabe von:

log(x)/LN10

Ferdi
Full Member
Posts: 71
Joined: Tue Apr 15, 2008 5:42 pm
Location: Near Munich

Re: ECMAScript Methode Math.pow(x,y)

Post by Ferdi » Mon Sep 07, 2015 3:40 pm

Vielen Dank für den sehr wertvollen Tip!

Grüße,
Ferdi

User avatar
andrew
Site Admin
Posts: 9063
Joined: Fri Mar 30, 2007 6:07 am

Re: ECMAScript Methode Math.pow(x,y)

Post by andrew » Mon Sep 07, 2015 4:14 pm

In Zukunft werden die verfügbaren Funktionen in einer separaten Datei definiert:
https://github.com/qcad/qcad/blob/maste ... s/input.js

log10 und ein paar andere Polyfills für ECMAScript 2015 (ES6) habe ich noch hinzugefügt. Falls es noch andere wünschbare Funktionen gibt, können diese problemlos noch angefügt werden.

Ferdi
Full Member
Posts: 71
Joined: Tue Apr 15, 2008 5:42 pm
Location: Near Munich

Re: ECMAScript Methode Math.pow(x,y)

Post by Ferdi » Tue Sep 08, 2015 3:33 pm

Danke,
ich bin begeistert!

Grüße,
Ferdi

User avatar
andrew
Site Admin
Posts: 9063
Joined: Fri Mar 30, 2007 6:07 am

Re: ECMAScript Methode Math.pow(x,y)

Post by andrew » Thu Oct 08, 2015 10:58 am

Funktionen mit zwei Parametern (Math.pow(3,2)) werden ab QCAD 3.11 unterstützt. Leider hat dies nun die erwarteten unangenehmen Folgen für Anwender, die Komma statt Punkt verwenden möchten:
viewtopic.php?f=89&t=3754

Für Vorschläge und Ideen wäre ich dankbar. Vielleicht kenn jemand eine Anwendung, welche das gleiche Problem anders löst?

Ferdi
Full Member
Posts: 71
Joined: Tue Apr 15, 2008 5:42 pm
Location: Near Munich

Re: ECMAScript Methode Math.pow(x,y)

Post by Ferdi » Fri Oct 09, 2015 11:19 am

Eine mögliche Alternative wäre, den Argument-Separator in den Applikationseinstellungen konfigurierbar zu machen. Von dieser Möglichkeit wird im folgenden Beispiel Gebrauch gemacht.
http://muparser.beltoforion.de/mup_locale.html#idLoc

Gruß,
Ferdi

Post Reply

Return to “QCAD Professional”