← Back to team overview

kicad-developers team mailing list archive

Re: First impressions on fp-table

 

On 9/24/2013 5:15 PM, Dick Hollenbeck wrote:
> On 09/24/2013 03:14 PM, Wayne Stambaugh wrote:
>> On 9/24/2013 3:34 PM, Lorenzo Marcantonio wrote:
>>> Premise: I don't get why this was done, since I find the existing
>>> library-order search perfectly adequate, however it's an interesting
>>> idea and obviously must have its merits (simply I can't see them, I need
>>> better glasses or a different workflow :P). Also I use the 'board as
>>> a library' approach suggested in the manual i.e. I never use the library
>>> related operations in the module editor. Create footprint archive does
>>> the library creation step for everything (for now it supports only the
>>> legacy mod files, will that change with the new file-for-module
>>> libraries?)
>>>
>>> First of all: very good the environment variable replacement idea; a lot
>>> of symlinks trickery was required to make it work for different users. 
>>>
>>> Tried to play with the library path dialog and it's good. I presume that
>>> the 'path' column changes significance depending on the plugin (a .mod
>>> file for legacy, a directory for the new format and so on); that plus
>>> the path substitution makes impossible a 'browse' button for the
>>> path...however I think that nearly immediately users will ask for it! 
>>> In fact I have many libs and I generated the fp file with a shell one
>>> liner:P
>>
>> The ability to use any footprint library that is supported by a plugin
>> without having to convert them to one of Pcbnew's formats is important
>> for some users and certainly is more convenient.
>>
>>>
>>> Has the description column some significance or it's only a remark?
>>
>> It's just a remark that gets saved in the footprint library table entry.
>>
>>>
>>> Possibly useful enhancement: while playing I added an inexistant pathname... the
>>> next cvpcb run it said: 
>>>
>>> Some files are invalid!
>>> IO_ERROR: Footprint library path does not exist <<< here the missing file would be useful
>>> from /home/lomarcan/cvswork/kicad-bzr/pcbnew/kicad_plugin.cpp : Load() : line 214
>>
>> I'll take a look at it.  I did fix a few bugs in r4345 so I may have
>> already fixed it.
>>
>>>
>>> Another thing trapped by my wx debug build:
>>>
>>> ASSERT INFO:
>>> ./src/generic/listctrl.cpp(3063): assert "col >= 0 && col < GetColumnCount()" failed in SetColumnWidth(): invalid column index
>>>
>>> BACKTRACE:
>>> [1] wxOnAssert(char const*, int, char const*, char const*, wchar_t const*)
>>> [2] wxGenericListCtrl::SetColumnWidth(int, int)
>>> [3] FOOTPRINTS_LISTBOX::SetFootprints(FOOTPRINT_LIST&, wxString const&, COMPONENT*, int)
>>> [4] CVPCB_MAINFRAME::BuildFOOTPRINTS_LISTBOX()
>>> [5] CVPCB_MAINFRAME::ReadNetListAndLinkFiles()
>>>
>>> It does so often (every time it repopulates the right column), and I see
>>> no sign of column resizing... I have seen the bug comment in the code
>>> and it trips even on wx 2.9 with gtk-2.0. That's just for information.
>>
>> This one should be fixed in r4345.
>>
>>>
>>> Then I tried to 'update' a couple of components: it was C0805 (old
>>> package), then become smd:C0805. Everything fine till now, saved the cmp
>>> file without problems. Maybe one day the cmp file will go away and only
>>> the netlist will survive :D (the problem is when a part is deleted and
>>> a new one get its refdes... from the cmp file it takes the *old*
>>> package, which is bad)
>>
>> At some point, I plan on doing away with the cmp file.  I have to write
>> the code so Pcbnew can save the new s-expr netlist file.  Once that's
>> done, cmp files will go away as will the legacy netlist files.
>>
>>>
>>> Backannotation in eeschema, it works as expected. However there is
>>> a catch: the 'qualified' names are usually way too long to be shown in
>>> the drawing. Maybe an option to display only the 'short' name would be
>>> useful (only display, the attribute must remain intact).
>>
>> You might want to have a talk with library folks about the length of the
>> file and footprint names.  Is it really necessary to have a library
>> named Allegro_ACS754_ACS755_ACS756_HallCurrentSensor_RevA with a
>> footprint named Allegro_HallSensor_Package-CB-PFF_24Oct2012?  I would
>> think allegro_hall_current_sense and package_cb_pff would be plenty
>> readable without wrapping on a 1920X1200 monitor.  You can always change
>> the library nicknames to something shorter.
>>
>>>
>>> Back to pcbnew... tried to refresh the netlist. As expected it noticed
>>> a mismatch (names from cmp, keep modules), however it says:
>>>
>>> Warning: component `C8` has footprint <C0805> and should be  <C0805>
>>>
>>> I'd expected to read "should be <smd:C0805>", or am I wrong? during
>>> actual replacement the message is correct, anyway:
>>
>> You are correct.  I missed that.  I'll add it to the list.  At least it
>> replaces with the correct footprints.
>>
>>>
>>> Replacing component "C8:/4BA0B4A0" footprint "C0805" with "smd:C0805".
>>>
>>> (is that timestamp really useful? maybe when selecting using timestamps
>>> and not references... but then it would be useful in the previous
>>> message too)
>>>
>>> Editing the replaced component shows the qualified name in the
>>> 'footprint name in library'... I think this need a little caution,
>>> however; this is because of how libraries are made.
>>>
>>> - In a project board that value represents from which library the
>>>   component came from and the module name.
>>>
>>> - In a master board for library creation that is the module name but, in
>>>   fact, the library has not significance (since we are going to write in
>>>   a specific, maybe new, library). In fact during the archival process
>>>   the library nick is simply stripped (I'd have done the same).  Still
>>>   I don't get *why* it takes so long:P
>>>
>>> Maybe would be probably better to split the field in the module
>>> properties? It needs some more thinking.
>>
>> I still have some testing to do with the footprint editor.  I'll see if
>> I can make it more user friendly in this regard.
>>
>>>
>>> All in all it seems to work... I'm using it and if something else pops
>>> up I'll let you know. Having the multiple library backend and variable
>>> substitution is surely an improvement from the previous implementation.
>>>
>>> One last thing: I think we should stop polluting the home directory.
>>> With non-dot files, even! By the way, why are lock files there instead
>>> of aside the original files like before? it is an accepted practice
>>> (like the .*.swp files for vi) and doesn't pollute the home. Frankly
>>> I find all these _home_lomarcan*lock files quite ugly. Now there is the
>>> fp-lib-table which is a permanent file too... why not allocate a .kicad
>>> or a .config/kicad directory and put all that cruft there (with the
>>> individual .eeschema, .pcbnew files and so on, too)?  (Application Data
>>> would be the equivalent for Windows systems)
>>>
>>
>> I agree.  This is already on my list as well.  At some point, I plan on
>> moving all the KiCad config files into the .kicad folder in the user's
>> home folder on Linux.  Unfortunately, there is no easy way to do this
>> for Windows users.  Converting the KiCad configuration settings in the
>> registry to config files is not trivial.  I may make Windows user's
>> reconfigure KiCad rather than try to convert the registry entries when I
>> get around to this.
> 
> Where does the project specific table get saved to when I have to establish a project, but
> rather have simply started pcbnew from the command line without a filename?
> 
> Otherwise I assume it is saved in the same dir as the *.kicad_pcb?
> 
> 
> Dick
> 
> 
That is how it's supposed to work unless there is some issue that I
missed.  The few projects that I tested it on seemed to work fine.  Let
me know if it's getting saved somewhere else and I will fix it.

Wayne



Follow ups

References