1 package net.sf.openrocket.utils;
3 import net.sf.openrocket.document.OpenRocketDocument;
4 import net.sf.openrocket.document.StorageOptions;
5 import net.sf.openrocket.file.RocketLoadException;
6 import net.sf.openrocket.file.RocketLoader;
7 import net.sf.openrocket.file.RocketSaver;
8 import net.sf.openrocket.file.openrocket.OpenRocketSaver;
9 import net.sf.openrocket.gui.util.SwingPreferences;
10 import net.sf.openrocket.l10n.ResourceBundleTranslator;
11 import net.sf.openrocket.logging.LogLevel;
12 import net.sf.openrocket.startup.Application;
15 import java.io.IOException;
16 import java.util.Locale;
19 * Utility that loads Rocksim file formats and saves them in ORK format.
20 * File is saved with the .rkt extension replaced with .ork.
23 * java -cp OpenRocket.jar net.sf.openrocket.utils.RocksimConverter <files...>
25 * @author Sampo Niskanen <sampo.niskanen@iki.fi>
27 public class RocksimConverter {
30 public static void main(String[] args) {
34 RocketLoader loader = new net.sf.openrocket.file.rocksim.importt.RocksimLoader();
35 RocketSaver saver = new OpenRocketSaver();
37 for (String inputFile : args) {
38 System.out.println("Converting " + inputFile + "...");
40 if (!inputFile.matches(".*\\.[rR][kK][tT]$")) {
41 System.err.println("ERROR: File '" + inputFile + "' does not end in .rkt, skipping.");
45 String outputFile = inputFile.replaceAll("\\.[rR][kK][tT]$", ".ork");
47 File input = new File(inputFile);
48 File output = new File(outputFile);
50 if (!input.isFile()) {
51 System.err.println("ERROR: File '" + inputFile + "' does not exist, skipping.");
54 if (output.exists()) {
55 System.err.println("ERROR: File '" + outputFile + "' already exists, skipping.");
60 StorageOptions opts = new StorageOptions();
61 opts.setCompressionEnabled(true);
62 opts.setSimulationTimeSkip(StorageOptions.SIMULATION_DATA_NONE);
63 opts.setExplicitlySet(true);
65 OpenRocketDocument document = loader.load(input);
66 saver.save(output, document, opts);
68 } catch (RocketLoadException e) {
69 System.err.println("ERROR: Error loading '" + inputFile + "': " + e.getMessage());
70 } catch (IOException e) {
71 System.err.println("ERROR: Error saving '" + outputFile + "': " + e.getMessage());
78 private static void setup() {
79 Locale.setDefault(Locale.US);
80 Application.setBaseTranslator(new ResourceBundleTranslator("l10n.messages"));
82 Application.setLogOutputLevel(LogLevel.WARN);
83 Application.setPreferences(new SwingPreferences());