Ejemplo n.º 1
0
        public static IsoLine Parse(string data, bool isIncremental)
        {
            var isoLine = new G0Line()
            {
                IsIncremental = isIncremental
            };

            ParseAndSetParameters(data, 0, isoLine);

            return(isoLine);
        }
Ejemplo n.º 2
0
        public static IsoLine Create(int lineNumber, string lineData, Action <IsoLine> addIsoLine)
        {
            IsoLine isoLine = null;

            if (MlvLine.Match(lineData))
            {
                isoLine = MlvLine.Parse(lineData);
            }
            else if (ShiftLine.Match(lineData))
            {
                isoLine = ShiftLine.Parse(lineData);
            }
            else if (VlVariableLine.Match(lineData))
            {
                isoLine = VlVariableLine.Parse(lineData);
            }
            else if (ExkVariableLine.Match(lineData))
            {
                isoLine = ExkVariableLine.Parse(lineData);
            }
            else if (G0Line.Match(lineData))
            {
                isoLine = G0Line.Parse(lineData, _isIncremental);
            }
            else if (G1Line.Match(lineData))
            {
                isoLine = G1Line.Parse(lineData);
            }
            else if (G2Arc.Match(lineData))
            {
                isoLine = G2Arc.Parse(lineData);
            }
            else if (G3Arc.Match(lineData))
            {
                isoLine = G3Arc.Parse(lineData);
            }
            else if (IfThenLine.Match(lineData))
            {
                isoLine = IfThenLine.Parse(lineData);
                _ifThenStack.Push((IfThenLine)isoLine);
            }
            else if (ElseIfLine.Match(lineData))
            {
                isoLine = ElseIfLine.Parse(lineData);
                UpdateElseLine(lineNumber);
            }
            else if (EndIfLine.Match(lineData))
            {
                isoLine = EndIfLine.Parse(lineData);
                UpdateEndLine(lineNumber);
            }
            else if (M3SLine.Match(lineData))
            {
                isoLine = M3SLine.Parse(lineData);
            }
            else if (MLine.Match(lineData))
            {
                isoLine = MLine.Parse(lineData);
            }
            else if (SLine.Match(lineData))
            {
                isoLine = SLine.Parse(lineData);
            }
            else if (G90.Match(lineData))
            {
                _isIncremental = false;

                if (G90.IsSingle(lineData))
                {
                    //isoLine = G90.Parse(lineData);
                    isoLine = new IsoLine();
                }
                else
                {
                    //addIsoLine(G90.Parse(lineData));
                    isoLine = Create(lineNumber, G90.Remove(lineData), null);
                }
            }
            else if (G91.Match(lineData))
            {
                _isIncremental = true;

                if (G91.IsSingle(lineData))
                {
                    //isoLine = G91.Parse(lineData);
                    isoLine = new IsoLine();
                }
                else
                {
                    //addIsoLine(G91.Parse(lineData));
                    isoLine = Create(lineNumber, G91.Remove(lineData), null);
                }
            }
            else
            {
                isoLine = new IsoLine();
            }

            isoLine.Data   = lineData;
            isoLine.Number = lineNumber;

            if (addIsoLine != null)
            {
                addIsoLine(isoLine);
            }

            return(isoLine);
        }