|
KiCad PCB EDA Suite
|
Class that builds a KiCad board from a BRD_DB (= FILE_HEADER + STRINGS + OBJECTS + bookkeeping) More...
#include <allegro_builder.h>
Classes | |
| struct | ZoneFillEntry |
Public Member Functions | |
| BOARD_BUILDER (const BRD_DB &aBrdDb, BOARD &aBoard, REPORTER &aReporter, PROGRESS_REPORTER *aProgressReporter, const LAYER_MAPPING_HANDLER &aLayerMappingHandler) | |
| ~BOARD_BUILDER () | |
| bool | BuildBoard () |
Private Member Functions | |
| VECTOR2I | scale (const VECTOR2I &aVector) const |
| VECTOR2I | scaleSize (const VECTOR2I &aSize) const |
| int | scale (int aVal) const |
| template<typename T> | |
| const T * | expectBlockByKey (uint32_t aKey, uint8_t aType) const |
| void | reportMissingBlock (uint32_t aKey, uint8_t aType) const |
| void | reportUnexpectedBlockType (uint8_t aGot, uint8_t aExpected, uint32_t aKey=0, size_t aOffset=0, const wxString &aName=wxEmptyString) const |
| PCB_LAYER_ID | getLayer (const LAYER_INFO &aLayerInfo) const |
| wxString | get0x30StringValue (uint32_t a0x30Key) const |
| Get just the string value from a 0x31 STRING WRAPPER -> 0x30 STRING GRAPHIC pair. | |
| std::vector< std::unique_ptr< PCB_SHAPE > > | buildShapes (const BLK_0x14_GRAPHIC &aGraphicList, BOARD_ITEM_CONTAINER &aParent) |
| Build the shapes from an 0x14 shape list. | |
| std::unique_ptr< PCB_TEXT > | buildPcbText (const BLK_0x30_STR_WRAPPER &aStrWrapper, BOARD_ITEM_CONTAINER &aParent) |
| std::unique_ptr< PCB_SHAPE > | buildRect (const BLK_0x24_RECT &aRect, BOARD_ITEM_CONTAINER &aParent) |
| Build a rectangular shape from a 0x24 RECT block. | |
| std::unique_ptr< PCB_SHAPE > | buildRect (const BLK_0x0E_RECT &aShape, BOARD_ITEM_CONTAINER &aParent) |
| Build a graphic polygon from a 0x0E RECT block. | |
| std::unique_ptr< PCB_SHAPE > | buildPolygon (const BLK_0x28_SHAPE &aShape, BOARD_ITEM_CONTAINER &aParent) |
| Build a graphic polygon from a 0x28 SHAPE block. | |
| std::vector< std::unique_ptr< BOARD_ITEM > > | buildPadItems (const BLK_0x1C_PADSTACK &aPadstack, FOOTPRINT &aFp, const wxString &aPadName, int aNetcode) |
| Construct "pad" items for a given 0x1C PADSTACK block. | |
| std::unique_ptr< FOOTPRINT > | buildFootprint (const BLK_0x2D_FOOTPRINT_INST &aFpInstance) |
| std::vector< std::unique_ptr< BOARD_ITEM > > | buildTrack (const BLK_0x05_TRACK &aBlock, int aNetcode) |
| std::unique_ptr< BOARD_ITEM > | buildVia (const BLK_0x33_VIA &aBlock, int aNetcode) |
| std::unique_ptr< ZONE > | buildZone (const BLK_0x28_SHAPE &aShape, int aNetcode) |
| const SHAPE_LINE_CHAIN & | buildOutline (const BLK_0x28_SHAPE &aShape) const |
| const SHAPE_LINE_CHAIN & | buildSegmentChain (uint32_t aStartKey) const |
| Walk a geometry chain (0x01 arcs and 0x15-17 segments) starting from the given key, following m_Next links. | |
| int | resolveShapeNet (const BLK_0x28_SHAPE &aShape) const |
| Resolve the net code for a BOUNDARY shape by following the pointer chain: BOUNDARY.Ptr7 -> 0x2C TABLE -> Ptr1 -> 0x37 array -> first entry -> 0x1B NET. | |
| wxString | resolveMatchGroupName (const BLK_0x1B_NET &aNet) const |
| Follow m_MatchGroupPtr through the 0x26/0x2C pointer chain to get the match group name for a NET. | |
| wxString | resolveConstraintSetNameFromField (uint32_t aFieldKey) const |
| Extract constraint set name from a 0x03 FIELD block pointer. | |
| void | cacheFontDefs () |
| void | setupLayers () |
| void | createNets () |
| void | createTracks () |
| void | createBoardOutline () |
| void | createBoardText () |
| void | createZones () |
| void | applyZoneFills () |
| void | enablePadTeardrops () |
| void | applyConstraintSets () |
| void | applyNetConstraints () |
| void | applyMatchGroups () |
| const BLK_0x36_DEF_TABLE::FontDef_X08 * | getFontDef (unsigned aIndex) const |
| Get the font definition for a given index in a 0x30, etc. | |
| const BLK_0x07_COMPONENT_INST * | getFpInstRef (const BLK_0x2D_FOOTPRINT_INST &aFpInstance) const |
| Look up 0x07 FP instance data (0x07) for a given 0x2D FP instance. | |
Private Attributes | |
| const BRD_DB & | m_brdDb |
| BOARD & | m_board |
| REPORTER & | m_reporter |
| PROGRESS_REPORTER * | m_progressReporter |
| LAYER_MAPPING_HANDLER | m_layerMappingHandler |
| std::vector< const BLK_0x36_DEF_TABLE::FontDef_X08 * > | m_fontDefList |
| std::unordered_map< uint32_t, NETINFO_ITEM * > | m_netCache |
| std::vector< ZoneFillEntry > | m_zoneFillShapes |
| std::unique_ptr< LAYER_MAPPER > | m_layerMapper |
| std::unordered_map< uint32_t, SHAPE_LINE_CHAIN > | m_outlineCache |
| std::unordered_map< uint32_t, SHAPE_LINE_CHAIN > | m_segChainCache |
| double | m_scale |
Class that builds a KiCad board from a BRD_DB (= FILE_HEADER + STRINGS + OBJECTS + bookkeeping)
Definition at line 55 of file allegro_builder.h.
| BOARD_BUILDER::BOARD_BUILDER | ( | const BRD_DB & | aBrdDb, |
| BOARD & | aBoard, | ||
| REPORTER & | aReporter, | ||
| PROGRESS_REPORTER * | aProgressReporter, | ||
| const LAYER_MAPPING_HANDLER & | aLayerMappingHandler ) |
Definition at line 848 of file allegro_builder.cpp.
References m_board, m_brdDb, m_layerMapper, m_layerMappingHandler, m_progressReporter, m_reporter, m_scale, and THROW_IO_ERROR.
| BOARD_BUILDER::~BOARD_BUILDER | ( | ) |
Definition at line 867 of file allegro_builder.cpp.
|
private |
Definition at line 1050 of file allegro_builder.cpp.
References clearance, NETCLASS::Default, ALLEGRO::BLOCK< T >::GetData(), ALLEGRO::DB_OBJ::GetKey(), NETINFO_ITEM::GetNetname(), ALLEGRO::FIELD_LIST::GetOptField(), m_board, m_brdDb, ALLEGRO::BLK_0x1D_CONSTRAINT_SET::m_DataB, ALLEGRO::BLK_0x1D_CONSTRAINT_SET::m_FieldPtr, ALLEGRO::NET::m_Fields, ALLEGRO::BLK_0x1D_CONSTRAINT_SET::m_NameStrKey, ALLEGRO::VIEW_OBJS::m_Net, m_netCache, BOARD_DESIGN_SETTINGS::m_NetSettings, name, ALLEGRO::PHYS_CONSTRAINT_SET, resolveConstraintSetNameFromField(), scale, NETINFO_ITEM::SetNetClass(), traceAllegroBuilder, and ALLEGRO::V_172.
Referenced by BuildBoard().
|
private |
Definition at line 1372 of file allegro_builder.cpp.
References NETCLASS::Default, NETCLASS::GetClearance(), ALLEGRO::BLOCK< T >::GetData(), NETCLASS::GetDiffPairGap(), NETCLASS::GetDiffPairWidth(), NETCLASS::GetName(), NETINFO_ITEM::GetNetname(), NETCLASS::GetTrackWidth(), NETCLASS::HasClearance(), NETCLASS::HasDiffPairGap(), NETCLASS::HasDiffPairWidth(), NETCLASS::HasTrackWidth(), m_board, m_brdDb, m_netCache, BOARD_DESIGN_SETTINGS::m_NetSettings, resolveMatchGroupName(), NETINFO_ITEM::SetNetClass(), traceAllegroBuilder, and ALLEGRO::x1B_NET.
Referenced by BuildBoard().
|
private |
Definition at line 1248 of file allegro_builder.cpp.
References ALLEGRO::DB_OBJ::GetKey(), ALLEGRO::NET::GetNetMinLineWidth(), NETINFO_ITEM::GetNetname(), m_board, m_brdDb, ALLEGRO::VIEW_OBJS::m_Net, m_netCache, BOARD_DESIGN_SETTINGS::m_NetSettings, scale, NETINFO_ITEM::SetNetClass(), and traceAllegroBuilder.
Referenced by BuildBoard().
|
private |
Definition at line 3578 of file allegro_builder.cpp.
References SHAPE_POLY_SET::AddHole(), SHAPE_POLY_SET::AddOutline(), APPEND, SHAPE_LINE_CHAIN::BBox(), buildOutline(), buildSegmentChain(), SHAPE_LINE_CHAIN::ClearArcs(), SHAPE_POLY_SET::Fracture(), FULL, ALLEGRO::BLOCK_BASE::GetBlockType(), ALLEGRO::BLOCK< T >::GetData(), SHAPE_POLY_SET::HasHoles(), BOX2< Vec >::Intersects(), INVISIBLE_BORDER, IsCopperLayer(), ALLEGRO::BOARD_BUILDER::ZoneFillEntry::layer, m_board, m_brdDb, ALLEGRO::BLK_0x28_SHAPE::m_Ptr4, ALLEGRO::BLK_0x28_SHAPE::m_Unknown2, m_zoneFillShapes, PROF_TIMER::msecs(), ALLEGRO::BOARD_BUILDER::ZoneFillEntry::netCode, NEVER, SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, SHAPE_LINE_CHAIN::SetClosed(), ALLEGRO::BOARD_BUILDER::ZoneFillEntry::shape, SOLID, TD_VIAPAD, traceAllegroBuilder, traceAllegroPerf, NETINFO_LIST::UNCONNECTED, and ALLEGRO::COND_FIELD_BASE< T >::value_or().
Referenced by BuildBoard().
| bool BOARD_BUILDER::BuildBoard | ( | ) |
Definition at line 3864 of file allegro_builder.cpp.
References _, applyConstraintSets(), applyMatchGroups(), applyNetConstraints(), applyZoneFills(), buildFootprint(), BULK_APPEND, cacheFontDefs(), createBoardOutline(), createBoardText(), createNets(), createTracks(), createZones(), enablePadTeardrops(), ALLEGRO::BLOCK< T >::GetData(), m_board, m_brdDb, ALLEGRO::BLK_0x2B_FOOTPRINT_DEF::m_FirstInstPtr, ALLEGRO::BLK_0x2B_FOOTPRINT_DEF::m_Key, m_progressReporter, m_reporter, PROF_TIMER::msecs(), RPT_SEVERITY_ERROR, setupLayers(), traceAllegroBuilder, traceAllegroPerf, and ALLEGRO::V_172.
Referenced by PCB_IO_ALLEGRO::LoadBoard().
|
private |
Definition at line 2344 of file allegro_builder.cpp.
References ANGLE_180, APPEND, ALLEGRO::LAYER_INFO::ASSEMBLY_BOTTOM, ALLEGRO::LAYER_INFO::ASSEMBLY_TOP, buildPadItems(), buildPcbText(), buildPolygon(), buildRect(), buildShapes(), ALLEGRO::LAYER_INFO::COMPONENT_VALUE, DEGREES_T, ALLEGRO::LAYER_INFO::DEVICE_TYPE, expectBlockByKey(), FlipLayer(), ALLEGRO::BLOCK< T >::GetData(), getFpInstRef(), IsBackLayer(), ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_AreasPtr, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_AssemblyPtr, m_board, m_brdDb, ALLEGRO::BLK_0x0D_PAD::m_CoordsX, ALLEGRO::BLK_0x0D_PAD::m_CoordsY, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_CoordX, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_CoordY, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_FirstPadPtr, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_GraphicPtr, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_Key, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_Layer, ALLEGRO::BLK_0x0D_PAD::m_NameStrId, ALLEGRO::BLK_0x04_NET_ASSIGNMENT::m_Net, m_netCache, ALLEGRO::BLK_0x0D_PAD::m_PadStack, ALLEGRO::BLK_0x07_COMPONENT_INST::m_RefDesStrPtr, m_reporter, ALLEGRO::BLK_0x0D_PAD::m_Rotation, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_Rotation, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_TextPtr, pad, PadGetNextInFootprint(), PCB_PAD_T, ALLEGRO::LAYER_INFO::REF_DES, REFERENCE, RPT_SEVERITY_WARNING, scale, LL_WALKER::SetNextFunc(), EDA_TEXT::SetText(), EDA_TEXT::SetVisible(), ALLEGRO::LAYER_INFO::SILKSCREEN_BOTTOM, ALLEGRO::LAYER_INFO::SILKSCREEN_TOP, text, ALLEGRO::LAYER_INFO::TOLERANCE, TOP_BOTTOM, traceAllegroBuilder, NETINFO_LIST::UNCONNECTED, USER, ALLEGRO::LAYER_INFO::USER_PART_NUMBER, and VALUE.
Referenced by BuildBoard().
|
private |
Definition at line 3153 of file allegro_builder.cpp.
References ANGLE_0, ANGLE_360, SHAPE_LINE_CHAIN::Append(), center, SHAPE_LINE_CHAIN::CLastPoint(), end, ALLEGRO::BLOCK< T >::GetData(), KiROUND(), m_brdDb, ALLEGRO::BLK_0x28_SHAPE::m_FirstSegmentPtr, ALLEGRO::BLK_0x28_SHAPE::m_Key, m_outlineCache, EDA_ANGLE::Normalize(), SHAPE_LINE_CHAIN::PointCount(), scale, and traceAllegroBuilder.
Referenced by applyZoneFills(), buildPolygon(), buildZone(), and createZones().
|
private |
Construct "pad" items for a given 0x1C PADSTACK block.
If this is zero just skip entirely
Definition at line 1829 of file allegro_builder.cpp.
References std::abs(), ANGLE_0, ANGLE_360, ALLEGRO::BLK_0x1C_PADSTACK::ANTIPAD, SHAPE_LINE_CHAIN::Append(), B_Cu, SHAPE_LINE_CHAIN::BBox(), center, CHAMFERED_RECT, CIRCLE, SHAPE_LINE_CHAIN::CLastPoint(), PADSTACK::CopperLayer(), CUSTOM, PADSTACK::CUSTOM, PADSTACK::Drill(), end, expectBlockByKey(), F_Cu, PADSTACK::FRONT_INNER_BACK, ALLEGRO::BLOCK< T >::GetData(), BOX2< Vec >::GetHeight(), BOX2< Vec >::GetWidth(), ALLEGRO::COND_FIELD_BASE< T >::has_value(), In1_Cu, KiROUND(), m_brdDb, ALLEGRO::BLK_0x1C_PADSTACK::m_Components, ALLEGRO::BLK_0x1C_PADSTACK::m_Drill, ALLEGRO::BLK_0x1C_PADSTACK::m_DrillArr, ALLEGRO::BLK_0x28_SHAPE::m_FirstSegmentPtr, ALLEGRO::PADSTACK_COMPONENT::m_H, ALLEGRO::BLK_0x28_SHAPE::m_Key, ALLEGRO::BLK_0x1C_PADSTACK::m_LayerCount, ALLEGRO::BLK_0x1C_PADSTACK::m_NumCompsPerLayer, ALLEGRO::BLK_0x1C_PADSTACK::m_NumFixedCompEntries, ALLEGRO::BLK_0x1C_PADSTACK::m_PadStr, m_reporter, ALLEGRO::BLK_0x1C_PADSTACK::m_SlotAndUnknownArr, ALLEGRO::PADSTACK_COMPONENT::m_StrPtr, ALLEGRO::PADSTACK_COMPONENT::m_Type, ALLEGRO::PADSTACK_COMPONENT::m_W, ALLEGRO::PADSTACK_COMPONENT::m_X3, ALLEGRO::PADSTACK_COMPONENT::m_X4, ALLEGRO::PADSTACK_COMPONENT::m_Z1, PADSTACK::NORMAL, EDA_ANGLE::Normalize(), OBLONG, OVAL, ALLEGRO::BLK_0x1C_PADSTACK::PAD, pad, SHAPE_LINE_CHAIN::PointCount(), POLY, PTH, PAD::PTHMask(), RECT_CHAMFER_ALL, RECTANGLE, ROUNDRECT, RPT_SEVERITY_WARNING, S, scale, scaleSize(), SHAPE_LINE_CHAIN::SetClosed(), PADSTACK::SetLayerSet(), PADSTACK::SetMode(), PADSTACK::DRILL_PROPS::shape, PADSTACK::DRILL_PROPS::size, SMD, PAD::SMDMask(), ALLEGRO::BLK_0x1C_PADSTACK::THERMAL_RELIEF, ToLAYER_ID(), traceAllegroBuilder, ALLEGRO::PADSTACK_COMPONENT::TYPE_CHAMFERED_RECTANGLE, ALLEGRO::PADSTACK_COMPONENT::TYPE_CIRCLE, ALLEGRO::PADSTACK_COMPONENT::TYPE_NULL, ALLEGRO::PADSTACK_COMPONENT::TYPE_OBLONG_X, ALLEGRO::PADSTACK_COMPONENT::TYPE_OBLONG_Y, ALLEGRO::PADSTACK_COMPONENT::TYPE_OCTAGON, ALLEGRO::PADSTACK_COMPONENT::TYPE_PENTAGON, ALLEGRO::PADSTACK_COMPONENT::TYPE_RECTANGLE, ALLEGRO::PADSTACK_COMPONENT::TYPE_ROUNDED_RECTANGLE, ALLEGRO::PADSTACK_COMPONENT::TYPE_SHAPE_SYMBOL, ALLEGRO::PADSTACK_COMPONENT::TYPE_SQUARE, ALLEGRO::V_172, and ALLEGRO::COND_FIELD_BASE< T >::value().
Referenced by buildFootprint().
|
private |
Definition at line 1524 of file allegro_builder.cpp.
References ALLEGRO::BLK_0x30_STR_WRAPPER::CENTER, DEGREES_T, expectBlockByKey(), getFontDef(), getLayer(), GR_TEXT_H_ALIGN_CENTER, GR_TEXT_H_ALIGN_LEFT, GR_TEXT_H_ALIGN_RIGHT, ALLEGRO::BLK_0x30_STR_WRAPPER::LEFT, ALLEGRO::BLK_0x30_STR_WRAPPER::TEXT_PROPERTIES::m_Alignment, ALLEGRO::BLK_0x36_DEF_TABLE::FontDef_X08::m_CharHeight, ALLEGRO::BLK_0x36_DEF_TABLE::FontDef_X08::m_CharWidth, ALLEGRO::BLK_0x30_STR_WRAPPER::m_CoordsX, ALLEGRO::BLK_0x30_STR_WRAPPER::m_CoordsY, ALLEGRO::BLK_0x30_STR_WRAPPER::m_Font, ALLEGRO::BLK_0x30_STR_WRAPPER::m_Font16x, ALLEGRO::BLK_0x30_STR_WRAPPER::m_Key, ALLEGRO::BLK_0x30_STR_WRAPPER::TEXT_PROPERTIES::m_Key, ALLEGRO::BLK_0x30_STR_WRAPPER::m_Layer, m_reporter, ALLEGRO::BLK_0x30_STR_WRAPPER::TEXT_PROPERTIES::m_Reversal, ALLEGRO::BLK_0x30_STR_WRAPPER::m_Rotation, m_scale, ALLEGRO::BLK_0x30_STR_WRAPPER::m_StrGraphicPtr, ALLEGRO::BLK_0x31_SGRAPHIC::m_Value, ALLEGRO::BLK_0x30_STR_WRAPPER::REVERSED, ALLEGRO::BLK_0x30_STR_WRAPPER::RIGHT, RPT_SEVERITY_WARNING, safeScale(), scale, and text.
Referenced by buildFootprint(), and createBoardText().
|
private |
Build a graphic polygon from a 0x28 SHAPE block.
Definition at line 1782 of file allegro_builder.cpp.
References buildOutline(), chain, getLayer(), ALLEGRO::BLK_0x28_SHAPE::m_Key, ALLEGRO::BLK_0x28_SHAPE::m_Layer, POLY, and traceAllegroBuilder.
Referenced by buildFootprint().
|
private |
Build a graphic polygon from a 0x0E RECT block.
Definition at line 1757 of file allegro_builder.cpp.
References DEGREES_T, getLayer(), ALLEGRO::BLK_0x0E_RECT::m_Coords, ALLEGRO::BLK_0x0E_RECT::m_Layer, ALLEGRO::BLK_0x0E_RECT::m_Rotation, RECTANGLE, and scale.
|
private |
Build a rectangular shape from a 0x24 RECT block.
Definition at line 1732 of file allegro_builder.cpp.
References DEGREES_T, getLayer(), ALLEGRO::BLK_0x24_RECT::m_Coords, ALLEGRO::BLK_0x24_RECT::m_Layer, ALLEGRO::BLK_0x24_RECT::m_Rotation, RECTANGLE, and scale.
Referenced by buildFootprint().
|
private |
Walk a geometry chain (0x01 arcs and 0x15-17 segments) starting from the given key, following m_Next links.
Used for building hole outlines from 0x34 KEEPOUT blocks.
Definition at line 3067 of file allegro_builder.cpp.
References ANGLE_0, ANGLE_360, SHAPE_LINE_CHAIN::Append(), center, SHAPE_LINE_CHAIN::CLastPoint(), end, ALLEGRO::BLOCK_BASE::GetBlockType(), ALLEGRO::BLOCK< T >::GetData(), KiROUND(), m_brdDb, m_segChainCache, EDA_ANGLE::Normalize(), SHAPE_LINE_CHAIN::PointCount(), and scale.
Referenced by applyZoneFills().
|
private |
Build the shapes from an 0x14 shape list.
Definition at line 1604 of file allegro_builder.cpp.
References ANGLE_0, ANGLE_360, ARC, B_CrtYd, CIRCLE, Cmts_User, end, F_CrtYd, VECTOR2< T >::Format(), ALLEGRO::BLOCK< T >::GetData(), getLayer(), KiROUND(), m_board, m_brdDb, ALLEGRO::LAYER_INFO::m_Class, ALLEGRO::BLK_0x14_GRAPHIC::m_Key, ALLEGRO::BLK_0x14_GRAPHIC::m_Layer, m_layerMapper, m_scale, ALLEGRO::BLK_0x14_GRAPHIC::m_SegmentPtr, ALLEGRO::LAYER_INFO::m_Subclass, EDA_ANGLE::Normalize(), radius, RotatePoint(), safeScale(), scale, SEGMENT, and traceAllegroBuilder.
Referenced by buildFootprint().
|
private |
Definition at line 2640 of file allegro_builder.cpp.
References ANGLE_0, ANGLE_360, ALLEGRO::LAYER_INFO::ANTI_ETCH, end, ALLEGRO::BLOCK< T >::GetData(), getLayer(), KiROUND(), m_board, m_brdDb, ALLEGRO::BLK_0x01_ARC::m_CenterX, ALLEGRO::BLK_0x01_ARC::m_CenterY, ALLEGRO::LAYER_INFO::m_Class, ALLEGRO::BLK_0x01_ARC::m_EndX, ALLEGRO::BLK_0x15_16_17_SEGMENT::m_EndX, ALLEGRO::BLK_0x01_ARC::m_EndY, ALLEGRO::BLK_0x15_16_17_SEGMENT::m_EndY, ALLEGRO::BLK_0x05_TRACK::m_FirstSegPtr, ALLEGRO::BLK_0x05_TRACK::m_Key, ALLEGRO::BLK_0x05_TRACK::m_Layer, ALLEGRO::BLK_0x01_ARC::m_StartX, ALLEGRO::BLK_0x15_16_17_SEGMENT::m_StartX, ALLEGRO::BLK_0x01_ARC::m_StartY, ALLEGRO::BLK_0x15_16_17_SEGMENT::m_StartY, ALLEGRO::LAYER_INFO::m_Subclass, ALLEGRO::BLK_0x01_ARC::m_SubType, ALLEGRO::BLK_0x01_ARC::m_Width, ALLEGRO::BLK_0x15_16_17_SEGMENT::m_Width, EDA_ANGLE::Normalize(), RotatePoint(), scale, and traceAllegroBuilder.
Referenced by createTracks().
|
private |
Definition at line 2734 of file allegro_builder.cpp.
References B_Cu, expectBlockByKey(), F_Cu, m_board, m_brdDb, ALLEGRO::BLK_0x1C_PADSTACK::m_Components, ALLEGRO::BLK_0x33_VIA::m_CoordsX, ALLEGRO::BLK_0x33_VIA::m_CoordsY, ALLEGRO::BLK_0x1C_PADSTACK::m_Drill, ALLEGRO::BLK_0x1C_PADSTACK::m_DrillArr, ALLEGRO::BLK_0x1C_PADSTACK::m_LayerCount, ALLEGRO::BLK_0x1C_PADSTACK::m_NumFixedCompEntries, ALLEGRO::BLK_0x33_VIA::m_Padstack, ALLEGRO::PADSTACK_COMPONENT::m_Type, ALLEGRO::PADSTACK_COMPONENT::m_W, ALLEGRO::BLK_0x1C_PADSTACK::PAD, scale, traceAllegroBuilder, ALLEGRO::PADSTACK_COMPONENT::TYPE_NULL, ALLEGRO::V_172, and via.
Referenced by createTracks().
|
private |
Definition at line 3226 of file allegro_builder.cpp.
References LSET::AllCuMask(), ALLEGRO::LAYER_INFO::BOUNDARY, buildOutline(), ALLEGRO::LAYER_INFO::ETCH, F_Cu, getLayer(), m_board, ALLEGRO::LAYER_INFO::m_Class, ALLEGRO::BLK_0x28_SHAPE::m_Key, ALLEGRO::BLK_0x28_SHAPE::m_Layer, ALLEGRO::LAYER_INFO::m_Subclass, NO_HATCH, SHAPE_LINE_CHAIN::PointCount(), POLYGONS, ALLEGRO::LAYER_INFO::ROUTE_KEEPOUT, SHAPE_LINE_CHAIN::SetClosed(), traceAllegroBuilder, UNDEFINED_LAYER, and ALLEGRO::LAYER_INFO::VIA_KEEPOUT.
Referenced by createZones().
|
private |
Definition at line 941 of file allegro_builder.cpp.
References ALLEGRO::BLOCK< T >::GetData(), m_brdDb, ALLEGRO::BLK_0x36_DEF_TABLE::m_Code, m_fontDefList, ALLEGRO::BLK_0x36_DEF_TABLE::m_Items, m_reporter, and RPT_SEVERITY_WARNING.
Referenced by BuildBoard().
|
private |
Definition at line 2899 of file allegro_builder.cpp.
References ANGLE_0, ANGLE_360, ARC, BULK_APPEND, CIRCLE, Edge_Cuts, end, ALLEGRO::BLOCK< T >::GetData(), KiROUND(), m_board, m_brdDb, ALLEGRO::BLK_0x24_RECT::m_Coords, ALLEGRO::BLK_0x28_SHAPE::m_FirstSegmentPtr, ALLEGRO::BLK_0x28_SHAPE::m_Key, ALLEGRO::BLK_0x24_RECT::m_Layer, ALLEGRO::BLK_0x28_SHAPE::m_Layer, m_layerMapper, m_scale, EDA_ANGLE::Normalize(), radius, RotatePoint(), safeScale(), scale, SEGMENT, traceAllegroBuilder, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by BuildBoard().
|
private |
Definition at line 3339 of file allegro_builder.cpp.
References APPEND, buildPcbText(), ALLEGRO::BLOCK< T >::GetData(), m_board, m_brdDb, text, and traceAllegroBuilder.
Referenced by BuildBoard().
|
private |
Definition at line 976 of file allegro_builder.cpp.
References BULK_APPEND, ALLEGRO::BLOCK< T >::GetData(), m_board, m_brdDb, m_netCache, reportUnexpectedBlockType(), traceAllegroBuilder, and ALLEGRO::x1B_NET.
Referenced by BuildBoard().
|
private |
Definition at line 2793 of file allegro_builder.cpp.
References buildTrack(), buildVia(), BULK_APPEND, ALLEGRO::BLOCK< T >::GetData(), getLayer(), m_board, m_brdDb, ALLEGRO::BLK_0x28_SHAPE::m_Layer, m_netCache, m_zoneFillShapes, reportUnexpectedBlockType(), traceAllegroBuilder, UNDEFINED_LAYER, and ALLEGRO::x1B_NET.
Referenced by BuildBoard().
|
private |
Definition at line 3406 of file allegro_builder.cpp.
References APPEND, SHAPE_LINE_CHAIN::BBox(), ALLEGRO::LAYER_INFO::BOUNDARY, buildOutline(), buildZone(), SHAPE_LINE_CHAIN::CompareGeometry(), BOX2< Vec >::Contains(), SHAPE_POLY_SET::COutline(), ALLEGRO::LAYER_INFO::ETCH, ALLEGRO::BLOCK< T >::GetData(), ZONE::GetFirstLayer(), getLayer(), ZONE::GetLayerSet(), BOARD_CONNECTED_ITEM::GetNetCode(), m_board, m_brdDb, ALLEGRO::LAYER_INFO::m_Class, ALLEGRO::BLK_0x28_SHAPE::m_Key, ALLEGRO::BLK_0x28_SHAPE::m_Layer, ALLEGRO::LAYER_INFO::m_Subclass, m_zoneFillShapes, NEVER, ZONE::Outline(), SHAPE_LINE_CHAIN::PointCount(), resolveShapeNet(), ALLEGRO::LAYER_INFO::ROUTE_KEEPOUT, ZONE::SetLayerSet(), traceAllegroBuilder, NETINFO_LIST::UNCONNECTED, UNDEFINED_LAYER, and ALLEGRO::LAYER_INFO::VIA_KEEPOUT.
Referenced by BuildBoard().
|
private |
Definition at line 3795 of file allegro_builder.cpp.
References SHAPE_POLY_SET::Contains(), ZONE::GetLayer(), m_board, ZONE::Outline(), pad, PCB_VIA_T, traceAllegroBuilder, and via.
Referenced by BuildBoard().
|
inlineprivate |
Definition at line 71 of file allegro_builder.h.
References ALLEGRO::BLOCK_BASE::GetBlockType(), ALLEGRO::BLOCK< T >::GetData(), ALLEGRO::BLOCK_BASE::GetOffset(), m_brdDb, reportMissingBlock(), reportUnexpectedBlockType(), and T.
Referenced by buildFootprint(), buildPadItems(), buildPcbText(), buildVia(), get0x30StringValue(), getFpInstRef(), resolveMatchGroupName(), resolveShapeNet(), and setupLayers().
|
private |
Get just the string value from a 0x31 STRING WRAPPER -> 0x30 STRING GRAPHIC pair.
Throws away all the other string data like pos/size/etc.
Definition at line 925 of file allegro_builder.cpp.
References expectBlockByKey(), ALLEGRO::BLK_0x30_STR_WRAPPER::m_StrGraphicPtr, ALLEGRO::BLK_0x31_SGRAPHIC::m_Value, and THROW_IO_ERROR.
|
private |
Get the font definition for a given index in a 0x30, etc.
Definition at line 1507 of file allegro_builder.cpp.
References m_fontDefList, m_reporter, and RPT_SEVERITY_WARNING.
Referenced by buildPcbText().
|
private |
Look up 0x07 FP instance data (0x07) for a given 0x2D FP instance.
Definition at line 1810 of file allegro_builder.cpp.
References expectBlockByKey(), ALLEGRO::COND_FIELD_BASE< T >::has_value(), ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_InstRef, ALLEGRO::BLK_0x2D_FOOTPRINT_INST::m_InstRef16x, and ALLEGRO::COND_FIELD_BASE< T >::value().
Referenced by buildFootprint().
|
private |
Definition at line 1598 of file allegro_builder.cpp.
References m_layerMapper.
Referenced by buildPcbText(), buildPolygon(), buildRect(), buildRect(), buildShapes(), buildTrack(), buildZone(), createTracks(), and createZones().
|
private |
Definition at line 904 of file allegro_builder.cpp.
References m_reporter, and RPT_SEVERITY_WARNING.
Referenced by expectBlockByKey().
|
private |
Definition at line 911 of file allegro_builder.cpp.
References m_reporter, name, and RPT_SEVERITY_WARNING.
Referenced by createNets(), createTracks(), and expectBlockByKey().
|
private |
Extract constraint set name from a 0x03 FIELD block pointer.
Some boards store the constraint set name in a FIELD block referenced by m_FieldPtr in the 0x1D block instead of the main string table. The FIELD string is a schematic cross-reference like "@lib.xxx(view):\CONSTRAINT_SET_NAME\".
Definition at line 1021 of file allegro_builder.cpp.
References ALLEGRO::BLOCK_BASE::GetBlockType(), ALLEGRO::BLOCK< T >::GetData(), m_brdDb, and ALLEGRO::BLK_0x03_FIELD::m_Substruct.
Referenced by applyConstraintSets().
|
private |
Follow m_MatchGroupPtr through the 0x26/0x2C pointer chain to get the match group name for a NET.
V172+: NET.m_MatchGroupPtr -> 0x26 -> m_GroupPtr -> 0x2C TABLE -> string Pre-V172: NET.m_MatchGroupPtr -> 0x2C TABLE -> string
Definition at line 1312 of file allegro_builder.cpp.
References expectBlockByKey(), ALLEGRO::BLOCK_BASE::GetBlockType(), ALLEGRO::BLOCK< T >::GetData(), m_brdDb, ALLEGRO::BLK_0x1B_NET::m_MatchGroupPtr, ALLEGRO::BLK_0x2C_TABLE::m_StringPtr, name, and next().
Referenced by applyMatchGroups().
|
private |
Resolve the net code for a BOUNDARY shape by following the pointer chain: BOUNDARY.Ptr7 -> 0x2C TABLE -> Ptr1 -> 0x37 array -> first entry -> 0x1B NET.
Definition at line 3301 of file allegro_builder.cpp.
References expectBlockByKey(), ALLEGRO::COND_FIELD_BASE< T >::has_value(), ALLEGRO::BLK_0x37_PTR_ARRAY::m_Count, ALLEGRO::BLK_0x28_SHAPE::m_Key, m_netCache, ALLEGRO::BLK_0x2C_TABLE::m_Ptr1, ALLEGRO::BLK_0x28_SHAPE::m_Ptr7, ALLEGRO::BLK_0x28_SHAPE::m_Ptr7_16x, ALLEGRO::BLK_0x37_PTR_ARRAY::m_Ptrs, traceAllegroBuilder, NETINFO_LIST::UNCONNECTED, and ALLEGRO::COND_FIELD_BASE< T >::value().
Referenced by createZones().
Definition at line 886 of file allegro_builder.cpp.
References m_scale, safeScale(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
private |
Definition at line 891 of file allegro_builder.cpp.
References m_scale, and safeScale().
Definition at line 897 of file allegro_builder.cpp.
References std::abs(), m_scale, safeScale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by buildPadItems().
|
private |
Definition at line 1479 of file allegro_builder.cpp.
References expectBlockByKey(), m_brdDb, m_layerMapper, and traceAllegroBuilder.
Referenced by BuildBoard().
|
private |
Definition at line 198 of file allegro_builder.h.
Referenced by applyConstraintSets(), applyMatchGroups(), applyNetConstraints(), applyZoneFills(), BOARD_BUILDER(), BuildBoard(), buildFootprint(), buildShapes(), buildTrack(), buildVia(), buildZone(), createBoardOutline(), createBoardText(), createNets(), createTracks(), createZones(), and enablePadTeardrops().
|
private |
Definition at line 197 of file allegro_builder.h.
Referenced by applyConstraintSets(), applyMatchGroups(), applyNetConstraints(), applyZoneFills(), BOARD_BUILDER(), BuildBoard(), buildFootprint(), buildOutline(), buildPadItems(), buildSegmentChain(), buildShapes(), buildTrack(), buildVia(), cacheFontDefs(), createBoardOutline(), createBoardText(), createNets(), createTracks(), createZones(), expectBlockByKey(), resolveConstraintSetNameFromField(), resolveMatchGroupName(), and setupLayers().
|
private |
Definition at line 204 of file allegro_builder.h.
Referenced by cacheFontDefs(), and getFontDef().
|
private |
Definition at line 218 of file allegro_builder.h.
Referenced by BOARD_BUILDER(), buildShapes(), createBoardOutline(), getLayer(), and setupLayers().
|
private |
Definition at line 201 of file allegro_builder.h.
Referenced by BOARD_BUILDER().
|
private |
Definition at line 207 of file allegro_builder.h.
Referenced by applyConstraintSets(), applyMatchGroups(), applyNetConstraints(), buildFootprint(), createNets(), createTracks(), and resolveShapeNet().
|
mutableprivate |
Definition at line 221 of file allegro_builder.h.
Referenced by buildOutline().
|
private |
Definition at line 200 of file allegro_builder.h.
Referenced by BOARD_BUILDER(), and BuildBoard().
|
private |
Definition at line 199 of file allegro_builder.h.
Referenced by BOARD_BUILDER(), BuildBoard(), buildFootprint(), buildPadItems(), buildPcbText(), cacheFontDefs(), getFontDef(), reportMissingBlock(), and reportUnexpectedBlockType().
|
private |
Definition at line 228 of file allegro_builder.h.
Referenced by BOARD_BUILDER(), buildPcbText(), buildShapes(), createBoardOutline(), scale(), scale(), and scaleSize().
|
mutableprivate |
Definition at line 224 of file allegro_builder.h.
Referenced by buildSegmentChain().
|
private |
Definition at line 216 of file allegro_builder.h.
Referenced by applyZoneFills(), createTracks(), and createZones().