private void setAxis(IDictionary <string, ParsedWord> block) { foreach (Axis axis in Enum.GetValues(typeof(Axis))) { if (block.ContainsKey(axis.ToString())) { ParsedWord word = block[axis.ToString()]; machineCoordinates[Axis.X] = mbase.Transform(Value).X; machineCoordinates[Axis.Y] = mbase.Transform(Value).Y; machineCoordinates[Axis.Z] = mbase.Transform(Value).Z; machineCoordinates[Axis.A] = RotValue.X; machineCoordinates[Axis.B] = RotValue.Y; machineCoordinates[Axis.C] = RotValue.Z; originalMachineCoordinates[Axis.X] = Value.X; originalMachineCoordinates[Axis.Y] = Value.Y; originalMachineCoordinates[Axis.Z] = Value.Z; // Console.WriteLine("X: " + machineCoordinates[Axis.X].Value + " " + "Y: " + machineCoordinates[Axis.Y].Value + " " + "Z: " + machineCoordinates[Axis.Z].Value ); if (modalsCmd.Contains("DIAMON")) { // machineCoordinates[Axis.X] = mbase.Transform(Value).X*0.5 ; } } } }
private void GetVarValue(IDictionary <string, ParsedWord> block) { foreach (NonModalsVars Vars in Enum.GetValues(typeof(NonModalsVars))) { if (block.ContainsKey(Vars.ToString())) { ParsedWord word = block[Vars.ToString()]; switch (Vars) { case NonModalsVars.I: VarValue.X = word.value; break; case NonModalsVars.J: VarValue.Y = word.value; break; case NonModalsVars.K: VarValue.Z = word.value; break; default: break; } } } }
private void setVars(IDictionary <string, ParsedWord> block) { foreach (ModalVars modalvar in Enum.GetValues(typeof(ModalVars))) { if (block.ContainsKey(modalvar.ToString())) { ParsedWord word = block[modalvar.ToString()]; if (word != null) { modalVars[word.word] = word.value; } } } }
private void setNonModalVars(IDictionary <String, ParsedWord> block) { foreach (NonModalsVars Vars in Enum.GetValues(typeof(NonModalsVars))) { if (block.ContainsKey(Vars.ToString())) { ParsedWord word = block[Vars.ToString()]; if (word.cmode.Contains("AC")) { switch (Vars) { case NonModalsVars.I: if (modalsCmd.Contains("DIAMON") || modalsCmd.Contains("DIAM90")) { machineCoordinatesVars[NonModalsVars.I] = mbase.Transform(VarValue).X *0.5 - coordinatesOld[Axis.X]; } else { machineCoordinatesVars[Vars] = mbase.Transform(VarValue).X - coordinatesOld[Axis.X]; } break; case NonModalsVars.J: machineCoordinatesVars[Vars] = mbase.Transform(VarValue).Y - coordinatesOld[Axis.Y]; break; case NonModalsVars.K: machineCoordinatesVars[Vars] = mbase.Transform(VarValue).Z - coordinatesOld[Axis.Z]; break; default: machineCoordinatesVars[Vars] = word.value; break; } } else { machineCoordinatesVars[Vars] = word.value; } } else { machineCoordinatesVars[Vars] = 0.0; } } }
/// <summary> /// Replace a word within a GCODE block /// </summary> /// <param name="GCodeBLock"> </param> /// <param name="replaceWith"> /// @return </param> /// <exception cref="Exception"> </exception> protected internal virtual string replaceWord(string GCodeBLock, string replaceWith) { if (replaceWith.StartsWith("M", StringComparison.Ordinal) || replaceWith.StartsWith("G", StringComparison.Ordinal)) { throw new SimValidationException("M and G words cannot be replaced at this moment."); } ParsedWord word = findWordInBlock(new StringBuilder(GCodeBLock)); if (word == null) { return(GCodeBLock + replaceWith); } else { return(GCodeBLock.Replace(word.asRead, replaceWith)); } }
private void GetValue(IDictionary <string, ParsedWord> block) { foreach (Axis axis in Enum.GetValues(typeof(Axis))) { if (block.ContainsKey(axis.ToString())) { ParsedWord word = block[axis.ToString()]; switch (axis) { case Axis.X: if (word.cmode.Contains("IC") || modals.Contains("G91")) { if (modalsCmd.Contains("DIAMON")) { Value.X = Value.X + word.value * 0.5; } else { Value.X = Value.X + word.value; } } else { if (modalsCmd.Contains("DIAMON") || modalsCmd.Contains("DIAM90")) { Value.X = word.value * 0.5; } else { Value.X = word.value; } } break; case Axis.Y: if (word.cmode.Contains("IC") || modals.Contains("G91")) { Value.Y = Value.Y + word.value; } else { Value.Y = word.value; } break; case Axis.Z: if (word.cmode.Contains("IC") || modals.Contains("G91")) { Value.Z = Value.Z + word.value; } else { Value.Z = word.value; } break; case Axis.A: if (word.cmode.Contains("IC") || modals.Contains("G91")) { RotValue.X = RotValue.X + word.value; } else { RotValue.X = word.value; } break; case Axis.B: if (word.cmode.Contains("IC") || modals.Contains("G91")) { RotValue.Y = RotValue.Y + word.value; } else { RotValue.Y = word.value; } break; case Axis.C: if (word.cmode.Contains("IC") || modals.Contains("G91")) { RotValue.Z = RotValue.Z + word.value; } else { RotValue.Z = word.value; } break; } } } }