Prozess aus javascript starten

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
joselino
Registered Member
Posts: 1
Joined: Wed Sep 17, 2014 9:00 pm

Prozess aus javascript starten

Post by joselino » Fri Sep 19, 2014 11:59 am

Für die Berechnung eines Zahnradstirnschnittes habe ich in QCAD Prof. eine Benutzeroberfläche designed und
in ein Skript eingebunden.

Die eingegebene Daten werden in eine Datei geschrieben und sollen an ein externes Programm übergeben werden.
Das externe Programm berechnet die Form einer Zahnlücke und schreibt diese in eine weitere Datei. Anschließend soll
diese Datei gelesen und in QCAD dargestellt werden.

Wie kann ich in einem javacript ein Prozeß starten, der als Argument die Datei mit den Verzahnungsdaten bekommt?

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

Re: Prozess aus javascript starten

Post by andrew » Fri Sep 19, 2014 12:16 pm

Hier ein kleines Beispiel (startet das Programm 'myapp' mit argument 'myfile.dat'):
// application binary:
    var program = "myapp";
    // arguments:
    var args = [ "myfile.dat" ];
    // additional environment variables:
    var environment = [ ["MYENVVAR", 1] ];

    var process = new QProcess();

    // error handling:
    process.error.connect(function(e) { qDebug("Error: ", e); });

    // buffer stdout, stderr for later output:
    var stdout = "";
    var stderr = "";
    process.readyReadStandardOutput.connect(function() { stdout += process.readAllStandardOutput(); });
    process.readyReadStandardError.connect(function() { stderr += process.readAllStandardError(); });

    // set enviromnet to current environment, add custom environment:
    if (environment!==undefined) {
        var env = QProcessEnvironment.systemEnvironment();
        for (var i=0; i<environment.length; i++) {
            env.insert(environment[0], environment[1]);
        }
        process.setProcessEnvironment(env);
    }

    // start process:
    process.start(program, args);

    // wait for process to finish:
    process.waitForFinished(-1);   // no timeout

    // output buffered stdout, stderr:
    qDebug(stdout);
    qDebug(stderr);

Post Reply

Return to “QCAD Professional”