KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PCB_WRITER_V10 Class Reference

Writes a board or footprint in the KiCad 10.0 file format. More...

#include <pcb_writer_v10.h>

Public Member Functions

 PCB_WRITER_V10 ()
 
void SaveBoard (const wxString &aFileName, BOARD *aBoard)
 
void SaveFootprintFile (const wxString &aFileName, FOOTPRINT *aFootprint)
 

Static Public Attributes

static constexpr int FORMAT_VERSION = 20260206
 

Private Member Functions

void FormatBoardToFormatter (OUTPUTFORMATTER *aOut, BOARD *aBoard)
 
void Format (const BOARD_ITEM *aItem) const
 
void formatSetup (const BOARD *aBoard) const
 
void formatGeneral (const BOARD *aBoard) const
 
void formatBoardLayers (const BOARD *aBoard) const
 
void formatProperties (const BOARD *aBoard) const
 
void formatVariants (const BOARD *aBoard) const
 
void formatHeader (const BOARD *aBoard) const
 
void formatTeardropParameters (const TEARDROP_PARAMETERS &tdParams) const
 
void format (const BOARD *aBoard) const
 
void format (const PCB_DIMENSION_BASE *aDimension) const
 
void format (const PCB_REFERENCE_IMAGE *aBitmap) const
 
void format (const PCB_GROUP *aGroup) const
 
void format (const PCB_SHAPE *aSegment) const
 
void format (const PCB_TARGET *aTarget) const
 
void format (const PCB_POINT *aPoint) const
 
void format (const FOOTPRINT *aFootprint) const
 
void format (const PAD *aPad) const
 
void format (const PCB_BARCODE *aBarcode) const
 
void format (const PCB_TEXT *aText) const
 
void format (const PCB_TEXTBOX *aTextBox) const
 
void format (const PCB_TABLE *aTable) const
 
void format (const PCB_GENERATOR *aGenerator) const
 
void format (const PCB_TRACK *aTrack) const
 
void format (const ZONE *aZone) const
 
void format (const ZONE_LAYER_PROPERTIES &aZoneLayerProperties, int aNestLevel, PCB_LAYER_ID aLayer) const
 
void formatPolyPts (const SHAPE_LINE_CHAIN &aOutline, const FOOTPRINT *aParentFP=nullptr) const
 
void formatRenderCache (const EDA_TEXT *aText) const
 
void formatLayer (PCB_LAYER_ID aLayer, bool aIsKnockout=false) const
 
void formatLayers (LSET aLayerMask, bool aEnumerateLayers, bool aIsZone=false) const
 

Private Attributes

BOARD * m_board
 
OUTPUTFORMATTER * m_out
 
int m_ctl
 

Detailed Description

Writes a board or footprint in the KiCad 10.0 file format.

Extracted from the 10.0.0 release, so it can only emit what that release can read back.

Definition at line 51 of file pcb_writer_v10.h.

Constructor & Destructor Documentation

◆ PCB_WRITER_V10()

PCB_WRITER_V10::PCB_WRITER_V10 ( )
inline

Definition at line 56 of file pcb_writer_v10.h.

References m_board, m_ctl, and m_out.

Member Function Documentation

◆ Format()

◆ format() [1/17]

◆ format() [2/17]

void PCB_WRITER_V10::format ( const FOOTPRINT * aFootprint) const
private

Definition at line 888 of file pcb_writer_v10.cpp.

