|
KiCad PCB EDA Suite
|
Writes a schematic or symbol library in the KiCad 9.0 file format. More...
#include <sch_writer_v9.h>
Public Member Functions | |
| SCH_WRITER_V9 () | |
| void | SaveSchematicFile (const wxString &aFileName, SCH_SHEET *aSheet, SCHEMATIC *aSchematic) |
| void | SaveSymbolLibrary (const wxString &aFileName, const std::vector< LIB_SYMBOL * > &aSymbols) |
Static Public Attributes | |
| static constexpr int | FORMAT_VERSION = 20250114 |
| static constexpr int | SYMBOL_LIB_VERSION = 20241209 |
Private Member Functions | |
| void | Format (SCH_SHEET *aSheet) |
| void | saveSymbol (SCH_SYMBOL *aSymbol, const SCHEMATIC &aSchematic, const SCH_SHEET_LIST &aSheetList, bool aForClipboard, const SCH_SHEET_PATH *aRelativePath=nullptr) |
| void | saveField (SCH_FIELD *aField) |
| void | saveBitmap (const SCH_BITMAP &aBitmap) |
| void | saveSheet (SCH_SHEET *aSheet, const SCH_SHEET_LIST &aSheetList) |
| void | saveJunction (SCH_JUNCTION *aJunction) |
| void | saveNoConnect (SCH_NO_CONNECT *aNoConnect) |
| void | saveBusEntry (SCH_BUS_ENTRY_BASE *aBusEntry) |
| void | saveShape (SCH_SHAPE *aShape) |
| void | saveRuleArea (SCH_RULE_AREA *aRuleArea) |
| void | saveLine (SCH_LINE *aLine) |
| void | saveText (SCH_TEXT *aText) |
| void | saveTextBox (SCH_TEXTBOX *aTextBox) |
| void | saveTable (SCH_TABLE *aTable) |
| void | saveBusAlias (std::shared_ptr< BUS_ALIAS > aAlias) |
| void | saveInstances (const std::vector< SCH_SHEET_INSTANCE > &aInstances) |
Private Attributes | |
| SCHEMATIC * | m_schematic |
| OUTPUTFORMATTER * | m_out |
Writes a schematic or symbol library in the KiCad 9.0 file format.
Extracted from the 9.0.0 release, so it can only emit what that release can read back.
Definition at line 49 of file sch_writer_v9.h.
|
inline |
Definition at line 55 of file sch_writer_v9.h.
References m_out, and m_schematic.
|
private |
Definition at line 743 of file sch_writer_v9.cpp.
References FORMAT_VERSION, KICAD_FORMAT::LEGACY::FormatBool(), KICAD_FORMAT::LEGACY::FormatEmbeddedFilesV9(), KICAD_FORMAT::LEGACY::FormatPageV9(), KICAD_FORMAT::LEGACY::FormatTitle(), KICAD_FORMAT::LEGACY::FormatUuid(), SCH_SCREEN::GetLibSymbols(), GetMajorMinorVersion(), SCH_SCREEN::GetPageSettings(), SCH_SHEET::GetRootInstance(), SCH_SHEET::GetScreen(), SCH_SCREEN::GetTitleBlock(), SCH_SCREEN::GetUuid(), SCH_SHEET::HasRootInstance(), SCH_SCREEN::Items(), libSaveSymbol(), m_out, m_schematic, EDA_ITEM::m_Uuid, saveBitmap(), saveBusAlias(), saveBusEntry(), saveInstances(), saveJunction(), saveLine(), saveNoConnect(), saveRuleArea(), saveShape(), saveSheet(), saveSymbol(), saveTable(), saveText(), saveTextBox(), SCH_BITMAP_T, SCH_BUS_BUS_ENTRY_T, SCH_BUS_WIRE_ENTRY_T, SCH_DIRECTIVE_LABEL_T, SCH_GLOBAL_LABEL_T, SCH_HIER_LABEL_T, SCH_JUNCTION_T, SCH_LABEL_T, SCH_LINE_T, SCH_MARKER_T, SCH_NO_CONNECT_T, SCH_RULE_AREA_T, SCH_SHAPE_T, SCH_SHEET_T, SCH_SYMBOL_T, SCH_TABLE_T, SCH_TEXT_T, SCH_TEXTBOX_T, and EDA_ITEM::Type().
Referenced by SaveSchematicFile().
|
private |
Definition at line 1144 of file sch_writer_v9.cpp.
References FORMAT_VERSION, EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStreamData(), KICAD_FORMAT::LEGACY::FormatUuid(), REFERENCE_IMAGE::GetImage(), BITMAP_BASE::GetImageData(), REFERENCE_IMAGE::GetImageScale(), REFERENCE_IMAGE::GetPosition(), BITMAP_BASE::GetPPI(), SCH_BITMAP::GetReferenceImage(), image, m_out, EDA_ITEM::m_Uuid, BITMAP_BASE::SaveImageData(), scale, schIUScale, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
|
private |
Definition at line 1636 of file sch_writer_v9.cpp.
References m_out, and TO_UTF8.
Referenced by Format().
|
private |
Definition at line 1334 of file sch_writer_v9.cpp.
References EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), KICAD_FORMAT::LEGACY::FormatUuid(), SCH_ITEM::GetClass(), SCH_BUS_ENTRY_BASE::GetEnd(), SCH_BUS_ENTRY_BASE::GetPosition(), SCH_BUS_ENTRY_BASE::GetSize(), SCH_BUS_ENTRY_BASE::GetStroke(), LAYER_BUS, m_out, EDA_ITEM::m_Uuid, saveLine(), schIUScale, SCH_LINE::SetEndPoint(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
|
private |
Definition at line 1112 of file sch_writer_v9.cpp.
References SCH_FIELD::CanAutoplace(), DEFAULT_SIZE_TEXT, EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), formatEdaTextV9(), EDA_UNIT_UTILS::FormatInternalUnits(), SCH_FIELD::GetName(), SCH_FIELD::GetPosition(), SCH_FIELD::GetText(), EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextHeight(), SCH_FIELD::GetUntranslatedName(), isDefaultFormattingV9(), SCH_FIELD::IsMandatory(), SCH_FIELD::IsNameShown(), SCH_ITEM::IsPrivate(), m_out, schIUScale, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by saveSheet(), saveSymbol(), and saveText().
|
private |
Definition at line 1654 of file sch_writer_v9.cpp.
Referenced by Format().
|
private |
Definition at line 1305 of file sch_writer_v9.cpp.
References KIGFX::COLOR4D::a, KIGFX::COLOR4D::b, FormatDouble2Str(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatUuid(), KIGFX::COLOR4D::g, SCH_JUNCTION::GetColor(), SCH_JUNCTION::GetDiameter(), SCH_JUNCTION::GetPosition(), KiROUND(), m_out, EDA_ITEM::m_Uuid, KIGFX::COLOR4D::r, schIUScale, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
|
private |
Definition at line 1406 of file sch_writer_v9.cpp.
References EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), KICAD_FORMAT::LEGACY::FormatUuid(), SCH_LINE::GetEndPoint(), SCH_ITEM::GetLayer(), SCH_LINE::GetStartPoint(), SCH_LINE::GetStroke(), LAYER_BUS, LAYER_NOTES, LAYER_WIRE, LayerName(), m_out, EDA_ITEM::m_Uuid, schIUScale, TO_UTF8, UNIMPLEMENTED_FOR, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format(), and saveBusEntry().
|
private |
Definition at line 1321 of file sch_writer_v9.cpp.
References EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatUuid(), SCH_NO_CONNECT::GetPosition(), m_out, EDA_ITEM::m_Uuid, schIUScale, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
|
private |
Definition at line 1396 of file sch_writer_v9.cpp.
References m_out, and saveShape().
Referenced by Format().
| void SCH_WRITER_V9::SaveSchematicFile | ( | const wxString & | aFileName, |
| SCH_SHEET * | aSheet, | ||
| SCHEMATIC * | aSchematic ) |
Definition at line 710 of file sch_writer_v9.cpp.
References PRETTIFIED_FILE_OUTPUTFORMATTER::Finish(), Format(), m_out, and m_schematic.
Referenced by SaveSchematicForTarget().
|
private |
Definition at line 1360 of file sch_writer_v9.cpp.
References ARC, BEZIER, CIRCLE, formatArc(), formatBezier(), formatCircle(), formatPoly(), formatRect(), EDA_SHAPE::GetFillColor(), EDA_SHAPE::GetFillMode(), EDA_SHAPE::GetShape(), SCH_SHAPE::GetStroke(), m_out, EDA_ITEM::m_Uuid, POLY, RECTANGLE, EDA_SHAPE::SHAPE_T_asString(), and UNIMPLEMENTED_FOR.
Referenced by Format(), and saveRuleArea().
|
private |
Definition at line 1180 of file sch_writer_v9.cpp.
References KIGFX::COLOR4D::a, AUTOPLACE_AUTO, AUTOPLACE_MANUAL, KIGFX::COLOR4D::b, effectiveRootUuid(), EscapedUTF8(), EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), formatEdaTextV9(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), KICAD_FORMAT::LEGACY::FormatUuid(), KIGFX::COLOR4D::g, SCH_SHEET::GetBackgroundColor(), SCH_SHEET::GetBorderColor(), SCH_SHEET::GetBorderWidth(), SCH_SHEET::GetDNP(), SCH_SHEET::GetExcludedFromBoard(), SCH_SHEET::GetExcludedFromBOM(), SCH_SHEET::GetExcludedFromSim(), SCH_SHEET::GetFields(), SCH_ITEM::GetFieldsAutoplaced(), SCH_SHEET::GetInstances(), SCH_SHEET::GetPins(), SCH_SHEET::GetPosition(), SCH_SHEET_LIST::GetSheetPathByKIIDPath(), getSheetPinAngle(), getSheetPinShapeToken(), SCH_SHEET::GetSize(), KiROUND(), m_out, m_schematic, EDA_ITEM::m_Uuid, path, pin, KIGFX::COLOR4D::r, saveField(), schIUScale, STROKE_PARAMS::SetWidth(), SOLID, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
|
private |
Definition at line 876 of file sch_writer_v9.cpp.
References ANGLE_0, ANGLE_180, ANGLE_270, ANGLE_90, KIID_PATH::AsString(), AUTOPLACE_AUTO, AUTOPLACE_MANUAL, DEMORGAN, effectiveRootUuid(), FOOTPRINT, EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatLibId(), KICAD_FORMAT::LEGACY::FormatUuid(), SCH_ITEM::GetBodyStyle(), SCH_SYMBOL::GetDNP(), SCH_SYMBOL::GetExcludedFromBoard(), SCH_SYMBOL::GetExcludedFromBOM(), SCH_SYMBOL::GetExcludedFromSim(), SCH_SYMBOL::GetField(), SCH_SYMBOL::GetFields(), SCH_ITEM::GetFieldsAutoplaced(), SCH_SYMBOL::GetInstance(), SCH_SYMBOL::GetInstances(), SCH_SYMBOL::GetLibId(), SCH_SYMBOL::GetOrientation(), EDA_ITEM::GetParent(), SCH_SYMBOL::GetPosition(), SCH_SYMBOL::GetPrefix(), SCH_SYMBOL::GetRawPins(), SCH_SYMBOL::GetSchSymbolLibraryName(), SCH_SHEET_LIST::GetSheetPathByKIIDPath(), SCH_FIELD::GetText(), m_out, SCH_SYMBOL_INSTANCE::m_Reference, m_schematic, SCH_SYMBOL_INSTANCE::m_Unit, EDA_ITEM::m_Uuid, KIID_PATH::MakeRelativeTo(), SCH_SHEET_PATH::Path(), path, pin, REFERENCE, saveField(), schIUScale, SYM_MIRROR_X, SYM_MIRROR_Y, SYM_ORIENT_180, SYM_ORIENT_270, SYM_ORIENT_90, toUTFTildaText(), SCH_SYMBOL::UseLibIdLookup(), VALUE, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
| void SCH_WRITER_V9::SaveSymbolLibrary | ( | const wxString & | aFileName, |
| const std::vector< LIB_SYMBOL * > & | aSymbols ) |
Definition at line 725 of file sch_writer_v9.cpp.
References PRETTIFIED_FILE_OUTPUTFORMATTER::Finish(), GetMajorMinorVersion(), libSaveSymbol(), OUTPUTFORMATTER::Print(), and SYMBOL_LIB_VERSION.
Referenced by SaveSymbolLibraryForTarget().
|
private |
Definition at line 1536 of file sch_writer_v9.cpp.
References SCH_TABLE::Clone(), SCH_TABLE::DeleteMarkedCells(), KICAD_FORMAT::LEGACY::FormatBool(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), SCH_TABLE::GetBorderStroke(), SCH_TABLE::GetCell(), SCH_TABLE::GetCells(), SCH_TABLE::GetColCount(), SCH_TABLE::GetColWidth(), EDA_ITEM::GetFlags(), SCH_TABLE::GetRowCount(), SCH_TABLE::GetRowHeight(), SCH_TABLE::GetSeparatorsStroke(), EDA_ITEM::IsSelected(), m_out, saveTextBox(), schIUScale, SCH_TABLE::SetColCount(), SCH_TABLE::SetColWidth(), EDA_ITEM::SetFlags(), SCH_TABLE::SetRowHeight(), SKIP_STRUCT, SCH_TABLE::StrokeColumns(), SCH_TABLE::StrokeExternal(), SCH_TABLE::StrokeHeaderSeparator(), SCH_TABLE::StrokeRows(), and STRUCT_DELETED.
Referenced by Format().
|
private |
Definition at line 1434 of file sch_writer_v9.cpp.
References ANGLE_180, AUTOPLACE_AUTO, AUTOPLACE_MANUAL, SPIN_STYLE::BOTTOM, flag, EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), formatEdaTextV9(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatUuid(), SCH_TEXT::GetExcludedFromSim(), SCH_LABEL_BASE::GetFields(), SCH_ITEM::GetFieldsAutoplaced(), SCH_TEXT::GetPosition(), SCH_LABEL_BASE::GetShape(), getSheetPinShapeToken(), SCH_LABEL_BASE::GetSpinStyle(), EDA_TEXT::GetText(), EDA_TEXT::GetTextAngle(), getTextTypeToken(), SPIN_STYLE::LEFT, m_out, EDA_ITEM::m_Uuid, SPIN_STYLE::RIGHT, saveField(), SCH_DIRECTIVE_LABEL_T, SCH_GLOBAL_LABEL_T, SCH_HIER_LABEL_T, SCH_TEXT_T, schIUScale, EDA_ITEM::Type(), SPIN_STYLE::UP, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
|
private |
Definition at line 1500 of file sch_writer_v9.cpp.
References EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), formatEdaTextV9(), formatFill(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), KICAD_FORMAT::LEGACY::FormatUuid(), EDA_SHAPE::GetEnd(), SCH_TEXTBOX::GetExcludedFromSim(), EDA_SHAPE::GetFillColor(), EDA_SHAPE::GetFillMode(), SCH_TEXTBOX::GetMarginBottom(), SCH_TEXTBOX::GetMarginLeft(), SCH_TEXTBOX::GetMarginRight(), SCH_TEXTBOX::GetMarginTop(), EDA_SHAPE::GetStart(), SCH_SHAPE::GetStroke(), EDA_TEXT::GetText(), EDA_TEXT::GetTextAngle(), m_out, EDA_ITEM::m_Uuid, SCH_TABLECELL_T, schIUScale, EDA_ITEM::Type(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format(), and saveTable().
|
staticconstexpr |
Definition at line 52 of file sch_writer_v9.h.
Referenced by Format(), saveBitmap(), and SaveSchematicForTarget().
|
private |
Definition at line 100 of file sch_writer_v9.h.
Referenced by Format(), saveBitmap(), saveBusAlias(), saveBusEntry(), saveField(), saveInstances(), saveJunction(), saveLine(), saveNoConnect(), saveRuleArea(), SaveSchematicFile(), saveShape(), saveSheet(), saveSymbol(), saveTable(), saveText(), saveTextBox(), and SCH_WRITER_V9().
|
private |
Definition at line 99 of file sch_writer_v9.h.
Referenced by Format(), SaveSchematicFile(), saveSheet(), saveSymbol(), and SCH_WRITER_V9().
|
staticconstexpr |
Definition at line 53 of file sch_writer_v9.h.
Referenced by SaveSymbolLibrary(), and SaveSymbolLibraryForTarget().