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. | |
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. | |
virtual BOARD * | LoadBoard (const wxString &aFileName, BOARD *aAppendToMe, 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 either a new BOARD or an existing one. | |
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 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 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. | |
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 | 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 void | Report (const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) |
virtual void | AdvanceProgressPhase () |
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 | 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 | addLocationNode (wxXmlNode *aContentNode, double aX, double aY) |
void | addLocationNode (wxXmlNode *aContentNode, const PAD &aPad, bool aRelative) |
void | addLocationNode (wxXmlNode *aContentNode, const PCB_SHAPE &aShape) |
void | addShape (wxXmlNode *aContentNode, const PCB_SHAPE &aShape) |
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 | 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 | 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 | 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 |
char | m_version |
wxString | m_OEMRef |
wxString | m_mpn |
wxString | m_mfg |
wxString | m_distpn |
wxString | m_dist |
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< 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 |
Definition at line 54 of file pcb_io_ipc2581.h.
|
inline |
Definition at line 57 of file pcb_io_ipc2581.h.
References m_board, m_enterpriseNode, m_last_padstack, m_line_node, m_progress_reporter, m_props, m_scale, m_shape_std_node, m_shape_user_node, m_sigfig, m_total_bytes, m_version, m_xml_doc, and m_xml_root.
|
override |
Definition at line 58 of file pcb_io_ipc2581.cpp.
References clearLoadedFootprints().
|
private |
Definition at line 304 of file pcb_io_ipc2581.cpp.
References m_total_bytes.
Referenced by addCadHeader(), addFillDesc(), addLayerAttributes(), addLineDesc(), addPackage(), addPad(), addPadStack(), addShape(), addSlotCavity(), addXY(), generateAuxilliaryLayers(), generateAvlSection(), generateBOMSection(), generateCadLayers(), generateCadSpecs(), generateComponents(), generateContentSection(), generateContentStackup(), generateDrillLayers(), generateEcadSection(), generateHistorySection(), generateLayerSetDrill(), generateLayerSetNet(), generateLogicalNets(), generateLogisticSection(), generateStackup(), generateStepSection(), and generateXmlHeader().
|
private |
Definition at line 1479 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), generateCadSpecs(), and m_units_str.
Referenced by generateEcadSection().
|
private |
Definition at line 2224 of file pcb_io_ipc2581.cpp.
References addPolygonCutouts(), addPolygonNode(), appendNode(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), and SHAPE_POLY_SET::Polygon().
Referenced by addKnockoutText(), addPackage(), addShape(), and generateLayerSetNet().
|
private |
Definition at line 540 of file pcb_io_ipc2581.cpp.
References addAttribute(), and appendNode().
Referenced by addPolygonNode(), and addShape().
|
private |
Definition at line 615 of file pcb_io_ipc2581.cpp.
References addContourNode(), 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 1494 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 560 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), floatVal(), lineHash(), m_line_dict, m_line_node, m_scale, and name.
Referenced by addOutlineNode(), addPackage(), addPolygonNode(), addShape(), and addText().
|
private |
Definition at line 397 of file pcb_io_ipc2581.cpp.
References addLocationNode(), PADSTACK::ALL_LAYERS, BOARD_ITEM::GetFPRelativePosition(), PAD::GetOffset(), PAD::GetPosition(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
private |
Definition at line 413 of file pcb_io_ipc2581.cpp.
References addLocationNode(), PCB_SHAPE::GetPosition(), EDA_SHAPE::GetRectangleHeight(), EDA_SHAPE::GetRectangleWidth(), and EDA_SHAPE::GetShape().
|
private |
Definition at line 390 of file pcb_io_ipc2581.cpp.
References addXY(), and appendNode().
Referenced by addLocationNode(), addPackage(), addPad(), addPadStack(), addSlotCavity(), addVia(), generateComponents(), generateLayerSetAuxilliary(), and generateLayerSetNet().
|
private |
Definition at line 2178 of file pcb_io_ipc2581.cpp.
References addLineDesc(), addPolygonNode(), SHAPE_LINE_CHAIN::Append(), appendNode(), SHAPE_LINE_CHAIN::BBox(), BOX2< Vec >::GetBottom(), BOX2< Vec >::GetLeft(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetTop(), BOX2< Vec >::Merge(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), 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 2270 of file pcb_io_ipc2581.cpp.
References addAttribute(), addContourNode(), addKnockoutText(), addLineDesc(), addLocationNode(), addOutlineNode(), addPadStack(), addPolygonNode(), addShape(), addText(), ANGLE_0, ANGLE_180, SHAPE_LINE_CHAIN::Append(), appendNode(), EDA_ANGLE::AsDegrees(), B_CrtYd, B_Fab, B_SilkS, FOOTPRINT::Clone(), dummy, ERROR_INSIDE, F_CrtYd, F_Fab, F_SilkS, floatVal(), genString(), EDA_SHAPE::GetShape(), hash_fp_item(), HASH_POS, insertNode(), EDA_ANGLE::Invert(), m_footprint_dict, m_net_pin_dict, name, SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), pad, PCB_SHAPE_T, PCB_TEXT_T, PCB_TEXTBOX_T, pinName(), REL_COORD, text, and SHAPE_LINE_CHAIN::Width().
Referenced by generateComponents().
|
private |
Definition at line 1907 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(), and pinName().
Referenced by generateLayerSetNet().
|
private |
Definition at line 1955 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addShape(), addXY(), PADSTACK::ALL_LAYERS, appendNode(), PAD::FlashLayer(), floatVal(), PAD::GetAttribute(), PAD::GetDrillSize(), PAD::GetDrillSizeX(), PAD::GetDrillSizeY(), PAD::GetLayerSet(), PAD::GetOffset(), BOARD_ITEM::GetParentFootprint(), EDA_SHAPE::GetStart(), PAD::HasDrilledHole(), hash_fp_item(), PAD::HasHole(), insertNodeAfter(), BOARD::IsLayerEnabled(), m_board, m_last_padstack, m_layer_name_map, m_padstack_dict, m_padstacks, m_scale, name, LSET::Seq(), EDA_SHAPE::SetEnd(), EDA_SHAPE::SetStart(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by addPackage(), addPad(), addVia(), and generateLayerSetAuxilliary().
|
private |
Definition at line 2025 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addShape(), appendNode(), PCB_VIA::BottomLayer(), PCB_VIA::FlashLayer(), floatVal(), genLayersString(), genLayerString(), PCB_VIA::GetDrillValue(), PCB_VIA::GetLayerSet(), hash_fp_item(), insertNodeAfter(), PADSTACK::IsCapped(), PADSTACK::IsCovered(), PADSTACK::IsFilled(), BOARD::IsLayerEnabled(), PADSTACK::IsPlugged(), PADSTACK::IsTented(), KiROUND(), m_board, m_last_padstack, m_layer_name_map, m_padstack_dict, m_scale, name, PCB_VIA::Padstack(), LSET::Seq(), EDA_SHAPE::SetEnd(), PCB_VIA::TopLayer(), and UNDEFINED_LAYER.
|
private |
Definition at line 2151 of file pcb_io_ipc2581.cpp.
References addXY(), and appendNode().
Referenced by addContourNode().
|
private |
Definition at line 2101 of file pcb_io_ipc2581.cpp.
References addFillDesc(), addLineDesc(), addXY(), appendNode(), SHAPE_LINE_CHAIN::CPoints(), and SHAPE_LINE_CHAIN::PointCount().
Referenced by addContourNode(), addOutlineNode(), addPackage(), and generateProfile().
|
private |
Definition at line 746 of file pcb_io_ipc2581.cpp.
References std::abs(), addAttribute(), addContourNode(), PADSTACK::ALL_LAYERS, SHAPE_POLY_SET::Append(), appendNode(), B_Mask, B_Paste, chamfer, F_Mask, F_Paste, floatVal(), PAD::GetChamferPositions(), PAD::GetChamferRectRatio(), PAD::GetDelta(), BOARD::GetDesignSettings(), PAD::GetRoundRectCornerRadius(), PAD::GetShape(), PAD::GetSize(), PAD::GetSizeX(), PAD::GetSolderMaskExpansion(), PAD::GetSolderPasteMargin(), hash_fp_item(), SHAPE_POLY_SET::InflateWithLinkedHoles(), KiROUND(), m_board, BOARD_DESIGN_SETTINGS::m_MaxError, m_scale, m_shape_std_node, m_std_shape_dict, PAD::MergePrimitivesAsPolygon(), name, SHAPE_POLY_SET::NewOutline(), RECT_CHAMFER_BOTTOM_LEFT, RECT_CHAMFER_BOTTOM_RIGHT, RECT_CHAMFER_TOP_LEFT, RECT_CHAMFER_TOP_RIGHT, VECTOR2< T >::x, and VECTOR2< T >::y.
|
private |
Definition at line 938 of file pcb_io_ipc2581.cpp.
References std::abs(), addAttribute(), addContourNode(), addFillDesc(), addLineDesc(), addXY(), appendNode(), ARC_HIGH_DEF, floatVal(), EDA_SHAPE::GetBezierC1(), EDA_SHAPE::GetBezierC2(), PCB_SHAPE::GetCenter(), EDA_SHAPE::GetEnd(), EDA_SHAPE::GetFillMode(), STROKE_PARAMS::GetLineStyle(), BEZIER_POLY::GetPoly(), EDA_SHAPE::GetPolyShape(), EDA_SHAPE::GetRadius(), EDA_SHAPE::GetRectangleHeight(), EDA_SHAPE::GetRectangleWidth(), 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::OutlineCount(), and shapeHash().
Referenced by addPackage(), addPad(), addPadStack(), addVia(), generateLayerSetAuxilliary(), and generateLayerSetNet().
|
private |
Definition at line 1132 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addOutlineNode(), PADSTACK::ALL_LAYERS, appendNode(), ERROR_INSIDE, PAD::GetAttribute(), PAD::GetEffectiveShape(), and m_version.
Referenced by generateLayerSetDrill().
|
private |
Definition at line 627 of file pcb_io_ipc2581.cpp.
References addLineDesc(), addXY(), appendNode(), EDA_TEXT::GetAttributes(), EDA_TEXT::GetDrawFont(), EDA_TEXT::GetDrawRotation(), EDA_TEXT::GetEffectiveTextPenWidth(), TEXT_ATTRIBUTES::m_Angle, TEXT_ATTRIBUTES::m_Multiline, and TEXT_ATTRIBUTES::m_StrokeWidth.
Referenced by addPackage(), and generateLayerSetNet().
|
private |
Definition at line 1935 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 289 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(), and generateLayerSetDrill().
|
virtualinherited |
Definition at line 133 of file io_base.cpp.
References _, PROGRESS_REPORTER::AdvancePhase(), PROGRESS_REPORTER::KeepRefreshing(), IO_BASE::m_progressReporter, and THROW_IO_ERROR.
Referenced by EAGLE_BASE::AdvanceProgressPhase().
|
private |
Definition at line 145 of file pcb_io_ipc2581.cpp.
References appendNode().
Referenced by addCadHeader(), addContourNode(), addFillDesc(), addLineDesc(), addLocationNode(), addOutlineNode(), addPackage(), addPad(), addPadStack(), addPolygonCutouts(), addPolygonNode(), addShape(), addSlotCavity(), addText(), addVia(), appendNode(), generateAuxilliaryLayers(), generateAvlSection(), generateBOMSection(), generateCadLayers(), generateCadSpecs(), generateComponents(), generateContentSection(), generateContentStackup(), generateDrillLayers(), generateEcadSection(), generateHistorySection(), generateLayerSetAuxilliary(), generateLayerSetDrill(), generateLayerSetNet(), generateLogicalNets(), generateLogisticSection(), generateProfile(), generateStackup(), and generateStepSection().
|
private |
Definition at line 120 of file pcb_io_ipc2581.cpp.
References m_total_bytes.
|
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 103 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 109 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 115 of file pcb_io_ipc2581.h.
|
private |
Frees the memory allocated for the loaded footprints in m_loaded_footprints.
Definition at line 64 of file pcb_io_ipc2581.cpp.
References m_loaded_footprints.
Referenced by ~PCB_IO_IPC2581().
|
private |
Definition at line 239 of file pcb_io_ipc2581.cpp.
References genString(), FOOTPRINT::GetReference(), m_footprint_refdes_dict, m_footprint_refdes_reverse_dict, and name.
Referenced by addPad(), generateBOMSection(), generateComponents(), and generateLayerSetNet().
|
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, SCH_IO_KICAD_LEGACY, SCH_IO_KICAD_SEXPR, and PCB_IO_KICAD_SEXPR.
Definition at line 46 of file io_base.cpp.
References NOT_IMPLEMENTED.
|
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, SCH_IO_KICAD_LEGACY, SCH_IO_KICAD_SEXPR, PCB_IO_GEDA, PCB_IO_KICAD_LEGACY, and PCB_IO_KICAD_SEXPR.
Definition at line 53 of file io_base.cpp.
References NOT_IMPLEMENTED.
|
private |
Definition at line 273 of file pcb_io_ipc2581.cpp.
References m_sigfig.
Referenced by addLineDesc(), addPackage(), addPad(), addPadStack(), addShape(), addXY(), 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 160 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
|
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_GEDA, PCB_IO_KICAD_LEGACY, and PCB_IO_KICAD_SEXPR.
Definition at line 95 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by PCB_IO::ImportFootprint().
|
virtualinherited |
Check for the existence of a footprint.
Reimplemented in PCB_IO_CADSTAR_ARCHIVE, and PCB_IO_KICAD_SEXPR.
Definition at line 136 of file pcb_io.cpp.
References PCB_IO::FootprintLoad().
|
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_GEDA, PCB_IO_KICAD_LEGACY, and PCB_IO_KICAD_SEXPR.
Definition at line 144 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by PCB_IO::FootprintExists(), PCB_IO::GetEnumeratedFootprint(), and PCB_IO::ImportFootprint().
|
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 152 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
|
private |
Definition at line 1768 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), B_Cu, F_Cu, genLayersString(), genLayerString(), IsFrontLayer(), m_auxilliary_Layers, m_board, name, PCB_VIA_T, TO_UTF8, BOARD::Tracks(), 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 3226 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), PROGRESS_REPORTER::AdvancePhase(), appendNode(), empty(), genString(), PCB_TEXT::GetShownText(), insertNodeAfter(), m_dist, m_distpn, m_enterpriseNode, m_mfg, m_mpn, m_OEMRef_dict, IO_BASE::m_progressReporter, m_xml_root, and name.
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 1200 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), PROGRESS_REPORTER::AdvancePhase(), ANGLE_0, appendNode(), componentName(), BOARD::Footprints(), FP_EXCLUDE_FROM_BOM, genString(), BOARD::GetFileName(), hash_fp_item(), HASH_POS, m_board, m_footprint_dict, m_layer_name_map, m_OEMRef_dict, IO_BASE::m_progressReporter, m_xml_root, REFDES, and REL_COORD.
Referenced by SaveBoard().
|
private |
Definition at line 1638 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLayerAttributes(), appendNode(), BS_ITEM_TYPE_DIELECTRIC, genLayerString(), genString(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP::GetCount(), BOARD::GetDesignSettings(), BOARD_STACKUP_ITEM::GetDielectricLayerId(), BOARD::GetEnabledLayers(), BOARD_STACKUP_ITEM::GetLayerName(), BOARD::GetLayerName(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), BOARD_STACKUP_ITEM::GetSublayersCount(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::GetTypeName(), IsValidLayer(), isValidLayerFor2581(), KEY_CORE, m_board, m_layer_name_map, LSET::Seq(), and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by generateEcadSection().
|
private |
Definition at line 1384 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, floatVal(), genString(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP_ITEM::GetColor(), BOARD_STACKUP::GetCount(), BOARD::GetDesignSettings(), BOARD_STACKUP_ITEM::GetDielectricLayerId(), BOARD_STACKUP_ITEM::GetEpsilonR(), BOARD_STACKUP_ITEM::GetLayerName(), BOARD::GetLayerName(), BOARD_STACKUP::GetList(), BOARD_STACKUP_ITEM::GetLossTangent(), BOARD_STACKUP_ITEM::GetMaterial(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), BOARD_STACKUP_ITEM::GetSublayersCount(), BOARD_STACKUP_ITEM::GetType(), BOARD_STACKUP_ITEM::GetTypeName(), IsValidLayer(), m_board, and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by addCadHeader().
|
private |
Definition at line 2566 of file pcb_io_ipc2581.cpp.
References addAttribute(), addLocationNode(), addPackage(), ANGLE_0, ANGLE_180, appendNode(), EDA_ANGLE::AsDegrees(), componentName(), floatVal(), BOARD::Footprints(), FP_SMD, FP_THROUGH_HOLE, genString(), PCB_TEXT::GetShownText(), EDA_TEXT::GetText(), insertNode(), EDA_ANGLE::Invert(), m_board, m_last_padstack, m_layer_name_map, m_OEMRef, m_OEMRef_dict, m_padstacks, name, and EDA_ANGLE::Normalize().
Referenced by generateStepSection().
|
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 336 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), PROGRESS_REPORTER::AdvancePhase(), appendNode(), generateContentStackup(), genString(), BOARD::GetFileName(), m_board, m_line_node, IO_BASE::m_progressReporter, m_shape_std_node, m_shape_user_node, m_units_str, m_version, and m_xml_root.
Referenced by SaveBoard().
|
private |
Definition at line 460 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), KIGFX::COLOR4D::b, BS_ITEM_TYPE_DIELECTRIC, color, KIGFX::COLOR4D::g, genString(), BOARD::GetDesignSettings(), BOARD::GetLayerName(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), GetStandardColors(), IsPrmSpecified(), KiROUND(), m_board, m_layer_name_map, KIGFX::COLOR4D::r, and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by generateContentSection().
|
private |
Definition at line 1717 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), B_Cu, F_Cu, BOARD::Footprints(), genLayersString(), genLayerString(), m_board, m_drill_layers, m_slot_holes, pad, PCB_VIA_T, BOARD::Tracks(), 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 1363 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), addCadHeader(), PROGRESS_REPORTER::AdvancePhase(), appendNode(), generateAuxilliaryLayers(), generateCadLayers(), generateDrillLayers(), generateStackup(), generateStepSection(), IO_BASE::m_progressReporter, and m_xml_root.
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 1172 of file pcb_io_ipc2581.cpp.
References _, addAttribute(), PROGRESS_REPORTER::AdvancePhase(), appendNode(), GetMajorMinorPatchVersion(), IO_BASE::m_progressReporter, and m_xml_root.
Referenced by SaveBoard().
|
private |
Definition at line 2669 of file pcb_io_ipc2581.cpp.
References BOARD::GetEnabledLayers(), BOARD::GetNetInfo(), m_board, LSET::Seq(), and BOARD::Tracks().
Referenced by generateStepSection().
|
private |
Definition at line 3153 of file pcb_io_ipc2581.cpp.
References addLocationNode(), addPadStack(), addShape(), appendNode(), genLayersString(), genLayerString(), KiROUND(), m_auxilliary_Layers, name, PCB_VIA_T, EDA_SHAPE::SetEnd(), TO_UTF8, UNDEFINED_LAYER, and via.
Referenced by generateStepSection().
|
private |
Definition at line 2784 of file pcb_io_ipc2581.cpp.
References addAttribute(), addSlotCavity(), addXY(), appendNode(), floatVal(), genLayersString(), genString(), hash_fp_item(), m_drill_layers, m_padstack_dict, m_scale, m_slot_holes, pad, PCB_PAD_T, PCB_VIA_T, and via.
Referenced by generateStepSection().
|
private |
Definition at line 2869 of file pcb_io_ipc2581.cpp.
References add_zone, addAttribute(), addContourNode(), addKnockoutText(), addLocationNode(), addPad(), addShape(), addText(), addVia(), appendNode(), componentName(), FlipLayer(), genString(), PCB_TRACK::GetEnd(), PCB_ARC::GetMid(), BOARD_ITEM::GetParentFootprint(), EDA_TEXT::GetShownText(), PCB_TRACK::GetStart(), PCB_TRACK::GetWidth(), PCB_TEXTBOX::IsBorderEnabled(), IsCopperLayer(), FOOTPRINT::IsFlipped(), BOARD_ITEM::IsKnockout(), EDA_TEXT::IsVisible(), m_version, 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, EDA_SHAPE::SetArcGeometry(), EDA_SHAPE::SetEnd(), EDA_SHAPE::SetStart(), EDA_SHAPE::SetWidth(), text, and traceIpc2581.
|
private |
Definition at line 2649 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), genString(), BOARD::GetNetInfo(), NETINFO_LIST::GetNetItem(), NETINFO_ITEM::GetNetname(), m_board, m_net_pin_dict, and pin.
|
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 1151 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), m_enterpriseNode, and m_xml_root.
Referenced by SaveBoard().
|
private |
|
private |
Definition at line 2249 of file pcb_io_ipc2581.cpp.
References addPolygonNode(), appendNode(), BOARD::GetBoardPolygonOutlines(), m_board, SHAPE_POLY_SET::Outline(), and traceIpc2581.
Referenced by generateStepSection().
|
private |
Definition at line 1574 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), BS_ITEM_TYPE_DIELECTRIC, BOARD_STACKUP::BuildBoardThicknessFromStackup(), floatVal(), genString(), BOARD_STACKUP_ITEM::GetBrdLayerId(), BOARD_STACKUP::GetCount(), BOARD::GetDesignSettings(), BOARD_STACKUP_ITEM::GetDielectricLayerId(), BOARD_STACKUP_ITEM::GetLayerName(), BOARD::GetLayerName(), BOARD_STACKUP::GetList(), BOARD_DESIGN_SETTINGS::GetStackupDescriptor(), BOARD_STACKUP_ITEM::GetSublayersCount(), BOARD_STACKUP_ITEM::GetThickness(), BOARD_STACKUP_ITEM::GetType(), IsValidLayer(), m_board, m_scale, m_version, and BOARD_STACKUP::SynchronizeWithBoard().
Referenced by generateEcadSection().
|
private |
Definition at line 1880 of file pcb_io_ipc2581.cpp.
References addAttribute(), appendNode(), BOARD::Footprints(), generateComponents(), generateLayerFeatures(), generateLayerSetAuxilliary(), generateLayerSetDrill(), generateProfile(), genString(), BOARD::GetFileName(), insertNode(), m_board, m_last_padstack, and m_version.
Referenced by generateEcadSection().
|
private |
Creates the XML header for IPC-2581.
Definition at line 311 of file pcb_io_ipc2581.cpp.
References addAttribute(), m_version, and m_xml_doc.
Referenced by SaveBoard().
|
private |
Definition at line 203 of file pcb_io_ipc2581.cpp.
References genString(), BOARD::GetLayerName(), and m_board.
Referenced by addPadStack(), generateAuxilliaryLayers(), generateDrillLayers(), generateLayerSetAuxilliary(), and generateLayerSetDrill().
|
private |
Definition at line 197 of file pcb_io_ipc2581.cpp.
References genString(), BOARD::GetLayerName(), and m_board.
Referenced by addPadStack(), generateAuxilliaryLayers(), generateCadLayers(), generateDrillLayers(), and generateLayerSetAuxilliary().
|
private |
Definition at line 154 of file pcb_io_ipc2581.cpp.
References m_acceptable_chars, m_element_names, m_generated_names, m_version, and name.
Referenced by addPackage(), componentName(), generateAvlSection(), generateBOMSection(), generateCadLayers(), generateCadSpecs(), generateComponents(), generateContentSection(), generateContentStackup(), generateLayerSetDrill(), generateLayerSetNet(), generateLogicalNets(), generateStackup(), generateStepSection(), genLayersString(), genLayerString(), and pinName().
|
inlineoverridevirtual |
Returns board file description for the PCB_IO.
Reimplemented from PCB_IO.
Definition at line 84 of file pcb_io_ipc2581.h.
|
virtualinherited |
A version of FootprintLoad() for use after FootprintEnumerate() for more efficient cache management.
Reimplemented in PCB_IO_KICAD_SEXPR.
Definition at line 127 of file pcb_io.cpp.
References PCB_IO::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 73 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 89 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, and PCB_IO_KICAD_SEXPR.
Definition at line 112 of file io_base.h.
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 168 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 97 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.
Referenced by 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 103 of file pcb_io.cpp.
References _, PCB_IO::FootprintEnumerate(), and PCB_IO::FootprintLoad().
|
private |
Definition at line 110 of file pcb_io_ipc2581.cpp.
References insertNode(), and m_total_bytes.
Referenced by addPackage(), generateComponents(), generateStepSection(), and insertNode().
|
private |
Definition at line 84 of file pcb_io_ipc2581.cpp.
References m_total_bytes.
|
private |
Definition at line 99 of file pcb_io_ipc2581.cpp.
References m_total_bytes.
Referenced by 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, SCH_IO_ALTIUM, SCH_IO_CADSTAR_ARCHIVE, SCH_IO_DATABASE, SCH_IO_EAGLE, SCH_IO_EASYEDA, SCH_IO_EASYEDAPRO, SCH_IO_HTTP_LIB, SCH_IO_KICAD_LEGACY, SCH_IO_KICAD_SEXPR, PCB_IO_ALTIUM_DESIGNER, PCB_IO_CADSTAR_ARCHIVE, PCB_IO_EAGLE, PCB_IO_EASYEDA, PCB_IO_EASYEDAPRO, PCB_IO_GEDA, PCB_IO_KICAD_LEGACY, and PCB_IO_KICAD_SEXPR.
Definition at line 60 of file io_base.cpp.
References NOT_IMPLEMENTED.
|
private |
Definition at line 1488 of file pcb_io_ipc2581.cpp.
References F_Cu, UNDEFINED_LAYER, and User_9.
Referenced by generateCadLayers().
|
private |
Definition at line 445 of file pcb_io_ipc2581.cpp.
References hash_combine(), and hash_val().
Referenced by addLineDesc().
|
virtualinherited |
Load information from some input file format that this PCB_IO implementation knows about into either a new BOARD or an existing one.
This may be used to load an entire new BOARD, or to augment an existing one if aAppendToMe is not NULL.
aFileName | is the name of the file to use as input and may be foreign in nature or native in nature. |
aAppendToMe | is an existing BOARD to append to, but if NULL then this means "do not append, rather load anew". |
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. |
Reimplemented in PCB_IO_ALTIUM_CIRCUIT_STUDIO, PCB_IO_ALTIUM_CIRCUIT_MAKER, PCB_IO_ALTIUM_DESIGNER, PCB_IO_SOLIDWORKS, CLIPBOARD_IO, PCB_IO_CADSTAR_ARCHIVE, PCB_IO_EAGLE, PCB_IO_EASYEDA, PCB_IO_EASYEDAPRO, PCB_IO_FABMASTER, PCB_IO_KICAD_LEGACY, PCB_IO_KICAD_SEXPR, and PCB_IO_PCAD.
Definition at line 74 of file pcb_io.cpp.
References NOT_IMPLEMENTED.
Referenced by PCB_CONTROL::AppendBoard().
|
private |
Definition at line 212 of file pcb_io_ipc2581.cpp.
References genString(), PAD::GetAttribute(), PAD::GetNumber(), FOOTPRINT::GetPadCount(), BOARD_ITEM::GetParentFootprint(), name, and FOOTPRINT::Pads().
Referenced by addPackage(), and addPad().
|
virtualinherited |
Definition at line 124 of file io_base.cpp.
References IO_BASE::m_reporter, and REPORTER::Report().
Referenced by SCH_IO_EAGLE::loadInstance(), SCH_IO_EAGLE::loadLibrary(), and EAGLE_BASE::Report().
|
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 3319 of file pcb_io_ipc2581.cpp.
References _, PROGRESS_REPORTER::AdvancePhase(), PROGRESS_REPORTER::BeginPhase(), generateAvlSection(), generateBOMSection(), generateContentSection(), generateEcadSection(), generateHistorySection(), generateLogisticSection(), generateXmlHeader(), m_acceptable_chars, m_board, m_dist, m_distpn, m_mfg, m_mpn, m_OEMRef, IO_BASE::m_progressReporter, m_scale, m_sigfig, m_total_bytes, m_units_str, m_version, m_xml_doc, m_xml_root, PCB_IU_PER_MM, PROGRESS_REPORTER::Report(), PROGRESS_REPORTER::SetCurrentProgress(), PROGRESS_REPORTER::SetNumPhases(), and wxFileOutputStreamWithProgress::SetProgressCallback().
|
inlinevirtualinherited |
Set an optional progress reporter.
Reimplemented in SCH_IO_CADSTAR_ARCHIVE.
Definition at line 89 of file io_base.h.
Referenced by PCB_CONTROL::AppendBoard().
|
inlinevirtualinherited |
Registers a KIDIALOG callback for collecting info from the user.
Definition at line 97 of file pcb_io.h.
Referenced by PCB_CONTROL::AppendBoard().
|
inlinevirtualinherited |
Set an optional reporter for warnings/errors.
Reimplemented in SCH_IO_CADSTAR_ARCHIVE.
|
private |
Definition at line 454 of file pcb_io_ipc2581.cpp.
References hash_fp_item(), HASH_POS, and REL_COORD.
Referenced by addShape().
|
private |
Definition at line 345 of file pcb_io_ipc2581.h.
Referenced by genString(), and SaveBoard().
|
private |
Definition at line 338 of file pcb_io_ipc2581.h.
Referenced by generateAuxilliaryLayers(), and generateLayerSetAuxilliary().
|
private |
Definition at line 296 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), addShape(), generateAuxilliaryLayers(), generateBOMSection(), generateCadLayers(), generateCadSpecs(), generateComponents(), generateContentSection(), generateContentStackup(), generateDrillLayers(), generateLayerFeatures(), generateLogicalNets(), generateProfile(), generateStackup(), generateStepSection(), genLayersString(), genLayerString(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 290 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
private |
Definition at line 289 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
private |
Definition at line 332 of file pcb_io_ipc2581.h.
Referenced by generateDrillLayers(), and generateLayerSetDrill().
|
mutableprivate |
Definition at line 342 of file pcb_io_ipc2581.h.
Referenced by genString().
|
private |
Definition at line 294 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), generateLogisticSection(), and PCB_IO_IPC2581().
|
private |
Definition at line 314 of file pcb_io_ipc2581.h.
Referenced by addPackage(), and generateBOMSection().
|
private |
Definition at line 317 of file pcb_io_ipc2581.h.
Referenced by componentName().
|
private |
Definition at line 320 of file pcb_io_ipc2581.h.
Referenced by componentName().
|
mutableprivate |
Definition at line 343 of file pcb_io_ipc2581.h.
Referenced by genString().
|
private |
Definition at line 311 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), generateComponents(), generateStepSection(), and PCB_IO_IPC2581().
|
private |
Definition at line 329 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), generateBOMSection(), generateCadLayers(), generateComponents(), and generateContentStackup().
|
private |
Definition at line 306 of file pcb_io_ipc2581.h.
Referenced by addLineDesc().
|
private |
Definition at line 307 of file pcb_io_ipc2581.h.
Referenced by addLineDesc(), generateContentSection(), and PCB_IO_IPC2581().
|
private |
Definition at line 297 of file pcb_io_ipc2581.h.
Referenced by clearLoadedFootprints(), and GetImportedCachedLibraryFootprints().
|
private |
Definition at line 288 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
private |
Definition at line 287 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), and SaveBoard().
|
protectedinherited |
|
private |
Definition at line 326 of file pcb_io_ipc2581.h.
Referenced by addPackage(), and generateLogicalNets().
|
private |
Definition at line 286 of file pcb_io_ipc2581.h.
Referenced by generateComponents(), and SaveBoard().
|
private |
Definition at line 323 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), generateBOMSection(), and generateComponents().
|
private |
Definition at line 309 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), and generateLayerSetDrill().
|
private |
Definition at line 310 of file pcb_io_ipc2581.h.
Referenced by addPadStack(), and generateComponents().
|
private |
Definition at line 340 of file pcb_io_ipc2581.h.
Referenced by PCB_IO_IPC2581().
|
protectedinherited |
Progress reporter to track the progress of the operation, may be nullptr.
Definition at line 223 of file io_base.h.
Referenced by IO_BASE::AdvanceProgressPhase(), SCH_IO_KICAD_LEGACY::checkpoint(), SCH_IO_EAGLE::ensureLoadedLibrary(), SCH_IO_CADSTAR_ARCHIVE::ensureLoadedLibrary(), PCB_IO_ODBPP::ExportODB(), generateAvlSection(), generateBOMSection(), generateContentSection(), generateEcadSection(), generateHistorySection(), PCB_IO_ALTIUM_CIRCUIT_STUDIO::LoadBoard(), PCB_IO_ALTIUM_CIRCUIT_MAKER::LoadBoard(), PCB_IO_ALTIUM_DESIGNER::LoadBoard(), PCB_IO_SOLIDWORKS::LoadBoard(), PCB_IO_CADSTAR_ARCHIVE::LoadBoard(), PCB_IO_EASYEDA::LoadBoard(), PCB_IO_EASYEDAPRO::LoadBoard(), PCB_IO_FABMASTER::LoadBoard(), PCB_IO_KICAD_SEXPR::LoadBoard(), SCH_IO_KICAD_LEGACY::loadFile(), SCH_IO_KICAD_SEXPR::loadFile(), SCH_IO_CADSTAR_ARCHIVE::LoadSchematicFile(), SCH_IO_EAGLE::LoadSchematicFile(), SCH_IO_LTSPICE::LoadSchematicFile(), SCH_IO_ALTIUM::ParseAltiumSch(), SaveBoard(), and SCH_IO_CADSTAR_ARCHIVE::SetProgressReporter().
|
private |
Definition at line 298 of file pcb_io_ipc2581.h.
Referenced by PCB_IO_IPC2581().
|
protectedinherited |
Reporter to log errors/warnings to, may be nullptr.
Definition at line 220 of file io_base.h.
Referenced by SCH_IO_CADSTAR_ARCHIVE::ensureLoadedLibrary(), PCB_IO_ALTIUM_DESIGNER::FootprintLoad(), PCB_IO_ALTIUM_CIRCUIT_STUDIO::LoadBoard(), PCB_IO_ALTIUM_CIRCUIT_MAKER::LoadBoard(), PCB_IO_ALTIUM_DESIGNER::LoadBoard(), PCB_IO_SOLIDWORKS::LoadBoard(), SCH_IO_ALTIUM::LoadSchematicFile(), SCH_IO_CADSTAR_ARCHIVE::LoadSchematicFile(), SCH_IO_LTSPICE::LoadSchematicFile(), SCH_IO_ALTIUM::ParsePowerPort(), PCB_IO_ALTIUM_DESIGNER::PCB_IO_ALTIUM_DESIGNER(), PCB_IO_SOLIDWORKS::PCB_IO_SOLIDWORKS(), IO_BASE::Report(), SCH_IO_ALTIUM::SCH_IO_ALTIUM(), SCH_IO_CADSTAR_ARCHIVE::SCH_IO_CADSTAR_ARCHIVE(), SCH_IO_EAGLE::SCH_IO_EAGLE(), SCH_IO_EASYEDA::SCH_IO_EASYEDA(), SCH_IO_EASYEDAPRO::SCH_IO_EASYEDAPRO(), SCH_IO_LTSPICE::SCH_IO_LTSPICE(), and SCH_IO_CADSTAR_ARCHIVE::SetReporter().
|
private |
Definition at line 283 of file pcb_io_ipc2581.h.
Referenced by addLineDesc(), addPadStack(), addShape(), addXY(), generateLayerSetDrill(), generateStackup(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 304 of file pcb_io_ipc2581.h.
Referenced by addShape(), generateContentSection(), and PCB_IO_IPC2581().
|
private |
Definition at line 301 of file pcb_io_ipc2581.h.
Referenced by addShape(), generateContentSection(), and PCB_IO_IPC2581().
|
private |
Definition at line 284 of file pcb_io_ipc2581.h.
Referenced by floatVal(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 335 of file pcb_io_ipc2581.h.
Referenced by generateDrillLayers(), and generateLayerSetDrill().
|
private |
Definition at line 303 of file pcb_io_ipc2581.h.
Referenced by addShape().
|
private |
Definition at line 280 of file pcb_io_ipc2581.h.
Referenced by addAttribute(), appendNode(), insertNode(), insertNodeAfter(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 282 of file pcb_io_ipc2581.h.
Referenced by addCadHeader(), generateContentSection(), and SaveBoard().
|
private |
Definition at line 300 of file pcb_io_ipc2581.h.
Referenced by addShape().
|
private |
Definition at line 285 of file pcb_io_ipc2581.h.
Referenced by addSlotCavity(), generateContentSection(), generateLayerSetNet(), generateStackup(), generateStepSection(), generateXmlHeader(), genString(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 347 of file pcb_io_ipc2581.h.
Referenced by generateXmlHeader(), PCB_IO_IPC2581(), and SaveBoard().
|
private |
Definition at line 348 of file pcb_io_ipc2581.h.
Referenced by generateAvlSection(), generateBOMSection(), generateContentSection(), generateEcadSection(), generateHistorySection(), generateLogisticSection(), PCB_IO_IPC2581(), and SaveBoard().