public void ExtrusionRateStreamTracksSettings() { StaticData.Instance = new FileSystemStaticData(TestContext.CurrentContext.ResolveProjectPath(4, "StaticData")); MatterControlUtilities.OverrideAppDataLocation(TestContext.CurrentContext.ResolveProjectPath(4)); var gcodeStream = new ExtrusionMultiplyerStream(new TestGCodeStream(new string[0])); Assert.AreEqual(1, gcodeStream.ExtrusionRatio, "ExtrusionRatio should default to 1"); ActiveSliceSettings.Instance.SetValue(SettingsKey.extrusion_ratio, "0.3"); Assert.AreEqual(0.3, gcodeStream.ExtrusionRatio, "ExtrusionRatio should remain synced with PrinterSettings"); }
public static GCodeStream CreateTestGCodeStream(string[] inputLines) { GCodeStream gCodeFileStream0 = new TestGCodeStream(inputLines); GCodeStream pauseHandlingStream1 = new PauseHandlingStream(gCodeFileStream0); GCodeStream queuedCommandStream2 = new QueuedCommandsStream(pauseHandlingStream1); GCodeStream relativeToAbsoluteStream3 = new RelativeToAbsoluteStream(queuedCommandStream2); //GCodeStream printLevelingStream4 = new PrintLevelingStream(relativeToAbsoluteStream3); GCodeStream printLevelingStream4 = relativeToAbsoluteStream3; GCodeStream waitForTempStream5 = new WaitForTempStream(printLevelingStream4); GCodeStream babyStepsStream6 = new BabyStepsStream(waitForTempStream5); GCodeStream extrusionMultiplyerStream7 = new ExtrusionMultiplyerStream(babyStepsStream6); GCodeStream feedrateMultiplyerStream8 = new FeedRateMultiplyerStream(extrusionMultiplyerStream7); GCodeStream totalGCodeStream = feedrateMultiplyerStream8; return(totalGCodeStream); }
public void ExtrusionRatioChangesExtrusionAmount() { string line; Assert.AreEqual(1, (int)ExtrusionMultiplyerStream.ExtrusionRatio, "ExtrusionRatio should default to 1"); PrinterConfig printer = null; var gcodeStream = new ExtrusionMultiplyerStream(printer, new TestGCodeStream(printer, new string[] { "G1 E10", "G1 E0 ; Move back to 0", "G1 E12" })); line = gcodeStream.ReadLine(); // Move back to E0 gcodeStream.ReadLine(); Assert.AreEqual("G1 E10", line, "ExtrusionMultiplyer should remain unchanged when FeedRateRatio is 1.0"); ExtrusionMultiplyerStream.ExtrusionRatio = 2; line = gcodeStream.ReadLine(); Assert.AreEqual("G1 E24", line, "ExtrusionMultiplyer should scale from E12 to E24 when ExtrusionRatio is 2x"); }
public void ExtrusionRatioChangesExtrusionAmount() { string line; StaticData.Instance = new FileSystemStaticData(TestContext.CurrentContext.ResolveProjectPath(4, "StaticData")); MatterControlUtilities.OverrideAppDataLocation(TestContext.CurrentContext.ResolveProjectPath(4)); Assert.AreEqual(1, ExtrusionMultiplyerStream.ExtrusionRatio, "ExtrusionRatio should default to 1"); var gcodeStream = new ExtrusionMultiplyerStream(new TestGCodeStream(new string[] { "G1 E10", "G1 E0 ; Move back to 0", "G1 E12" })); line = gcodeStream.ReadLine(); // Move back to E0 gcodeStream.ReadLine(); Assert.AreEqual("G1 E10", line, "ExtrusionMultiplyer should remain unchanged when FeedRateRatio is 1.0"); ExtrusionMultiplyerStream.ExtrusionRatio = 2; line = gcodeStream.ReadLine(); Assert.AreEqual("G1 E24", line, "ExtrusionMultiplyer should scale from E12 to E24 when ExtrusionRatio is 2x"); }