Skripti za orodja ukazne vrstice
Skripte je mogoče uporabiti za ustvarjanje orodij ukazne vrstice, ki izkoriščajo funkcionalnost QCAD. Taka skripta lahko na primer ustvari risbo na podlagi parametrov, pretvori risbo ali analizira risbo.
Primer
Section titled “Primer”Osnovna struktura skripte za orodje ukazne vrstice je lahko videti na primer tako, kot je prikazano spodaj. To je tudi popolnoma delujoča vzorčna skripta, ki jo je mogoče uporabiti kot orodje ukazne vrstice za dodajanje črte od 0,0 do 100,100 v dano risbo in izvoz te risbe pod novim imenom datoteke:
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; }
// ustvari nov dokument (zunaj zaslona): var doc = new RDocument(new RMemoryStorage(), new RSpatialIndexNavel()); var di = new RDocumentInterface(doc);
// uvozi dano datoteko: if (di.importFile(inFile) != RDocumentInterface.IoErrorNoError) { di.destroy(); print("Cannot import file:", inFile); return; }
// dodaj črto v risbo (z uporabo QCAD Simple API): startTransaction(di); addLine(0, 0, 100, 100); endTransaction();
// izvozi v dano datoteko (-o) if (!di.exportFile(outFile)) { di.destroy(); print("Cannot export file:", outFile); return; }
di.destroy();}
if (typeof(including) == 'undefined' || including === false) { main();}Zagon skript za orodja ukazne vrstice
Section titled “Zagon skript za orodja ukazne vrstice”Predpostavimo, da je ta skripta shranjena kot scripts/Tools/ExTool/ExTool.js.
Nato jo je mogoče zagnati na naslednji način:
qcad -autostart scripts/Tools/ExTool/ExTool.js -f -o out.dxf in.dxfČe se skripta izvaja kot del spletne storitve, ne pozabite posredovati tudi stikal -no-gui in -allow-multiple-instances, da QCAD sporočite, da grafični vmesnik ni na voljo in da je mogoče vzporedno zagnati več primerkov:
qcad -no-gui -allow-multiple-instances -autostart scripts/Tools/ExTool/ExTool.js -f -o out.dxf in.dxfNa strežniku bi običajno posredovali tudi -platform offscreen za izvajanje brez zaslona (tj. brez strežnika X11 v sistemu Linux):
qcad -platform offscreen -no-gui -allow-multiple-instances -autostart scripts/Tools/ExTool/ExTool.js -f -o out.dxf in.dxf