KiCad PCB EDA Suite
PCAD2KICAD::PCB_VIA Class Reference

#include <pcb_via.h>

Inheritance diagram for PCAD2KICAD::PCB_VIA:
PCAD2KICAD::PCB_PAD PCAD2KICAD::PCB_COMPONENT

Public Member Functions

 PCB_VIA (PCB_CALLBACKS *aCallbacks, BOARD *aBoard)
 
 ~PCB_VIA ()
 
virtual void Parse (XNODE *aNode, const wxString &aDefaultMeasurementUnit, const wxString &aActualConversion) override
 
virtual void Flip () override
 
void AddToModule (MODULE *aModule) override
 
void AddToModule (MODULE *aModule, int aRotation, bool aEncapsulatedPad)
 
void AddToBoard () override
 
virtual void SetPosOffset (int aX_offs, int aY_offs)
 
PCB_LAYER_ID GetKiCadLayer ()
 
int GetNewTimestamp ()
 
int GetNetCode (wxString aNetName)
 

Public Attributes

int m_number
 
int m_hole
 
bool m_isHolePlated
 
PCB_PAD_SHAPES_ARRAY m_shapes
 
int m_tag
 
char m_objType
 
int m_PCadLayer
 
PCB_LAYER_ID m_KiCadLayer
 
int m_timestamp
 
int m_positionX
 
int m_positionY
 
int m_rotation
 
TTEXTVALUE m_name
 
wxString m_net
 
int m_netCode
 
wxString m_compRef
 
wxString m_patGraphRefName
 

Protected Attributes

PCB_CALLBACKSm_callbacks
 
BOARDm_board
 

Detailed Description

Definition at line 40 of file pcb_via.h.

Constructor & Destructor Documentation

PCAD2KICAD::PCB_VIA::PCB_VIA ( PCB_CALLBACKS aCallbacks,
BOARD aBoard 
)

Definition at line 38 of file pcb_via.cpp.

References PCAD2KICAD::PCB_COMPONENT::m_objType.

38  : PCB_PAD( aCallbacks, aBoard )
39 {
40  m_objType = wxT( 'V' );
41 }
PCB_PAD(PCB_CALLBACKS *aCallbacks, BOARD *aBoard)
Definition: pcb_pad.cpp:38
PCAD2KICAD::PCB_VIA::~PCB_VIA ( )

Definition at line 44 of file pcb_via.cpp.

45 {
46 }

Member Function Documentation

void PCAD2KICAD::PCB_PAD::AddToBoard ( )
overridevirtualinherited

Implements PCAD2KICAD::PCB_COMPONENT.

Definition at line 311 of file pcb_pad.cpp.

References BOARD::Add(), ADD_APPEND, PCAD2KICAD::PCB_PAD::AddToModule(), DLIST< T >::Append(), B_Cu, F_Cu, i, IsCopperLayer(), PCAD2KICAD::PCB_COMPONENT::m_board, PCAD2KICAD::PCB_PAD::m_defaultPinDes, PCAD2KICAD::PCB_PAD_SHAPE::m_height, PCAD2KICAD::PCB_PAD::m_hole, PCAD2KICAD::PCB_COMPONENT::m_KiCadLayer, PCAD2KICAD::PCB_COMPONENT::m_name, PCAD2KICAD::PCB_COMPONENT::m_netCode, PCAD2KICAD::PCB_COMPONENT::m_objType, PCAD2KICAD::PCB_COMPONENT::m_positionX, PCAD2KICAD::PCB_COMPONENT::m_positionY, PCAD2KICAD::PCB_PAD::m_shapes, BOARD::m_Track, PCAD2KICAD::PCB_PAD_SHAPE::m_width, VIA::SetDrill(), TRACK::SetEnd(), BOARD_ITEM::SetLayer(), VIA::SetLayerPair(), BOARD_CONNECTED_ITEM::SetNetCode(), MODULE::SetPosition(), VIA::SetPosition(), EDA_ITEM::SetTimeStamp(), VIA::SetViaType(), TRACK::SetWidth(), PCAD2KICAD::_TTEXTVALUE::text, VIA, and VIA_THROUGH.

Referenced by PCAD2KICAD::PCB_PAD::AddToModule().

