[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Thoughts using gschem



On Wednesday 04 July 2007 19:50:23 Sean D'Epagnier wrote:

> Instead I proprose adding a button in the components dialog window that
> will copy the selected component it to the project-specific library and
> switch to it.  The actual location of the project directory could be
> specified in gafrc, if not specified, maybe this button should not exist?? 
> Or should it use some default location?  or should it popup explaining how
> to enable the feature?
>
> If I do things this way, hopefully the only new code to add will be in the
> button clicked handler, and it is a simpler change as well.

You're welcome to implement this, but I genuinely think it's a bad idea and 
will oppose putting it in the main gEDA tree.  This is mainly due to the way 
that configuration variables are handled in libgeda, which will result in the 
component library getting very confused if you open a schematic from a 
different project in the same instance of gschem.  I do intend to fix this at 
some point.

What I would do is as follows (requires gEDA 1.1).

gafrc:
  (define project-symbol-path "/path/to/project/symbols")

  ; Last library added has precedence
  (component-library project-symbol-path "<projectname> symbols")

gschemrc:
  ; Make sure project symbols are first in list
  (sort-component-library "disabled")


These snippets together should have the same effect as most of what you need.

You'd then need to find a way to (1) find the current symbol name from Scheme, 
(2) get a return value from hierarchy-down-symbol indicating success, and (3) 
save to a given file name from Scheme.  This would allow you to write a 
Scheme function which you could bind to a keystroke or menu item, which would 
go down the symbol, and save it to the project component library.  I'll add 
these to my todo list (as well as making it possible to refresh the component 
library from Scheme).

In general, gschem/geda needs Scheme callbacks which let you do more 
manipulation of the GUI and the document.

Note that this solution will still fail if you open a schematic from a 
different project which also uses this mechanism.  I'll think about how to 
deal with this some more... perhaps something with macros...?

> On another note.. what do you think about having the ability to query
> gedasymbols.org from within gschem?
>

It's at the top of my to-do list.  In fact, all of the necessary code that 
needs to be added to gEDA is already in the 1.1 branch.  All that's needed is 
to add the helper program which will maintain the local cache of symbols and 
use curl to talk to the web server.  I hope to make it so that all you need 
to serve a symbol library would be an FTP or HTTP server.

Investigate the component-library-command and component-library-funcs Scheme 
procedures.

I hope some of that helps.

                             Peter


-- 
Peter Brett

Electronic Systems Engineer
Integral Informatics Ltd

Attachment: signature.asc
Description: This is a digitally signed message part.


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user