Example #1
0
        public void LoadHpglConvertClosedLine()
        {
            var loadInfo = new LoadOptions
            {
                LoadType    = LoadOptions.ELoadType.Hpgl,
                AutoScale   = false,
                PenMoveType = LoadOptions.PenType.CommandString,
                MoveSpeed   = 499,
                CutterSize  = 0,
                ConvertType = LoadOptions.ConvertTypeEnum.InvertLineSequence,
                FileContent = Encoding.ASCII.GetBytes(
                    "IN;" + "PU0,0;PD0,400,400,400,400,0,0,0;" + "PU50,50;PD350,50,350,350,50,350,50,50;" + "PU100,100;PD300,100,300,300,100,300,100,100;" +
                    "PU150,150;PD250,150,250,250,150,250,150,150;" + "PU;SP0")
            };

            var load = LoadBase.Create(loadInfo);

            load.Load();

            string[] gcode =
            {
                "G1 F499",      "M107",         "G0 X3.75 Y3.75", "M106 S255", "G1 X6.25 Y3.75", "G1 X6.25 Y6.25", "G1 X3.75 Y6.25", "G1 X3.75 Y3.75", "M107",           "G0 X2.5 Y2.5",   "M106", "G1 X7.5 Y2.5",
                "G1 X7.5 Y7.5", "G1 X2.5 Y7.5", "G1 X2.5 Y2.5",   "M107",      "G0 X1.25 Y1.25", "M106",           "G1 X8.75 Y1.25", "G1 X8.75 Y8.75", "G1 X1.25 Y8.75", "G1 X1.25 Y1.25", "M107", "G0 X0 Y0",    "M106",
                "G1 X0 Y10",    "G1 X10 Y10",   "G1 X10 Y0",      "G1 X0 Y0",  "M107",           "M5"
            };

            var list = load.Commands.Where(IsGCommand);

            CheckGCode(list, gcode);
        }
Example #2
0
        public void LoadHpglSkipPU()
        {
            var loadInfo = new LoadOptions
            {
                LoadType    = LoadOptions.ELoadType.Hpgl,
                AutoScale   = false,
                PenMoveType = LoadOptions.PenType.CommandString,
                MoveSpeed   = 499,
                FileContent = Encoding.ASCII.GetBytes("IN;PU1000,100;PU0,0;PD400,400;PU0,0")

                              // leading PU1000,100 and trailing PU0,0 is skipped
            };

            var load = LoadBase.Create(loadInfo);

            load.Load();

            string[] gcode =
            {
                "G1 F499", "M107", "G0 X0 Y0", "M106 S255", "G1 X10 Y10", "M107", "M5" // ShutdownCommands
            };

            var list = load.Commands.Where(IsGCommand);

            CheckGCode(list, gcode);
        }
Example #3
0
        public void LoadHpglGengraveNoParamAndSpeed()
        {
            var loadInfo = new LoadOptions
            {
                LoadType              = LoadOptions.ELoadType.Hpgl,
                AutoScale             = false,
                PenMoveType           = LoadOptions.PenType.ZMove,
                EngravePosInParameter = false,
                EngravePosUp          = 1.23m,
                EngravePosDown        = 0.12m,
                EngraveDownSpeed      = 123,
                MoveSpeed             = 499,
                FileContent           = Encoding.ASCII.GetBytes("IN;PU0,0;PD400,400;PD800,400")
            };

            var load = LoadBase.Create(loadInfo);

            load.Load();

            string[] gcode =
            {
                "G1 F499", "G0 Z1.23", "G0 X0 Y0", "G1 Z0.12 F123", "G1 X10 Y10 F499", "G1 X20 Y10", "G0 Z1.23"
            };

            var list = load.Commands.Where(e => e is G00Command || e is G01Command);

            CheckGCode(list, gcode);
        }
Example #4
0
        public void LoadHpglConvertOpenLine()
        {
            var loadInfo = new LoadOptions
            {
                LoadType    = LoadOptions.ELoadType.Hpgl,
                AutoScale   = false,
                PenMoveType = LoadOptions.PenType.CommandString,
                MoveSpeed   = 499,
                ConvertType = LoadOptions.ConvertTypeEnum.InvertLineSequence,
                FileContent = Encoding.ASCII.GetBytes("IN;PU0,0;PD400,400;PD800,400;PU800,800;PD1200,1200;PU;SP0;PU0,0")
            };

            var load = LoadBase.Create(loadInfo);

            load.Load();

            string[] gcode =
            {
                "G1 F499", "M107", "G0 X0 Y0", "M106 S255", "G1 X10 Y10", "G1 X20 Y10", "M107", "G0 X20 Y20", "M106", "G1 X30 Y30", "M107", "M5" // ShutdownCommands
            };

            var list = load.Commands.Where(IsGCommand);

            CheckGCode(list, gcode);
        }
