public void GenerateCutout()
        {
            var doc = XDocument.Load("./EagleSample.brd");
            var pcb = EagleParser.ReadPCB(doc);

            var config = new PCBProject()
            {
                PauseForToolChange    = true,
                MillFeedRate          = 200,
                MillCutDepth          = 0.5,
                MillPlungeRate        = 200,
                MillSafeHeight        = 10,
                MillSpindleDwell      = 3,
                MillSpindleRPM        = 15000,
                MillToolSize          = 3.2,
                StockThickness        = 1.75,
                ScrapSides            = 3,
                ScrapTopBottom        = 3,
                DrillPlungeRate       = 200,
                SafePlungeRecoverRate = 1000,
            };

            var gcode = GCodeEngine.CreateCutoutMill(pcb, config);

            Debug.WriteLine(gcode);
        }
        public void ParsePCB()
        {
            var doc = XDocument.Load("./EagleSample.brd");

            var pcb = EagleParser.ReadPCB(doc);

            var holes        = pcb.Layers.Where(layer => layer.Number == 45).FirstOrDefault().Holes;
            var drills       = pcb.Layers.Where(layer => layer.Number == 44).FirstOrDefault().Drills;
            var outlineWires = pcb.Layers.Where(layer => layer.Number == 20).FirstOrDefault().Wires;

            Debug.WriteLine("Outline");
            foreach (var outline in outlineWires)
            {
                Debug.WriteLine($"\t{outline}");
            }

            Debug.WriteLine("Holes");
            foreach (var hole in holes)
            {
                Debug.WriteLine($"\t{hole}");
            }

            Debug.WriteLine("Drills");
            foreach (var drill in drills)
            {
                Debug.WriteLine($"\t{drill}");
            }

            Debug.Write($"Width={pcb.Width}  Height={pcb.Height}");
        }
Esempio n. 3
0
        public void BuildBOMTest()
        {
            var doc = XDocument.Load("./KegeratorController.brd");

            var pcb = EagleParser.ReadPCB(doc);

            var bom = new BOM(pcb);

            foreach (var entry in bom.Entries.Where(entry => entry.Package.IsSMD))
            {
                Console.WriteLine(entry);
            }
        }
Esempio n. 4
0
        public PCBProjectViewModel(PCBProject project)
        {
            Project = project;
            SaveDefaultProfileCommand       = new RelayCommand(SaveDefaultProfile);
            OpenEagleBoardCommand           = new RelayCommand(OpenEagleBoard);
            OpenTopEtchingCommand           = new RelayCommand(OpenTopEtching);
            OpenBottomEtchingCommand        = new RelayCommand(OpenBottomEtching);
            CenterBoardCommand              = new RelayCommand(CenterBoard);
            GenerateIsolationMillingCommand = new RelayCommand(GenerateIsolation);

            if (!String.IsNullOrEmpty(Project.EagleBRDFilePath))
            {
                var doc = XDocument.Load(Project.EagleBRDFilePath);
                PCB = EagleParser.ReadPCB(doc);
                Project.FiducialOptions = PCB.Holes.Where(drl => drl.Drill > 2).ToList();
            }
        }
        public void GetTraceSegments()
        {
            var doc = XDocument.Load("./PNPHeadBoard.brd");
            //var doc = XDocument.Load("./EagleSample.brd");
            var pcb = EagleParser.ReadPCB(doc);

            foreach (var signal in pcb.Signals)
            {
                Debug.WriteLine(signal.Name);
                foreach (var trace in signal.TopTraces)
                {
                    Debug.WriteLine("TRACE");
                    foreach (var wire in trace.Wires)
                    {
                        Debug.WriteLine("    " + wire.ToString());
                    }
                }
            }
        }
Esempio n. 6
0
        public async void OpenEagleBoard()
        {
            var result = await Popups.ShowOpenFileAsync(Constants.FileFilterPCB);

            if (!String.IsNullOrEmpty(result))
            {
                try
                {
                    Project.EagleBRDFilePath = result;

                    var doc = XDocument.Load(Project.EagleBRDFilePath);
                    PCB = EagleParser.ReadPCB(doc);
                    Project.FiducialOptions = PCB.Holes.Where(drl => drl.Drill > 2).ToList();
                }
                catch
                {
                    await Popups.ShowAsync("Could not open Eage File");
                }
            }
        }