I'm looking for a vector graphics editing program that will easily let me create and maintain diagrams in specific diagramming techniques.
The diagrams I need support for are all network diagrams: images consisting of shapes from a fixed repertoire, connected by connectors.
By a diagramming technique, I mean: a specific repertoire of two-dimensional shapes and connectors that can be used, and a bunch of further constraints on how they can be combined to form a diagram. Examples: flowcharts, ER models, state machines, AVL trees, Petri nets, 3-colored cubic planar graphs, etc. etc. etc.
This imposes the following concrete requirements on the application:
- It must create vector graphics. (Paint.NET doesn't.)
- It must be a WYSIWYG editor for diagrams. (Graphviz isn't.)
- It must support templates of shapes and connectors. (Inkscape templates don't.)
- It must allow me to add my own custom editing operations. (Dia doesn't.)
- It must allow me to add my own custom post-editing operations, i.e. operations that automatically run after the user changes the diagram. (Inkscape doesn't.)
The only application I know that meets these requirements is Microsoft Visio.
However, I have a few additional requirements:
- It must run on Windows and (Ubuntu) Linux. (Visio doesn't, unless it runs on Wine.)
- It would be nice if it runs on Apple devices as well.
- It must be inexpensive. (Visio isn't.)
- It would be nice if it's free.
- It would be nice if it is open source.
- It must allow me to save the diagrams locally. (Web applications are fine as long as they meet this.)
- It must not impose any restrictions on the size of the diagrams.
- It would be nice if it doesn't work with fixed pages of fixed size on which the diagrams are supposed to fit. I want to determine a page size only when printing or exporting, thank you.
I'm well aware that this is a lot to ask for, but … do you know anything that meets these requirements, or that can be made to meet them with relatively little effort?