312 {
313  PCB_PAD_SHAPE* padShape;
314  int i;
315  int width = 0;
316  int height = 0;
317 
318  if( m_objType == wxT( 'V' ) ) // via
319  {
320  // choose one of the shapes
321  for( i = 0; i < (int) m_shapes.GetCount(); i++ )
322  {
323  padShape = m_shapes[i];
324 
325  if( padShape->m_width > 0 && padShape->m_height > 0 )
326  {
327  if( padShape->m_KiCadLayer == F_Cu
328  || padShape->m_KiCadLayer == B_Cu )
329  {
330  width = padShape->m_width;
331  height = padShape->m_height;
332 
333  break;
334  }
335  }
336  }
337 
338  if( width == 0 || height == 0 )
339  return;
340 
341  if( IsCopperLayer( m_KiCadLayer ) )
342  {
343  VIA* via = new VIA( m_board );
344  m_board->m_Track.Append( via );
345 
346  via->SetTimeStamp( 0 );
347 
350 
351  via->SetWidth( height );
352  via->SetViaType( VIA_THROUGH );
353  via->SetLayerPair( F_Cu, B_Cu );
354  via->SetDrill( m_hole );
355 
356  via->SetLayer( m_KiCadLayer );
357  via->SetNetCode( m_netCode );
358  }
359  }
360  else // pad
361  {
362  MODULE* module = new MODULE( m_board );
363  m_board->Add( module, ADD_APPEND );
364 
366 
368  AddToModule( module, 0, true );
369 
370  }
371 }
void SetViaType(VIATYPE_T aViaType)
Definition: class_track.h:455
void SetPosition(const wxPoint &aPoint) override
Definition: class_track.h:427
virtual void SetLayer(PCB_LAYER_ID aLayer)
Function SetLayer sets the layer this item is on.
void SetEnd(const wxPoint &aEnd)
Definition: class_track.h:118
void Append(T *aNewElement)
Function Append adds aNewElement to the end of the list.
Definition: dlist.h:177
void AddToModule(MODULE *aModule) override
Definition: pcb_pad.h:55
void SetWidth(int aWidth)
Definition: class_track.h:115
void Add(BOARD_ITEM *aItem, ADD_MODE aMode=ADD_INSERT) override
Adds an item to the container.
wxString m_defaultPinDes
Definition: pcb_pad.h:63
bool SetNetCode(int aNetCode, bool aNoAssert=false)
Function SetNetCode sets net using a net code.
void SetLayerPair(PCB_LAYER_ID aTopLayer, PCB_LAYER_ID aBottomLayer)
Function SetLayerPair For a via m_Layer contains the top layer, the other layer is in m_BottomLayer...
void SetPosition(const wxPoint &aPos) override
size_t i
Definition: json11.cpp:597
void SetDrill(int aDrill)
Function SetDrill sets the drill value for vias.
Definition: class_track.h:462
bool IsCopperLayer(LAYER_NUM aLayerId)
Function IsCopperLayer tests whether a layer is a copper layer.
PCB_PAD_SHAPES_ARRAY m_shapes
Definition: pcb_pad.h:46
DLIST< TRACK > m_Track
Definition: class_board.h:249
void SetTimeStamp(timestamp_t aNewTimeStamp)
Definition: base_struct.h:203
void PCAD2KICAD::PCB_PAD::AddToModule ( MODULE aModule)
inlineoverridevirtualinherited

Reimplemented from PCAD2KICAD::PCB_COMPONENT.

Definition at line 55 of file pcb_pad.h.

References PCAD2KICAD::PCB_PAD::AddToBoard().

Referenced by PCAD2KICAD::PCB_PAD::AddToBoard().

56  {
57  AddToModule( aModule, 0, true );
58  }
void AddToModule(MODULE *aModule) override
Definition: pcb_pad.h:55
void PCAD2KICAD::PCB_PAD::AddToModule ( MODULE aModule,
int  aRotation,
bool  aEncapsulatedPad 
)
inherited

Definition at line 188 of file pcb_pad.cpp.

