KiCad PCB EDA Suite
|
A SCH_PLUGIN derivation for loading 6.x+ Eagle schematic files. More...
#include <sch_eagle_plugin.h>
Classes | |
struct | EAGLE_MISSING_CMP |
struct | SEG_DESC |
Segments representing wires for intersection checking. More... | |
Public Member Functions | |
SCH_EAGLE_PLUGIN () | |
~SCH_EAGLE_PLUGIN () | |
const wxString | GetName () const override |
Return a brief hard coded name for this SCH_PLUGIN. More... | |
void | SetReporter (REPORTER *aReporter) override |
Set an optional reporter for warnings/errors. More... | |
void | SetProgressReporter (PROGRESS_REPORTER *aReporter) override |
Set an optional progress reporter. More... | |
const PLUGIN_FILE_DESC | GetSchematicFileDesc () const override |
Returns schematic file description for the SCH_PLUGIN. More... | |
bool | CanReadSchematicFile (const wxString &aFileName) const override |
Checks if this SCH_PLUGIN can read the specified schematic file. More... | |
bool | CanReadLibrary (const wxString &aFileName) const override |
Checks if this SCH_PLUGIN can read the specified symbol library file. More... | |
int | GetModifyHash () const override |
Return the modification hash from the library cache. More... | |
SCH_SHEET * | LoadSchematicFile (const wxString &aFileName, SCHEMATIC *aSchematic, SCH_SHEET *aAppendToMe=nullptr, const STRING_UTF8_MAP *aProperties=nullptr) override |
Load information from some input file format that this SCH_PLUGIN implementation knows about, into either a new SCH_SHEET or an existing one. More... | |
virtual const PLUGIN_FILE_DESC | GetLibraryFileDesc () const |
Returns symbol library description for the SCH_PLUGIN. More... | |
virtual void | SaveLibrary (const wxString &aFileName, const STRING_UTF8_MAP *aProperties=nullptr) |
virtual void | SaveSchematicFile (const wxString &aFileName, SCH_SHEET *aSheet, SCHEMATIC *aSchematic, const STRING_UTF8_MAP *aProperties=nullptr) |
Write aSchematic to a storage file in a format that this SCH_PLUGIN implementation knows about, or it can be used to write a portion of aSchematic to a special kind of export file. More... | |
virtual void | EnumerateSymbolLib (wxArrayString &aSymbolNameList, const wxString &aLibraryPath, const STRING_UTF8_MAP *aProperties=nullptr) |
Populate a list of LIB_SYMBOL alias names contained within the library aLibraryPath. More... | |
virtual void | EnumerateSymbolLib (std::vector< LIB_SYMBOL * > &aSymbolList, const wxString &aLibraryPath, const STRING_UTF8_MAP *aProperties=nullptr) |
Populate a list of LIB_SYMBOL aliases contained within the library aLibraryPath. More... | |
virtual LIB_SYMBOL * | LoadSymbol (const wxString &aLibraryPath, const wxString &aPartName, const STRING_UTF8_MAP *aProperties=nullptr) |
Load a LIB_SYMBOL object having aPartName from the aLibraryPath containing a library format that this SCH_PLUGIN knows about. More... | |
virtual void | SaveSymbol (const wxString &aLibraryPath, const LIB_SYMBOL *aSymbol, const STRING_UTF8_MAP *aProperties=nullptr) |
Write aSymbol to an existing library located at aLibraryPath. More... | |
virtual void | DeleteSymbol (const wxString &aLibraryPath, const wxString &aSymbolName, const STRING_UTF8_MAP *aProperties=nullptr) |
Delete the entire LIB_SYMBOL associated with aAliasName from the library aLibraryPath. More... | |
virtual void | CreateSymbolLib (const wxString &aLibraryPath, const STRING_UTF8_MAP *aProperties=nullptr) |
Create a new empty symbol library at aLibraryPath. More... | |
virtual bool | DeleteSymbolLib (const wxString &aLibraryPath, const STRING_UTF8_MAP *aProperties=nullptr) |
Delete an existing symbol library and returns true if successful, or if library does not exist returns false, or throws an exception if library exists but is read only or cannot be deleted for some other reason. More... | |
virtual bool | IsSymbolLibWritable (const wxString &aLibraryPath) |
Return true if the library at aLibraryPath is writable. More... | |
virtual void | SymbolLibOptions (STRING_UTF8_MAP *aListToAppendTo) const |
Append supported SCH_PLUGIN options to aListToAppenTo along with internationalized descriptions. More... | |
virtual bool | SupportsSubLibraries () const |
virtual void | GetSubLibraryNames (std::vector< wxString > &aNames) |
Retrieves a list of sub-libraries in this library. More... | |
virtual void | GetAvailableSymbolFields (std::vector< wxString > &aNames) |
Retrieves a list of (custom) field names that are present on symbols in this library. More... | |
virtual void | GetDefaultSymbolFields (std::vector< wxString > &aNames) |
Retrieves a list of (custom) field names that should be shown by default for this library in the symbol chooser. More... | |
virtual const wxString & | GetError () const |
Return an error string to the caller. More... | |
virtual void | SetLibTable (SYMBOL_LIB_TABLE *aTable) |
Some library plugins need to have access to their parent library table. More... | |
Public Attributes | |
const double | ARC_ACCURACY = SCH_IU_PER_MM * 0.01 |
Static Protected Member Functions | |
static bool | fileStartsWithPrefix (const wxString &aFilePath, const wxString &aPrefix, bool aIgnoreWhitespace) |
static bool | fileStartsWithBinaryHeader (const wxString &aFilePath, const std::vector< uint8_t > &aHeader) |
Private Member Functions | |
void | checkpoint () |
bool | checkHeader (const wxString &aFileName) const |
void | loadDrawing (wxXmlNode *aDrawingNode) |
void | loadLayerDefs (wxXmlNode *aLayers) |
void | loadSchematic (wxXmlNode *aSchematicNode) |
void | loadSheet (wxXmlNode *aSheetNode, int sheetcount) |
void | loadInstance (wxXmlNode *aInstanceNode) |
EAGLE_LIBRARY * | loadLibrary (wxXmlNode *aLibraryNode, EAGLE_LIBRARY *aEagleLib) |
void | countNets (wxXmlNode *aSchematicNode) |
void | moveLabels (SCH_LINE *aWire, const VECTOR2I &aNewEndPoint) |
Move any labels on the wire to the new end point of the wire. More... | |
void | addBusEntries () |
This function finds best way to place a bus entry symbol for when an Eagle wire segment ends on an Eagle bus segment. More... | |
SCH_LAYER_ID | kiCadLayer (int aEagleLayer) |
Return the matching layer or return LAYER_NOTES. More... | |
std::pair< VECTOR2I, const SEG * > | findNearestLinePoint (const VECTOR2I &aPoint, const std::vector< SEG > &aLines) const |
void | loadSegments (wxXmlNode *aSegmentsNode, const wxString &aNetName, const wxString &aNetClass) |
SCH_SHAPE * | loadPolyLine (wxXmlNode *aPolygonNode) |
SCH_ITEM * | loadWire (wxXmlNode *aWireNode, SEG &endpoints) |
SCH_SHAPE * | loadCircle (wxXmlNode *aCircleNode) |
SCH_SHAPE * | loadRectangle (wxXmlNode *aRectNode) |
SCH_TEXT * | loadLabel (wxXmlNode *aLabelNode, const wxString &aNetName) |
SCH_JUNCTION * | loadJunction (wxXmlNode *aJunction) |
SCH_TEXT * | loadPlainText (wxXmlNode *aSchText) |
void | loadFrame (wxXmlNode *aFrameNode, std::vector< SCH_ITEM * > &aItems) |
bool | loadSymbol (wxXmlNode *aSymbolNode, std::unique_ptr< LIB_SYMBOL > &aSymbol, EDEVICE *aDevice, int aGateNumber, const wxString &aGateName) |
LIB_SHAPE * | loadSymbolCircle (std::unique_ptr< LIB_SYMBOL > &aSymbol, wxXmlNode *aCircleNode, int aGateNumber) |
LIB_SHAPE * | loadSymbolRectangle (std::unique_ptr< LIB_SYMBOL > &aSymbol, wxXmlNode *aRectNode, int aGateNumber) |
LIB_SHAPE * | loadSymbolPolyLine (std::unique_ptr< LIB_SYMBOL > &aSymbol, wxXmlNode *aPolygonNode, int aGateNumber) |
LIB_ITEM * | loadSymbolWire (std::unique_ptr< LIB_SYMBOL > &aSymbol, wxXmlNode *aWireNode, int aGateNumber) |
LIB_PIN * | loadPin (std::unique_ptr< LIB_SYMBOL > &aSymbol, wxXmlNode *, EPIN *epin, int aGateNumber) |
LIB_TEXT * | loadSymbolText (std::unique_ptr< LIB_SYMBOL > &aSymbol, wxXmlNode *aLibText, int aGateNumber) |
void | loadFrame (wxXmlNode *aFrameNode, std::vector< LIB_ITEM * > &aLines) |
void | loadTextAttributes (EDA_TEXT *aText, const ETEXT &aAttribs) const |
void | loadFieldAttributes (LIB_FIELD *aField, const LIB_TEXT *aText) const |
Move net labels that are detached from any wire to the nearest wire. More... | |
void | adjustNetLabels () |
wxString | translateEagleBusName (const wxString &aEagleName) const |
Translate an Eagle-style bus name into one that is KiCad-compatible. More... | |
wxString | getLibName () |
wxFileName | getLibFileName () |
Checks if there are other wires or pins at the position of the tested pin. More... | |
bool | checkConnections (const SCH_SYMBOL *aSymbol, const LIB_PIN *aPin) const |
void | addImplicitConnections (SCH_SYMBOL *aSymbol, SCH_SCREEN *aScreen, bool aUpdateSet) |
Create net labels to emulate implicit connections in Eagle. More... | |
bool | netHasPowerDriver (SCH_LINE *aLine, const wxString &aNetName) const |
SCH_SHEET * | getCurrentSheet () |
SCH_SCREEN * | getCurrentScreen () |
Private Attributes | |
REPORTER * | m_reporter |
Reporter for warnings/errors. More... | |
std::map< wxString, EAGLE_MISSING_CMP > | m_missingCmps |
SCH_SHEET * | m_rootSheet |
The root sheet of the schematic being loaded. More... | |
SCH_SHEET_PATH | m_sheetPath |
The current sheet path of the schematic being loaded. More... | |
wxString | m_version |
Eagle file version. More... | |
wxFileName | m_filename |
wxString | m_libName |
Library name to save symbols. More... | |
SCHEMATIC * | m_schematic |
Passed to Load(), the schematic object being loaded. More... | |
EPART_MAP | m_partlist |
std::map< wxString, EAGLE_LIBRARY > | m_eagleLibs |
std::unordered_map< wxString, bool > | m_userValue |
deviceset/@uservalue for device. More... | |
SCH_PLUGIN::SCH_PLUGIN_RELEASER | m_pi |
PI to create KiCad symbol library. More... | |
std::unique_ptr< STRING_UTF8_MAP > | m_properties |
Library plugin properties. More... | |
PROGRESS_REPORTER * | m_progressReporter |
optional; may be nullptr More... | |
unsigned | m_doneCount |
unsigned | m_lastProgressCount |
unsigned | m_totalCount |
for progress reporting More... | |
std::map< wxString, int > | m_netCounts |
std::map< int, SCH_LAYER_ID > | m_layerMap |
std::map< wxString, wxString > | m_powerPorts |
map from symbol reference to global label equivalent More... | |
std::vector< VECTOR2I > | m_wireIntersections |
Wires and labels of a single connection (segment in Eagle nomenclature) More... | |
std::vector< SEG_DESC > | m_segments |
Nets as defined in the <nets> sections of an Eagle schematic file. More... | |
std::map< wxString, ENET > | m_nets |
Positions of pins and wire endings mapped to its parent. More... | |
std::map< VECTOR2I, std::set< const EDA_ITEM * > > | m_connPoints |
A SCH_PLUGIN derivation for loading 6.x+ Eagle schematic files.
As with all SCH_PLUGINs there is no UI dependencies i.e. windowing calls allowed.
Definition at line 81 of file sch_eagle_plugin.h.
SCH_EAGLE_PLUGIN::SCH_EAGLE_PLUGIN | ( | ) |
Definition at line 354 of file sch_eagle_plugin.cpp.
References WXLOG_REPORTER::GetInstance(), m_reporter, m_rootSheet, and m_schematic.
SCH_EAGLE_PLUGIN::~SCH_EAGLE_PLUGIN | ( | ) |
Definition at line 367 of file sch_eagle_plugin.cpp.
|
private |
This function finds best way to place a bus entry symbol for when an Eagle wire segment ends on an Eagle bus segment.
Definition at line 2773 of file sch_eagle_plugin.cpp.
References SCH_SCREEN::Append(), ERC_ITEM::Create(), DEFAULT_SCH_ENTRY_SIZE, ERCE_BUS_ENTRY_NEEDED, getCurrentScreen(), IS_NEW, SCH_LINE::IsBus(), SCH_LINE::IsWire(), SCH_SCREEN::Items(), EDA_IU_SCALE::MilsToIU(), moveLabels(), EE_RTREE::OfType(), SCH_LINE_T, schIUScale, EDA_ITEM::SetFlags(), TestSegmentHit(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by loadSheet().
|
private |
Create net labels to emulate implicit connections in Eagle.
Each named power input pin creates an implicit connection in Eagle. To emulate this behavior one needs to attach global net labels to the mentioned pins. This is is also expected for the units that are not instantiated in the schematics, therefore such units need to be stored in order to create them at later stage.
aSymbol | is the symbol to process. |
aScreen | is the screen where net labels should be added. |
aUpdateSet | decides whether the missing units data should be updated. |
Definition at line 3357 of file sch_eagle_plugin.cpp.
References SCH_SCREEN::Append(), SPIN_STYLE::BOTTOM, checkConnections(), SCH_EAGLE_PLUGIN::EAGLE_MISSING_CMP::cmp, extractNetName(), SCH_SYMBOL::GetField(), SCH_SYMBOL::GetLibSymbolRef(), SCH_SYMBOL::GetPinPhysicalPosition(), EDA_TEXT::GetText(), SCH_SYMBOL::GetUnit(), SPIN_STYLE::LEFT, m_missingCmps, EDA_IU_SCALE::MilsToIU(), pin, REFERENCE_FIELD, SPIN_STYLE::RIGHT, schIUScale, SCH_LABEL_BASE::SetPosition(), SCH_GLOBALLABEL::SetSpinStyle(), EDA_TEXT::SetText(), EDA_TEXT::SetTextSize(), SCH_EAGLE_PLUGIN::EAGLE_MISSING_CMP::units, and SPIN_STYLE::UP.
Referenced by loadSchematic(), and loadSheet().
|
private |
Definition at line 2641 of file sch_eagle_plugin.cpp.
References SEG::A, SEG::B, SEG::Contains(), findNearestLinePoint(), SCH_TEXT::GetPosition(), m_segments, m_wireIntersections, EDA_IU_SCALE::MilsToIU(), move, VECTOR2< T >::Resize(), schIUScale, and SCH_TEXT::SetPosition().
Referenced by loadSheet().
|
overridevirtual |
Checks if this SCH_PLUGIN can read the specified symbol library file.
If not overriden, extension check is used.
Reimplemented from SCH_PLUGIN.
Definition at line 2725 of file sch_eagle_plugin.cpp.
References SCH_PLUGIN::CanReadLibrary(), and checkHeader().
|
overridevirtual |
Checks if this SCH_PLUGIN can read the specified schematic file.
If not overriden, extension check is used.
Reimplemented from SCH_PLUGIN.
Definition at line 2716 of file sch_eagle_plugin.cpp.
References SCH_PLUGIN::CanReadSchematicFile(), and checkHeader().
|
private |
Definition at line 3339 of file sch_eagle_plugin.cpp.
References SCH_SYMBOL::GetPinPhysicalPosition(), and m_connPoints.
Referenced by addImplicitConnections().
|
private |
Definition at line 2734 of file sch_eagle_plugin.cpp.
References text.
Referenced by CanReadLibrary(), and CanReadSchematicFile().
|
private |
Definition at line 384 of file sch_eagle_plugin.cpp.
References PROGRESS_REPORTER::KeepRefreshing(), m_doneCount, m_lastProgressCount, m_progressReporter, m_totalCount, PROGRESS_REPORTER::SetCurrentProgress(), and THROW_IO_ERROR.
Referenced by loadLibrary(), loadSchematic(), and loadSheet().
|
private |
Definition at line 556 of file sch_eagle_plugin.cpp.
References getChildrenNodes(), m_netCounts, and MapChildren().
Referenced by loadSchematic().
|
virtualinherited |
Create a new empty symbol library at aLibraryPath.
It is an error to attempt to create an existing library or to attempt to create on a "read only" location.
aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several footprints. |
aProperties | is an associative array that can be used to tell the library create function anything special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if there is a problem finding the library, or creating it. |
Reimplemented in SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 183 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by SYMBOL_LIB_TABLE::CreateSymbolLib(), SYMBOL_EDIT_FRAME::ExportSymbol(), SCH_ALTIUM_PLUGIN::LoadSchematicFile(), CADSTAR_SCH_ARCHIVE_PLUGIN::LoadSchematicFile(), LoadSchematicFile(), and SCH_EASYEDAPRO_PLUGIN::LoadSchematicFile().
|
virtualinherited |
Delete the entire LIB_SYMBOL associated with aAliasName from the library aLibraryPath.
aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several symbols. |
aSymbolName | is the name of a LIB_SYMBOL associated with it's root LIB_SYMBOL object to delete from the specified library. |
aProperties | is an associative array that can be used to tell the library delete function anything special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if there is a problem finding the alias or the library or deleting it. |
Reimplemented in SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 175 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by SYMBOL_LIB_TABLE::DeleteSymbol(), and SYMBOL_LIBRARY_MANAGER::LIB_BUFFER::SaveBuffer().
|
virtualinherited |
Delete an existing symbol library and returns true if successful, or if library does not exist returns false, or throws an exception if library exists but is read only or cannot be deleted for some other reason.
aLibraryPath | is a locator for the "library", usually a directory or file which will contain symbols. |
aProperties | is an associative array that can be used to tell the library delete implementation function anything special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if there is a problem deleting an existing library. |
Reimplemented in SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 190 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by SYMBOL_LIB_TABLE::DeleteSymbolLib().
|
virtualinherited |
Populate a list of LIB_SYMBOL aliases contained within the library aLibraryPath.
aSymbolList | is an array to populate with the LIB_SYMBOL pointers associated with the library. |
aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing one or more LIB_SYMBOL objects. |
aProperties | is an associative array that can be used to tell the plugin anything needed about how to perform with respect to aLibraryPath. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if the library cannot be found, the part library cannot be loaded. |
Reimplemented in SCH_ALTIUM_PLUGIN, CADSTAR_SCH_ARCHIVE_PLUGIN, SCH_DATABASE_PLUGIN, SCH_EASYEDA_PLUGIN, SCH_EASYEDAPRO_PLUGIN, SCH_HTTP_LIB_PLUGIN, SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 150 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
|
virtualinherited |
Populate a list of LIB_SYMBOL alias names contained within the library aLibraryPath.
aSymbolNameList | is an array to populate with the LIB_SYMBOL names associated with the library. |
aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing one or more LIB_SYMBOL objects. |
aProperties | is an associative array that can be used to tell the plugin anything needed about how to perform with respect to aLibraryPath. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if the library cannot be found, the part library cannot be loaded. |
Reimplemented in SCH_ALTIUM_PLUGIN, CADSTAR_SCH_ARCHIVE_PLUGIN, SCH_DATABASE_PLUGIN, SCH_EASYEDA_PLUGIN, SCH_EASYEDAPRO_PLUGIN, SCH_HTTP_LIB_PLUGIN, SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 141 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by PANEL_SYM_LIB_TABLE::convertLibrary(), SYMBOL_LIB_TABLE::EnumerateSymbolLib(), SYMBOL_EDIT_FRAME::ImportSymbol(), SYMBOL_LIB_TABLE::LoadSymbolLib(), and SYMBOL_LIB_TABLE_ROW::Refresh().
|
staticprotectedinherited |
Definition at line 248 of file sch_plugin.cpp.
|
staticprotectedinherited |
Definition at line 223 of file sch_plugin.cpp.
References text.
Referenced by SCH_LEGACY_PLUGIN::CanReadLibrary(), and SCH_LEGACY_PLUGIN::CanReadSchematicFile().
|
private |
Definition at line 1533 of file sch_eagle_plugin.cpp.
References std::abs(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by adjustNetLabels().
|
inlinevirtualinherited |
Retrieves a list of (custom) field names that are present on symbols in this library.
The plugin is responsible for guaranteeing that this list contains the set of unique custom field names present on any symbols contained in the library.
The required KiCad fields are not included in this list.
aNames | will be filled with any custom fields present in this library. |
Reimplemented in CADSTAR_SCH_ARCHIVE_PLUGIN, SCH_DATABASE_PLUGIN, SCH_HTTP_LIB_PLUGIN, and SCH_SEXPR_PLUGIN.
Definition at line 477 of file sch_io_mgr.h.
Referenced by SYMBOL_LIB_TABLE_ROW::GetAvailableSymbolFields(), and SCH_PLUGIN::GetDefaultSymbolFields().
|
private |
Definition at line 140 of file sch_eagle_plugin.cpp.
References SCH_SHEET::GetScreen(), SCH_SHEET_PATH::Last(), and m_sheetPath.
Referenced by addBusEntries(), loadInstance(), loadSegments(), loadSheet(), and moveLabels().
|
private |
Definition at line 134 of file sch_eagle_plugin.cpp.
References SCH_SHEET_PATH::Last(), and m_sheetPath.
Referenced by loadSheet().
|
inlinevirtualinherited |
Retrieves a list of (custom) field names that should be shown by default for this library in the symbol chooser.
This list should be a subset of the result returned by GetAvailableSymbolFields().
The preference for which fields to hide and show for a given library is stored on a per-library basis in a user's preferences (or in the project local settings for a project- local library). The set of fields returned by GetDefaultSymbolFields() will be used if this preference is missing.
aNames | will be filled with the custom field names that should be shown by default |
Reimplemented in SCH_DATABASE_PLUGIN, SCH_HTTP_LIB_PLUGIN, and SCH_SEXPR_PLUGIN.
Definition at line 491 of file sch_io_mgr.h.
References SCH_PLUGIN::GetAvailableSymbolFields().
Referenced by SYMBOL_LIB_TABLE_ROW::GetDefaultSymbolFields().
|
virtualinherited |
Return an error string to the caller.
This is useful for schematic loaders that can load partial schematics where throwing an exception would be problematic such as the KiCad legacy plugin.
Reimplemented in SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 216 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by KI_TEST::SCHEMATIC_TEST_FIXTURE::LoadSchematic(), SCH_EDIT_FRAME::LoadSheetFromFile(), and SCH_EDIT_FRAME::OpenProjectFiles().
|
private |
Checks if there are other wires or pins at the position of the tested pin.
Definition at line 172 of file sch_eagle_plugin.cpp.
References getLibName(), PROJECT::GetProjectPath(), KiCadSymbolLibFileExtension, m_schematic, and SCHEMATIC::Prj().
Referenced by loadLibrary(), loadSchematic(), and LoadSchematicFile().
|
private |
Definition at line 148 of file sch_eagle_plugin.cpp.
References LIB_ID::FixIllegalChars(), SCH_SHEET::GetFileName(), PROJECT::GetProjectName(), m_libName, m_rootSheet, m_schematic, SCHEMATIC::Prj(), and UTF8::wx_str().
Referenced by getLibFileName(), and LoadSchematicFile().
|
virtualinherited |
Returns symbol library description for the SCH_PLUGIN.
Reimplemented in SCH_ALTIUM_PLUGIN, CADSTAR_SCH_ARCHIVE_PLUGIN, SCH_DATABASE_PLUGIN, SCH_EASYEDA_PLUGIN, SCH_EASYEDAPRO_PLUGIN, SCH_HTTP_LIB_PLUGIN, SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 47 of file sch_plugin.cpp.
Referenced by PANEL_SYM_LIB_TABLE::browseLibrariesHandler(), SCH_PLUGIN::CanReadLibrary(), SYMBOL_EDIT_FRAME::ImportSymbol(), and PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE().
|
overridevirtual |
Return the modification hash from the library cache.
Implements SCH_PLUGIN.
Definition at line 378 of file sch_eagle_plugin.cpp.
|
overridevirtual |
Return a brief hard coded name for this SCH_PLUGIN.
Implements SCH_PLUGIN.
Definition at line 372 of file sch_eagle_plugin.cpp.
|
inlineoverridevirtual |
Returns schematic file description for the SCH_PLUGIN.
Reimplemented from SCH_PLUGIN.
Definition at line 98 of file sch_eagle_plugin.h.
References _HKI.
|
inlinevirtualinherited |
Retrieves a list of sub-libraries in this library.
Some types of symbol library support sub-libraries, which are a single-level organizational hierarchy that is implementation-defined per plugin. Most of KiCad ignores sub-libraries and treats the hierarchy between library and symbol as flat, but the sub-libraries are used for sorting and grouping symbols in the symbol chooser.
Has no effect if SupportsSubLibraries() returns false.
aNames | will be filled with a list of sub-libraries within this symbol library |
Reimplemented in SCH_DATABASE_PLUGIN, and SCH_HTTP_LIB_PLUGIN.
Definition at line 466 of file sch_io_mgr.h.
Referenced by SYMBOL_LIB_TABLE_ROW::GetSubLibraryNames().
|
virtualinherited |
Return true if the library at aLibraryPath is writable.
(Often system libraries are read only because of where they are installed.)
aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several symbols. |
IO_ERROR | if no library at aLibraryPath exists. |
Reimplemented in SCH_ALTIUM_PLUGIN, CADSTAR_SCH_ARCHIVE_PLUGIN, SCH_DATABASE_PLUGIN, SCH_EASYEDA_PLUGIN, SCH_EASYEDAPRO_PLUGIN, SCH_HTTP_LIB_PLUGIN, SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 197 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by SYMBOL_LIB_TABLE::IsSymbolLibWritable(), and SYMBOL_LIB_TABLE::SaveSymbol().
|
private |
Return the matching layer or return LAYER_NOTES.
Definition at line 225 of file sch_eagle_plugin.cpp.
References LAYER_NOTES, and m_layerMap.
Referenced by loadCircle(), loadPolyLine(), loadRectangle(), and loadWire().
|
private |
Definition at line 1439 of file sch_eagle_plugin.cpp.
References kiCadLayer(), ECIRCLE::layer, ECIRCLE::radius, ECOORD::ToSchUnits(), ECIRCLE::width, ECIRCLE::x, VECTOR2< T >::x, ECIRCLE::y, and VECTOR2< T >::y.
Referenced by loadSheet().
|
private |
Definition at line 529 of file sch_eagle_plugin.cpp.
References loadLayerDefs(), loadSchematic(), and MapChildren().
Referenced by LoadSchematicFile().
|
private |
Move net labels that are detached from any wire to the nearest wire.
Definition at line 2630 of file sch_eagle_plugin.cpp.
References EDA_TEXT::GetHorizJustify(), LIB_TEXT::GetPosition(), EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextSize(), EDA_TEXT::GetVertJustify(), EDA_TEXT::IsBold(), EDA_TEXT::SetBold(), EDA_TEXT::SetHorizJustify(), EDA_TEXT::SetTextAngle(), EDA_TEXT::SetTextPos(), EDA_TEXT::SetTextSize(), and EDA_TEXT::SetVertJustify().
Referenced by loadSymbol().
|
private |
Definition at line 2390 of file sch_eagle_plugin.cpp.
References LIB_SHAPE::AddPoint(), EFRAME::border_bottom, EFRAME::border_left, EFRAME::border_right, EFRAME::border_top, EFRAME::columns, KiROUND(), EDA_IU_SCALE::MilsToIU(), EFRAME::rows, schIUScale, LIB_ITEM::SetPosition(), EDA_TEXT::SetText(), EDA_TEXT::SetTextSize(), ECOORD::ToSchUnits(), EFRAME::x1, EFRAME::x2, EFRAME::y1, and EFRAME::y2.
|
private |
Definition at line 1019 of file sch_eagle_plugin.cpp.
References SCH_SHAPE::AddPoint(), EFRAME::border_bottom, EFRAME::border_left, EFRAME::border_right, EFRAME::border_top, EFRAME::columns, GR_TEXT_H_ALIGN_CENTER, GR_TEXT_V_ALIGN_CENTER, KiROUND(), EDA_IU_SCALE::MilsToIU(), EFRAME::rows, schIUScale, EDA_TEXT::SetHorizJustify(), SCH_TEXT::SetPosition(), EDA_TEXT::SetText(), EDA_TEXT::SetTextSize(), EDA_TEXT::SetVertJustify(), ECOORD::ToSchUnits(), EFRAME::x1, EFRAME::x2, EFRAME::y1, and EFRAME::y2.
Referenced by loadSheet(), and loadSymbol().
|
private |
Definition at line 1579 of file sch_eagle_plugin.cpp.
References _, EATTR::align, SCH_SCREEN::Append(), EPART::attribute, ETEXT::BOTTOM_LEFT, CTX_LIBID, EROT::degrees, EPART::device, EPART::deviceset, EATTR::display, eagleToKicadAlignment(), EscapeString(), FOOTPRINT_FIELD, EINSTANCE::gate, OPTIONAL_XML_ATTRIBUTE< T >::Get(), getCurrentScreen(), LIB_SYMBOL::GetFieldById(), LIB_SYMBOL::GetFields(), SCH_FIELD::GetPosition(), LIB_SYMBOL::IsPower(), EDA_TEXT::IsVisible(), kiCadComponentRotation(), EPART::library, SYMBOL_LIB_TABLE::LoadSymbol(), m_eagleLibs, m_partlist, m_reporter, EROT::mirror, EATTR::name, EATTR::NAME, EATTR::Off, EAGLE_LIBRARY::package, EINSTANCE::part, pin, REFERENCE_FIELD, REPORTER::Report(), EATTR::rot, EINSTANCE::rot, RPT_SEVERITY_ERROR, SCH_FIELD::SetName(), SCH_FIELD::SetPosition(), SCH_FIELD::SetText(), EDA_TEXT::SetVisible(), EINSTANCE::smashed, EROT::spin, ECOORD::ToSchUnits(), UnescapeString(), EPART::value, VALUE_FIELD, EPART::variant, EATTR::x, EINSTANCE::x, EATTR::y, and EINSTANCE::y.
Referenced by loadSheet().
|
private |
Definition at line 1483 of file sch_eagle_plugin.cpp.
References ECOORD::ToSchUnits(), EJUNCTION::x, and EJUNCTION::y.
Referenced by loadSegments().
|
private |
Definition at line 1496 of file sch_eagle_plugin.cpp.
References EROT::degrees, escapeName(), KiROUND(), m_netCounts, EROT::mirror, ELABEL::netname, SPIN_STYLE::RIGHT, ELABEL::rot, ELABEL::size, ECOORD::ToSchUnits(), ELABEL::x, and ELABEL::y.
Referenced by loadSegments().
|
private |
Layers in KiCad schematics are not actually layers, but abstract groups mainly used to decide item colors.
<layers> <layer number="90" name="Modules" color="5" fill="1" visible="yes" active="yes"> <layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"> <layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"> <layer number="93" name="Pins" color="2" fill="1" visible="no" active="yes"> <layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"> <layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"> <layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"> <layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"> <layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"> </layers>
Definition at line 180 of file sch_eagle_plugin.cpp.
References LAYER_BUS, LAYER_NOTES, LAYER_WIRE, and m_layerMap.
Referenced by loadDrawing().
|
private |
Definition at line 1851 of file sch_eagle_plugin.cpp.
References checkpoint(), countChildren(), CTX_LIBID, EscapeString(), EAGLE_LIBRARY::GateUnit, OPTIONAL_XML_ATTRIBUTE< T >::Get(), getChildrenNodes(), getLibFileName(), PROJECT::GetProjectName(), EAGLE_LIBRARY::KiCadSymbols, SCH_PLUGIN::LoadSymbol(), loadSymbol(), m_pi, m_properties, m_schematic, m_userValue, MapChildren(), EGATE::name, EDEVICE::name, EDEVICE_SET::name, EAGLE_LIBRARY::name, EDEVICE::package, EAGLE_LIBRARY::package, EDEVICE_SET::prefix, SCHEMATIC::Prj(), REFERENCE_FIELD, SCH_PLUGIN::SaveSymbol(), EDA_TEXT::SetText(), EDA_TEXT::SetVisible(), EGATE::symbol, EAGLE_LIBRARY::SymbolNodes, and EDEVICE_SET::uservalue.
Referenced by loadSchematic().
|
private |
Definition at line 2282 of file sch_eagle_plugin.cpp.
References EROT::degrees, EPIN::function, OPTIONAL_XML_ATTRIBUTE< T >::Get(), EPIN::length, EDA_IU_SCALE::MilsToIU(), EPIN::name, pin, EPIN::rot, schIUScale, ECOORD::ToSchUnits(), EPIN::visible, EPIN::x, and EPIN::y.
Referenced by loadSymbol().
|
private |
Definition at line 2579 of file sch_eagle_plugin.cpp.
References escapeName(), interpretText(), loadTextAttributes(), ECOORD::ToSchUnits(), ETEXT::x, and ETEXT::y.
Referenced by loadSheet().
|
private |
Definition at line 1358 of file sch_eagle_plugin.cpp.
References ARC_ACCURACY, SHAPE_ARC::ConstructFromStartEndAngle(), EVERTEX::curve, DEGREES_T, kiCadLayer(), EPOLYGON::layer, ECOORD::ToSchUnits(), EPOLYGON::width, EVERTEX::x, and EVERTEX::y.
Referenced by loadSheet().
|
private |
Definition at line 1454 of file sch_eagle_plugin.cpp.
References EROT::degrees, DEGREES_T, kiCadLayer(), ERECT::layer, ERECT::rot, RotatePoint(), ECOORD::ToSchUnits(), ERECT::x1, ERECT::x2, ERECT::y1, and ERECT::y2.
Referenced by loadSheet().
|
private |
Definition at line 590 of file sch_eagle_plugin.cpp.
References addImplicitConnections(), SCH_SCREEN::Append(), checkpoint(), countChildren(), countNets(), SCH_ITEM::Duplicate(), BOX2< Vec >::GetBottom(), getChildrenNodes(), SCH_SYMBOL::GetField(), BOX2< Vec >::GetHeight(), BOX2< Vec >::GetLeft(), getLibFileName(), SCH_SCREEN::GetPageSettings(), SCH_SHEET::GetScreen(), getSheetBbox(), PAGE_INFO::GetSizeIU(), EDA_TEXT::GetText(), BOX2< Vec >::GetWidth(), BOX2< Vec >::GetY(), EDA_IU_SCALE::IU_PER_MILS, loadLibrary(), loadSheet(), SCH_SHEET::LocatePathOfScreen(), m_doneCount, m_eagleLibs, m_missingCmps, m_partlist, m_pi, m_progressReporter, m_rootSheet, m_schematic, m_sheetPath, m_totalCount, MapChildren(), EDA_IU_SCALE::MilsToIU(), EAGLE_LIBRARY::name, SCH_SHEET_PATH::Path(), SCH_SHEET_PATH::pop_back(), SCH_SHEET_PATH::push_back(), REFERENCE_FIELD, SCH_PLUGIN::SaveLibrary(), schIUScale, SCH_SCREEN::SetFileName(), SCH_SHEET_PATH::SetPageNumber(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by loadDrawing().
|
overridevirtual |
Load information from some input file format that this SCH_PLUGIN implementation knows about, into either a new SCH_SHEET or an existing one.
This may be used to load an entire new SCH_SHEET, or to augment an existing one if aAppendToMe is not NULL.
aFileName | is the name of the file to use as input and may be foreign in nature or native in nature. |
aKiway | is the KIWAY object used to access the symbol libraries loaded by the project. |
aAppendToMe | is an existing SCH_SHEET to append to, but if NULL then this means "do not append, rather load anew". |
aProperties | is an associative array that can be used to tell the loader how to load the file, because it can take any number of additional named arguments that the plugin is known to support. These are tuning parameters for the import or load. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if there is a problem loading, and its contents should say what went wrong, using line number and character offsets of the input file if possible. |
Reimplemented from SCH_PLUGIN.
Definition at line 404 of file sch_eagle_plugin.cpp.
References _, SCH_PLUGIN::CreateSymbolLib(), PROJECT::ELEM_SYMBOL_LIB_TABLE, SYMBOL_LIB_TABLE::Format(), getLibFileName(), getLibName(), PROJECT::GetProjectPath(), SCH_SHEET::GetScreen(), SYMBOL_LIB_TABLE::GetSymbolLibTableFileName(), SCH_SCREEN::GetUuid(), LIB_TABLE::HasLibrary(), LIB_TABLE::InsertRow(), SCHEMATIC::IsValid(), PROGRESS_REPORTER::KeepRefreshing(), KiCadSchematicFileExtension, loadDrawing(), m_filename, m_pi, m_progressReporter, m_properties, m_rootSheet, m_schematic, EDA_ITEM::m_Uuid, m_version, MapChildren(), SCHEMATIC::Prj(), SCH_LEGACY_PLUGIN::PropBuffering, PROGRESS_REPORTER::Report(), SCHEMATIC::Root(), SCH_PLUGIN::SaveLibrary(), SCH_PLUGIN::SCH_PLUGIN_RELEASER::set(), PROJECT::SetElem(), SCH_SCREEN::SetFileName(), SCH_SHEET::SetFileName(), SCHEMATIC::SetRoot(), SCH_SHEET::SetScreen(), text, THROW_IO_ERROR, and SCH_SCREENS::UpdateSymbolLinks().
|
private |
Definition at line 1216 of file sch_eagle_plugin.cpp.
References SEG::A, SCH_SCREEN::Append(), SEG::B, countChildren(), CTX_NETNAME, escapeName(), EscapeString(), getCurrentScreen(), EDA_TEXT::GetText(), SEG::Intersect(), SCH_EAGLE_PLUGIN::SEG_DESC::labels, SPIN_STYLE::LEFT, loadJunction(), loadLabel(), loadWire(), m_connPoints, m_netCounts, m_powerPorts, m_segments, m_wireIntersections, MapChildren(), EDA_IU_SCALE::MilsToIU(), pin, SPIN_STYLE::RIGHT, schIUScale, SCH_EAGLE_PLUGIN::SEG_DESC::segs, and VECTOR2< T >::x.
Referenced by loadSheet().
|
private |
Definition at line 808 of file sch_eagle_plugin.cpp.
References addBusEntries(), addImplicitConnections(), adjustNetLabels(), SCH_SCREEN::Append(), SCH_SHEET::AutoplaceFields(), EE_RTREE::begin(), BOX2< Vec >::Centre(), checkpoint(), EE_RTREE::end(), getChildrenNodes(), getCurrentScreen(), getCurrentSheet(), SCH_SHEET::GetFields(), SCH_SCREEN::GetPageSettings(), getSheetBbox(), BOX2< Vec >::GetSize(), PAGE_INFO::GetSizeIU(), SCH_SCREEN::Items(), EDA_IU_SCALE::IU_PER_MILS, EDA_IU_SCALE::IUToMils(), KiCadSchematicFileExtension, loadCircle(), loadFrame(), loadInstance(), loadPlainText(), loadPolyLine(), loadRectangle(), loadSegments(), loadWire(), m_connPoints, m_filename, MapChildren(), EDA_IU_SCALE::MilsToIU(), EE_RTREE::OfType(), ReplaceIllegalFileNameChars(), SCH_SYMBOL_T, schIUScale, SCH_SCREEN::SetFileName(), PAGE_INFO::SetHeightMils(), SCH_SCREEN::SetPageSettings(), SCH_FIELD::SetText(), PAGE_INFO::SetWidthMils(), SHEETFILENAME, SHEETNAME, translateEagleBusName(), SCH_SCREEN::Update(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by loadSchematic().
|
virtualinherited |
Load a LIB_SYMBOL object having aPartName from the aLibraryPath containing a library format that this SCH_PLUGIN knows about.
aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several symbols. |
aPartName | is the name of the LIB_SYMBOL to load. |
aProperties | is an associative array that can be used to tell the loader implementation to do something special, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if the library cannot be found or read. No exception is thrown in the case where aAliasName cannot be found. |
Reimplemented in SCH_ALTIUM_PLUGIN, CADSTAR_SCH_ARCHIVE_PLUGIN, SCH_DATABASE_PLUGIN, SCH_EASYEDA_PLUGIN, SCH_EASYEDAPRO_PLUGIN, SCH_HTTP_LIB_PLUGIN, SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 159 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by SYMBOL_EDIT_FRAME::ExportSymbol(), SYMBOL_EDIT_FRAME::ImportSymbol(), loadLibrary(), SYMBOL_LIB_TABLE::LoadSymbol(), SYMBOL_LIBRARY_MANAGER::LIB_BUFFER::SaveBuffer(), SYMBOL_LIBRARY_MANAGER::SaveLibrary(), and SYMBOL_LIB_TABLE::SaveSymbol().
|
private |
Definition at line 1978 of file sch_eagle_plugin.cpp.
References EDEVICE::connects, EPIN::direction, escapeName(), ECONNECT::gate, loadFieldAttributes(), loadFrame(), loadPin(), loadSymbolCircle(), loadSymbolPolyLine(), loadSymbolRectangle(), loadSymbolText(), loadSymbolWire(), ECONNECT::pad, ECONNECT::pin, pin, pinDirectionsMap, REFERENCE_FIELD, LIB_PIN::SetNumber(), and VALUE_FIELD.
Referenced by loadLibrary().
|
private |
Definition at line 2134 of file sch_eagle_plugin.cpp.
References ECIRCLE::radius, EDA_SHAPE::SetEnd(), LIB_SHAPE::SetPosition(), LIB_SHAPE::SetStroke(), LIB_ITEM::SetUnit(), ECOORD::ToSchUnits(), ECIRCLE::width, ECIRCLE::x, VECTOR2< T >::x, ECIRCLE::y, and VECTOR2< T >::y.
Referenced by loadSymbol().
|
private |
Definition at line 2240 of file sch_eagle_plugin.cpp.
References LIB_SHAPE::AddPoint(), SHAPE_POLY_SET::Append(), ARC_ACCURACY, SHAPE_ARC::ConstructFromStartEndAngle(), EVERTEX::curve, DEGREES_T, EDA_SHAPE::GetPolyShape(), EDA_SHAPE::SetFillMode(), LIB_SHAPE::SetStroke(), LIB_ITEM::SetUnit(), ECOORD::ToSchUnits(), EPOLYGON::width, EVERTEX::x, and EVERTEX::y.
Referenced by loadSymbol().
|
private |
Definition at line 2151 of file sch_eagle_plugin.cpp.
References EROT::degrees, DEGREES_T, LIB_SHAPE::GetCenter(), EDA_SHAPE::GetEnd(), LIB_SHAPE::GetPosition(), ERECT::rot, RotatePoint(), EDA_SHAPE::SetEnd(), EDA_SHAPE::SetFillMode(), LIB_SHAPE::SetPosition(), LIB_ITEM::SetUnit(), ECOORD::ToSchUnits(), ERECT::x1, ERECT::x2, ERECT::y1, and ERECT::y2.
Referenced by loadSymbol().
|
private |
Definition at line 2359 of file sch_eagle_plugin.cpp.
References interpretText(), loadTextAttributes(), ECOORD::ToSchUnits(), ETEXT::x, and ETEXT::y.
Referenced by loadSymbol().
|
private |
Definition at line 2182 of file sch_eagle_plugin.cpp.
References LIB_SHAPE::AddPoint(), EWIRE::cap, ConvertArcCenter(), EWIRE::curve, DEGREES_T, EWIRE::FLAT, EDA_SHAPE::SetArcAngleAndEnd(), EDA_SHAPE::SetCenter(), EDA_SHAPE::SetFillMode(), EDA_SHAPE::SetStart(), LIB_SHAPE::SetStroke(), LIB_ITEM::SetUnit(), ECOORD::ToSchUnits(), EWIRE::width, VECTOR2< T >::x, EWIRE::x1, EWIRE::x2, VECTOR2< T >::y, EWIRE::y1, and EWIRE::y2.
Referenced by loadSymbol().
|
private |
Definition at line 2608 of file sch_eagle_plugin.cpp.
References ETEXT::align, ETEXT::BOTTOM_LEFT, OPTIONAL_XML_ATTRIBUTE< T >::CGet(), ETEXT::ConvertSize(), EROT::degrees, eagleToKicadAlignment(), GetPenSizeForBold(), EDA_TEXT::GetTextWidth(), EROT::mirror, ETEXT::ratio, ETEXT::rot, EDA_TEXT::SetBold(), EDA_TEXT::SetTextSize(), EDA_TEXT::SetTextThickness(), and EROT::spin.
Referenced by loadPlainText(), and loadSymbolText().
Definition at line 1399 of file sch_eagle_plugin.cpp.
References ConvertArcCenter(), EWIRE::curve, DEGREES_T, kiCadLayer(), EWIRE::layer, ECOORD::ToSchUnits(), EWIRE::width, VECTOR2< T >::x, EWIRE::x1, EWIRE::x2, VECTOR2< T >::y, EWIRE::y1, and EWIRE::y2.
Referenced by loadSegments(), and loadSheet().
Move any labels on the wire to the new end point of the wire.
Definition at line 2756 of file sch_eagle_plugin.cpp.
References SCH_LINE::GetBoundingBox(), getCurrentScreen(), SCH_LINE::GetEndPoint(), SCH_LINE::GetStartPoint(), SCH_SCREEN::Items(), EE_RTREE::Overlapping(), and TestSegmentHit().
Referenced by addBusEntries().
|
private |
|
virtualinherited |
Reimplemented in SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 120 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by loadSchematic(), SCH_ALTIUM_PLUGIN::LoadSchematicFile(), CADSTAR_SCH_ARCHIVE_PLUGIN::LoadSchematicFile(), LoadSchematicFile(), SCH_EASYEDAPRO_PLUGIN::LoadSchematicFile(), SYMBOL_LIBRARY_MANAGER::SaveLibrary(), and SYMBOL_LIB_TABLE_RESCUER::WriteRescueLibrary().
|
virtualinherited |
Write aSchematic to a storage file in a format that this SCH_PLUGIN implementation knows about, or it can be used to write a portion of aSchematic to a special kind of export file.
aFileName | is the name of a file to save to on disk. |
aSheet | is the class SCH_SHEET in memory document tree from which to extract information when writing to aFileName. The caller continues to own the SCHEMATIC, and the plugin should refrain from modifying the SCHEMATIC if possible. |
aSchematic | is the SCHEMATIC object used to access any schematic-wide or project information needed to save the document. |
aProperties | is an associative array that can be used to tell the saver how to save the file, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. Set the #PropSaveCurrentSheetOnly property to only save the current sheet. Otherwise, all hierarchical sheets are saved. |
IO_ERROR | if there is a problem saving or exporting. |
Reimplemented in SCH_LEGACY_PLUGIN, and SCH_SEXPR_PLUGIN.
Definition at line 133 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), and SCH_EDIT_FRAME::saveSchematicFile().
|
virtualinherited |
Write aSymbol to an existing library located at aLibraryPath.
If a LIB_SYMBOL by the same name already exists or there are any conflicting alias names, the new LIB_SYMBOL will silently overwrite any existing aliases and/or part because libraries cannot have duplicate alias names. It is the responsibility of the caller to check the library for conflicts before saving.
aLibraryPath | is a locator for the "library", usually a directory, file, or URL containing several symbols. |
aSymbol | is what to store in the library. The library is refreshed and the caller must update any LIB_SYMBOL pointers that may have changed. |
aProperties | is an associative array that can be used to tell the saver how to save the symbol, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL. |
IO_ERROR | if there is a problem saving. |
Reimplemented in SCH_HTTP_LIB_PLUGIN, SCH_SEXPR_PLUGIN, and SCH_LEGACY_PLUGIN.
Definition at line 167 of file sch_plugin.cpp.
References NOT_IMPLEMENTED.
Referenced by PANEL_SYM_LIB_TABLE::convertLibrary(), SYMBOL_EDIT_FRAME::ExportSymbol(), SCH_EDITOR_CONTROL::ExportSymbolsToLibrary(), loadLibrary(), CADSTAR_SCH_ARCHIVE_PLUGIN::LoadSchematicFile(), SCH_EASYEDAPRO_PLUGIN::LoadSchematicFile(), SCH_ALTIUM_PLUGIN::ParseFileHeader(), SCH_ALTIUM_PLUGIN::ParsePowerPort(), SYMBOL_LIBRARY_MANAGER::LIB_BUFFER::SaveBuffer(), SYMBOL_LIBRARY_MANAGER::SaveLibrary(), SYMBOL_LIB_TABLE::SaveSymbol(), and SYMBOL_LIB_TABLE_RESCUER::WriteRescueLibrary().
|
inlinevirtualinherited |
Some library plugins need to have access to their parent library table.
aTable | is the table this plugin is registered within. |
Reimplemented in SCH_DATABASE_PLUGIN, and SCH_HTTP_LIB_PLUGIN.
Definition at line 510 of file sch_io_mgr.h.
Referenced by SYMBOL_LIB_TABLE::FindRow(), SYMBOL_LIB_TABLE::LoadSymbolLib(), and SYMBOL_LIB_TABLE_ROW::Refresh().
|
inlineoverridevirtual |
Set an optional progress reporter.
Reimplemented from SCH_PLUGIN.
Definition at line 93 of file sch_eagle_plugin.h.
References m_progressReporter.
|
inlineoverridevirtual |
Set an optional reporter for warnings/errors.
Reimplemented from SCH_PLUGIN.
Definition at line 91 of file sch_eagle_plugin.h.
References m_reporter.
|
inlinevirtualinherited |
Reimplemented in SCH_DATABASE_PLUGIN, and SCH_HTTP_LIB_PLUGIN.
Definition at line 452 of file sch_io_mgr.h.
Referenced by SYMBOL_LIB_TABLE_ROW::SupportsSubLibraries().
|
virtualinherited |
Append supported SCH_PLUGIN options to aListToAppenTo along with internationalized descriptions.
Options are typically appended so that a derived SCH_PLUGIN can call its base class function by the same name first, thus inheriting options declared there. (Some base class options could pertain to all Symbol*() functions in all derived SCH_PLUGINs.) Note that since aListToAppendTo is a PROPERTIES object, all options will be unique and last guy wins.
aListToAppendTo | holds a tuple of
In the future perhaps aListToAppendTo evolves to something capable of also holding a wxValidator for the cells in said dialog: http://forums.wxwidgets.org/viewtopic.php?t=23277&p=104180. This would require a 3 column list, and introducing wx GUI knowledge to SCH_PLUGIN, which has been avoided to date. |
Reimplemented in CADSTAR_SCH_ARCHIVE_PLUGIN.
Definition at line 204 of file sch_plugin.cpp.
Referenced by SYMBOL_GRID_TRICKS::optionsEditor().
|
private |
Translate an Eagle-style bus name into one that is KiCad-compatible.
For vector buses such as A[7..0] this has no impact. For group buses, we translate from Eagle-style to KiCad-style.
aEagleName | is the name of the bus from the Eagle schematic |
Definition at line 3447 of file sch_eagle_plugin.cpp.
References NET_SETTINGS::ParseBusVector().
Referenced by loadSheet().
const double SCH_EAGLE_PLUGIN::ARC_ACCURACY = SCH_IU_PER_MM * 0.01 |
Definition at line 84 of file sch_eagle_plugin.h.
Referenced by loadPolyLine(), and loadSymbolPolyLine().
Definition at line 280 of file sch_eagle_plugin.h.
Referenced by checkConnections(), loadSegments(), and loadSheet().
|
private |
Definition at line 250 of file sch_eagle_plugin.h.
Referenced by checkpoint(), and loadSchematic().
|
private |
Definition at line 243 of file sch_eagle_plugin.h.
Referenced by loadInstance(), and loadSchematic().
|
private |
Definition at line 238 of file sch_eagle_plugin.h.
Referenced by LoadSchematicFile(), and loadSheet().
|
private |
Definition at line 251 of file sch_eagle_plugin.h.
Referenced by checkpoint().
|
private |
Definition at line 255 of file sch_eagle_plugin.h.
Referenced by kiCadLayer(), and loadLayerDefs().
|
private |
Library name to save symbols.
Definition at line 239 of file sch_eagle_plugin.h.
Referenced by getLibName().
|
private |
Definition at line 233 of file sch_eagle_plugin.h.
Referenced by addImplicitConnections(), and loadSchematic().
|
private |
Definition at line 254 of file sch_eagle_plugin.h.
Referenced by countNets(), loadLabel(), and loadSegments().
|
private |
Positions of pins and wire endings mapped to its parent.
Definition at line 277 of file sch_eagle_plugin.h.
|
private |
Definition at line 242 of file sch_eagle_plugin.h.
Referenced by loadInstance(), and loadSchematic().
|
private |
PI to create KiCad symbol library.
Definition at line 246 of file sch_eagle_plugin.h.
Referenced by loadLibrary(), loadSchematic(), and LoadSchematicFile().
|
private |
map from symbol reference to global label equivalent
Wire intersection points, used for quick checks whether placing a net label in a particular place would short two nets.
Definition at line 256 of file sch_eagle_plugin.h.
Referenced by loadSegments().
|
private |
optional; may be nullptr
Definition at line 249 of file sch_eagle_plugin.h.
Referenced by checkpoint(), loadSchematic(), LoadSchematicFile(), and SetProgressReporter().
|
private |
Library plugin properties.
Definition at line 247 of file sch_eagle_plugin.h.
Referenced by loadLibrary(), and LoadSchematicFile().
|
private |
Reporter for warnings/errors.
Map references to missing symbol units data
Definition at line 230 of file sch_eagle_plugin.h.
Referenced by loadInstance(), SCH_EAGLE_PLUGIN(), and SetReporter().
|
private |
The root sheet of the schematic being loaded.
Definition at line 235 of file sch_eagle_plugin.h.
Referenced by getLibName(), loadSchematic(), LoadSchematicFile(), and SCH_EAGLE_PLUGIN().
|
private |
Passed to Load(), the schematic object being loaded.
Definition at line 240 of file sch_eagle_plugin.h.
Referenced by getLibFileName(), getLibName(), loadLibrary(), loadSchematic(), LoadSchematicFile(), and SCH_EAGLE_PLUGIN().
|
private |
Nets as defined in the <nets> sections of an Eagle schematic file.
Definition at line 274 of file sch_eagle_plugin.h.
Referenced by adjustNetLabels(), and loadSegments().
|
private |
The current sheet path of the schematic being loaded.
Definition at line 236 of file sch_eagle_plugin.h.
Referenced by getCurrentScreen(), getCurrentSheet(), and loadSchematic().
|
private |
for progress reporting
Definition at line 252 of file sch_eagle_plugin.h.
Referenced by checkpoint(), and loadSchematic().
|
private |
deviceset/@uservalue for device.
Definition at line 244 of file sch_eagle_plugin.h.
Referenced by loadLibrary().
|
private |
Eagle file version.
Definition at line 237 of file sch_eagle_plugin.h.
Referenced by LoadSchematicFile().
|
private |
Wires and labels of a single connection (segment in Eagle nomenclature)
Definition at line 261 of file sch_eagle_plugin.h.
Referenced by adjustNetLabels(), and loadSegments().