TECHNOLOGY
- Dokuwiki
- Miscellaneous
Creating technical drawings is mandatory in most scientific and engineering professions. Fortunately, there is a wide variety of commercial and open-source software available to assist with illustrations. Some are text-driven while others include a graphical drawing interface. Some are industry-specific while others are more generic.
Following is a list of useful drawing tools.
Tool | Audience | Platforms | Free | GUI | Scriptable | Notes |
---|---|---|---|---|---|---|
MS Visio | Biz, Tech, Eng | Windows only | No | Yes | VBA, C++ | |
GraphViz | IT, Network | Win, Linux, Mac | Yes | No | Yes | |
Pic language | Biz, Tech | Linux, Mac | Yes | No | Yes | DPIC, manual |
GLE | Science, Math | Win, Linux, Mac | Yes | No | Yes | |
format plugin | unknown | Browser | Yes | Viewer | Yes | |
Draw Plugin | Tech, Eng | Browser | Yes | (Yes) | Yes |
Below is an example of the DokuWiki Draw plugin. This image is created using a Swing-based Java application running on a user's machine. When finished, a user selects File–>Save and the drawing file and the graphic it created are sent to the server and save in the media folder. The image can be edited later by anyone with write permissions to the current page.
<draw name=hello_world namespace=technology>
Why is this plugin important? Because of who it allows to create drawings: non-technical consumers.
I speculate that 2/3 of all drawing needs can be satisfied with this plugin1). Non-technical users are likely to be satisfied just to have a drawing tool, and many technical users will use this plugin simply because it works.
Graphviz is a really interesting plugin. It doesn't have a Visual designer like Draw plugin or Visio. Instead, it uses the graphviz tools from AT&T Labs. You'll need to learn the simple DOT language to use it. Although not the friendliest of tools for newbies, it is far more powerful in the long run because it can be scripted.
Here is an example of Graphviz in action. This is the code that produces the diagram below:
digraph { A->C; B->C; C->D; }
<graphviz>digraph {A→C;B→C;C→D;} </graphviz>