public void ModifyTest()
 {
     using (var input = File.OpenRead(@"Slic3rToBaseTestData\test1.g")) {
         using (var output = File.Create(@"Slic3rToBaseTestData\output1.g")) {
             var process = new Slic3rToBase();
             process.SpeedZ = 30;
             Assert.AreEqual(process.Modify(input, output), true);
         }
     }
     SupportClass.AreEqualText(@"Slic3rToBaseTestData\result1.g", @"Slic3rToBaseTestData\output1.g");
 }
Example #2
0
        static void Main(string[] args)
        {
            string parameterFile   = null;
            string targetGcodeFile = null;
            string outputFile      = null;

            // パラメータの解析
            foreach (var arg in args)
            {
                if (arg.EndsWith(".json"))
                {
                    if (File.Exists(arg))
                    {
                        parameterFile = arg;
                    }
                }
                else if (arg.EndsWith(".gx") || arg.EndsWith(".g"))
                {
                    if (File.Exists(arg))
                    {
                        targetGcodeFile = arg;
                    }
                }
            }

            if (!string.IsNullOrEmpty(parameterFile) && !string.IsNullOrEmpty(targetGcodeFile))
            {
                outputFile = Path.ChangeExtension(targetGcodeFile, ".gout");
                using (var gfile = File.Open(targetGcodeFile, FileMode.Open)) {
                    // ファイルの種別取り出し
                    var buffer = new List <Byte>();
                    for (var val = gfile.ReadByte(); val != -1; val = gfile.ReadByte())
                    {
                        buffer.Add((Byte)val);
                        if (val == 0x0a)
                        {
                            break;
                        }
                    }
                    var firstLine = Encoding.ASCII.GetString(buffer.ToArray());
                    gfile.Seek(0, SeekOrigin.Begin);

                    ToAdventurer3 toAdventurer3Process = null;
                    using (var parameter = System.IO.File.OpenRead(parameterFile)) {
                        var settings   = new System.Runtime.Serialization.Json.DataContractJsonSerializerSettings();
                        var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(ToAdventurer3), settings);
                        toAdventurer3Process = (ToAdventurer3)serializer.ReadObject(parameter);
                    }

                    if (firstLine.StartsWith("; generated by Slic3r 1.3.0"))
                    {
                        var          tempFile        = Path.GetTempFileName();
                        Slic3rToBase toSlic3rProcess = null;
                        using (var parameter = System.IO.File.OpenRead(parameterFile)) {
                            var settings   = new System.Runtime.Serialization.Json.DataContractJsonSerializerSettings();
                            var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Slic3rToBase), settings);
                            toSlic3rProcess = (Slic3rToBase)serializer.ReadObject(parameter);
                        }
                        if (toSlic3rProcess != null)
                        {
                            using (var temp = File.Open(tempFile, FileMode.Open)) {
                                if (!toSlic3rProcess.Modify(gfile, temp))
                                {
                                    Console.WriteLine("Can't translate Slic3r file.");
                                    return;
                                }
                                temp.Seek(0, SeekOrigin.Begin);
                                using (var output = File.Open(outputFile, FileMode.CreateNew)) {
                                    if (!toAdventurer3Process.Modify(temp, output))
                                    {
                                        Console.WriteLine("Can't translate to Adventurer3 file.");
                                        return;
                                    }
                                }
                            }
                        }
                        File.Delete(tempFile);
                        Console.WriteLine("Translate end.");
                    }
                    else if (firstLine.StartsWith("xgcode 1.0") || firstLine.StartsWith("; G-Code generated by Simplify3D(R) Version 4.1"))
                    {
                        using (var output = File.Open(outputFile, FileMode.CreateNew)) {
                            if (!toAdventurer3Process.Modify(gfile, output))
                            {
                                Console.WriteLine("Can't translate to Adventurer3 file.");
                                return;
                            }
                        }
                        Console.WriteLine("Translate end.");
                    }
                }
            }
            else
            {
                Console.WriteLine("Can't translate.");
            }
        }
        public void Construct1()
        {
            var test = new Slic3rToBase();

            Assert.AreEqual(test.SpeedZ, 30);
        }