[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