|
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 1150 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 1642 of file sch_writer_v9.cpp.
References m_out, and TO_UTF8.
Referenced by Format().
|
private |
Definition at line 1340 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 1118 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 1660 of file sch_writer_v9.cpp.
Referenced by Format().
|
private |
Definition at line 1311 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 1412 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 1327 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 1402 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 1366 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 1186 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(), orientation(), 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 1542 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 1440 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 1506 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().