References BOARD::Add(), LSET::AllCuMask(), B_Cu, B_Mask, B_Paste, F_Cu, F_Mask, F_Paste, BOARD::FindNet(), NETINFO_ITEM::GetNet(), MODULE::GetOrientation(), MODULE::GetPosition(), i, PCAD2KICAD::PCB_COMPONENT::m_board, PCAD2KICAD::PCB_PAD_SHAPE::m_height, PCAD2KICAD::PCB_PAD::m_hole, PCAD2KICAD::PCB_PAD::m_isHolePlated, PCAD2KICAD::PCB_COMPONENT::m_KiCadLayer, PCAD2KICAD::PCB_COMPONENT::m_name, PCAD2KICAD::PCB_COMPONENT::m_net, PCAD2KICAD::PCB_COMPONENT::m_positionX, PCAD2KICAD::PCB_COMPONENT::m_positionY, PCAD2KICAD::PCB_COMPONENT::m_rotation, PCAD2KICAD::PCB_PAD_SHAPE::m_shape, PCAD2KICAD::PCB_PAD::m_shapes, PCAD2KICAD::PCB_PAD_SHAPE::m_width, PAD_ATTRIB_HOLE_NOT_PLATED, PAD_ATTRIB_SMD, PAD_ATTRIB_STANDARD, PAD_DRILL_SHAPE_CIRCLE, PAD_SHAPE_CIRCLE, PAD_SHAPE_OVAL, PAD_SHAPE_RECT, MODULE::PadsList(), DLIST< T >::PushBack(), RotatePoint(), D_PAD::SetAttribute(), D_PAD::SetDelta(), D_PAD::SetDrillShape(), D_PAD::SetDrillSize(), D_PAD::SetLayerSet(), D_PAD::SetLocalClearance(), D_PAD::SetLocalSolderMaskMargin(), D_PAD::SetName(), BOARD_CONNECTED_ITEM::SetNetCode(), D_PAD::SetOffset(), D_PAD::SetOrientation(), D_PAD::SetPos0(), D_PAD::SetPosition(), D_PAD::SetShape(), D_PAD::SetSize(), and PCAD2KICAD::_TTEXTVALUE::text.