References FOOTPRINT::AllowMissingCourtyard(), FOOTPRINT::AllowSolderMaskBridges(), KIID_PATH::AsString(), CTL_FOR_BOARD, CTL_OMIT_AT, CTL_OMIT_FOOTPRINT_VERSION, CTL_OMIT_INITIAL_COMMENTS, CTL_OMIT_LIBNAME, CTL_OMIT_PATH, CTL_OMIT_UUIDS, EXPAND_INNER_LAYERS, Format(), format(), FORMAT_VERSION, EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), FormatDouble2Str(), KICAD_FORMAT::LEGACY::FormatEmbeddedFilesV10(), formatInternalUnits(), formatLayer(), KICAD_FORMAT::LEGACY::FormatLibId(), KICAD_FORMAT::LEGACY::FormatUuid(), FP_BOARD_ONLY, FP_DNP, FP_EXCLUDE_FROM_BOM, FP_EXCLUDE_FROM_POS_FILES, FP_SMD, FP_THROUGH_HOLE, JUMPER_GROUP_SET::GetAll(), EMBEDDED_FILES::GetAreFontsEmbedded(), FOOTPRINT::GetAttributes(), COMPONENT_CLASS::GetConstituentClasses(), FOOTPRINT::GetDuplicatePadNumbersAreJumpers(), FOOTPRINT::GetEmbeddedFiles(), FOOTPRINT::GetField(), FOOTPRINT::GetFields(), FOOTPRINT::GetFilters(), FOOTPRINT::GetFPID(), FOOTPRINT::GetInitialComments(), FOOTPRINT::GetKeywords(), FOOTPRINT::GetLayer(), FOOTPRINT::GetLibDescription(), LIB_ID::GetLibItemName(), FOOTPRINT::GetLocalClearance(), FOOTPRINT::GetLocalSolderMaskMargin(), FOOTPRINT::GetLocalSolderPasteMargin(), FOOTPRINT::GetLocalSolderPasteMarginRatio(), FOOTPRINT::GetLocalZoneConnection(), GetMajorMinorVersion(), FOOTPRINT::GetNetTiePadGroups(), FOOTPRINT::GetOrientation(), FOOTPRINT::GetPath(), FOOTPRINT::GetPosition(), FOOTPRINT::GetPrivateLayers(), FOOTPRINT::GetSheetfile(), FOOTPRINT::GetSheetname(), FOOTPRINT::GetStackupLayers(), FOOTPRINT::GetStackupMode(), FOOTPRINT::GetStaticComponentClass(), EDA_TEXT::GetText(), FOOTPRINT::GetUnitInfo(), FOOTPRINT::GetVariants(), FOOTPRINT::GraphicalItems(), group, FOOTPRINT::Groups(), INHERITED, FOOTPRINT::IsDNP(), EMBEDDED_FILES::IsEmpty(), JUMPER_GROUP_SET::IsEmpty(), FOOTPRINT::IsExcludedFromBOM(), FOOTPRINT::IsExcludedFromPosFiles(), FOOTPRINT::IsLocked(), FOOTPRINT::IsNetTie(), FOOTPRINT::IsPlaced(), EDA_ANGLE::IsZero(), FOOTPRINT::JumperPadGroups(), m_ctl, m_out, EDA_ITEM::m_Uuid, FOOTPRINT::Models(), LSET::Name(), pad, FOOTPRINT::Pads(), FOOTPRINT::Points(), FOOTPRINT::Reference(), LSET::Seq(), TO_UTF8, FOOTPRINT::Value(), and FOOTPRINT::Zones().

◆ format() [3/17]

void PCB_WRITER_V10::format ( const PAD * aPad) const
private

Definition at line 1314 of file pcb_writer_v10.cpp.

