|
KiCad PCB EDA Suite
|
#include <drill/drill_enumerator.h>#include <board.h>#include <board_design_settings.h>#include <footprint.h>#include <pad.h>#include <pcb_track.h>#include <set>#include <utility>Go to the source code of this file.
Functions | |
| bool | IsDrillSlot (const PAD &aPad) |
| Whether a pad's hole is a slot rather than a round drill. | |
| std::vector< DRILL_OPERATION > | EnumerateDrillOperations (const BOARD &aBoard, const DRILL_QUERY &aQuery) |
| The one place that decides what the board's holes are. | |
| std::vector< DRILL_SPAN > | EnumerateDrillSpans (const BOARD &aBoard, bool aPadBackdrills) |
| Every drill span present on the board, through-holes first. | |
| std::vector< DRILL_OPERATION > EnumerateDrillOperations | ( | const BOARD & | aBoard, |
| const DRILL_QUERY & | aQuery ) |
The one place that decides what the board's holes are.
Every drill consumer goes through here so that no two of them can disagree about the board. Results come back in board order. Callers wanting the drill writers' ordering sort afterwards.
Definition at line 291 of file drill_enumerator.cpp.
References B_Cu, DRILL_SPAN::BottomLayer(), F_Cu, BOARD::Footprints(), IsCopperLayerLowerThan(), DRILL_SPAN::m_IsBackdrill, DRILL_QUERY::m_NonPlatedOnly, DRILL_QUERY::m_PadMachining, DRILL_QUERY::m_Span, pad, DRILL_SPAN::Pair(), PCB_VIA_T, DRILL_SPAN::TopLayer(), and BOARD::Tracks().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), DRILL_CHART_MODEL::Build(), GENDRILL_WRITER_BASE::buildHolesList(), FAB_DRILL_MODEL::FAB_DRILL_MODEL(), BRDITEMS_PLOTTER::PlotDrillSymbols(), and ResolveDrillSymbolsByItem().
| std::vector< DRILL_SPAN > EnumerateDrillSpans | ( | const BOARD & | aBoard, |
| bool | aPadBackdrills = false ) |
Every drill span present on the board, through-holes first.
Shared with the drill writers so a per-span chart and a per-span drill file cannot disagree about which spans exist. Pad backdrills are optional so NC drill retains its established spans.
Definition at line 322 of file drill_enumerator.cpp.
References B_Cu, PADSTACK::DRILL_PROPS::end, F_Cu, BOARD::Footprints(), DRILL_SPAN::m_IsBackdrill, pad, DRILL_SPAN::Pair(), PCB_VIA_T, PADSTACK::DRILL_PROPS::start, top(), BOARD::Tracks(), and via.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), PCB_DRILL_CHART::buildGroups(), EXCELLON_WRITER::CreateDrillandMapFilesSet(), GERBER_WRITER::CreateDrillandMapFilesSet(), GENDRILL_WRITER_BASE::CreateMapFilesSet(), BOARD::DrillSymbolCache(), FAB_DRILL_MODEL::FAB_DRILL_MODEL(), GENDRILL_WRITER_BASE::GenDrillReportFile(), PCB_DRILL_MAP::GetSpanChoice(), BRDITEMS_PLOTTER::PlotDrillSymbols(), DIALOG_DRILL_GROUPS::Reload(), ResolveDrillSymbols(), ResolveDrillSymbolsByItem(), PCB_DRILL_MAP::SetSpanChoice(), and PCB_PROPERTIES_PANEL::updateLists().
| bool IsDrillSlot | ( | const PAD & | aPad | ) |
Whether a pad's hole is a slot rather than a round drill.
One definition, because the drill writers, the chart and the IPC-2581 and ODB++ exporters each used to decide this for themselves and did not agree. A pad whose drill shape is circular but whose X and Y differ was a round hole to the drill files and a slot to the exporters.
Definition at line 284 of file drill_enumerator.cpp.
References CIRCLE, PAD::GetDrillShape(), PAD::GetDrillSizeX(), PAD::GetDrillSizeY(), and PAD::HasHole().
Referenced by PCB_IO_IPC2581::addPadStack(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().