189 {
190  PCB_PAD_SHAPE* padShape;
191  wxString padShapeName = wxT( "Ellipse" );
192  PAD_ATTR_T padType;
193  int i;
194  int width = 0;
195  int height = 0;
196 
197  D_PAD* pad = new D_PAD( aModule );
198 
199  if( !m_isHolePlated && m_hole )
200  {
201  // mechanical hole
202  pad->SetShape( PAD_SHAPE_CIRCLE );
204 
206  pad->SetDrillSize( wxSize( m_hole, m_hole ) );
207  pad->SetSize( wxSize( m_hole, m_hole ) );
208 
209  // Mounting Hole: Solder Mask Margin from Top Layer Width size.
210  // Used the default zone clearance (simplify)
211  if( m_shapes.GetCount() && m_shapes[0]->m_shape == wxT( "MtHole" ) )
212  {
213  int sm_margin = ( m_shapes[0]->m_width - m_hole ) / 2;
214  pad->SetLocalSolderMaskMargin( sm_margin );
215  pad->SetLocalClearance( sm_margin + Millimeter2iu( 0.254 ) );
216  }
217 
218  pad->SetLayerSet( LSET::AllCuMask() | LSET( 2, B_Mask, F_Mask ) );
219  }
220  else
221  {
222  ( m_hole ) ? padType = PAD_ATTRIB_STANDARD : padType = PAD_ATTRIB_SMD;
223 
224  // form layer mask
225  for( i = 0; i < (int) m_shapes.GetCount(); i++ )
226  {
227  padShape = m_shapes[i];
228 
229  if( padShape->m_width > 0 && padShape->m_height > 0 )
230  {
231  if( padShape->m_KiCadLayer == F_Cu ||
232  padShape->m_KiCadLayer == B_Cu )
233  {
234  padShapeName = padShape->m_shape;
235  width = padShape->m_width;
236  height = padShape->m_height;
237 
238  // assume this is SMD pad
239  if( padShape->m_KiCadLayer == F_Cu )
240  pad->SetLayerSet( LSET( 3, F_Cu, F_Paste, F_Mask ) );
241  else
242  pad->SetLayerSet( LSET( 3, B_Cu, B_Paste, B_Mask ) );
243  break;
244  }
245  }
246  }
247 
248  if( width == 0 || height == 0 )
249  {
250  delete pad;
251  return;
252  }
253 
254  if( padType == PAD_ATTRIB_STANDARD )
255  // actually this is a thru-hole pad
256  pad->SetLayerSet( LSET::AllCuMask() | LSET( 2, B_Mask, F_Mask ) );
257 
258  pad->SetName( m_name.text );
259 
260  if( padShapeName == wxT( "Oval" )
261  || padShapeName == wxT( "Ellipse" )
262  || padShapeName == wxT( "MtHole" ) )
263  {
264  if( width != height )
265  pad->SetShape( PAD_SHAPE_OVAL );
266  else
267  pad->SetShape( PAD_SHAPE_CIRCLE );
268  }
269  else if( padShapeName == wxT( "Rect" )
270  || padShapeName == wxT( "RndRect" ) )
271  pad->SetShape( PAD_SHAPE_RECT );
272  else if( padShapeName == wxT( "Polygon" ) )
273  pad->SetShape( PAD_SHAPE_RECT ); // approximation
274 
275  pad->SetSize( wxSize( width, height ) );
276  pad->SetDelta( wxSize( 0, 0 ) );
277  pad->SetOrientation( m_rotation + aRotation );
278 
280  pad->SetOffset( wxPoint( 0, 0 ) );
281  pad->SetDrillSize( wxSize( m_hole, m_hole ) );
282 
283  pad->SetAttribute( padType );
284 
285  // Set the proper net code
286  NETINFO_ITEM* netinfo = m_board->FindNet( m_net );
287  if( netinfo == NULL ) // I believe this should not happen, but just in case
288  {
289  // It is a new net
290  netinfo = new NETINFO_ITEM( m_board, m_net );
291  m_board->Add( netinfo );
292  }
293 
294  pad->SetNetCode( netinfo->GetNet() );
295  }
296 
297  if( !aEncapsulatedPad )
298  {
299  // pad's "Position" is not relative to the module's,
300  // whereas Pos0 is relative to the module's but is the unrotated coordinate.
301  wxPoint padpos( m_positionX, m_positionY );
302  pad->SetPos0( padpos );
303  RotatePoint( &padpos, aModule->GetOrientation() );
304  pad->SetPosition( padpos + aModule->GetPosition() );
305  }
306 
307  aModule->PadsList().PushBack( pad );
308 }
static LSET AllCuMask(int aCuLayerCount=MAX_CU_LAYERS)
Function AllCuMask returns a mask holding the requested number of Cu PCB_LAYER_IDs.
Definition: lset.cpp:673
like PAD_STANDARD, but not plated mechanical use only, no connection allowed
Definition: pad_shapes.h:65
PAD_ATTR_T
Enum PAD_ATTR_T is the set of pad shapes, used with D_PAD::{Set,Get}Attribute() The double name is fo...
Definition: pad_shapes.h:58
Smd pad, appears on the solder paste layer (default)
Definition: pad_shapes.h:61
void SetPosition(const wxPoint &aPos) override
Definition: class_pad.h:219
void SetDrillSize(const wxSize &aSize)
Definition: class_pad.h:274
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:216
void PushBack(T *aNewElement)
Function PushBack puts aNewElement at the end of the list sequence.
Definition: dlist.h:250
Class LSET is a set of PCB_LAYER_IDs.
void SetName(const wxString &aName)
Set the pad name (sometimes called pad number, although it can be an array reference like AA12)...
Definition: class_pad.h:182
double GetOrientation() const
Definition: class_module.h:189
void SetPos0(const wxPoint &aPos)
Definition: class_pad.h:262
void Add(BOARD_ITEM *aItem, ADD_MODE aMode=ADD_INSERT) override
Adds an item to the container.
void SetSize(const wxSize &aSize)
Definition: class_pad.h:268
bool SetNetCode(int aNetCode, bool aNoAssert=false)
Function SetNetCode sets net using a net code.
int GetNet() const
Function GetNet.
Definition: netinfo.h:231
void SetAttribute(PAD_ATTR_T aAttribute)
Definition: class_pad.cpp:409
void SetLocalClearance(int aClearance)
Definition: class_pad.h:418
void SetLayerSet(LSET aLayerMask)
Definition: class_pad.h:401
Class NETINFO_ITEM handles the data for a net.
Definition: netinfo.h:69
void SetDrillShape(PAD_DRILL_SHAPE_T aDrillShape)
Definition: class_pad.h:386
void SetLocalSolderMaskMargin(int aMargin)
Definition: class_pad.h:415
size_t i
Definition: json11.cpp:597
Usual pad.
Definition: pad_shapes.h:60
NETINFO_ITEM * FindNet(int aNetcode) const
Function FindNet searches for a net with the given netcode.
void SetShape(PAD_SHAPE_T aShape)
Definition: class_pad.h:217
void SetOrientation(double aAngle)
Function SetOrientation sets the rotation angle of the pad.
Definition: class_pad.cpp:418
PCB_PAD_SHAPES_ARRAY m_shapes
Definition: pcb_pad.h:46
DLIST< D_PAD > & PadsList()
Definition: class_module.h:163
void SetOffset(const wxPoint &aOffset)
Definition: class_pad.h:277
const wxPoint GetPosition() const override
Definition: class_module.h:184
void SetDelta(const wxSize &aSize)
Definition: class_pad.h:271
void PCAD2KICAD::PCB_PAD::Flip ( )
overridevirtualinherited

