public void GenerateCode(string path) { GCodeCollector Code = new GCodeCollector(); Code.Codes.Clear(); Code.addCode(GCodeSpecial.HeaterAndWait(Printer.Temperature)); Code.addCode(GCodeSpecial.setMetricValues()); Code.addCode(GCodeSpecial.setAbsolutePositionMode()); Code.addCode(GCodeSpecial.setExtruderRelativeMode()); Code.addCode(GCodeSpecial.GoToHome(x: true, y: true)); Code.addCode(GCodeSpecial.GoToHome(z: true)); Code.addCode(GCodeSpecial.ResetToExtrude(0)); Code.addCode(new GCodeLine(z: 15, speed: 9000, mode: GCodeLine.SpeedModes.Fast)); int h = Grid.Rows; int w = Grid.Columns; int c = 0; for (int x = 0; x < w; x++) { for (int y = 0; y < h; y++) { c++; var yk = (x % 2 != 0) ? h - y - 1 : y; Console.WriteLine(x + "; " + yk); var task = Tasks[x, yk]; if (task == null) { continue; } double cX = x * Grid.DistanceColumns + Grid.GridOffX; double cY = yk * Grid.DistanceRows + Grid.GridOffY; double z = Printer.Zoff; c = x + yk * w; if (GridMap != null && GridMap.Count > c && GridMap[c] != null) { z = GridMap[c].Value; } Console.WriteLine(z); task.Print(Code, cX, cY, z); Code.addCode(new GCodeLine(z: 15, speed: 9000, mode: GCodeLine.SpeedModes.Fast)); } } Code.addCode(GCodeSpecial.GoToHome(x: true, y: true)); Code.addCode(GCodeSpecial.FanOff()); Code.addCode(GCodeSpecial.HeaterOff()); Code.addCode(GCodeSpecial.StepperOff()); Code.SaveTogCodeFile(path); }
public static PetriTask OpenPyton(string file) { try { var ipy = Python.CreateRuntime(); dynamic test = ipy.UseFile(file); string name = test.Name(); string description = test.Description(); GCodeCollector code = test.Code(); return(new PetriTask(name, description, code)); } catch (Exception e) { Console.WriteLine(e.Message); } return(null); }
public TrackViewer(GCodeCollector code) { InitializeComponent(); Code = code; zoomSlider.ValueChanged += OnSliderValueChanged; scrollViewer.ScrollChanged += OnScrollViewerScrollChanged; scrollViewer.MouseMove += Vaszon_MouseMove; scrollViewer.PreviewMouseRightButtonUp += OnMouseRightButtonUp; scrollViewer.PreviewMouseRightButtonDown += OnMouseRightButtonDown; scrollViewer.PreviewMouseWheel += OnPreviewMouseWheel; RemoveBtn.Click += (s, e) => { RemovePoint?.Invoke(_p - 1); SetPosition(_p); }; Vaszon.MouseUp += (s, e) => { if (!Keyboard.IsKeyDown(Key.LeftCtrl)) { return; } System.Windows.Point currentPosition = e.GetPosition(Vaszon); currentPosition.X -= ShiftView.X; currentPosition.Y -= ShiftView.Y; AddPoint?.Invoke(_p, currentPosition); var line = Vaszon.Children[Vaszon.Children.Count - 2] as Line; SetPosition(_p + 1); }; jelolo = new Ellipse(); jelolo.Fill = Brushes.Yellow; jelolo.Stroke = Brushes.Black; jelolo.Width = 1; jelolo.Height = 1; jelolo.StrokeThickness = 0.2; jelolo.MouseEnter += (s, e) => { Mouse.OverrideCursor = Cursors.Hand; }; jelolo.MouseLeave += (s, e) => { Mouse.OverrideCursor = null; }; jelolo.MouseDown += (s, e) => { mozog = true; jelolo.CaptureMouse(); }; jelolo.MouseUp += (s, e) => { mozog = false; jelolo.ReleaseMouseCapture(); }; jelolo.MouseMove += (s, e) => { if (!mozog) { return; } System.Windows.Point currentPosition = e.GetPosition(Vaszon); Canvas.SetLeft(jelolo, currentPosition.X - jelolo.Width / 2); Canvas.SetTop(jelolo, currentPosition.Y - jelolo.Height / 2); var line = Vaszon.Children[Vaszon.Children.Count - 2] as Line; line.X2 = currentPosition.X; line.Y2 = currentPosition.Y; var l = line.DataContext as GCodeLine; currentPosition.X -= ShiftView.X; currentPosition.Y -= ShiftView.Y; l.x = currentPosition.X; l.y = currentPosition.Y; }; }