Skrip Alat Baris Perintah
Pendahuluan
Section titled “Pendahuluan”Skrip dapat digunakan untuk membuat alat baris perintah yang memanfaatkan fungsionalitas QCAD. Skrip semacam ini misalnya dapat menghasilkan sebuah gambar berdasarkan parameter, mengonversi sebuah gambar, atau menganalisis sebuah gambar.
Contoh
Section titled “Contoh”Struktur dasar sebuah skrip alat baris perintah misalnya dapat terlihat seperti yang ditunjukkan di bawah ini. Ini juga merupakan contoh skrip yang berfungsi penuh yang dapat digunakan sebagai alat baris perintah untuk menambahkan sebuah garis dari 0,0 ke 100,100 pada suatu gambar dan mengekspor gambar tersebut dengan nama berkas baru:
include("scripts/simple.js");include("scripts/Tools/arguments.js");
function printHelp() { print("Usage: " + args[1] + " [OPTION]... <drawing file>"); print(); print("This tool does..."); print(); print(" -f, -force Overwrite existing output file"); print(" -h, -help Display this help"); print(" -o, -outfile=FILE Set output file to FILE"); print(" -p, -parameter Some parameter..."); print(" ..."); printGenericUsage(); print();}
function main() { if (testArgument(args, "-h", "-help")) { printHelp(); return; }
if (args.length < 3) { print("No input file given. Try -h for help."); return; }
var inFile = args[args.length - 1]; if (inFile.indexOf("-") === 0) { print("No input file. Try -h for help."); return; }
var fi = new QFileInfo(inFile); if (!fi.isAbsolute()) { inFile = RSettings.getLaunchPath() + QDir.separator + inFile; fi = new QFileInfo(inFile); }
var outFile = getArgument(args, "-o", "-outfile"); if (outFile !== undefined) { outFile = getAbsolutePathForArg(outFile); } else { print("No output file. Try -h for help."); }
if (new QFileInfo(outFile).exists() && !testArgument(args, "-f", "-force")) { print("Output file exists already, not overwriting: ", outFile); print("Use -f to force overwrite"); return; }
// create new document (off screen): var doc = new RDocument(new RMemoryStorage(), new RSpatialIndexNavel()); var di = new RDocumentInterface(doc);
// import given file: if (di.importFile(inFile) != RDocumentInterface.IoErrorNoError) { di.destroy(); print("Cannot import file:", inFile); return; }
// add line to drawing (using QCAD Simple API): startTransaction(di); addLine(0, 0, 100, 100); endTransaction();
// export to given file (-o) if (!di.exportFile(outFile)) { di.destroy(); print("Cannot export file:", outFile); return; }
di.destroy();}
if (typeof(including) == 'undefined' || including === false) { main();}Menjalankan Skrip Alat Baris Perintah
Section titled “Menjalankan Skrip Alat Baris Perintah”Anggaplah skrip ini disimpan dengan nama scripts/Tools/ExTool/ExTool.js.
Skrip tersebut kemudian dapat dijalankan sebagai berikut:
qcad -autostart scripts/Tools/ExTool/ExTool.js -f -o out.dxf in.dxfJika skrip dijalankan sebagai bagian dari layanan web, pastikan juga untuk memberikan sakelar -no-gui dan -allow-multiple-instances guna memberi tahu QCAD bahwa tidak ada GUI yang tersedia dan beberapa instance dapat dijalankan secara paralel:
qcad -no-gui -allow-multiple-instances -autostart scripts/Tools/ExTool/ExTool.js -f -o out.dxf in.dxfDi sebuah server, Anda biasanya juga akan memberikan -platform offscreen untuk berjalan secara headless (yaitu tanpa server X11 di Linux):
qcad -platform offscreen -no-gui -allow-multiple-instances -autostart scripts/Tools/ExTool/ExTool.js -f -o out.dxf in.dxf