public static bool SetupRequired(PrinterConfig printer, bool requiresLoadedFilament) { return(printer == null || LevelingPlan.NeedsToBeRun(printer) || // PrintLevelingWizard ZCalibrationWizard.NeedsToBeRun(printer) || (requiresLoadedFilament && LoadFilamentWizard.NeedsToBeRun0(printer)) || (requiresLoadedFilament && LoadFilamentWizard.NeedsToBeRun1(printer)) || XyCalibrationWizard.NeedsToBeRun(printer)); }
private void SetupForValidation() { validationRunning = true; activeProbeIndex = 0; printer.Connection.LineReceived += GetZProbeHeight; printer.Settings.ForTools <double>(SettingsKey.baby_step_z_offset, (key, value, i) => { // remember the current baby stepping values babySteppingValue[i] = value; // clear them while we measure the offsets printer.Settings.SetValue(key, "0"); }); // turn off print leveling printer.Connection.AllowLeveling = false; var levelingData = new PrintLevelingData() { LevelingSystem = printer.Settings.GetValue <LevelingSystem>(SettingsKey.print_leveling_solution) }; switch (levelingData.LevelingSystem) { case LevelingSystem.Probe3Points: levelingPlan = new LevelWizard3Point(printer); break; case LevelingSystem.Probe7PointRadial: levelingPlan = new LevelWizard7PointRadial(printer); break; case LevelingSystem.Probe13PointRadial: levelingPlan = new LevelWizard13PointRadial(printer); break; case LevelingSystem.Probe100PointRadial: levelingPlan = new LevelWizard100PointRadial(printer); break; case LevelingSystem.Probe3x3Mesh: levelingPlan = new LevelWizardMesh(printer, 3, 3); break; case LevelingSystem.Probe5x5Mesh: levelingPlan = new LevelWizardMesh(printer, 5, 5); break; case LevelingSystem.Probe10x10Mesh: levelingPlan = new LevelWizardMesh(printer, 10, 10); break; case LevelingSystem.ProbeCustom: levelingPlan = new LevelWizardCustom(printer); break; default: throw new NotImplementedException(); } sampledPositions = new List <PrintLevelingWizard.ProbePosition>(levelingPlan.ProbeCount); for (int j = 0; j < levelingPlan.ProbeCount; j++) { sampledPositions.Add(new PrintLevelingWizard.ProbePosition()); } positionsToSample = levelingPlan.GetPositionsToSample(printer.Connection.HomingPosition).ToList(); StartReporting(); }