Use command line like a calculator

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.

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

Use command line like a calculator

Post by Ferdi » Tue May 17, 2016 7:46 pm

QCAD Professional v3.14.3
Windows 7 Pro 64-Bit

Die Funktion 'command line like a calculator' von Robert S (alias riverbuoy), siehe
http://www.ribbonsoft.com/rsforum/viewt ... 107&t=3543 , bietet die Ausführung von Berechnungen in der Befehlszeile und die bequeme Übernahme der Ergebnisse per Kopieren & Einfügen in die QCAD-Textfunktion (TE), in Wertefelder der QCAD-Werkzeuge und in externe Text- bzw. Kalkulationsprogramme.

Dazu ist es erforderlich, die Originaldatei CommandLine.js im Verzeichnis
'scripts/Widgets/CommandLine' durch die von riverbuoy bereitgestellte Datei nach jedem
Release-Wechsel zu ersetzen. Ich befürchte, dass das irgendwann einmal zu Inkompatibilitäten führen wird. Es wäre daher zuverlässiger und bequemer diese Funktion dauerhaft zu implementieren.

Grüße,
Ferdi

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

Re: Use command line like a calculator

Post by andrew » Wed May 18, 2016 7:54 am

Der Kommandozeilenrechner wurde mittlerweile integriert. Die neuste Version der entsprechenden Datei gibt es unter:
https://raw.githubusercontent.com/qcad/ ... andLine.js

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

Re: Use command line like a calculator

Post by Ferdi » Wed May 18, 2016 9:24 am

Vielen Dank.
QCAD begeistert mich immer mehr!

Grüsse,
Ferdi

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4939
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Use command line like a calculator

Post by Husky » Thu May 19, 2016 8:05 am

Hi,

hatte ich bisher noch nicht einmal ausprobiert - dachte aber das ist doch vielleicht mal hilfreich. Bei mir kommt allerdings eine Fehlermeldung wobei ich nicht genau weiß was ich den nun umstellen soll und warum ... :oops:

Kann mir bitte einer auf die Sprünge helfen ...
Husky-2016.05.19-02.png
Husky-2016.05.19-02.png (35.37 KiB) Viewed 11716 times
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

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

Re: Use command line like a calculator

Post by andrew » Thu May 19, 2016 8:09 am

Was gibst du genau ein und was ist die Fehlermeldung? Danke.

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4939
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Use command line like a calculator

Post by Husky » Thu May 19, 2016 8:11 am

andrew wrote:Was gibst du genau ein und was ist die Fehlermeldung? Danke.
Entweder warst Du zu schnell oder ich zu langsam .... :lol: :lol: :lol:
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

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

Re: Use command line like a calculator

Post by andrew » Thu May 19, 2016 8:18 am

Husky wrote:Entweder warst Du zu schnell oder ich zu langsam .... :lol: :lol: :lol:
Ja, sorry :)

Hast du deine CommandLine.js Datei mit der aus dem Repository ersetzt?
https://raw.githubusercontent.com/qcad/ ... andLine.js

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4939
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Use command line like a calculator

Post by Husky » Thu May 19, 2016 8:27 am

andrew wrote:
Husky wrote:Entweder warst Du zu schnell oder ich zu langsam .... :lol: :lol: :lol:
Ja, sorry :)
Das war kein Vorwurf .... eher ein Kompliment!
andrew wrote:Hast du deine CommandLine.js Datei mit der aus dem Repository ersetzt?
https://raw.githubusercontent.com/qcad/ ... andLine.js
Nein weil ich dies von Dir gelesen hatte ... "Der Kommandozeilenrechner wurde mittlerweile integriert."

Also sollte ich den austauschen? Ok, mache ich .... allerdings erst morgen früh. Danke für die Hilfe. Berichte ob es dann auch bei mir läuft wie erwartet.
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4939
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Use command line like a calculator

Post by Husky » Thu May 19, 2016 8:07 pm

Klasse - so funktioniert es tadellos. Danke fürs "schubsen". :wink:

So, nun meine Frage wie "kompliziert" kann der Calculator rechnen?
Folgender Hintergrund:
Für Zeichnerische Abwicklungen gebrauche ich gelegentlich die wahren Längen von Linien. Ich könnte sie zwar konstruieren aber in meinen Fällen ist eine Berechnung und übernahme des Wertes einfach schneller. Grundlage sind Rechtwinklige Dreiecke und ich brauche Länge "C" .... also benutze ich "Den Satz des Satz des Pythagoras". Leider muss ich dafür externe Programme bemühen wie z.B. EXCEL.

