← Back to team overview

kicad-developers team mailing list archive

Multipart components

 

--0-816582939-1216121802=:37837 Content-Type: text/plain; charset=us-ascii

OK, I have been looking at multi part components, and I see the structure:

/* Elements Graphiques */
LibEDA_BaseStruct::LibEDA_BaseStruct( KICAD_T struct_type ) :
EDA_BaseStruct( struct_type )
{
m_Unit = 0; /* Unit identification (for multi part per package)
* 0 if the item is common to all units */

in libclass.cpp

Well this seems to indicate if m_Unit is something other than 0, the element (pin, text, graphical object, etc) will be specific to a particular part, and if it is 0, it is global to all parts of a component. This is backed up by the contents of the component file.

So far, so good.

The problem I have is it is defaulted to 0 (no problem with this) and I can't find anywhere where the m_Unit can be set to anything else (the problem), to make an item a specific part of a component.

Is there a function to do this in the program? Cause I can't find it.

If not, I propose adding functionality to set this field.
1. A toggle for Component Global/part local placement of elements of a part. Which controls what scope an element is placed as having.
2. A toggle (right click) that can make a element of a part global to all parts, or local to the current part. So you can change it once placed.
3. A different colour so one can visually distinguish global elements from local elements. This would only be in the editor, in the schematic they would all be one colour.

What do you think?

I haven't looked at implementing any of this, cause I am still not sure the functionality isn't there. Any pointers would be appreciated.

Stevo.


 --0-816582939-1216121802=:37837 Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div>OK, I have been looking at multi part components, and I see the structure:<br><br>/* Elements Graphiques */<br>LibEDA_BaseStruct::LibEDA_BaseStruct( KICAD_T struct_type ) :<br>&nbsp;&nbsp;&nbsp; EDA_BaseStruct( struct_type )<br>{<br>&nbsp;&nbsp;&nbsp; m_Unit&nbsp;&nbsp;&nbsp; = 0;&nbsp; /* Unit identification (for multi part per package)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; 0 if the item is common to all units */<br><br>in libclass.cpp<br><br>Well this seems to indicate if m_Unit is something other than 0, the element (pin, text, graphical object, etc) will be specific to a particular part, and if it is 0, it is global to all parts of a component. This is backed up by the contents of the component
file.<br><br>So far, so good.<br><br>The problem I have is it is defaulted to 0 (no problem with this) and I can't find anywhere where the m_Unit can be set to anything else (the problem), to make an item a specific part of a component.<br><br>Is there a function to do this in the program?&nbsp; Cause I can't find it.<br><br>If not, I propose adding functionality to set this field.<br>1. A toggle for Component Global/part local placement of elements of a part. Which controls what scope an element is placed as having.<br>2. A toggle (right click) that can make a element of a part global to all parts, or local to the current part.&nbsp; So you can change it once placed.<br>3. A different colour so one can visually distinguish global elements from local elements.&nbsp; This would only be in the editor, in the schematic they would all be one colour.<br><br>What do you think?<br><br>I haven't looked at implementing any of this, cause I am still not sure the
functionality isn't there.&nbsp; Any pointers would be appreciated.<br><br>Stevo.<br></div></div><br>



</body></html> --0-816582939-1216121802=:37837-- 




Follow ups