|
KiCad PCB EDA Suite
|
#include <pcb_io_ipc2581.h>
Public Member Functions | |
| PCB_IO_IPC2581 () | |
| ~PCB_IO_IPC2581 () override | |
| void | SaveBoard (const wxString &aFileName, BOARD &aBoard, const std::map< std::string, UTF8 > *aProperties=nullptr) override |
| Write aBoard to a storage file in a format that this PCB_IO implementation knows about or it can be used to write a portion of aBoard to a special kind of export file. | |
| const IO_BASE::IO_FILE_DESC | GetBoardFileDesc () const override |
| Returns board file description for the PCB_IO. | |
| const IO_BASE::IO_FILE_DESC | GetLibraryDesc () const override |
| Get the descriptor for the library container that this IO plugin operates on. | |
| std::vector< FOOTPRINT * > | GetImportedCachedLibraryFootprints () override |
| Return a container with the cached library footprints generated in the last call to Load. | |
| long long | GetLibraryTimestamp (const wxString &aLibraryPath) const override |
| Generate a timestamp representing all the files in the library (including the library directory). | |
| bool | CanReadBoard (const wxString &aFileName) const override |
| Checks if this PCB_IO can read the specified board file. | |
| bool | CanReadFootprint (const wxString &aFileName) const override |
| Checks if this PCB_IO can read a footprint from specified file or directory. | |
| bool | CanReadLibrary (const wxString &aFileName) const override |
| Checks if this IO object can read the specified library file/directory. | |
| bool | IsPCB_IO () const override |
| Work-around for lack of dynamic_cast across compile units on Mac. | |
| virtual void | SetQueryUserCallback (std::function< bool(wxString aTitle, int aIcon, wxString aMessage, wxString aAction)> aCallback) |
| Registers a KIDIALOG callback for collecting info from the user. | |
| std::unique_ptr< BOARD > | LoadBoard (const wxString &aFileName, const std::map< std::string, UTF8 > *aProperties=nullptr, PROJECT *aProject=nullptr) |
| Load information from some input file format that this PCB_IO implementation knows about into new BOARD. | |
| void | LoadAndAppendBoard (const wxString &aFileName, BOARD &aAppendToMe, const std::map< std::string, UTF8 > *aProperties=nullptr, PROJECT *aProject=nullptr) |
| Same as LoadBoard(), but appends the loaded board to an existing board, which must already exist. | |
| virtual void | FootprintEnumerate (wxArrayString &aFootprintNames, const wxString &aLibraryPath, bool aBestEfforts, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Return a list of footprint names contained within the library at aLibraryPath. | |
| virtual std::unique_ptr< FOOTPRINT > | ImportFootprint (const wxString &aFootprintPath, wxString &aFootprintNameOut, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Load a single footprint from aFootprintPath and put its name in aFootprintNameOut. | |
| virtual std::unique_ptr< FOOTPRINT > | FootprintLoad (const wxString &aLibraryPath, const wxString &aFootprintName, bool aKeepUUID=false, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Load a footprint having aFootprintName from the aLibraryPath containing a library format that this PCB_IO knows about. | |
| virtual const FOOTPRINT * | GetEnumeratedFootprint (const wxString &aLibraryPath, const wxString &aFootprintName, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| A version of FootprintLoad() for use after FootprintEnumerate() for more efficient cache management in plugins that support it. | |
| virtual bool | CachesEnumeratedFootprints () const |
| Return true if GetEnumeratedFootprint() returns a borrowed pointer from an internal cache. | |
| virtual bool | FootprintExists (const wxString &aLibraryPath, const wxString &aFootprintName, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Check for the existence of a footprint. | |
| virtual void | FootprintSave (const wxString &aLibraryPath, const FOOTPRINT *aFootprint, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Write aFootprint to an existing library located at aLibraryPath. | |
| virtual void | FootprintDelete (const wxString &aLibraryPath, const wxString &aFootprintName, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Delete aFootprintName from the library at aLibraryPath. | |
| virtual void | ClearCachedFootprints (const wxString &aLibraryPath) |
| Clear any cached footprint data for the given library path. | |
| virtual void | GetLibraryOptions (std::map< std::string, UTF8 > *aListToAppendTo) const override |
| Append supported PLUGIN options to aListToAppenTo along with internationalized descriptions. | |
| const wxString & | GetName () const |
| Return a brief hard coded name for this IO interface. | |
| virtual void | SetReporter (REPORTER *aReporter) |
| Set an optional reporter for warnings/errors. | |
| virtual void | SetProgressReporter (PROGRESS_REPORTER *aReporter) |
| Set an optional progress reporter. | |
| virtual const IO_FILE_DESC | GetLibraryFileDesc () const |
| Get the descriptor for the individual library elements that this IO plugin operates on. | |
| virtual void | CreateLibrary (const wxString &aLibraryPath, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Create a new empty library at aLibraryPath empty. | |
| virtual bool | DeleteLibrary (const wxString &aLibraryPath, const std::map< std::string, UTF8 > *aProperties=nullptr) |
| Delete an existing library and returns true, or if library does not exist returns false, or throws an exception if library exists but is read only or cannot be deleted for some other reason. | |
| virtual bool | IsLibraryWritable (const wxString &aLibraryPath) |
| Return true if the library at aLibraryPath is writable. | |
| virtual bool | SupportsConfigurationDialog () const |
| virtual DIALOG_SHIM * | CreateConfigurationDialog (wxWindow *aParent) |
| virtual void | Report (const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) const |
| virtual void | AdvanceProgressPhase () |
Static Public Attributes | |
| static constexpr int | EXPORT_PHASES = 12 |
| Content logistic history CAD data components the two netlists BOM vendor list references the write and the release The export subtracts the phases that it skips. | |
Protected Member Functions | |
| virtual void | loadBoard (const wxString &aFileName, BOARD &aBoard, bool aIsNewLoad, const std::map< std::string, UTF8 > *aProperties, PROJECT *aProject) |
| Parse aFileName into aBoard. | |
Protected Attributes | |
| wxString | m_name |
| Name of the IO loader. | |
| REPORTER * | m_reporter |
| Reporter to log errors/warnings to, may be nullptr. | |
| PROGRESS_REPORTER * | m_progressReporter |
| Progress reporter to track the progress of the operation, may be nullptr. | |
Private Member Functions | |
| void | clearLoadedFootprints () |
| Frees the memory allocated for the loaded footprints in m_loaded_footprints. | |
| wxXmlNode * | generateXmlHeader () |
| Creates the XML header for IPC-2581. | |
| wxXmlNode * | generateContentSection () |
| Creates the Content section of the XML file. | |
| wxXmlNode * | generateLogisticSection () |
| Creates the logistical data header. | |
| wxXmlNode * | generateHistorySection () |
| Creates the history section. | |
| wxXmlNode * | generateBOMSection (wxXmlNode *aEcadNode) |
| Creates the BOM section. | |
| wxXmlNode * | generateEcadSection () |
| Creates the ECAD section. | |
| wxXmlNode * | generateAvlSection () |
| Creates the Approved Vendor List section. | |
| void | generateCadLayers (wxXmlNode *aCadLayerNode) |
| void | generateCadSpecs (wxXmlNode *aCadLayerNode) |
| void | generateStackup (wxXmlNode *aCadLayerNode) |
| void | generateDrillLayers (wxXmlNode *aCadLayerNode) |
| void | generateAuxilliaryLayers (wxXmlNode *aCadLayerNode) |
| void | generateStepSection (wxXmlNode *aCadNode) |
| void | generateProfile (wxXmlNode *aStepNode) |
| void | generateLogicalNets (wxXmlNode *aStepNode) |
| void | generatePhyNetGroup (wxXmlNode *aStepNode) |
| void | generateLayerFeatures (wxXmlNode *aStepNode) |
| void | generateLayerSetDrill (wxXmlNode *aStepNode) |
| void | generateLayerSetNet (wxXmlNode *aLayerNode, PCB_LAYER_ID aLayer, std::vector< BOARD_ITEM * > &aItems) |
| void | generateLayerSetAuxilliary (wxXmlNode *aStepNode) |
| wxXmlNode * | generateContentStackup (wxXmlNode *aContentNode) |
| void | generateContentLayerRefs (wxXmlNode *aCadDataNode) |
| void | dropContentStepRefs () |
| Remove Content/StepRef when the export writes no Step. | |
| IPC2581::SECTION_SET | emittedSections () const |
| Schema sections that the finished document holds. | |
| bool | included (IPC2581::SECTION aSection) const |
| bool | suppressed (IPC2581::SUPPRESS aWhat) const |
| void | reportPhase (const wxString &aMessage) |
| Go to the next progress phase and repaint. | |
| void | tickProgress (const wxString &aMessage=wxEmptyString) |
| Count one unit of work in this phase and repaint at intervals. | |
| bool | layerIncluded (PCB_LAYER_ID aLayer) const |
| True if aLayer is in a schema section that this export holds. | |
| bool | stackupRowIncluded (bool aDielectric, PCB_LAYER_ID aLayer) const |
| True if a stackup row is in a schema section that this export holds. | |
| wxString | netName (const wxString &aNetname, const wxString &aSuffix=wxEmptyString) |
| Name to write for aNetname with the net name policy. | |
| bool | omitRefDes () const |
| True if the export removes the reference designators from the artwork. | |
| bool | refDesEmitted () const |
| True if a Component keeps a designator that a reference can name. | |
| bool | componentRefEmitted () const |
| True if a component reference can name a Component that the export wrote. | |
| void | generateComponents (wxXmlNode *aStepNode) |
| void | addCadHeader (wxXmlNode *aEcadNode) |
| wxXmlNode * | addPackage (wxXmlNode *aStepNode, FOOTPRINT *aFootprint) |
| void | addPad (wxXmlNode *aContentNode, const PAD *aPad, PCB_LAYER_ID aLayer) |
| void | addVia (wxXmlNode *aContentNode, const PCB_VIA *aVia, PCB_LAYER_ID aLayer) |
| void | addPadStack (wxXmlNode *aContentNode, const PAD *aPad) |
| void | addPadStack (wxXmlNode *aContentNode, const PCB_VIA *aVia) |
| void | ensureBackdrillSpecs (const wxString &aPadstackName, const PADSTACK &aPadstack) |
| void | addBackdrillSpecRefs (wxXmlNode *aHoleNode, const wxString &aPadstackName) |
| void | pruneUnusedBackdrillSpecs () |
| void | addLocationNode (wxXmlNode *aContentNode, double aX, double aY) |
| void | addLocationNode (wxXmlNode *aContentNode, const PAD &aPad, bool aRelative, PCB_LAYER_ID aLayer) |
| void | addLocationNode (wxXmlNode *aContentNode, const PCB_SHAPE &aShape) |
| void | addShape (wxXmlNode *aContentNode, const PCB_SHAPE &aShape, bool aInline=false) |
| void | addShape (wxXmlNode *aContentNode, const PAD &aPad, PCB_LAYER_ID aLayer) |
| void | addSlotCavity (wxXmlNode *aContentNode, const PAD &aPad, const wxString &aName) |
| void | addKnockoutText (wxXmlNode *aContentNode, PCB_TEXT *aText) |
| void | addText (wxXmlNode *aContentNode, EDA_TEXT *aShape, const KIFONT::METRICS &aFontMetrics) |
| void | addLineDesc (wxXmlNode *aNode, int aWidth, LINE_STYLE aDashType, bool aForce=false) |
| void | addFillDesc (wxXmlNode *aNode, FILL_T aFillType, bool aForce=false) |
| bool | addPolygonNode (wxXmlNode *aParentNode, const SHAPE_LINE_CHAIN &aPolygon, FILL_T aFillType=FILL_T::FILLED_SHAPE, int aWidth=0, LINE_STYLE aDashType=LINE_STYLE::SOLID) |
| bool | addPolygonCutouts (wxXmlNode *aParentNode, const SHAPE_POLY_SET::POLYGON &aPolygon) |
| bool | addOutlineNode (wxXmlNode *aParentNode, const SHAPE_POLY_SET &aPolySet, int aWidth=0, LINE_STYLE aDashType=LINE_STYLE::SOLID) |
| bool | addContourNode (wxXmlNode *aParentNode, const SHAPE_POLY_SET &aPolySet, int aOutline=0, FILL_T aFillType=FILL_T::FILLED_SHAPE, int aWidth=0, LINE_STYLE aDashType=LINE_STYLE::SOLID) |
| size_t | lineHash (int aWidth, LINE_STYLE aDashType) |
| size_t | shapeHash (const PCB_SHAPE &aShape) |
| wxString | sanitizeId (const wxString &aStr) const |
| wxString | genString (const wxString &aStr, const char *aPrefix=nullptr) const |
| wxString | genLayerString (PCB_LAYER_ID aLayer, const char *aPrefix) const |
| wxString | genLayersString (PCB_LAYER_ID aTop, PCB_LAYER_ID aBottom, const char *aPrefix) const |
| wxString | stackupLayerName (const BOARD_STACKUP_ITEM *aItem, int aSublayerId, const char *aPrefix) const |
| wxString | floatVal (double aVal, int aSigFig=-1) const |
| wxString | pinName (const PAD *aPad) const |
| wxString | componentName (FOOTPRINT *aFootprint) |
| void | addXY (wxXmlNode *aNode, const VECTOR2I &aVec, const char *aXName=nullptr, const char *aYName=nullptr) |
| void | addAttribute (wxXmlNode *aNode, const wxString &aName, const wxString &aValue) |
| wxXmlNode * | insertNode (wxXmlNode *aParent, const wxString &aName) |
| wxXmlNode * | appendNode (wxXmlNode *aParent, const wxString &aName) |
| void | appendNode (wxXmlNode *aParent, wxXmlNode *aNode) |
| void | insertNode (wxXmlNode *aParent, wxXmlNode *aNode) |
| void | insertNodeAfter (wxXmlNode *aPrev, wxXmlNode *aNode) |
| void | deleteNode (wxXmlNode *&aNode) |
| void | addLayerAttributes (wxXmlNode *aNode, PCB_LAYER_ID aLayer) |
| bool | isValidLayerFor2581 (PCB_LAYER_ID aLayer) |
Private Attributes | |
| size_t | m_total_bytes |
| wxString | m_units_str |
| double | m_scale |
| int | m_sigfig |
| IPC2581::REVISION | m_revision |
| IPC2581::MODE | m_mode |
| IPC2581::SECTION_SET | m_requestedSections |
| IPC2581::RESOLVE_RESULT | m_resolved |
| wxXmlNode * | m_functionModeNode |
| bool | m_anonymizeNets |
| bool | m_omitRefDes |
| std::map< wxString, wxString > | m_net_name_dict |
| std::map< FOOTPRINT *, wxString > | m_anon_refdes_dict |
| wxXmlNode * | m_step_node |
| size_t | m_progress_tick |
| bool | m_haveCadData |
| wxString | m_OEMRef |
| wxString | m_mpn |
| wxString | m_mfg |
| wxString | m_distpn |
| wxString | m_dist |
| wxString | m_bomRev |
| wxXmlNode * | m_enterpriseNode |
| BOARD * | m_board |
| std::vector< FOOTPRINT * > | m_loaded_footprints |
| const std::map< std::string, UTF8 > * | m_props |
| std::map< size_t, wxString > | m_user_shape_dict |
| wxXmlNode * | m_shape_user_node |
| std::map< size_t, wxString > | m_std_shape_dict |
| wxXmlNode * | m_shape_std_node |
| std::map< size_t, wxString > | m_line_dict |
| wxXmlNode * | m_line_node |
| std::map< size_t, wxString > | m_padstack_dict |
| std::vector< wxXmlNode * > | m_padstacks |
| wxXmlNode * | m_last_padstack |
| std::map< wxString, std::array< wxString, 2 > > | m_padstack_backdrill_specs |
| std::map< wxString, wxXmlNode * > | m_backdrill_spec_nodes |
| std::set< wxString > | m_backdrill_spec_used |
| int | m_backdrill_spec_index |
| wxXmlNode * | m_cad_header_node |
| std::map< size_t, wxString > | m_footprint_dict |
| std::map< wxString, FOOTPRINT * > | m_footprint_refdes_dict |
| std::map< FOOTPRINT *, wxString > | m_footprint_refdes_reverse_dict |
| std::map< FOOTPRINT *, wxString > | m_OEMRef_dict |
| std::map< int, std::vector< std::pair< wxString, wxString > > > | m_net_pin_dict |
| std::map< PCB_LAYER_ID, wxString > | m_layer_name_map |
| std::map< std::pair< PCB_LAYER_ID, PCB_LAYER_ID >, std::vector< BOARD_ITEM * > > | m_drill_layers |
| std::map< std::pair< PCB_LAYER_ID, PCB_LAYER_ID >, std::vector< PAD * > > | m_slot_holes |
| std::map< std::tuple< auxLayerType, PCB_LAYER_ID, PCB_LAYER_ID >, std::vector< BOARD_ITEM * > > | m_auxilliary_Layers |
| PROGRESS_REPORTER * | m_progress_reporter |
| std::set< wxString > | m_element_names |
| std::map< wxString, wxString > | m_generated_names |
| std::set< wxUniChar > | m_acceptable_chars |
| wxXmlDocument * | m_xml_doc |
| wxXmlNode * | m_xml_root |
| wxXmlNode * | m_contentNode |
| wxXmlNode * | m_lastAppendedNode |
| Optimization for appendNode to avoid O(n) child traversal. | |
Definition at line 58 of file pcb_io_ipc2581.h.
|
inline |
Definition at line 61 of file pcb_io_ipc2581.h.
References IPC2581::B, m_anonymizeNets, m_backdrill_spec_index, m_board, m_cad_header_node, m_contentNode, m_enterpriseNode, m_functionModeNode, m_haveCadData, m_last_padstack, m_lastAppendedNode, m_line_node, m_mode, m_omitRefDes, m_progress_reporter, m_progress_tick, m_props, m_revision, m_scale, m_shape_std_node, m_shape_user_node, m_sigfig, m_step_node, m_total_bytes, m_xml_doc, m_xml_root, PCB_IO::PCB_IO(), and IPC2581::USERDEF.
|
override |
Definition at line 180 of file pcb_io_ipc2581.cpp.
References clearLoadedFootprints(), and m_xml_doc.
|
private |
Definition at line 506 of file pcb_io_ipc2581.cpp.
References m_total_bytes.
Referenced by addBackdrillSpecRefs(), addCadHeader(), addFillDesc(), addLayerAttributes(), addLineDesc(), addPackage(), addPad(), addPadStack(), addPadStack(), addShape(), addShape(), addSlotCavity(), addXY(), ensureBackdrillSpecs(), generateAuxilliaryLayers(), generateAvlSection(), generateBOMSection(), generateCadLayers(), generateCadSpecs(), generateComponents(), generateContentLayerRefs(), generateContentSection(), generateContentStackup(), generateDrillLayers(), generateEcadSection(), generateHistorySection(), generateLayerSetDrill(), generateLayerSetNet(), generateLogicalNets(), generateLogisticSection(), generatePhyNetGroup(), generateStackup(), generateStepSection(), generateXmlHeader(), and SaveBoard().
|
private |
Definition at line 3128 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), m_backdrill_spec_used, and m_padstack_backdrill_specs.
Referenced by generateLayerSetDrill().
|
private |
Definition at line 2215 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), IPC2581::DIELECTRIC, generateCadSpecs(), included(), m_cad_header_node, m_units_str, and IPC2581::STACKUP.
Referenced by generateEcadSection().
|
private |
Definition at line 3295 of file pcb_io_ipc2581.cpp.
References addPolygonCutouts(), addPolygonNode(), appendNode(), deleteNode(), NO_FILL, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), and SHAPE_POLY_SET::Polygon().
Referenced by addKnockoutText(), addPackage(), addShape(), addShape(), and generateLayerSetNet().
|
private |
Definition at line 907 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), and FILLED_SHAPE.
Referenced by addPolygonNode(), and addShape().
|
private |
Definition at line 982 of file pcb_io_ipc2581.cpp.
References addContourNode(), appendNode(), ARC_HIGH_DEF, ERROR_INSIDE, SHAPE_POLY_SET::Fracture(), SHAPE_POLY_SET::OutlineCount(), and PCB_TEXT::TransformTextToPolySet().
Referenced by addPackage(), and generateLayerSetNet().
|
private |
Definition at line 2233 of file pcb_io_ipc2581.cpp.
References addAttribute(), B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, B_SilkS, Cmts_User, Dwgs_User, Eco1_User, Eco2_User, Edge_Cuts, F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, F_SilkS, IsCopperLayer(), Margin, User_1, User_2, User_3, User_4, User_5, User_6, User_7, User_8, and User_9.
Referenced by generateCadLayers().
|
private |
Definition at line 927 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), DASH, DASHDOT, DASHDOTDOT, DOT, floatVal(), lineHash(), m_line_dict, m_line_node, m_scale, and name.
Referenced by addOutlineNode(), addPackage(), addPolygonNode(), addShape(), and addText().
|
private |
Definition at line 609 of file pcb_io_ipc2581.cpp.
References addLocationNode(), PADSTACK::EffectiveLayerFor(), BOARD_ITEM::GetFPRelativePosition(), PAD::GetOffset(), PAD::GetPosition(), PAD::Padstack(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
private |
Definition at line 628 of file pcb_io_ipc2581.cpp.
References addLocationNode(), ARC, BEZIER, CIRCLE, ELLIPSE, ELLIPSE_ARC, PCB_SHAPE::GetPosition(), EDA_SHAPE::GetRectangleHeight(), EDA_SHAPE::GetRectangleWidth(), EDA_SHAPE::GetShape(), POLY, RECTANGLE, SEGMENT, and UNDEFINED.
|
private |
Definition at line 602 of file pcb_io_ipc2581.cpp.
References addXY(), and appendNode().
Referenced by addLocationNode(), addLocationNode(), addPackage(), addPad(), addPadStack(), addPadStack(), addSlotCavity(), addVia(), generateComponents(), generateLayerSetAuxilliary(), and generateLayerSetNet().
|
private |
Definition at line 3256 of file pcb_io_ipc2581.cpp.
References addLineDesc(), addPolygonNode(), appendNode(), deleteNode(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_POLY_SET::Simplify(), and traceIpc2581.
Referenced by addPackage(), and addSlotCavity().
|
private |
IPC2581 only supports the documentation layers for production and post-production All other layers are ignored TODO: Decide if we should place the other layers from footprints on the board
Definition at line 3359 of file pcb_io_ipc2581.cpp.
References std::abs(), addAttribute(), addContourNode(), addKnockoutText(), addLineDesc(), addLocationNode(), addOutlineNode(), addPadStack(), addPolygonNode(), addShape(), addText(), ANGLE_0, SHAPE_LINE_CHAIN::Append(), appendNode(), EDA_ANGLE::AsDegrees(), IPC2581::B, B_CrtYd, B_Fab, B_SilkS, IPC2581::C, center, CIRCLE, FOOTPRINT::Clone(), IPC2581::COMPONENT_PACKAGEREF, dummy, ERROR_INSIDE, F_CrtYd, F_Fab, F_SilkS, floatVal(), genString(), BOX2< Vec >::GetCenter(), BOARD_ITEM::GetFPRelativePosition(), BOX2< Vec >::GetHeight(), EDA_SHAPE::GetShape(), BOX2< Vec >::GetWidth(), hash_fp_item(), HASH_POS, included(), insertNode(), EDA_ANGLE::Invert(), isOppositeSideSilk(), m_footprint_dict, m_revision, name, NO_FILL, nodeName(), EDA_ANGLE::Normalize(), NPTH, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), IPC2581::PACKAGES, pad, PCB_SHAPE_T, PCB_TEXT_T, PCB_TEXTBOX_T, pinName(), RECTANGLE, REL_COORD, SOLID, suppressed(), text, TOP_BOTTOM, SHAPE_LINE_CHAIN::Width(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by generateComponents().
|
private |
Definition at line 2704 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addPadStack(), addShape(), ANGLE_0, appendNode(), EDA_ANGLE::AsDegrees(), componentName(), floatVal(), PAD::GetOrientation(), BOARD_ITEM::GetParentFootprint(), EDA_ANGLE::Normalize(), pinName(), IPC2581::PINREF_COMPONENTREF, refDesEmitted(), and suppressed().
Referenced by generateLayerSetNet().
|
private |
Definition at line 2753 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addShape(), addXY(), appendNode(), CIRCLE, PADSTACK::EffectiveLayerFor(), ensureBackdrillSpecs(), F_Cu, PAD::FlashLayer(), floatVal(), PAD::GetAttribute(), PAD::GetDrillSize(), PAD::GetDrillSizeX(), PAD::GetDrillSizeY(), PAD::GetLayerSet(), PAD::GetOffset(), EDA_SHAPE::GetStart(), PAD::HasDrilledHole(), PAD::HasHole(), included(), insertNode(), insertNodeAfter(), ipcPadstackHash(), layerIncluded(), m_board, m_last_padstack, m_layer_name_map, m_padstack_dict, m_padstacks, m_scale, m_step_node, name, IPC2581::PAD_PADSTACKDEFREF, PAD::Padstack(), IPC2581::PADSTACKS, PTH, LSET::Seq(), PCB_SHAPE::SetEnd(), PCB_SHAPE::SetStart(), suppressed(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by addPackage(), addPad(), addVia(), and generateLayerSetAuxilliary().
|
private |
Definition at line 2836 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addShape(), appendNode(), PCB_VIA::BottomLayer(), CIRCLE, ensureBackdrillSpecs(), PCB_VIA::FlashLayer(), floatVal(), genLayersString(), genLayerString(), PCB_VIA::GetDrillValue(), PCB_VIA::GetLayerSet(), included(), insertNode(), insertNodeAfter(), ipcPadstackHash(), PADSTACK::IsCapped(), PADSTACK::IsCovered(), PADSTACK::IsFilled(), PADSTACK::IsPlugged(), PADSTACK::IsTented(), KiROUND(), layerIncluded(), m_board, m_last_padstack, m_layer_name_map, m_padstack_dict, m_scale, m_step_node, IPC2581::MISC_FAB, name, IPC2581::PAD_PADSTACKDEFREF, PCB_VIA::Padstack(), IPC2581::PADSTACKS, LSET::Seq(), PCB_SHAPE::SetEnd(), suppressed(), PCB_VIA::TopLayer(), and UNDEFINED_LAYER.
|
private |
Definition at line 3229 of file pcb_io_ipc2581.cpp.
References addXY(), and appendNode().
Referenced by addContourNode(), and generateProfile().
|
private |
Definition at line 3179 of file pcb_io_ipc2581.cpp.
References addFillDesc(), addLineDesc(), addXY(), appendNode(), SHAPE_LINE_CHAIN::CPoints(), NO_FILL, and SHAPE_LINE_CHAIN::PointCount().
Referenced by addContourNode(), addOutlineNode(), addPackage(), and generateProfile().
|
private |
Definition at line 1129 of file pcb_io_ipc2581.cpp.
References _, std::abs(), addAttribute(), addContourNode(), ANGLE_0, SHAPE_POLY_SET::Append(), appendNode(), B_Paste, chamfer, CHAMFERED_RECT, CIRCLE, CUSTOM, dummy, PADSTACK::EffectiveLayerFor(), ERROR_INSIDE, F_Paste, floatVal(), PAD::GetChamferPositions(), PAD::GetChamferRectRatio(), PAD::GetDelta(), PAD::GetRoundRectCornerRadius(), PAD::GetRoundRectRadiusRatio(), PAD::GetShape(), PAD::GetSize(), PAD::GetSolderMaskExpansion(), PAD::GetSolderPasteMargin(), hash_combine(), hash_fp_item(), SHAPE_POLY_SET::InflateWithLinkedHoles(), IsSolderMaskLayer(), KiROUND(), m_board, m_scale, m_shape_std_node, m_std_shape_dict, PAD::MergePrimitivesAsPolygon(), name, SHAPE_POLY_SET::NewOutline(), OVAL, PAD::Padstack(), radius, RECT_CHAMFER_BOTTOM_LEFT, RECT_CHAMFER_BOTTOM_RIGHT, RECT_CHAMFER_TOP_LEFT, RECT_CHAMFER_TOP_RIGHT, RECTANGLE, IO_BASE::Report(), ROUND_ALL_CORNERS, ROUNDRECT, RPT_SEVERITY_WARNING, TRAPEZOID, VECTOR2< T >::x, and VECTOR2< T >::y.
|
private |
Definition at line 1388 of file pcb_io_ipc2581.cpp.
References std::abs(), addAttribute(), addContourNode(), addFillDesc(), addLineDesc(), addXY(), SHAPE_POLY_SET::Append(), appendNode(), ARC, ARC_HIGH_DEF, BEZIER, center, chain, CIRCLE, SHAPE_ELLIPSE::ConvertToPolyline(), SHAPE_LINE_CHAIN::CPoints(), ELLIPSE, ELLIPSE_ARC, FILLED_SHAPE, floatVal(), EDA_SHAPE::GetBezierC1(), EDA_SHAPE::GetBezierC2(), PCB_SHAPE::GetCenter(), EDA_SHAPE::GetCornerRadius(), EDA_SHAPE::GetEllipseCenter(), EDA_SHAPE::GetEllipseEndAngle(), EDA_SHAPE::GetEllipseMajorRadius(), EDA_SHAPE::GetEllipseMinorRadius(), EDA_SHAPE::GetEllipseRotation(), EDA_SHAPE::GetEllipseStartAngle(), EDA_SHAPE::GetEnd(), EDA_SHAPE::GetFillMode(), STROKE_PARAMS::GetLineStyle(), BOARD_ITEM::GetMaxError(), BEZIER_POLY::GetPoly(), EDA_SHAPE::GetPolyShape(), EDA_SHAPE::GetRadius(), EDA_SHAPE::GetRectangleHeight(), EDA_SHAPE::GetRectangleWidth(), EDA_SHAPE::GetRectCorners(), EDA_SHAPE::GetShape(), EDA_SHAPE::GetStart(), PCB_SHAPE::GetStroke(), STROKE_PARAMS::GetWidth(), EDA_SHAPE::IsClockwiseArc(), m_scale, m_shape_user_node, m_user_shape_dict, name, SHAPE_POLY_SET::NewOutline(), NO_FILL, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), POLY, radius, RECTANGLE, SEGMENT, shapeHash(), SOLID, and UNDEFINED.
Referenced by addPackage(), addPad(), addPadStack(), addPadStack(), addVia(), generateLayerSetAuxilliary(), generateLayerSetNet(), and generatePhyNetGroup().
|
private |
Definition at line 1744 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addOutlineNode(), ANGLE_0, ANGLE_90, appendNode(), EDA_ANGLE::AsDegrees(), IPC2581::C, ERROR_INSIDE, floatVal(), PAD::GetAttribute(), PAD::GetDrillShape(), PAD::GetDrillSize(), PAD::GetLayer(), PAD::GetOrientation(), m_board, m_revision, m_scale, EDA_ANGLE::Normalize(), OBLONG, PTH, PAD::TransformHoleToPolygon(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by generateLayerSetDrill().
|
private |
Definition at line 1011 of file pcb_io_ipc2581.cpp.
References addLineDesc(), addXY(), appendNode(), KIFONT::FONT::Draw(), FOR_CANVAS, EDA_TEXT::GetAttributes(), EDA_TEXT::GetDrawFont(), EDA_TEXT::GetDrawPos(), EDA_TEXT::GetDrawRotation(), EDA_TEXT::GetEffectiveTextPenWidth(), EDA_TEXT::GetShownText(), TEXT_ATTRIBUTES::m_Angle, TEXT_ATTRIBUTES::m_Multiline, TEXT_ATTRIBUTES::m_StrokeWidth, and SOLID.
Referenced by addPackage(), and generateLayerSetNet().
|
private |
Definition at line 2733 of file pcb_io_ipc2581.cpp.
References addLocationNode(), addPadStack(), addShape(), appendNode(), dummy, PCB_VIA::FlashLayer(), PCB_VIA::GetDrillValue(), PCB_VIA::GetPosition(), PCB_TRACK::GetStart(), PCB_VIA::GetWidth(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by generateLayerSetNet().
|
private |
Definition at line 491 of file pcb_io_ipc2581.cpp.
References addAttribute(), floatVal(), m_scale, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by addLocationNode(), addPadStack(), addPolygonCutouts(), addPolygonNode(), addShape(), addText(), generateLayerSetDrill(), and generatePhyNetGroup().
|
virtualinherited |
Definition at line 133 of file io_base.cpp.
References m_progressReporter, and THROW_IO_CANCELLED.
|
private |
Definition at line 297 of file pcb_io_ipc2581.cpp.
References appendNode().
Referenced by addBackdrillSpecRefs(), addCadHeader(), addContourNode(), addFillDesc(), addKnockoutText(), addLineDesc(), addLocationNode(), addOutlineNode(), addPackage(), addPad(), addPadStack(), addPadStack(), addPolygonCutouts(), addPolygonNode(), addShape(), addShape(), addSlotCavity(), addText(), addVia(), appendNode(), ensureBackdrillSpecs(), generateAuxilliaryLayers(), generateAvlSection(), generateBOMSection(), generateCadLayers(), generateCadSpecs(), generateComponents(), generateContentSection(), generateContentStackup(), generateDrillLayers(), generateEcadSection(), generateHistorySection(), generateLayerSetAuxilliary(), generateLayerSetDrill(), generateLayerSetNet(), generateLogicalNets(), generateLogisticSection(), generatePhyNetGroup(), generateProfile(), generateStackup(), and generateStepSection().
|
private |
Definition at line 273 of file pcb_io_ipc2581.cpp.
References m_lastAppendedNode, and m_total_bytes.
|
inlinevirtualinherited |
Return true if GetEnumeratedFootprint() returns a borrowed pointer from an internal cache.
When true, the caller must NOT delete the returned pointer. When false (the default), GetEnumeratedFootprint() allocates a new FOOTPRINT and the caller owns the memory.
Reimplemented in PCB_IO_KICAD_SEXPR.
|
inlineoverridevirtual |
Checks if this PCB_IO can read the specified board file.
If not overriden, extension check is used.
Reimplemented from PCB_IO.
Definition at line 118 of file pcb_io_ipc2581.h.
|
inlineoverridevirtual |
Checks if this PCB_IO can read a footprint from specified file or directory.
If not overriden, extension check is used.
Reimplemented from PCB_IO.
Definition at line 124 of file pcb_io_ipc2581.h.
|
inlineoverridevirtual |
Checks if this IO object can read the specified library file/directory.
If not overridden, extension check is used.
Reimplemented from IO_BASE.
Definition at line 130 of file pcb_io_ipc2581.h.
|
inlinevirtualinherited |
Clear any cached footprint data for the given library path.
This is used to free memory after footprints have been loaded into another cache. The default implementation does nothing; plugins with caches should override.
| aLibraryPath | is the path of the library whose cache should be cleared. |
Reimplemented in PCB_IO_KICAD_SEXPR.
|
private |
Frees the memory allocated for the loaded footprints in m_loaded_footprints.
Definition at line 187 of file pcb_io_ipc2581.cpp.
References m_loaded_footprints.
Referenced by ~PCB_IO_IPC2581().
|
private |
Definition at line 424 of file pcb_io_ipc2581.cpp.
References KIID::AsString(), genString(), FOOTPRINT::GetReference(), m_anon_refdes_dict, m_footprint_refdes_dict, m_footprint_refdes_reverse_dict, m_omitRefDes, EDA_ITEM::m_Uuid, and name.
Referenced by addPad(), generateBOMSection(), generateComponents(), and generateLayerSetNet().
|
inlineprivate |
True if a component reference can name a Component that the export wrote.
Definition at line 272 of file pcb_io_ipc2581.h.
References IPC2581::COMPONENTS, included(), and omitRefDes().
Referenced by generateLayerSetNet(), and generateStepSection().
|
inlinevirtualinherited |
Reimplemented in SCH_IO_DATABASE.
|
virtualinherited |
Create a new empty library at aLibraryPath empty.
It is an error to attempt to create an existing library or to attempt to create on a "read only" location.
| aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several elements. |
| aProperties | is an associative array that can be used to tell the library create function anything special, because it can take any number of additional named tuning arguments that the IO is known to support. The caller continues to own this object (IO may not delete it), and IOs should expect it to be optionally NULL. |
| IO_ERROR | if there is a problem finding the library, or creating it. |
Reimplemented in DESIGN_BLOCK_IO, PCB_IO_KICAD_SEXPR, SCH_IO_KICAD_LEGACY, and SCH_IO_KICAD_SEXPR.
Definition at line 46 of file io_base.cpp.
References NOT_IMPLEMENTED.
Referenced by LIBRARY_MANAGER_ADAPTER::CreateLibrary().
|
virtualinherited |
Delete an existing library and returns true, or if library does not exist returns false, or throws an exception if library exists but is read only or cannot be deleted for some other reason.
| aLibraryPath | is a locator for the "library", usually a directory or file which will contain several elements. |
| aProperties | is an associative array that can be used to tell the library delete implementation function anything special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
| IO_ERROR | if there is a problem deleting an existing library. |
Reimplemented in DESIGN_BLOCK_IO, PCB_IO_GEDA, PCB_IO_KICAD_LEGACY, PCB_IO_KICAD_SEXPR, SCH_IO_KICAD_LEGACY, and SCH_IO_KICAD_SEXPR.
Definition at line 53 of file io_base.cpp.
References NOT_IMPLEMENTED.
Referenced by LIBRARY_MANAGER_ADAPTER::DeleteLibrary().
|
private |
Definition at line 235 of file pcb_io_ipc2581.cpp.
References m_lastAppendedNode.
Referenced by addContourNode(), addOutlineNode(), dropContentStepRefs(), generateComponents(), generateEcadSection(), generateLayerSetNet(), generateProfile(), and pruneUnusedBackdrillSpecs().
|
private |
Remove Content/StepRef when the export writes no Step.
Definition at line 856 of file pcb_io_ipc2581.cpp.
References deleteNode(), m_contentNode, and next().
Referenced by generateEcadSection().
|
private |
Schema sections that the finished document holds.
Definition at line 804 of file pcb_io_ipc2581.cpp.
References IPC2581::BOM_AVL, IPC2581::COMPONENTS, IPC2581::DFX, IPC2581::LOGICAL_NET, m_xml_root, name, IPC2581::PACKAGES, IPC2581::PADSTACKS, IPC2581::PHYSICAL_NET, IPC2581::PROFILE, IPC2581::SectionForLayerFunction(), IPC2581::SECTION_SET::Set(), and IPC2581::STACKUP.
Referenced by SaveBoard().
|
private |
Definition at line 2945 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), B_Cu, PADSTACK::BackPostMachining(), COUNTERBORE, COUNTERSINK, PADSTACK::DRILL_PROPS::end, F_Cu, floatVal(), PADSTACK::FrontPostMachining(), BOARD_STACKUP::GetLayerDistance(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), m_backdrill_spec_index, m_backdrill_spec_nodes, m_board, m_cad_header_node, m_layer_name_map, m_padstack_backdrill_specs, m_scale, m_units_str, PADSTACK::POST_MACHINING_PROPS::mode, propertyUnitForCadUnits(), PADSTACK::SecondaryDrill(), PADSTACK::DRILL_PROPS::start, BOARD_STACKUP::SynchronizeWithBoard(), PADSTACK::TertiaryDrill(), UNDEFINED_LAYER, and UNKNOWN.
Referenced by addPadStack(), and addPadStack().
|
private |
Definition at line 475 of file pcb_io_ipc2581.cpp.
References m_sigfig.
Referenced by addLineDesc(), addPackage(), addPad(), addPadStack(), addPadStack(), addShape(), addShape(), addSlotCavity(), addXY(), ensureBackdrillSpecs(), generateCadSpecs(), generateComponents(), generateLayerSetDrill(), and generateStackup().
|
virtualinherited |
Delete aFootprintName from the library at aLibraryPath.
| aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several footprints. |
| aFootprintName | is the name of a footprint to delete from the specified library. |
| aProperties | is an associative array that can be used to tell the library delete function anything special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
| IO_ERROR | if there is a problem finding the footprint or the library, or deleting it. |
Reimplemented in PCB_IO_GEDA, and PCB_IO_KICAD_SEXPR.
Definition at line 177 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by FOOTPRINT_LIBRARY_ADAPTER::DeleteFootprint().
|
virtualinherited |
Return a list of footprint names contained within the library at aLibraryPath.
| aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several footprints. |
| aProperties | is an associative array that can be used to tell the plugin anything needed about how to perform with respect to aLibraryPath. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
| aFootprintNames | is the array of available footprint names inside a library. |
| aBestEfforts | if true, don't throw on errors, just return an empty list. |
| IO_ERROR | if the library cannot be found, or footprint cannot be loaded. |
Reimplemented in PCB_IO_ALTIUM_DESIGNER, PCB_IO_CADSTAR_ARCHIVE, PCB_IO_EAGLE, PCB_IO_EASYEDA, PCB_IO_EASYEDAPRO, PCB_IO_EASYEDAPRO_V3, PCB_IO_GEDA, PCB_IO_KICAD_LEGACY, PCB_IO_KICAD_SEXPR, and PCB_IO_SPRINT_LAYOUT.
Definition at line 112 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by FOOTPRINT_LIBRARY_ADAPTER::GetFootprintNames(), ImportFootprint(), and FOOTPRINT_LIBRARY_ADAPTER::LoadOne().
|
virtualinherited |
Check for the existence of a footprint.
Reimplemented in PCB_IO_CADSTAR_ARCHIVE, and PCB_IO_KICAD_SEXPR.
Definition at line 152 of file pcb_io.cpp.
References FootprintLoad().
Referenced by FOOTPRINT_LIBRARY_ADAPTER::FootprintExists().
|
virtualinherited |
Load a footprint having aFootprintName from the aLibraryPath containing a library format that this PCB_IO knows about.
| aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several footprints. |
| aFootprintName | is the name of the footprint to load. |
| aProperties | is an associative array that can be used to tell the loader implementation to do something special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
| aKeepUUID | = true to keep initial items UUID, false to set new UUID normally true if loaded in the footprint editor, false if loaded in the board editor. Make sense only in kicad_plugin |
| IO_ERROR | if the library cannot be found or read. No exception is thrown in the case where aFootprintName cannot be found. |
Reimplemented in PCB_IO_ALTIUM_DESIGNER, PCB_IO_CADSTAR_ARCHIVE, PCB_IO_EAGLE, PCB_IO_EASYEDA, PCB_IO_EASYEDAPRO, PCB_IO_EASYEDAPRO_V3, PCB_IO_GEDA, PCB_IO_KICAD_LEGACY, PCB_IO_KICAD_SEXPR, and PCB_IO_SPRINT_LAYOUT.
Definition at line 160 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by FootprintExists(), GetEnumeratedFootprint(), ImportFootprint(), FOOTPRINT_LIBRARY_ADAPTER::LoadFootprint(), and FOOTPRINT_LIBRARY_ADAPTER::SaveFootprint().
|
virtualinherited |
Write aFootprint to an existing library located at aLibraryPath.
If a footprint by the same name already exists, it is replaced.
| aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several footprints. |
| aFootprint | is what to store in the library. The caller continues to own the footprint after this call. |
| aProperties | is an associative array that can be used to tell the saver how to save the footprint, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
| IO_ERROR | if there is a problem saving. |
Reimplemented in PCB_IO_KICAD_SEXPR.
Definition at line 169 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by FOOTPRINT_LIBRARY_ADAPTER::SaveFootprint().
|
private |
Definition at line 2551 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), B_Cu, CAPPING, COVERING, F_Cu, FILLING, genLayersString(), genLayerString(), IsFrontLayer(), m_auxilliary_Layers, m_board, name, PCB_VIA_T, PLUGGING, TENTING, TO_UTF8, UNDEFINED_LAYER, and via.
Referenced by generateEcadSection().
|
private |
Creates the Approved Vendor List section.
If the user chooses, this will associate BOM items with vendor numbers and names.
Definition at line 4752 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), appendNode(), IPC2581::BOM_AVL, empty(), genString(), PCB_FIELD::GetShownText(), included(), insertNodeAfter(), m_dist, m_distpn, m_enterpriseNode, m_mfg, m_mpn, m_OEMRef_dict, m_xml_root, name, reportPhase(), and RESOLVED.
Referenced by SaveBoard().
|
private |
Creates the BOM section.
This section defines the BOM data for the board. This includes the part number, manufacturer, and distributor information for each component on the board.
We assume that the m_OEMRef_dict is populated already by the generateComponents function This will either place a unique string in the dictionary or field reference.
Definition at line 1844 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), ANGLE_0, appendNode(), IPC2581::BOM_AVL, IPC2581::BOM_REFDES, IPC2581::BOM_REFDES_LAYERREF, IPC2581::BOM_REFDES_PACKAGEREF, componentName(), DESCRIPTION, FOR_GUI, genString(), PCB_FIELD::GetShownText(), hash_fp_item(), HASH_POS, included(), m_board, m_bomRev, m_footprint_dict, m_haveCadData, m_layer_name_map, IO_BASE::m_name, m_OEMRef_dict, m_props, m_xml_root, REFDES, REL_COORD, IO_BASE::Report(), reportPhase(), RESOLVED, RPT_SEVERITY_WARNING, suppressed(), and TOP_BOTTOM.
Referenced by SaveBoard().
|
private |
Definition at line 2405 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLayerAttributes(), appendNode(), BS_ITEM_TYPE_DIELECTRIC, IPC2581::C, genLayerString(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP::GetCount(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), BOARD_STACKUP_ITEM::GetSublayersCount(), getSurfaceFinishType(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::GetTypeName(), included(), isValidLayerFor2581(), KEY_CORE, layerIncluded(), m_board, BOARD_STACKUP::m_FinishType, m_layer_name_map, m_revision, IPC2581::MISC_FAB, NONE, stackupLayerName(), stackupRowIncluded(), and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by generateEcadSection().
|
private |
Definition at line 2098 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), BS_ITEM_TYPE_COPPER, BS_ITEM_TYPE_DIELECTRIC, BS_ITEM_TYPE_SILKSCREEN, BS_ITEM_TYPE_SOLDERMASK, IPC2581::C, floatVal(), BOARD_STACKUP_ITEM::GetColor(), BOARD_STACKUP::GetCount(), BOARD_STACKUP_ITEM::GetEpsilonR(), BOARD_STACKUP::GetList(), BOARD_STACKUP_ITEM::GetLossTangent(), BOARD_STACKUP_ITEM::GetMaterial(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), BOARD_STACKUP_ITEM::GetSublayersCount(), getSurfaceFinishType(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::GetTypeName(), m_board, BOARD_STACKUP::m_FinishType, m_revision, NONE, OTHER, stackupLayerName(), surfaceFinishTypeToString, and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by addCadHeader().
|
private |
Definition at line 3748 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), addLocationNode(), addPackage(), ANGLE_0, ANGLE_180, appendNode(), EDA_ANGLE::AsDegrees(), componentName(), IPC2581::COMPONENTS, deleteNode(), floatVal(), FP_SMD, FP_THROUGH_HOLE, genString(), PCB_FIELD::GetShownText(), EDA_TEXT::GetText(), included(), insertNode(), EDA_ANGLE::Invert(), m_board, m_last_padstack, m_layer_name_map, m_net_pin_dict, m_OEMRef, m_OEMRef_dict, m_padstacks, IO_BASE::m_progressReporter, name, EDA_ANGLE::Normalize(), IPC2581::PACKAGES, pad, IPC2581::PADSTACKS, refDesEmitted(), IO_BASE::Report(), reportPhase(), RESOLVED, RPT_SEVERITY_ERROR, and tickProgress().
Referenced by generateStepSection().
|
private |
Definition at line 875 of file pcb_io_ipc2581.cpp.
References addAttribute(), and m_contentNode.
Referenced by generateEcadSection().
|
private |
Creates the Content section of the XML file.
This holds the overview of the rest of the board data. Includes references to the step, bom, and layers as well as the content dictionaries
Definition at line 539 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), appendNode(), IPC2581::B, IPC2581::C, generateContentStackup(), genString(), included(), m_board, m_contentNode, m_functionModeNode, m_line_node, m_mode, m_resolved, m_revision, m_shape_std_node, m_shape_user_node, m_units_str, m_xml_root, IPC2581::ModeToken(), IPC2581::NeedsCadData(), reportPhase(), IPC2581::STACKUP, and IPC2581::USERDEF.
Referenced by SaveBoard().
|
private |
Definition at line 682 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), KIGFX::COLOR4D::b, BS_ITEM_TYPE_DIELECTRIC, KIGFX::COLOR4D::g, genString(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), GetStandardColors(), IsPrmSpecified(), KiROUND(), m_board, m_layer_name_map, KIGFX::COLOR4D::r, stackupLayerName(), and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by generateContentSection().
|
private |
Definition at line 2498 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), B_Cu, F_Cu, genLayersString(), genLayerString(), IsDrillSlot(), m_board, m_drill_layers, m_slot_holes, pad, PCB_VIA_T, and via.
Referenced by generateEcadSection().
|
private |
Creates the ECAD section.
This describes the layout, layers, and design as well as component placement and netlist information
Definition at line 2046 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), addCadHeader(), appendNode(), deleteNode(), IPC2581::DRILL_ROUT, dropContentStepRefs(), generateAuxilliaryLayers(), generateCadLayers(), generateContentLayerRefs(), generateDrillLayers(), generateStackup(), generateStepSection(), included(), m_haveCadData, m_resolved, m_xml_root, IPC2581::MISC_FAB, IPC2581::NeedsCadData(), pruneUnusedBackdrillSpecs(), reportPhase(), and IPC2581::STACKUP.
Referenced by SaveBoard().
|
private |
Creates the history section.
This section defines the history of the file, the revision number, and the date of the revision as well as software used to create the file. Optionally, the data could include information about the git revision and tag
Definition at line 1817 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), appendNode(), GetMajorMinorPatchVersion(), m_xml_root, and reportPhase().
Referenced by SaveBoard().
|
private |
Definition at line 4066 of file pcb_io_ipc2581.cpp.
References m_board.
Referenced by generateStepSection().
|
private |
Definition at line 4672 of file pcb_io_ipc2581.cpp.
References addLocationNode(), addPadStack(), addShape(), appendNode(), CAPPING, CIRCLE, COVERING, FILLING, genLayersString(), genLayerString(), included(), KiROUND(), m_auxilliary_Layers, IPC2581::MISC_FAB, name, PCB_VIA_T, PLUGGING, PCB_SHAPE::SetEnd(), TENTING, TO_UTF8, UNDEFINED_LAYER, and via.
Referenced by generateStepSection().
|
private |
Definition at line 4214 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), addBackdrillSpecRefs(), addSlotCavity(), addXY(), appendNode(), IPC2581::DRILL_ROUT, floatVal(), genLayersString(), included(), ipcPadstackHash(), m_drill_layers, m_padstack_dict, m_scale, m_slot_holes, netName(), pad, PCB_PAD_T, PCB_VIA_T, PTH, IO_BASE::Report(), RPT_SEVERITY_WARNING, and via.
Referenced by generateStepSection().
|
private |
Definition at line 4306 of file pcb_io_ipc2581.cpp.
References _, add_zone, addAttribute(), addContourNode(), addKnockoutText(), addLocationNode(), addPad(), addShape(), addText(), addVia(), appendNode(), ARC, IPC2581::B, IPC2581::C, CIRCLE, componentName(), componentRefEmitted(), deleteNode(), PCB_TRACK::GetEnd(), FOOTPRINT::GetLayer(), PCB_ARC::GetMid(), BOARD_ITEM::GetParentFootprint(), EDA_TEXT::GetShownText(), PCB_TRACK::GetStart(), ENUM_MAP< T >::Instance(), IsCopperLayer(), PCB_ARC::IsDegenerated(), IsExternalCopperLayer(), isOppositeSideSilk(), IsSolderMaskLayer(), EDA_TEXT::IsVisible(), m_revision, netName(), SHAPE_POLY_SET::OutlineCount(), pad, PCB_ARC_T, PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_DIMENSION_T, PCB_FIELD_T, PCB_PAD_T, PCB_SHAPE_T, PCB_TARGET_T, PCB_TEXT_T, PCB_TEXTBOX_T, PCB_TRACE_T, PCB_VIA_T, PCB_ZONE_T, POLY, RECTANGLE, IO_BASE::Report(), RESOLVED, RPT_SEVERITY_WARNING, SEGMENT, PCB_SHAPE::SetArcGeometry(), PCB_SHAPE::SetEnd(), PCB_SHAPE::SetStart(), PCB_SHAPE::SetWidth(), text, and traceIpc2581.
|
private |
Definition at line 3871 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), appendNode(), m_board, m_net_pin_dict, netName(), pin, IPC2581::PINREF_COMPONENTREF, refDesEmitted(), reportPhase(), and suppressed().
Referenced by generateStepSection().
|
private |
Creates the logistical data header.
This section defines the organization and person creating the file. Can be used for contact information and config management
Definition at line 1796 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), m_enterpriseNode, and m_xml_root.
Referenced by SaveBoard().
|
private |
Definition at line 3894 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), addShape(), addXY(), appendNode(), B_Cu, B_Mask, dummy, F_Cu, F_Mask, NETINFO_ITEM::GetNetname(), m_board, m_layer_name_map, IO_BASE::m_progressReporter, netName(), pad, PCB_VIA_T, reportPhase(), tickProgress(), UNDEFINED_LAYER, and via.
Referenced by generateStepSection().
|
private |
Definition at line 3320 of file pcb_io_ipc2581.cpp.
References _, addPolygonCutouts(), addPolygonNode(), appendNode(), deleteNode(), m_board, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_POLY_SET::Polygon(), IO_BASE::Report(), RPT_SEVERITY_ERROR, and traceIpc2581.
Referenced by generateStepSection().
|
private |
Definition at line 2313 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), B_Cu, BS_ITEM_TYPE_DIELECTRIC, BOARD_STACKUP::BuildBoardThicknessFromStackup(), IPC2581::C, F_Cu, floatVal(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP::GetCount(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), BOARD_STACKUP_ITEM::GetSublayersCount(), getSurfaceFinishType(), BOARD_STACKUP_ITEM::GetThickness(), BOARD_STACKUP_ITEM::GetType(), included(), m_board, BOARD_STACKUP::m_FinishType, m_revision, m_scale, IPC2581::MISC_FAB, NONE, stackupLayerName(), stackupRowIncluded(), and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by generateEcadSection().
|
private |
Definition at line 2663 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), IPC2581::C, componentRefEmitted(), generateComponents(), generateLayerFeatures(), generateLayerSetAuxilliary(), generateLayerSetDrill(), generateLogicalNets(), generatePhyNetGroup(), generateProfile(), genString(), included(), insertNode(), IPC2581::LOGICAL_NET, m_board, m_last_padstack, m_revision, m_step_node, IPC2581::PHYSICAL_NET, and IPC2581::PROFILE.
Referenced by generateEcadSection().
|
private |
Creates the XML header for IPC-2581.
Definition at line 513 of file pcb_io_ipc2581.cpp.
References addAttribute(), IPC2581::B, IPC2581::C, m_revision, and m_xml_doc.
Referenced by SaveBoard().
|
private |
Definition at line 386 of file pcb_io_ipc2581.cpp.
References genString(), and m_board.
Referenced by addPadStack(), generateAuxilliaryLayers(), generateDrillLayers(), generateLayerSetAuxilliary(), and generateLayerSetDrill().
|
private |
Definition at line 357 of file pcb_io_ipc2581.cpp.
References genString(), and m_board.
Referenced by addPadStack(), generateAuxilliaryLayers(), generateCadLayers(), generateDrillLayers(), and generateLayerSetAuxilliary().
|
private |
Definition at line 330 of file pcb_io_ipc2581.cpp.
References m_element_names, m_generated_names, name, and sanitizeId().
Referenced by addPackage(), componentName(), generateAvlSection(), generateBOMSection(), generateComponents(), generateContentSection(), generateContentStackup(), generateStepSection(), genLayersString(), genLayerString(), netName(), and stackupLayerName().
|
inlineoverridevirtual |
Returns board file description for the PCB_IO.
Reimplemented from PCB_IO.
Definition at line 99 of file pcb_io_ipc2581.h.
|
virtualinherited |
A version of FootprintLoad() for use after FootprintEnumerate() for more efficient cache management in plugins that support it.
Whether the returned pointer is borrowed or owned by the caller depends on the plugin. Use CachesEnumeratedFootprints() to determine.
Reimplemented in PCB_IO_KICAD_SEXPR.
Definition at line 144 of file pcb_io.cpp.
References FootprintLoad().
|
overridevirtual |
Return a container with the cached library footprints generated in the last call to Load.
This function is intended to be used ONLY by the non-KiCad board importers for the purpose of obtaining the footprint library of the design and creating a project-specific library.
Reimplemented from PCB_IO.
Definition at line 196 of file pcb_io_ipc2581.cpp.
References m_loaded_footprints.
|
inlineoverridevirtual |
Get the descriptor for the library container that this IO plugin operates on.
Implements IO_BASE.
Definition at line 104 of file pcb_io_ipc2581.h.
|
inlinevirtualinherited |
Get the descriptor for the individual library elements that this IO plugin operates on.
For libraries where all the elements are in a single container (e.g. all elements in a single file), then this will return the descriptor from IO_BASE::GetLibraryDesc().
Reimplemented in PCB_IO_EASYEDA, PCB_IO_EASYEDAPRO, PCB_IO_GEDA, PCB_IO_KICAD_SEXPR, and PCB_IO_SPRINT_LAYOUT.
Definition at line 117 of file io_base.h.
References GetLibraryDesc().
Referenced by PCB_IO::CanReadFootprint().
|
overridevirtualinherited |
Append supported PLUGIN options to aListToAppenTo along with internationalized descriptions.
Options are typically appended so that a derived #PLUGIN can call its base class function by the same name first, thus inheriting options declared there. Some base class options could pertain to all Footprint*() functions in all derived PLUGINs.
| aListToAppendTo | holds a tuple of
In the future perhaps aListToAppendTo evolves to something capable of also holding a wxValidator for the cells in said dialog: http://forums.wxwidgets.org/viewtopic.php?t=23277&p=104180. This would require a 3 column list, and introducing wx GUI knowledge to PLUGIN, which has been avoided to date. |
Reimplemented from IO_BASE.
Definition at line 185 of file pcb_io.cpp.
References _, and IO_BASE::GetLibraryOptions().
|
inlineoverridevirtual |
Generate a timestamp representing all the files in the library (including the library directory).
Timestamps should not be considered ordered, they either match or they don't.
Implements PCB_IO.
Definition at line 112 of file pcb_io_ipc2581.h.
|
inlineinherited |
Return a brief hard coded name for this IO interface.
Definition at line 79 of file io_base.h.
References m_name.
Referenced by SCH_IO_EASYEDAPRO_V3::EnumerateSymbolLib(), SCH_IO_EASYEDAPRO_V3::LoadSymbol(), SCH_IO_ALTIUM::ParseAltiumSch(), and SCH_IO_ALTIUM::ParseLibFile().
|
virtualinherited |
Load a single footprint from aFootprintPath and put its name in aFootprintNameOut.
If this is a footprint library, the first footprint should be loaded. The default implementation uses FootprintEnumerate and FootprintLoad to load first footprint.
| aLibraryPath | is a path of the footprint file. |
| aFootprintNameOut | is the name output of the loaded footprint. |
| aProperties | is an associative array that can be used to tell the loader implementation to do something special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
| IO_ERROR | if the footprint cannot be found or read. |
Reimplemented in PCB_IO_GEDA, and PCB_IO_KICAD_SEXPR.
Definition at line 120 of file pcb_io.cpp.
References _, FootprintEnumerate(), FootprintLoad(), IO_BASE::Report(), and RPT_SEVERITY_WARNING.
|
inlineprivate |
Definition at line 222 of file pcb_io_ipc2581.h.
References m_resolved.
Referenced by addCadHeader(), addPackage(), addPadStack(), addPadStack(), componentRefEmitted(), generateAvlSection(), generateBOMSection(), generateCadLayers(), generateComponents(), generateContentSection(), generateEcadSection(), generateLayerSetAuxilliary(), generateLayerSetDrill(), generateStackup(), generateStepSection(), layerIncluded(), SaveBoard(), and stackupRowIncluded().
|
private |
Definition at line 263 of file pcb_io_ipc2581.cpp.
References insertNode(), and m_total_bytes.
Referenced by addPackage(), addPadStack(), addPadStack(), generateComponents(), generateStepSection(), and insertNode().
|
private |
Definition at line 207 of file pcb_io_ipc2581.cpp.
References m_total_bytes.
|
private |
Definition at line 222 of file pcb_io_ipc2581.cpp.
References m_total_bytes.
Referenced by addPadStack(), addPadStack(), and generateAvlSection().
|
virtualinherited |
Return true if the library at aLibraryPath is writable.
The system libraries are typically read only because of where they are installed..
| aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several footprints. |
| IO_ERROR | if no library at aLibraryPath exists. |
Reimplemented in DESIGN_BLOCK_IO, PCB_IO_ALLEGRO, PCB_IO_ALTIUM_DESIGNER, PCB_IO_CADSTAR_ARCHIVE, PCB_IO_EAGLE, PCB_IO_EASYEDA, PCB_IO_EASYEDAPRO, PCB_IO_EASYEDAPRO_V3, PCB_IO_GEDA, PCB_IO_KICAD_LEGACY, PCB_IO_KICAD_SEXPR, PCB_IO_SPRINT_LAYOUT, SCH_IO_ALTIUM, SCH_IO_CADSTAR_ARCHIVE, SCH_IO_DATABASE, SCH_IO_DIPTRACE, SCH_IO_EAGLE, SCH_IO_EASYEDA, SCH_IO_EASYEDAPRO, SCH_IO_EASYEDAPRO_V3, SCH_IO_GEDA, SCH_IO_HTTP_LIB, SCH_IO_KICAD_LEGACY, SCH_IO_KICAD_SEXPR, SCH_IO_ORCAD, SCH_IO_PADS, and SCH_IO_PCAD.
Definition at line 60 of file io_base.cpp.
References NOT_IMPLEMENTED.
Referenced by DESIGN_BLOCK_LIBRARY_ADAPTER::IsDesignBlockLibWritable(), and LIBRARY_MANAGER_ADAPTER::IsWritable().
|
inlineoverridevirtualinherited |
|
private |
Definition at line 2227 of file pcb_io_ipc2581.cpp.
References IsCopperLayer(), IsNonCopperLayer(), UNDEFINED_LAYER, and User_9.
Referenced by generateCadLayers().
|
private |
True if aLayer is in a schema section that this export holds.
Definition at line 796 of file pcb_io_ipc2581.cpp.
References included(), and IPC2581::SectionForBoardLayer().
Referenced by addPadStack(), addPadStack(), generateCadLayers(), and stackupRowIncluded().
|
private |
Definition at line 660 of file pcb_io_ipc2581.cpp.
References hash_combine(), and hash_val().
Referenced by addLineDesc().
|
inherited |
Same as LoadBoard(), but appends the loaded board to an existing board, which must already exist.
| aAppendToMe | is the existing board to append to. The caller always owns it. |
Definition at line 85 of file pcb_io.cpp.
References loadBoard().
Referenced by PCB_CONTROL::AppendBoard(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
|
inherited |
Load information from some input file format that this PCB_IO implementation knows about into new BOARD.
| aFileName | is the name of the file to use as input and may be foreign in nature or native in nature. |
| aProperties | is an associative array that can be used to tell the loader how to load the file, because it can take any number of additional named arguments that the plugin is known to support. These are tuning parameters for the import or load. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
| aProject | is the optional PROJECT object primarily used by third party importers. |
| IO_ERROR | if there is a problem loading, and its contents should say what went wrong, using line number and character offsets of the input file if possible. |
| IO_CANCELLED | if the user cancelled the load. |
Definition at line 72 of file pcb_io.cpp.
References loadBoard().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), CachedLoad(), checkAllCopperFillZonesHaveClearance(), checkImportedOriginOffset(), PNS_LOG_FILE::Load(), LoadAndVerify(), EAGLE_BINARY_IMPORT_FIXTURE::loadBoard(), and KI_TEST::LoadBoardWithCapture().
|
protectedvirtualinherited |
Parse aFileName into aBoard.
The caller owns aBoard in both cases.
| aIsNewLoad | is true for a fresh load (adopt the file's setup, keep the file's UUIDs) and false when merging into an existing board (preserve its setup, regenerate UUIDs that would clash). |
Reimplemented in PCB_IO_ALLEGRO, PCB_IO_ALTIUM_CIRCUIT_MAKER, PCB_IO_ALTIUM_CIRCUIT_STUDIO, PCB_IO_ALTIUM_DESIGNER, PCB_IO_AUTOTRAX, PCB_IO_CADSTAR_ARCHIVE, PCB_IO_DIPTRACE, PCB_IO_EAGLE, PCB_IO_EASYEDA, PCB_IO_EASYEDAPRO, PCB_IO_EASYEDAPRO_V3, PCB_IO_FABMASTER, PCB_IO_GEDA, PCB_IO_KICAD_LEGACY, PCB_IO_KICAD_SEXPR, PCB_IO_PADS, PCB_IO_PADS_BINARY, PCB_IO_PCAD, PCB_IO_SOLIDWORKS, and PCB_IO_SPRINT_LAYOUT.
Definition at line 92 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by LoadAndAppendBoard(), and LoadBoard().
|
private |
Name to write for aNetname with the net name policy.
aSuffix divides the physical view of a net from the logical view
Definition at line 740 of file pcb_io_ipc2581.cpp.
References genString(), m_anonymizeNets, and m_net_name_dict.
Referenced by generateLayerSetDrill(), generateLayerSetNet(), generateLogicalNets(), and generatePhyNetGroup().
|
inlineprivate |
True if the export removes the reference designators from the artwork.
Definition at line 256 of file pcb_io_ipc2581.h.
References IPC2581::COMPONENT_REFDES, m_omitRefDes, and suppressed().
Referenced by componentRefEmitted(), and refDesEmitted().
|
private |
Definition at line 395 of file pcb_io_ipc2581.cpp.
References PAD::GetAttribute(), PAD::GetNumber(), FOOTPRINT::GetPadCount(), BOARD_ITEM::GetParentFootprint(), name, NPTH, FOOTPRINT::Pads(), and sanitizeId().
Referenced by addPackage(), and addPad().
|
private |
Definition at line 3150 of file pcb_io_ipc2581.cpp.
References deleteNode(), m_backdrill_spec_nodes, m_backdrill_spec_used, and m_cad_header_node.
Referenced by generateEcadSection().
|
inlineprivate |
True if a Component keeps a designator that a reference can name.
Since rev B makes Component@refDes mandatory the export only replaces the name
Definition at line 266 of file pcb_io_ipc2581.h.
References IPC2581::B, m_revision, and omitRefDes().
Referenced by addPad(), generateComponents(), and generateLogicalNets().
|
virtualinherited |
Definition at line 124 of file io_base.cpp.
References m_reporter.
Referenced by PCB_IO_IPC2581::addShape(), SCH_IO_EASYEDAPRO_V3::EnumerateSymbolLib(), PCB_IO_ODBPP::ExportODB(), PCB_IO_IPC2581::generateBOMSection(), PCB_IO_IPC2581::generateComponents(), PCB_IO_IPC2581::generateLayerSetDrill(), PCB_IO_IPC2581::generateLayerSetNet(), PCB_IO_IPC2581::generateProfile(), PCB_IO::ImportFootprint(), PCB_IO_DIPTRACE::loadBoard(), PCB_IO_EASYEDAPRO_V3::loadBoard(), SCH_IO_EAGLE::loadInstance(), SCH_IO_EAGLE::loadLibrary(), PCB_IO_KICAD_LEGACY::loadPAD(), PCB_IO_EAGLE::loadPolygon(), SCH_IO_EASYEDAPRO_V3::LoadSchematicFile(), SCH_IO_DATABASE::loadSymbolFromRow(), PCB_IO_KICAD_LEGACY::loadZONE_CONTAINER(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packagePad(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), PCB_IO_EAGLE::packageText(), and PCB_IO_EAGLE::packageWire().
|
private |
Go to the next progress phase and repaint.
Only KeepRefreshing operates the event loop Without it the dialog stops
Definition at line 759 of file pcb_io_ipc2581.cpp.
References IO_BASE::m_progressReporter, and THROW_IO_CANCELLED.
Referenced by generateAvlSection(), generateBOMSection(), generateComponents(), generateContentSection(), generateEcadSection(), generateHistorySection(), generateLogicalNets(), generatePhyNetGroup(), and SaveBoard().
|
private |
Definition at line 306 of file pcb_io_ipc2581.cpp.
References IPC2581::C, m_acceptable_chars, and m_revision.
Referenced by genString(), and pinName().
|
overridevirtual |
Write aBoard to a storage file in a format that this PCB_IO implementation knows about or it can be used to write a portion of aBoard to a special kind of export file.
| aFileName | is the name of a file to save to on disk. |
| aBoard | is the class BOARD in memory document tree from which to extract information when writing to aFileName. The caller continues to own the BOARD, and the plugin should refrain from modifying the BOARD if possible. |
| aProperties | is an associative array that can be used to tell the saver how to save the file, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it) and plugins should expect it to be optionally NULL. |
| IO_ERROR | if there is a problem saving or exporting. |
Reimplemented from PCB_IO.
Definition at line 4852 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), IPC2581::B, IPC2581::BOM_AVL, IPC2581::C, emittedSections(), EXPORT_PHASES, generateAvlSection(), generateBOMSection(), generateContentSection(), generateEcadSection(), generateHistorySection(), generateLogisticSection(), generateXmlHeader(), included(), IPC2581::LOGICAL_NET, m_acceptable_chars, m_anon_refdes_dict, m_anonymizeNets, m_auxilliary_Layers, m_backdrill_spec_index, m_backdrill_spec_nodes, m_backdrill_spec_used, m_board, m_bomRev, m_cad_header_node, m_contentNode, m_dist, m_distpn, m_drill_layers, m_element_names, m_footprint_dict, m_footprint_refdes_dict, m_footprint_refdes_reverse_dict, m_functionModeNode, m_generated_names, m_haveCadData, m_last_padstack, m_lastAppendedNode, m_layer_name_map, m_line_dict, m_line_node, m_mfg, m_mode, m_mpn, m_net_name_dict, m_net_pin_dict, m_OEMRef, m_OEMRef_dict, m_omitRefDes, m_padstack_backdrill_specs, m_padstack_dict, m_padstacks, IO_BASE::m_progressReporter, m_requestedSections, m_resolved, m_revision, m_scale, m_shape_std_node, m_shape_user_node, m_sigfig, m_slot_holes, m_std_shape_dict, m_step_node, m_total_bytes, m_units_str, m_user_shape_dict, m_xml_doc, m_xml_root, IPC2581::ModeFromToken(), PCB_IU_PER_MM, IPC2581::PHYSICAL_NET, IPC2581::RecommendedOptionalSections(), reportPhase(), IPC2581::ResolveSections(), IPC2581::SectionKeyString(), IPC2581::SectionSetFromKeyString(), wxFileOutputStreamWithProgress::SetProgressCallback(), THROW_IO_ERROR, and IPC2581::USERDEF.
Referenced by BOOST_AUTO_TEST_CASE().
|
inlinevirtualinherited |
Set an optional progress reporter.
Reimplemented in SCH_IO_CADSTAR_ARCHIVE.
Definition at line 94 of file io_base.h.
References m_progressReporter.
Referenced by PCB_CONTROL::AppendBoard().
|
inlinevirtualinherited |
Registers a KIDIALOG callback for collecting info from the user.
Definition at line 106 of file pcb_io.h.
Referenced by PCB_CONTROL::AppendBoard().
|
inlinevirtualinherited |
Set an optional reporter for warnings/errors.
Reimplemented in SCH_IO_CADSTAR_ARCHIVE.
Definition at line 89 of file io_base.h.
References m_reporter.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), KI_TEST::LoadBoardWithCapture(), SCH_IO_GEDA::loadDeferredSheets(), and SCH_IO_GEDA::LoadSchematicFile().
|
private |
Definition at line 669 of file pcb_io_ipc2581.cpp.
References EDA_SHAPE::GetCornerRadius(), EDA_SHAPE::GetShape(), hash_combine(), hash_fp_item(), HASH_POS, RECTANGLE, and REL_COORD.
Referenced by addShape().
|
private |
Definition at line 363 of file pcb_io_ipc2581.cpp.
References BS_ITEM_TYPE_DIELECTRIC, genString(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP_ITEM::GetDielectricLayerId(), BOARD_STACKUP_ITEM::GetLayerName(), BOARD_STACKUP_ITEM::GetType(), IsValidLayer(), m_board, and name.
Referenced by generateCadLayers(), generateCadSpecs(), generateContentStackup(), and generateStackup().
|
private |
True if a stackup row is in a schema section that this export holds.
Definition at line 790 of file pcb_io_ipc2581.cpp.
References IPC2581::DIELECTRIC, included(), and layerIncluded().
Referenced by generateCadLayers(), and generateStackup().
|
inlinevirtualinherited |
Reimplemented in SCH_IO_DATABASE.
|
inlineprivate |
Definition at line 227 of file pcb_io_ipc2581.h.
References m_resolved.
Referenced by addPackage(), addPad(), addPadStack(), addPadStack(), generateBOMSection(), generateLogicalNets(), and omitRefDes().
|
private |
Count one unit of work in this phase and repaint at intervals.
Definition at line 771 of file pcb_io_ipc2581.cpp.
References m_progress_tick, IO_BASE::m_progressReporter, and THROW_IO_CANCELLED.
Referenced by generateComponents(), and generatePhyNetGroup().
|
staticconstexpr |
Content logistic history CAD data components the two netlists BOM vendor list references the write and the release The export subtracts the phases that it skips.
Definition at line 94 of file pcb_io_ipc2581.h.
Referenced by DIALOG_EXPORT_2581::onOKClick(), and SaveBoard().
|
private |
Definition at line 453 of file pcb_io_ipc2581.h.
Referenced by sanitizeId(), and SaveBoard().
|
private |
Definition at line 383 of file pcb_io_ipc2581.h.
Referenced by componentName(), and SaveBoard().
|
private |
Definition at line 380 of file pcb_io_ipc2581.h.
Referenced by netName(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 446 of file pcb_io_ipc2581.h.
Referenced by generateAuxilliaryLayers(), generateLayerSetAuxilliary(), and SaveBoard().
|
private |
Definition at line 418 of file pcb_io_ipc2581.h.
Referenced by ensureBackdrillSpecs(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 416 of file pcb_io_ipc2581.h.
Referenced by ensureBackdrillSpecs(), pruneUnusedBackdrillSpecs(), and SaveBoard().
|
private |
Definition at line 417 of file pcb_io_ipc2581.h.
Referenced by addBackdrillSpecRefs(), pruneUnusedBackdrillSpecs(), and SaveBoard().
|
private |
Definition at line 398 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), addPadStack(), addShape(), addSlotCavity(), ensureBackdrillSpecs(), generateAuxilliaryLayers(), generateBOMSection(), generateCadLayers(), generateCadSpecs(), generateComponents(), generateContentSection(), generateContentStackup(), generateDrillLayers(), generateLayerFeatures(), generateLogicalNets(), generatePhyNetGroup(), generateProfile(), generateStackup(), generateStepSection(), genLayersString(), genLayerString(), PCB_IO_IPC2581(), SaveBoard(), and stackupLayerName().
|
private |
Definition at line 392 of file pcb_io_ipc2581.h.
Referenced by generateBOMSection(), and SaveBoard().
|
private |
Definition at line 419 of file pcb_io_ipc2581.h.
Referenced by addCadHeader(), ensureBackdrillSpecs(), PCB_IO_IPC2581(), pruneUnusedBackdrillSpecs(), and SaveBoard().
|
private |
Definition at line 457 of file pcb_io_ipc2581.h.
Referenced by dropContentStepRefs(), generateContentLayerRefs(), generateContentSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 391 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
private |
Definition at line 390 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
private |
Definition at line 440 of file pcb_io_ipc2581.h.
Referenced by generateDrillLayers(), generateLayerSetDrill(), and SaveBoard().
|
mutableprivate |
Definition at line 450 of file pcb_io_ipc2581.h.
Referenced by genString(), and SaveBoard().
|
private |
Definition at line 396 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), generateLogisticSection(), and PCB_IO_IPC2581().
|
private |
Definition at line 422 of file pcb_io_ipc2581.h.
Referenced by addPackage(), generateBOMSection(), and SaveBoard().
|
private |
Definition at line 425 of file pcb_io_ipc2581.h.
Referenced by componentName(), and SaveBoard().
|
private |
Definition at line 428 of file pcb_io_ipc2581.h.
Referenced by componentName(), and SaveBoard().
|
private |
Definition at line 379 of file pcb_io_ipc2581.h.
Referenced by generateContentSection(), PCB_IO_IPC2581(), and SaveBoard().
|
mutableprivate |
Definition at line 451 of file pcb_io_ipc2581.h.
Referenced by genString(), and SaveBoard().
|
private |
Definition at line 386 of file pcb_io_ipc2581.h.
Referenced by generateBOMSection(), generateEcadSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 413 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), addPadStack(), generateComponents(), generateStepSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Optimization for appendNode to avoid O(n) child traversal.
Definition at line 459 of file pcb_io_ipc2581.h.
Referenced by appendNode(), deleteNode(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 437 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), addPadStack(), ensureBackdrillSpecs(), generateBOMSection(), generateCadLayers(), generateComponents(), generateContentStackup(), generatePhyNetGroup(), and SaveBoard().
|
private |
Definition at line 408 of file pcb_io_ipc2581.h.
Referenced by addLineDesc(), and SaveBoard().
|
private |
Definition at line 409 of file pcb_io_ipc2581.h.
Referenced by addLineDesc(), generateContentSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 399 of file pcb_io_ipc2581.h.
Referenced by clearLoadedFootprints(), and GetImportedCachedLibraryFootprints().
|
private |
Definition at line 389 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
private |
Definition at line 376 of file pcb_io_ipc2581.h.
Referenced by generateContentSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 388 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
protectedinherited |
Name of the IO loader.
Definition at line 235 of file io_base.h.
Referenced by PCB_IO_IPC2581::generateBOMSection(), GetName(), and IO_BASE().
|
private |
Definition at line 382 of file pcb_io_ipc2581.h.
Referenced by netName(), and SaveBoard().
|
private |
Definition at line 434 of file pcb_io_ipc2581.h.
Referenced by generateComponents(), generateLogicalNets(), and SaveBoard().
|
private |
Definition at line 387 of file pcb_io_ipc2581.h.
Referenced by generateComponents(), and SaveBoard().
|
private |
Definition at line 431 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), generateBOMSection(), generateComponents(), and SaveBoard().
|
private |
Definition at line 381 of file pcb_io_ipc2581.h.
Referenced by componentName(), omitRefDes(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 415 of file pcb_io_ipc2581.h.
Referenced by addBackdrillSpecRefs(), ensureBackdrillSpecs(), and SaveBoard().
|
private |
Definition at line 411 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), addPadStack(), generateLayerSetDrill(), and SaveBoard().
|
private |
Definition at line 412 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), generateComponents(), and SaveBoard().
|
private |
Definition at line 448 of file pcb_io_ipc2581.h.
Referenced by PCB_IO_IPC2581().
|
private |
Definition at line 385 of file pcb_io_ipc2581.h.
Referenced by PCB_IO_IPC2581(), and tickProgress().
|
protectedinherited |
Progress reporter to track the progress of the operation, may be nullptr.
Definition at line 241 of file io_base.h.
Referenced by AdvanceProgressPhase(), SCH_IO_KICAD_LEGACY::checkpoint(), SCH_IO_CADSTAR_ARCHIVE::ensureLoadedLibrary(), SCH_IO_EAGLE::ensureLoadedLibrary(), PCB_IO_ODBPP::ExportODB(), PCB_IO_IPC2581::generateComponents(), PCB_IO_IPC2581::generatePhyNetGroup(), IO_BASE(), PCB_IO_ALTIUM_CIRCUIT_MAKER::loadBoard(), PCB_IO_ALTIUM_CIRCUIT_STUDIO::loadBoard(), PCB_IO_ALTIUM_DESIGNER::loadBoard(), PCB_IO_CADSTAR_ARCHIVE::loadBoard(), PCB_IO_DIPTRACE::loadBoard(), PCB_IO_EASYEDA::loadBoard(), PCB_IO_EASYEDAPRO::loadBoard(), PCB_IO_EASYEDAPRO_V3::loadBoard(), PCB_IO_FABMASTER::loadBoard(), PCB_IO_KICAD_SEXPR::loadBoard(), PCB_IO_PADS::loadBoard(), PCB_IO_PADS_BINARY::loadBoard(), PCB_IO_SOLIDWORKS::loadBoard(), PCB_IO_ALLEGRO::LoadBoardFromData(), SCH_IO_KICAD_LEGACY::loadFile(), SCH_IO_KICAD_SEXPR::loadFile(), SCH_IO_ORCAD::loadOlbSymbols(), SCH_IO_CADSTAR_ARCHIVE::LoadSchematicFile(), SCH_IO_DIPTRACE::LoadSchematicFile(), SCH_IO_EAGLE::LoadSchematicFile(), SCH_IO_LTSPICE::LoadSchematicFile(), SCH_IO_ORCAD::LoadSchematicFile(), SCH_IO_PADS::LoadSchematicFile(), SCH_IO_ALTIUM::ParseAltiumSch(), PCB_IO_IPC2581::reportPhase(), PCB_IO_IPC2581::SaveBoard(), SetProgressReporter(), SCH_IO_CADSTAR_ARCHIVE::SetProgressReporter(), and PCB_IO_IPC2581::tickProgress().
|
private |
Definition at line 400 of file pcb_io_ipc2581.h.
Referenced by generateBOMSection(), and PCB_IO_IPC2581().
|
protectedinherited |
Reporter to log errors/warnings to, may be nullptr.
Definition at line 238 of file io_base.h.
Referenced by PCB_IO_CADSTAR_ARCHIVE::ensureLoadedLibrary(), SCH_IO_CADSTAR_ARCHIVE::ensureLoadedLibrary(), SCH_IO_GEDA::flushPendingComponent(), PCB_IO_ALTIUM_DESIGNER::FootprintLoad(), SCH_IO_GEDA::getOrLoadSymbol(), SCH_IO_GEDA::importHierarchicalSheet(), IO_BASE(), SCH_IO_PADS::loadBinarySchematicFile(), PCB_IO_ALTIUM_CIRCUIT_MAKER::loadBoard(), PCB_IO_ALTIUM_CIRCUIT_STUDIO::loadBoard(), PCB_IO_ALTIUM_DESIGNER::loadBoard(), PCB_IO_AUTOTRAX::loadBoard(), PCB_IO_CADSTAR_ARCHIVE::loadBoard(), PCB_IO_FABMASTER::loadBoard(), PCB_IO_PADS::loadBoard(), PCB_IO_PADS_BINARY::loadBoard(), PCB_IO_PCAD::loadBoard(), PCB_IO_SOLIDWORKS::loadBoard(), PCB_IO_ALLEGRO::LoadBoardFromData(), PCB_IO_PADS::loadCopperShapes(), PCB_IO_PADS_BINARY::loadCopperShapes(), SCH_IO_GEDA::loadDeferredSheets(), PCB_IO_PADS::loadFootprints(), PCB_IO_PADS_BINARY::loadFootprints(), SCH_IO_ORCAD::loadOlbSymbols(), SCH_IO_ALTIUM::LoadSchematicFile(), SCH_IO_CADSTAR_ARCHIVE::LoadSchematicFile(), SCH_IO_DIPTRACE::LoadSchematicFile(), SCH_IO_GEDA::LoadSchematicFile(), SCH_IO_LTSPICE::LoadSchematicFile(), SCH_IO_ORCAD::LoadSchematicFile(), SCH_IO_PADS::LoadSchematicFile(), PCB_IO_PADS::loadTracksAndVias(), PCB_IO_PADS_BINARY::loadTracksAndVias(), PCB_IO_PADS::loadZones(), PCB_IO_PADS_BINARY::loadZones(), SCH_IO_ALTIUM::ParseLibFile(), SCH_IO_ALTIUM::ParsePowerPort(), SCH_IO_PCAD::populateScreen(), Report(), SCH_IO_ALTIUM::SCH_IO_ALTIUM(), SCH_IO_CADSTAR_ARCHIVE::SCH_IO_CADSTAR_ARCHIVE(), SCH_IO_DIPTRACE::SCH_IO_DIPTRACE(), SCH_IO_EASYEDA::SCH_IO_EASYEDA(), SCH_IO_LTSPICE::SCH_IO_LTSPICE(), SCH_IO_ORCAD::SCH_IO_ORCAD(), SetReporter(), and SCH_IO_CADSTAR_ARCHIVE::SetReporter().
|
private |
Definition at line 377 of file pcb_io_ipc2581.h.
Referenced by SaveBoard().
|
private |
Definition at line 378 of file pcb_io_ipc2581.h.
Referenced by generateContentSection(), generateEcadSection(), included(), SaveBoard(), and suppressed().
|
private |
Definition at line 375 of file pcb_io_ipc2581.h.
Referenced by addPackage(), addSlotCavity(), generateCadLayers(), generateCadSpecs(), generateContentSection(), generateLayerSetNet(), generateStackup(), generateStepSection(), generateXmlHeader(), PCB_IO_IPC2581(), refDesEmitted(), sanitizeId(), and SaveBoard().
|
private |
Definition at line 373 of file pcb_io_ipc2581.h.
Referenced by addLineDesc(), addPadStack(), addPadStack(), addShape(), addShape(), addSlotCavity(), addXY(), ensureBackdrillSpecs(), generateLayerSetDrill(), generateStackup(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 406 of file pcb_io_ipc2581.h.
Referenced by addShape(), generateContentSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 403 of file pcb_io_ipc2581.h.
Referenced by addShape(), generateContentSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 374 of file pcb_io_ipc2581.h.
Referenced by floatVal(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 443 of file pcb_io_ipc2581.h.
Referenced by generateDrillLayers(), generateLayerSetDrill(), and SaveBoard().
|
private |
Definition at line 405 of file pcb_io_ipc2581.h.
Referenced by addShape(), and SaveBoard().
|
private |
Definition at line 384 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), addPadStack(), generateStepSection(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 370 of file pcb_io_ipc2581.h.
Referenced by addAttribute(), appendNode(), insertNode(), insertNode(), insertNodeAfter(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 372 of file pcb_io_ipc2581.h.
Referenced by addCadHeader(), ensureBackdrillSpecs(), generateContentSection(), and SaveBoard().
|
private |
Definition at line 402 of file pcb_io_ipc2581.h.
Referenced by addShape(), and SaveBoard().
|
private |
Definition at line 455 of file pcb_io_ipc2581.h.
Referenced by generateXmlHeader(), PCB_IO_IPC2581(), SaveBoard(), and ~PCB_IO_IPC2581().
|
private |
Definition at line 456 of file pcb_io_ipc2581.h.
Referenced by emittedSections(), generateAvlSection(), generateBOMSection(), generateContentSection(), generateEcadSection(), generateHistorySection(), generateLogisticSection(), PCB_IO_IPC2581(), and SaveBoard().