Javascript / Expressions

Ermöglicht es im Gcode Javascript auszuführen.

Allgemein

[ ] sind Expressions die ausgewertet werden. Die Scriptsprache die verwendet wird ist Javascript. Somit kann man fast alles was in Javascript möglich ist ausführen, ist jedoch auf eine Zeile beschränkt. Funktionen die sich über mehrere Zeilen erstecken müsse durch minifier „komprimiert“ werden.



Variable Speichern: [var start_x = 5;]
Verwendung der Variable: G0 X[start_x]

Rechnen:G0 X[50+22.5] Y[50/10]
Rechnen:G0 X[Math.sin(90 * Math.PI / 180)]

Funktionen

Funktionen müssen immer in einer Zeile stehen. Einfachste möglichkeit dies zu erreichen ist ein minifier .

Hello World

function runHello(zahl) {
dialog.addInfo("Hello World " + zahl);
dialog.show();
return;
}

wird zu

minified Hello World

function runHello(o){dialog.addInfo("Hello World "+o),dialog.show()}

Wenn man nun diese Zeilen ausführen will, gibt man :

[function runHello(o){dialog.addInfo(„Hello World „+o),dialog.show()}]
[runHello(255)]

in die Gcode-eingabe ein
Ein Dialog mit „Hello World 255″sollte erscheinen.

Dialog

Die Dialog-Erweiterung ermöglicht es dem Benutzer Informationen anzuzeigen so wie Eigabefelder zu erstellen.

  • dialog.addInfo(info)
  • String : info

  • dialog.addInput(variable,inputname)
  • String : variable
    String : inputname

    variable gibt den namen an in welcher der Eingabewert gespeichert wird. Bspdialog.addInput(„x“,“max X: „). Zeigt als Inputfeld „max X:“und speichert den wert mittels var x = wert.

  • dialog.addInput(variable,inputname,default)
  • String : variable
    String : inputname
    String : default

    Wie darüber nur wird ein default Wert angezeigt.

  • dialog.show( )
  • Zeigt den Dialog an. Beim Schließen werden mögliche variablen gesetzt und Info/Inputfelder gelöscht.

Speichern

Die Speichern-Erweiterung ermöglicht es dem Benutzer eigene Variablen dauerhaft zu speichern. Diese werden beim Start der Software geladen.

  • data.save(variable,value)
  • String : variable
    String: value

    Beispiel: var x = 55; und mit data.save(„test“,x) wird der Wert 55 für test in die permanente Datei gespeichert. Die Variable test wird nicht direkt angelegt, erst mit data.load() wird var test = 55 ausgeführt.

  • data.load()
  • Lädt alle Variablen die in der permanenten Datei gespeichert wurden.
    Variablen

    Variablen die Einstellungen der Fräsmaschine entsprechen. Verändern dieser Variablen ändert nichts in den echten Einstellungen.

    • maschine.x
    • maschine.y
    • maschine.z
    • Maschinen Breite(x) / Länge(y) / Höhe(z) positive Werte

    • last_probe_.x
    • last_probe_.y
    • last_probe_.z
    • last_probe_.valid
    • X/Y/Z Position des letzten probe Vorgang, valid gibt an ob probe gültig ist.

    • toolchange.x
    • toolchange.y
    • toolchange.z
    • toolchange.enable
    • Werkzeugwechsel position die in den Einstellungen/Gcode gespeichert ist. enable gibt an ob der Werkzeugwechsel aktiviert ist.

    Beispiele:

    Längensensor / Probe

    Führt ein Probe richtung minimaler Z Höhe durch. Dabei wird die Variable maschine.z verwendet. Mittels Dialog wird die Probe-position angezeigt.

    Gcode
    G90
    G38.2  Z[-maschine.z] F100
    [dialog.addInfo("Probe X:" + last_probe_.x + " Y:" + last_probe_.y + " Z:" + last_probe_.z )]
    [dialog.show()]

    Zeitmessung

    Misst die Zeit wie lange ein Gcode benötigt hat und gibt am Ende einen Dialog aus der die Gesamtzeit so wie von der derzeitigen Datei benötigen Zeit.Der Code muss in den Einstellungen/Gcode pre und post Gcode eingefügt werden

    Pre Gcode
    [var start_time = new Date();]

    Post Gcode
    [var end_time = new Date();]
    [var timeDiff = end_time - start_time; //in ms]
    [ var time_string = new Date(timeDiff ).toISOString().substr(11, 8)]
    [dialog.addInfo("Die Datei benötigte " + time_string + " ")]
    
    [var gcode_zeit = gcode_zeit ? gcode_zeit + timeDiff : timeDiff]
    [ var time_string = new Date(gcode_zeit ).toISOString().substr(11, 8)]
    [dialog.addInfo("Gesamte Gcode Zeit " + time_string + " ")]
    [dialog.show()]
    [data.save("gcode_zeit",gcode_zeit)]

    Dialog / anpassbarer Gcode

    In diesem Beispiel wird der Benutzer aufgefordert die Breite und Höhe von einem Rechteck anzugeben. Dieses wird nach dem Klick auf Weiter abgefahren.

    Gcode
    [dialog.addInfo("Dieser Gcode fährt ein Rechteck ab.")]
    [dialog.addInput("r_width","Breite: ","50")]
    [dialog.addInput("r_heigth","Höhe: ","25")]
    [dialog.show()]
    M0
    G0 G91 X[r_width]
    G0 G91 Y[r_heigth]
    G0 G91 X[-r_width]
    G0 G91 Y[-r_heigth]

    Weitere Ideen

    Erkennen ob das Werkzeug beschädigt wurde : Wenn der Fräser vermessen wird den Z Wert speichern und nach der Verwendung nochmals vermessen und den Wert vergleichen. Falls der Wert eine zu große Abweichung vorweist zu einer sicheren Position fahren Spindel abstellen und mit M0 pausieren. Dies könnte bei einer automatischen Werkzeugwechselspindel direkt in den ToolGcode eingefügt werden.

    Zeitmessungen: Wie lange wurde der Fräser verwendet /wie lange benötigte der Fräsvorgang

    Todo Liste speichern, für das nächste Mal.

    Tastplatte: Zum Nullpunkt setzen wird Probe in Z X Y ausgeführt.

    Falls weitere Variablen bzw möglichkeiten gewünscht werden Mail an office@minimill.at