Frage: Kann ich dem Command Line calculator auch Sachen übergeben wie:

Wurzel aus A²+B²

um C zu erhalten?
Husky-2016.05.19-01.png
Husky-2016.05.19-01.png (23.81 KiB) Viewed 11699 times
Falls ja, wie?
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

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

Re: Use command line like a calculator

Post by andrew » Thu May 19, 2016 8:29 pm

Husky wrote:Frage: Kann ich dem Command Line calculator auch Sachen übergeben wie:

Wurzel aus A²+B²

um C zu erhalten?
Der Rechner versteht grundsätzlich alle JavaScript Ausdrücke. Um die Eingabe zu vereinfachen, sind mathematische Funktionen zusätzlich als globale Funktionen definiert.

Also zum Beispiel:
√(A²+B²) schreibt sich in JavaScript als Math.sqrt(Math.pow(a,2)+Math.pow(b,2)) oder mit globalen Funktionen abgekürzt einfach:

Code: Select all

sqrt(pow(a,2)+pow(b,2))
Solche Eingaben werden im Übrigen auch in allen Eingabefelder für Zahlen in QCAD erkannt und berechnet. Auch auf der Kommandozeile können solche Ausdrücke verwendet werden, z.B. wenn eine Koordinate eingegeben wird.

Also zum Beispiel:

Code: Select all

@cos(30)*10,sin(30)*10
Was wiederum natürlich der Eingabe entspricht von:

Code: Select all

@10<30
Eine Übersicht aller globalen Funktionen und Konstanten findet sich unter:
https://github.com/qcad/qcad/blob/maste ... s/input.js

scripts/input.js ist auch die Datei, die vor der Auswertung von solchen Ausdrücken eingelesen wird.

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4939
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Use command line like a calculator

Post by Husky » Sun May 22, 2016 9:13 am

Hallo Andrew - vielen Dank für die ausführliche Erklärung! Das funktioniert gut für das angebrachte Beispiel und ich werde bestimmt tiefer in die Materie einsteigen (müssen) um weiteren sinnvollen nutzen daraus ziehen zu können.

Momentan ist mein "größtes Problem" das ich mathematische Funktionen nie in der JavaScript Sprache benutzt habe und mir die Schreibweise dementsprechend fremd ist. Da ich es nur gelegentlich brauche müsste ich mir eine externe Liste der benötigten mathematischen Formel anfertigen die ich dann in QCAD benutzen kann. Vielleicht kann ich auch "AutoHotkey" oder ähnliches benutzen um für mich gewohnte oder verständliche Schreibweisen zu benutzen aber leider reagiert QCAD in der Command line noch allergisch mit einem "Invalid value: '=sqrt(pow(120,2)Pow(134,2)) ' - SyntaxError: Parse error" darauf - muss mal sehen ob das für mich lösbar ist. Über die Zwischenablage schlugt es QCAD anstandslos.

Wie auch immer - externe Programme für die Berechnung gehören jetzt "in die Tonne". :wink:
Danke!
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

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

Re: Use command line like a calculator

Post by Ferdi » Sun May 22, 2016 9:06 pm

Hallo Husky,

an deinem Beispiel =sqrt(pow(120,2)Pow(134,2)) fallen mir drei Punkte auf.

1. Pow(134,2) darf keine Grossbuchstaben enthalten
2. Den Kommas muss ein Leerzeichen folgen, also pow(120, 2)
3. Der Additionsoperator (+) fehlt

Man muss sich strikt an die in der Datei /qcad/scripts/input.js vorgegebebe Schreibweise halten.

Andrew erklärt in http://www.ribbonsoft.com/rsforum/viewt ... pow#p13497
den Grund für das Einfügen eines Leerzeichens.

Die Eingabe sollte also so aussehen: =sqrt(pow(120, 2)+pow(134, 2))
Sie liefert als Ergebnis den Wert 179.8777362543792 für die Hypotenuse

Noch ein Hinweis:
Die Trigonometrischen Funktionen Math.sin(x), Math.cos(x), Math.tan(x) verlangen die Eingabe von x im Bogenmass. Damit man das nicht selbst umständlich umrechnen muss, hat Andrew das für uns vereinfacht. Bei den Funktionen sin(x), cos(x), tan(x) darf x in Grad eingegeben werden.

Math.E wird in QCAD nicht unterstüzt. Siehe http://www.ribbonsoft.com/rsforum/viewt ... 3c1#p12495

Grüsse,
Ferdi

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4939
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Use command line like a calculator

