[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gEDA-dev: Improvements to the gEDA suite for educational use



Peter Clifton wrote:
> I am currently working with a few collegues at Cambridge University
> Engineering Department, evaluating open-source EDA tools for use and
> integration with our undergraduate teaching program.
> 
> We are currently using the gEDA suite, including gSchem, PCB, GSpiceUI
> and ng-spice / gnucap, but feel that there is still a high barrier to
> entry for new users to learn these packages. We have two or three
> students (including myself) intending to contribute software development
> over the summer vacation to improve the usability and integration of the
> suite.


One thing that I've been working on recently is the idea of "major 
modes" (like in emacs) for gschem.  The mode I've been working on as a 
platform for this is PCB.  I've committed some of the code but have 
anoth big chunk that is still underway.  Whats working right now is by 
loading a pcb.scm file into gschem, you get a PCB menu.  Under that menu 
you can launch pcb.  When pcb is launched from this menu, there is a 
communications channel opened from gschem to pcb.  Currently what this 
does is when you select an element in the schematic, it will be selected 
in the layout.

What I'm working on next is a generic mode-attribute editor.  The idea 
is for pcb-mode, you'll need to configure several things like the names 
of the layout file, the names of the schematic files, etc. If you're in 
a different mode you might need to enter numbers, file names, strings, 
etc.  So I'm working on a set of routines to manipulate a more or less 
arbitrary collection of these attributes.

Once this is done, it should be fairly simple to let you run gsch2pcb 
via a menu choice and have gschem tell pcb to load the new netlist and 
pull in the new footprints.

One of the design goals I have is to have everything which is pcb 
specific go into a single pcb.scm file and make anything which goes into 
the gschem core be generic.  Hopefully this will make it possible to add 
a spice-mode, switcap-mode, cascade-mode, etc.

I guess we should compare notes some and see how our different ideas may 
fit together.

If you build gschem from CVS, you'll see pcb.scm commented out in 
system-gschemrc.  You can uncomment that and play around with it to see 
what it does so far.  Currently gschem supports hooks for when you 
select and deselect elements and nets and it provides scheme functions 
for information dialog boxes and file select dialog boxes.  I'm still 
working on the code for the mode-attribute functions and dialog box.

A final suggestion that I'll offer is to try and do thing is a flexible 
manner that isn't too tied to a particular too.  By this I mean, when 
possible try to break apart core functionality that gschem, pcb, or 
whatever needs from functionality which is specific to a particular 
tool.  As a more concrete example, the export dialog boxes in pcb know 
nothing about the exporters.  The pcb core is simply given a list of 
exporters and each exporter provides a list of attributes.  The GUI 
dialog box is built on the fly based on the list of attributes.  This 
means that when you add a new exporter in pcb, there are exactly 0 lines 
of gui coded needed to have it fully supported by the gui!  In gschem, I 
wrote a generic dialog box routine that I export to guile so that each 
mode can access it.  My mode-attribute editor should be similar.  In 
fact if I do things correctly, we could probably redo the project 
manager in scheme with very little additional effort.


-Dan

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