Пример #1
0
        string AsRelativeMovePosition(INcMachine ncMachine, IMachinePosition previousPosition)
        {
            string line = "";

            switch (ncMachine.MachineGeometry)
            {
            case MachineGeometry.XA:
                line = "X" + (X - previousPosition.X).ToString(linearFormat) + " "
                       + "A" + (Adeg - previousPosition.Adeg).ToString(rotaryFormat);
                break;

            case MachineGeometry.XYZ:
                line = line = "X" + (X - previousPosition.X).ToString(linearFormat) + " "
                              + "Y" + (Y - previousPosition.Y).ToString(linearFormat) + " "
                              + "Z" + (Z - previousPosition.Z).ToString(linearFormat);
                break;

            case MachineGeometry.XYZBC:
                line = line = "X" + (X - previousPosition.X).ToString(linearFormat) + " "
                              + "Y" + (Y - previousPosition.Y).ToString(linearFormat) + " "
                              + "Z" + (Z - previousPosition.Z).ToString(linearFormat) + " "
                              + "B" + (Bdeg - previousPosition.Bdeg).ToString(rotaryFormat) + " "
                              + "C" + (Cdeg - previousPosition.Cdeg).ToString(rotaryFormat);
                break;
            }

            return(line);
        }
Пример #2
0
 public string AsNcString(INcMachine ncMachine)
 {
     try
     {
         string format = ncMachine.MachineCode.FeedrateFormat;
         return(ncMachine.MachineCode.FeedratePrefix + Value.ToString(format));
     }
     catch (System.Exception)
     {
         throw;
     }
 }
Пример #3
0
 List <string> GetEndOfFile(INcMachine ncMachine)
 {
     try
     {
         var eof = new List <string>();
         eof.Add(ncMachine.MachineCode.EndofProg);
         return(eof);
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #4
0
 List <string> GetFooter(INcMachine ncMachine)
 {
     try
     {
         var footer = new List <string>();
         footer.Add(ncMachine.MachineCode.ComStart + "Footer" + ncMachine.MachineCode.ComEnd);
         return(footer);
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #5
0
 List <string> GetHeader(INcMachine ncMachine)
 {
     try
     {
         var header = new List <string>();
         header.Add(ncMachine.MachineCode.ComStart + "Title" + ncMachine.MachineCode.ComEnd);
         return(header);
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #6
0
 public string AsNcString(INcMachine ncMachine, IMachinePosition prevPosition, BlockType blockType, MoveType moveType)
 {
     rotaryFormat   = ncMachine.MachineCode.RotaryAxisFormat;
     linearFormat   = ncMachine.MachineCode.LinearAxisFormat;
     this.blockType = blockType;
     if (moveType == MoveType.RELATIVE)
     {
         return(AsRelativeMovePosition(ncMachine, prevPosition));
     }
     else
     {
         return(AsAbsoluteMovePosition(ncMachine));
     }
 }
Пример #7
0
        public List <string> AsNcTextFile(INcMachine ncMachine)
        {
            var file = new List <string>();
            IMachinePosition prevPosition = ncMachine.ProgStartPosition;

            file.AddRange(GetHeader(ncMachine));
            foreach (var ent in data)
            {
                file.Add(ent.AsNcString(ncMachine));
            }
            file.AddRange(GetFooter(ncMachine));
            file.AddRange(GetEndOfFile(ncMachine));

            return(file);
        }
Пример #8
0
 public virtual string AsNcString(INcMachine ncMachine)
 {
     try
     {
         string line = "";
         if (IsComment)
         {
             line += ncMachine.MachineCode.ComStart;
         }
         line += ncMachine.MachineCode.LineNumberPrefix + LineNumber.ToString() + " " + Content;
         return(line);
     }
     catch (Exception)
     {
         throw;
     }
 }
Пример #9
0
        public override string AsNcString(INcMachine ncMachine)
        {
            try
            {
                string line = ncMachine.MachineCode.LineNumberPrefix + LineNumber.ToString() + " ";

                if (Feedrate.Inverted)
                {
                    line += ncMachine.MachineCode.InverseFeed + " ";
                }
                line += ncMachine.MoveGCode(this.moveType, this.blockType) + " ";
                line += MachinePosition.AsNcString(ncMachine, prevPosition, blockType, moveType) + " " + Feedrate.AsNcString(ncMachine);
                return(line);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #10
0
        string AsAbsoluteMovePosition(INcMachine ncMachine)
        {
            string line = "";

            line += ncMachine.MachineCode.LinearMove;
            switch (ncMachine.MachineGeometry)
            {
            case MachineGeometry.XA:
                line = "X" + X.ToString(linearFormat) + " " + "A" + Adeg.ToString(rotaryFormat);
                break;

            case MachineGeometry.XYZ:
                line = "X" + X.ToString(linearFormat) + " " + "Y" + Y.ToString(linearFormat) + " " + "Z" + Z.ToString(linearFormat);
                break;

            case MachineGeometry.XYZBC:
                line = "X" + X.ToString(linearFormat) + " " + "Y" + Y.ToString(linearFormat) + " " + "Z" + Z.ToString(linearFormat)
                       + " " + "B" + Bdeg.ToString(rotaryFormat) + " " + "C" + Cdeg.ToString(rotaryFormat);
                break;
            }

            return(line);
        }
Пример #11
0
 public NcFileBuilder(INcMachine machine)
 {
     ncMachine         = machine;
     this.machineCodes = machine.MachineCode;
     currentLineNumber = machine.MachineCode.StartingLineNumber;
 }
Пример #12
0
 public override string AsNcString(INcMachine ncMachine)
 {
     return(ncMachine.CommandString(machineCommand));
 }