Reimplemented from PCAD2KICAD::PCB_COMPONENT.

Definition at line 174 of file pcb_pad.cpp.

References PCAD2KICAD::PCB_COMPONENT::Flip(), FlipLayer(), i, PCAD2KICAD::PCB_COMPONENT::m_KiCadLayer, PCAD2KICAD::PCB_COMPONENT::m_objType, PCAD2KICAD::PCB_COMPONENT::m_rotation, and PCAD2KICAD::PCB_PAD::m_shapes.

175 {
176  int i;
177 
179 
180  if( m_objType == wxT( 'P' ) )
182 
183  for( i = 0; i < (int)m_shapes.GetCount(); i++ )
185 }
PCB_LAYER_ID FlipLayer(PCB_LAYER_ID aLayerId, int aCopperLayersCount)
Function FlippedLayerNumber.
Definition: lset.cpp:472
size_t i
Definition: json11.cpp:597
PCB_PAD_SHAPES_ARRAY m_shapes
Definition: pcb_pad.h:46
int PCAD2KICAD::PCB_COMPONENT::GetNetCode ( wxString  aNetName)
inlineinherited
int PCAD2KICAD::PCB_COMPONENT::GetNewTimestamp ( )
inlineinherited
void PCAD2KICAD::PCB_VIA::Parse ( XNODE aNode,
const wxString &  aDefaultMeasurementUnit,
const wxString &  aActualConversion 
)
overridevirtual

Reimplemented from PCAD2KICAD::PCB_PAD.

Definition at line 49 of file pcb_via.cpp.

References PCAD2KICAD::FindNode(), Format(), PCAD2KICAD::PCB_COMPONENT::GetNetCode(), XNODE::GetParent(), PCAD2KICAD::PCB_COMPONENT::m_board, PCAD2KICAD::PCB_COMPONENT::m_callbacks, PCAD2KICAD::PCB_PAD::m_hole, PCAD2KICAD::PCB_COMPONENT::m_name, PCAD2KICAD::PCB_COMPONENT::m_net, PCAD2KICAD::PCB_COMPONENT::m_netCode, PCAD2KICAD::PCB_COMPONENT::m_positionX, PCAD2KICAD::PCB_COMPONENT::m_positionY, PCAD2KICAD::PCB_COMPONENT::m_rotation, PCAD2KICAD::PCB_PAD::m_shapes, PCAD2KICAD::PCB_VIA_SHAPE::Parse(), PCAD2KICAD::SetPosition(), PCAD2KICAD::SetWidth(), PCAD2KICAD::_TTEXTVALUE::text, and THROW_IO_ERROR.

Referenced by PCAD2KICAD::PCB::DoPCBComponents(), and PCAD2KICAD::PCB_MODULE::Parse().

