KiCad PCB EDA Suite
NETLIST_EXPORTER Class Reference

Class NETLIST_EXPORTER is a abstract class used for the netlist exporters that eeschema supports. More...

#include <netlist_exporter.h>

Inheritance diagram for NETLIST_EXPORTER:
NETLIST_EXPORTER_CADSTAR NETLIST_EXPORTER_GENERIC NETLIST_EXPORTER_ORCADPCB2 NETLIST_EXPORTER_PSPICE NETLIST_EXPORTER_KICAD NETLIST_EXPORTER_PSPICE_SIM

Public Member Functions

 NETLIST_EXPORTER (NETLIST_OBJECT_LIST *aMasterList)
 Constructor. More...
 
virtual ~NETLIST_EXPORTER ()
 
virtual bool WriteNetlist (const wxString &aOutFileName, unsigned aNetlistOptions)
 Function WriteNetlist writes to specified output file. More...
 

Static Public Member Functions

static wxString MakeCommandLine (const wxString &aFormatString, const wxString &aNetlistFile, const wxString &aFinalFile, const wxString &aProjectDirectory)
 Function MakeCommandLine builds up a string that describes a command line for executing a child process. More...
 

Protected Member Functions

SCH_COMPONENTfindNextComponentAndCreatePinList (EDA_ITEM *aItem, SCH_SHEET_PATH *aSheetPath)
 Function findNextComponentAndCreatePinList finds a component from the DrawList and builds its pin list in m_SortedComponentPinList. More...
 
SCH_COMPONENTfindNextComponent (EDA_ITEM *aItem, SCH_SHEET_PATH *aSheetPath)
 
