|
KiCad PCB EDA Suite
|
Writes a schematic or symbol library in the KiCad 10.0 file format. More...
#include <sch_writer_v10.h>
Public Member Functions | |
| SCH_WRITER_V10 () | |
| 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 = 20260306 |
| static constexpr int | SYMBOL_LIB_VERSION = 20251024 |
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 | saveGroup (SCH_GROUP *aGroup) |
| 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 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 48 of file sch_writer_v10.h.
|
inline |
Definition at line 54 of file sch_writer_v10.h.
References m_out, and m_schematic.
|
private |
Definition at line 781 of file sch_writer_v10.cpp.
References FORMAT_VERSION, KICAD_FORMAT::LEGACY::FormatBool(), KICAD_FORMAT::LEGACY::FormatEmbeddedFilesV10(), KICAD_FORMAT::LEGACY::FormatPageV10(), 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(), saveBusEntry(), saveGroup(), 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_GROUP_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 1235 of file sch_writer_v10.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 1465 of file sch_writer_v10.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 1201 of file sch_writer_v10.cpp.
References SCH_FIELD::CanAutoplace(), DEFAULT_SIZE_TEXT, EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatTextV10(), SCH_FIELD::GetName(), SCH_FIELD::GetPosition(), SCH_FIELD::GetText(), EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextHeight(), SCH_FIELD::GetUntranslatedName(), KICAD_FORMAT::LEGACY::IsDefaultTextV10(), SCH_FIELD::IsMandatory(), SCH_FIELD::IsNameShown(), SCH_ITEM::IsPrivate(), EDA_TEXT::IsVisible(), m_out, schIUScale, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by saveSheet(), saveSymbol(), and saveText().
|
private |
Definition at line 1776 of file sch_writer_v10.cpp.
References KICAD_FORMAT::LEGACY::FormatBool(), KICAD_FORMAT::LEGACY::FormatLibId(), KICAD_FORMAT::LEGACY::FormatUuid(), EDA_GROUP::GetDesignBlockLibId(), EDA_GROUP::GetItems(), EDA_GROUP::GetName(), EDA_GROUP::HasDesignBlockLink(), SCH_ITEM::IsLocked(), m_out, and EDA_ITEM::m_Uuid.
Referenced by Format().
|
private |
Definition at line 1809 of file sch_writer_v10.cpp.
Referenced by Format().
|
private |
Definition at line 1436 of file sch_writer_v10.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 1544 of file sch_writer_v10.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 1452 of file sch_writer_v10.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 1527 of file sch_writer_v10.cpp.
References KICAD_FORMAT::LEGACY::FormatBool(), SCH_RULE_AREA::GetDNP(), SCH_RULE_AREA::GetExcludedFromBoard(), SCH_RULE_AREA::GetExcludedFromBOM(), SCH_RULE_AREA::GetExcludedFromSim(), m_out, and saveShape().
Referenced by Format().
| void SCH_WRITER_V10::SaveSchematicFile | ( | const wxString & | aFileName, |
| SCH_SHEET * | aSheet, | ||
| SCHEMATIC * | aSchematic ) |
Definition at line 748 of file sch_writer_v10.cpp.
References PRETTIFIED_FILE_OUTPUTFORMATTER::Finish(), Format(), m_out, and m_schematic.
Referenced by SaveSchematicForTarget().
|
private |
Definition at line 1491 of file sch_writer_v10.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 1271 of file sch_writer_v10.cpp.
References KIGFX::COLOR4D::a, AUTOPLACE_AUTO, AUTOPLACE_MANUAL, KIGFX::COLOR4D::b, EscapedUTF8(), EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), FormatDouble2Str(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), KICAD_FORMAT::LEGACY::FormatTextV10(), 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, name, niluuid, 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 893 of file sch_writer_v10.cpp.
References ANGLE_0, ANGLE_180, ANGLE_270, ANGLE_90, KIID_PATH::AsString(), AUTOPLACE_AUTO, AUTOPLACE_MANUAL, 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::GetExcludedFromPosFiles(), SCH_SYMBOL::GetExcludedFromSim(), 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(), SCHEMATIC::GetTopLevelSheets(), m_out, SCH_SYMBOL_INSTANCE::m_Reference, m_schematic, SCH_SYMBOL_INSTANCE::m_Unit, EDA_ITEM::m_Uuid, KIID_PATH::MakeRelativeTo(), name, niluuid, SCH_SHEET_PATH::Path(), path, pin, projectKey(), REFERENCE, SCHEMATIC::Root(), saveField(), schIUScale, SYM_MIRROR_X, SYM_MIRROR_Y, SYM_ORIENT_180, SYM_ORIENT_270, SYM_ORIENT_90, toUTFTildaText(), SCH_SYMBOL::UseLibIdLookup(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Format().
| void SCH_WRITER_V10::SaveSymbolLibrary | ( | const wxString & | aFileName, |
| const std::vector< LIB_SYMBOL * > & | aSymbols ) |
Definition at line 763 of file sch_writer_v10.cpp.
References PRETTIFIED_FILE_OUTPUTFORMATTER::Finish(), GetMajorMinorVersion(), libSaveSymbol(), OUTPUTFORMATTER::Print(), and SYMBOL_LIB_VERSION.
Referenced by SaveSymbolLibraryForTarget().
|
private |
Definition at line 1674 of file sch_writer_v10.cpp.
References SCH_TABLE::Clone(), SCH_TABLE::DeleteMarkedCells(), KICAD_FORMAT::LEGACY::FormatBool(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), KICAD_FORMAT::LEGACY::FormatUuid(), 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, EDA_ITEM::m_Uuid, 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 1572 of file sch_writer_v10.cpp.
References ANGLE_180, AUTOPLACE_AUTO, AUTOPLACE_MANUAL, SPIN_STYLE::BOTTOM, flag, EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatTextV10(), 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 1638 of file sch_writer_v10.cpp.
References EDA_UNIT_UTILS::FormatAngle(), KICAD_FORMAT::LEGACY::FormatBool(), formatFill(), EDA_UNIT_UTILS::FormatInternalUnits(), KICAD_FORMAT::LEGACY::FormatStroke(), KICAD_FORMAT::LEGACY::FormatTextV10(), 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 51 of file sch_writer_v10.h.
Referenced by ClassifyLibSymbolForDowngrade(), ClassifySchematicStructureForDowngrade(), ClassifyScreenForDowngrade(), DowngradeLibSymbolInPlace(), DowngradeScreenInPlace(), Format(), saveBitmap(), and SaveSchematicForTarget().
|
private |
Definition at line 99 of file sch_writer_v10.h.
Referenced by Format(), saveBitmap(), saveBusEntry(), saveField(), saveGroup(), saveInstances(), saveJunction(), saveLine(), saveNoConnect(), saveRuleArea(), SaveSchematicFile(), saveShape(), saveSheet(), saveSymbol(), saveTable(), saveText(), saveTextBox(), and SCH_WRITER_V10().
|
private |
Definition at line 98 of file sch_writer_v10.h.
Referenced by Format(), SaveSchematicFile(), saveSheet(), saveSymbol(), and SCH_WRITER_V10().
|
staticconstexpr |
Definition at line 52 of file sch_writer_v10.h.
Referenced by SaveSymbolLibrary(), and SaveSymbolLibraryForTarget().