52 {
53  XNODE* lNode, * tNode;
54  wxString propValue;
55  PCB_VIA_SHAPE* viaShape;
56 
57  m_rotation = 0;
58  lNode = FindNode( aNode, wxT( "viaStyleRef" ) );
59 
60  if( lNode )
61  {
62  lNode->GetAttribute( wxT( "Name" ), &propValue );
63  propValue.Trim( false );
64  propValue.Trim( true );
65  m_name.text = propValue;
66  }
67 
68  lNode = FindNode( aNode, wxT( "pt" ) );
69 
70  if( lNode )
71  SetPosition( lNode->GetNodeContent(), aDefaultMeasurementUnit,
72  &m_positionX, &m_positionY, aActualConversion );
73 
74  lNode = FindNode( aNode, wxT( "netNameRef" ) );
75 
76  if( lNode )
77  {
78  lNode->GetAttribute( wxT( "Name" ), &propValue );
79  propValue.Trim( false );
80  propValue.Trim( true );
81  m_net = propValue;
83  }
84 
85  lNode = aNode;
86 
87  while( lNode && lNode->GetName() != wxT( "www.lura.sk" ) )
88  lNode = lNode->GetParent();
89 
90  lNode = FindNode( lNode, wxT( "library" ) );
91 
92  if ( !lNode )
93  THROW_IO_ERROR( wxT( "Unable to find library section" ) );
94 
95  lNode = FindNode( lNode, wxT( "viaStyleDef" ) );
96 
97  while( lNode )
98  {
99  lNode->GetAttribute( wxT( "Name" ), &propValue );
100 
101  if( propValue.IsSameAs( m_name.text, false ) )
102  break;
103 
104  lNode = lNode->GetNext();
105  }
106 
107  if ( !lNode )
108  THROW_IO_ERROR( wxString::Format( wxT( "Unable to find viaStyleDef " ) + m_name.text ) );
109 
110  if( lNode )
111  {
112  tNode = lNode;
113  lNode = FindNode( tNode, wxT( "holeDiam" ) );
114 
115  if( lNode )
116  SetWidth( lNode->GetNodeContent(), aDefaultMeasurementUnit, &m_hole,
117  aActualConversion );
118 
119  lNode = FindNode( tNode, wxT( "viaShape" ) );
120 
121  while( lNode )
122  {
123  if( lNode->GetName() == wxT( "viaShape" ) )
124  {
125  // we support only Vias on specific layers......
126  // we do not support vias on "Plane", "NonSignal" , "Signal" ... layerr
127  if( FindNode( lNode, wxT( "layerNumRef" ) ) )
128  {
129  viaShape = new PCB_VIA_SHAPE( m_callbacks, m_board );
130  viaShape->Parse( lNode, aDefaultMeasurementUnit, aActualConversion );
131  m_shapes.Add( viaShape );
132  }
133  }
134 
135  lNode = lNode->GetNext();
136  }
137  }
138 }
void SetPosition(wxString aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)
void SetWidth(wxString aStr, const wxString &aDefaultMeasurementUnit, int *aWidth, const wxString &aActualConversion)
XNODE * GetParent() const
Definition: xnode.h:73
#define THROW_IO_ERROR(msg)
Class XNODE holds an XML or S-expression element.
Definition: xnode.h:43
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
XNODE * FindNode(XNODE *aChild, const wxString &aTag)
PCB_CALLBACKS * m_callbacks
Definition: pcb_component.h:78
PCB_PAD_SHAPES_ARRAY m_shapes
Definition: pcb_pad.h:46
int GetNetCode(wxString aNetName)
Definition: pcb_component.h:75
void PCAD2KICAD::PCB_COMPONENT::SetPosOffset ( int  aX_offs,
int  aY_offs 
)
virtualinherited

Member Data Documentation

wxString PCAD2KICAD::PCB_COMPONENT::m_compRef
inherited
int PCAD2KICAD::PCB_PAD::m_hole
inherited
bool PCAD2KICAD::PCB_PAD::m_isHolePlated
inherited
int PCAD2KICAD::PCB_PAD::m_number
inherited

Definition at line 43 of file pcb_pad.h.

Referenced by PCAD2KICAD::PCB_PAD::Parse(), and PCAD2KICAD::PCB_PAD::PCB_PAD().

wxString PCAD2KICAD::PCB_COMPONENT::m_patGraphRefName
inherited
PCB_PAD_SHAPES_ARRAY PCAD2KICAD::PCB_PAD::m_shapes
inherited
int PCAD2KICAD::PCB_COMPONENT::m_tag
inherited

Definition at line 51 of file pcb_component.h.

Referenced by PCAD2KICAD::PCB_COMPONENT::PCB_COMPONENT().


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