void eraseDuplicatePins ()
 Function eraseDuplicatePins erase duplicate Pins from m_SortedComponentPinList (i.e. More...
 
bool addPinToComponentPinList (SCH_COMPONENT *Component, SCH_SHEET_PATH *sheet, LIB_PIN *PinEntry)
 Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList. More...
 
void findAllUnitsOfComponent (SCH_COMPONENT *aComponent, LIB_PART *aEntry, SCH_SHEET_PATH *aSheetPath)
 Function findAllUnitsOfComponent is used for "multiple parts per package" components. More...
 

Static Protected Member Functions

static void sprintPinNetName (wxString &aResult, const wxString &aNetNameFormat, NETLIST_OBJECT *aPin, bool aUseNetcodeAsNetName=false)
 Function sprintPinNetName formats the net name for aPin using aNetNameFormat into aResult. More...
 

Protected Attributes

NETLIST_OBJECT_LISTm_masterList
 
NETLIST_OBJECTS m_SortedComponentPinList
 yes ownership, connected items flat list More...
 
UNIQUE_STRINGS m_ReferencesAlreadyFound
 Used for "multi parts per package" components, avoids processing a lib component more than once. More...
 
std::set< LIB_PART *, LIB_PART_LESS_THANm_LibParts
 unique library parts used. LIB_PART items are sorted by names More...
 

Detailed Description

Class NETLIST_EXPORTER is a abstract class used for the netlist exporters that eeschema supports.

Definition at line 87 of file netlist_exporter.h.

Constructor & Destructor Documentation

NETLIST_EXPORTER::NETLIST_EXPORTER ( NETLIST_OBJECT_LIST aMasterList)
inline

Constructor.

Parameters
aMasterListwe take ownership of this here.
aLibTableis the symbol library table of the project.

Definition at line 173 of file netlist_exporter.h.

173  :
174  m_masterList( aMasterList )
175  {
176  wxASSERT( aMasterList );
177  }
NETLIST_OBJECT_LIST * m_masterList
virtual NETLIST_EXPORTER::~NETLIST_EXPORTER ( )
inlinevirtual

Definition at line 179 of file netlist_exporter.h.

References m_masterList.

180  {
181  delete m_masterList; // I own the list itself in this instance.
182  }
NETLIST_OBJECT_LIST * m_masterList

Member Function Documentation

bool NETLIST_EXPORTER::addPinToComponentPinList ( SCH_COMPONENT Component,
SCH_SHEET_PATH sheet,
LIB_PIN PinEntry 
)
protected

Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList.

A pin description is a pointer to the corresponding structure created by BuildNetList() in the table g_NetObjectslist.

Definition at line 249 of file netlist_exporter.cpp.

References DisplayError(), NETLIST_OBJECT_LIST::GetItem(), LIB_PIN::GetNumber(), NETLIST_OBJECT::m_Link, m_masterList, NETLIST_OBJECT::m_PinNum, NETLIST_OBJECT::m_SheetPath, m_SortedComponentPinList, NETLIST_OBJECT::m_Type, MAXPIN, and NET_PIN.

Referenced by findAllUnitsOfComponent(), and findNextComponentAndCreatePinList().

251 {
252  // Search the PIN description for Pin in g_NetObjectslist
253  for( unsigned ii = 0; ii < m_masterList->size(); ii++ )
254  {
255  NETLIST_OBJECT* pin = m_masterList->GetItem( ii );
256 
257  if( pin->m_Type != NET_PIN )
258  continue;
259 
260  if( pin->m_Link != aComponent )
261  continue;
262 
263  if( pin->m_PinNum != aPin->GetNumber() )
264  continue;
265 
266  // most expensive test at the end.
267  if( pin->m_SheetPath != *aSheetPath )
268  continue;
269 
270  m_SortedComponentPinList.push_back( pin );
271 
272  if( m_SortedComponentPinList.size() >= MAXPIN )
273  {
274  // Log message for Internal error
275  DisplayError( NULL, wxT( "addPinToComponentPinList err: MAXPIN reached" ) );
276  }
277 
278  return true; // we're done, we appended.
279  }
280 
281  return false;
282 }
NETLIST_OBJECT * GetItem(unsigned aIdx) const
Acces to an item in list.
#define MAXPIN
Definition: netlist.h:53
SCH_SHEET_PATH m_SheetPath
NETLIST_ITEM_T m_Type
NETLIST_OBJECT_LIST * m_masterList
NETLIST_OBJECTS m_SortedComponentPinList
yes ownership, connected items flat list
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:73
void NETLIST_EXPORTER::eraseDuplicatePins ( )
protected

Function eraseDuplicatePins erase duplicate Pins from m_SortedComponentPinList (i.e.

set pointer in this list to NULL). (This is a list of pins found in the whole schematic, for a single component.) These duplicate pins were put in list because some pins (powers... ) are found more than one time when we have a multiple parts per package component. For instance, a 74ls00 has 4 parts, and therefore the VCC pin and GND pin appears 4 times in the list. Note: this list MUST be sorted by pin number (.m_PinNum member value) Also set the m_Flag member of "removed" NETLIST_OBJECT pin item to 1

Definition at line 285 of file netlist_exporter.cpp.

References m_SortedComponentPinList, and PAD_CONNECT.

Referenced by findNextComponentAndCreatePinList().

286 {
287  for( unsigned ii = 0; ii < m_SortedComponentPinList.size(); ii++ )
288  {
289  if( m_SortedComponentPinList[ii] == NULL ) /* already deleted */
290  continue;
291 
292  /* Search for duplicated pins
293  * If found, remove duplicates. The priority is to keep connected pins
294  * and remove unconnected
295  * - So this allows (for instance when using multi op amps per package
296  * - to connect only one op amp to power
297  * Because the pin list is sorted by m_PinNum value, duplicated pins
298  * are necessary successive in list
299  */
300  int idxref = ii;
301  for( unsigned jj = ii + 1; jj < m_SortedComponentPinList.size(); jj++ )
302  {
303  if( m_SortedComponentPinList[jj] == NULL ) // Already removed
304  continue;
305 
306  // if other pin num, stop search,
307  // because all pins having the same number are consecutive in list.
308  if( m_SortedComponentPinList[idxref]->m_PinNum != m_SortedComponentPinList[jj]->m_PinNum )
309  break;
310 
311  if( m_SortedComponentPinList[idxref]->GetConnectionType() == PAD_CONNECT )
312  {
313  m_SortedComponentPinList[jj]->m_Flag = 1;
314  m_SortedComponentPinList[jj] = NULL;
315  }
316  else /* the reference pin is not connected: remove this pin if the
317  * other pin is connected */
318  {
319  if( m_SortedComponentPinList[jj]->GetConnectionType() == PAD_CONNECT )
320  {
321  m_SortedComponentPinList[idxref]->m_Flag = 1;
322  m_SortedComponentPinList[idxref] = NULL;
323  idxref = jj;
324  }
325  else // the 2 pins are not connected: remove the tested pin,
326  { // and continue ...
327  m_SortedComponentPinList[jj]->m_Flag = 1;
328  m_SortedComponentPinList[jj] = NULL;
329  }
330  }
331  }
332  }
333 }
NETLIST_OBJECTS m_SortedComponentPinList
yes ownership, connected items flat list
void NETLIST_EXPORTER::findAllUnitsOfComponent ( SCH_COMPONENT aComponent,
LIB_PART aEntry,
SCH_SHEET_PATH aSheetPath 
)
protected

Function findAllUnitsOfComponent is used for "multiple parts per package" components.

Search the entire design for all units of aComponent based on matching reference designator, and for each unit, add all its pins to the temporary sorted pin list, m_SortedComponentPinList.

Definition at line 336 of file netlist_exporter.cpp.

References addPinToComponentPinList(), g_RootSheet, SCH_COMPONENT::GetConvert(), LIB_PART::GetNextPin(), SCH_COMPONENT::GetRef(), SCH_COMPONENT::GetUnitSelection(), LIB_PIN_T, and SCH_COMPONENT_T.

Referenced by findNextComponentAndCreatePinList().

338 {
339  wxString ref = aComponent->GetRef( aSheetPath );
340  wxString ref2;
341 
342  SCH_SHEET_LIST sheetList( g_RootSheet );
343 
344  for( unsigned i = 0; i < sheetList.size(); i++ )
345  {
346  for( EDA_ITEM* item = sheetList[i].LastDrawList(); item; item = item->Next() )
347  {
348  if( item->Type() != SCH_COMPONENT_T )
349  continue;
350 
351  SCH_COMPONENT* comp2 = (SCH_COMPONENT*) item;
352 
353  ref2 = comp2->GetRef( &sheetList[i] );
354 
355  if( ref2.CmpNoCase( ref ) != 0 )
356  continue;
357 
358  int unit2 = comp2->GetUnitSelection( &sheetList[i] ); // slow
359 
360  for( LIB_PIN* pin = aEntry->GetNextPin(); pin; pin = aEntry->GetNextPin( pin ) )
361  {
362  wxASSERT( pin->Type() == LIB_PIN_T );
363 
364  if( pin->GetUnit() && pin->GetUnit() != unit2 )
365  continue;
366 
367  if( pin->GetConvert() && pin->GetConvert() != comp2->GetConvert() )
368  continue;
369 
370  // A suitable pin is found: add it to the current list
371  addPinToComponentPinList( comp2, &sheetList[i], pin );
372  }
373  }
374  }
375 }
Class SCH_SHEET_LIST.
int GetUnitSelection(SCH_SHEET_PATH *aSheet)
EDA_ITEM * Next() const
Definition: base_struct.h:233
int GetConvert() const
SCH_SHEET * g_RootSheet
Definition: eeschema.cpp:55
const wxString GetRef(const SCH_SHEET_PATH *aSheet)
Return the reference for the given sheet path.
LIB_PIN * GetNextPin(LIB_PIN *aItem=NULL)
Return the next pin object from the draw list.
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:69
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:178
bool addPinToComponentPinList(SCH_COMPONENT *Component, SCH_SHEET_PATH *sheet, LIB_PIN *PinEntry)
Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList...
SCH_COMPONENT * NETLIST_EXPORTER::findNextComponent ( EDA_ITEM aItem,
SCH_SHEET_PATH aSheetPath 
)
protected

Definition at line 112 of file netlist_exporter.cpp.

References SCH_COMPONENT::GetPartRef(), SCH_COMPONENT::GetRef(), LIB_PART::GetUnitCount(), UNIQUE_STRINGS::Lookup(), m_LibParts, m_ReferencesAlreadyFound, EDA_ITEM::Next(), SCH_COMPONENT_T, and EDA_ITEM::Type().

Referenced by NETLIST_EXPORTER_GENERIC::makeComponents().

113 {
114  wxString ref;
115 
116  // continue searching from the middle of a linked list (the draw list)
117  for( ; aItem; aItem = aItem->Next() )
118  {
119  if( aItem->Type() != SCH_COMPONENT_T )
120  continue;
121 
122  // found next component
123  SCH_COMPONENT* comp = (SCH_COMPONENT*) aItem;
124 
125  // Power symbols and other components which have the reference starting
126  // with "#" are not included in netlist (pseudo or virtual components)
127  ref = comp->GetRef( aSheetPath );
128 
129  if( ref[0] == wxChar( '#' ) )
130  continue;
131 
132  // if( Component->m_FlagControlMulti == 1 )
133  // continue; /* yes */
134  // removed because with multiple instances of one schematic
135  // (several sheets pointing to 1 screen), this will be erroneously be
136  // toggled.
137 
138  LIB_PART* part = comp->GetPartRef().lock().get();
139 
140  if( !part )
141  continue;
142 
143  // If component is a "multi parts per package" type
144  if( part->GetUnitCount() > 1 )
145  {
146  // test if this reference has already been processed, and if so skip
147  if( m_ReferencesAlreadyFound.Lookup( ref ) )
148  continue;
149  }
150 
151  // record the usage of this library component entry.
152  m_LibParts.insert( part ); // rejects non-unique pointers
153 
154  return comp;
155  }
156 
157  return NULL;
158 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:225
bool Lookup(const wxString &aString)
Function Lookup returns true if aString already exists in the set, otherwise returns false and adds a...
PART_REF & GetPartRef()
UNIQUE_STRINGS m_ReferencesAlreadyFound
Used for "multi parts per package" components, avoids processing a lib component more than once...
EDA_ITEM * Next() const
Definition: base_struct.h:233
std::set< LIB_PART *, LIB_PART_LESS_THAN > m_LibParts
unique library parts used. LIB_PART items are sorted by names
Define a library symbol object.
const wxString GetRef(const SCH_SHEET_PATH *aSheet)
Return the reference for the given sheet path.
int GetUnitCount() const
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:69
SCH_COMPONENT * NETLIST_EXPORTER::findNextComponentAndCreatePinList ( EDA_ITEM aItem,
SCH_SHEET_PATH aSheetPath 
)
protected

Function findNextComponentAndCreatePinList finds a component from the DrawList and builds its pin list in m_SortedComponentPinList.

This list is sorted by pin num. the component is the next actual component after aItem (power symbols and virtual components that have their reference starting by '#'are skipped).

Definition at line 169 of file netlist_exporter.cpp.

References addPinToComponentPinList(), eraseDuplicatePins(), findAllUnitsOfComponent(), SCH_COMPONENT::GetConvert(), SCH_COMPONENT::GetPartRef(), LIB_PART::GetPins(), SCH_COMPONENT::GetRef(), LIB_PART::GetUnitCount(), SCH_COMPONENT::GetUnitSelection(), LIB_PIN_T, UNIQUE_STRINGS::Lookup(), m_LibParts, m_ReferencesAlreadyFound, m_SortedComponentPinList, EDA_ITEM::Next(), SCH_COMPONENT_T, MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::sort(), sortPinsByNum(), and EDA_ITEM::Type().

Referenced by NETLIST_EXPORTER_PSPICE::ProcessNetlist(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), and NETLIST_EXPORTER_CADSTAR::WriteNetlist().

171 {
172  wxString ref;
173 
174  m_SortedComponentPinList.clear();
175 
176  // continue searching from the middle of a linked list (the draw list)
177  for( ; aItem; aItem = aItem->Next() )
178  {
179  if( aItem->Type() != SCH_COMPONENT_T )
180  continue;
181 
182  // found next component
183  SCH_COMPONENT* comp = (SCH_COMPONENT*) aItem;
184 
185  // Power symbols and other components which have the reference starting
186  // with "#" are not included in netlist (pseudo or virtual components)
187  ref = comp->GetRef( aSheetPath );
188 
189  if( ref[0] == wxChar( '#' ) )
190  continue;
191 
192  // if( Component->m_FlagControlMulti == 1 )
193  // continue; /* yes */
194  // removed because with multiple instances of one schematic
195  // (several sheets pointing to 1 screen), this will be erroneously be
196  // toggled.
197 
198  LIB_PART* part = comp->GetPartRef().lock().get();
199 
200  if( !part )
201  continue;
202 
203  // If component is a "multi parts per package" type
204  if( part->GetUnitCount() > 1 )
205  {
206  // test if this reference has already been processed, and if so skip
207  if( m_ReferencesAlreadyFound.Lookup( ref ) )
208  continue;
209 
210  // Collect all pins for this reference designator by searching
211  // the entire design for other parts with the same reference designator.
212  // This is only done once, it would be too expensive otherwise.
213  findAllUnitsOfComponent( comp, part, aSheetPath );
214  }
215 
216  else // entry->GetUnitCount() <= 1 means one part per package
217  {
218  LIB_PINS pins; // constructed once here
219 
220  part->GetPins( pins, comp->GetUnitSelection( aSheetPath ), comp->GetConvert() );
221 
222  for( size_t i = 0; i < pins.size(); i++ )
223  {
224  LIB_PIN* pin = pins[i];
225 
226  wxASSERT( pin->Type() == LIB_PIN_T );
227 
228  addPinToComponentPinList( comp, aSheetPath, pin );
229  }
230  }
231 
232  // Sort pins in m_SortedComponentPinList by pin number
233  sort( m_SortedComponentPinList.begin(),
235 
236  // Remove duplicate Pins in m_SortedComponentPinList
238 
239  // record the usage of this library component entry.
240  m_LibParts.insert( part ); // rejects non-unique pointers
241 
242  return comp;
243  }
244 
245  return NULL;
246 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:225
bool Lookup(const wxString &aString)
Function Lookup returns true if aString already exists in the set, otherwise returns false and adds a...
PART_REF & GetPartRef()
UNIQUE_STRINGS m_ReferencesAlreadyFound
Used for "multi parts per package" components, avoids processing a lib component more than once...
int GetUnitSelection(SCH_SHEET_PATH *aSheet)
EDA_ITEM * Next() const
Definition: base_struct.h:233
void findAllUnitsOfComponent(SCH_COMPONENT *aComponent, LIB_PART *aEntry, SCH_SHEET_PATH *aSheetPath)
Function findAllUnitsOfComponent is used for "multiple parts per package" components.
static bool sortPinsByNum(NETLIST_OBJECT *aPin1, NETLIST_OBJECT *aPin2)
Comparison routine for sorting by pin numbers.
void GetPins(LIB_PINS &aList, int aUnit=0, int aConvert=0)
Return a list of pin object pointers from the draw item list.
std::set< LIB_PART *, LIB_PART_LESS_THAN > m_LibParts
unique library parts used. LIB_PART items are sorted by names
int GetConvert() const
Define a library symbol object.
const wxString GetRef(const SCH_SHEET_PATH *aSheet)
Return the reference for the given sheet path.
int GetUnitCount() const
NETLIST_OBJECTS m_SortedComponentPinList
yes ownership, connected items flat list
std::vector< LIB_PIN * > LIB_PINS
Helper for defining a list of pin object pointers.
Definition: lib_draw_item.h:60
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:69
bool addPinToComponentPinList(SCH_COMPONENT *Component, SCH_SHEET_PATH *sheet, LIB_PIN *PinEntry)
Function addPinToComponentPinList adds a new pin description to the pin list m_SortedComponentPinList...
void eraseDuplicatePins()
Function eraseDuplicatePins erase duplicate Pins from m_SortedComponentPinList (i.e.
wxString NETLIST_EXPORTER::MakeCommandLine ( const wxString &  aFormatString,
const wxString &  aNetlistFile,
const wxString &  aFinalFile,
const wxString &  aProjectDirectory 
)
static

Function MakeCommandLine builds up a string that describes a command line for executing a child process.

The input and output file names along with any options to the executable are all possibly in the returned string.

Parameters
aFormatStringholds:
  • the name of the external program
  • any options needed by that program
  • formatting sequences, see below.
aNetlistFileis the name of the input file for the external program, that is a intermediate netlist file in xml format.
aFinalFileis the name of the output file that the user expects.
aProjectDirectoryis used for P replacement, it should omit the trailing '/'.

Supported formatting sequences and their meaning:

  • B => base filename of selected output file, minus path and extension.
  • I => complete filename and path of the temporary input file.
  • O => complete filename and path of the user chosen output file.
  • P => project directory, without name and without trailing '/'

Definition at line 50 of file netlist_exporter.cpp.

Referenced by SCH_EDIT_FRAME::WriteNetListFile().

52 {
53  // Expand format symbols in the command line:
54  // %B => base filename of selected output file, minus path and extension.
55  // %P => project directory name, without trailing '/' or '\'.
56  // %I => full filename of the input file (the intermediate net file).
57  // %O => complete filename and path (but without extension) of the user chosen output file.
58 
59  wxString ret = aFormatString;
60  wxFileName in = aNetlistFile;
61  wxFileName out = aFinalFile;
62  wxString str_out = out.GetFullPath();
63 
64  ret.Replace( "%P", aProjectPath, true );
65  ret.Replace( "%B", out.GetName(), true );
66  ret.Replace( "%I", in.GetFullPath(), true );
67 
68 #ifdef __WINDOWS__
69  // A ugly hack to run xsltproc that has a serious bug on Window since along time:
70  // the filename given after -o option (output filename) cannot use '\' in filename
71  // so replace if by '/' if possible (I mean if the filename does not start by "\\"
72  // that is a filename on a Windows server)
73 
74  if( !str_out.StartsWith( "\\\\" ) )
75  str_out.Replace( "\\", "/" );
76 #endif
77 
78  ret.Replace( "%O", str_out, true );
79 
80  return ret;
81 }
void NETLIST_EXPORTER::sprintPinNetName ( wxString &  aResult,
const wxString &  aNetNameFormat,
NETLIST_OBJECT aPin,
bool  aUseNetcodeAsNetName = false 
)
staticprotected

Function sprintPinNetName formats the net name for aPin using aNetNameFormat into aResult.

Net name is:

  • "?" if pin not connected
  • "netname" for global net (like gnd, vcc ..
  • "/path/netname" for the usual nets

if aUseNetcodeAsNetName is true, the net name is just the net code (SPICE only)

Definition at line 84 of file netlist_exporter.cpp.

References NETLIST_OBJECT::GetConnectionType(), NETLIST_OBJECT::GetNet(), NETLIST_OBJECT::GetNetName(), and PAD_CONNECT.

Referenced by NETLIST_EXPORTER_PSPICE::Format(), and NETLIST_EXPORTER_ORCADPCB2::WriteNetlist().

87 {
88  int netcode = aPin->GetNet();
89 
90  // Not wxString::Clear(), which would free memory. We want the worst
91  // case wxString memory to grow to avoid reallocation from within the
92  // caller's loop.
93  aResult.Empty();
94 
95  if( netcode != 0 && aPin->GetConnectionType() == PAD_CONNECT )
96  {
97  if( aUseNetcodeAsNetName )
98  {
99  aResult.Printf( "%d", netcode );
100  }
101  else
102  {
103  aResult = aPin->GetNetName();
104 
105  if( aResult.IsEmpty() ) // No net name: give a name from net code
106  aResult.Printf( aNetNameFormat.GetData(), netcode );
107  }
108  }
109 }
NET_CONNECTION_T GetConnectionType() const
wxString GetNetName(bool adoptTimestamp=false) const
Function GetNetName.
virtual bool NETLIST_EXPORTER::WriteNetlist ( const wxString &  aOutFileName,
unsigned  aNetlistOptions 
)
inlinevirtual

Function WriteNetlist writes to specified output file.

Reimplemented in NETLIST_EXPORTER_PSPICE, NETLIST_EXPORTER_GENERIC, NETLIST_EXPORTER_CADSTAR, NETLIST_EXPORTER_KICAD, and NETLIST_EXPORTER_ORCADPCB2.

Definition at line 188 of file netlist_exporter.h.

Referenced by SCH_EDIT_FRAME::WriteNetListFile().

189  {
190  return false;
191  }

Member Data Documentation

std::set<LIB_PART*, LIB_PART_LESS_THAN> NETLIST_EXPORTER::m_LibParts
protected

unique library parts used. LIB_PART items are sorted by names

Definition at line 102 of file netlist_exporter.h.

Referenced by findNextComponent(), findNextComponentAndCreatePinList(), NETLIST_EXPORTER_GENERIC::makeLibParts(), and NETLIST_EXPORTER_GENERIC::makeListOfNets().

UNIQUE_STRINGS NETLIST_EXPORTER::m_ReferencesAlreadyFound
protected
NETLIST_OBJECTS NETLIST_EXPORTER::m_SortedComponentPinList
protected

yes ownership, connected items flat list

Used to temporarily store and filter the list of pins of a schematic component when generating schematic component data in netlist (comp section). No ownership of members.

Definition at line 95 of file netlist_exporter.h.

Referenced by addPinToComponentPinList(), eraseDuplicatePins(), findNextComponentAndCreatePinList(), NETLIST_EXPORTER_PSPICE::ProcessNetlist(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), and NETLIST_EXPORTER_CADSTAR::WriteNetlist().


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