References _, ANGLE_45, ANGLE_90, ARC, B_Cu, PADSTACK::BackOuterLayers(), PADSTACK::BackPostMachining(), BEZIER, BGA, CASTELLATED, CHAMFERED_RECT, CIRCLE, PADSTACK::Clearance(), CONN, CONVEXHULL, COUNTERBORE, CTL_OMIT_PAD_NETS, LSET::CuStack(), CUSTOM, delta, PADSTACK::DRILL_PROPS::end, F_Cu, FIDUCIAL_GLBL, FIDUCIAL_LOCAL, PADSTACK::ForEachUniqueLayer(), EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), FormatDouble2Str(), formatInternalUnits(), formatLayers(), KICAD_FORMAT::LEGACY::FormatOptBool(), formatPolyPts(), formatTeardropParameters(), KICAD_FORMAT::LEGACY::FormatUuid(), PADSTACK::FRONT_INNER_BACK, PADSTACK::FrontOuterLayers(), PADSTACK::FrontPostMachining(), PAD::GetAnchorPadShape(), PAD::GetAttribute(), BOARD_ITEM::GetBoard(), PAD::GetChamferPositions(), PAD::GetChamferRectRatio(), BOARD::GetCopperLayerCount(), PAD::GetCustomShapeInZoneOpt(), PAD::GetDelta(), PAD::GetDrillShape(), PAD::GetDrillSize(), BOARD::GetEnabledLayers(), BOARD_ITEM::GetFPRelativePosition(), PAD::GetKeepTopBottom(), PAD::GetLayerSet(), PAD::GetLocalClearance(), PAD::GetLocalSolderMaskMargin(), PAD::GetLocalSolderPasteMargin(), PAD::GetLocalSolderPasteMarginRatio(), PAD::GetLocalThermalGapOverride(), PAD::GetLocalThermalSpokeWidthOverride(), PAD::GetLocalZoneConnection(), BOARD_CONNECTED_ITEM::GetNetCode(), BOARD_CONNECTED_ITEM::GetNetname(), PAD::GetNumber(), PAD::GetOffset(), PAD::GetOrientation(), PAD::GetPadToDieDelay(), PAD::GetPadToDieLength(), PAD::GetPinFunction(), PAD::GetPinType(), PAD::GetPrimitives(), PAD::GetProperty(), PAD::GetRemoveUnconnected(), PAD::GetRoundRectRadiusRatio(), PAD::GetShape(), PAD::GetSize(), BOARD_CONNECTED_ITEM::GetTeardropParams(), PAD::GetThermalSpokeAngle(), PAD::GetZoneLayerOverride(), PADSTACK::MASK_LAYER_PROPS::has_solder_mask, HEATSINK, INHERITED, PADSTACK::INNER_LAYERS, isDefaultTeardropParameters(), EDA_ANGLE::IsZero(), m_ctl, m_out, EDA_ITEM::m_Uuid, MAX_CU_LAYERS, MECHANICAL, PADSTACK::Mode(), LSET::Name(), NONE, PADSTACK::NORMAL, NOT_POST_MACHINED, NPTH, OBLONG, SHAPE_POLY_SET::Outline(), OVAL, PAD::Padstack(), POLY, PRESSFIT, PTH, RECT_CHAMFER_BOTTOM_LEFT, RECT_CHAMFER_BOTTOM_RIGHT, RECT_CHAMFER_TOP_LEFT, RECT_CHAMFER_TOP_RIGHT, RECTANGLE, ROUNDRECT, PADSTACK::SecondaryDrill(), SEGMENT, PADSTACK::DRILL_PROPS::size, SMD, PADSTACK::DRILL_PROPS::start, PADSTACK::TertiaryDrill(), TESTPOINT, PADSTACK::ThermalGap(), PADSTACK::ThermalSpokeAngle(), PADSTACK::ThermalSpokeWidth(), THROW_IO_ERROR, TIME, TRAPEZOID, VECTOR2< T >::x, VECTOR2< T >::y, ZLO_FORCE_FLASHED, and PADSTACK::ZoneConnection().

◆ format() [4/17]

◆ format() [5/17]

◆ format() [6/17]

◆ format() [7/17]

◆ format() [8/17]

◆ format() [9/17]

◆ format() [10/17]

◆ format() [11/17]

◆ format() [12/17]

◆ format() [13/17]

◆ format() [14/17]

◆ format() [15/17]

◆ format() [16/17]

void PCB_WRITER_V10::format ( const ZONE * aZone) const
private

Definition at line 2486 of file pcb_writer_v10.cpp.

