KiCad PCB EDA Suite
Loading...
Searching...
No Matches
IPC2581 Namespace Reference

Classes

struct  CONFLICT
 A requested combination that no legal file can hold. More...
 
struct  RESOLVE_RESULT
 
class  SUPPRESS_SET
 Set of removed attributes. More...
 

Enumerations

enum class  REVISION { B , C }
 Schema revision The two revisions declare different identity constraints. More...
 
enum class  SUPPRESS {
  COMPONENT_REFDES , COMPONENT_PACKAGEREF , PINREF_COMPONENTREF , PAD_PADSTACKDEFREF ,
  BOM_REFDES , BOM_REFDES_LAYERREF , BOM_REFDES_PACKAGEREF , BOM_HEADER_STEPREF ,
  COUNT
}
 Optional attributes to remove when their schema section is absent. More...
 

Functions

bool ModeSupported (MODE aMode, REVISION aRevision)
 True if KiCad can write aMode for aRevision.
 
std::optional< SECTION > SectionForBoardLayer (PCB_LAYER_ID aLayer)
 Schema section that holds the artwork of aLayer.
 
std::optional< SECTION > SectionForLayerFunction (const wxString &aLayerFunction, const wxString &aSide=wxEmptyString)
 Schema section that holds the layers with aLayerFunction.
 
RESOLVE_RESULT ResolveSections (REVISION aRevision, MODE aMode, const SECTION_SET &aRequested)
 Compare aRequested with Table 4 and give the attributes to remove and the conflicts.
 

Enumeration Type Documentation

◆ REVISION

enum class IPC2581::REVISION
strong

Schema revision The two revisions declare different identity constraints.

Enumerator
B 
C 

Definition at line 39 of file ipc2581_function_mode.h.

◆ SUPPRESS

enum class IPC2581::SUPPRESS
strong

Optional attributes to remove when their schema section is absent.

Removal is better than the addition of a section that the user did not request

Enumerator
COMPONENT_REFDES 

Component\refDes.

COMPONENT_PACKAGEREF 

Component@packageRef.

PINREF_COMPONENTREF 

Pad/PinRef@componentRef and LogicalNet/PinRef@componentRef.

PAD_PADSTACKDEFREF 

Pad@padstackDefRef, and the PadStackDef elements themselves.

BOM_REFDES 

Bom/BomItem/RefDes and all its attributes.

BOM_REFDES_LAYERREF 

Bom/BomItem/RefDes@layerRef.

BOM_REFDES_PACKAGEREF 

Bom/BomItem/RefDes@packageRef.

BOM_HEADER_STEPREF 

Bom/BomHeader/StepRef.

COUNT 

Definition at line 50 of file ipc2581_function_mode.h.

Function Documentation

◆ ModeSupported()

bool IPC2581::ModeSupported ( MODE aMode,
REVISION aRevision )

True if KiCad can write aMode for aRevision.

Revision B has no DFX function mode and KiCad has no DFX measurements

Definition at line 70 of file ipc2581_function_mode.cpp.

Referenced by ResolveSections().

◆ ResolveSections()

RESOLVE_RESULT IPC2581::ResolveSections ( REVISION aRevision,
MODE aMode,
const SECTION_SET & aRequested )

Compare aRequested with Table 4 and give the attributes to remove and the conflicts.

This function adds no schema section other than the Y cells of the function mode It removes an attribute when the target section is absent The caller must mask aRequested with the content that the board supplies

Definition at line 162 of file ipc2581_function_mode.cpp.

References _, BOM_HEADER_STEPREF, BOM_REFDES, BOM_REFDES_LAYERREF, BOM_REFDES_PACKAGEREF, C, COMPONENT_PACKAGEREF, COMPONENT_REFDES, ModeSupported(), FAB::NeedsCadData(), FAB::OptionalSections(), PAD_PADSTACKDEFREF, PINREF_COMPONENTREF, FAB::RequiredSections(), result, and FAB::UnsupportedSections().

Referenced by PANEL_FAB_EXPORT_CONTENT::ResolvedSections(), and PCB_IO_IPC2581::SaveBoard().

◆ SectionForBoardLayer()

std::optional< SECTION > IPC2581::SectionForBoardLayer ( PCB_LAYER_ID aLayer)

Schema section that holds the artwork of aLayer.

Definition at line 77 of file ipc2581_function_mode.cpp.

References B_Adhes, B_CrtYd, B_Fab, B_Mask, B_Paste, B_SilkS, Edge_Cuts, F_Adhes, F_CrtYd, F_Fab, F_Mask, F_Paste, F_SilkS, IsCopperLayer(), IsExternalCopperLayer(), IsUserLayer(), and Margin.

Referenced by PCB_IO_IPC2581::layerIncluded().

◆ SectionForLayerFunction()

std::optional< SECTION > IPC2581::SectionForLayerFunction ( const wxString & aLayerFunction,
const wxString & aSide = wxEmptyString )

Schema section that holds the layers with aLayerFunction.

A conductor layer needs aSide to divide the outer copper from the inner copper

Definition at line 122 of file ipc2581_function_mode.cpp.

Referenced by PCB_IO_IPC2581::emittedSections().