File size: 1,509 Bytes
b6a0fc3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System.Windows;
using Microsoft.Win32;
using FastPrint.Printer;
using FastPrint.Slicing;
using FastPrint.Model;

namespace FastPrint.UI
{
    public partial class MainWindow : Window
    {
        private MarlinConnector printer;
        private SliceAccelerator slicer;
        private STLModel model;

        public MainWindow()
        {
            InitializeComponent();
            slicer = new SliceAccelerator();
            model = new STLModel();
        }

        private void OpenSTL_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new OpenFileDialog { Filter = "STL Files (*.stl)|*.stl" };
            if (dlg.ShowDialog() == true)
            {
                model.LoadAscii(dlg.FileName);
                // Visualization logic can be added here
            }
        }

        private void Slice_Click(object sender, RoutedEventArgs e)
        {
            // Flatten triangles to vertex array
            var vertices = new System.Collections.Generic.List<float>();
            foreach (var tri in model.Triangles)
                vertices.AddRange(tri);

            slicer.Slice(vertices.ToArray(), 0.2f, result => {
                // Handle sliced result (e.g., display, export G-code)
            });
        }

        private async void Connect_Click(object sender, RoutedEventArgs e)
        {
            printer = new MarlinConnector(PortSelector.SelectedItem?.ToString() ?? "COM3");
            await printer.ConnectAsync();
        }
    }
}