References _, AREA, EDA_ANGLE::AsDegrees(), chain, ZONE_SETTINGS::CHAMFER, COMPONENT_CLASS, DESIGN_BLOCK, DIAGONAL_EDGE, DIAGONAL_FULL, ZONE_SETTINGS::FILLET, format(), KICAD_FORMAT::LEGACY::FormatBool(), FormatDouble2Str(), formatInternalUnits(), formatLayer(), formatLayers(), formatPolyPts(), KICAD_FORMAT::LEGACY::FormatUuid(), FULL, ZONE::GetAssignedPriority(), BOARD_ITEM::GetBoard(), ZONE::GetBoardOutline(), ZONE::GetBorderHatchPitch(), ZONE::GetCornerRadius(), ZONE::GetCornerSmoothingType(), ZONE::GetDoNotAllowFootprints(), ZONE::GetDoNotAllowPads(), ZONE::GetDoNotAllowTracks(), ZONE::GetDoNotAllowVias(), ZONE::GetDoNotAllowZoneFills(), BOARD::GetEnabledLayers(), ZONE::GetFilledPolysList(), ZONE::GetFillMode(), ZONE::GetFirstLayer(), ZONE::GetHatchBorderAlgorithm(), ZONE::GetHatchGap(), ZONE::GetHatchHoleMinArea(), ZONE::GetHatchOrientation(), ZONE::GetHatchSmoothingLevel(), ZONE::GetHatchSmoothingValue(), ZONE::GetHatchStyle(), ZONE::GetHatchThickness(), ZONE::GetIslandRemovalMode(), ZONE::GetIsRuleArea(), ZONE::GetLayerSet(), ZONE::GetLocalClearance(), ZONE::GetMinIslandArea(), ZONE::GetMinThickness(), BOARD_CONNECTED_ITEM::GetNetCode(), BOARD_CONNECTED_ITEM::GetNetname(), ZONE::GetNumCorners(), ZONE::GetPadConnection(), ZONE::GetPlacementAreaEnabled(), ZONE::GetPlacementAreaSource(), ZONE::GetPlacementAreaSourceType(), ZONE::GetTeardropAreaType(), ZONE::GetThermalReliefGap(), ZONE::GetThermalReliefSpokeWidth(), ZONE::GetZoneName(), GROUP_PLACEMENT, HATCH_PATTERN, ZONE::IsFilled(), ZONE::IsIsland(), BOARD_ITEM::IsLocked(), ZONE::IsOnCopperLayer(), ZONE::IsTeardropArea(), ZONE::LayerProperties(), m_out, EDA_ITEM::m_Uuid, LSET::Name(), NO_HATCH, ZONE_SETTINGS::NO_SMOOTHING, NONE, pcbIUScale, SHAPE_POLY_SET::Polygon(), LSET::Seq(), SHEETNAME, TD_VIAPAD, THERMAL, THROW_IO_ERROR, and THT_THERMAL.

◆ format() [17/17]

void PCB_WRITER_V10::format ( const ZONE_LAYER_PROPERTIES & aZoneLayerProperties,
int aNestLevel,
PCB_LAYER_ID aLayer ) const
private

◆ formatBoardLayers()

void PCB_WRITER_V10::formatBoardLayers ( const BOARD * aBoard) const
private

◆ FormatBoardToFormatter()

void PCB_WRITER_V10::FormatBoardToFormatter ( OUTPUTFORMATTER * aOut,
BOARD * aBoard )
private

Definition at line 155 of file pcb_writer_v10.cpp.

References CTL_FOR_BOARD, Format(), FORMAT_VERSION, GetMajorMinorVersion(), m_board, m_ctl, and m_out.

Referenced by SaveBoard().

◆ formatGeneral()

◆ formatHeader()

void PCB_WRITER_V10::formatHeader ( const BOARD * aBoard) const
private

◆ formatLayer()

void PCB_WRITER_V10::formatLayer ( PCB_LAYER_ID aLayer,
bool aIsKnockout = false ) const
private

Definition at line 256 of file pcb_writer_v10.cpp.

References m_out, and LSET::Name().

Referenced by format(), format(), format(), format(), format(), format(), format(), format(), format(), format(), format(), and format().

◆ formatLayers()

void PCB_WRITER_V10::formatLayers ( LSET aLayerMask,
bool aEnumerateLayers,
bool aIsZone = false ) const
private

◆ formatPolyPts()

◆ formatProperties()

void PCB_WRITER_V10::formatProperties ( const BOARD * aBoard) const
private

Definition at line 464 of file pcb_writer_v10.cpp.

References BOARD::GetProperties(), and m_out.

Referenced by formatHeader().

◆ formatRenderCache()

◆ formatSetup()

◆ formatTeardropParameters()

◆ formatVariants()

void PCB_WRITER_V10::formatVariants ( const BOARD * aBoard) const
private

Definition at line 473 of file pcb_writer_v10.cpp.

References BOARD::GetVariantDescription(), BOARD::GetVariantNames(), and m_out.

Referenced by formatHeader().

◆ SaveBoard()

void PCB_WRITER_V10::SaveBoard ( const wxString & aFileName,
BOARD * aBoard )

◆ SaveFootprintFile()

Member Data Documentation

◆ FORMAT_VERSION

int PCB_WRITER_V10::FORMAT_VERSION = 20260206
staticconstexpr

◆ m_board

BOARD* PCB_WRITER_V10::m_board
private

◆ m_ctl

int PCB_WRITER_V10::m_ctl
private

◆ m_out


The documentation for this class was generated from the following files: