Beispiel #1
0
        public static void Main(string[] args)
        {
            rocketCreation = DefaultMakeRocket;
            List <CLIAction> argParseActions = ArgParser.GetActions(args, out string[] argWarnings, out string[] argErrors);

            Logging.Print(argErrors, Logging.PrintType.ERROR);
            Logging.Print(argWarnings, Logging.PrintType.WARNING);

            bool      writebackSTL         = false;
            CLIAction writeBackAct         = new CLIAction();
            bool      writebackExteriorSTL = false;
            CLIAction writeBackExtAct      = new CLIAction();

            bool InhibitSTLAnalysis = false;

            if (argErrors.Count() == 0)
            {
                foreach (CLIAction argParseAction in argParseActions)
                {
                    // Do actions
                    switch (argParseAction.act)
                    {
                    case ActionType.PrintCSVs:
                        SetupCSV();
                        break;

                    case ActionType.TimeScale:
                        Time.FLIGHT_RESOLUTION = (float)argParseAction.actionValue;
                        break;

                    case ActionType.LoadStl:
                        STLExtractor primarySTL = new STLExtractor((string)argParseAction.actionValue, STLInfo.STLUnits.Centimeters, InhibitSTLAnalysis);
                        if (primarySTL.IsValid)
                        {
                            simRocket = primarySTL.RocketFromSTL();
                        }
                        break;

                    case ActionType.ArgDebug:
                        PrintArgs(argParseActions);
                        Logging.Print("");
                        break;

                    case ActionType.Test:
                        string testParams = (string)argParseAction.actionValue;
                        Logging.Print("TEST PROTOCOL INITIATED.");
                        Logging.Print("PARAMETERS: " + testParams);
                        TestProtocol.RunTests(testParams);
                        Logging.Print("TEST CONCLUDED.\n");
                        break;

                    case ActionType.Writeback:
                        writebackSTL = true;
                        writeBackAct = argParseAction;
                        break;

                    case ActionType.WritebackExterior:
                        writebackExteriorSTL = true;
                        writeBackExtAct      = argParseAction;
                        break;

                    case ActionType.InhibitFullAnalysis:
                        InhibitSTLAnalysis = true;
                        break;

                    default:
                        break;
                    }
                }

                // STL File writeback
                if (writebackSTL)
                {
                    string filename = "Untitled";
                    if (writeBackAct.actionValue != null && !string.IsNullOrEmpty((string)writeBackAct.actionValue))
                    {
                        filename = (string)writeBackAct.actionValue;
                    }
                    STLInserter.CreateSTLFile(filename, simRocket.Surfaces, STLInfo.STLType.Binary);
                }

                // STL File Exterior writeback
                if (writebackExteriorSTL)
                {
                    string filename = "Untitled";
                    if (writeBackAct.actionValue != null)
                    {
                        filename = (string)writeBackAct.actionValue;
                    }
                    STLInserter.CreateSTLFile(filename, simRocket.ExteriorSurfaces, STLInfo.STLType.Binary);
                }

                Logging.Print("SIMULATION BEGINS.");
                Run();
            }
            Logging.Print("EXITING.");
            Logging.Close();
        }