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}"); }
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); } }
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()); } } } }
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"); } } }