Example #5
0
        public void LoadHPGLGengraveParam()
        {
            var loadinfo = new LoadOptions
            {
                LoadType              = LoadOptions.ELoadType.HPGL,
                AutoScale             = false,
                PenMoveType           = LoadOptions.PenType.ZMove,
                EngravePosInParameter = true,
                FileContent           = Encoding.ASCII.GetBytes("IN;PU0,0;PD400,400")
            };

            var load = LoadBase.Create(loadinfo);

            load.Load();

            string[] gcode =
            {
                "G1 F500",
                "G0 Z#1",
                "G0 X0 Y0",
                "G1 Z#2",
                "G1 X10 Y10",
                "G0 Z#1"
            };

            var list = load.Commands.Where(e => e is G00Command || e is G01Command);

            CheckGCode(list, gcode);
        }
Example #6
0
        private static LoadBase CallLoadWithContent(LoadOptions opt)
        {
            var filename    = opt.FileName;
            var fileContent = opt.FileContent;

            string pathFileName = Path.GetFileName(filename);
            string tmpFile      = Path.GetTempPath() + pathFileName;

            opt.FileName             = tmpFile;
            opt.ImageWriteToFileName = null;

            try
            {
                File.WriteAllBytes(tmpFile, fileContent);

                LoadBase load = LoadBase.Create(opt);

                if (load == null)
                {
                    return(null);
                }

                load.Load();
                return(load);
            }
            finally
            {
                File.Delete(tmpFile);
            }
        }
Example #7
0
        public void LoadHPGLLaser()
        {
            var loadinfo = new LoadOptions
            {
                LoadType    = LoadOptions.ELoadType.HPGL,
                AutoScale   = false,
                PenMoveType = LoadOptions.PenType.CommandString,
                MoveSpeed   = 499,
                FileContent = Encoding.ASCII.GetBytes("IN;PU0,0;PD400,400;PD800,400;PU800,800;PD1200,1200")
            };

            var load = LoadBase.Create(loadinfo);

            load.Load();

            string[] gcode =
            {
                "G1 F499",
                "M107",
                "G0 X0 Y0",
                "M106 S255",
                "G1 X10 Y10",
                "G1 X20 Y10",
                "M107",
                "G0 X20 Y20",
                "M106",
                "G1 X30 Y30",
                "M107",
                "M5"            // ShutdownCommands
            };

            var list = load.Commands.Where(e => IsGCommand(e));

            CheckGCode(list, gcode);
        }
Example #8
0
        private void LoadLocal(LoadOptions loadInfo)
        {
            try
            {
                LoadBase load = LoadBase.Create(loadInfo);

                load.LoadOptions = loadInfo;
                load.Load();
                Commands.Clear();
                Commands.AddRange(load.Commands);
                if (!string.IsNullOrEmpty(loadInfo.GCodeWriteToFileName))
                {
                    string gcodeFileName = Environment.ExpandEnvironmentVariables(loadInfo.GCodeWriteToFileName);
                    using (var sw = File.CreateText(gcodeFileName))
                    {
                        load.WriteGCodeFile(sw);
                    }

                    using (var sw = File.CreateText(Path.GetDirectoryName(gcodeFileName) + @"\" + Path.GetFileNameWithoutExtension(gcodeFileName) + @".cb"))
                    {
                        load.WriteCamBamFile(sw);
                    }

                    using (var sw = File.CreateText(Path.GetDirectoryName(gcodeFileName) + @"\" + Path.GetFileNameWithoutExtension(gcodeFileName) + @".hpgl"))
                    {
                        load.WriteImportInfoFile(sw);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #9
0
        public static LoadBase CallLoad(string filename, byte[] filecontent, LoadOptions opt)
        {
            string pathfilename = Path.GetFileName(filename);
            string tmpfile      = Path.GetTempPath() + pathfilename;

            opt.FileName             = tmpfile;
            opt.ImageWriteToFileName = null;

            try
            {
                File.WriteAllBytes(tmpfile, filecontent);

                LoadBase load = LoadBase.Create(opt);

                if (load == null)
                {
                    return(null);
                }

                load.Load();
                return(load);
            }
            finally
            {
                File.Delete(tmpfile);
            }
        }
Example #10
0
        private static LoadBase CallLoadWithFileName(LoadOptions opt)
        {
            LoadBase load = LoadBase.Create(opt);

            if (load == null)
            {
                return(null);
            }

            load.Load();
            return(load);
        }
Example #11
0
        public void LoadHPGL00()
        {
            var loadinfo = new LoadOptions
            {
                LoadType    = LoadOptions.ELoadType.HPGL,
                AutoScale   = false,
                FileContent = Encoding.ASCII.GetBytes("IN;PU0,0")
            };

            var load = LoadBase.Create(loadinfo);

            load.Load();

            var list = load.Commands.Where(e => e is G00Command || e is G01Command);

            list.Count().Should().Be(2);

            list.First().Should().BeOfType <G01Command>();      // G0 F500
            list.ElementAt(1).Should().BeOfType <G00Command>(); // G0 z1
            //list.ElementAt(2).Should().BeOfType<G00Command>();    // G0 0,0 => PU0,0, is skipped by new version
        }