[squeak-dev] Greetings & development of Electrical Engineering Design application

lists.squeakfoundation.org at ben.coman.com.au lists.squeakfoundation.org at ben.coman.com.au
Thu Feb 24 17:07:35 UTC 2011

greetings all,

To introduce myself, I first experienced Smalltalk around 1990 as part 
of my undergrad in IT Engineering.  It made a great impression on me but 
unfortunately I never got a chance to use it professionally, and hadn't 
touched it since.  I then worked fifteen years in IT doing 
desktop/server/network support of windows/unix/linux systems.  My career 
got a bit stale so the past five years I have been doing external 
postgrad study at the University of Southern Queensland for a MEngTech 
Power Systems.  The past four years I've been working for a small 
Electrical Engineering & Contracting firm doing industrial control and 
power systems.

My Final Project & Dissertation is now upon me and I've decided to 
develop an engineering design tool.  The discovery of Squeak a few weeks 
ago and then working through Squeak by Example and the Laser Tutorial 
was a major influence in choosing to undertake this project.  Part of it 
is a schematic and connection drawing package where changes are live 
linked between associated drawings. For example, when wire numbers are 
changed on the schematic that will be reflected on the connection diagram. 

So now I need to evaluate and choose a framework.  So far the options I 
see are:

1. Pure Morphic - might has the advantage of being well supported with 
examples.   I can already imagine how things might be implemented - 
including maintaining vertical-or-horizontal-only orientations while 
moving wires around. It is more likely that unintended behavior can be 
understood and prevented.  The model coupling is also well demonstrated 
in examples.

2. Ned Konz's Connectors  - I have been playing with Ned Konz's 
Connectors framework this week and am quite excited by its potential.  
However I wonder how well it integrates with an underlying model to 
maintain consistency across multiple views.

3. GraphViz - seems to be less interactive than Connectors providing 
mainly graph auto-generation - though I haven't tried it yet.

4. Mondrian - seems to be less interactive than Connectors providing 
mainly graph auto-generation - though I haven't tried it yet.

5. Cobalt, for later addition of 3D equipment layouts and cable 
routing.   I could only spend a few hours with it.

In general, the more developed frameworks should provide more 
sophisticated features "for free", but the trade offs are time-to-learn, 
framework maturity, susceptibility to framework bugs, potential 
complexity to trouble-shoot framework internals.  Also there may end up 
a mismatch between requirements and framework possibilities, and being 
able to extend them.  There also doesn't seem to be a great deal of 
consolidated documentation for each framework.  So trying to understand 
the high level design and usage philosophy by wading through low-level 
code is awkward.

I am interested in your opinion on the choice of suitable frameworks? 
Did I miss any?

The basic model will be composed of:
a. Drawings - A3 size with standard client borders. A large electrical 
project may have thousands of drawings.
b. Components - with terminals to which wires connect.  These will be 
developed custom by the user.  Components have Subparts that scatter 
around a drawing.  For example a relay has an input-coil and an 
output-contact that appear in different parts of the circuit. .  
Component Subparts Components will have various graphical 
representations depending on which type of drawing they are on.
c. Wires - which inter-connect component terminals.  All 
short-circuit-connected wires should have the same wire number. 
d. Cables - contain multiple wires to connect between drawings and 
physical locations.
e. Voltages and currents on components and in wires.

Design rule checking (such as preventing mixed voltages) will be done 
against the model.  The schematic will be simulated to observe the 
effect of push buttons and relay logic. 

cheers, Ben

More information about the Squeak-dev mailing list