Beispiel #1
0
 private void UpdateModalGCodes(HashSet <float> gCodes)
 {
     if (gCodes.Count == 0)
     {
         return;
     }
     foreach (var group in GCodeExpression.MutuallyExclusiveCodes)
     {
         if (gCodes.Intersect(group).Any())
         {
             var modalCodes = gCodes.Where(c => group.Contains(c)).ToHashSet();
             ModalGCodes.ExceptWith(group);
             ModalGCodes.UnionWith(modalCodes);
         }
     }
 }
Beispiel #2
0
 private void SetOldCoordinates(AxisCoordinates currentCoordinates)
 {
     if (ModalGCodes.Contains(91))
     {
         if (currentCoordinates.A.HasValue)
         {
             OldCoordinates.A = currentCoordinates.A + OldCoordinates.A;
         }
         if (currentCoordinates.B.HasValue)
         {
             OldCoordinates.B = currentCoordinates.B + OldCoordinates.B;
         }
         if (currentCoordinates.C.HasValue)
         {
             OldCoordinates.C = currentCoordinates.C + OldCoordinates.C;
         }
         if (currentCoordinates.U.HasValue)
         {
             OldCoordinates.U = currentCoordinates.U + OldCoordinates.U;
         }
         if (currentCoordinates.V.HasValue)
         {
             OldCoordinates.V = currentCoordinates.V + OldCoordinates.V;
         }
         if (currentCoordinates.W.HasValue)
         {
             OldCoordinates.W = currentCoordinates.W + OldCoordinates.W;
         }
         if (currentCoordinates.X.HasValue)
         {
             OldCoordinates.X = currentCoordinates.X + OldCoordinates.X;
         }
         if (currentCoordinates.Y.HasValue)
         {
             OldCoordinates.Y = currentCoordinates.Y + OldCoordinates.Y;
         }
         if (currentCoordinates.Z.HasValue)
         {
             OldCoordinates.Z = currentCoordinates.Z + OldCoordinates.Z;
         }
     }
     else
     {
         if (currentCoordinates.A.HasValue)
         {
             OldCoordinates.A = currentCoordinates.A;
         }
         if (currentCoordinates.B.HasValue)
         {
             OldCoordinates.B = currentCoordinates.B;
         }
         if (currentCoordinates.C.HasValue)
         {
             OldCoordinates.C = currentCoordinates.C;
         }
         if (currentCoordinates.U.HasValue)
         {
             OldCoordinates.U = currentCoordinates.U;
         }
         if (currentCoordinates.V.HasValue)
         {
             OldCoordinates.V = currentCoordinates.V;
         }
         if (currentCoordinates.W.HasValue)
         {
             OldCoordinates.W = currentCoordinates.W;
         }
         if (currentCoordinates.X.HasValue)
         {
             OldCoordinates.X = currentCoordinates.X;
         }
         if (currentCoordinates.Y.HasValue)
         {
             OldCoordinates.Y = currentCoordinates.Y;
         }
         if (currentCoordinates.Z.HasValue)
         {
             OldCoordinates.Z = currentCoordinates.Z;
         }
     }
 }
Beispiel #3
0
        public override string ToString()
        {
            var builder = new StringBuilder();

            if (ModalGCodes != null && ModalGCodes.Count > 0)
            {
                if (ModalGCodes.Count > 1)
                {
                    builder.Append(ModalGCodes.Select(c => $"G{c}").Aggregate((s1, s2) => $"{s1} {s2} "));
                }
                else
                {
                    builder.Append($"G{ModalGCodes.First().ToString(CultureInfo.InvariantCulture)} ");
                }
            }
            if (CurrentGCodes != null && CurrentGCodes.Count > 0)
            {
                if (CurrentGCodes.Count > 1)
                {
                    builder.Append(CurrentGCodes.Select(c => $"G{c}").Aggregate((s1, s2) => $"{s1} {s2} "));
                }
                else
                {
                    builder.Append($"G{CurrentGCodes.First().ToString(CultureInfo.InvariantCulture)} ");
                }
            }

            builder.Append($"T{ToolNumber} ");
            builder.Append($"F{FeedRate} ");

            if (ModalMCodes != null && ModalMCodes.Count > 0)
            {
                if (ModalGCodes.Count > 1)
                {
                    builder.Append(ModalMCodes.Select(c => $"M{c}").Aggregate((s1, s2) => $"{s1} {s2} "));
                }
                else
                {
                    builder.Append($"M{ModalMCodes.First().ToString(CultureInfo.InvariantCulture)} ");
                }
            }
            if (CurrentMCodes != null && CurrentMCodes.Count > 0)
            {
                if (CurrentMCodes.Count > 1)
                {
                    builder.Append(CurrentMCodes.Select(c => $"M{c}").Aggregate((s1, s2) => $"{s1} {s2} "));
                }
                else
                {
                    builder.Append($"M{CurrentMCodes.First().ToString(CultureInfo.InvariantCulture)} ");
                }
            }

            var x = CurrentCoordinates.X.HasValue ? $"X{CurrentCoordinates.X.Value} " : string.Empty;
            var y = CurrentCoordinates.Y.HasValue ? $"Y{CurrentCoordinates.Y.Value} " : string.Empty;
            var i = CurrentFrame.IValue.HasValue ? $"I{CurrentFrame.IValue.Value} " : string.Empty;
            var j = CurrentFrame.JValue.HasValue ? $"J{CurrentFrame.JValue.Value} " : string.Empty;
            var r = CurrentFrame.RValue.HasValue ? $"R{CurrentFrame.RValue.Value} " : string.Empty;

            builder.Append($"{x}{y}{i}{j}{r}");

            return(builder.ToString());
        }
Beispiel #4
0
 public override string ToString()
 {
     var modalGCodes    = ModalGCodes.Count > 0 ? $"{ModalGCodes.Select(code => code.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => string.IsNullOrEmpty(s2) ? $"G{s1} G{s2}" : $"G{s1}")} " : string.Empty;