Post by Husky » Mon May 23, 2016 8:58 am

Hallo Ferdi - danke fürs drüber schauen!
Ferdi wrote: 1. Pow(134,2) darf keine Grossbuchstaben enthalten
Gut zu wissen!
Ferdi wrote: 2. Den Kommas muss ein Leerzeichen folgen, also pow(120, 2)
Damit scheint QCAD kein Problem zu haben. Bei meinem Beispiel funktioniert es mit und ohne Leerzeichen. Kann leider nicht beurteilen wie wichtig dies ist ...
Ferdi wrote: 3. Der Additionsoperator (+) fehlt
Hier wurde ich stutzig - hatte ich so nicht vorgegeben genauso wenig wie die Großschreibung. Hier hatte AutoHotkey die Änderungen selbstständig durchgeführt weil ich es nicht durch einen "send raw" Befehl dazu gezwungen hatte alles unverändert zu ersetzen. Nachdem ich dies eingefügt habe läuft es nun auch in QCAD tadellos.

Problem gelöst - danke Euch beiden mir zu helfen die Lösung zu finden!

@Andrew
Frage 1:
Wenn ich dieses Beispiel in der Command Line berechne wird mir ein Ergebnis mit 13 (179.8777362543792) Nachkommastellen angezeigt.
Wenn ich dieses in (z.B.) Kreis / Radius Dialog eingebe oder auch berechne zeigt mir der Eigenschaften Editor nur 6 (179.877736) Nachkommastellen an.
Wird der Radius des Kreises nun mit 13 oder 6 Nachkommastellen erzeugt?

Frage 2:
Wenn ich den Command Line Kalkulator benutze wird die Formel etc. in die History mit aufgenommen - das Ergebnis aber leider nicht. Wäre es möglich dies auch in die History schreiben zu lassen um gegebenenfalls später noch einmal darauf zurückgreifen zu können ohne die Berechnung neu zu machen?
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

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

Re: Use command line like a calculator

Post by andrew » Mon May 23, 2016 9:25 am

Husky wrote:
Ferdi wrote: 2. Den Kommas muss ein Leerzeichen folgen, also pow(120, 2)
Damit scheint QCAD kein Problem zu haben. Bei meinem Beispiel funktioniert es mit und ohne Leerzeichen. Kann leider nicht beurteilen wie wichtig dies ist ...
Die Probleme beginnen dort, wo als Dezimalpunkt ein Komma ',' verwendet wird. Dann ist pow(1,2,3) nämlich nich mehr eindeutig interpretierbar: 1.2 hoch 3 oder 1 hoch 2.3. In diesem Fall muss nach dem Komma, welches als Separator dient ein Leerzeichen stehen.
Husky wrote:Frage 1:
Wenn ich dieses Beispiel in der Command Line berechne wird mir ein Ergebnis mit 13 (179.8777362543792) Nachkommastellen angezeigt.
Wenn ich dieses in (z.B.) Kreis / Radius Dialog eingebe oder auch berechne zeigt mir der Eigenschaften Editor nur 6 (179.877736) Nachkommastellen an.
Wird der Radius des Kreises nun mit 13 oder 6 Nachkommastellen erzeugt?
Gleitkommazahlen haben im Speicher des Computers eine unterschiedliche Anzahl Nachkommastellen, je nach Grösse des Wertes. Werte nahe bei 0 haben eine höhere Genauigkeit als Werte mit sehr grossem Betrag. In DXF werden Werte ebenfalls mit unterschiedlichen Genauigkeiten gespeichert. In der Regel zwischen 12 und 16 Nachkommastellen. Zur Veranschaulichung: die zehnte Kommastelle bewegt sich im subatomaren Bereich bei einer Zeichnung in Metern.
Husky wrote:Frage 2:
Wenn ich den Command Line Kalkulator benutze wird die Formel etc. in die History mit aufgenommen - das Ergebnis aber leider nicht. Wäre es möglich dies auch in die History schreiben zu lassen um gegebenenfalls später noch einmal darauf zurückgreifen zu können ohne die Berechnung neu zu machen?
Yes, good idea:
https://github.com/qcad/qcad/blob/3b883 ... andLine.js

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4939
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Use command line like a calculator

Post by Husky » Mon May 23, 2016 7:01 pm

Danke für die Erklärung und dies hier ...
Husky-2016.05.23-01.png
Husky-2016.05.23-01.png (9.16 KiB) Viewed 11551 times
... sieht genauso aus wie ich es mir vorgestellt habe.

Danke! :D
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

Post Reply

Return to “QCAD Professional”