/*
         *      private void SaveAs()
         *      {
         *          if (Code == null)
         *              return;
         *
         *          SaveFileDialog saveFileDialog = new SaveFileDialog();
         *          saveFileDialog.Filter = "Petri Printer Project file (*.ppp)|*.ppp";
         *          if (saveFileDialog.ShowDialog() != true)
         *              return;
         *          CurrentTask.Path = saveFileDialog.FileName;
         *
         *          Save();
         *      }*/

        private List <IGCode> ConvertString2Code(string text)
        {
            string[] lines = text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
            var      list  = new List <IGCode>(lines.Length);

            foreach (var l in lines)
            {
                var code = GCodeReader.Read(l);
                if (code != null)
                {
                    list.Add(code);
                }
            }
            return(list);
        }
示例#2
0
        public bool RunProcessor(IPreprocessor processor, String inputFile, String outputFile)
        {
            var reader = new GCodeReader(inputFile);
            var writer = new GCodeWriter(outputFile);

            try
            {
                return(processor.ProcessGCode(reader, writer, getPrinterDetails(), getJobDetails()));
            }
            finally
            {
                reader.Close();
                writer.Close();
            }
        }
        private void Open()
        {
            if (!checkSave())
            {
                return;
            }

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Supported files|*.gcode; *.ptf|gcode file (*.gcode)|*.gcode|Petri Task File (*.ptf)|*.ptf";
            if (openFileDialog.ShowDialog() != true)
            {
                return;
            }

            filePath = openFileDialog.FileName;

            if (System.IO.Path.GetExtension(filePath).Contains("ptf"))
            {
                var task = IOTools.Open <PetriTask>(filePath);
                Code     = task.Code;
                Task     = task;
                TaskPath = filePath;
            }
            else
            {
                var r = new GCodeReader(openFileDialog.FileName);
                Code = r.Code;
            }
            RowList = new ObservableCollection <IGCode>();
            renderList();
            if (PositionChanged != null)
            {
                PositionChanged(0);
            }
            viewer = new TrackViewer(Code);

            viewer.AddPoint    += CodeAddPoint;
            viewer.RemovePoint += CodeRemovePoint;

            viewer.Show();
            isChanged = true;
            UpdateObjSize();
        }
        public MainViewModel()
        {
            TrackViewer.ShiftView = new System.Windows.Point(50, 50);
            // CreateNewBtn = new BasicVezerloBtn(() => CreateNew());
            OpenBtn = new BasicVezerloBtn(() => Open());

            Up1     = new BasicVezerloBtn(() => ChangePosition(1));
            Up10    = new BasicVezerloBtn(() => ChangePosition(10));
            Up100   = new BasicVezerloBtn(() => ChangePosition(100));
            Down1   = new BasicVezerloBtn(() => ChangePosition(-1));
            Down10  = new BasicVezerloBtn(() => ChangePosition(-10));
            Down100 = new BasicVezerloBtn(() => ChangePosition(-100));

            UpZ   = new BasicVezerloBtn(() => NextZ());
            DownZ = new BasicVezerloBtn(() => PreviousZ());

            RemoveFrom = new BasicVezerloBtn(() => { rFrom = CodePosition; NotifyPropertyChanged("RemoveFromStr"); });
            RemoveTo   = new BasicVezerloBtn(() => { rTo = CodePosition; NotifyPropertyChanged("RemoveToStr"); });
            Remove     = new BasicVezerloBtn(() =>
            {
                if (rTo == null || rFrom == null)
                {
                    return;
                }
                Code.Codes.RemoveRange(Math.Min(rTo.Value, rFrom.Value) - 1, Math.Abs(rTo.Value - rFrom.Value) + 1);
                rTo   = null;
                rFrom = null;

                UpdateObjSize();

                NotifyPropertyChanged("RemoveFromStr");
                NotifyPropertyChanged("RemoveToStr");
                NotifyPropertyChanged("CodeCount");

                NotifyPropertyChanged("CodePosition");
                NotifyPropertyChanged("CurrentCodeString");
                renderList();
                if (PositionChanged != null)
                {
                    PositionChanged(CodePosition);
                }
            });

            InsertCommands = new BasicVezerloBtn(() =>
            {
                InsertCommandsDialog icd = new InsertCommandsDialog();
                if (icd.ShowDialog() == true)
                {
                    string[] lines = icd.Answer.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
                    var list       = new List <IGCode>(lines.Length);
                    foreach (var l in lines)
                    {
                        var code = GCodeReader.Read(l);
                        if (code != null)
                        {
                            list.Add(code);
                        }
                    }
                    Code.Codes.InsertRange(CodePosition, list);
                    NotifyPropertyChanged("CodeCount");
                    UpdateObjSize();
                    NotifyPropertyChanged("CodePosition");
                    NotifyPropertyChanged("CurrentCodeString");
                    renderList();
                    PositionChanged?.Invoke(CodePosition);
                }
            });
            SaveBtn = new BasicVezerloBtn(() => Save());

            /*  SaveAsBtn = new BasicVezerloBtn(() => SaveAs());
             * ShowGridSettingsBtn = new BasicVezerloBtn(() => ShowGridSettings());
             * ImportBtn = new BasicVezerloBtn(() => Import());
             * ShowPrinterSettingsBtn = new BasicVezerloBtn(() => ShowPrinterSettings());
             * showHelpBtn = new BasicVezerloBtn(() => showHelp());
             * showAboutBtn = new BasicVezerloBtn(() => showAbout());
             * AddBtn = new BasicVezerloBtn(() => Add());
             * RemoveBtn = new BasicVezerloBtn(() => Remove());
             * GenerateBtn = new BasicVezerloBtn(() => Generate());
             *
             * AvailableTaskList = new ObservableCollection<PetriTask>();*/
        }